PR

レイヤー3でもループの恐れ

 IPネットワークでは複数の経路を用意して冗長性を確保し、ルーターによって経路を制御している。つまりレイヤー2とは異なり、レイヤー3(ネットワーク層)では経路はループしているのが前提である。そのため、パケットがネットワーク内を循環しないように、2つの防御策が用意されている。

 1つはIPヘッダー内のTTLである。TTLはルーターを経由するたびに1ずつ減る値。TTLがゼロになった時点でそのルーターでパケットは破棄される。これにより、パケットがネットワーク内を永遠に循環することを防ぐ。

 もう1つがルーティングである。ルーターのルーティングにより、宛先への経路、つまり次の中継ルーターが確定する。宛先が存在しないなど不明なパケットについては、経路がないことが判明した時点でルーターが破棄する。つまり、ルーティングが正常に機能している限り、IPネットワークではパケットのループは起こらない。

 逆を言えば、経路の一覧表であるルーティングテーブルが誤っている場合には、誤った経路にパケットが送られてループする可能性がある。これがルーティングループである(図6)。ルーティングループが発生すると、TTLによってパケットはいつか破棄されるものの、宛先には届かないことになる。

図6●ルーティングテーブルが誤っているとパケットがループ
図6●ルーティングテーブルが誤っているとパケットがループ
レイヤー3のループであるルーティングループの例。ルーターが保持するルーティングテーブルが誤っているとパケットがループして宛先に届かない。
[画像のクリックで拡大表示]

 ルーティングループは、RIPなどの古いルーティングプロトコルで問題になった。そこで新しいルーティングプロトコルには、ルーティングループを防止する機能が追加された。

 RIPで問題になったルーティングループは、情報伝達が遅い場合に発生する(図7)。特定のルーターからの情報伝達が遅い場合、古い経路情報が最新の経路情報として伝えられ、ルーティングテーブルに上書きされる可能性がある。図7のルーターBは、ネットワークXへの経路として、ルーターCを経由する情報を保持している(図7(1))。ルーターCとネットワークXの経路で障害が発生すると、ルーターCはそのことをルーターBに通知。ルーターBはネットワークXへの距離を通知し、ルーティングテーブルに反映した(同(2))。この時点ではルーターBのルーティングテーブルは正しい。

図7●タイミングによってはルーティングテーブルが誤って更新
図7●タイミングによってはルーティングテーブルが誤って更新
古いルーティングプロトコルで発生するルーティングループの例。経路が変更された際、変更前の古い経路情報が送られると、ルーティングテーブルが誤って更新される可能性がある。
[画像のクリックで拡大表示]

 だがその後、ルーターBがこの情報をルーターAに通知する前に、ルーターAから古い情報が送られてくると、その情報を最新の情報として反映してしまう。ここでは、障害が発生する前の、「中継ルーターをルーターAにした場合、ネットワークXへの距離は3」が上書きされる。つまりルーターBからは、距離が4のルーターDよりも、ルーターAを経由したほうがネットワークXへの距離が短いと判断される。その結果、ルーターAとルーターBの間でパケットがループすることになる。

 これを防ぐために、情報伝達を高速化したり、RIPとは異なる方式のルーティングプロトコルを使ったりする。RIPでも、「変更があったらすぐに通知する」「情報の通知元にはその情報を通知しない」といった防止策を講じている(図8)。前者はイベントトリガーアップデート、後者はスプリットホライズンと呼ばれる。

図8●RIPでのルーティングループ対策
図8●RIPでのルーティングループ対策
RIPでのルーティングループ対策。「変更があったらすぐに通知する」「情報の通知元(図ではルーターB)にはその情報を通知しない」ことで、RIPでもルーティングループを防止できる。
[画像のクリックで拡大表示]
▼VRRP
Virtual Router Redundancy Protocolの略。
▼ブロードキャストフレーム
LANのすべての端末に向けて送られる特殊なフレーム。通信しようとする端末のMACアドレスを問い合わせるためなどに使われる。
▼STP
Spanning Tree Protocolの略。LANでループ構成を回避するためのレイヤー2(データリンク層)のプロトコル。IEEE 802.1Dで規格化されている。
▼優先度とMACアドレスで構成される値
ブリッジIDは8バイトの値で、2バイトの優先度と、6バイトのMACアドレスで構成される。ブリッジIDを比較する場合、まずは優先度を比較する。優先度が同じ場合、MACアドレスで比較する。優先度はブリッジプライオリティなどとも呼ばれる。
▼BPDU
Bridge Protocol Data Unitの略。
▼TTL
Time To Liveの略。
▼RIP
Routing Information Protocolの略。
▼ルーティングプロトコル
経路情報を交換するプロトコル。