問題ID : 16678 冗長化 SSOに関する質問です。
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
20160220
投稿数: 5
「SSOを使用することでスタンバイ側のスーパバイザエンジンに同期される情報はどれか」
という問題なのですが解答にFIBテーブルが含まれ、ルーティング情報が含まれないことが腑に落ちません。
解説によるとルーティング情報を同期したい場合はSSO/NSFを使用するとあります。
CEFの箇所でFIBテーブルはルーティングテーブルから作成されると学習しましたが、SSOでFIBテーブルテーブルが同期できるならルーティングテーブルも同期できそうな気がしますし、ルーティングテーブルが同期できないならFIBテーブルテーブルも同期できないような気がします。
しっくり来る説明・解説ができる方、あるいはここに書いてあるよ的な情報があれば共有していただきたいです。
宜しくお願い致します。
という問題なのですが解答にFIBテーブルが含まれ、ルーティング情報が含まれないことが腑に落ちません。
解説によるとルーティング情報を同期したい場合はSSO/NSFを使用するとあります。
CEFの箇所でFIBテーブルはルーティングテーブルから作成されると学習しましたが、SSOでFIBテーブルテーブルが同期できるならルーティングテーブルも同期できそうな気がしますし、ルーティングテーブルが同期できないならFIBテーブルテーブルも同期できないような気がします。
しっくり来る説明・解説ができる方、あるいはここに書いてあるよ的な情報があれば共有していただきたいです。
宜しくお願い致します。
Re: 問題ID : 16678 冗長化 SSOに関する質問です。
msg# 1.1
arashi1977
居住地: 広島
投稿数: 1715
引用:因果関係をごちゃまぜにすると混乱の元かと思います。上記のお話では
・FIBテーブルはルーティングテーブルから作成される→正しい
・SSOではFIBテーブルを同期する→正しい
・FIBテーブルが同期できるのならルーティングテーブルも同期できるのでは?→疑問
・ルーティングテーブルが同期できないならFIBテーブルも同期できないのでは?→仮説
の4つがひとまとめになっています。
まず前者2つはこの問題ID:16678で学習したので納得されているのだと思います。
で、3つ目の「FIBテーブルが同期できるのならルーティングテーブルも同期できるのでは?」ですが、FIBテーブルが同期できることとルーティングテーブルが同期できることは異なる話です。FIBテーブルはデータプレーンで使用するもので、「受信したパケットについて、宛先MACアドレスをどう編集してどの物理ポートから送出するか」を判断するのに使います。この情報はルーティングテーブルが更新されるまでそのまま使用されるので、何らかの障害が発生している状態(例えば「スイッチオーバーによるコントロールプレーンの機能喪失」)であっても、FIBが正しく参照できればデータプレーンとしては「中断なしの転送(=Non Stop Forwarding)」が可能なわけです。
※この辺は参考URL1に詳しく説明がありますね。
そして、ルーティングテーブルは「ルーティングプロトコルが学習した内容から、最適なものを選択して構築する」コントロールプレーンの情報です。ルーティングプロトコルの状態(例えばどれかのインターフェースのup/downなど)が変化すると、それだけでも情報が更新されるものです。しかし「データプレーンでの転送には直接ルーティングテーブルを参照しない」のがCEFの動作です。ルーティングテーブルを参照するだけでもCPUを使った無駄な処理が発生するので、転送にはFIBテーブルのみを使用してルーティングテーブルに変更があったときにFIBテーブルを更新するという動作です。
もうちょっと踏み込んで言うと「できるかどうか以前に、FIBテーブルが同期できていれば転送処理はできるので、ルーティングテーブルを同期する必要性はない」という話になります。
最後に4つ目、「ルーティングテーブルが同期できないならFIBテーブルも同期できないのでは?」ですが、前述の通り「FIBテーブルが同期できていれば転送処理に問題はないので、ルーティングテーブルを同期する必要はない」ということと「(コントロールプレーンのものである)ルーティングテーブルと(データプレーンのものである)FIBテーブルは別のもの」なので、FIBテーブルだけ同期してルーティングテーブルは同期しないということには何の問題もないです。
20160220さんの想定はもしかして
・FIBテーブルはルーティングテーブルから構築される
・NSF/SSOのためにFIBテーブルの同期が行われる
・同期するFIBテーブルはFIBテーブル単独で同期(コピー)されるのではなく、「ルーティングテーブルを同期(コピー)し、そこからスタンバイ側のFIBテーブルを(独自で)構築する」のではないか
という理解をされている、ということでしょうか?
CEFの箇所でFIBテーブルはルーティングテーブルから作成されると学習しましたが、SSOでFIBテーブルテーブルが同期できるならルーティングテーブルも同期できそうな気がしますし、ルーティングテーブルが同期できないならFIBテーブルテーブルも同期できないような気がします。
・FIBテーブルはルーティングテーブルから作成される→正しい
・SSOではFIBテーブルを同期する→正しい
・FIBテーブルが同期できるのならルーティングテーブルも同期できるのでは?→疑問
・ルーティングテーブルが同期できないならFIBテーブルも同期できないのでは?→仮説
の4つがひとまとめになっています。
まず前者2つはこの問題ID:16678で学習したので納得されているのだと思います。
で、3つ目の「FIBテーブルが同期できるのならルーティングテーブルも同期できるのでは?」ですが、FIBテーブルが同期できることとルーティングテーブルが同期できることは異なる話です。FIBテーブルはデータプレーンで使用するもので、「受信したパケットについて、宛先MACアドレスをどう編集してどの物理ポートから送出するか」を判断するのに使います。この情報はルーティングテーブルが更新されるまでそのまま使用されるので、何らかの障害が発生している状態(例えば「スイッチオーバーによるコントロールプレーンの機能喪失」)であっても、FIBが正しく参照できればデータプレーンとしては「中断なしの転送(=Non Stop Forwarding)」が可能なわけです。
※この辺は参考URL1に詳しく説明がありますね。
そして、ルーティングテーブルは「ルーティングプロトコルが学習した内容から、最適なものを選択して構築する」コントロールプレーンの情報です。ルーティングプロトコルの状態(例えばどれかのインターフェースのup/downなど)が変化すると、それだけでも情報が更新されるものです。しかし「データプレーンでの転送には直接ルーティングテーブルを参照しない」のがCEFの動作です。ルーティングテーブルを参照するだけでもCPUを使った無駄な処理が発生するので、転送にはFIBテーブルのみを使用してルーティングテーブルに変更があったときにFIBテーブルを更新するという動作です。
もうちょっと踏み込んで言うと「できるかどうか以前に、FIBテーブルが同期できていれば転送処理はできるので、ルーティングテーブルを同期する必要性はない」という話になります。
最後に4つ目、「ルーティングテーブルが同期できないならFIBテーブルも同期できないのでは?」ですが、前述の通り「FIBテーブルが同期できていれば転送処理に問題はないので、ルーティングテーブルを同期する必要はない」ということと「(コントロールプレーンのものである)ルーティングテーブルと(データプレーンのものである)FIBテーブルは別のもの」なので、FIBテーブルだけ同期してルーティングテーブルは同期しないということには何の問題もないです。
20160220さんの想定はもしかして
・FIBテーブルはルーティングテーブルから構築される
・NSF/SSOのためにFIBテーブルの同期が行われる
・同期するFIBテーブルはFIBテーブル単独で同期(コピー)されるのではなく、「ルーティングテーブルを同期(コピー)し、そこからスタンバイ側のFIBテーブルを(独自で)構築する」のではないか
という理解をされている、ということでしょうか?
Re: 問題ID : 16678 冗長化 SSOに関する質問です。
msg# 1.1.1
20160220
投稿数: 5
arashi1977様
迅速かつ丁寧な回答本当にありがとうございます!
ルーティングテーブルとFIBテーブルは相互にやり取り(更新)をするイメージだったので、FIBテーブルのみを切り離して同期するのにどうも違和感があるといいますか、FIBテーブルのみをスタンバイに同期した場合にスタンバイのルーティングテーブル(空の状態?)とFIBテーブルで整合性が取れなくなってしまうんじゃないかと考えていました。FIBテーブルをコピーするならルーティングテーブルも同時にコピーする必要があるようなイメージをしておりました。
自分の不勉強でコントロールプレーンでのお話とデータプレーンでのお話をきちんと分けて理解できて居なかったです。arashi1977様の解説で腑に落ちました。
==========
「(コントロールプレーンのものである)ルーティングテーブルと(データプレーンのものである)FIBテーブルは別のものなので、FIBテーブルだけ同期してルーティングテーブルは同期しないということには何の問題もないです。
==========
コントロールプレーンに機能喪失があってもFIBテーブルが同期してあればFIBを正しく参照することができ、データプレーンで転送が続けられる、そのためにFIBをテーブルの同期が必要でルーティングテーブルは不要な点、理解できました。
自分の中でもうまく整理しきれていない質問に親切にご回答くださり本当にありがとうございます。
迅速かつ丁寧な回答本当にありがとうございます!
ルーティングテーブルとFIBテーブルは相互にやり取り(更新)をするイメージだったので、FIBテーブルのみを切り離して同期するのにどうも違和感があるといいますか、FIBテーブルのみをスタンバイに同期した場合にスタンバイのルーティングテーブル(空の状態?)とFIBテーブルで整合性が取れなくなってしまうんじゃないかと考えていました。FIBテーブルをコピーするならルーティングテーブルも同時にコピーする必要があるようなイメージをしておりました。
自分の不勉強でコントロールプレーンでのお話とデータプレーンでのお話をきちんと分けて理解できて居なかったです。arashi1977様の解説で腑に落ちました。
==========
「(コントロールプレーンのものである)ルーティングテーブルと(データプレーンのものである)FIBテーブルは別のものなので、FIBテーブルだけ同期してルーティングテーブルは同期しないということには何の問題もないです。
==========
コントロールプレーンに機能喪失があってもFIBテーブルが同期してあればFIBを正しく参照することができ、データプレーンで転送が続けられる、そのためにFIBをテーブルの同期が必要でルーティングテーブルは不要な点、理解できました。
自分の中でもうまく整理しきれていない質問に親切にご回答くださり本当にありがとうございます。