2011年6月11日土曜日

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

この前買ったipod touch 4G(MC544J iOSバージョン 4.3.3)とWiMAXルーター NEC WM3500R(ファームウェアバージョン2.0.0)とのWi-Fi接続が安定しない。俺の場合、ipod touchをWM3500RのプライマリSSID(aterm-xxxxxx-g)に接続していると、早い場合10分くらい、遅い場合でも30分くらいでインターネットへのアクセスができなくなってしまう。これまでに分かっていたのは、ipod touchの設定画面でWi-Fiをオフ/オンすると復旧することと、なぜかセカンダリSSID(aterm-xxxxxx-gw)ではこの現象は出ず、接続は安定しているということだ。しかし、セカンダリSSIDは暗号化モード128bit WEP用にあるもので、セキュリティ上あまり好ましくない。できればプライマリSSID(暗号化モードがWPA/WAP2-PSK(AES))で安定して接続できる方法を探したい。ググって調べてみると同様の問題で悩んでいる人は多いようだ。原因は諸説あり、DHCPリース時間、暗号化キー更新間隔、DTIM間隔などが疑われているようだ。だが俺の場合、原因はこれらのどれでもないと思う。
そして俺は多分、この問題の原因を発見した。それは
ipod touchがARPのブロードキャスト要求に応答しない場合があるということだ。(※これは違うかも。お急ぎの方は問題が解決した続編「ipod touch 4GとWiMAXルーターWM3500RのWi-Fi接続が安定しない件 その2」へ)
WM3500Rの無線LAN側インターフェースや、LAN内の別のPCでARPキャッシュ内にあるipod touchのエントリが、時間切れや他の何らかの理由で消えてしまった場合、ルーターや他のPCがARPブロードキャストをLAN内に送信するも、ipod touchが応答しないため、ipod touchのMAC Address向けにパケットを送信することができなっているのではないだろうか。
実験はipod touchをWM3500RのプライマリSSID(aterm-xxxxxx-g)に接続して行った。WM3500Rとipod touchの設定はすべてデフォルト。ipod touchからSkypeでインターネット越しに遠隔のデスクトップPCに接続したまま放置しておいたところ、約27分後にSkypeが止まった。SafariブラウザでYahooのホームページを開くこともできない。DNSの問題でないことを確かめるためにSafariのURL欄にIPアドレスを直接指定してみたが、同様にWebページを開くことができない。そして、同じ無線LAN内の別のPCでは、インターネットとの通信にはなにも問題はない。ところが、この状態でその別のPCからipod touchへのPingが通るのだ。WM3500Rでは、「複数台の子機を同時に使用する場合、無線LAN通信ができなくなる」という不具合がメーカーHPで公開されているが、俺の場合となりのPCからipod touchへPingが通るので無線LANレイヤーの問題ではないことは明らかだ。

ipod touchでインターネットの通信ができないにもかかわらず
同じ無線LAN内のPC(192.168.0.6)からipod touch(192.168.0.7)へのPingが通る。
※無線LAN内 IPアドレス
192.168.0.1  WM3500R1
192.168.0.7  ipod touch
192.168.0.6  Netbook PC(NEC Lavie)

 

そして、ルーターからipod touch(192.168.0.7)へのPingは通らない。

同じ無線LAN内のPC(192.168.0.6)で、ARPキャッシュを確認してみる。
ここではipod touchのエントリがまだ残っている。
C:\Windows\system32>arp -a

インターフェイス: 192.168.0.6 --- 0xb
  インターネット アドレス      物理アドレス      種類
  192.168.0.1           00-3a-9d-93-d4-62     動的------ルーターのアドレス
  192.168.0.7           8c-7b-9d-4c-75-39    
動的------ipod touchのアドレス
  192.168.0.255         ff-ff-ff-ff-ff-ff     静的

ためしにARPキャッシュを手動でクリアしてみる。
C:\Windows\system32>arp -d *
そうするとPingが通らなくなる。
C:\Windows\system32>ping 192.168.0.7

192.168.0.7 に ping を送信しています 32 バイトのデータ:
192.168.0.6 からの応答: 宛先ホストに到達できません。
192.168.0.6 からの応答: 宛先ホストに到達できません。
192.168.0.6 からの応答: 宛先ホストに到達できません。
192.168.0.6 からの応答: 宛先ホストに到達できません。

192.168.0.7 の ping 統計:
    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、

普通ならARPキャッシュをクリアしても自動的に更新されるのでこんなことにはならない。ipod touchがARPブロードキャスト要求に応答しなくなっている。
ためしに手動でARPエントリにipod touchのMAC Addressを追加してみる。すると、Pingが通った。やはり無線LAN接続には異常は無い。
C:\Windows\system32>arp -s 192.168.0.7 8c-7b-9d-4c-75-39

C:\Windows\system32>ping 192.168.0.7

192.168.0.7 に ping を送信しています 32 バイトのデータ:
192.168.0.7 からの応答: バイト数 =32 時間 =90ms TTL=64
192.168.0.7 からの応答: バイト数 =32 時間 =3ms TTL=64
192.168.0.7 からの応答: バイト数 =32 時間 =4ms TTL=64
192.168.0.7 からの応答: バイト数 =32 時間 =3ms TTL=64

192.168.0.7 の ping 統計:
パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
最小 = 3ms、最大 = 90ms、平均 = 25ms


ためしに、この現象が起こった後、ipod touchをWM3500Rの無線LAN電波が届かない圏外へ持って行き、再び圏内に再び戻ってくると、インターネットとの通信が復旧するのがわかった。また、この現象が起こっている時、無線LAN圏内でipod touchのWi-Fiネットワーク設定にある「DHCPリースを更新」をやってもべつに復旧したりすることはなかった。そこで、ipod touchは自分のキャッシュに既にあるMAC AddressからARPブロードキャスト要求を受信しても応答しないのではないか?と疑った。だが、必ずしもそうではないようだ。この問題が起こっていないときに、無線LAN内のPCのARPキャッシュをクリアーしてから、LANのブロードキャストアドレス(192.168.0.255)へPingしてみたところ、ARPテーブルにはちゃんとipod touchのエントリが復活していたし、その後ちゃんとipod touchへのPingも通るのだ。ipod touchがどんな場合にARPブロードキャスト要求に応答しないか分からないが、少なくとも俺は複数回この現象を観測した。そして、いったんこの現象が起こったらWi-Fiリンクを切断しない限り、復旧することは無かったのである。また、WM3500R側で通信中の相手のARPエントリが消えてしまうとしたらそれも問題だと思うが、ルーター上では確かめる方法がないので本当にそうなっているかどうかは定かではない。俺の思うように、ipod touchが何らかの事情でAPRブロードキャスト要求に応答しない場合があることがこの問題の原因だとしたら、相手はWM3500Rでなくても起こりえるはずだ。実際、俺の場合ipod touchでインターネットとの通信ができなくなる現象は、自宅の無線LANルーター(Planex製 MZK-W300NH2)に接続している際にも起こる。そして、WM3500RもMZK-W300NH2も、他のPCやゲーム機でのWi-Fi接続では同様の問題は経験していない。残念ながら、この問題に対するユーザー側での解決方法はよくわからない。やってみてはないが、WM3500R側でDHCPを使わないように設定し、ipod touch側も固定IPにすれば、接続が安定するのかも知れない。でもデフォルトの設定で使えないのもなんだか面倒だし、DHCPが使えないのも面倒だ。とりあえず今は、WM3500RのセカンダリSSID(WEP)の方にipod touchを接続して使うようにしている。WEPで使うのは好ましくないが仕方がない。

0 件のコメント: