6.2. BFD State Machine (BFDステートマシン)
6.2. BFD State Machine (BFDステートマシン)
BFD ステートマシンは非常に単純です。セッションが通常進む3つの状態があります: セッションを確立するための2つ (Init と Up) と, セッションを終了するための1つ (Down) です。これにより, セッション確立とセッション終了の両方で3ウェイハンドシェイクが可能になり (両方のシステムがすべてのセッション状態変更を認識していることを保証), 第4の状態 (AdminDown) が存在し, セッションを無期限に管理的にダウン状態にできます。
各システムは, BFD Control パケットの State (Sta) フィールドでセッション状態を通信し, その受信状態がローカルセッション状態と組み合わされて, ステートマシンを駆動します。
Down 状態は, セッションがダウンしている (または作成されたばかり) ことを意味します。セッションは, リモートシステムが State フィールドを Up 以外の何かに設定した BFD Control パケットを送信することによってセッションがダウンしていることに同意するまで, Down 状態のままです。そのパケットが Down 状態を通知する場合, セッションは Init 状態に進みます。そのパケットが Init 状態を通知する場合, セッションは Up 状態に進みます。意味的には, Down 状態はフォワーディングパスが利用できないことを示し, BFD セッションの状態を監視しているアプリケーションによって適切なアクションが取られるべきです。システムは, セッションを無期限に Down 状態に保持できます (MAY) (単にセッション状態の進行を拒否することによって)。これは, 運用上または管理上の理由などで行われる可能性があります。
Init 状態は, リモートシステムが通信しており, ローカルシステムがセッションをアップさせたいと望んでいるが, リモートシステムがまだそれを認識していないことを意味します。セッションは, Init または Up 状態を通知する BFD Control パケットが受信される (その場合セッションは Up 状態に進む) か, 検出時間が期限切れになる (リモートシステムとの通信が失われたことを意味し, その場合セッションは Down 状態に進む) まで, Init 状態のままです。
Up 状態は, BFD セッションが正常に確立されたことを意味し, システム間の接続性が機能していることを示します。セッションは, 接続性が失われるか, セッションが管理的にダウンされるまで, Up 状態のままです。リモートシステムが Down 状態を通知するか, 検出時間が期限切れになると, セッションは Down 状態に進みます。
AdminDown 状態は, セッションが管理的にダウン状態に保持されていることを意味します。これにより, リモートシステムは Down 状態に入り, ローカルシステムが AdminDown 状態を終了するまでそこにとどまります。AdminDown 状態は, フォワーディングパスの可用性に関するセマンティックな意味を持ちません。
以下の図は, ステートマシンの概要を示しています。AdminDown 状態に関連する遷移は明確さのために削除されています (ただし, セクション 6.8.6 および 6.8.16 で完全に規定されています)。各アークの表記は, リモートシステムの状態 (BFD Control パケットの State フィールドで受信) を表すか, Detection Timer の期限切れを示します。
+--+
| | UP, ADMIN DOWN, TIMER
| V
DOWN +------+ INIT
+------------| |------------+
| | DOWN | |
| +-------->| |<--------+ |
| | +------+ | |
| | | |
| | ADMIN DOWN,| |
| |ADMIN DOWN, DOWN,| |
| |TIMER TIMER| |
V | | V
+------+ +------+
+----| | | |----+
DOWN| | INIT |--------------------->| UP | |INIT, UP
+--->| | INIT, UP | |<---+
+------+ +------+