Как правильно задать имя хоста в Debian Jessie, когда в моей локальной сети есть DNS?

Это в моей домашней локальной сети, в которой есть DNS-сервер (Bind9) и DHCP-сервер (dhcpd).

Мой настольный компьютер получает свой IP-адрес от DHCP-сервера, который включает в себя поисковый домен mylan .

Итак, полное доменное имя моего настольного компьютера - mydesktop.mylan .

Соглашение Debian, похоже, заключается в том, что / etc / hostname должно содержать только короткое имя хоста, поэтому mydesktop .

Но как насчет / etc / hosts ?

Какой должна быть запись: короткое или полное доменное имя?

127.0.0.1  localhost
127.0.1.1  mydesktop.mylan  mydesktop

Есть ли соглашение? Рекомендация?

Если полное доменное имя находится в / etc / hosts , не будет ли это "отменять" разрешение DNS? Имеет ли это значение?

0
задан 18 March 2016 в 21:34
2 ответа

Если вы посмотрите на справочная страница для hostname , может быть, она укажет вам правильное направление. Также Установка имени хоста и настройка службы имен и конфигурация службы имен и преобразователя Орейли из Руководства сетевого администратора Linux, 2-е издание очень хорошо объясняют проблему разрешения имен в Linux. Думаю, этого достаточно, чтобы помочь вам начать.

Дело в том, что Интернет и идея разрешения имен и DNS эволюционировали со временем, и многие вещи, которые мы обнаруживаем сегодня, имеют исторические причины.

Чтобы ответить на ваши вопросы, вы можете просто указать каноническое имя хоста в / etc / hostname файл. Ядро может получить доступ к имени с помощью команды hostname . Теперь это не имеет ничего общего с DNS в целом.

Файл / etc / hosts существует по причинам, чтобы помочь разрешению имен для нескольких клиентов (вместе с локальной системой), и когда нет DNS-сервер доступен.

Теперь,то, как система Linux будет решать, что использовать для разрешения имен, определяется в файле /etc/nsswitch.conf . Пример частичного содержимого файла может выглядеть следующим образом:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# Information about this file is available in the `libc6-doc' package.

hosts:          files dns

Первая строка с hosts означает, что система сначала обратится к файлу / etc / hosts , а затем к DNS-серверу для разрешение имен.

Как видите, если у вас есть рабочий DNS, вам не нужно добавлять запись имени хоста в файл / etc / hosts . И то, что будет иметь приоритет, определяется файлом / etc / nsswitch .

Ограничение файла / etc / hosts заключается в том, что он виден только локальной системе, и его необходимо поддерживать вручную (редактирование / добавление / удаление IP / имен хостов) и не может помочь другим системам в сети разрешить имена хостов из этого файла. Так появилась идея централизованного файла хостов, который будет доступен для всех компьютеров в локальной сети, и оттуда развилась идея DNS-сервера.

1
ответ дан 4 December 2019 в 16:39

Я всегда настраивал свой файл / etc / hosts как с локальным именем хоста, так и с полным доменным именем.

Согласно справочной странице / etc / hosts :

   127.0.1.1       thishost.mydomain.org  thishost
   192.168.1.10    foo.mydomain.org       foo
   192.168.1.13    bar.mydomain.org       bar
   146.82.138.7    master.debian.org      master

Если Полное доменное имя находится в / etc / hosts, разве это не "переопределит" разрешение DNS? Имеет ли это значение?

Да, ваш файл hosts всегда будет иметь приоритет над разрешением DNS, так как это первое, что проверяет ваш локальный преобразователь DNS. Однако это не должно быть проблемой в любой конфигурации сети, о которой я могу думать, если только вам не нужно, чтобы ваш клиент по какой-либо причине запрашивал DNS-сервер для разрешения собственного имени хоста клиента.

0
ответ дан 4 December 2019 в 16:39

Теги

Похожие вопросы