Mac OS XにおけるIPv6 RA処理の問題

本記事は IPv6 router advertisement processing bug on Mac OS X を日本語に翻訳したものである. 本記事では,Mac OS XにおけるIPv6 RA処理の問題を要約する.

Custom Search

Mac OS XにおけるIPv6 RA処理の問題の報告

Date: Sep. 24, 2010 (Translated on Dec. 12, 2010)
Author: Hirochika Asai (訳: 浅井 大史)

問題の要約

Broadcomのハードウェア・ソフトウェアを搭載した一部のMacBook Proにおいて, Router Advertisement (RA) を受信した際, Mac OS XがインターフェイスからIPv6アドレスを 消去してしまうという問題が発生した. この問題が発生すると,IPv6アドレスが消去されてから 新しいアドレスを付与するまでIPv6による通信ができなくなる. さらに,EUI-64アドレスではなく,一時アドレスを使用している場合には, 一旦アドレスが消去されることにより, 元のアドレスとは異なるアドレスが再度付与されるため, RAを受け取る度にSSHなどのTCPセッションが切断され, タイムアウトまで当該のアプリケーションがハングしてしまうことがある.

影響を受けるファームウェア

4種類のMacBook Proで本現象の発生有無を確認した. 確認に協力してくれた方々に感謝します.

問題の詳細

EUI-64アドレス消去に関する問題

影響を受ける環境では,IPv6 RAを受信した直後,無線インターフェイスの IPv6アドレスが消去され,Duplicate Address Detection (DAD) などの処理を行い, 再度同じアドレスが付与される. この処理が完了するまで,無線インターフェイスのIPv6アドレスは 消去・使用できない状態 (TENTATIVE) となるため,一時的に通信ができなくなる. EUI-64アドレスはMACアドレス(ハードウェアアドレス)に基づき 付与されており,同一のアドレスが再度付与されるため, 一時的なパケットロスは発生するもののTCPセッションは保持されるため, 認識できない程度の問題であるかもしれない.

一時アドレス消去に関する問題

このページで紹介したように, Mac OS X ではプライバシー保護のために一時アドレスを有効にできる (正式にサポートされているわけではないと思われる). しかし,一時アドレスを有効にした場合, このアドレス消去の問題は大きな問題となる. このバグにより,RAを受信する度に一時アドレスが消去され, その後,元のアドレスとは異なるアドレスが再度付与される. アドレスが変更されてしまうため, TCPを含め,全てのセッションが切断されてしまう. 例えば,SSHはRAを受信する度にタイムアウトまでハングアップしてしまう.

問題の回避(軽減)方法

一時アドレスを使用しないことにより, この問題による影響を軽減することが可能である. 上述したように,パケットロスは発生してしまうが, EUI-64アドレスはインターフェイスに一意であるため, アドレス付与後,セッションが復旧するためである.

まとめ

このバグはAppleのバグレポートに報告済みであり, ソフトウェアアップデートによりこの問題が解決されることを願う.


あとがき

Date: Nov. 11, 2010 (Translated on Dec. 12, 2010)
Author: Hirochika Asai (翻訳: 浅井 大史)

バグ修正版のアップデート

このバグは アップデートHT4250 により解決した. このアップデートは 2011年11月11日(日本時間)から提供されており, 早急なアップデートを Broadcom BCM43xx 1.0 (5.10.131.16.1)ファームウェアを使用している IPv6ユーザに推奨する.

なお,新しいバージョンのファームウェアは, Broadcom BCM43xx 1.0 (5.10.131.36.1) [Mac OS X 10.6.5 (10H574)] であった.