ルーティングループの防止
| 無限カウント 上記のようなルーティングループを防ぐ手段として、もっとも単純な方法が「無限カウント」です。無限カウントでは、ただひたすら「待つ」ことによってループの防止を行います。ルーティングループは、お互いにあるネットワークのエントリに対して、メトリックを増やしながら教えあうことによって発生しています。そのメトリック増加の上限を決めることによって、ルーティングループを止めることができます。 RIPでは、ホップ数16が到達不可能、つまり無限のメトリックとみなされます。メトリックを増やしながら間違った経路を教えあって、メトリックが16(無限大)になると、そのエントリはホールドダウン状態となり、やがてルーティングテーブルからエントリが削除されます。 ただし、無限カウントではルーティングループが止まるまで、非常に長い時間がかかってしまいます。 |
| スプリットホライズン ルーティングループが発生する原因を考えてみると、図でルータBがルータAから教えてもらった10.0.0.0/8のネットワークに対するエントリをルータAに教え返していることがそもそもの原因であることがわかります。 ![]() もし、ルータBが10.0.0.0/8のエントリをルータAに教え返さなければ、ルータAのルーティングテーブルにある10.0.0.0/8のエントリは、やがてFlushタイマーがタイムアウトしルーティングテーブルから削除されるはずです。多少時間はかかるものの、無限カウントでループが止まるのを待つよりもはるかに短い時間でルーティングループを止めることができます。教えてもらったエントリを再び教え返さないようにすることを「スプリットホライズン」と呼んでいます。 「教え返さない」ということをもっと厳密にいうと、 「あるエントリを学習したインタフェースから送信するアップデートの中にはそのエントリを含めない」 ということです。 スプリットホライズンを有効にすると、次の図のようにルータBはルータAから教えてもらった10.0.0.0/8のエントリをルータAには教え返さなくなります。 ![]() つまり、インタフェースE0から送信されるRIPアップデートの中には、(10.0.0.0,2)というエントリが含まれません。しかし、インタフェースE1から送信されるRIPアップデートの中には(10.0.0.0,2)というエントリは含まれています。また、スプリットホライズンによって直接接続されたネットワークのエントリは、そのインタフェースから送信するRIPアップデートに含まれなくなります。 結局のところ、ルータBからインタフェースE0から送信されるRIPアップデートは(30.0.0.0,1)、インタフェースE1から送信されるRIPアップデートは(10.0.0.0,2) (20.0.0.0,1)という内容になります。そして、ルータBのルーティングテーブルにある10.0.0.0/8のエントリは、アップデートを受信しなくなるのでFlushタイマーがタイムアウトし、ルーティングテーブルから削除され、ネットワークはコンバージェンス状態になります。 |
(C) Copyright 2000-2004 Gene All Rights Reserved