◆ BGP - 4種類のメッセージ
BGPは4種類のメッセージをやり取りすることで、手動で定義したネイバーとのネイバー関係を確立して
維持して、BGPネイバーテーブル、BGPテーブル、ルーティングテーブルを最新に保つことができます。
BGPメッセージ |
説明 |
OPEN |
TCPコネクションの確立後、BGPネイバーとのセッションを開始するための最初のメッセージ。
OPENメッセージには「バージョン、AS番号、BGPのルータID、holdtime、認証」の情報がある。
|
UPDATE |
BGPテーブル作成時に送信される全てのルート情報、または変更発生時に送信される差分のルート
情報が含まれるメッセージ。送信されるルート情報には、パスアトリビュートの情報も含まれる。
|
KEEPALIVE |
BGPネイバー関係を維持するための生存確認メッセージ。Ciscoルータではデフォルトで60秒ごとに
KEEPALIVEメッセージが送信される。なお、BGPネイバーのダウンとみなすホールドタイムは180秒。
|
NOTIFICATION |
エラーを検出した時に通知されるメッセージ。BGPネイバーが確立できない場合や、ホールドタイム
を超過した場合などにNOTIFICATIONメッセージでエラー通知を行い、BGPセッションを切断する。
|
◆ BGP - ネイバー関係の確立
BGPルータは、先ほど紹介した「OPENメッセージ、UPDATEメッセージ、KEEPALIVEメッセージ」により
BGPネイバーを確立して、BGPテーブルを作成して、ルーティングテーブルを作成することができます。
BGPネイバーテーブル、BGPテーブル、ルーティングテーブルは、それぞれ以下コマンドで確認できます。
また、show ip bgp neighborsコマンドによって、各ネイバーごとのBGPネイバーを詳細に確認できます。
BGPのデータベース |
データ |
確認コマンド |
BGPネイバーテーブル |
BGPネイバーの情報 |
show ip bgp summary |
BGPテーブル |
BGPの全てのルート情報とパス属性 |
show ip bgp |
ルーティングテーブル |
宛先ネットワークへのベストパス |
show ip route |
◆ BGP - 6つの状態と状態遷移
BGPでは「 OPEN、UPDATE、KEEPALIVE、NOTIFICATION 」メッセージをやりとりすることによって、
以下の6つのいずれかの状態になります。Established状態に遷移すればBGPネイバーは完全に確立します。
show ip bgp neighborsコマンドの3行目の「BGP state」項目で、以下の状態を確認することができます。
BGPの状態 |
説明 |
Idle |
BGPの設定直後の状態。BGPネイバーへのIP到達性があればTCP接続を開始する状態。
BGPネイバーへのIP到達性があれば「Connect」状態へ遷移する。 |
Connect |
TCP接続の完了を待っている状態。TCP接続が成功した場合はOPENメッセージを送信
して「OPEN Sent」状態へ遷移する。TCP接続が失敗した場合は「Active」状態へ遷移。
|
Active |
TCP接続を試行している状態。ネイバーのIPアドレス、AS番号、認証パスワードの設定
ミスがある場合、Active状態のままとなるか「idle→Active→idle」という状態を繰り返す。
|
Open Sent |
OPENメッセージを送信し、BGPネイバーからのOPENメッセージ確認を待っている状態。
OPENメッセージが受理できる場合、KEEPALIVEメッセージの送信を開始して、OPEN
Confirm状態に遷移。受理できない場合は、NOTIFICATIONを送信してidle状態へ遷移。
|
Open Confirm |
KEEPALIVEメッセージ、または、NOTIFICATIONメッセージを待っている状態。
KEEPALIVEを受信すれば「Established」状態へ遷移(BGPネイバー確立の成功)
AS番号の不一致などによってNOTIFICATIONを受信した場合は「idle」状態へ遷移。
|
Established |
BGPネイバーが正常に確立している状態。この状態の後、UPDATEメッセージを交換でき
BGPテーブルやルーティングテーブルが生成される。この「Established」状態になっても
NOTIFICATIONメッセージを受信した場合には「idle」状態へ遷移する。
|
|