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
Чтобы что-нибудь изменить