リビング+:連載 |
2003/02/19 23:59:00 更新 |
ブロードバンド診療所
「ルータのブラックホール現象」を解決する (2/2)
それでは、「ブラックホール現象」が起こる過程を、順に見てみよう(下図参照)。まず、送信しようとするPCが、大きなMTUサイズでテストパケットを送信する(1)。この際、パケットは「分割禁止」になっているため、MTUが小さくなるところ(ルータと外部ネットワークの境目)でパケットを分割できず、このルータは送信元のPCにICMP/DU/FNメッセージで適切MTUを知らせ、小さなパケットを送るように促す(2)。
ところが、ネットワークの一部(たとえばルータ)にこのメッセージを正しく通過できない部分があると、送信元PCはMTUのサイズを認識できず、標準の値でパケットを送信してしまう(3)。
クリックで拡大
さらにこの際に、パケットに分割禁止のフラグを立てることがある。こうなってしまうと、途中でMTUが変わるところでパケットを分割できなくなってしまい、そこでデータは破棄されてしまう。ただし、データがそもそも複数のパケットにならないような場合(ファイルサイズの小さいメールなど)ではパケットの分割が発生せずに通信ができてしまうため、まったく通信ができないということにはならない。
この現象の中で、ICMP/DU/FNメッセージやパケットが途中のルータで破棄されて消えてしまう(この破棄してしまうルータをブラックホールルータという)ので、ブラックホール現象と言われるのだ。
家庭用のブロードバンドルーターではNATを使うこともあり(NATでは第1回でも説明したように、外から来た通信を正しく処理できない)、このやり取りができるものは皆無に等しい。したがって、Iさんのケースでもこの現象に当てはまってしまったと考えられる。特に、CATVや今回のケースのようにIPを直接割り当てられた環境でこの制限に引っかかってしまうことが多い。
*なお、上図ではブラックホールルータが自分に一番近いところにあり、外より内側のパケットサイズのほうが大きいため、外からのパケットは問題なく届いてしまう。場合によってはこの逆の症状(こちらからは送れるが、相手からの通信は届かない)になることもあり、症状はまちまちとなる
解決法:NetTuneでMTUサイズを調整しよう
ブラックホール現象の対策は簡単だ。MTUのサイズが原因なので、サイズを適切な値に変更すればよい。
MTUサイズを変更するには、Windowsのレジストリを変更する必要があるが、レジストリエディタを利用して書き換えるのは、初心者には敷居が高い。ここは、専用のツールを利用しよう。
実は、キンデンのFAQページではこの種のツールで有名な「NetTune」を紹介している。今回も、このNetTuneを使用させてもらった。NetTuneを起動して「MTU」タブを選択、利用しているネットワークアダプタを選び、MTUサイズとして1454を選んで「設定」ボタンをクリックすればよい。
その後、PCを再起動してインターネットに接続、長いメールを送信してみると、うまく送信できた。やはりPMTUD Black Holeが原因のひとつだったようだ。
なお、このPath MTUD Black Holeによる通信トラブルはフレッツシリーズなどPPPoEを利用している場合はブロードバンドルータを利用していても発生しないことが多い。PPPoEでは、データの一部を書き換えてこの現象を回避するような仕組みを持つルータが大半であるからだ。ただし、一部の古いルータでは問題が発生することがあるので、その場合はルータのファームウェアをアップデートすることで解消する場合がある。
とりあえず、この状態で使ってもらうことにしたが、もう1つの「突然すべてのインターネットとの通信ができなくなってしまう」問題について様子を見ることにした。
……すると、しばらく経ってからやはり症状が再発してしまった。1つ目の症状には、ブラックホール現象は関係なかったようだ。こちらのトラブルに関しては、もう一度じっくり見直してみる必要がありそうだ。こちらについては、次回詳しくお伝えする。(続く)
今回のポイント
●CATV回線などでブロードバンドルータを利用して大きなデータを送信/受信する際に急に通信できなくなることがある場合
・PMTUD Black Hole現象による可能性が高いので、MTUサイズを調整してみる |
前のページ | 1 2 |
[柿島真治,ITmedia]