8.1. Events for the BGP FSM (BGP FSMのイベント)
8.1. Events for the BGP FSM (BGP FSMのイベント)
8.1.1. Optional Events Linked to Optional Session Attributes (オプションセッション属性にリンクされたオプションイベント)
BGP FSMへの入力はイベントです。イベントは必須またはオプションのいずれかです。一部のオプションイベントは、オプションのセッション属性にリンクされています。オプションのセッション属性は、FSM機能のいくつかのグループを有効にします。
FSM機能、イベント、およびオプションのセッション属性間のリンケージを以下に説明します。
グループ1: 自動管理イベント(Start/Stop)
オプションセッション属性: AllowAutomaticStart、AllowAutomaticStop、DampPeerOscillations、IdleHoldTime、IdleHoldTimer
オプション1: AllowAutomaticStart
説明: BGPピア接続は、管理制御によって開始および停止できます。この管理制御は、オペレーターの介入に基づく手動、またはBGP実装固有のロジックの制御下にある自動のいずれかです。「自動」という用語は、そのようなロジックがBGPピア接続を再起動すべきと判断したときに、BGPピア接続FSMに発行される開始を指します。
AllowAutomaticStart属性は、このBGP接続がBGP接続の自動開始をサポートすることを指定します。
BGP実装がAllowAutomaticStartをサポートする場合、ピアは繰り返し再起動される可能性があります。他の3つのオプションは、自動再起動が発生する速度を制御します:DampPeerOscillations、IdleHoldTime、およびIdleHoldTimer。
DampPeerOscillationsオプションは、実装が自動開始と自動停止のシーケンスに直面してBGPピアの振動を減衰させる追加のロジックを実行することを指定します。IdleHoldTimeは、次の自動再起動を許可する前にBGPピアがIdle状態に保持される時間の長さを指定します。IdleHoldTimerは、ピアをIdle状態に保持するタイマーです。
DampPeerOscillationsロジックの例は、BGPピアが時間期間内に繰り返し接続性(接続/切断)を振動する場合、IdleHoldTime値を増加させることです。このロジックを実行するために、ピアは5分以内に10回接続および切断する可能性があります。IdleHoldTime値は0から120秒にリセットされます。
値: TRUEまたはFALSE
オプション2: AllowAutomaticStop
説明: このBGPピアセッションのオプション属性は、BGP接続がBGP接続の「自動」停止を許可することを示します。「自動」停止は、実装固有のロジックの制御下での停止として定義されます。実装固有のロジックは、この仕様の範囲外です。
値: TRUEまたはFALSE
オプション3: DampPeerOscillations
説明: DampPeerOscillationsオプションセッション属性は、BGP接続がIdle状態でBGPピアの振動を減衰させるロジックを使用していることを示します。
値: TRUEまたはFALSE
オプション4: IdleHoldTime
説明: IdleHoldTimeは、IdleHoldTimerに設定される値です。
値: 秒単位の時間
オプション5: IdleHoldTimer
説明: IdleHoldTimerは、BGPピアの振動制御を支援します。IdleHoldTimerは、BGPピアを特定の期間Idleに保つために使用されます。IdleHoldTimer_Expiresイベントは、セクション8.1.3で説明されています。
値: 秒単位の時間
グループ2: 未設定ピア
オプションセッション属性: AcceptConnectionsUnconfiguredPeers
オプション1: AcceptConnectionsUnconfiguredPeers
説明: BGP FSMは、オプションで事前設定されていないネイバーからのBGPピア接続の受け入れを許可します。「AcceptConnectionsUnconfiguredPeers」オプションセッション属性により、FSMは実装がこれらの未設定ピアを受け入れるか拒否するかを許可する状態遷移をサポートできます。
AcceptConnectionsUnconfiguredPeersにはセキュリティ上の影響があります。詳細については、BGP脆弱性文書[RFC4272]を参照してください。
値: TrueまたはFalse
グループ3: TCP処理
オプションセッション属性: PassiveTcpEstablishment、TrackTcpState
オプション1: PassiveTcpEstablishment
説明: このオプションは、BGP FSMがリモートBGPピアがBGP TCP接続を確立するのを受動的に待機することを示します。
値: TRUEまたはFALSE
オプション2: TrackTcpState
説明: BGP FSMは通常、個々のTCPメッセージではなく、TCP接続試行の最終結果を追跡します。オプションで、BGP FSMはTCP接続ネゴシエーションとの追加の相互作用をサポートできます。TCPイベントとの相互作用により、BGPピア接続が必要とするロギングの量とBGP FSM変更の数が増加する可能性があります。
値: TRUEまたはFALSE
グループ4: BGPメッセージ処理
オプションセッション属性: DelayOpen、DelayOpenTime、DelayOpenTimer、SendNOTIFICATIONwithoutOPEN、CollisionDetectEstablishedState
オプション1: DelayOpen
説明: DelayOpenオプションセッション属性により、実装は特定の時間期間(DelayOpenTime)OPENメッセージの送信を遅延するように設定できます。遅延により、リモートBGPピアが最初のOPENメッセージを送信する時間が与えられます。
値: TRUEまたはFALSE
オプション2: DelayOpenTime
説明: DelayOpenTimeは、DelayOpenTimerに設定される初期値です。
値: 秒単位の時間
オプション3: DelayOpenTimer
説明: DelayOpenTimerオプションセッション属性は、接続でのOPENメッセージの送信を遅延するために使用されます。DelayOpenTimer_Expiresイベント(イベント12)は、セクション8.1.3で説明されています。
値: 秒単位の時間
オプション4: SendNOTIFICATIONwithoutOPEN
説明: SendNOTIFICATIONwithoutOPENにより、ピアは最初にOPENメッセージを送信せずにNOTIFICATIONを送信できます。このオプションセッション属性がない場合、BGP接続は、ピアがNOTIFICATIONメッセージを送信する前にピアによってOPENメッセージが送信されなければならないと想定します。
値: TrueまたはFalse
オプション5: CollisionDetectEstablishedState
説明: 通常、衝突検出(セクション6.8参照)はEstablished状態で無視されます。このオプションセッション属性は、このBGP接続がEstablished状態で衝突を処理することを示します。
値: TrueまたはFalse
注: オプションのセッション属性は、BGP実装の既存機能のBGP FSM記述を明確にします。オプションのセッション属性は、実装に対して事前定義されている可能性があり、既存の正しい実装の管理インターフェースを介して読み取ることができない場合があります。新しいBGP MIB(バージョン2以降)がサポートされると、これらのフィールドは管理インターフェースを介してアクセス可能になります。
8.1.2. Administrative Events (管理イベント)
管理イベントは、オペレーターインターフェースとBGPポリシーエンジンがBGP有限状態機械にBGP状態機械の開始または停止を通知するイベントです。基本的な開始および停止指示は、BGP FSMに特定のタイプの開始または停止メカニズムを通知するオプションの接続属性によって拡張されます。この組み合わせの例は、イベント5、AutomaticStart_with_PassiveTcpEstablishmentです。このイベントでは、BGP実装は、実装がパッシブTCP確立を使用するオプションで自動開始を使用していることをBGP FSMに通知します。パッシブTCP確立は、このBGP FSMがリモート側がTCP確立を開始するのを待つことを示します。
イベント1(ManualStart)とイベント2(ManualStop)のみが必須の管理イベントであることに注意してください。他のすべての管理イベントはオプションです(イベント3-8)。以下の各イベントには、名前、定義、ステータス(必須またはオプション)、および各段階で設定されるべき(SHOULD)オプションのセッション属性があります。BGP FSMのイベント1からイベント8を生成する場合、「Optional Attribute Status」セクションで指定された条件が検証されます。これらの条件のいずれかが満たされない場合、ローカルシステムはFSMエラーをログに記録すべきです(should)。
オプションのセッション属性の設定は、一部の実装では暗黙的である可能性があるため、外部オペレーターのアクションによって明示的に設定されない場合があります。セクション8.2.1.5は、オプションのセッション属性のこれらの暗黙的な設定について説明しています。以下で説明する管理状態も、一部の実装では暗黙的であり、外部オペレーターによって直接設定できない場合があります。
イベント1: ManualStart (手動開始)
定義: ローカルシステム管理者がピア接続を手動で開始します。
ステータス: 必須
オプション属性ステータス: PassiveTcpEstablishment属性はFALSEに設定されるべきです(SHOULD)。
イベント2: ManualStop (手動停止)
定義: ローカルシステム管理者がピア接続を手動で停止します。
ステータス: 必須
オプション属性ステータス: オプション属性との相互作用はありません。
イベント3: AutomaticStart (自動開始)
定義: ローカルシステムがBGP接続を自動的に開始します。
ステータス: オプション、ローカルシステムに依存
オプション属性ステータス:
- このイベントが発生する場合、AllowAutomaticStart属性はTRUEに設定されるべきです(SHOULD)。
- PassiveTcpEstablishmentオプションセッション属性がサポートされている場合、FALSEに設定されるべきです(SHOULD)。
- DampPeerOscillationsがサポートされている場合、このイベントが発生したときにFALSEに設定されるべきです(SHOULD)。
イベント4: ManualStart_with_PassiveTcpEstablishment (パッシブTCP確立付き手動開始)
定義: ローカルシステム管理者がピア接続を手動で開始しますが、PassiveTcpEstablishmentが有効になっています。PassiveTcpEstablishmentオプション属性は、ピアが接続を確立する前にリッスンすることを示します。
ステータス: オプション、ローカルシステムに依存
オプション属性ステータス:
- このイベントが発生する場合、PassiveTcpEstablishment属性はTRUEに設定されるべきです(SHOULD)。
- このイベントが発生したとき、DampPeerOscillations属性はFALSEに設定されるべきです(SHOULD)。
イベント5: AutomaticStart_with_PassiveTcpEstablishment (パッシブTCP確立付き自動開始)
定義: ローカルシステムがPassiveTcpEstablishmentを有効にしてBGP接続を自動的に開始します。PassiveTcpEstablishmentオプション属性は、ピアが接続を確立する前にリッスンすることを示します。
ステータス: オプション、ローカルシステムに依存
オプション属性ステータス:
- AllowAutomaticStart属性はTRUEに設定されるべきです(SHOULD)。
- PassiveTcpEstablishment属性はTRUEに設定されるべきです(SHOULD)。
- DampPeerOscillations属性がサポートされている場合、DampPeerOscillationsはFALSEに設定されるべきです(SHOULD)。
イベント6: AutomaticStart_with_DampPeerOscillations (ピア振動減衰付き自動開始)
定義: ローカルシステムがピア振動減衰を有効にしてBGPピア接続を自動的に開始します。持続的なピア振動を減衰させる正確な方法は実装によって決定され、この文書の範囲外です。
ステータス: オプション、ローカルシステムに依存。
オプション属性ステータス:
- AllowAutomaticStart属性はTRUEに設定されるべきです(SHOULD)。
- DampPeerOscillations属性はTRUEに設定されるべきです(SHOULD)。
- PassiveTcpEstablishment属性はFALSEに設定されるべきです(SHOULD)。
イベント7: AutomaticStart_with_DampPeerOscillations_and_PassiveTcpEstablishment (ピア振動減衰とパッシブTCP確立付き自動開始)
定義: ローカルシステムがピア振動減衰とPassiveTcpEstablishmentを有効にしてBGPピア接続を自動的に開始します。持続的なピア振動を減衰させる正確な方法は実装によって決定され、この文書の範囲外です。
ステータス: オプション、ローカルシステムに依存
オプション属性ステータス:
- AllowAutomaticStart属性はTRUEに設定されるべきです(SHOULD)。
- DampPeerOscillations属性はTRUEに設定されるべきです(SHOULD)。
- PassiveTcpEstablishment属性はTRUEに設定されるべきです(SHOULD)。
イベント8: AutomaticStop (自動停止)
定義: ローカルシステムがBGP接続を自動的に停止します。
自動停止イベントの例は、特定のピアのプレフィックス数を超えて、ローカルシステムがピアを自動的に切断することです。
ステータス: オプション、ローカルシステムに依存
オプション属性ステータス:
- AllowAutomaticStop属性はTRUEであるべきです(SHOULD)。
8.1.3. Timer Events (タイマーイベント)
イベント9: ConnectRetryTimer_Expires (接続再試行タイマー満了)
定義: ConnectRetryTimerが満了したときに生成されるイベント。
ステータス: 必須
イベント10: HoldTimer_Expires (保持タイマー満了)
定義: HoldTimerが満了したときに生成されるイベント。
ステータス: 必須
イベント11: KeepaliveTimer_Expires (キープアライブタイマー満了)
定義: KeepaliveTimerが満了したときに生成されるイベント。
ステータス: 必須
イベント12: DelayOpenTimer_Expires (オープン遅延タイマー満了)
定義: DelayOpenTimerが満了したときに生成されるイベント。
ステータス: オプション
オプション属性ステータス: このイベントが発生する場合、
- DelayOpen属性はTRUEに設定されるべきです(SHOULD)、
- DelayOpenTime属性はサポートされるべきです(SHOULD)、
- DelayOpenTimerはサポートされるべきです(SHOULD)。
イベント13: IdleHoldTimer_Expires (アイドル保持タイマー満了)
定義: IdleHoldTimerが満了したときに生成されるイベントで、BGP接続がBGPピアの振動を防ぐためのバックオフ期間の待機を完了したことを示します。
IdleHoldTimerは、DampPeerOscillationsオプション属性をTRUEに設定することによって持続的なピア振動減衰機能が有効になっている場合にのみ使用されます。
持続的なピア振動減衰機能を実装していない実装は、IdleHoldTimerを持たない場合があります。
ステータス: オプション
オプション属性ステータス: このイベントが発生する場合:
- DampPeerOscillations属性はTRUEに設定されるべきです(SHOULD)。
- IdleHoldTimerがちょうど満了しているべきです(SHOULD)。
8.1.4. TCP Connection-Based Events (TCP接続ベースのイベント)
イベント14: TcpConnection_Valid (TCP接続有効)
定義: ローカルシステムが有効な送信元IPアドレス、TCPポート、宛先IPアドレス、およびTCPポートを持つTCP接続要求を受信したことを示すイベント。無効な送信元および無効な宛先IPアドレスの定義は、実装によって決定されます。
BGPの宛先ポートは、IANAによって定義されているように、ポート179であるべきです(SHOULD)。
TCP接続要求は、ローカルシステムがTCP SYNを受信することによって示されます。
ステータス: オプション
オプション属性ステータス:
- このイベントが発生する場合、TrackTcpState属性はTRUEに設定されるべきです(SHOULD)。
イベント15: Tcp_CR_Invalid (TCP接続要求無効)
定義: ローカルシステムが無効な送信元アドレスまたはポート番号、または無効な宛先アドレスまたはポート番号を持つTCP接続要求を受信したことを示すイベント。
BGP宛先ポート番号は、IANAによって定義されているように、179であるべきです(SHOULD)。
TCP接続要求は、ローカルシステムがTCP SYNを受信したときに発生します。
ステータス: オプション
オプション属性ステータス:
- このイベントが発生する場合、TrackTcpState属性はTRUEに設定されるべきです(should)。
イベント16: Tcp_CR_Acked (TCP接続要求確認応答)
定義: ローカルシステムのリモートピアへのTCP接続確立要求を示すイベント。
ローカルシステムのTCP接続がTCP SYNを送信し、TCP SYN/ACKメッセージを受信し、TCP ACKを送信しました。
ステータス: 必須
イベント17: TcpConnectionConfirmed (TCP接続確認)
定義: ローカルシステムがリモートサイトによってTCP接続が確立されたことの確認を受信したことを示すイベント。
リモートピアのTCPエンジンがTCP SYNを送信しました。ローカルピアのTCPエンジンがSYN、ACKメッセージを送信し、現在最終ACKを受信しました。
ステータス: 必須
イベント18: TcpConnectionFails (TCP接続失敗)
定義: ローカルシステムがTCP接続失敗通知を受信したことを示すイベント。
リモートBGPピアのTCPマシンがFINを送信した可能性があります。ローカルピアはFIN-ACKで応答します。別の可能性は、ローカルピアがTCP接続でタイムアウトを示し、接続をダウンさせたことです。
ステータス: 必須
8.1.5. BGP Message-Based Events (BGPメッセージベースのイベント)
イベント19: BGPOpen (BGPオープン)
定義: 有効なOPENメッセージが受信されたときにイベントが生成されます。
ステータス: 必須
オプション属性ステータス:
- DelayOpenオプション属性はFALSEに設定されるべきです(SHOULD)。
- DelayOpenTimerは実行されているべきではありません(SHOULD)。
イベント20: BGPOpen with DelayOpenTimer running (DelayOpenTimer実行中のBGPOpen)
定義: トランスポート接続が正常に確立され、現在BGPオープンメッセージの送信を遅延しているピアに対して有効なOPENメッセージが受信されたときにイベントが生成されます。
ステータス: オプション
オプション属性ステータス:
- DelayOpen属性はTRUEに設定されるべきです(SHOULD)。
- DelayOpenTimerは実行されているべきです(SHOULD)。
イベント21: BGPHeaderErr (BGPヘッダーエラー)
定義: 受信したBGPメッセージヘッダーが有効でないときにイベントが生成されます。
ステータス: 必須
イベント22: BGPOpenMsgErr (BGPオープンメッセージエラー)
定義: OPENメッセージがエラーとともに受信されたときにイベントが生成されます。
ステータス: 必須
イベント23: OpenCollisionDump (オープン衝突ダンプ)
定義: 着信OPENメッセージの処理中に接続衝突が検出され、この接続が切断されるように選択されたときに管理的に生成されるイベント。衝突検出の詳細については、セクション6.8を参照してください。
イベント23は、セクション6.8のルールに従ってこの接続をドロップする必要があるかどうかを決定する実装ロジックによって生成される管理アクションです。このイベントは、FSMが2つのリンクされた状態機械として実装されている場合に発生する可能性があります。
ステータス: オプション
オプション属性ステータス: 状態機械がEstablished状態でこのイベントを処理する場合、
- CollisionDetectEstablishedStateオプション属性はTRUEに設定されるべきです(SHOULD)。
注意してください:OpenCollisionDumpイベントは、オプション属性が設定されていなくても、Idle、Connect、Active、OpenSent、およびOpenConfirmで発生する可能性があります。
イベント24: NotifMsgVerErr (通知メッセージバージョンエラー)
定義: 「バージョンエラー」を含むNOTIFICATIONメッセージが受信されたときにイベントが生成されます。
ステータス: 必須
イベント25: NotifMsg (通知メッセージ)
定義: NOTIFICATIONメッセージが受信され、エラーコードが「バージョンエラー」以外のときにイベントが生成されます。
ステータス: 必須
イベント26: KeepAliveMsg (キープアライブメッセージ)
定義: KEEPALIVEメッセージが受信されたときにイベントが生成されます。
ステータス: 必須
イベント27: UpdateMsg (更新メッセージ)
定義: 有効なUPDATEメッセージが受信されたときにイベントが生成されます。
ステータス: 必須
イベント28: UpdateMsgErr (更新メッセージエラー)
定義: 無効なUPDATEメッセージが受信されたときにイベントが生成されます。
ステータス: 必須