Перепечатка статьи + немного дополнений, про важные изменения в новой версии ubuntu. Взято с этого сайта
http://vasilisc.com/
В Ubuntu 12.04 произошли приятные изменения при разрешении имён в DNS. Рассмотрим два нововведения:
http://vasilisc.com/
В Ubuntu 12.04 произошли приятные изменения при разрешении имён в DNS. Рассмотрим два нововведения:
Переключение на resolvconf с файла /etc/resolv.conf
Dnsmasq теперь резолвер DNS по умолчанию в Desktop версии.
Dnsmasq теперь резолвер DNS по умолчанию в Desktop версии.
Переключение на resolvconf с файла /etc/resolv.conf
resolvconf это набор скриптов для управления разрешением имён в DNS. Наиболее важное для пользователей изменение то, что ручные изменения в /etc/resolv.conf будут потеряны и перезаписаны триггерами resolvconf. Вместо этого, resolvconf использует информацию из DHCP, от плагинов Network Manager и параметры dns-nameservers в /etc/network/interfaces, чтобы создать список DNS серверов и записать информацию в /etc/resolv.conf.
Возникают следующие вопросы:
- Используется статическая IP конфигурация. Куда класть инфу о моих DNS серверах.
DNS конфигурация для статических интерфейсов должна быть описана в соответствующих записях dns-nameservers, dns-search и dns-domain в /etc/network/interfaces
пример:
auto eth0
iface eth0 inet static
address 192.168.11.10
netmask 255.255.255.0
gateway 192.168.11.1
dns-nameservers 8.8.8.8 8.8.4.4
dns-search mydomain.com google.com
- Как перекрыть конфигурацию resolvconf или добавить свои записи?
Resolvconf хранит в /etc/resolvconf/resolv.conf.d/ каталоге файлы base, head, original и tail файлы. Всё хранится в resolv.conf формате: - base: используется, когда нет вообще никаких данных
- head: используется для заголовка в /etc/resolv.conf
- original: просто резервная копия оригинального resolv.conf во время установки resolvconf
- tail: любая информация из этого файла добавляется в конец /etc/resolv.conf
(от себя добавлю еще то, что строки в файлах base, head, tail нужно писать полностью, в конце делая перевод строки, даже если будет одна строка или даже ели это просто комментарий)
- Не хочу resolvconf. Как отключить resolvconf?
Не рекомендуется отключать resolvconf, но ссылку /etc/resolv.conf можно заменить настоящим файлом /etc/resolv.conf. Но в будущих версиях Ubuntu вы можете получить множество несогласованных resolv.conf от разных сетевых программ.
Dnsmasq теперь резолвер DNS по умолчанию в Desktop версии.
В desktop установке, DNS сервер по умолчанию выставлен в 127.0.0.1, который указывает на управляемый NetworkManager dnsmasq сервер.
Это сделано для лучшей поддержки DNS у VPN пользователей, лучше обрабатывать DNS проблемы и восстанавливаться после сбоя.
Этот dnsmasq сервер НЕ кеширующий сервер созданный в целях безопасности, который снижает риски при отравлении DNS кеша или "прослушивание" DNS трафика в многопользовательской среде.
Этот dnsmasq сервер НЕ кеширующий сервер созданный в целях безопасности, который снижает риски при отравлении DNS кеша или "прослушивание" DNS трафика в многопользовательской среде.
Большим преимуществом является то, что при подключении к VPN, вместо того, чтобы весь DNS трафик отправлять через VPN как раньше, отправлять только DNS запросы, связанные с подсетями и доменами, анонсированные VPN сервером. Это особенно важно из-за латентности связи VPN.
Для обработки сбоев DNS, Dnsmasq посылает DNS запросы к нескольким серверам DNS (если они будут указаны) и может обнаружить "мёртвых" и просто проигнорировать их. Если DNS "придёт в норму", то информация от него снова будет использована.
Сравните это с работой Libc при разрешении DNS имён, где состояние DNS сервера нельзя сохранить, так как libc это всего лишь библиотека, и поэтому каждое приложение будет испытывать таймауты при использовании "мёртвого" DNS сервера до переключения на следующий рабочий DNS.
Вопросы:
- Как узнать какие DNS сервера я использую? Что-то типа cat /etc/resolv.conf.
nm-tool даст информацию об ваших соединениях в NetworkManager, как если бы вы получили её через GUI.
Ещё информацию можно получить из файла /run/nm-dns-dnsmasq.conf - Не хочу локальный резолвер у себя. Как отключить dnsmasq?
В /etc/NetworkManager/NetworkManager.conf закомментируйте dns=dnsmasq строку иsudo restart network-manager
.