Gentoo: dhcp & dns
На русском форуме gentoo часто встречаю вопросы по тому, как сделать так, чтобы при рабочем dhcp-клиенте не затирались записи в файле /etc/resolv.conf?
Обычно вносят изменения в этот файл, вручную указывая какие dns-сервера необходимо использовать. Мало ли, может dns-сервер провайдера работает не корректно или хотим использовать другие сервера, причин может быть множество. Но проблема в том, что прописывание руками серверов в указанный файл не приносит результата, при очередном получении ip-адреса, все прописанное затирается информацией с dhcp-сервера.
Я покажу, как можно сделать так, чтобы сам клиент позволял сформировать нужный файл resolv.conf. Метода два, так как в Gentoo можно использовать два демона для получения ip-адреса (рассматриваю самые популярные).
- Демон dhcpcd. Тут все просто. Достаточно создать два файла:
/etc/resolv.conf.head
/etc/resolv.conf.tail
Первый файл используется для указания серверов, которые будут использоваться ПЕРЕД адресами, выдаваемыми dhcp-сервером, а второй файл соответственно ПОСЛЕ, то есть являются по сути резервными.
Добавляем в эти файлы строки, в формате обычного resolv.conf:nameserver 8.8.8.8
- Демон dhcp. Именно его я использую, он является более легковесным вариантом клиента, и на мой взгляд работает быстрее. По сути сама настройка так же не представляет сложности.
Достаточно создать или изменить существующий файл конфигурации /etc/dhcp/dhclient.conf:prepend domain-name-servers 8.8.8.8; prepend domain-name-servers 127.0.0.1;
Обращаю внимание, что в записи используется обратный порядок, то есть сервер из первой строки будет обрабатываться только при неработоспособности сервера из второй. В примере последняя строка – локальный сервер dnsmasq…
После прописывания данных строк в файлы конфигурации мы получаем нужные нас dns-сервера в активной конфигурации сети.

На что только не идут люди, чтобы не решать проблему системно.
Например, взять уже одну из реализаций resolvconf.
Так о чем речь?
У меня периодически бывают ситуации когда resolv.conf пустеет и в нём нет даже данных из .head.
P.S. и можно было бы отметить, что для интерфейсов где нет днс нужно указать nodns.
Странная ситуация, у меня такого еще ни разу не было…
Отмечать не стал, задачу другую ставил своей статьей. Но за дополнение спасибо!
Поправьте в тексте resolv.conv на resolv.conf (3 раза
)
)))
И это, гуглемания уже во всех ДНСах прописалась?
Ой, спасибо за замечание!
Гуглемания используется как запасной вариант, в статье прописал, как наиболее известный из публичных сервисов.
chattr +i /etc/resolv.conf
Для параноиков…
В другом случае лучше придерживаться иных методов.