Я використовую MacBook з Mac OS X 10.8.2 і підключаюся до мережі моєї компанії через VPN. Все чудово працює при встановленні VPN-з'єднання через LAN або WLAN. Однак, коли я використовую комутований з'єднання (Huawei HSDPA USB Stick), імена хостів неправильно вирішені в додатках (наприклад, веб-браузері). Інструменти командного рядка, як-от host name
буде правильно вирішити IP-адресу, ping name
не вирішать.
Використовуючи, scutil --dns
я скидав конфігурацію DNS під час підключення через WLAN та комутований номер. Існує помітна різниця в порядку пошуку:
connecting using WLAN:
resolver #1
nameserver[0] : 192.168.80.10
nameserver[1] : 192.168.80.24
if_index : 6 (ppp0)
reach : Reachable,Transient Connection
order : 100000
resolver #2
nameserver[0] : 192.168.80.10
nameserver[1] : 192.168.80.24
if_index : 6 (ppp0)
reach : Reachable,Transient Connection
order : 200000
resolver #3
domain : local
options : mdns
timeout : 5
order : 300000
resolver #4
domain : 254.169.in-addr.arpa
options : mdns
timeout : 5
order : 300200
resolver #5
domain : 8.e.f.ip6.arpa
options : mdns
timeout : 5
order : 300400
resolver #6
domain : 9.e.f.ip6.arpa
options : mdns
timeout : 5
order : 300600
resolver #7
domain : a.e.f.ip6.arpa
options : mdns
timeout : 5
order : 300800
resolver #8
domain : b.e.f.ip6.arpa
options : mdns
timeout : 5
order : 301000
DNS configuration (for scoped queries)
resolver #1
nameserver[0] : 192.168.1.1
if_index : 4 (en0)
flags : Scoped
reach : Reachable,Directly Reachable Address
resolver #2
nameserver[0] : 192.168.80.10
nameserver[1] : 192.168.80.24
if_index : 6 (ppp0)
flags : Scoped
reach : Reachable,Transient Connection
З'єднання ppp0 - це з'єднання VPN. Як бачите, два сервери підключені і вони відповідають правильно в командному рядку та в додатках.
Connecting via UMTS:
resolver #1
nameserver[0] : 139.7.30.126
nameserver[1] : 139.7.30.125
if_index : 6 (ppp0)
reach : Reachable,Transient Connection
order : 100000
resolver #2
nameserver[0] : 192.168.80.10
nameserver[1] : 192.168.80.24
if_index : 7 (ppp1)
reach : Reachable,Transient Connection
order : 100000
resolver #3
nameserver[0] : 192.168.80.10
nameserver[1] : 192.168.80.24
if_index : 7 (ppp1)
reach : Reachable,Transient Connection
order : 200000
resolver #4
domain : local
options : mdns
timeout : 5
order : 300000
resolver #5
domain : 254.169.in-addr.arpa
options : mdns
timeout : 5
order : 300200
resolver #6
domain : 8.e.f.ip6.arpa
options : mdns
timeout : 5
order : 300400
resolver #7
domain : 9.e.f.ip6.arpa
options : mdns
timeout : 5
order : 300600
resolver #8
domain : a.e.f.ip6.arpa
options : mdns
timeout : 5
order : 300800
resolver #9
domain : b.e.f.ip6.arpa
options : mdns
timeout : 5
order : 301000
DNS configuration (for scoped queries)
resolver #1
nameserver[0] : 192.168.80.10
nameserver[1] : 192.168.80.24
if_index : 7 (ppp1)
flags : Scoped
reach : Reachable,Transient Connection
resolver #2
nameserver[0] : 139.7.30.126
nameserver[1] : 139.7.30.125
if_index : 6 (ppp0)
flags : Scoped
reach : Reachable,Transient Connection
Цього разу ppp1 - це VPN-з'єднання, а ppp0 - з'єднання UMTS. З часу відповідей команд (використовуючи неіснуюче ім’я хоста foo.bar.local
) я роблю висновок, що ping
використовує першу ланцюжок розв'язувача, де як host
використовує конфігурацію діапазону запитів. ping
потрібно 5 секунд, щоб повернути "Невідомий хост", host
повертається негайно. Я припускаю, що ping запускається на 5 секунд таймауту розв’язувача mdns.
Для того, щоб виправити свою проблему зі зламаними підключеннями DNS під час набору номера через VPN через модем, мені потрібно змінити порядок розв’язувачів. Поки що я не знайшов способу зробити це.
Будь-які ідеї вітаються.