Вчера я обновился до Precise и dnsmasq перестал работать. То есть DNS-запросы к localhost, где dnsmasq прослушивает (127.0.0.1), были отклонены.
Удаление resolvconf ( apt-get remove resolvconf
) и перезагрузка решили проблему (нашел это предложение где-то в Google). /etc/resolv.conf
выглядел хорошо с и без resolvconf на месте. Нет разницы вообще.
- Зачем мне использовать resolvconf? Есть ли какие-то преимущества? Статья в Википедии, посвященная resolvconf, - отстой.
- Почему resolvconf мешает работе dnsmasq? Это известная проблема?
resolv.conf
dnsmasq
lightxx
источник
источник
Ответы:
Простой ответ на (1): resolvconf устанавливает себя в качестве посредника между программами, которые предоставляют эту информацию (такими как ifup и ifdown, DHCP-клиенты, демон PPP и локальные серверы имен), и программами, которые используют эту информацию (например, DNS). кеши и резолвер библиотеки). Начиная с Ubuntu 12.04 resolvconf является частью установки по умолчанию как на сервере, так и на рабочем столе. Никогда не нужно удалять resolvconf, и люди, которые его удаляют, обычно не понимают этого, как правило, потому что они не читали resolvconf (8) и /usr/share/doc/resolvconf/README.gz.
Ответ на второй вопрос заключается в том, что resolvconf, скорее всего, не мешает работе dnsmasq. Я предполагаю, что вы столкнулись с ошибкой # 959037.
Объяснение: В Ubuntu 12.04 есть два способа запуска dnsmasq. Существует традиционная автономная версия dnsmasq, которая прослушивает все адреса. И есть новый контролируемый NetworkManager процесс dnsmasq, который слушает только 127.0.0.1. Последний конфликтует с первым, если первый не перенастроен. Эта проблема была решена в Ubuntu 12.10, когда контролируемый NM процесс dnsmasq прослушивал 127.0.1.1 вместо 127.0.0.1 и заставляя автономный процесс dnsmasq прослушивать только адреса, назначенные интерфейсам.
источник
resolv.conf
.nameserver x.x.x.x
/etc/resolvconf/resolv.conf.d/head. Имейте в виду, однако, что это, как правило, не является необходимым или рекомендуемым. Как правило, есть более правильный способ добавить строки "nameserver" в resolv.conf. Обычно утилита, которая настраивает сетевой интерфейс, добавляет или удаляет адреса серверов имен, доступные через этот интерфейс, запустивresolvconf -a
илиresolvconf -d
, соответственно. Приоритизация адресов серверов имен, добавленных таким образом, регулируется/etc/resolvconf/interface-order
.head
добавляло ее ПОСЛЕ сервера имен по умолчанию.echo x.x.x.x | resolvconf -a lo
бы добавить сервер имен, который хотел бы быть первым для всех интерфейсов.head
в начало (верх, начало)resolv.conf
.Я только что удалил его при установке. Я использовал pppd вручную для соединения с модемом 3G, и resolvconf вмешивался в мои настройки DNS, автоматически добавляя DNS своего провайдера, когда я хотел использовать собственный DNS. У pppd есть опции для управления этим, но resolvconf забил их своими настройками. Я также хотел бы знать ответ на этот вопрос? Кажется, это какой-то пакет типа «сделай это проще, но вместо того, чтобы усложнять»?
PS Я нашел этот отчет об ошибке: https://bugs.launchpad.net/ubuntu/+source/resolvconf/+bug/922578
источник
Простой ответ на (1): resolvconf устанавливает себя в качестве посредника между программами, которые предоставляют эту информацию (такими как ifup и ifdown, DHCP-клиенты, демон PPP и локальные серверы имен), и программами, которые используют эту информацию (например, DNS). кеши и резолвер библиотеки).
Это из описания пакета. На настольных компьютерах он работает совместно с NetworkManager для плавной обработки соединений.
Поэтому resolvconf вместе с dnsmasq используются в 12.04 для повышения надежности обработки информации DNS в настольной версии. Так что в некоторых ситуациях это делает вещи лучше, но в целом ситуации не хватает документации в нужном месте, особенно. в мире серверов.
Несмотря на множество поисков в Google, я не смог выяснить, что рекомендуется при установке сервера.
Что касается (2), у вас есть противоположная проблема от меня. Dnsmasq хорошо работает с resolvconf на моей машине и обновляет файл /etc/resolv.conf, чтобы он содержал 127.0.0.1, но имеет другие проблемы, потому что dnsmasq не получает серверы имен ISP от dhclient на eth0 (это шлюз), а также получить серверы имен, которые я ввел вручную в разделе eth0 в / etc / network / interfaces.
Почему вы используете dnsmasq? Вы также используете шлюз с двумя сетевыми картами? Или это просто обычный рабочий стол? Если это так, resolvconf координирует с сетевым менеджером
источник