Eu tenho uma configuração de servidor OpenVPN no centro de dados e uso o tunnelblick como um cliente. Uma vez conectado, adicione rotas à minha rede DC LAN 10.0.0.0/24 e use 10.0.0.1 como DNS primário, 8.8.8.8 como DNS secundário.
10.0.0.1 hospede minhas entradas de DNS de subdomínio em dc.example.com
O problema é que, quando o túnel VPN é estabelecido, a resolução DNS não funciona de forma consistente.
Como eu verifiquei, /etc/resolve.conf e "Preferência do Sistema - Rede - Servidores DNS" mostra o mesmo resultado, que tem "10.0.0.1" e "8.8.8.8" como esperado.
No entanto, no terminal, obtive resultados mistos entre "dig" e "ping". Para cavar eu posso ficar como
➜ ~ dig ftp.dc.example.com
; <<>> DiG 9.8.3-P1 <<>> ftp.dc.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22990
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;ftp.dc.example.com. IN A
;; ANSWER SECTION:
ftp.dc.example.com. 3600 IN A 10.0.1.13
;; Query time: 84 msec
;; SERVER: 10.0.0.1#53(10.0.0.1)
;; WHEN: Thu Nov 24 15:39:21 2016
;; MSG SIZE rcvd: 55
Mas para ping eu consegui
➜ ~ ping ftp.dc.example.com
ping: cannot resolve ftp.dc.example.com: Unknown host
E em outra aplicação como navegador eu tenho o mesmo resultado que "ping", basicamente insolúvel.
Como você pode ver, não há nenhum problema ou problema de rede com o servidor DNS, caso contrário, "escavação" não funcionaria.
Mas, se eu consultar "www.google.com", os dois "ping" e "dig" funcionarão.
Assim, quando a conexão VPN é estabelecida, o arquivo resolve.conf é atualizado de acordo, mas alguns aplicativos ainda podem estar consultando o servidor DNS antigo.
Tentei reabrir o aplicativo do terminal ou usar terminal diferente como o iTerm, mesmo resultado. Mas se eu esperar por um tempo, digamos de 10 a 15 minutos, o ping e o navegador funcionarão.