ライフハック

【Cisco】ポイズンリバースの意味と必要性

2020-04-17

たお

ポイズンリバースって何のためにあるんだろう...?

本記事では、このような疑問に答えていきます。

本記事の内容

今回は、ルーティングループを防ぐ方法として、ポイズンリバースの必要性について、調べてみました。

というのも、Ciscoのルーターには、ルーティングループを防ぐ方法として、下記のような仕組みを取り入れています。

  • ①:スプリットホライズン
  • ②:ルートポイズニング
  • ③:ポイズンリバース
  • ④:ホールドダウンタイマ
  • ⑤:トリガードアップデート

その中でも、ポイズンリバースの必要性や意味合いが、いまいち分かりませんでした。

ネットワークがダウンした際には、まず隣接ルーターに対して、そのネットワークに対して到達不能のホップ数をセットし、知らせます(ルートポイズニング)。

そして、更新タイミングのずれによるループを防ぐために、あるインタフェースから受け取った経路情報は、そのインタフェースから出力しないようにしています。これがスプリットホライズンです。

これで、対策としては十分のように思いますが、さらなる対策としてポイズンリバースがあります。

これは、スプリットホライズンが出力しないという動作に対して、ポイズンリバースはルートポイズニングの受信時(=ダウン情報)に限り出力する、という動作を行います。

これは、なんでなのででしょうか?

今回は、その理由について、事例を用いて解説します。

本記事の信頼性

本記事は、筆者がCCNAの勉強をしている際に学習した内容を基づいて執筆しています。

スプリットホライズンのおさらい

例えば、下記の様なネットワークがあったとします。

192.168.0.0/24のネットワークがダウンすると、ルートポイズニングにより、A→Bへのリンクがダウンした、という情報を通知します。

これがB→C、C→Dへと広がっていきます

しかし、C→Dへ通知する前に、D→Cへルーティングアップデートを通知した場合、どうなるでしょうか?

ルーターCで、情報が上書きされてしまいます。

すると、ルーターCかDで192.168.0.0/24宛のデータを受信した場合、C-D間でループが発生していしまいます。

これを防ぐため、ルーターDではD→Cの経路を送らないようにします。

というのも、ルーターDでは、192.168.0.0/24の経路情報はもともとルーターCから受け取った情報なので、既にルーターCはこの情報を持っていると仮定し、ルーターDではルーターCに対して192.168.0.0/24の経路情報を送らないようにします。

これがスプリットホライズンです。

ポイズンリバースが必要なケース

これはこれでよいのですが、実はスプリットホライズンではループを防げないケースがあります。

例えば、下記のネットワークの場合です。

ルーターCでは、192.168.0.0/24のネットワークはルーターD経由で送信するルートになっています。

192.168.0.0/24がダウンしたとき、A→Bへルーティングアップデートを送ります。

しかし、C→Bへ通知する前に、C→Bへ経路情報を送ってしまう可能性もあります。

なぜなら、スプリットホライズンを有効すると、192.168.0.0/24に関して、C→Dへの通知はなくなりますが、C→Bへの通知は無くならないからです。

すると、ルーターBでは192.168.0.0/24のルーティングテーブルを上書きしてしまいます。

これが、ルーターAまで波及してしまうと、A~B~C~Dの間でループが発生してしまいます。

これを防ぐためにどうするかというと、ルーターAでは、到達不可の情報(ルートポイズニング)を隣接ルータへ送った際には、ルーターBに送り返してもらいます。

受信したルーターAでは、s1インタフェース方向(ルーターB)からも、192.168.0.0/24へ到達することは不可能だ、というルーティングテーブルを作成します。

これによって、s1からの情報に対してホールドダウン状態となり、次にルーターBからルーティングアップデートが送られてきたとしても、ルーティングテーブルをアップデートしなくなります。

すなわち、ルーティングループを防ぐことができるのです。

参考文献

下記のサイトを参考にさせて頂きました。

スプリットホライズン ‐ 通信用語の基礎知識
スプリットホライズン - ネットワークエンジニアを目指して
ポイズンリバースとは -- Key:雑学事典
ディスタンスベクタ型ルーティング - ホールドダウンタイマー、トリガーアップデート
ApresiaNPシリーズ ユーザーズガイド

-ライフハック

© 2021 たおさんのMyanmar Life