【ネットワーク入門】BGPの基本(Status編)

  • URLをコピーしました!
目次

はじめに

こんにちは。ネットワークエンジニアの「だいまる」です。

前回に続き、BGPの基本を再度復習してみたのでしっかりまとめていきたいと思います。

前回の記事では、ピアリングやメッセージタイプ等についてまとめました。

BGPのStatus(ステータス)は全部で6つ!!

BGPのStatus(ステータス)には、Idle状態からネイバーの確立まで全部で6つ存在します。

初期状態である「Idle」状態

Idleステータスは、「BGP設定直後の状態であり、BGPネイバーへの到達性がある場合はConnectに移行」します。

BGPネイバーへの到達性があれば「Connect」へ移行

Connectステータスは、「TCPコネクション確立待ちの状態であり、確立後はOpensentへ移行し、失敗した場合はActive状態に移行」します。

TCPコネクション確立成功時は、Openメッセージを利用します。

TCPコネクションの確立失敗時の「Active」状態

Activeステータスは、「TCPコネクション確立を試行中の状態」です。

この状態になる条件は、主にネイバーのIPアドレスやAS番号、認証パスワードの設定にミスがある場合となります。

この時、Active状態かIdleとActive状態の間を行ったり来たりとなります。

TCPコネクション確立時は「OpenSent」状態

OpenSentステータスは、「BGPネイバーからのOPENメッセージ確認を待っている状態」です。

OPENメッセージを受理した場合は、KEEPALIVEメッセージを送受信しOpenConfirmに移行します。

また、受理できない場合は、「NOTIFICATIONメッセージによりIdle状態に移行」します。

ネイバー関係の確立まであと一歩となる「OpenConfirm」状態

OpenConfirmステータスは、「KEEPALIVEまたはNOTIFICATIONメッセージを待っている状態」です。

KEEPALIVEメッセージを受信した場合はEstablishに移行し、ネイバー関係確立となります。

また、ネイバー関係の確立に失敗し、NOTIFICATIONメッセージを受信時した場合はIdleステータスに移行します。

ネイバー確立完了となる「Establish」状態

Establishステータスは、「BGPネイバーが確立した状態であり、経路広報を行う状態」です。

この状態になれば、BGPネイバー関係が確立され、経路広報や受信を行う状態となります。

つまり、トラフィックが流れてくる状態となります。

実機で各状態の確認を行うdebug

ここでは実機で状態遷移を確認していきます。

前提条件として、2台のルータのうち、片方にはネイバーの設定を追加しています。

一方、もう1台のルータには設定を入れていない状況となります。

その時は、片方はIdle/Active状態を繰り返し、片方はIdle状態となります。

Router2
10.0.1.2
Router2…
Router6
10.0.1.6

Router6…
BGPピア確立前
BGPピア確立前
debug logなし
debug logなし
Idle/Acite繰り返す
Idle/Acite繰り返す
Text is not SVG – cannot display

それでは、実際にコマンドと出力ログを確認していきましょう。

まず、Router2ではRouter6宛のネイバー状態を確認します。

この時、①「BGP stateがIdle」となっており、この「BGP state」で現在の状態を判断することができます

また、Debugログを見ると、AcitveとIdleを行ったり来たりしていることがわかると思います。

Router2#show ip bgp neighbors 10.0.1.6
BGP neighbor is 10.0.1.6,  remote AS 10, internal link
  BGP version 4, remote router ID 0.0.0.0
  BGP state = Idle ・・・・①
  Neighbor sessions:
    0 active, is not multisession capable (disabled)
    Active open timer running 9216 remaining
    Stateful switchover support enabled: NO
  Do log neighbor state changes (via global configuration)
  Default minimum time between advertisement runs is 0 seconds

*Mar 21 13:23:10.628: BGP: 10.0.1.6 active went from Idle to Active
*Mar 21 13:23:10.628: BGP: 10.0.1.6 open active, local address 10.0.1.2
*Mar 21 13:23:10.631: BGP: 10.0.1.6 open failed: Connection refused by remote host
*Mar 21 13:23:10.631: BGP: 10.0.1.6 Active open failed - tcb is not available, open active delayed 10240ms (35000ms max, 60% jitter)
*Mar 21 13:23:10.631: BGP: ses global 10.0.1.6 (0x10712738:0) act Reset (Active open failed).
*Mar 21 13:23:10.631: BGP: 10.0.1.6 active went from Active to Idle
*Mar 21 13:23:10.631: BGP: nbr global 10.0.1.6 Active open failed - open timer running
*Mar 21 13:23:10.631: BGP: nbr global 10.0.1.6 Active open failed - open timer running

一方ネイバー設定が入ってない場合は、何も設定が入ってないことがわかります。

Router6#show ip bgp neighbors 10.0.1.2
% No such neighbor

この状態からRouter6にネイバーの設定を追加した場合、Router2とRouter6では状態が変わっていくことがわかります。

実際、Active→OpenSent→OpenConfirm→Establishの状態になっていることがわかります。

また、状態遷移の途中に「OPENメッセージの送受信」「ROUTE REFRESHの送受信」

【Router2のデバッグログ】
*Mar 21 13:26:08.886: BGP: 10.0.1.6 active went from Idle to Active
*Mar 21 13:26:08.886: BGP: 10.0.1.6 open active, local address 10.0.1.2
*Mar 21 13:26:08.889: BGP: ses global 10.0.1.6 (0x10712738:0) act Adding topology IPv4 Unicast:base
*Mar 21 13:26:08.890: BGP: ses global 10.0.1.6 (0x10712738:0) act Send OPEN
*Mar 21 13:26:08.890: BGP: ses global 10.0.1.6 (0x10712738:0) act Building Enhanced Refresh capability
*Mar 21 13:26:08.890: BGP: 10.0.1.6 active went from Active to OpenSent
*Mar 21 13:26:08.890: BGP: 10.0.1.6 active sending OPEN, version 4, my as: 10, holdtime 180 seconds, ID A000102
*Mar 21 13:26:08.898: BGP: 10.0.1.6 active rcv message type 1, length (excl. header) 38
*Mar 21 13:26:08.898: BGP: ses global 10.0.1.6 (0x10712738:0) act Receive OPEN
*Mar 21 13:26:08.898: BGP: 10.0.1.6 active rcv OPEN, version 4, holdtime 180 seconds
*Mar 21 13:26:08.898: BGP: 10.0.1.6 active rcv OPEN w/ OPTION parameter len: 28
*Mar 21 13:26:08.898: BGP: 10.0.1.6 active rcvd OPEN w/ optional parameter type 2 (Capability) len 6
*Mar 21 13:26:08.898: BGP: 10.0.1.6 active OPEN has CAPABILITY code: 1, length 4
*Mar 21 13:26:08.899: BGP: 10.0.1.6 active OPEN has MP_EXT CAP for afi/safi: 1/1
*Mar 21 13:26:08.899: BGP: 10.0.1.6 active rcvd OPEN w/ optional parameter type 2 (Capability) len 2
*Mar 21 13:26:08.899: BGP: 10.0.1.6 active OPEN has CAPABILITY code: 128, length 0
*Mar 21 13:26:08.899: BGP: 10.0.1.6 active OPEN has ROUTE-REFRESH capability(old) for all address-families
*Mar 21 13:26:08.899: BGP: 10.0.1.6 active rcvd OPEN w/ optional parameter type 2 (Capability) len 2
*Mar 21 13:26:08.899: BGP: 10.0.1.6 active OPEN has CAPABILITY code: 2, length 0
*Mar 21 13:26:08.899: BGP: 10.0.1.6 active OPEN has ROUTE-REFRESH capability(new) for all address-families
*Mar 21 13:26:08.899: BGP: 10.0.1.6 active rcvd OPEN w/ optional parameter type 2 (Capability) len 2
*Mar 21 13:26:08.899: BGP: 10.0.1.6 active OPEN has CAPABILITY code: 70, length 0
*Mar 21 13:26:08.899: BGP: ses global 10.0.1.6 (0x10712738:0) act Enhanced Refresh cap received in open message
*Mar 21 13:26:08.899: BGP: 10.0.1.6 active rcvd OPEN w/ optional parameter type 2 (Capability) len 6
*Mar 21 13:26:08.899: BGP: 10.0.1.6 active OPEN has CAPABILITY code: 65, length 4
*Mar 21 13:26:08.900: BGP: 10.0.1.6 active OPEN has 4-byte ASN CAP for: 10
*Mar 21 13:26:08.900: BGP: 10.0.1.6 active rcvd OPEN w/ remote AS 10, 4-byte remote AS 10
*Mar 21 13:26:08.900: BGP: 10.0.1.6 active went from OpenSent to OpenConfirm
*Mar 21 13:26:08.901: BGP: 10.0.1.6 active went from OpenConfirm to Established
*Mar 21 13:26:08.902: BGP: ses global 10.0.1.6 (0x10712738:1) act Assigned ID
*Mar 21 13:26:08.902: BGP: 10.0.1.6 sending REFRESH_REQ(5) for afi/safi: 1/1, refresh code is 1
*Mar 21 13:26:08.902: BGP: ses global 10.0.1.6 (0x10712738:1) Up
*Mar 21 13:26:08.902: %BGP-5-ADJCHANGE: neighbor 10.0.1.6 Up 
【Router6のデバッグログ

上記ログから状態遷移の様子がわかると思います。

また、ネイバー設定追加から最初のログ時間が「13:26:08.886」、最後の時間が「13:26:08.902」より、瞬間的にネイバー確立まで至っていることがわかります。

所持する経路数によっては、もう少し時間がかかる場合もありますが、比較的短時間でネイバー確立まで至ることが多いです。

最後に

この記事ではBGPの状態(Status)について、簡単にまとめました。

次は、BGPのパス属性(Path Attribute)について、実機ログも含めた上でまとめていきたいと思います。

  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次