5GHz の 802.11n が使いたくて、アメリカで AirPort Express を買ったら思いの外はまった話
■ 背景家の無線環境がこんな感じで、まったくチャンネルに空きがない。

普段はそんなに気にならないんだけど、Time Machine でバックアップしてる時とか、(推測だけど)同じチャンネルで通信が行われる時とか無茶苦茶遅くなる(遅延がすごく大きくなる)。
■ 購入というわけで 5GHzに逃げたいと思ったんだけど、どうせなら 802.11a じゃなくて、802.11n で5GHzをサポートしてるものをってことで調べたところ、実はそんなに選択肢が多くなかった。ツイてることに
AirPort Express の後期版(MB321LL/A)が Refurbished だけど $63.98 (Apple Store の Refurbished だと $79.00)で
売っていたのですぐにポチった(ちゃんと後期版が来るのか少し不安だったけど)。ちょうど出張に持って行けるような携帯APが欲しかったので一石二鳥だった。

購入後すぐに
UPSのトラッキングコードもちゃんとメールで送られて来て、結局3日ほどで配達された。問題なく MB321LL/A だった。
■ 設定何も見ずにとりあえずつなげてみたけど、普通のAPみたいにウェブインタフェースじゃなかったからどうやって設定するのか分からなかったが、ふと思い出して
AirMacユーティリティを起動してみた。しかしなぜか AirPort を見つけてくれなかったので、リセットボタンを押しながら電源を入れることで工場出荷時状態にリセットした(ちなみにリセットボタンが少し黒ずんでて Refurbished だったことを思い出した)。 リセット後しばらく待ってるとようやくAirMacユーティリティが AirPort を見つけてくれた。
(ところで後で分かったのだが初め使えなかったのは、AirPort Express は二重NAT状態になっており正常に動作していなかったためだ(確かに橙色のランプが点滅していた)。試しにAirMacユーティリティで確認するとブリッジに変更して下さい、と促された。やるなぁ。)
AirMacユーティリティがつながったので、とりあえず画面に促されるまま設定したところ、2.4GHzで設定されてしまったため、再度手動設定を選んだ。「AirMac - ワイヤレス」の画面で「無線モード」を「802.11n のみ (5 GHz)」を選択し、チャンネルを「自動」のままで設定を「アップデート」。「これで快適な5GHzライフだぜ」と思ったのもつかの間、なぜか AirMac のチャンネル一覧の中に設定したSSIDが見つからない。
■ トラブルシュート初めは「まさか自分の MacBook Pro (Late 2007 - MA895LL)は 802.11n か 5GHz に対応してないんじゃ?」と思ったんだけど、システムプロファイラで確認したところ、802.11n には対応してるし、サポートしているチャンネルから考えて5GHzにも対応してることは分かった。

となると、AirPort Express の方が(5GHzだけ)壊れてるのかと思ったが、別の MacBook Pro (US版、WindowsXP が動いてる)で確認したところ問題なく SSID が見えていた。ということは、手元の MacBook Pro が壊れているか、何か他の問題があるか、ということだ。他に 802.11n + 5GHz を試せる AP はないので MacBook Pro の故障の有無は確認できない。というわけで、とりあえず故障の可能性は置いておいて他の問題を探し始めた。
■ Google先生が不穏なことをSSID が見つからない原因は「AirPort 5GHz」や「AirPort 5GHz 802.11n」なんかで検索したところ割とすぐに見つかった。
http://forums.macrumors.com/showthread.php?t=536214http://support.apple.com/kb/SP20要するに、USと日本では5GHz帯で使えるチャンネルが違うということだ。実際 AirMac ユーティリティで確認したところ自動で選択されたチャンネルが149チャンネルになっていた。(システムプロファイラにも表示されてるとおり149チャンネルは日本ではサポートされていない)
というわけで解決策は3つ。
- USと日本でサポートされてる 36-64 チャンネルに変更する
- MacBook Pro のサポートするチャンネルをUS仕様に変更する
- AirPort Express のサポートするチャンネルを日本仕様に変更する
当然 1. が一番簡単なので早速 AirMac ユーティリティで変更しようとしたところ、なぜか「自動」しか選択できず変更できない。

どこをどういじっても「自動」以外選択できないのであきらめて 2. の方法を探してみた。(今思えばもう少しここで粘ればよかった)
■ 802.11d?しばらく検索してると、意外と同じような問題を抱えてる人が多いことが分かった。
どうやら Mac OS X は実際に無線を使う前に 802.11d という規制にかからない無線規格を使ってAPからのビーコンを受信し、ビーコン内にある地域情報からどの国にいるかを判断しようとしてるらしい。
問題のポイントは誤った Country Code を送信しているAPが近くにあると、それに引っ張られて間違った地域にいると思い込んでしまい結果的にサポートするチャンネルが変わってしまう、ということらしい。802.11d っていうのは初めて知ったが、何かを条件にサポートするチャンネルを変化させるってことは、もしかしたら手動で変更する方法もあるんじゃないかと、いろいろ検索してみた。
ただ色々試してみても(ex. 再起動する、電源を一度切る、AP に近づける) Country Code が JP から変化しなかった(というか、そもそも「en1: 802.11d country code set to 'XX'」のメッセージが出なかった)ので、これが原因ではないんじゃないかと思い始めた。(ところで、そもそも 802.11d で嘘 Country Code を出してる AP がいた場合、どうするんだ?)
■ ファームウェアの問題?Mac OS X 側を変更する方法を探すのをあきらめて、今度は AirPort Express 側を変更する方法を探し始めた。とりあえず 149 チャンネルから変更する方法がないか「AirPort Express 149」とかで検索したところ、どうやら AirPort Express の firmware が 7.3.x の時は「自動」にしてても 36 チャンネルだったものが、7.4.x から 149 チャンネルになってしまうようになったようだ。そこで、7.3.2 に戻したところ確かに「自動」で 36 チャンネルになった。むぅ、と思ってもう少し調べてるとこんなページが。
AirPort Extreme / Express firmware 7.41このページからリンクされていた
http://www.hardmac.com/news/2009-03-09/ についに解答が!
■ 隠し設定正確にはこっちのページ。
これを読むと 7.4.x でも「alt キー (option キー)」を押しながらチャンネルの選択をするとデフォルトの「自動」以外が選べるとのこと。
まじかよ、と思いつつ再度ファームウェアを 7.4.2 に戻して、alt キーを押しながらチャンネルの選択をしたところ、本当に他のチャンネルが選べた。なんだよそれっ!意味分からん。どうしてそんな動作にする必要があるの!?

とりあえずここで 48 チャンネルを選ぶことで無事 802.11n (5 GHz)を使えるようになった。
■ まとめというわけで、AirPort Express が家に届いてから12時間後くらいに無事、目論見通りの使い方ができるようになったんだけど、いくつか釈然としない点は残ってる。
- 802.11d を使ったAPの設置場所情報って本当に使ってるの?
- 本当に使ってるとして、偽 Country Code 問題はどうしてるの?
- なんで5GHzのチャンネルを素直に手動で選べなくしてるの?
- どうして(「自動」の)デフォルトがUS・カナダでしか使えない149チャンネルに変更されたの?(36-48チャンネルにしとけばもっと多くの国で問題なく使えるのに)
- そもそも AirPort Express を国外に持って行った場合、その国の規制に従うよう設定できるの?(「国」の設定は北米とその近辺の国しか選べないんだけど)
これも、Apple の製品は Apple 様の想定の範囲内で使ってる分には非常に素晴らしいUIなんだけど、一旦その想定の範囲外の状況になると途端に問題解決が難しくなる、という事象の好例だと思った。