Eu geralmente me conecto a várias redes simultaneamente. Cada uma dessas redes fornece configuração de servidor de nomes via dhcp. Por exemplo. Rede 1: (eth0):
domain company1.corp #
nameserver 192.168.0.253
nameserver 192.168.0.254
Rede 2 (tun0):
domain company2.corp #
nameserver 10.102.204.51
nameserver 10.102.208.51
# Nomes alterados
Quando conectado a ambas as redes simultaneamente:
# 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
Resolver service.company2.corp não funciona porque o servidor de primeiro nome só conhece os nomes company1.corp.
Então, inspirados por este artigo , eu configurei openresolv (uma implementação resolvconf) configurando um serviço dnsmasq local na minha instalação do Arch Linux.
Se eu configurar os servidores de nomes manualmente usando o 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
Em seguida, posso resolver nomes de company1.corp e company2.corp (o servidor dnsmasq local lida com isso.)
Note que após a configuração manual, o resolveconf -l mostra as 2 configurações separadamente:
~ # 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
No entanto, ao deixar o gerenciador de rede fazer a configuração, as duas configurações não são separadas, como seria se o gerenciador de rede estivesse gravando em /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
Minha pergunta é como posso obter o gerenciador de rede para chamar corretamente o resolveconf para que os servidores de nomes de cada interface sejam registrados separadamente. (Infelizmente googling para isso é inútil porque o Google pensa que "resolveconf" == "resolve.conf")