最近、自宅でも会社でも、OS X Lionを使っていると、突然、DNSで名前解決ができなくなるという症状が頻発するのですが、ある程度、切り分けできたようなのでメモ。
・同一環境下(DNSサーバとしてGoogle Public DNSを参照)でOS X LionとWindows7を使っているが、症状が出るのはOS X Lionの一部のソフト。
・具体的には、OS X Lionでシステム環境設定のネットワークに依存しているソフト。
Apple純正のソフト(Safariなど)、Chrome、夜フクロウなど。
※Firefoxは独自に自前で名前解決を行っているせいか症状は起きない。
・ソフトを再起動しても症状は解決せず、しばらく放置するか、Wi-Fiを切って入れ直すと症状が改善することがある。
・Linux上に立てているSquid経由で通信する、dnsmasq経由で名前解決をすると症状が起きない。
試しにOS X上にdnsmasqをMac Portsでインストールして、ローカルのDNSサーバを経由してGoogle Public DNSを参照するようにしたところ、いまのところ全く症状が出なくなりました。
ちなみに、dnsmasqを自動立ち上げするには、以下のplistのDisabledキーをtrueからfalseに変更するだけです。
/Library/LaunchDaemons/org.macports.slapd.plist
変更前:<key>Disabled</key> <true/>
変更後:<key>Disabled</key> <false/>
Google Public DNSは人気があるそうで、負荷が高い時にクエリーに応答するまでに長い時間がかかってOS X Lion側のリゾルバの処理がタイムアウトしてしまうのかもしれません。また一度タイムアウトしてしまうと、リゾルバのDNSキャッシュをフラッシュしないと、しばらくの間?、正常に名前解決ができなくなるようです。
dscacheutil -flushcache
ということで、同じ症状に悩んでいる方は、dnsmasqを導入することをオススメします。
最近のコメント