У меня есть сервер Ubuntu 14.04, у которого два IP-адреса указаны на одном интерфейсе. Они определены в / etc / network / interfaces следующим образом:
auto em1
iface em1 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.1.10 192.168.1.11
iface em1 inet static
address 192.168.1.3
netmask 255.255.255.0
Согласно вики Debian Я указал несколько IP-адресов в современном стиле, просто объявив несколько строф iface, относящихся к одному и тому же интерфейсу.
Однако, когда на этом сервере появляется сеть, /etc/resolv.conf остается пустым, за исключением стандартного заголовка:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
И поэтому все поиски DNS терпят неудачу, поскольку он не пытается связаться с серверами имен.
Я четко указал локальные серверы имен для использования в dns-nameservers
строчку в / etc / network / interfaces выше. Почему их нет в resolv.conf?
Фактические IP-адреса были изменены, чтобы защитить невиновных
Оказывается, что, похоже, происходит то, что, когда resolvconf анализирует файл интерфейсов, поскольку у меня есть несколько разделов iface, нацеленных на один и тот же интерфейс, указанные параметры DNS в первом разделе отбрасываются, когда resolvconf затем анализирует второй раздел iface.
Если я перепишу свой / etc / network / interfaces, чтобы он выглядел так:
auto em1
iface em1 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
iface em1 inet static
address 192.168.1.3
netmask 255.255.255.0
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.1.10 192.168.1.11
Затем создается файл resolv.conf с ожидаемым содержимым:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.10
nameserver 192.168.1.11