自宅内でDNSサーバーを動かし、いくつかあるWEBサーバー(zabbixだったりtomcatだったりOracleのapexだったり)にアクセスしに行くとき、なぜかChromeだけホスト名でアクセスしても名前解決してくれない現象に一ヶ月近く悩まされた。
(半分くらい保留してたけど)
問題の切り分け
Chrome
- 「IPアドレス直打ち」で、自宅内のマシンにアクセスはできた
- 外部のWEBページは問題なく閲覧できる
- ホスト名入力しての名前解決ができない
FireFox&IE&Safari
- 全てにおいて問題なく閲覧できる
その他
- dig/nslookupでの名前解決はできる
- LAN内において起きる(そもそもLAN内でない限り自宅DNSで名前解決はしない)
- Windows,MacOSX,Ubuntu(Chromium)、全てのChromeで起きる。(全てのChromeは設定を同期している)
Chrome固有の問題で、設定情報を同期しているせいか、全てのマシンからアクセスできませんでした。
検証1:Chromeに格納されている閲覧データなどのキャッシュを削除する
意外とこれで解決する問題だと思うのですが、今回のケース、これだけでは解決しませんでした。
検証2:ChromeとGoogleの同期を解除し、設定も何もかも全てクリアな状態で接続する
これについてはさすがに接続が確認できました。
つまり、設定か同期の問題。
検証3:設定だけデフォルトで他のデータを同期させて接続する
ダメでした
じゃあ何が原因なの
DNSのキャッシュだけはどうも「設定」からはクリアできないようで、
その設定は アドレスバーに「chrome://net-internals/#dns」と打ち込む事でクリアできるようです。
DNSの古いキャッシュが邪魔していました。
ここらへんについては検証1ですでにクリアできていたものと思っていたので、見落としていましたね…。
DNSルックアップエラーだったり、ChromeってDNS周りが意外と面倒な気がする…。
よかったらシェアしてください!