Итак, в свое время я установил несколько Win Serv и всегда использовал .local, когда был маршрутизатор, который отделял мою внутреннюю сеть от внешней. Теперь, когда я впервые настраиваю ящик * nix, применима ли эта концепция? Мне все еще нужны мои полные доменные имена (/etc/hostname
), чтобы отображать .local или .com для всех моих машин (смешанных: серверы Linux, рабочие станции win) внутри моей сети.
Этот вопрос возникает в контексте того, что Active Directory всегда держит меня за руку на каждом этапе пути, и теперь я настраиваю DNS-машину вручную.
Так как @Zoredache указал на .local
пространство имен не имеет официального статуса (самое близкое, что вы найдете, это .localhost
, определено и зарезервировано в RFC 2606). Соответственно .local
никогда не должны использоваться, поскольку однажды ICANN может передать кому-то этот TLD.
В Правильная вещь нужно зарегистрировать собственный домен, например example.com
, и назначьте ему имена хостов (возможно, в internal.example.com
) в зависимости от ситуации.
При этом, если вы хотите использовать .local
или .lan
в качестве домена верхнего уровня для ваших внутренних хостов вы, конечно же, не одиноки, и на этом этапе вероятность того, что кто-то попытается узурпировать .local
, .lan
, или .private
довольно низкий: они используются настолько повсеместно, что попытки исправить десятилетия зла не стоят борьбы.
Обратите внимание, однако, что такие машины и имена не должны быть доступны из общедоступного Интернета (или открыты для них каким-либо образом). Это меньший грех, похожий на передачу сетевых адресов RFC-1918 через ваши общедоступные интерфейсы, и такие люди, как я, будут неодобрительно смотреть на вас публично и высмеивать утечки вашей сетевой информации в частном порядке.
Также обратите внимание, что на машинах * nix на самом деле нет понятия «домен» в смысле этого слова Active Directory - ближайшим аналогом будут домены NIS, которые не привязаны к DNS, как AD.
На самом деле голая система * nix знает только свое личное имя хоста, которое не обязательно должно быть полным доменным именем (alice
так же актуально, как alice.wonder.lan
), хотя по соглашению многие администраторы используют полное DNS-имя машины в качестве имени хоста.
Это дает вам возможность отказаться от использования "неофициальных" доменных имен, таких как .local
, но ИМХО менее "правильный", чем наличие действительного, назначенного, полного доменного имени в качестве имени хоста вашей системы.
Это еще не официально, но с тем же успехом его можно назвать повсеместным: .local используется для разрешения имен локальных ссылок в многоадресный DNS:
В этом документе указывается, что домен верхнего уровня DNS «.local». - это особый домен со специальной семантикой, а именно: любое полное имя, оканчивающееся на «.local». является локальным для ссылки, и имена в этом домене имеют значение только для ссылки, по которой они исходят. Это аналогично адресам IPv4 в префиксе 169.254 / 16 или адресам IPv6 в префиксе FE80 :: / 10, которые являются локальными для канала и значимы только для канала, откуда они исходят.
Вы обнаружите, что как продукты Apple, так и современные дистрибутивы Linux, работающие под управлением Avahi, будут использовать .local таким образом без какой-либо конфигурации. В моей собственной сети я воспользовался этим и перестал поддерживать локальную зону DNS, поскольку мы почти полностью используем Linux и OS X -Bonjour для Windows заполнили последний пробел для компьютеров с Windows.
Если вам действительно нужно поддерживать зону DNS, я рекомендую создать поддомен зарегистрированного вами домена (например, lan.example.com) и использовать расщепленный горизонт DNS для внутреннего разрешения локального домена. Даже не имея даже черновика в Интернете, трудно оправдать постоянные рекомендации Windows по использованию домена .local.