BGP トラブルシューティティング
BGP セッション確立プロセスとフラップに関するトラブルシューティング
BGPの状態が変更されたときにマルチエージェントモードで発生するさまざまなイベントについて説明します。
次のBGPトポロジーについてのイベントについて説明します。
隣接関係変更時のBGPのイベントタイプを以下に記載します。
Event RecvHardReset
%BGP-5-ADJCHANGE: peer <IP> (VRF default AS <n>) old state Established event RecvHardReset new state Idle
SW2のBGPシャットダウンされるとSW1では以下のメッセージを受信します。
%BGP-3-NOTIFICATION: received from neighbor 10.0.0.1 (VRF default AS 20) 6/2 (Cease/administrative shutdown <Hard Reset>) reason
SW2のBGP設定からSW1の情報削除されると、SW1では以下のメッセージを受信します。
%BGP-3-NOTIFICATION: received from neighbor 10.0.0.1 (VRF default AS 20) 6/3 (Cease/peer de-configured <Hard Reset>) 0 bytes
SW1とSW2のルーターID同じに設定されている場合、SW1はピアから以下のメッセージを受信します。
%BGP-3-NOTIFICATION: received from neighbor 10.0.0.1 (VRF default AS 20) 6/6 (Cease/other configuration change <Hard Reset>) 0 bytes
RFC6286に従う場合、BGPのルーターID同一である場合はより大きなAS番号を持つBGPスピーカーによって接続開始されます。 これはeBGPにのみ適用されます、iBGPの場合はAS番号が同じであるためセッションは確立されません。 BGPでeBGPのセッションが確立されている場合でSW2でルーターID変更されると、セッションフラップが一度表示され、ピアリングが再起動します。 同じことを以下のコマンドで確認することもできます。
show ip bgp neighbors 10.0.0.1 | grep -i peering Peering failure hint: Cease/other configuration change
BGPでiBGPセッションが確立されている場合でSW2でルーターID変更されると、セッションダウンすることが分かります。
SW2はピアに以下のメッセージをルーターID変更されたことを通知します。
%BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 2/3 (Open Message Error/bad BGP ID) 0 bytes
同じことを以下のコマンドで確認することもできます。
show ip bgp neighbors 10.0.0.1 | grep -i peering
Peering failure hint: Open Message Error/bad BGP ID
BGPタイマーはピアリング確立された後でSW2に変更されると、SW1は以下のメッセージを受信します。
%BGP-3-NOTIFICATION: received from neighbor 10.0.0.1 (VRF default AS 20) 6/6 (Cease/other configuration change <Hard Reset>) 0 bytes
同じことを以下のコマンドで確認することもできます。
show ip bgp neighbors 10.0.0.1 | grep -i peering Peering failure hint: Cease/other configuration change
BGPのオープンメッセージでパラメータミスマッチの場合、隣接関係は変更されます。 BGPの実際のAS番号と設定のAS番号ミスマッチの場合、SW1上で以下のメッセージを受信します。
%BGP-3-NOTIFICATION: received from neighbor 10.0.0.1 (VRF default AS 20) 6/6 (Cease/other configuration change <Hard Reset>) 0 bytes %BGP-3-NOTIFICATION: received from neighbor 10.0.0.1 (VRF default AS 20) 2/2 (Open Message Error/bad AS number) 0 bytes
同じことを以下のコマンドで確認することもできます。
show ip bgp neighbors 10.0.0.1 | grep -i peering Peering failure hint: Open Message Error/bad AS number
BGPバージョンミスマッチの場合、SW2は以下のメッセージを送信します。
%BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 2/1 (Open Message Error/unsupported version) 2 bytes SW2でmaximum routeの制限に達したとき、SW1はSW2から以下のメッセージを受信します。
%BGP-3-NOTIFICATION: received from neighbor 10.0.0.1 (VRF default AS 20) 6/1 (Cease/maximum number of prefixes reached <Hard Reset>) 0 bytes
BFD有効のときで、SW2でBFDセッションダウンされたとき、SW2はネイバーダウンとして以下のメッセージを受信します。
%BFD-5-STATE_CHANGE: peer (vrf:default, ip:10.0.0.0, intf:Ethernet1, type:normal) changed state from Up to Down diag NeighDown %BGP-3-NOTIFICATION: received from neighbor 10.0.0.0 (VRF default AS 10) 6/6 (Cease/other configuration change <Hard Reset>) 0 bytes
clear ip bgp 10.0.0.1コマンドでSW1のBGPテーブルクリアされると、SW2は以下のメッセージを受信します。
BGP-3-NOTIFICATION: received from neighbor 10.0.0.0 (VRF default AS 10) 6/4 (Cease/administrative reset <Hard Reset>) reason:
Event Deconfigured
%BGP-5-ADJCHANGE: peer <IP> (VRF default AS <n>) old state Established event Deconfigured new state Idle
SW2から手動でネイバーを削除すると、SW2からSW1に以下のメッセージ送信されます。
%BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 6/3 (Cease/peer de-configured <Hard Reset>) 0 bytes
Event OtherConfigurationChange
%BGP-5-ADJCHANGE: peer <IP> (VRF default AS <n>) old state Established event OtherConfigurationChange new state Idle BGPピアリング確立されている場合で、SW1とSW2のルーターIDを同じにするためにSW2上でその変更が行われると、SW2からSW1に以下のメッセージが送信されます。
%BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 6/6 (Cease/other configuration change <Hard Reset>) 0 bytes
SW2のAS番号ミス設定の場合、SW2はSW1に以下のメッセージを送信します。
%BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 6/6 (Cease/other configuration change <Hard Reset>) 0 bytes %BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 20) 2/2 (Open Message Error/bad AS number) 0 bytes
BGPタイマーミスマッチのため、SW2でBGPタイマーを変更したとき、SW2はSW1に以下のメッセージを送信します。
%BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 6/6 (Cease/other configuration change <Hard Reset>) 0 bytes
Event AdminShutDown
%BGP-5-ADJCHANGE: peer <IP> (VRF default AS <n>) old state Established event AdminShutdown new state Idle SW2上でBGPシャットダウンされると、SW2からSW1に以下のメッセージ送信されます。
%BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 6/2 (Cease/administrative shutdown <Hard Reset>) reason
Event AdminReset
%BGP-5-ADJCHANGE: peer <IP> (VRF default AS <n>) old state Established event AdminReset new state Idle SW1のBGPルーティングテーブルが手動でクリアされると、隣接関係はリセットされて、SW1はピアに以下のメッセージを送信する。
%BGP-3-NOTIFICATION: sent to neighbor 10.0.0.1 (VRF default AS 20) 6/4 (Cease/administrative reset <Hard Reset>) reason:
Event Stop
%BGP-5-ADJCHANGE: peer <IP> (VRF default AS <n>) old state Established event Stop new state Idle SW1とSW2でリンクフラップ発生すると、remote fault 送られます。 BFD有効のときで、リンクフラップによってBFDセッションダウンすると、ピアはダウンして、SW1は以下のメッセージを送信します。
%BFD-5-STATE_CHANGE: peer (vrf:default, ip:10.0.0.1, intf:Ethernet1, type:normal) changed state from Up to Down diag PathDown %BGP-3-NOTIFICATION: sent to neighbor 10.0.0.1 (VRF default AS 20) 6/6 (Cease/other configuration change <Hard Reset>) 0 bytes
BFD有効のときで、コントロールタイムアウトによってBFDセッションダウンすると、ピアはダウンして、SW2は以下のメッセージを送信します。
%BFD-5-STATE_CHANGE: peer (vrf:default, ip:10.0.0.0, intf:Ethernet1, type:normal) changed state from Up to Down diag CtrlTimeout %BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 6/6 (Cease/other configuration change <Hard Reset>) 0 bytes
SW2でSW1からのkeepaliveを受信しなかった場合、SW2によって以下のメッセージ送信されます。
%BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 4/0 (Hold Timer Expired Error/None) 0 bytes 同じことを以下のコマンドでも確認することもできます。
show ip bgp neighbors 10.0.0.0 | grep -i peering Peering failure hint: Hold Timer Expired Error/None
Event RecvNotify
%BGP-5-ADJCHANGE: peer <IP> (VRF default AS <n>) old state Established event RecvNotify new state Idle BGP malformed アップデートメッセージを受信すると、SW1はSW2から以下のメッセージを受信します。
%BGP-3-NOTIFICATION: received from neighbor 10.0.0.1 (VRF default AS 20) Notification data field error
Hold time expireによって、SW1からのkeepalive メッセージを受信しなかった場合、SW1はピアから以下のメッセージを受信します。
%BGP-3-NOTIFICATION: received from neighbor 10.0.0.1 (VRF default AS 20) 4/0 (Hold Timer Expired Error/None) 0 bytes
同じようなことを以下のコマンドで確認することもできます。
show ip bgp neighbors 10.0.0.1 | grep -i peering Peering failure hint: Hold Timer Expired Error/Non
Event MaxPath
%BGP-5-ADJCHANGE: peer <IP> (VRF default AS <n>) old state Established event MaxPath new state Idle
SW2上でmaximum routeに達したとき、以下のコマンドで設定することができます。
neighbor 10.0.0.0 maximum-routes x
X = 0-4294967294 0 = unlimited
SW2でmaximum routeを変更したとき、SW2上で以下のメッセージ出力されます。
%BGP-5-IF_MAXROUTESLIMIT: Peer 10.0.0.0 (VRF default AS 10) has exceeded its configured maximum total number of routes (x); Put into idle state forever %BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 6/1 (Cease/maximum number of prefixes reached <Hard Reset>) 0 bytes
上記の問題はピアからのルーティングスケールが既知であり、適切な制限が設定されている場合に回避できます。
defaultの値は以下のコマンドで確認することができます。
show ip bgp neighbors <A.B.C.D> | grep -i "Configured maximum total number of routes" Configured maximum total number of routes is 256000, warning limit is 204800
以下のコマンドでBGPセッションをクリアすることができます。
clear ip bgp <A.B.C.D>
Event TransportError
SW2 は SW1 から TCP RST を受信し、SW2 は SW1 の BGP ソケットへの書き込みを試みます。SW1 は BGP セッションを破棄、SW2 はキープアライブやアップデートなどの BGP パケットを SW2 に送信します。
BGP プロセスが SW1 で強制終了されると、トランスポート エラーが原因で SW2 ネイバーシップがフラップします。
同じ IP ペア間の 2 つの TCP 接続が同時に確立され、BGP セッションの 1 つが切断され、もう 1 つが確立済み状態になると、SW2 は SW1 に次の通知を送信します。
%BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 6/7 (Cease/connection collision resolution) 0 bytes
Event RecvUpdate
%BGP-5-ADJCHANGE: peer <IP> (VRF default AS <n>) old state Established event RecvUpdate new state Idle SW1でincomplete parameter等のmalformed BGP アップデートメッセージ受信されたとき、SW1はSW2に以下のメッセージを送信します。
%BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 3/10 (Update Message Error/bad address/prefix field) 0 bytes SW1でwell known/mandatory parameter等のmalformed BGP アップデートメッセージ受信されたとき、SW1はSW2に以下のメッセージを送信します。
%BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 3/4 (Update Message Error/attribute flags error) 4 bytes
Event RecvHeaderError
%BGP-5-ADJCHANGE: peer <IP> (VRF default AS <n>) old state Established event RecvHeaderError new state Idle BGP アップデートメッセージのmalformed headerをピアに送信したとき、SW1はSW2に以下のメッセージを送信します。
%BGP-3-NOTIFICATION: sent to neighbor 10.0.0.0 (VRF default AS 10) 1/1 (Message Header Error/lost connection synchronization) 0 bytes BGPのセッション確立プロセスとフラップについて、トラブルシューティングの参考になれば幸いです。 参考) RFC 4271 RFC 4486 RFC 6286
本内容は、Arista社のドキュメント等より情報を抜粋し東京エレクトロンデバイスにて記事としてまとめたものとなります。