◆スプリットホライズン |
スプリットホライズン
ディスタンスベクタ型のルーティングプロトコルは、どうしてもネットワーク全体に経路情報が行き渡るのに時間がかかってしまいます。これをコンバージェンスの問題と言います。
正常な状態が恒久的に変化しないネットワークであれは、問題ないのですが、障害などでネットワーク構成が変化した場合に、ルーティングループの問題が発生します。
そもそも、なぜ、ルーティングループが発生するのでしょうか?
ルーティングループが発生する過程を見て行きます。
ネットワーク1の障害を検出したRouter_Aは、Router_Bにネットワーク1への経路がなくなったことを通知します。
その後、間もなく、Router_Dは、定期更新で、Router_D(自分)を経由すれば、ネットワーク1に到達できるという情報(Router_D→Router_C→Router_A)をRouter_Bへ送ります。
Router_Bはネットワーク1への経路がなくなったのではなく、Router_Dを経由すれば、ネットワーク1に到達できると勘違いしてしまいます。
そして、ネットワーク1へ到達できない経路情報であるにもかかわらず、Router_Bは、Router_Aに、この情報を通知してしまいます。
その結果、間違った経路情報を学習してしまうことで、ネットワーク上でループができあがってしまいます。
なぜ、ルーティングループが発生してしまったのか、気づきましたでしょうか?
Router_Bは、ネットワーク1への経路情報をRouter_Aから教えてもらったにもかかわらず、Router_Aに教えています。
Router_Aに教えてもらったネットワーク1への経路情報をあえて、教える必要があるのでしょうか?
Router_Bが余計なことをしたばっかりに、ルーティングループが発生しています。
今回は、Router_Bに注目しましたが、ネットワーク1への経路をRouter_Bから学習したのであれば、Router_Dについても同様なことが言えます。
教えてもらった経路情報を教え返さなければ、この問題は、そもそも起こらなかったはずです。
スプリットホライズンとは、一言で説明すると
「教えてもらったことを教え返さない。」
ことです。
とても単純なメカニズムですが、この動作が効果的にルーティングループを防いでくれます。
|
|
|