iOS5.1へのアップデートができない(解決編)
早速iOS5.1にアップデートしようと、iPhone4からWifi経由でアップデートを始めたけど「残り時間を計算中…」の表示の後にエラーが表示され先に進めない。
数回エラーを繰り返した後、AppleのQA:「iTunes から iPhone、iPad、または iPod のソフトウェアアップデートサーバに接続できない場合 - Apple サポート
」を見たけど、今回は当てはまらなそう。
仕方ないので、モノは試しとイーモバイル経由(Wifiテザリング)でアップデートを行うと速度は遅いがダウンロードが開始され、プログレスバーも伸びていく。
もう一度、家の回線経由にすると全く繋がらなくなり同じエラーが表示され続ける...。
最初は、Apple側の配信サーバーで接続数を絞っているのかと思ったけど、Twitterを見ているとDNSの設定変更で問題を回避できたという投稿を見かけた。
そこで今回はiPhone側のDNSをGoogleDNS(8.8.8.8)にする方法を使うことに。
iPhoneのDNS設定変更例(iOSアップデート後は元の設定に戻す事を推奨します):
DNSの変更方法は、[設定]→[一般]→[Wi-Fi]の画面で”ネットワークを選択”欄の使用中接続先をタップする。
[DNS]をタップして数字「8.8.8.8」を入力する。
早速試してみると、効果抜群ですぐに家の回線でダウンロードが始まった。
原因の推測
どうやら上流DNSの浸透問題(参考:DNSの「浸透問題」は都市伝説――正しいサーバー引っ越し法を解説 - INTERNET Watch Watch)の可能性が高い気がする。
この現象から勝手に推測すると、Appleが今回のiOS5.1リリースによる大量のアクセスを予想してCDNを増強したけど、一部のDNSでは従来の配信用サーバーのDNSレコードだけが保持されてしまい、結果として従来からある配信サーバーへ、多くの人がアクセスしてしまい混雑を引き起こしたってことあたりかな?
指摘頂いたとおり今回の原因は、DNSでの配信サーバーの名前解決失敗であった。
8.8.8.8 じゃないと iOS アップデートができない人は、多分ブロードバンドルータに 512byteを越える応答が扱えない障害を抱えています。あるいは ISP の DNSキャッシュサーバが TCP や EDNS0 に対応していない可能性も排除できません。途中のネットワークに TCP 53 をフィルターするファイアウォールが入っている可能性もあります。
インターノット崩壊論者の独り言 - iOSアップデートの罠 - iOSのアップデートで8.8.8.8を使うのは回避策であって解決策ではない
ただ、ここ最近までiOSのアップデートに失敗したケースはないため、AppleがiOS5.1リリースにあたり配信用サーバー(Akamai)を増強した結果、名前解決時のDNSレコード数が増加してしまい(その結果回答パケットのサイズが512バイトを超過)、一部のDNSサーバー等で名前解決の失敗が発生したと考えらます。
ほかにも原因があるかもしれませんが、この名前解決失敗によりiPhoneやiTuensが配信サーバーに接続できなかったため、アップデートが行えなかったと考えられます(Appleモ、モスコシワカリヤスイエラーメッセージヲダシテクレレバヨイノニ)
追試結果
$dig @192.168.0.1 appldnld.apple.com ;; Truncated, retrying in TCP mode. ;; Connection to 192.168.0.1#53(192.168.0.1) for appldnld.apple.com failed: connection refused.
我が家のブロードバンドルータだめじゃん...。
[訂正 2012/3/10]
コメント欄で「tssさん、糸さん、ひろくんさん」に指摘いただいた通り、今回の原因について誤った推測を記載しておりました訂正いたします。ご指摘ありがとうございます。