Debian 8 resolv.conf перезаписывается автоконфигурацией IPv6 /DHCP при отключенном DHCP

Я недавно установил Debian 8 в сети с включенным протоколом IPv6 DHCP. Файл /etc/resolv.conf постоянно перезаписывается протоколом DHCP IPv6, несмотря на тот факт, что все протоколы IPv6 DHCP отключены, автоконфигурация IPv6 отключена и процесс dhclient не существует. Если я изменю DNS-серверы IPv6 DHCP на маршрутизаторе, они будут обновлены в кратком порядке в /etc/resolv.conf. Следующее верно:

  • resolvconf отсутствует в системе
  • сетевой менеджер не находится в системе
  • автоконфигурация IPv6 была принудительно отключена net.ipv6.conf.all.autoconf=0 а также net.ipv6.conf.all.accept_ra=0 А ТАКЖЕ net.ipv6.conf.eth0.autoconf=0 потому что по каким-то причинам первые два были недостаточными.
  • Процесс dhclient не активен
  • Auditd возвращает PID некоторой оболочки, которая мгновенно умирает при поиске изменений в resolv.conf. Может понадобиться увеличить мою игру трассировки стека.
  • dns-nameserver записи в /etc/network/interfaces полностью игнорируются как для ipv4, так и для v6

Я бы предпочел ответ, который не "полностью отключить IPv6", хотя я приближаюсь к этому моменту (и достаточно сказать, что это была бы физическая машина, а не виртуальная, я бы уже выбросил ее из окна),

РЕДАКТИРОВАТЬ: Обратите внимание, что net.ipv6.conf.all.disable_ipv6=0 в sysctl устраняет эту проблему, но может показаться, что resolv.conf теперь периодически полностью очищается, что нарушает работу DNS.

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
    address xx.xx.xx.xx
    netmask 255.255.255.248
    gateway xx.xx.xxx.xx
    dns-nameservers 8.8.8.8

#auto 6to4
#iface 6to4 inet6 6to4
#       local xx.xx.xxx.xx
#       dns-nameservers 2001:4860:4860::8888

3 ответа

У тебя есть rdnssd пакет установлен? При этом запускается демон, который запускает сценарии оболочки, которые, безусловно, ведут себя так, как вы описали выше.

Обратите внимание, что dns-nameservers Атрибут на интерфейсе работает только с resolvconf,

Лучший способ решить эту "проблему" - установить пакет resolvconf.

sudo apt-get install resolvconf

После этого /etc/resolv.conf заменяется символической ссылкой на /etc/resolvconf/run/resolv.conf, которая динамически генерируется resolvconf с информацией из файла / etc / network / interfaces

Обратите внимание, что записи dns-nameserver в / etc / network / interfaces игнорируются, если в вашей системе не установлен пакет resolvconf. Вы можете найти больше информации о пакете resolvconf в документации по вики Debian или на страницах руководства.

man resolvconf

Вы можете отслеживать вещи, чтобы увидеть, какой процесс модифицирует файл

https://unix.stackexchange.com/questions/99074/find-which-process-is-modifying-a-file

При желании вы можете временно отредактировать resolv.conf, а затем

chattr +i /etc/resolv.conf

Чтобы что-нибудь изменить

Другие вопросы по тегам