MacBookをMac OS X 10.8.2で使用しており、VPN経由で会社のネットワークに接続しています。LANまたはWLANを介してVPN接続を確立する場合、すべてがうまく機能します。ただし、ダイヤルアップ接続(Huawei HSDPA USB Stick)を使用すると、ホスト名がアプリケーション(Webブラウザーなど)で正しく解決されません。などのコマンドラインツールhost name
はIPアドレスを正しく解決しますping name
が、解決しません。
使用しscutil --dns
て、WLAN経由で接続するときとダイヤルアップするときにDNS構成をダンプしました。検索順序には顕著な違いがあります。
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接続です。ご覧のとおり、2つのサーバーが接続されており、コマンドラインとアプリケーションで正しく応答しています。
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
、スコープ付きクエリ構成を使用するas最初のリゾルバーチェーンを使用することを推測します。ping
「不明なホスト」を返すのに5秒かかり、host
すぐに戻ります。pingがmdnsリゾルバーの5秒のタイムアウトに達すると仮定します。
モデムを介してVPN経由でダイヤルインするときに壊れたDNSルックアップに関する問題を解決するには、リゾルバーの順序を変更する必要があります。これまでのところ、私はこれを行う方法を見つけていません。
どんなアイデアでも歓迎します。