Re: 問題ID : 16678 冗長化 SSOに関する質問です。
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テーブルを(独自で)構築する」のではないか
という理解をされている、ということでしょうか?
投稿ツリー
-
問題ID : 16678 冗長化 SSOに関する質問です。
(20160220, 2021-6-21 8:27)
-
Re: 問題ID : 16678 冗長化 SSOに関する質問です。
(arashi1977, 2021-6-21 10:29)
- Re: 問題ID : 16678 冗長化 SSOに関する質問です。 (20160220, 2021-6-21 17:35)
-
Re: 問題ID : 16678 冗長化 SSOに関する質問です。
(arashi1977, 2021-6-21 10:29)