Назад | Перейти на главную страницу

Как правильно установить имя хоста в 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? Это имеет значение?

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

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

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

В /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-сервера.

Я всегда настраивал свой файл / 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-сервер для разрешения собственного имени хоста клиента.