Em situações como essa, você geralmente precisa configurar um resolvedor de DNS que encaminhará para vários servidores DNS upstream baseados no namespace. Você pode fazer isso com DNSMasq , Ligação e outros servidores DNS.
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 externo 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.
Em situações como essa, você geralmente precisa configurar um resolvedor de DNS que encaminhará para vários servidores DNS upstream baseados no namespace. Você pode fazer isso com DNSMasq , Ligação e outros servidores DNS.
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.