Gentoo: dhcp & dns

09 December 2009 #gentoo #dns

На русском форуме gentoo часто встречаю вопросы по тому, как сделать так, чтобы при рабочем dhcp-клиенте не затирались записи в файле /etc/resolv.conf?

Обычно вносят изменения в этот файл, вручную указывая какие dns-сервера необходимо использовать. Мало ли, может dns-сервер провайдера работает не корректно или хотим использовать другие сервера, причин может быть множество. Но проблема в том, что прописывание руками серверов в указанный файл не приносит результата, при очередном получении ip-адреса, все прописанное затирается информацией с dhcp-сервера.

Я покажу, как можно сделать так, чтобы сам клиент позволял сформировать нужный файл resolv.conf. Метода два, так как в Gentoo можно использовать два демона для получения ip-адреса (рассматриваю самые популярные).

  1. Демон dhcpcd. Тут все просто. Достаточно создать два файла: /etc/resolv.conf.head и /etc/resolv.conf.tail Первый файл используется для указания серверов, которые будут использоваться ПЕРЕД адресами, выдаваемыми dhcp-сервером, а второй файл соответственно ПОСЛЕ, то есть являются по сути резервными. Добавляем в эти файлы строки, в формате обычного resolv.conf:
    nameserver 8.8.8.8
  2. Демон dhcp. Именно его я использую, он является более легковесным вариантом клиента, и на мой взгляд работает быстрее. По сути сама настройка так же не представляет сложности. Достаточно создать или изменить существующий файл конфигурации /etc/dhcp/dhclient.conf:
    prepend domain-name-servers 8.8.8.8;
    prepend domain-name-servers 127.0.0.1;
    Обращаю внимание, что в записи используется обратный порядок, то есть сервер из первой строки будет обрабатываться только при неработоспособности сервера из второй. В примере последняя строка -- локальный сервер dnsmasq...

После прописывания данных строк в файлы конфигурации мы получаем нужные нас dns-сервера в активной конфигурации сети.