Я часто подключаюсь к нескольким сетям одновременно. Каждая из этих сетей обеспечивает настройку сервера имен через dhcp. Например, сеть 1: (eth0):
domain company1.corp #
nameserver 192.168.0.253
nameserver 192.168.0.254
Сеть 2 (tun0):
domain company2.corp #
nameserver 10.102.204.51
nameserver 10.102.208.51
# Имена изменены
При одновременном подключении к обеим сетям:
# resolv.conf from NetworkManager
domain company1.corp, company2.corp
nameserver 192.168.0.253
nameserver 192.168.0.254
nameserver 10.102.204.51
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
nameserver 10.102.208.51
Разрешение service.company2.corp не работает, так как первый сервер имен знает только имена company1.corp.
Вдохновленный этой статьей , я настроил openresolv (реализацию resolvconf), настраивая локальную службу dnsmasq в моей установке Arch linux.
Если я настраиваю серверы имен вручную, используя resolvconf:
# resolvconf -d NetworkManager
# echo "domain company1.corp
nameserver 192.168.0.253
nameserver 192.168.0.254
" | resolvconf -a eth0
# echo "domain company2.corp
nameserver 10.102.204.51
nameserver 10.102.208.51
" | resolvconf -a tun0
Затем я могу разрешить имена как из company1.corp, так и company2.corp (это обрабатывает локальный сервер dnsmasq.)
Обратите внимание, что после ручной настройки, resolconf -l показывает 2 конфигурации отдельно:
~ # resolvconf -l
# resolv.conf from tun0
domain company2.corp
nameserver 10.102.204.51
nameserver 10.102.208.51
# resolv.conf from eth0
domain company1.corp
nameserver 192.168.0.253
nameserver 192.168.0.254
Однако, когда сетевой менеджер разрешает выполнять настройку, две конфигурации не являются отдельными, как если бы сетевой менеджер писал в /etc/resolve.conf
~ # resolvconf -l
# resolv.conf from NetworkManager
# Generated by NetworkManager
domain company1.corp, company2.corp
nameserver 192.168.0.253
nameserver 192.168.0.254
nameserver 10.102.204.51
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
nameserver 10.102.208.51
Мой вопрос заключается в том, как заставить сетевой менеджер правильно вызывать resolconf, чтобы серверы имен для каждого интерфейса регистрировались отдельно. (К сожалению, поиск в Google для этого бесполезен, потому что Google считает, что "resolconf" == "resol.conf")
"resolvconf"
с кавычками. Всегда помещайте кавычки вокруг собственных имен в Google.