Все примеры, которые я видел для configurations ( /etc/network/interfaces
), показали, что вы настраиваете интерфейс, а затем внизу это дает dns-*
такие строки, как:
auto eth0
iface eth0 inet static
...
dns-nameservers 127.0.0.2
dns-search example.com my.example.com
Теперь я знаю, что протокол DNS не зависит от транспортного механизма. Поэтому не следует ошибочно добавлять IPv6-адрес в dns-nameservers
строку.
Тем не менее, поскольку я все равно настраиваю интерфейс для IPv6, имеет смысл добавить dns-nameservers
туда строку:
iface eth0 inet6 static
...
dns-nameservers ::2
dns-search example.com my.example.com
... или сделал это? Потому что , когда resolvconf
создается /etc/resolv.conf
его просто игнорирует все серверы IPv6 DNS. Это также, кажется, игнорирует dns-search
и dns-domain
. Похоже, единственная строка, которой он соответствует, - это dns-nameservers
строка конфигурации IPv4 eth0
.
Как правильно настроить DNS-серверы?
Дополнительные косвенные доказательства того, почему это должно быть частью каждой соответствующей iface
строфы. Цитата из man 8 resolvconf
:
ifup(8)
Программа может быть использована для сетевых интерфейсов конфигурационных в соответствии с настройками/etc/network/interfaces(5)
. Чтобы сделатьifup
push-информацию о сервере именresolvconf
при настройке интерфейса, добавьтеdns-
строки в соответствующийiface
раздел/etc/network/interfaces
. Чтобы добавить адреса серверов имен, добавьте строку, начинающуюся сdns-nameservers
.
источник
Ответы:
Правильно указывать опции dns- * в
iface eth0 inet static
строфе илиiface eth0 inet6 static
строфе. Опции становятся активными, когда определение логического интерфейса, которому они принадлежат, становится активным.Я только что проверил это на моей собственной машине Ubuntu 15.04, которую я обычно настраиваю с DHCP. Я отключил NetworkManager и отредактировал / etc / network / interfaces так, чтобы он выглядел так:
Я тогда сделал
Результаты, достижения:
Обратите внимание, что теперь активны адреса, dns-nameservers и dns-search из обоих разделов.
[Обновлено 30 мая 2015 года]
источник
На моем RPi под управлением Ubuntu 16.04.2 LTS мои выводы были следующими:
Примечание: я удалил NetworkManager и просто оставил resolvconf, чтобы заняться своими делами. (Это фиксированный сервер, поэтому в сети ничего не меняется.)
Если бы у меня были строки dns-search и dns-nameserver только на ОДНОМ интерфейсе (основной, проводной), но не на другом (wlan0), то при перезагрузке примерно 95% времени мой файл /etc/resolv.conf был бы опорожнить.
Например, когда мой файл интерфейсов выглядел так:
ТОГДА после перезагрузки мой resolv.conf будет выглядеть так:
Тем не менее, при одной или двух перезагрузках я заметил, что он имел то, что хотел, например
Решение Когда я дал обоим интерфейсам (wired и wlan0) строки dns-search и dns-nameserver, все работало нормально при каждой перезагрузке (так или иначе)
т.е. у меня работает следующий файл интерфейсов:
и дает мне следующий правильный resolv.conf после каждой перезагрузки (пока)
Я предполагаю, что этот дубликат конфигурации нормальный, но несколько избыточный.
Вывод: если интерфейсу (кроме lo0) не хватает информации dns-search и dns-nameserver, то resolvconf ничего не помещает в ваш файл resolv.conf. (Это как если бы ifup сделал интерфейс wlan0 вторым, а ifup уничтожил resolv.conf или что-то подобное.)
Я не уверен, если это ошибка или нет, мне кажется, что это неправильно.
источник
Редактирование сетевых интерфейсов для добавления использования вашего собственного DNS - это способ ... но для постоянного изменения общесистемного resolv.conf с вашим пользовательским сервером dnsname вам необходимо установить пакет resolvconf (если он еще не установлен по умолчанию) и заполнить его базу файл конфигурации с вашими пользовательскими значениями DNS-серверов. Надеюсь, что это краткое руководство поможет вам в дальнейшей настройке, касающейся DNS-записей resolv.conf http://www.bytelinux.com/make-permanent-changes-to-resolv-conf-file-on-ubuntu/
источник
resolvconf
будет установлен. Я хотел бы/etc/network/interfaces
настроить свои DNS-серверы для IPv4 и IPv6 соответственно.Вы хотите использовать DNS-серверы IPv6 в /etc/network/interfaces... Просто поместите записи DNS-имен IPv6 в конкретный сетевой интерфейс следующим образом:
Для постоянного добавления dnsnamesers IPv6 в resolv.conf используйте ту же ссылку, которую я добавил ниже, и отредактируйте базовый файл resolvconf, заполнив свои собственные DNS-имена IPv6:
Для настройки / etc / network / интерфейсов с IPv6 используйте это руководство http://www.bytelinux.com/configure-permanent-static-ip-address-alias-interfaces-debian-based-systems/ и замените IPv4 на IPv6 как следует: авто eth0
источник
/etc/resolv.conf
. Если это как-то работает для вас, было бы полезно узнать точную версию системы./etc/network/interfaces
порядке. Чего не происходит, так это того, что их переводят/etc/resolv.conf
как надо. И я пытаюсь понять, что я делаю неправильно, да.Почему бы вам не внедрить эти DNS-серверы IPv6 непосредственно в системный файл /etc/resolv.conf, отредактировав базовый файл resolvconf, как предложено в моем предыдущем ответе со ссылкой, и по-прежнему использовать файл сетевых интерфейсов? Вы можете добавить набор DNS-серверов имен IPv6 в /etc/resolv.conf, а если вы хотите использовать другие серверы имен IPv6 для конкретного сетевого адаптера, используйте их только в / etc / network / interfaces.
источник
/etc/network/interfaces
как должен делать работу, я пытаюсь понять, что я делаю неправильно.