Почему мне пришлось удалить resolvconf, чтобы снова запустить dnsmasq?

8

Вчера я обновился до Precise и dnsmasq перестал работать. То есть DNS-запросы к localhost, где dnsmasq прослушивает (127.0.0.1), были отклонены.

Удаление resolvconf ( apt-get remove resolvconf) и перезагрузка решили проблему (нашел это предложение где-то в Google). /etc/resolv.confвыглядел хорошо с и без resolvconf на месте. Нет разницы вообще.

  1. Зачем мне использовать resolvconf? Есть ли какие-то преимущества? Статья в Википедии, посвященная resolvconf, - отстой.
  2. Почему resolvconf мешает работе dnsmasq? Это известная проблема?
lightxx
источник
bla @ blubb: ~ $ [-f /usr/share/doc/resolvconf/README.gz] && echo "Найдено" || эхо "Не найдено" Не найдено Умник.
lightxx

Ответы:

10

Простой ответ на (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 прослушивать только адреса, назначенные интерфейсам.

jdthood
источник
Я прочитал manapage и до сих пор не могу найти надежный способ добавить свои собственные серверы имен resolv.conf.
Майкл Миор
С установленным resolvconf вы можете добавить адрес сервера имен, добавив nameserver x.x.x.x/etc/resolvconf/resolv.conf.d/head. Имейте в виду, однако, что это, как правило, не является необходимым или рекомендуемым. Как правило, есть более правильный способ добавить строки "nameserver" в resolv.conf. Обычно утилита, которая настраивает сетевой интерфейс, добавляет или удаляет адреса серверов имен, доступные через этот интерфейс, запустив resolvconf -aили resolvconf -d, соответственно. Приоритизация адресов серверов имен, добавленных таким образом, регулируется /etc/resolvconf/interface-order.
Jdthood
Фактически, добавление строки сервера имен headдобавляло ее ПОСЛЕ сервера имен по умолчанию.
Майкл Миор
Я не тестировал его, но, похоже, решил echo x.x.x.x | resolvconf -a loбы добавить сервер имен, который хотел бы быть первым для всех интерфейсов.
Майкл Миор
Resolvconf всегда помещает содержимое headв начало (верх, начало) resolv.conf.
Jdthood
2

Я только что удалил его при установке. Я использовал pppd вручную для соединения с модемом 3G, и resolvconf вмешивался в мои настройки DNS, автоматически добавляя DNS своего провайдера, когда я хотел использовать собственный DNS. У pppd есть опции для управления этим, но resolvconf забил их своими настройками. Я также хотел бы знать ответ на этот вопрос? Кажется, это какой-то пакет типа «сделай это проще, но вместо того, чтобы усложнять»?

PS Я нашел этот отчет об ошибке: https://bugs.launchpad.net/ubuntu/+source/resolvconf/+bug/922578

Marko
источник
спасибо за ваш вклад. Я бы проголосовал за это, но мне не хватает представителя.
lightxx
@lightxx: за тебя проголосовали;)
Томаш Зелиньски
Вместо удаления resolvconf вы можете настроить resolvconf на игнорирование информации сервера имен, поступающей из pppd.
Jdthood
Нормальное содержание resolv.conf довольно просто. Всякий раз, когда машина является сервером или даже рабочей станцией, не предназначенной для ноутбука, очевидно, что проще отследить один файл resolv.conf, а не полдюжины различных файлов, потенциально используемых resolvconf.
ericx
@jdthood - я не вижу, как это сделать на справочной странице resolvconf.conf, меня интересуют особенности реализации.
дпс
1

Простой ответ на (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 координирует с сетевым менеджером

Адам
источник
спасибо за Ваш ответ. Я бы проголосовал за это, к сожалению, вам нужно 15 репутации, чтобы проголосовать. LOL
LightXX
1
man-страницы хороши, когда вы знаете, что вам нужно знать. Если вы этого не сделаете, они могут быть озадачивать, если не сказать больше. Howto's, примеры и часто задаваемые вопросы - это то, что вам нужно, когда у вас нет опыта в какой-либо области.
Адам
upvoted @lightxx от вашего имени :)
FKL