2011年6月14日火曜日

ipod touch 4GとWiMAXルーターWM3500RのWi-Fi接続が安定しない件 その2

前回の続きだ。結果から言うと解決した。(前回の記事:ipod touch 4GとWiMAXルーターWM3500RのWi-Fi接続が安定しない件
それでは、この問題の概要から。
ipod touchをWM3500RのプライマリSSID(aterm-xxxxxx-g WPA/WAP2-PSK(AES))に接続していると、早い場合10分くらい、遅い場合でも30分くらいでインターネットへのアクセスができなくなってしまう。だが、なぜかセカンダリSSID(aterm-xxxxxx-gw 128bit WEP)ではこの現象は出ず、接続は安定している。現象が起こったときは、無線LANの接続は切断されず、WM3500Rとipod touch間のIP通信だけができなくなり、同じ無線LAN内の別のPCからipod touchへのPingは通る。だがその別のPCでARPテーブルをいったんクリアし再度Pingした場合、PCのARPテーブルにはipod touchのエントリは自動的に現れず、Pingも通らなくなる。そして、PCのARPテーブルにスタティックでipod touchのMAC AddressとIPアドレスのエントリを手動で追加してやると、再びipod touchにPingが通る。だがipod touchとWM3500ルーター間のIP通信は復旧しないまま。復旧させるにはipod touchの設定画面でWi-Fiをオフ/オンするか、無線LANをわざと圏外にして再接続させる必要がある…。とこんな具合だ。
前回のテストでは、この問題が起こっているときに、ipod touchのWi-Fiネットワーク設定にある「DHCPリースを更新」をやってもべつに復旧したりすることはなかった。だが、今回同じテストをやっていたところ、「DHCPリースを更新」でWM3500Rとの間の通信が復旧する場合があることが分かった。ipod touchがDHCPのリースを自動更新しないのが原因だとする説もあるが、それなら24時間は異常は起こらないはずだ。しかし、俺の場合そうではない。今回はipod touchやiphoneからpingやtraceroute、ARPテーブルの表示ができるAppを見つけたのでこれらを使ってもう少し調べてみた。(これらのツールはいずれも無料Appなのがありがたい。)


ipod touchのARPテーブルを参照することができる「iNetUtility」。問題が起こっているときにも異常は見当たらず、ARPテーブル内にはWM3500Rののエントリ(192.168.0.1)がある。(192.168.0.6は同じ無線LAN内のNetbook PC)
 
 ipod touchからPing、Traceroute、Telnetができる「Ping Lite」。

問題が起こっているときは、デフォルトゲートウェイ 192.168.0.1(WM3500R)へのPingが「No response」になる。

 WM3500Rからipod touch(192.168.0.7)へのPingも通らない。本当はWM3500RのARPテーブルがどうなっているか知りたいが、これだけは調べる方法がない。

問題が起こっているときの現象は、DHCPのリースが切れた場合に起こり得ると思われる現象と同じでもある。だが、WM3500RではDHCPサーバーのリース時間がデフォルトの24時間に設定されており、WM3500Rが正常ならこんな短時間でリース切れの問題が起こるはずがない。もしかすると、この現象が起こっているときは、ipod touchがARPブロードキャストに応答しないのではなくて、WM3500Rがipod touchのIPアドレス192.168.0.7をなぜかDHCPリース切れと勘違いし、ある無線LANポートから受信した192.168.0.7宛のARPブロードキャストを別の無線LANポートへ伝搬させることなく破棄しているのかも知れない。
確かな根拠は無かったが、WM3500R側でDHCPサーバーのリース切れ判断や、ARPキャッシュのタイマーに不具合がある気がした。そして、試しにWM3500R側の「詳細設定」→「LAN側設定」→「DHCPサーバ」→「リースタイム(時間)」がデフォルトで24時間になっていたのを、無期限の「ゼロ」に設定してみた。元々24時間になっているにもかかわらず、リース開始後の数分から30分間くらいで通信ができなくなるので、少々値を変えたところで変わるはずないとは思ったが、ゼロなら何か変わるかもしれない、そう思った。

そして、なんとこれで直った!
今のところ、ipod touchをWM3500RのプライマリSSID(aterm-xxxxxx-g)に長時間接続していても何の問題も起こらない。今まで数分~30分足らずで問題が起こっていたが、以前と同じ現象は起こらず通信は安定しているようだ。テストをはじめて5時間経ったが、Skypeもつながりっぱなしで安定している。もう一度言う。 WM3500R側で「詳細設定」→「LAN側設定」→「DHCPサーバ」→「リースタイム(時間)」がデフォルトで24時間になっていたのを、無期限の「ゼロ」に設定し、保存してWM3500Rを再起動した。それだけだ。WM3500Rの残りの設定はすべてデフォルトのままだ。
ちなみに、Windows PCでDHCPリース期限を確認すると、「無期限」という表示ではなく、136年後の2147年某日となる模様だが、これがWindows PCになにか問題が起こすことはないと思われる。
WM3500Rは自身がDHCPサーバーでもありLANスイッチでもある。しかし、ある無線LANポートから受信したARPブロードキャストを、DHCPサーバー的にはリース切れのIPアドレスだという理由で、勝手にブロックしてはならないはずだ。もしそういう仕様なら、LAN内のIPアドレスの重複をWindowsが検知する仕組み(Gratuitous ARPというそうな)が働かなくなってしまう。だから、そうではなくてipod touchがARPに応答しなくなっているのだ、という可能性もあり、WM3500R側で「DHCPサーバリースタイム」の設定変更をすることで偶然これの影響を受けなくなるのかも知れない。たとえばWM3500RのARPテーブルのキャッシュ時間は実はDHCPリースタイムに依存していて、DHCPリースタイムをゼロにすると、つられて自身のARPキャッシュが時間によってクリアされることもなくなり、たとえipod touchがARPに応答しなくなっていてもWM3500RはARPブロードキャストをする必要がなく問題にならない…とか。



ipod touchはどこで買っても同じ値段だが、WiMAXを新規契約する場合、ルーターはヤマダで1円なのでAmazonで買ってはならない。

2 件のコメント:

siethu16 さんのコメント...

wm3500rの接続不安定ですごくイライラしていました。
早速やってみます。
padooさんの現在の状況をお聞かせていただけませんか!

padoo さんのコメント...

DHCPのリース時間をゼロに設定した後、以前よりも接続は安定していますが、頻度は少なくなったもののその後も原因が不明のまま通信できなくなる場合があります。
新しいファームウェア Ver3.1.0 (2011/07/14)が出ているようなので、これにアップデートして様子を見てみます。