IPv6なサーバーにGoogle Chromeが接続してくれない!
状況
- クライアントPCにはIPv6のデフォルトルートが無い (IPv6インターネットには出られない)
- リンクローカルやULAでサーバーまでの接続性はある (VPNやLANの開発ネットワークなどには繋がっている)
- サーバー側のホスト名はULAのAAAAレコードがある (DNSには登録済み)
この場合Firefoxは黙って接続してくれるがGoogle Chromeは接続を拒否してミスリーディングなエラー(ERR_NAME_NOT_RESOLVED)を返す。
原因
Google ChromeはIPv6接続性が無いと判定するとそAAAA名前解決をやめてしまう。Aレコードがないので名前解決不可とみなされる。
回避方法
2001:4860:4860::8888 宛のルートを登録する。
Windowsなら
netsh interface ipv6 add route 2001:4860:4860::8888/128 "ローカル エリア接続" fe80::1 store=persistent
- ChromeはIPv6接続性の判定にこのアドレスへのルートがあるかを用いている
- 到達性は不要。適当なブラックホールルートを登録すればいい