Test Specification BGP-4+ Conformance Test Suite - Frédéric ROUDAUT

BGP-4+ Conformance Test Suite. V 0.3. WORK IN PROGRESS. TO DO. •. Message OPEN dans mauvaise connection. •. Connection TCP mauvaise => verif ...
454KB taille 36 téléchargements 37 vues
.. .. .. .. .. .

Test Specification BGP-4+ Conformance Test Suite V 0.3 WORK IN PROGRESS

TO DO •

Message OPEN dans mauvaise connection



Connection TCP mauvaise => verif qu’on se connecte aux autres peers



Internal et Extarnal en même temps (Multi AS)



RUT est multi-AS.

1

Table Of Contents 1

INTRODUCTION ........................................................................................................................................ 4

2

TEST CASE DESCRIPTION ...................................................................................................................... 5

3

TERMINOLOGY ......................................................................................................................................... 6

4

TOPOLOGY AND TEST CONFIGURATION ............................................................................................. 7

5

TEST SUITE FOR BGP-4 ROUTERS...................................................................................................... 13 5.1 TCP CONNECTION................................................................................................................................ 14 5.1.1 Unreachable Neighbor ................................................................................................................. 14 5.1.2 Error in TCP connection opening................................................................................................. 16 5.1.3 TCP Connection initiated by Neighbor ........................................................................................ 18 5.1.4 TCP Connection initiated by Neighbor after TCP Connection Error............................................ 20 5.1.5 Bad Remote Peer ........................................................................................................................ 22 5.1.6 ConnectRetry timer (TO DO **************) .................................................................................. 24 5.2 OPEN MESSAGES................................................................................................................................ 25 5.2.1 Connection collision in OpenConfirm state.................................................................................. 25 5.2.1.1 5.2.1.2

5.2.2

Lower BGP Identifier ............................................................................................................................25 Higher BGP Identifier ...........................................................................................................................27

Connection collision in Established State.................................................................................... 29

5.2.2.1 5.2.2.2 5.2.2.3

Lower BGP Identifier ............................................................................................................................29 Higher BGP Identifier ...........................................................................................................................31 Bad BGP Identifier (TO DO **************) ............................................................................................33

5.3 KEEPALIVE MESSAGES ...................................................................................................................... 33 5.3.1 KEEPALIVE Timer (TO DO **************) ................................................................................... 33 5.3.2 Hold Timer (TO DO **************)................................................................................................ 33 5.4 BGP-4+ ROUTING PROCESS FROM IBGP.............................................................................................. 34 5.4.1 Route Creation & Dissemination.................................................................................................. 34 5.4.1.1 Path attributes Handling .......................................................................................................................34 5.4.1.1.1 MP_REACH_NLRI ..........................................................................................................................34 5.4.1.1.2 ORIGIN ...........................................................................................................................................41 5.4.1.1.2.1 Correct Attributes .....................................................................................................................41 5.4.1.1.2.2 Bad Value in Origin field...........................................................................................................47 5.4.1.1.3 AS_PATH........................................................................................................................................53 5.4.1.1.3.1 Correct Attributes .....................................................................................................................53 5.4.1.1.3.2 Bad PATH Segment Type........................................................................................................60 5.4.1.1.3.3 Loop detection .........................................................................................................................67 5.4.1.1.3.4 Loop prevention .......................................................................................................................72 5.4.1.1.4 NEXT_HOP (TO DO **********) .......................................................................................................77 5.4.1.1.5 MULTI_EXIT_DISC.........................................................................................................................81 5.4.1.1.6 LOCAL_PREF.................................................................................................................................81 5.4.1.1.7 ATOMIC_AGGREGATE .................................................................................................................81 5.4.1.1.8 AGGREGATOR ..............................................................................................................................81 5.4.1.1.9 Unknown Well-known mandatory, discretionary and Optional transitive attributes .........................81 5.4.1.1.10 Unknown non-transitive attributes.................................................................................................81

5.4.2

Route Deletion & Dissemination .................................................................................................. 81

5.4.2.1 5.4.2.2

Deletion of particular routes .................................................................................................................81 Closure of TCP Connection..................................................................................................................81

5.4.3 Route Update & Dissemination.................................................................................................... 81 5.5 ERRORS HANDLING .............................................................................................................................. 82 5.5.1 BGP Error .................................................................................................................................... 82 5.5.2 Incorrect OPEN Message ............................................................................................................ 82 5.5.3 Incorrect UPDATE Message........................................................................................................ 82 5.5.4 Hold Timer Expired Error Message Generation .......................................................................... 82 2

5.5.5 5.5.6 5.5.7

Finite State Machine Error Generation ........................................................................................ 82 Closure of the TCP connection.................................................................................................... 82 Receiving NOTIFICATION Message error .................................................................................. 82

5.5.7.1 OPEN ...................................................................................................................................................82 5.5.7.1.1 Receiving NOTIFICATION Message Header Error.........................................................................82 5.5.7.1.2 Receiving NOTIFICATION Open Message Error............................................................................82 5.5.7.1.3 Receiving NOTIFICATION Finite state Machine Error ....................................................................82 5.5.7.1.4 Receiving NOTIFICATION Ceases Error ........................................................................................82 5.5.7.2 KEEPALIVE .........................................................................................................................................82 5.5.7.2.1 Receiving NOTIFICATION Message Header Error.........................................................................82 5.5.7.2.2 Receiving NOTIFICATION Hold Timer Expired ..............................................................................82 5.5.7.2.3 Receiving NOTIFICATION Finite state Machine Error ....................................................................82 5.5.7.2.4 Receiving NOTIFICATION Ceases Error ........................................................................................82 5.5.7.3 UPDATE...............................................................................................................................................82 5.5.7.3.1 Receiving NOTIFICATION Message Header Error.........................................................................82 5.5.7.3.2 Receiving NOTIFICATION UPDATE Message Error ......................................................................82 5.5.7.3.3 Receiving NOTIFICATION Hold Timer Expired ..............................................................................82 5.5.7.3.4 Receiving NOTIFICATION Finite state Machine Error ....................................................................82 5.5.7.3.5 Receiving NOTIFICATION Ceases Error ........................................................................................82

6

ANNEXES................................................................................................................................................. 83 6.1 IPV6 PACKETS CHECKSUM COMPUTATION .............................................................................................. 83 6.1.1 Pseudo-header ............................................................................................................................ 83 6.1.2 ICMPv6 Checksum ...................................................................................................................... 83 6.1.3 UDP and TCP Checksums .......................................................................................................... 84

7

REFERENCES ......................................................................................................................................... 85

3

1 Introduction The BGP-4 Mechanism is described in [RFC1771] (“A Border Gateway Protocol (BGP-4)”, Y. Rekhter, T. Li, March 1995, DRAFT STANDARD). Nevertheless, this RFC takes into account only IPv4. [RFC2858] (“Multiprotocol Extensions for BGP-4”, T. Bates, Y. Rekhter, R. Chandra, D. Katz, June 2000, PROPOSED STANDARD) adds the multiprotocol extensions to BGP-4 by defining the format of two new BGP attributes (MP_REACH_NLRI and MP_UNREACH_NLRI) that can be used to announce and withdraw the announcement of reachability information. [RFC 2545] (“Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing”, P. Marques, F. Dupont, March 1999, PROPOSED STANDARD) defines how compliant systems should make use of those attributes for the purpose of conveying IPv6 routing information. [RFC3392] (“Capabilities Advertisement with BGP-4”, R. Chandra, J. Scudder, November 2002, DRAFT STANDARD) defines the way to advertise capabilities of the BGP-4 peers that have the ability to use Multiprotocol Extension.

The following test suite checks the previous RFCs but more precisely in the IPv6 routing context. The three following companion documents are also to take into account but mainly for informational use: •

[RFC1772] RFC1772, “Application of the Border Gateway Protocol in the Internet”, Y. Rekhter, P. Gross, March 1995, DRAFT STANDARD.



[RFC1773] RFC 1773, “Experience with the BGP-4 protocol”, P. Traina, March 1995, INFORMATIONAL.



[RFC1774] RFC1774, “BGP-4 Protocol Analysis”, P. Traina, Ed. March 1995, INFORMATIONAL.

Even though test suite was verified, there can still be a few mistakes. All suggestions are welcome and can be send to: •

Frédéric Roudaut ( [email protected] )

4

2 Test Case Description Each test case of this BGP-4+ Conformance Test suite is described using the following sections: Purpose:

The goal of this section is to describe briefly in a general way the main aim of the test case.

References:

This section is used to give references in the standards concerning the test purpose.

Resource Requirement:

It describes test equipments needed to perform the test case. It can be hardware or software need.

Test Requirement:

It is used to describe specific configurations for the node to test or for the tester in order to perform the test case. This section is in fact the initialization part of the test case.

Discussion: This section gives more specifically, the aim of the test according our current test architecture. It can also describe what the awaited problems are … Procedure:

The test instructions to carry out the test are described step-by-step in this part.

Observable Results:

This section emphasizes the Observable Results to check by the tester to verify that the NUT is operating as specified in the standards.

Test Sequence:

The test sequence describes packet exchanges at the IP Layer level between entities available in the test case. Packet exchange labeled by a number references the corresponding test instruction of the “Procedure” section. When the Packet Exchange is not labeled, it means that it is an observable result.

Postamble:

This section gives the current state of the Node Under Test after the test execution. This part is used to have the Node Under Test in its initial state after a run of the test case.

Possible Problem:

This section gives a description of possible problems that an execution of the test case could encounter. It discusses know issues which could lead to a “FAIL” verdict.

5

3 Terminology Acronyms: The following acronyms will be used in this document: TRi:

Test Router I (as emulated by the TN)

TN:

Test Node

NUT:

Node Under Test.

RTE:

Route Table Entry

RUT:

Router Under Test (here: NUT = RUT)

6

4 Topology and Test Configuration Test Architecture: The RUT and the Tester are connected with 2 links (eg.: Link1 and Link2) in which no other communications are allowed. The Tester sends and receive IPv6 packets on the links, and provides a tool for packet analysis (sequence and packet fields). The logical environment of the RUT (topology simulated by the Tester) is shown on Figure 1. Each Link is an RJ45 crossed cable. This topology is the common topology of all test cases of this BGP-4+ test suite.

Figure 1: Logical Test Environment for BGP-4+ Conformance Testing Addressing The following defined values are just an example of needed values for this test suite. Nevertheless two different addressing may be used. One uses IPv4 for the transport and the other one uses IPv6. •

Addressing Map A – using IPv4 •

TR1: MAC address: 00:00:00:00:a1:a1 Link local address: fe80::200:ff:fe00:a1a1 Global Address: 2001:10::1/52



Addressing Map B – using IPv6 •

TR1: MAC address: 00:00:00:00:a1:a1 Link local address: fe80::200:ff:fe00:a1a1 Global Address: 2001:10::1/52

7

In the following we will use ”PRFX_i” for the prefix 2001:i::/52 and “PRFX_6Bone” means 3ffe::/16, “PRFX_6to4” means 2002::/16. Moreover, in the following we will use the term Global Address to describe the global address of a TR on main link (ie Link1 or Link2). Two IPv6 Global Addresses have to be configured on the RUT: Global Address Link1: 2001:10::f1f1/52 (PRFX_10::f1f1) Global Address Link2: 2001:11::f2f2/52 (PRFX_11::f2f2) Link-locals addresses of the RUT will be autoconfigurated. When needed a second IPv6 Link-local address will be to add to the RUT on Link1 and eventually Link2. These addresses will be fe80::f1f1 and fe80::f2f2. On RUT, MTUs will be set to 1500 when not explicitaly precised. We will consider that medias are Ethernet Links. As defined in [RFC2464], The default MTU size for IPv6 packets on an Ethernet is 1500 octets. Moreover for best tests analyze, it could be required to desactivate Router Advertisement from the RUT. Execution of test cases: Each test case described here should begin when the RUT is at its initial state. We tried to limit the test link effect so that the test cases can be executed in sequence. However, some tests will have more reliable verdicts in a lone run. As no procedure ensures perfect clean-up when a RUT is found to be non conformant, a reinitialization of the RUT should follow every test case that leads to a verdict « FAIL ». Link-local addresses resolution and ARP: As part of the Neighbor Discovery protocol [RFC2461], with Addressing Map B, the NUT should send Neighbor Solicitation packets to discover or probe the link-local address of a node at any time. In most cases, the tester node should respond by a Neighbor Advertisement packet. Moreover, with Addressing Map A, the Node should send ARP Packet to discover MAC address From an IPv4 Address. In most cases, the tester node should also respond by an ARP Reply packet. These default packets are described hereafter. The values set in these packets should be taken as long as no explicit values are given. •

ARP Request (From NUT to get MAC Address of TR) (length: 28 bytes) ARP Header (length: 28) Hardware: 1 Protocol: 2048 HLEN: 6 PLEN: 4 Operation: 1 SenderHAddr: NUT MAC Address Link2 SenderPAdd: NUT IPv4 address Link2 TargetHAddr: XXXXX TargetPAddr: TR IPv4 address Link2



ARP Reply (From TR, to give its MAC Address to the NUT) (length: 28 bytes) ARP Header (length: 28) Hardware: 1 Protocol: 2048 HLEN: 6 PLEN: 4 Operation: 2 SenderHAddr: TR MAC Address Link2 SenderPAdd: TR IPv4 address Link2 TargetHAddr: NUT MAC Address Link2 TargetPAddr: NUT IPv4 address Link2



Neighbor Solicitation (From NUT to get MAC Address of TN1, TN1Bis, TN1Ter) (length: 72 bytes)

8

IPv6 Header (length: 40) Version: 6 TrafficClass: 0 FlowLabel: 0 PayloadLength: 32 NextHeader: 58 HopLimit : 255 SourceAddress: NUT IPv6 link-local/Global address DestinationAddress: TN1/TN1Bis/TN1Ter IPv6 solicited node multicast address Neighbor Solicitation (length: 32) Type: 135 Code: 0 Checksum: To Calculate Reserved: 0 TargetAddress: TN1/TN1Bis/TN1Ter Global IPv6 Address or TN1/TN1Bis/TN1Ter Link-local Address Option ICMPv6 Source Link Layer (length:8) Type: 1 Length: 1 LinkLayerAddress: NUT MAC Address Link1



Neighbor Solicitation (From NUT to check reachability of TN1/TN1Bis/TN1Ter) (length: 72 bytes) IPv6 Header (length: 40) Version: 6 TrafficClass: 0 FlowLabel: 0 PayloadLength: 32 NextHeader: 58 HopLimit : 255 SourceAddress: NUT IPv6 link-local/Global address DestinationAddress: TN1/TN1Bis/TN1Ter Global IPv6 Address or TN1/TN1Bis/TN1Ter Link-local Address Neighbor Solicitation (length: 32) Type: 135 Code: 0 Checksum: To Calculate Reserved: 0 TargetAddress: TN1/TN1Bis/TN1Ter Global IPv6 Address or TN1/TN1Bis/TN1Ter Link-local Address Option ICMPv6 Source Link Layer (length:8) Type: 1 Length: 1 LinkLayerAddress: NUT MAC Address Link1



Neighbor Advertisement (From TN1/TN1Bis/TN1Ter, to give its MAC Address to the NUT) (length: 72 bytes) IPv6 Header (length: 40) Version: 6 TrafficClass: 0 FlowLabel: 0 PayloadLength: 32 NextHeader: 58 HopLimit : 255 SourceAddress: TN1/TN1Bis/TN1Ter Global IPv6 Address or TN1/TN1Bis/TN1Ter Link-local Address

9

DestinationAddress: NUT IPv6 link-local/Global address (Same as the source field in the corresponding Neighbor Solicitation)

Neighbor Advertisement (length: 32) Type: 136 Code: 0 Checksum: To calculate Rflag: 0 Sflag: 1 Oflag: 1 Reserved: 0 TargetAddress: TN1/TN1Bis/TN1Ter Global IPv6 address or TN1/TN1Bis/TN1Ter Link-local Address (Same as the Target Address field in the corresponding Neighbor Solicitation) Option ICMPv6 Target Link Layer (length:8) Type: 2 Length: 1 LinkLayerAddress: TN1/TN1Bis/TN1Ter MAC Address

Transports Requirement: BGP uses TCP [RFC793] as its transport Protocol. It uses the TCP port 179 for establishing its connections. Using Addressing Map A this connection will be done using IPv4 and Addressing Map B will involve IPv6 connection. The following Packets gives TCP Packets for establishing and closing a TCP Connection: •

IPv6/TCP (length: 60 bytes) IPv6 Header (length: 40) Version: 6 TrafficClass: 0 FlowLabel: 0 PayloadLength: 20 NextHeader: 6 HopLimit : (64) SourceAddress: SRC_ADDRESS DestinationAddress: DST_ADDRESS

TCP (length: 20) SourcePort: SRC_PORT DestinationPort: DST_PORT SequenceNumber: S/N AcknowledgmentNumber: A/N DataOffset: 5 Reserverd: 0 URGFlag: 0 ACKFlag: ACKFlag PSHFlag: 0 RSTFlag: 0 SYNFlag: SYNFlag FINFlag: FINFlag Window: 0 Checksum: To calculate UrgentPointer: 0 Payload (length: 0)



IPv4/TCP (length: 40 bytes) IPv4 Header (length: 20)

10

Version: 4 IHL: 5 TypeOfService: 0 TotalLength: 40 Identifier: 0 Reserved: 0 DF: 1 MF: 0 FragmentOffset: 0 TTL: (64) Protocol: 6 HeaderChecksum: To calculate SourceAddress: SRC_ADDRESS DestinationAddress: DST_ADDRESS

TCP (length: 20) SourcePort: SRC_PORT DestinationPort: DST_PORT SequenceNumber: S/N AcknowledgmentNumber: A/N DataOffset: 5 Reserverd: 0 URGFlag: 0 ACKFlag: ACKFLAG PSHFlag: (1) RSTFlag: 0 SYNFlag: SYNFLAG FINFlag: FINFLAG Window: 0 Checksum: To calculate UrgentPointer: 0 Payload (length: 0)

In the different packets, the following key-words are used: To check : The value Should be computed at the runtime to be checked. ( ) : The value is not strictly fixed. In packets sent by the tester it is juste the recommended value. In packets sent by the NUT, it means nothing.

Using the packets described above, we may describe the different TCP states transitions: •

Open a TCP Connection: 1.

A sends a “TCP” packet to B. (SYNFlag is set, S/N is set to X and A/N is set to 0 )

2.

B sends a “TCP” packet to A. (SYNFlag and ACKFlag are set, S/N is set to Y and A/N is set to X+1 )

3.

A sends a “TCP” packet to A. (ACKFlag is set, S/N is set to X+1 and A/N is set to Y+1 )

In the following, It will be represented by: TCP connection [PORTA, PORTB] ===========================> •

Simple TCP Packet sending: 1.

A sends a “TCP” packet to B. (S/N is set to X+1+n [n: bytes of the Payload] and A/N is set to Y+1 )

In the following we have to take into account that every TCP Packet sent to the RUT will result in an acknowledgment packet. Moreover we have to send back a TCP acknowledgment when the RUT will generate a TCP packet. •

Close the TCP Connection: 1.

A sends a “TCP” packet to B. (FINFlag and ACKFlag are set, S/N is set to X+1 [+n] and A/N is set to Y+1 )

11

2.

B sends a “TCP” packet to A. (ACKFlag is set, S/N is set to 11 and A/N is set to X+1+1 [+n] )

3.

B sends a “TCP” packet to A. (FINFlag and ACKFlag are set, S/N is set to Y+1 and A/N is set to X+1+1 [+n] )

4.

A sends a “TCP” packet to B. (ACKFlag is set, S/N is set to 3 and A/N is set to Y+1+1 ) In the following, It will be represented by: TCP connection Closure [PORTA, PORTB] ===================================>

BGP Timers BGP employs five timers: ConnectRetry, Hold Time, KeepAlive, MinASOriginationInterval, and MinRouteAdvertisementInterval The suggested value for the ConnectRetry timer is 120 seconds. The suggested value for the Hold Time is 90 seconds. The suggested value for the KeepAlive timer is 30 seconds. The suggested value for the MinASOriginationInterval is 15 seconds. The suggested value for the MinRouteAdvertisementInterval is 30 seconds. An implementation of BGP MUST allow these timers to be configurable. In this test suite, we will consider timer values as suggested, as long as nothing is explicitly mentioned.

12

5 Test suite for BGP-4 Routers Finite State Machine The Following Conformance Test suite takes into account the Finite State Machine of BGP-4+ (cf [RFC1771]) described hereafter:

Figure 2: BGP-4+ Finite State Machine

13

5.1 TCP Connection 5.1.1 Unreachable Neighbor Purpose: Check that if one unreachable peer becomes reachable, a BGP peering will be established with it. References: •

[RFC1771]: 8, Appendix 1

Resource Requirement: •

None

Test Requirement: • Discussion:

Initially BGP is in the Idle state. In response to the Start event (initiated by either system or operator) the local system initializes all BGP resources, starts the ConnectRetry timer, initiates a transport connection to other BGP peer, while listening for connection that may be initiated by the remote BGP peer, and changes its state to Connect. The exact value of the ConnectRetry timer is a local matter, but should be sufficiently large to allow TCP initialization. In the connect state, BGP is waiting for the transport protocol connection to be completed. If the transport protocol connect fails (e.g., retransmission timeout), the local system restarts the ConnectRetry timer, continues to listen for a connection that may be initiated by the remote BGP peer, and changes its state to Active state. In response to the ConnectRetry timer expired event, the local system restarts the ConnectRetry timer, initiates a transport connection to other BGP peer, continues to listen for a connection that may be initiated by the remote BGP peer, and stays in the Connect state. If the transport protocol connection succeeds, the local system clears the ConnectRetry timer, completes initialization, sends an OPEN message to its peer, and changes its state to OpenSent. In the Active state BGP is trying to acquire a peer by initiating a transport protocol connection. If the transport protocol connection succeeds, the local system clears the ConnectRetry timer, completes initialization, sends an OPEN message to its peer, sets its Hold Timer to a large value, and changes its state to OpenSent. A Hold Timer value of 4 minutes is suggested. In response to the ConnectRetry timer expired event, the local system restarts the ConnectRetry timer, initiates a transport connection to other BGP peer, continues to listen for a connection that may be initiated by the remote BGP peer, and changes its state to Connect.

Procedure: 1.

Start the RUT.

2.

Wait for the first Neighbor Solicitation to TRe0. Wait ConnectRetry seconds in more.

3.

Wait for the next Neighbor Solicitation to TRe0 and reply with a Neighbor Advertisement from TRe0 to give its MAC Address.

4.

Establish a TCP connection opening between the RUT and TRe0 initiated by the RUT as described in Section 4.

5.

Because the RUT has an alive connection with the peer TRe0, it is needed to close this BGP connection by sending a BGP CEASE ERROR Message from TRe0 and closing the connection as described in Section 4.

Observable Results: •

Step 1: the RUT will send Neighbor Solicitations on Link1 to get MAC addresses of TRe0. You MUST not reply to these Neighbor Solicitations for TRe0.



Step 4: the RUT will establish a TCP Connection from a Local source port PORT1 to BGP port (ie. 179). After that the RUT will send a BGP OPEN Message to TRe0 on this TCP Connection.

14

Test Sequence: Tester (Tri)

Link1

RUT

1.

Link2

Tester (TRi)

Start the RUT.

Neighbor Solicitation TRe0 BGP OPEN [179, PORT_i1] BGP KEEPALIVE [179, PORT_i1] BGP OPEN [PORT_ e2, 179] ---------------------------> BGP OPEN [179, PORT_ e2] BGP KEEPALIVE [179, PORT_ e2] ICMPv6 Echo Request ICMPv6 Destination Unreachable ICMPv6 Destination Unreachable 18b Step18b 18c Step18c

18d Step18d

TRi2 TRi2 TRe1 TRe1

BGP CEASE ERROR [179, PORT_e2] ----------------------------> TCP connection Closure [PORT_i2, 179] TCP connection Closure [PORT_e1, 179] TCP connection Closure [PORT_i1, 179] TCP connection Closure [PORT_e2, 179] BGP OPEN [179, PORT_i1] BGP KEEPALIVE [179, PORT_i1] BGP OPEN [PORT_ e2, 179] ---------------------------> BGP OPEN [179, PORT_ e2] BGP KEEPALIVE [179, PORT_ e2] ICMPv6 Echo Request ICMPv6 Destination Unreachable ICMPv6 Destination Unreachable 18b Step18b 18c Step18c

18d Step18d

TRi2 TRi2 TRe1 TRe1

BGP CEASE ERROR [179, PORT_e2] ----------------------------> TCP connection Closure [PORT_i2, 179] TCP connection Closure [PORT_e1, 179] TCP connection Closure [PORT_i1, 179] TCP connection Closure [PORT_e2, 179] BGP OPEN [179, PORT_i1] BGP KEEPALIVE [179, PORT_i1] BGP OPEN [PORT_ e2, 179] ---------------------------> BGP OPEN [179, PORT_ e2] BGP KEEPALIVE [179, PORT_ e2] ICMPv6 Echo Request ICMPv6 Destination Unreachable ICMPv6 Destination Unreachable 18b Step18b 18c Step18c

18d Step18d

TRi2 TRi2 TRe1 TRe1

BGP CEASE ERROR [179, PORT_e2] ----------------------------> TCP connection Closure [PORT_i2, 179] TCP connection Closure [PORT_e1, 179] TCP connection Closure [PORT_i1, 179] TCP connection Closure [PORT_e2, 179]