BGPの状態

BGPの状態遷移

BGP(Border Gateway Protocol)の状態遷移は、BGPピア(ネイバー)が接続を確立して、安定したルート情報を交換するまでのプロセスを段階的に示すものです。BGPは接続確立に向けていくつかのステート(状態)を経て、最終的にルート情報を交換します。

BGPの状態遷移には以下の6つのステートがあります。それぞれのステートは特定の動作を示しており、ピア間の通信や接続の確立が正常に行われるかどうかを確認します。

BGPの状態遷移の6つのステート

  1. Idle(アイドル)
  2. Connect(コネクト)
  3. Active(アクティブ)
  4. OpenSent(オープンセント)
  5. OpenConfirm(オープンコンファーム)
  6. Established(エスタブリッシュド)

Idle(アイドル)

  • 説明: BGPセッションが開始されていない状態です。BGPピアと通信するために必要なTCP接続(ポート179)を準備します。
  • 動作:
    • BGPプロセスがアクティブになり、ピアリングの準備が整うと、この状態からConnect(コネクト)状態に遷移します。
    • BGPはTCP接続を開始するか、パッシブモードで接続を待機します。
  • エラー時の動作:
    • 何らかのエラーが発生した場合は、再度このIdleステートに戻ります。エラーがクリアされるまで、接続は再試行されません。

Connect(コネクト)

  • 説明: BGPはTCPセッションの確立を試みる段階です。この時点で、TCP接続の確立を待機します。
  • 動作:
    • BGPはアクティブモードでTCP接続を試みます。TCPセッションが確立されると、Openメッセージを送信し、次のOpenSent状態に遷移します。
    • 接続が成功しなかった場合、Active状態に遷移します。
  • エラー時の動作:
    • TCPセッションが確立されないと、Activeステートに遷移します。または、タイムアウトが発生すると再度Idleステートに戻ります。

Active(アクティブ)

  • 説明: BGPはアクティブにTCP接続を試みる状態です。このステートでは、再度TCPセッションを確立しようとします。
  • 動作:
    • TCPセッションの確立を試みます。成功すれば、次のOpenSentステートに遷移します。
    • 成功しなければ、再試行を行います。
  • エラー時の動作:
    • TCP接続が成功しない場合、再度Idleステートに戻ります。

OpenSent(オープンセント)

  • 説明: TCP接続が確立され、BGPのOpenメッセージがピアに送信された状態です。ピアからのOpenメッセージを待ちます。
  • 動作:
    • BGPのOpenメッセージが送信され、ピアからのOpenメッセージの受信を待機します。
    • 両方のルーターがOpenメッセージを受信すると、BGPのネゴシエーションが行われ、次のOpenConfirm状態に遷移します。
  • エラー時の動作:
    • 受信したOpenメッセージに誤りがある場合、Idleステートに戻ります。

OpenConfirm(オープンコンファーム)

  • 説明: 両方のBGPピアがOpenメッセージを交換した後、Keepaliveメッセージを送信し、ピアからのKeepaliveメッセージを待ちます。これにより、接続が維持されていることを確認します。
  • 動作:
    • Keepaliveメッセージの交換が成功すれば、最終的にEstablished状態に遷移し、BGPセッションが確立されます。
  • エラー時の動作:
    • Keepaliveメッセージが正しく受信されない場合、セッションは失敗し、再びIdleステートに戻ります。

Established(エスタブリッシュド)

  • 説明: BGPセッションが完全に確立された状態で、この状態ではルート情報の交換が開始されます。これがBGPの最終的かつ安定した状態です。
  • 動作:
    • BGPピア同士でルートのUpdateメッセージが送信・受信され、ルート情報が交換されます。
    • Keepaliveメッセージの定期的な交換で、セッションが正常に維持されます。
  • エラー時の動作:
    • 何らかの理由でセッションが切断された場合(例えば、TCP接続の問題や設定エラーなど)、Idleステートに戻り、接続の再試行が行われます。