メインコンテンツへスキップ
  1. ネットワーク 記事一覧/
  2. BGP記事一覧/

BGPメッセージ

目次

BGPメッセージとは

BGPのピア同士は、TCPポート179のセッション上で4種類のメッセージをやり取りします。すべてのメッセージは共通の19バイトのヘッダーで始まり、ヘッダーのTypeフィールドでメッセージの種類を識別します。本記事では各メッセージの構造を解説し、IOS XR(XRd)の検証環境で取得したパケットキャプチャーで実際の中身を確認します。BGPの基本的な仕組みはBGP(Border Gateway Protocol)を参照してください。

Typeメッセージ役割
1OPENセッション確立後に最初に送り、AS番号やHold Time、対応する機能(Capability)を伝える。
2UPDATE経路の広告と取り消し(Withdraw)を行う。
3NOTIFICATIONエラーを通知し、セッションを切断する。
4KEEPALIVEセッションを維持するために定期的に送る。

共通ヘッダー

フィールドサイズ説明
Marker16バイトすべてのビットが1の固定値。メッセージの区切りを検出するために使われる。
Length2バイトヘッダーを含むメッセージ全体の長さ(バイト)。最小は19(KEEPALIVE)、最大は4096。
Type1バイトメッセージの種類(1〜4)。

OPENメッセージ

TCPセッションが確立すると、双方が最初にOPENメッセージを送ります。相手のOPENを受け入れられる場合はKEEPALIVEを返し、セッションがEstablishedになります。

フィールドサイズ説明
Version1バイトBGPのバージョン。現在は4
My Autonomous System2バイト送信元のAS番号。4バイトAS番号を使う場合はここに23456(AS_TRANS)を入れ、実際の番号はCapabilityで伝える。
Hold Time2バイトこの時間(秒)の間にKEEPALIVEもUPDATEも受信しなければセッションを切断する。双方が提示した値の小さいほうが採用される。Ciscoの既定値は180
BGP Identifier4バイト送信元のBGP Router ID。
Opt Parm Len1バイトOptional Parametersの長さ(バイト)。
Optional Parameters可変長対応する機能(Capability)を列挙する。

Optional Parametersには、そのルータが対応する機能をCapability(RFC 5492)として列挙します。代表的なものは次のとおりです。

Capabilityコード説明
Multiprotocol Extensions1扱えるアドレスファミリー(AFI / SAFI)。IPv4ユニキャストはAFI 1 / SAFI 1。
Route Refresh2再設定なしでピアに経路の再送を要求できる。
Extended Next Hop Encoding5IPv4経路のネクストホップにIPv6アドレスを使える。
4-octet AS Number654バイトAS番号に対応していることと、自身の実際のAS番号を伝える。

UPDATEメッセージ

UPDATEメッセージは経路情報を運びます。1つのUPDATEで、取り消す経路(Withdrawn Routes)と、同じパス属性を持つ新しい経路(NLRI)をまとめて伝えられます。

フィールドサイズ説明
Withdrawn Routes Length2バイトWithdrawn Routesの長さ(バイト)。
Withdrawn Routes可変長取り消す経路のプレフィックス一覧。
Total Path Attribute Length2バイトPath Attributesの長さ(バイト)。
Path Attributes可変長後続のNLRIに共通するパス属性(ORIGINAS_PATHNEXT_HOPなど)。
NLRI可変長広告する経路のプレフィックス一覧(Network Layer Reachability Information)。

パス属性の種類と役割はBGPパス属性とベストパス選択で解説します。

経路の広告と取り消し(Withdraw)

UPDATEメッセージは、経路を広告するときと取り消すときの両方で使われます。

用途Withdrawn RoutesPath Attributes / NLRI
経路の広告広告するプレフィックスとそのパス属性が入る
経路の取り消し(Withdraw)取り消すプレフィックスが入る

インタフェースのダウンなどで広告していた経路が使えなくなると、ルータはその経路をWithdrawn Routesに入れたUPDATEをピアに送ります。取り消しにはパス属性が不要なため、Total Path Attribute Length0でNLRIも空のUPDATEになります。受信したルータは該当する経路をBGPテーブルから削除し、さらに自身のピアへ取り消しを伝えるため、取り消しはASを越えて連鎖的に伝播します。

Path AttributesもNLRIも空のUPDATE(Length = 23)は、End-of-RIBマーカーと呼ばれます。セッション確立直後の初期広告が完了したことを相手に伝えるために送られます(RFC 4724)。

KEEPALIVEメッセージ

KEEPALIVEメッセージは共通ヘッダーだけで構成され、長さは19バイトです。Hold Timeの3分の1の間隔(Ciscoの既定値では60秒ごと)で送られ、Hold Timeの間にKEEPALIVEもUPDATEも届かなければ相手はセッションを切断します。相手のOPENを受け入れたことを伝える際にも使われます。

NOTIFICATIONメッセージ

NOTIFICATIONメッセージはエラーを検出したときに送られ、送信後にTCPセッションが閉じられます。

Error code意味主なサブコード
1Message Header Error接続の非同期、不正なメッセージ長、不正なメッセージタイプ
2OPEN Message Error非対応のバージョン、不正なピアAS、不正なBGP Identifier、受け入れられないHold Time
3UPDATE Message Error不正な属性リスト、必須属性の欠落、不正なNEXT_HOP、不正なAS_PATHなど
4Hold Timer ExpiredHold Timeの間に何も受信しなかった
5Finite State Machine Error状態遷移上ありえないメッセージを受信した
6Cease上記以外の理由による切断。管理者によるshutdownやリセット、最大プレフィックス数の超過など(RFC 4486)

実機での検証

BGP(Border Gateway Protocol)と同じ、3つのASにIOS XR(XRd)のルータ4台を配置した検証環境を使います。R1 - R2間がiBGP、R2 - R3、R3 - R4間がeBGPで、各ルータはLoopback1のネットワーク(192.168.N.0/24)をBGPに広告しています。

R2 - R3間(eBGP)のリンクでTCPポート179のパケットをキャプチャーしながら、次の操作を行いました。

操作目的
R2でclear bgp 10.2.3.3セッションの切断と再確立(NOTIFICATION / OPEN / KEEPALIVE / UPDATE)
R4でinterface Loopback1shutdown192.168.4.0/24の取り消し(Withdraw)
R4でinterface Loopback1no shutdown192.168.4.0/24の再広告

以下はWiresharkに付属するtsharkで表示したパケット一覧で、4種類のメッセージと経路の取り消しがすべて含まれています。

R2 - R3間 パケットキャプチャー(tshark一覧)
    1   0.000000     10.2.3.2 → 10.2.3.3     BGP 75 NOTIFICATION Message
    2   0.000266     10.2.3.2 → 10.2.3.3     TCP 54 179 → 19652 [FIN, ACK] Seq=22 Ack=1 Win=32559 Len=0
    3   0.003450     10.2.3.3 → 10.2.3.2     TCP 54 19652 → 179 [ACK] Seq=1 Ack=23 Win=32595 Len=0
    4   0.005387     10.2.3.3 → 10.2.3.2     TCP 54 19652 → 179 [FIN, ACK] Seq=1 Ack=23 Win=32595 Len=0
    5   0.007794     10.2.3.2 → 10.2.3.3     TCP 54 179 → 19652 [ACK] Seq=23 Ack=2 Win=32559 Len=0
    6   0.798224     10.2.3.2 → 10.2.3.3     TCP 62 61661 → 179 [SYN] Seq=0 Win=32768 Len=0 MSS=1240 WS=1
    7   0.802226     10.2.3.3 → 10.2.3.2     TCP 62 179 → 61661 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1240 WS=1
    8   0.805094     10.2.3.2 → 10.2.3.3     TCP 54 61661 → 179 [ACK] Seq=1 Ack=1 Win=32768 Len=0
    9   0.806853     10.2.3.2 → 10.2.3.3     BGP 129 OPEN Message
   10   0.875909     10.2.3.3 → 10.2.3.2     TCP 54 179 → 61661 [RST, ACK] Seq=1 Ack=1 Win=16384 Len=0
   11  30.000920     10.2.3.2 → 10.2.3.3     TCP 54 179 → 19652 [RST, ACK] Seq=23 Ack=2 Win=32559 Len=0
   12  38.840964     10.2.3.3 → 10.2.3.2     TCP 62 35164 → 179 [SYN] Seq=0 Win=32768 Len=0 MSS=1240 WS=1
   13  38.845366     10.2.3.2 → 10.2.3.3     TCP 62 179 → 35164 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1240 WS=1
   14  38.848041     10.2.3.3 → 10.2.3.2     TCP 54 35164 → 179 [ACK] Seq=1 Ack=1 Win=32768 Len=0
   15  38.849087     10.2.3.3 → 10.2.3.2     BGP 129 OPEN Message
   16  40.850179     10.2.3.3 → 10.2.3.2     TCP 129 [TCP Retransmission] 35164 → 179 [PSH, ACK] Seq=1 Ack=1 Win=32768 Len=75
   17  40.855228     10.2.3.2 → 10.2.3.3     TCP 54 179 → 35164 [ACK] Seq=1 Ack=76 Win=32768 Len=0
   18  40.855434     10.2.3.2 → 10.2.3.3     BGP 148 OPEN Message, KEEPALIVE Message
   19  40.859768     10.2.3.3 → 10.2.3.2     BGP 73 KEEPALIVE Message
   20  40.895317     10.2.3.2 → 10.2.3.3     BGP 190 UPDATE Message, UPDATE Message, UPDATE Message
   21  40.898045     10.2.3.3 → 10.2.3.2     BGP 194 UPDATE Message, UPDATE Message, UPDATE Message
   22  41.101392     10.2.3.2 → 10.2.3.3     TCP 54 179 → 35164 [ACK] Seq=231 Ack=235 Win=32609 Len=0
   23  70.889654     10.2.3.3 → 10.2.3.2     BGP 187 UPDATE Message, UPDATE Message, KEEPALIVE Message
   24  71.093729     10.2.3.2 → 10.2.3.3     TCP 54 179 → 35164 [ACK] Seq=231 Ack=368 Win=32476 Len=0
   25  81.452121     10.2.3.3 → 10.2.3.2     BGP 81 UPDATE Message
   26  81.655926     10.2.3.2 → 10.2.3.3     TCP 54 179 → 35164 [ACK] Seq=231 Ack=395 Win=32449 Len=0
   27 100.896608     10.2.3.2 → 10.2.3.3     BGP 73 KEEPALIVE Message
   28 101.100919     10.2.3.3 → 10.2.3.2     TCP 54 35164 → 179 [ACK] Seq=395 Ack=250 Win=32519 Len=0
   29 129.985465     10.2.3.3 → 10.2.3.2     BGP 111 UPDATE Message
   30 130.188911     10.2.3.2 → 10.2.3.3     TCP 54 179 → 35164 [ACK] Seq=250 Ack=452 Win=32392 Len=0
   31 160.897052     10.2.3.2 → 10.2.3.3     BGP 73 KEEPALIVE Message
   32 161.101276     10.2.3.3 → 10.2.3.2     TCP 54 35164 → 179 [ACK] Seq=452 Ack=269 Win=32500 Len=0
   33 189.986189     10.2.3.3 → 10.2.3.2     BGP 73 KEEPALIVE Message
   34 190.189786     10.2.3.2 → 10.2.3.3     TCP 54 179 → 35164 [ACK] Seq=269 Ack=471 Win=32373 Len=0
No.内容
1〜5clear bgpによりR2がNOTIFICATIONを送信し、TCPセッションを閉じる。
6〜10R2が直ちに再接続を試みるが、リセット直後のR3はRSTで拒否する。
12〜17約38秒後、R3側からのTCP3ウェイハンドシェイクが成立し、R3がOPENを送る(No.16はACKが返らなかったためのTCP再送)。
18〜19R2がOPENとKEEPALIVEを返し、R3もKEEPALIVEを返してセッションがEstablishedになる。
20〜21双方がUPDATEで経路を広告する。末尾は初期広告の完了を示すEnd-of-RIBマーカー。
23R3が、R2から受け取った経路をAS_PATHに自身のAS番号を追加して広告し返す(R2は自ASを検出して破棄)。
25R4のLoopback1をshutdownしたことにより、R3が192.168.4.0/24取り消しをUPDATEで通知する。
29R4のLoopback1を戻したことにより、R3が192.168.4.0/24を再度広告する。
27、31、33各ルータが60秒ごとにKEEPALIVEを送り、セッションを維持する。

OPENメッセージの中身

No.15でR3が送ったOPENメッセージです。ヘッダーのType1Version4、AS番号が65002、Hold Timeが180秒、BGP Identifierが10.0.0.3で、Optional ParametersにMultiprotocol Extensions、Route Refresh、4-octet AS Number、Extended Next Hop EncodingのCapabilityが含まれています。

このNo.15(OPEN)だけを抜き出したもの(bgp-no15.pcap) をダウンロード
No.15 OPEN(R3 → R2)tshark -V
Border Gateway Protocol - OPEN Message
    Marker: ffffffffffffffffffffffffffffffff
    Length: 75
    Type: OPEN Message (1)
    Version: 4
    My AS: 65002
    Hold Time: 180
    BGP Identifier: 10.0.0.3
    Optional Parameters Length: 46
    Optional Parameters
        Optional Parameter: Capability
            Parameter Type: Capability (2)
            Parameter Length: 6
            Capability: Multiprotocol extensions capability
                Type: Multiprotocol extensions capability (1)
                Length: 4
                AFI: IPv4 (1)
                Reserved: 00
                SAFI: Unicast (1)
        Optional Parameter: Capability
            Parameter Type: Capability (2)
            Parameter Length: 2
            Capability: Route Refresh Capability (Cisco)
                Type: Route Refresh Capability (Cisco) (128)
                Length: 0
        Optional Parameter: Capability
            Parameter Type: Capability (2)
            Parameter Length: 2
            Capability: Route refresh capability
                Type: Route refresh capability (2)
                Length: 0
        Optional Parameter: Capability
            Parameter Type: Capability (2)
            Parameter Length: 6
            Capability: Support for 4-octet AS number capability
                Type: Support for 4-octet AS number capability (65)
                Length: 4
                AS Number: 65002
        Optional Parameter: Capability
            Parameter Type: Capability (2)
            Parameter Length: 20
            Capability: Extended Next Hop Encoding
                Type: Extended Next Hop Encoding (5)
                Length: 18
                AFI: IPv4 (1)
                SAFI: Unicast (1)
                Next hop AFI: IPv6 (2)
                AFI: IPv4 (1)
                SAFI: Multicast (2)
                Next hop AFI: IPv6 (2)
                AFI: IPv4 (1)
                SAFI: Labeled VPN Unicast (128)
                Next hop AFI: IPv6 (2)

同じパケットのバイト列を見ると、ffが16個続くMarkerのあと、Length00 4b(75バイト)、Type01、Version04、AS番号fd ea(65002)、Hold Time00 b4(180)、BGP Identifier0a 00 00 03(10.0.0.3)、Opt Parm Len2e(46)と、構造どおりに並んでいることがわかります。

No.15 OPEN(R3 → R2)tshark -x(BGP部分)
0020  03 02 89 5c 00 b3 c2 27 be e7 08 e5 d1 36 50 18   ...\...'.....6P.
0030  80 00 40 7b 00 00 ff ff ff ff ff ff ff ff ff ff   ..@{............
0040  ff ff ff ff ff ff 00 4b 01 04 fd ea 00 b4 0a 00   .......K........
0050  00 03 2e 02 06 01 04 00 01 00 01 02 02 80 00 02   ................
0060  02 02 00 02 06 41 04 00 00 fd ea 02 14 05 12 00   .....A..........
0070  01 00 01 00 02 00 01 00 02 00 02 00 01 00 80 00   ................
0080  02                                                .

KEEPALIVEメッセージの中身

No.19でR3がOPENを受理したときのKEEPALIVEです。共通ヘッダーだけの19バイトです。

このNo.19(KEEPALIVE)だけを抜き出したもの(bgp-no19.pcap) をダウンロード
No.19 KEEPALIVE(R3 → R2)tshark -V
Border Gateway Protocol - KEEPALIVE Message
    Marker: ffffffffffffffffffffffffffffffff
    Length: 19
    Type: KEEPALIVE Message (4)

UPDATEメッセージの中身(経路の広告)

No.21のTCPセグメントには3つのUPDATEが含まれています。1つ目はR3が192.168.3.0/24を広告するもので、パス属性としてORIGINAS_PATHMULTI_EXIT_DISCが付いています。

このNo.21(UPDATE)だけを抜き出したもの(bgp-no21.pcap) をダウンロード
No.21 UPDATE(R3 → R2、1つ目)tshark -V
Border Gateway Protocol - UPDATE Message
    Marker: ffffffffffffffffffffffffffffffff
    Length: 60
    Type: UPDATE Message (2)
    Withdrawn Routes Length: 0
    Total Path Attribute Length: 37
    Path attributes
        Path Attribute - MP_REACH_NLRI
            Flags: 0x90, Optional, Extended-Length, Non-transitive, Complete
                1... .... = Optional: Set
                .0.. .... = Transitive: Not set
                ..0. .... = Partial: Not set
                ...1 .... = Extended-Length: Set
                .... 0000 = Unused: 0x0
            Type Code: MP_REACH_NLRI (14)
            Length: 13
            Address family identifier (AFI): IPv4 (1)
            Subsequent address family identifier (SAFI): Unicast (1)
            Next hop: 10.2.3.3
                IPv4 Address: 10.2.3.3
            Number of Subnetwork points of attachment (SNPA): 0
            Network Layer Reachability Information (NLRI)
                192.168.3.0/24
                    MP Reach NLRI prefix length: 24
                    MP Reach NLRI IPv4 prefix: 192.168.3.0
        Path Attribute - ORIGIN: IGP
            Flags: 0x40, Transitive, Well-known, Complete
                0... .... = Optional: Not set
                .1.. .... = Transitive: Set
                ..0. .... = Partial: Not set
                ...0 .... = Extended-Length: Not set
                .... 0000 = Unused: 0x0
            Type Code: ORIGIN (1)
            Length: 1
            Origin: IGP (0)
        Path Attribute - AS_PATH: 65002 
            Flags: 0x40, Transitive, Well-known, Complete
                0... .... = Optional: Not set
                .1.. .... = Transitive: Set
                ..0. .... = Partial: Not set
                ...0 .... = Extended-Length: Not set
                .... 0000 = Unused: 0x0
            Type Code: AS_PATH (2)
            Length: 6
            AS Path segment: 65002
                Segment type: AS_SEQUENCE (2)
                Segment length (number of ASN): 1
                AS4: 65002
        Path Attribute - MULTI_EXIT_DISC: 0
            Flags: 0x80, Optional, Non-transitive, Complete
                1... .... = Optional: Set
                .0.. .... = Transitive: Not set
                ..0. .... = Partial: Not set
                ...0 .... = Extended-Length: Not set
                .... 0000 = Unused: 0x0
            Type Code: MULTI_EXIT_DISC (4)
            Length: 4
            Multiple exit discriminator: 0
XRdではOPENでExtended Next Hop EncodingのCapabilityを交換しているため、IPv4ユニキャストの経路であってもプレフィックスとネクストホップはUPDATE本体のNLRIフィールドではなく、MP_REACH_NLRI属性(RFC 4760)の中に格納されています。RFC 4271の基本形では、ネクストホップはNEXT_HOP属性、プレフィックスはNLRIフィールドに入ります。

3つ目のUPDATEは属性もNLRIも持たない23バイトのEnd-of-RIBマーカーで、初期広告の完了を示しています。

No.21 UPDATE(R3 → R2、3つ目 = End-of-RIB)tshark -V
Border Gateway Protocol - UPDATE Message
    Marker: ffffffffffffffffffffffffffffffff
    Length: 23
    Type: UPDATE Message (2)
    Withdrawn Routes Length: 0
    Total Path Attribute Length: 0

UPDATEメッセージの中身(経路の取り消し)

R4でLoopback1をshutdownすると、192.168.4.0/24が広告できなくなります。

R4 Loopback1のshutdown
RP/0/RP0/CPU0:R4#show running-config interface Loopback1
Sat Sep  5 04:13:22.993 UTC
interface Loopback1
 description advertised network 192.168.4.0/24
 ipv4 address 192.168.4.1 255.255.255.0
 shutdown
!

この取り消しは、R4 → R3 → R2 → R1と伝播します。R2 - R3間ではNo.25のUPDATEとして観測されました。Withdrawn Routes192.168.4.0/24が入り、Total Path Attribute Length0で、パス属性もNLRIも持ちません。

このNo.25(UPDATE)だけを抜き出したもの(bgp-no25.pcap) をダウンロード
No.25 UPDATE(R3 → R2、経路の取り消し)tshark -V
Border Gateway Protocol - UPDATE Message
    Marker: ffffffffffffffffffffffffffffffff
    Length: 27
    Type: UPDATE Message (2)
    Withdrawn Routes Length: 4
    Withdrawn Routes
        192.168.4.0/24
            Withdrawn route prefix length: 24
            Withdrawn prefix: 192.168.4.0
    Total Path Attribute Length: 0

バイト列で見ると、Length00 1b(27バイト)、Type02(UPDATE)に続いて、Withdrawn Routes Length00 04、プレフィックス長18(24)、プレフィックスc0 a8 04 00(192.168.4.0)、Total Path Attribute Length00 00と並んでいます。

No.25 UPDATE(R3 → R2、経路の取り消し)tshark -x(BGP部分)
0020  03 02 89 5c 00 b3 c2 27 c0 56 08 e5 d2 1c 50 18   ...\...'.V....P.
0030  7f 1a 64 23 00 00 ff ff ff ff ff ff ff ff ff ff   ..d#............
0040  ff ff ff ff ff ff 00 1b 02 00 04 18 c0 a8 04 00   ................
0050  00                                                .

取り消し前のR2のBGPテーブルには4経路がありました。

R2 show bgp(取り消し前)
RP/0/RP0/CPU0:R2#show bgp
<snip>
Status codes: s suppressed, d damped, h history, * valid, > best
              i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network            Next Hop            Metric LocPrf Weight Path
*>i192.168.1.0/24     10.0.0.1                 0    100      0 i
*> 192.168.2.0/24     0.0.0.0                  0         32768 i
*> 192.168.3.0/24     10.2.3.3                 0             0 65002 i
*> 192.168.4.0/24     10.2.3.3                               0 65002 65003 i

Processed 4 prefixes, 4 paths

取り消し後は192.168.4.0/24が消えて3経路になっています。

R2 show bgp(取り消し後)
RP/0/RP0/CPU0:R2#show bgp
<snip>
Status codes: s suppressed, d damped, h history, * valid, > best
              i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network            Next Hop            Metric LocPrf Weight Path
*>i192.168.1.0/24     10.0.0.1                 0    100      0 i
*> 192.168.2.0/24     0.0.0.0                  0         32768 i
*> 192.168.3.0/24     10.2.3.3                 0             0 65002 i

Processed 3 prefixes, 3 paths

AS 65001の奥にあるR1のルーティングテーブルからも、同じ経路が削除されています。

R1 show route bgp(取り消し後)
RP/0/RP0/CPU0:R1#show route bgp
Sat Sep  5 04:13:44.000 UTC

B    192.168.2.0/24 [200/0] via 10.0.0.2, 01:02:47
B    192.168.3.0/24 [200/0] via 10.2.3.3, 00:01:14

R4でLoopback1をno shutdownに戻すと、No.29のUPDATEで192.168.4.0/24が再び広告され、R1のルーティングテーブルにも復活します。

R1 show route bgp(再広告後)
RP/0/RP0/CPU0:R1#show route bgp
Sat Sep  5 04:15:06.708 UTC

B    192.168.2.0/24 [200/0] via 10.0.0.2, 01:04:09
B    192.168.3.0/24 [200/0] via 10.2.3.3, 00:02:37
B    192.168.4.0/24 [200/0] via 10.2.3.3, 00:01:08

R3のshow bgp neighborでは、R2に対して広告した回数と取り消した回数がカウントされています。

R3 show bgp neighbor 10.2.3.2(抜粋)
RP/0/RP0/CPU0:R3#show bgp neighbor 10.2.3.2 | include Prefix advertised
Sat Sep  5 04:14:46.469 UTC
  Prefix advertised 5, suppressed 0, withdrawn 1

NOTIFICATIONメッセージの中身

No.1でR2が送ったNOTIFICATIONです。clear bgpによる切断なので、Error codeは6(Cease)、サブコードは4(Administratively Reset)です。

このNo.1(NOTIFICATION)だけを抜き出したもの(bgp-no1.pcap) をダウンロード
No.1 NOTIFICATION(R2 → R3)tshark -V
Border Gateway Protocol - NOTIFICATION Message
    Marker: ffffffffffffffffffffffffffffffff
    Length: 21
    Type: NOTIFICATION Message (3)
    Major error Code: Cease (6)
    Minor error Code (Cease): Administratively Reset (4)

メッセージカウンタの確認

show bgp neighborでは、ピアと交換したメッセージ数や、OPENで交換したCapability、Hold TimeとKEEPALIVE間隔を確認できます。

R2 show bgp neighbor 10.2.3.3(抜粋)
RP/0/RP0/CPU0:R2#show bgp neighbor 10.2.3.3
Sat Sep  5 04:14:33.229 UTC

BGP neighbor is 10.2.3.3
 Remote AS 65002, local AS 65001, external link
 Description: eBGP to R3
 Remote router ID 10.0.0.3
  BGP state = Established, up for 00:02:04
  Previous State: Idle
  Last Received Message: Update
  NSR State: None
  Last read 00:00:35, Last read before reset 00:03:04
  Hold time is 180, keepalive interval is 60 seconds
  Configured hold time: 180, keepalive: 60, min acceptable hold time: 3
  Precedence: internet
  Non-stop routing is enabled
  Enforcing first AS is enabled
  Multi-protocol capability received
  Neighbor capabilities:
    Route refresh: advertised (old + new) and received (old + new)
    4-byte AS: advertised and received
    Address family IPv4 Unicast: advertised and received
  Received 79 messages, 0 notifications, 0 in queue
  Sent 77 messages, 1 notifications, 0 in queue
  Minimum time between advertisement runs is 30 secs
bgp.pcap をダウンロード

検証Config

R1 config(r1_bgp-message.cfg) をダウンロード

R2 config(r2_bgp-message.cfg) をダウンロード

R3 config(r3_bgp-message.cfg) をダウンロード

R4 config(r4_bgp-message.cfg) をダウンロード

検証環境およびshow結果

show route / show bgp / show bgp <prefix>(4プレフィックス分) / show bgp summary / show bgp neighbor の出力をルータごとにまとめています。

R1 show出力(r1_bgp-message_show.txt) をダウンロード

R2 show出力(r2_bgp-message_show.txt) をダウンロード

R3 show出力(r3_bgp-message_show.txt) をダウンロード

R4 show出力(r4_bgp-message_show.txt) をダウンロード

参考

資料タイトル概要
IANABorder Gateway Protocol (BGP) Parametersメッセージタイプ、パス属性、Capabilityコード、NOTIFICATIONのエラーコード / サブコードなど、BGPで使われる番号の割り当て一覧。
RFC 4271A Border Gateway Protocol 4 (BGP-4)BGP-4の基本仕様。各メッセージの形式を定義。
RFC 5492Capabilities Advertisement with BGP-4OPENメッセージのCapabilityを定義。
RFC 4486Subcodes for BGP Cease Notification MessageNOTIFICATIONのCeaseサブコードを定義。
RFC 4724Graceful Restart Mechanism for BGPEnd-of-RIBマーカーを定義。
RFC 4760Multiprotocol Extensions for BGP-4MP_REACH_NLRI / MP_UNREACH_NLRI属性を定義。

関連記事