FacebookとGoogleだけ、やたら遅い場合の対処


犯人は、フレッツ光です。(ということらしいです。2014年10月現在)

最近、IPv6対応サイトが増えて来た所為か、特定のサイトだけアクセスしにくくなるケースが増えています。「GitHubは普通に繋がるのに、なんでFacebookとGoogleに繋がらないの??」ということないですか? 「天下のGoogleがそんなにしょっちゅう落ちてる訳ない!」と思いつつも、「海外サイトが繋がらないのはプロバイダのIPがBANされてるのかな...」とか、「ルータの調子が悪くなることもあるよね」とかあきらめてませんか?

対策は簡単でした。フレッツ止めるか、「IPv6を使わない」こと。

  • ブラウザのIPv6機能をオフにする
  • OSレベルでIPv6の機能をオフにする

のどちらか。後者の方が確実ですが、AirDropが使えないとか、Bonjourが使えないとかの問題もあるので、ケースバイケースで。(業務用ルータであれば、他の手もあるはず。念のため)

ブラウザのIPv6機能をオフにする

Chromeの場合、設定項目がないのですが、起動オプションを付けるとオフにできます。

$ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-ipv6

長ったらしいので、毎回使うならエイリアス設定を。

$ echo "alias chrome='/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-ipv6'" >> ~/.profile

OSレベルでIPv6の機能をオフにする

Mac OS 10.9 では、GUIからIPv6を切ることができないので、次のコマンドを実行します。

$ networksetup -setv6off Wi-Fi

これだけです。ちなみに、元に戻すときは、次のコマンド。

$ networksetup -setv6automatic Wi-Fi

IPv6がオフになっているか確かめる

次のサイトにアクセスしてみましょう。

即座に、"This webpage is not available"と表示されれば、設定成功です。

まとめ

IPv6について、動作しない場合はIPv4にフォールバックされるはずと高をくくっていましたが、ルーティング途中のエラー要因が複数ある場合は、ブラウザのフォールバックが効かない、非常に遅いという事態がありえるようです。少し古いですが、IETFの資料を参考に挙げておきます。フォールバックを並列で行うHappy EyeballsがRFCにありますが、各社のブラウザの実装はまちまち

この問題、数年前から指摘されていたものの、最近になってIPv6対応サイトが増えて顕在化して来たみたいですね。フレッツ光のルーティングがなんでこんなことになってるかは、当時書かれたページほかに譲ります。

補足

アップルからサポート情報を見る限り、IPv6の手動設定を行えば良いということのようですが、該当情報が手元の環境ではプロバイダから提供されてないため、断念。IPv6接続オプションを申し込めば送られてくるのかしら...?

参考