ポイズンリバースがどんな場面で役に立つか
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
ポイズンリバースがどんな場面で役に立つか
msg# 1
Pnt777_009
投稿数: 4
ポイズンリバースがどんな場面でループを防ぐのに役に立つのか教えてください。
ポイズンリバースは
「メトリック値16の経路情報を受信した場合、即座に同じインターフェースから送信元ルータに送り返す機能」
と理解しています。
これがどんな意味があるのか分からなくなって、まずフォーラムを検索し、同じ疑問っぽいものを見つけました。
https://ping-t.com/modules/forum/index.php?topic_id=2667
(https://ping-t.com/modules/forum/index.php?topic_id=2803)
上の投稿から以下の解説サイトに誘導されました。
ttp://www.7key.jp/nw/routing/r_protocol/poison_reverse.html
ですが、ここの解説はちょっと理解できませんでした。
X─A─B─C─D
└─────┘
(1)上記のようなコンバージェンス済みネットワークでXがダウンすると、Xへの経路情報がメトリック値16でA→B、A→Dとアドバタイズされる
(2)BまたはDがXへの経路情報をメトリック値16にして自身のルーティングテーブルを更新する
(3)更にBがCにアドバタイズする前に、D経由のXまでのメトリック3の経路をCからBが受信する可能性、
またはDがCにアドバタイズする前に、B経由のXまでのメトリック3の経路をCからDが受信する可能性がある
(4)BまたはDは、より小さいメトリック値3で自身のルーティングテーブルを更新する
(5)BまたはDは、この情報をAへアドバタイズし(ここ以降の流れは書かれていないのですが、おそらくAがまたトリガーアップデートし)ループが発生する可能性がある
これはBからAに、またDからAにポイズンリバースすることで防げる
という風に書いてあるのですが、では(1)〜(5)のいずれも防げていませんので、これはちょっと説明になっていない気がします。
更に少し調べてみて、以下のサイトで、ポイズンリバースとは別に、ホールドダウンタイマーによりが防がれているということが分かりました。
https://www.infraexpert.com/study/distancevector4.html
(ただし、ループの原因となるを防いでいるわけではないので、ホールドダウンタイマーが切れた瞬間にが起きる、つまりBC間、DC間の通信にホールドダウンタイマーの時間以上かかる可能性もあるような……ここは勉強不足ですが、おそらくそんなネットワークは現実的じゃないということなのでしょうか)
他にも幾つかサイトを巡りましたが、ポイズンリバースが具体的にどんな場面で役に立つのか解説したものはありませんでした
https://kmownet.com/computer-network/251-routing/251-routing.html
https://blog.goo.ne.jp/kuratat/e/d8268d38e233de893bfa0d8465d4307e
ttps://books.google.co.jp/books?id=cvb9DuWU9DsC&pg=PA141&lpg=PA141&dq=%E3%83%9D%E3%82%A4%E3%82%BA%E3%83%B3%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9&source=bl&ots=uHa0mjlDOt&sig=ACfU3U0zbUfiol8j9SXhwoqQlDap8PBL6w&hl=ja&sa=X&ved=2ahUKEwje0ITNmKDlAhXPGKYKHWlYC-g4FBDoATAEegQIBBAC#v=onepage&q=%E3%83%9D%E3%82%A4%E3%82%BA%E3%83%B3%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9&f=false
https://books.google.co.jp/books?id=aO3qDQAAQBAJ&pg=PA243&lpg=PA243&dq=%E3%83%9D%E3%82%A4%E3%82%BA%E3%83%B3%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9&source=bl&ots=bTLXF3iDO2&sig=ACfU3U3m7kIWT06cg8DKhHqV107FBHdH_A&hl=ja&sa=X&ved=2ahUKEwje0ITNmKDlAhXPGKYKHWlYC-g4FBDoATACegQICBAC#v=onepage&q=%E3%83%9D%E3%82%A4%E3%82%BA%E3%83%B3%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9&f=false
そのうち、「ポイズンリバース付きスプリットホライゾン」という単語に当たりました
これは「メトリック値1の経路情報は、その経路情報を送信してきたノードに対しては、普通のスプリットホライゾンのように送信しないのではなく、メトリック値16で送信する機能」のようです
こちらは、X─A─Bのような紐上のネットワークでは、ループ(Counting to Infinity問題)を避けるのに役に立つのが理解できました
http://c-router.com/chap11/poison_reverse01.html
http://ytera22.hatenablog.com/entry/2014/06/07/165754
https://books.google.co.jp/books?id=k_i3Ok6ZdesC&pg=PT71&lpg=PT71&dq=RIP+%E3%83%99%E3%83%AB%E3%83%9E%E3%83%B3%E3%83%95%E3%82%A9%E3%83%BC%E3%83%89%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0&source=bl&ots=DbeSq07IHI&sig=ACfU3U16wjLdO1Pp5irFk5M7lifTVCeing&hl=ja&sa=X&ved=2ahUKEwj1483_pqDlAhVyyYsBHRRBAYQ4ChDoATARegQIBxAC#v=onepage&q=RIP%20%E3%83%99%E3%83%AB%E3%83%9E%E3%83%B3%E3%83%95%E3%82%A9%E3%83%BC%E3%83%89%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0&f=false
ですが、最初の例のような冠状のネットワークでは意味がないようですし、そもそも「メトリック値16の経路情報を受信した場合、即座に同じインターフェースから送信元ルータに送り返す機能」ではありません
ポイズンリバースがどんな機能なのかということ自体も説明が色々ありすぎて、わからなくなってきた気がします
文章が長くなり、表現や理解が間違っている部分もあると思います。その部分も含め、ポイズンリバースが何の役に立つのか。
ご存じの方は教えてください。
ポイズンリバースは
「メトリック値16の経路情報を受信した場合、即座に同じインターフェースから送信元ルータに送り返す機能」
と理解しています。
これがどんな意味があるのか分からなくなって、まずフォーラムを検索し、同じ疑問っぽいものを見つけました。
https://ping-t.com/modules/forum/index.php?topic_id=2667
(https://ping-t.com/modules/forum/index.php?topic_id=2803)
上の投稿から以下の解説サイトに誘導されました。
ttp://www.7key.jp/nw/routing/r_protocol/poison_reverse.html
ですが、ここの解説はちょっと理解できませんでした。
X─A─B─C─D
└─────┘
(1)上記のようなコンバージェンス済みネットワークでXがダウンすると、Xへの経路情報がメトリック値16でA→B、A→Dとアドバタイズされる
(2)BまたはDがXへの経路情報をメトリック値16にして自身のルーティングテーブルを更新する
(3)更にBがCにアドバタイズする前に、D経由のXまでのメトリック3の経路をCからBが受信する可能性、
またはDがCにアドバタイズする前に、B経由のXまでのメトリック3の経路をCからDが受信する可能性がある
(4)BまたはDは、より小さいメトリック値3で自身のルーティングテーブルを更新する
(5)BまたはDは、この情報をAへアドバタイズし(ここ以降の流れは書かれていないのですが、おそらくAがまたトリガーアップデートし)ループが発生する可能性がある
これはBからAに、またDからAにポイズンリバースすることで防げる
という風に書いてあるのですが、では(1)〜(5)のいずれも防げていませんので、これはちょっと説明になっていない気がします。
更に少し調べてみて、以下のサイトで、ポイズンリバースとは別に、ホールドダウンタイマーによりが防がれているということが分かりました。
https://www.infraexpert.com/study/distancevector4.html
(ただし、ループの原因となるを防いでいるわけではないので、ホールドダウンタイマーが切れた瞬間にが起きる、つまりBC間、DC間の通信にホールドダウンタイマーの時間以上かかる可能性もあるような……ここは勉強不足ですが、おそらくそんなネットワークは現実的じゃないということなのでしょうか)
他にも幾つかサイトを巡りましたが、ポイズンリバースが具体的にどんな場面で役に立つのか解説したものはありませんでした
https://kmownet.com/computer-network/251-routing/251-routing.html
https://blog.goo.ne.jp/kuratat/e/d8268d38e233de893bfa0d8465d4307e
ttps://books.google.co.jp/books?id=cvb9DuWU9DsC&pg=PA141&lpg=PA141&dq=%E3%83%9D%E3%82%A4%E3%82%BA%E3%83%B3%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9&source=bl&ots=uHa0mjlDOt&sig=ACfU3U0zbUfiol8j9SXhwoqQlDap8PBL6w&hl=ja&sa=X&ved=2ahUKEwje0ITNmKDlAhXPGKYKHWlYC-g4FBDoATAEegQIBBAC#v=onepage&q=%E3%83%9D%E3%82%A4%E3%82%BA%E3%83%B3%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9&f=false
https://books.google.co.jp/books?id=aO3qDQAAQBAJ&pg=PA243&lpg=PA243&dq=%E3%83%9D%E3%82%A4%E3%82%BA%E3%83%B3%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9&source=bl&ots=bTLXF3iDO2&sig=ACfU3U3m7kIWT06cg8DKhHqV107FBHdH_A&hl=ja&sa=X&ved=2ahUKEwje0ITNmKDlAhXPGKYKHWlYC-g4FBDoATACegQICBAC#v=onepage&q=%E3%83%9D%E3%82%A4%E3%82%BA%E3%83%B3%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9&f=false
そのうち、「ポイズンリバース付きスプリットホライゾン」という単語に当たりました
これは「メトリック値1の経路情報は、その経路情報を送信してきたノードに対しては、普通のスプリットホライゾンのように送信しないのではなく、メトリック値16で送信する機能」のようです
こちらは、X─A─Bのような紐上のネットワークでは、ループ(Counting to Infinity問題)を避けるのに役に立つのが理解できました
http://c-router.com/chap11/poison_reverse01.html
http://ytera22.hatenablog.com/entry/2014/06/07/165754
https://books.google.co.jp/books?id=k_i3Ok6ZdesC&pg=PT71&lpg=PT71&dq=RIP+%E3%83%99%E3%83%AB%E3%83%9E%E3%83%B3%E3%83%95%E3%82%A9%E3%83%BC%E3%83%89%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0&source=bl&ots=DbeSq07IHI&sig=ACfU3U16wjLdO1Pp5irFk5M7lifTVCeing&hl=ja&sa=X&ved=2ahUKEwj1483_pqDlAhVyyYsBHRRBAYQ4ChDoATARegQIBxAC#v=onepage&q=RIP%20%E3%83%99%E3%83%AB%E3%83%9E%E3%83%B3%E3%83%95%E3%82%A9%E3%83%BC%E3%83%89%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0&f=false
ですが、最初の例のような冠状のネットワークでは意味がないようですし、そもそも「メトリック値16の経路情報を受信した場合、即座に同じインターフェースから送信元ルータに送り返す機能」ではありません
ポイズンリバースがどんな機能なのかということ自体も説明が色々ありすぎて、わからなくなってきた気がします
文章が長くなり、表現や理解が間違っている部分もあると思います。その部分も含め、ポイズンリバースが何の役に立つのか。
ご存じの方は教えてください。
Re: ポイズンリバースがどんな場面で役に立つか
msg# 1.1
arashi1977
居住地: 広島
投稿数: 1715
まずお願いなのですが、ここは5chとかではないのでURLの先頭のhを抜くとかいう小細工は不要です。リンクたどるのが手間なのでそのまま記載していただければ助かります。
で
引用:防げていないことはないですよ。ここで忘れてはいけないのは
・ポイズンリバースなし:
引用:にルーティングループとなりうる
・ポイズンリバースあり:
引用:カッコ書きした「即座に」によって定期アップデートより早く動作させることでループの発生を防いでいる。
です。
上記の場合、ルータAはBとDから即座にメトリック16の情報を受け取るため、ダウンした経路はs0/s1/s2どのインターフェースからも到達不能であることを理解するので、あとはホールドダウンタイマーによる無効な経路情報のクリアまで待つだけです。
なぜなら、ルータCもBもしくはDから教えてもらって学習した経路ですが、ルータAからアップデートが来なくなるのでBとDはそのうち経路情報が消え、それによってCの知っている経路情報も消えることになるので、誰からも無効経路についてのアップデートを受信しなくなるからです。
(なので、ルーティングプロトコルでのホールドダウンタイマーは適切に設定する必要がある、ということにつながってくるんですね)
で
引用:
上記のようなコンバージェンス済みネットワークでXがダウンすると、Xへの経路情報がメトリック値16でA→B、A→Dとアドバタイズされる
BまたはDがXへの経路情報をメトリック値16にして自身のルーティングテーブルを更新する
更にBがCにアドバタイズする前に、D経由のXまでのメトリック3の経路をCからBが受信する可能性、
またはDがCにアドバタイズする前に、B経由のXまでのメトリック3の経路をCからDが受信する可能性がある
BまたはDは、より小さいメトリック値3で自身のルーティングテーブルを更新する
BまたはDは、この情報をAへアドバタイズし(ここ以降の流れは書かれていないのですが、おそらくAがまたトリガーアップデートし)ループが発生する可能性がある
これはBからAに、またDからAにポイズンリバースすることで防げる
という風に書いてあるのですが、では〜のいずれも防げていませんので、これはちょっと説明になっていない気がします。
・ポイズンリバースなし:
引用:
この場合に、ルータBとルータDがアドバタイズする前に、ルータCがアドバタイズする可能性はゼロではありません。つまり、ルータBとルータDのトリガアップデートよりも先にルータCの定時更新のタイミングが早かった場合
・ポイズンリバースあり:
引用:
まず"10.1.1.0"がダウンしたことを検出したルータAは、トリガアップデートで直ちに「"10.1.1.0"、メトリック16」の情報をルータBとルータDに送信します。これを受信したルータBとルータDは(即座に)すべての受信したインターフェイスから「"10.1.1.0"、メトリック16」の情報をアドバタイズします。
です。
上記の場合、ルータAはBとDから即座にメトリック16の情報を受け取るため、ダウンした経路はs0/s1/s2どのインターフェースからも到達不能であることを理解するので、あとはホールドダウンタイマーによる無効な経路情報のクリアまで待つだけです。
なぜなら、ルータCもBもしくはDから教えてもらって学習した経路ですが、ルータAからアップデートが来なくなるのでBとDはそのうち経路情報が消え、それによってCの知っている経路情報も消えることになるので、誰からも無効経路についてのアップデートを受信しなくなるからです。
(なので、ルーティングプロトコルでのホールドダウンタイマーは適切に設定する必要がある、ということにつながってくるんですね)
Re: ポイズンリバースがどんな場面で役に立つか
msg# 1.2
Pnt777_009
投稿数: 4
h抜きの件、失礼しました。
1度書き込みに失敗したため癖でhを抜いたら通ったので、そのまま投稿してしまいました。
最初のレスは編集しなおしてあります。
(すみません1か所どうしてもh付きで投稿できないURLがあったのでそこはそのままです)
さて回答いただいた件ですが、例でいうと、ポイズンリバースによって「即座に」ルータAのホールドダウンタイマーを機能させることで、
引用:
にルータBまたはルータDから古い誤った情報が送られてくしきたても、ルータAがそれ受け入れないようにることで、ルーティングループを途中で防いでいる、という理解でいいしょうか。
ポイズンリバースについて、ループ防止の必須機能!などと書かれていることが多かったので、てっきり単体で機能するものだと誤解していましたが、ホールドダウンタイマー(の適切な設定)と組み合わせることで機能するもの、なのですね。
(ルータAで、ルートポイズニングと同時に、ホールドダウンタイマーを機能させればいいだけのような気もしますが)
1度書き込みに失敗したため癖でhを抜いたら通ったので、そのまま投稿してしまいました。
最初のレスは編集しなおしてあります。
(すみません1か所どうしてもh付きで投稿できないURLがあったのでそこはそのままです)
さて回答いただいた件ですが、例でいうと、ポイズンリバースによって「即座に」ルータAのホールドダウンタイマーを機能させることで、
引用:
この場合に、ルータBとルータDがアドバタイズする前に、ルータCがアドバタイズする可能性はゼロではありません。つまり、ルータBとルータDのトリガアップデートよりも先にルータCの定時更新のタイミングが早かった場合
にルータBまたはルータDから古い誤った情報が送られてくしきたても、ルータAがそれ受け入れないようにることで、ルーティングループを途中で防いでいる、という理解でいいしょうか。
ポイズンリバースについて、ループ防止の必須機能!などと書かれていることが多かったので、てっきり単体で機能するものだと誤解していましたが、ホールドダウンタイマー(の適切な設定)と組み合わせることで機能するもの、なのですね。
(ルータAで、ルートポイズニングと同時に、ホールドダウンタイマーを機能させればいいだけのような気もしますが)