Na minha área de trabalho que executa o openSUSE 11.4, eu tenho uma rede local que obtém seu endereço, domínio (work.site) e nameservers (10.100.1.1, 10.100.1.2) informações através do DHCP - que são gravadas em / etc / resolv .conf
Eu consigo acessar a internet usando a rede de trabalho, e esses 2 nameservers acabam retornando as entradas para pesquisas de nomes de domínio público na internet.
Eu também tenho uma VPN privada que acabo conectando. O servidor de nomes (10.111.1.1) e o domínio (private.site) raramente são obrigados a mudar para esta rede, mas atualmente eles são empurrados pelo cliente openVPN para o networkmanager, e que também é mesclado com o /etc/resolv.conf existente.
Meu resolv.conf acaba ficando assim:
search private.site work.site
nameserver 127.0.0.1
nameserver 10.111.1.1
nameserver 10.100.1.1
Como você pode ver, o segundo nameserver da minha rede de trabalho foi removido devido às limitações máximas de 3 entradas. Ainda bem, mas seria um problema se esse servidor de nomes faltar para manutenção ou algo assim.
Então eu descobri que o dnsmasq poderia me ajudar aqui e, portanto, eu configurei o dnsmasq apenas como um resolvedor de DNS local sem qualquer suporte DHCP.
Então, agora, esse é meu /etc/dnsmasq.conf:
resolv-file=/etc/resolv.conf
server=/private.site/10.111.1.1
server=/1.111.10.in-addr.arpa/10.111.1.1
listen-address=127.0.0.1
bind-interfaces
log-queries
Eu fiz o dnsmasq obter a lista de servidores de nomes do /etc/resolv.conf, pois o NetworkManager parece estar atualizando esta lista corretamente (para um máximo de 3 nameservers). Consigo resolver os nomes de host nas duas redes corretamente.
Essas são as perguntas que tenho:
- Existe uma maneira de fazer o NetworkManager ou o dhclient escrever a lista de servidores de nomes em algum outro lugar que eu possa fazer o dnsmasq usar como arquivo-resolv?
- Como faço para o dnsmasq usar certos servidores de nomes como o padrão para todas as consultas? Neste momento, percebo que as buscas por domínios públicos na internet geralmente são enviadas para os dois servidores de nomes - o do work.site e o do private.site. Seria bom se eu pudesse limitar isso apenas a work.site.
ATUALIZAÇÃO:
Estas são as soluções que encontrei:
Em / etc / sysconfig / network / config, altere o seguinte:
NETCONFIG_DNS_FORWARDER="dnsmasq"
NETCONFIG_DNS_FORWARDER_FALLBACK="no"
NETCONFIG_DNS_STATIC_SEARCHLIST="work.site private.site"
Em /etc/dnsmasq.conf, adicione estas linhas:
resolv-file=/var/run/dnsmasq-forwarders.conf
Eu também tive que modificar meu servidor openVPN.conf para não enviar servidores de nomes para os clientes, já que eu já havia adicionado uma regra de servidor no meu dnsmasq.conf para esse domínio.