У меня есть настройка сервера OpenVPN в центре обработки данных и использую tunnelblick в качестве клиента. После подключения он добавляет маршруты в мою сеть DC LAN 10.0.0.0/24 и использует 10.0.0.1 в качестве основного DNS, 8.8.8.8 в качестве вторичного DNS.
10.0.0.1 разместить DNS-записи моего поддоменов в dc.example.com
Проблема в том, что когда VPN-туннель установлен, разрешение DNS не работает согласованно.
Как я проверил, и /etc/resolve.conf, и «Системные настройки - Сеть - DNS-серверы» показывают одинаковый результат, который имеет «10.0.0.1» и «8.8.8.8», как и ожидалось.
Однако в терминале я получил смешанный результат между "копанием" и "пингом". За копать я могу получить что-то вроде
➜ ~ 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
Но за пинг я получил
➜ ~ ping ftp.dc.example.com
ping: cannot resolve ftp.dc.example.com: Unknown host
И в других приложениях, таких как браузер, я получил тот же результат, что и "ping", в основном неразрешимый.
Как видите, нет проблем с сетью или с DNS-сервером, иначе "копание" не сработает.
Но если я сделаю запрос «www.google.com», то будут работать и "ping", и "dig".
Таким образом, кажется, что когда VPN-соединение установлено, resol.conf соответствующим образом обновляется, но некоторые приложения могут по-прежнему запрашивать старый DNS-сервер.
Я попытался открыть приложение терминала или использовать другой терминал, такой как iTerm, тот же результат. Но если я подожду некоторое время, скажем, 10-15 минут, то пинг и браузер будут работать.