2. Design (設計)
2. Design (設計)
BFD は, フォワーディングプレーンのネクストホップとの通信における障害を検出するように設計されています。フォワーディングエンジンと制御エンジンが分離されている場合, システムのフォワーディングエンジンの何らかのコンポーネントに実装されることを意図しています。これにより, プロトコルをフォワーディングプレーンにより密接に結び付けるだけでなく, プロトコルをルーティングプロトコルエンジンの運命から切り離し, それらのプロトコルのさまざまな "グレースフルリスタート" メカニズムと組み合わせて有用にします。BFD は制御エンジンにも実装できますが, そうすることで一部の種類の障害の検出ができなくなる可能性があります。
BFD は, 2つのシステム間で転送されているあらゆるデータプロトコル (ネットワーク層, リンク層, トンネルなど) の上で動作します。常にユニキャストのポイントツーポイントモードで実行されます。BFD パケットは, メディアとネットワークに適切なカプセル化プロトコルのペイロードとして運ばれます。BFD はシステム内の複数の層で実行されている可能性があります。特定の BFD セッションの動作のコンテキストは, そのカプセル化に結び付けられます。
BFD は, 直接物理リンク, 仮想回線, トンネル, MPLS Label Switched Paths (LSPs), マルチホップルーテッドパス, および単方向リンク (もちろん何らかのリターンパスがある限り) を含む, システム間のあらゆる種類のパス上で障害検出を提供できます。同じシステムのペア間に少なくとも一方向に複数のパスが存在する場合, 他の方向で利用可能なパスの数が少ない場合でも, 複数の BFD セッションを確立できます (例えば, 複数の並列単方向リンクまたは MPLS LSP)。
BFD ステートマシンは, BFD セッションを確立する際と, 何らかの理由でセッションを終了する際の両方で, 3ウェイハンドシェイクを実装し, 両方のシステムが状態変更を認識していることを保証します。
BFD は, シンプルなサービスとして抽象化できます。BFD によって提供されるサービスプリミティブは, 宛先アドレスおよびその他のパラメータが与えられた場合に, セッションを作成, 破棄, および変更することです。BFD は, BFD セッションがアップまたはダウンしたことを示す信号をクライアントに返します。