При обновлений dnsmasq произошло следующее (спасибо etckeeper): ============================================================================== /etc#git-diff 'HEAD^' resolv.conf.dnsmasq diff --git a/resolv.conf.dnsmasq b/resolv.conf.dnsmasq deleted file mode 100644 index 11d3eee..0000000 --- a/resolv.conf.dnsmasq +++ /dev/null @@ -1,5 +0,0 @@ -domain orionnet.ru -search orionnet.ru -nameserver 80.65.20.1 -nameserver 80.65.16.1 -nameserver 62.213.32.130 /etc#git-log H -9 commit 0883055f96fa3552f3883e3e338c642d5e5a9abf Author: Evgenii Terechkov <evg@altlinux.org> Date: Tue Sep 30 09:22:50 2008 +0800 committing changes in /etc after apt run Package changes: -dnsmasq-2.41-alt3 +dnsmasq-2.45-alt2 ============================================================================== т.е., прошлая версия пакета создаёт файл из resolv.conf и при обновлений аккуратно затирает за собой единственный источник DNS-имён. Как это должно было работать, непонятно. Вскрылось при отключений питания сервера, на котором недавно обновлися dnsmasq. После загрузки резолвинг не работал.
Уточнение: после перезагрузки подошёл к машине с неработающим резолвингом, а там есть и /etc/resolv.conf и /etc/resolv.conf.dnsmasq - с namaserver-ом 127.0.0.1, бинарно идентичные.
Кажется, понял, в чём дело. В спеке за удаление и обновление отвечает следующий код: %preun %preun_service %name %__rm -f %_sysconfdir/*.dnsmasq 2>&1 # fixme! should be more elegant.. Проблема в том, что /usr/sbin/preun_service не останавливает сервис, если речь идёт об обновлении. Соответственно, /etc/resolv.conf.dnsmasq не переписывается обратно в /etc/resolv.conf Скорее всего, исправление должно сводиться к... test "$RPM_INSTALL_ARG1" = "0" && %__rm -f %_sysconfdir/*.dnsmasq 2>&1
Не понимаю, как это исправление будет способствовать переписыванию resolv.conf.dnsmasq в resolv.conf (и нужно ли это вообще). Может, проще не гонять оригинальный resolv.conf (тоже, кстати, берущийся динамически из конфигураций /etc/net) туда-сюда, а просто не трогать его?
BTW сейчас в моде, чтоб /etc/resolv.conf занимался openresolv, насколько понимаю. Документации по прикручиванию не встречал, явно придётся дёргать майнтейнера. Илья, Вы сейчас занимаетесь dnsmasq?
"openresolv ships with helpers for ISC BIND, PowerDNS Recursor and dnsmasq." Открутили, что ли?
(In reply to comment #5) > "openresolv ships with helpers for ISC BIND, PowerDNS Recursor and dnsmasq." > > Открутили, что ли? Скорее не прикручивали. Чтобы openresolv работал в связке с dnsmasq надо прописать одинаковые значения conf-file и resolv-file в их конфигах. И запретить dnsmasq вообще трогать /etc/resolv.conf, он даже читать его не должен. Как проверю, наконец, как это работает - повешу отдельным багом.
(In reply to comment #6) > Как проверю, наконец, как это работает - повешу отдельным багом. Можно сразу оформлять NMU, в письме Message-ID: <7011dfc80906161629i1d184cf6rece26943c24badd1@mail.gmail.com> Илья сообщил, что: --- Я не возражаю против обновлений. У меня сейчас нет возможности заниматься Альтом. --- Стояла копия в community@, но там письма от неподписчиков довольно давно и на модерацию не становятся.
2 sem@: меня в CC: этой новой баги, если можно.
> 2 sem@: меня в CC: этой новой баги, если можно. Новую багу тогда уж вешать не буду, сразу готовлю обновление dnsmasq для работы с openresolv. Этот баг закроется как следствие.
* Mon Jun 22 2009 Mikhail Efremov <sem@altlinux> 2.46-alt1.1 - NMU: - fno-strict-aliasing compiler option is added. - fixed pointer cast. - do not start dnsmasq by default. - init script: condreload is added. - resolvconf support (closes: #17398, #19369).
Поскольку dnsmasq уже не использую, то закрываю как есть, пусть кто-нибудь другой проверит.