
Eu tenho um roteador em execução, entre outras coisas, dnsmasq
com configuração padrão, então obtenho proxy DNS, além de servidores locais adicionais, além de resolução de nomes para todas as máquinas cujo endereço IP é gerenciado pelo dnsmasq
servidor DHCP.
Servidores e outros hosts estão no meu home.net
domínio
Até agora tudo bem.
Agora preciso me conectar via VPN a um site de cliente ( customer.net
) que tenha uma configuração muito semelhante (eles não estão usando dnsmasq, mas o efeito líquido é o mesmo).
Configurei uma pequena máquina (virtual) atuando como encaminhamento de roteador (com NAT) da rede local para o tun
dispositivo IPSec e adicionei algumas rotas estáticas aos (2) hosts que precisavam ver o customer.net; Fiz isso manualmente em vez de enviar as rotas pelo dnsmasq.
Além disso, isso parece funcionar sem problemas.
Agora tenho o último problema que não sei como resolver:
Posso acessar máquinas no customer.net
espaço de endereço privado especificando apenas o endereço IP, nenhuma resolução DNS está disponíveldns.customer.net
Como posso acessardns.customer.net
semperdendo conexão com dns.home.net
?
OBSERVAÇÃO: Posso modificar minha home.net
configuração (prefiro limitar as alterações aos poucos hosts realmente envolvidos), mas não tenho controle sobrecustomer.net
Situação que eu gostaria de ter é:
*.home.net
endereços devem ser resolvidos pordnsmasq
- Endereços roteáveis da Internet devem ser resolvidos por
dnsmasq
proxy do DNS do meu ISP. *.customer.net
endereços devem ser resolvidos pordns.customer.net
(posso acessar este host através de seu IP não roteável), possivelmente sem passar pelo meudnsmasq
Tudo isso é possível? Se sim, como?
Responder1
Depois de um pouco de investigação, descobri que dnsmasq
posso fazer o que preciso.
Aí vem um trecho da documentação padrão (Configuração do DNSmasq):
Usando servidores especiais.
O Dnsmasq tem a capacidade de direcionar consultas DNS para determinados domínios para servidores de nomes upstream específicos. Este recurso foi adicionado para uso com VPNs, mas é totalmente geral. O cenário é este: você tem uma conexão padrão com a Internet através de um ISP, e o dnsmasq está configurado para encaminhar consultas aos servidores de nomes do ISP, então você faz uma conexão VPN na rede da sua empresa, dando acesso aos hosts dentro do firewall da empresa. Você tem acesso, mas como muitos dos hosts internos não são visíveis na Internet pública, sua empresa não os publica no DNS público e você não pode obter seus endereços IP dos servidores de nomes do ISP. A solução é usar o servidor de nomes da empresa para domínios privados dentro da empresa, e o dnsmasq permite isso. Supondo que as máquinas internas da empresa estejam todas no domínio internal.myco.com e o servidor de nomes da empresa esteja em 192.168.10.1, a opção server=/internal.myco.com/192.168.10.1 direcionará todas as consultas no domínio interno para o domínio correto nome do servidor. Você pode especificar mais de um domínio em cada opção de servidor. Se houver mais de um servidor de nomes, inclua quantas opções de servidor forem necessárias para especificá-los todos.
No final, adicionei o "servidor especial" DNS e rotas estáticas adicionais ao meu dnsmasq principal (no meu firewall) e tudo funciona conforme necessário assim que a máquina virtual VPN estiver instalada e funcionando.
As linhas reais adicionadas ao meu dnsmasq.conf são:
server=/customer.net/192.168.20.253
dhcp-option=121,192.168.2.0/24,192.168.7.11,192.168.20.0/24,192.168.7.11
Espero que isso ajude alguém a interromper a perseguição.