IPネットワークの「ループ防止」
IPネットワークはルータというIPパケットの中継装置で構成されたネットワークである。ルータはIPアドレスに対応したルーティングテーブルという経路情報を持ち、受信したIPパケットの宛先とルーティングテーブルを参照し、転送先経路を決定する。このルーティングテーブルは、管理者によって手動で設定されるか、ルーティングプロトコルを使ってルータ間の情報交換で自動的に作られる情報である。
しかし、ルーティングテーブル情報の登録を管理者がミスしたり、ルーティングプロトコルがリンク障害などでうまく機能しなかったりした場合に図2のようにお互いにパケットを転送しあう論理的な経路のループが発生する。これにより、宛先にいつまでも届かない「はぐれパケット」が生まれる可能性がある。
論理的な経路のループが発生しても、IPパケットの生成ポイントであるPCやサーバはその異常に気が付くことはない。またルータ自身も物理的な障害ではないためその異常に気がつかない。すると誰も論理的な経路のループが発生していることに気づかない中で、PCからは宛先に届かないIPパケットが次から次へとネットワークに送られ、はぐれパケットが徐々に増えていくことになる。このような状況にいたるとIPネットワークは時限爆弾を抱えたようなもので、やがてネットワークははぐれパケットでいっぱいになり、通信障害に陥るのである。
このような事態に備えた仕組みが、IPパケットのヘッダにある「TTL」(Time to Live)というフィールドである。ここには送信する際に数値が設定され(OSに依存)、ルータを経由するたびに「-1」にされる。ルータはTTLが0になると、そのパケットを破棄する。そのため、たとえ「はぐれパケット」が発生したとしても、多少時間はかかるが、最終的にネットワークからなくなるというわけである。
この連載の記事
-
第7回
ネットワーク
ドメイン名は第三者に詐称されるのですか? -
第6回
ネットワーク
WAN経由だとファイル共有が遅くなるって本当? -
第5回
ネットワーク
UDPのパケットは、途中で紛失してしまうことがある? -
第4回
ネットワーク
Webサーバは80番ポート以外使ってはいけないの? -
第3回
ネットワーク
ネットワークに流れるデータは見えますか? -
第2回
ネットワーク
同じIPアドレスは複数のPCで使えるの? -
ネットワーク
ネットワークの常識・非常識 - この連載の一覧へ