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

В чем разница между пересылками resolv.conf и named.conf?

Когда я устранял неполадки в процессе создания DNS в Ubuntu, я заметил, что следующие файлы кажутся избыточными:

etc / bind / named.conf.options (или раздел named.conf в зависимости от того, как настроены ваши файлы)

forwarders {
      1.2.3.4;
      5.6.7.8;
      9.10.11.12;
};

и т.д. / resolv.conf

domain example.com
nameserver 1.2.3.4
nameserver 5.6.7.8
nameserver 9.10.11.12

Обычно при таком наблюдении я обнаруживаю, что делаю что-то неправильно, поэтому поправьте меня, если я ошибаюсь. Кажется, что named.conf любит иметь net ip машины, а resolv.conf должен иметь 127.0.0.1. Кроме того, у них должны быть IP-адреса DNS-серверов моего провайдера, которые будут такими же. Спасибо за помощь.

Трудно ответить однозначно, потому что я не знаю, чего вы пытаетесь достичь:

  • Вы хотите управлять частной зоной DNS с помощью собственного сервера BIND?
  • Вы просто хотите, чтобы разрешение DNS работало правильно?
  • Вы пытаетесь настроить локальный кеш из соображений производительности?

Если вы собираетесь запустить локальный DNS-преобразователь на своем сервере, вы должны указать /etc/resolv.conf на ваш локальный сервер BIND (127.0.0.1) и позвольте BIND разрешиться, начиная с корневых серверов имен, как и любой другой сервер имен. Никаких записей о "пересылках" в вашем named.conf. Строго говоря, вы бы хоть немного снизили нагрузку на корневые серверы имен, оставив записи «пересылки» на месте.

Если вы просто пытаетесь заставить DNS-разрешение работать на вашем компьютере, но вам не нужно запускать DNS-сервер самостоятельно, тогда не беспокойтесь о named.conf и просто укажите /etc/resolv.conf на DNS-серверах вашего интернет-провайдера.

РЕДАКТИРОВАТЬ:

Мне приходит в голову, что я не ответил на вопрос в вашем заголовке.

  • /etc/resolv.conf - это файл, используемый библиотеками преобразователя на вашем компьютере (часть libc), которые используются каждой отдельной программой для запроса поиска DNS. Когда ваш веб-браузер хочет выполнить поиск DNS, он вызывает gethostbyname('www.blah.com') (или одна из его производных). Эта функция делает массу вещей, среди которых чтение /etc/resolv.conf и используя это, чтобы выяснить, какой DNS-сервер он может попросить выполнить его поиск.

  • /etc/named.conf используется BIND. Обычно, когда вы делаете запрос к BIND, он проверяет его локальный кеш и, если у него нет anser, он запрашивает один из корневых серверов имен. Корневые серверы «делегируют» (обычно) GTLD или сервер национального уровня. Затем эти серверы будут делегированы владельцу домена. Обычно на этом все заканчивается, но иногда есть еще один или два уровня делегирования для суб-поддоменов. Это добавляет до 3-5 запросов, чтобы получить ответ. Затем ответ добавляется в локальный кеш и передается обратно запрашивающему клиенту. Если вы укажете «пересылку», BIND просто сделает один запрос к одному из перечисленных хостов (обычно это DNS-серверы вашего интернет-провайдера) и позволит им выполнять всю тяжелую работу. Он получает ответ на свой единственный запрос и передает ответ обратно клиенту.