Como configurar o DNS ao conectar-se a duas redes?

3

Eu tenho uma máquina linux com duas interfaces de rede. Ambos estão conectados a redes locais - um é 192.168.*.* , o outro é 10.*.*.* .

A rede 192.168.*.* é totalmente privada e não tem acesso à Internet. A rede 10.*.*.* tem acesso à internet.

Atualmente, posso fazer ping e os nomes serão resolvidos

ping google.com

No entanto, quando eu tento pingar um nome de máquina na rede 192.168.*.* , o nome não resolve

ping computer-name
ping computer-name.domain
ping computer-name.domain.local

Se eu especificar um endereço IP, ele será resolvido

ping 192.168.x.x

Como posso definir as configurações de DNS para que os nomes de máquina na rede local privada sejam resolvidos, mas ainda posso resolver endereços externos?

Estou usando o Centos6.

    
por Brendan Abel 22.02.2017 / 01:21

2 respostas

3

As bibliotecas de resolvedores locais assumem que qualquer servidor de nomes pode resolver todos os nomes. No seu caso, você pode obter o efeito colateral de que, se o seu local não for autoritativo, ele não responderá. Então suas bibliotecas tentarão novamente (após um atraso) com o próximo servidor de nomes.

Melhor seria executar um servidor de nomes local que enviará os dados para o local correto rapidamente. Se você instalar dnsmasq , a carne da configuração é bem simples. Algo como:

/etc/dnsmasq.conf

# This sets up your private domain
server=/privatedomain/192.168.10.15
server=/.168.192.in-addr.arpa/192.168.10.15

Você nem precisa mencionar o servidor principal (10.10.1.15) se ele estiver listado como um servidor de nomes no seu resolv.conf . Se receber uma solicitação de privatedomain, ele será direcionado ao servidor local. Se receber uma solicitação para qualquer outra coisa, ele usará os servidores não localhost no resolv.conf.

Em seguida, basta configurar seu servidor como o primeiro no resolv.conf.

resolv.conf

search privatedomain
nameserver 127.0.0.1
nameserver 10.10.1.15
    
por 22.02.2017 / 06:20
0

Consegui fazer isso funcionar modificando meu arquivo /etc/resolv.conf

domain privatedomain
search privatedomain publicdomain.com
nameserver 192.168.10.15
nameserver 10.10.1.15

O privatedomain é o nome do domínio de rede local 192.168.*.* . O publicdomain.com é o nome de domínio da rede 10.*.*.* com acesso à Internet.

Agora ele pode resolver todas essas solicitações corretamente

ping computer.privatedomain
ping computer
ping computer2.publicdomain.com
ping google.com

A única desvantagem disso é que quando tento resolver um nome que não pode ser acessado do domínio privado, há um atraso perceptível. Por exemplo:

ping google.com

Eu imagino que seja porque é a primeira tentativa de resolver o nome através do primeiro nameserver no privatedomain , que acabará por expirar, e depois vai para o segundo nameserver que é capaz de resolvê-lo.

    
por 22.02.2017 / 02:19

Tags