No-Fast-External-Failover
Scenario to verify BGP no-fast-external-failover parameter configuration.
By default, BGP immediately resets a session when the directly connected link to an
eBGP peer fails. This behavior is called fast external failover. The
no-fast-external-failover parameter disables this behavior, causing BGP to wait
for the holdtimer to expire before declaring the session down. This can be useful in
environments where brief link flaps should not trigger BGP reconvergence.
In this test, DUT0 (AS 100) establishes an eBGP session with DUT1 (AS 200).
First, without no-fast-external-failover, disabling DUT0’s interface causes the
session to drop immediately. Then, with no-fast-external-failover enabled, the
session remains established briefly after the interface is disabled, until the
holdtimer expires.
Test BGP Fast External Failover Default Behavior
Description
This test verifies the default fast external failover behavior. When DUT0’s interface is disabled, the eBGP session should drop immediately without waiting for the holdtimer to expire.
Scenario
Note
First we configure eBGP without no-fast-external-failover to observe default behavior. When the local link fails, the session should drop immediately.
Step 1: Set the following configuration in DUT0 :
set interfaces ethernet eth0 address 10.10.0.100/24 set protocols bgp 100 neighbor peer remote-address 10.10.0.200 set protocols bgp 100 neighbor peer remote-as 200 set protocols bgp 100 neighbor peer route-map import PERMIT set protocols route-map PERMIT rule 1 action permit set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 2: Set the following configuration in DUT1 :
set interfaces dummy dum0 address 1.1.1.1/24 set interfaces ethernet eth0 address 10.10.0.200/24 set protocols bgp 200 neighbor peer remote-address 10.10.0.100 set protocols bgp 200 neighbor peer remote-as 100 set protocols bgp 200 neighbor peer route-map export PERMIT set protocols bgp 200 redistribute connected set protocols route-map PERMIT rule 1 action permit set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Attention
Verify eBGP session establishes between DUT0 and DUT1.
Step 3: Run command protocols bgp show ip summary at DUT0 and check if output matches the following regular expressions:
10.10.0.200.*EstablishedShow output
IPv4 Unicast Summary: BGP router identifier 10.10.0.100, local AS number 100 VRF default vrf-id 0 BGP table version 0 RIB entries 0, using 0 bytes of memory Peers 1, using 24 KiB of memory Neighbor LocalAddr V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State PfxRcd PfxSnt Desc 10.10.0.200 10.10.0.100 4 200 3 4 0 0 0 00:00:00 Established 0 (Policy) N/A Total number of neighbors 1
Attention
Verify DUT0 receives route 1.1.1.0/24 from DUT1.
Step 4: Run command protocols bgp show ip at DUT0 and check if output matches the following regular expressions:
1.1.1.0/24Show output
BGP table version is 2, local router ID is 10.10.0.100, vrf id 0 Default local pref 100, local AS 100 local address - Status codes: s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *u 1.1.1.0/24 10.10.0.200 0 0 200 ? *u 10.10.0.0/24 10.10.0.200 0 0 200 ? Displayed 2 routes and 2 total paths
Note
Disable DUT0 interface to simulate local link failure.
Step 5: Modify the following configuration lines in DUT0 :
set interfaces ethernet eth0 disable
Attention
Verify session drops immediately (not Established) due to fast external failover.
Step 6: Run command protocols bgp show ip summary at DUT0 and check if output matches the following regular expressions:
10.10.0.200.*ActiveShow output
IPv4 Unicast Summary: BGP router identifier 0.0.0.0, local AS number 100 VRF default vrf-id 0 BGP table version 4 RIB entries 0, using 0 bytes of memory Peers 1, using 24 KiB of memory Neighbor LocalAddr V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State PfxRcd PfxSnt Desc 10.10.0.200 10.10.0.100 4 200 6 5 0 0 0 00:00:01 Active 0 0 N/A Total number of neighbors 1
Test BGP No Fast External Failover
Description
This test verifies that no-fast-external-failover prevents immediate session
reset when the local link fails. When DUT0’s interface is disabled, the eBGP
session should remain established briefly until the holdtimer expires.
Scenario
Note
Configure eBGP with no-fast-external-failover enabled on DUT0.
Step 1: Set the following configuration in DUT0 :
set interfaces ethernet eth0 address 10.10.0.100/24 set protocols bgp 100 neighbor peer remote-address 10.10.0.200 set protocols bgp 100 neighbor peer remote-as 200 set protocols bgp 100 neighbor peer route-map import PERMIT set protocols bgp 100 parameters no-fast-external-failover set protocols route-map PERMIT rule 1 action permit set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Step 2: Set the following configuration in DUT1 :
set interfaces dummy dum0 address 1.1.1.1/24 set interfaces ethernet eth0 address 10.10.0.200/24 set protocols bgp 200 neighbor peer remote-address 10.10.0.100 set protocols bgp 200 neighbor peer remote-as 100 set protocols bgp 200 neighbor peer route-map export PERMIT set protocols bgp 200 redistribute connected set protocols route-map PERMIT rule 1 action permit set system login user admin authentication encrypted-password '$6$GSjsCj8gHLv$/VcqU6FLi6CT2Oxn0MJQ2C2tqnRDrYKNF8HIYWJp68nvXvPdFccDsT04.WtigUONbKYrgKg8d6rEs8PjljMkH0'
Attention
Verify eBGP session establishes between DUT0 and DUT1.
Step 3: Run command protocols bgp show ip summary at DUT0 and check if output matches the following regular expressions:
10.10.0.200.*EstablishedShow output
IPv4 Unicast Summary: BGP router identifier 10.10.0.100, local AS number 100 VRF default vrf-id 0 BGP table version 0 RIB entries 0, using 0 bytes of memory Peers 1, using 24 KiB of memory Neighbor LocalAddr V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State PfxRcd PfxSnt Desc 10.10.0.200 10.10.0.100 4 200 2 4 0 0 0 00:00:01 Established 0 (Policy) N/A Total number of neighbors 1
Attention
Verify DUT0 receives route 1.1.1.0/24 from DUT1.
Step 4: Run command protocols bgp show ip at DUT0 and check if output matches the following regular expressions:
1.1.1.0/24Show output
BGP table version is 2, local router ID is 10.10.0.100, vrf id 0 Default local pref 100, local AS 100 local address - Status codes: s suppressed, d damped, h history, u unsorted, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *u 1.1.1.0/24 10.10.0.200 0 0 200 ? *u 10.10.0.0/24 10.10.0.200 0 0 200 ? Displayed 2 routes and 2 total paths
Note
Disable DUT0 interface to simulate local link failure.
Step 5: Modify the following configuration lines in DUT0 :
set interfaces ethernet eth0 disable
Attention
Verify session remains Established immediately after link failure due to no-fast-external-failover.
Step 6: Run command protocols bgp show ip summary at DUT0 and check if output matches the following regular expressions:
10.10.0.200.*EstablishedShow output
IPv4 Unicast Summary: BGP router identifier 10.10.0.100, local AS number 100 VRF default vrf-id 0 BGP table version 2 RIB entries 3, using 384 bytes of memory Peers 1, using 24 KiB of memory Neighbor LocalAddr V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State PfxRcd PfxSnt Desc 10.10.0.200 10.10.0.100 4 200 5 5 2 0 0 00:00:04 Established 2 (Policy) N/A Total number of neighbors 1