Introduction:
BGP Fast-external-fallover command terminates external BGP sessions of any directly adjacent peer if the link used to reach the peer goes down; without waiting for the hold-down timer to expire.
Although this feature improves the BGP conversion time, it may lead to great instability in your BGP table due to a flapping interface. By default this feature is enabled in Cisco IOS.
Configuration Example:
In the following topology R1 & R2 configured with an EBGP session between them as follows:

R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int fa1/0
R1(config-if)#ip add 10.1.1.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#exit
R1(config)#router bgp 65001
R1(config-router)#neighbor 10.1.1.2 remote-as 65002
R1(config-router)#exit
R2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#int fa1/0
R2(config-if)#ip add 10.1.1.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#exit
R2(config)#router bgp 65002
R2(config-router)#neighbor 10.1.1.1 remote-as 65001
R2(config-router)#exit
On Both routers you can see BGP neighborship is up
R1#sh ip bgp summary | beg Nei
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.2 4 65002 4 4 1 0 0 00:00:38 0
R2#sh ip bgp sum | beg Nei
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.1 4 65001 7 7 1 0 0 00:02:47 0
When you shut down the interface connected between R1 & R2; you can see R1 immediately resets the peering session without waiting for the hold-down time to expire as shown in the debug output below:
R1#debug ip bgp 10.1.1.2
BGP debugging is on for neighbor 10.1.1.2 for address family: IPv4 Unicast
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int fa1/0
R1(config-if)#sh
R1(config-if)#
*Apr 27 20:03:13.455: BGP: 10.1.1.2 resetting - interface FastEthernet1/0 down
*Apr 27 20:03:13.455: BGP: ses global 10.1.1.2 (0x6808A92C:1) Reset (Interface flap).
*Apr 27 20:03:13.471: BGP: nbr_topo global 10.1.1.2 IPv4 Unicast:base (0x6808A92C:1) NSF delete stale NSF not active
*Apr 27 20:03:13.471: BGP: nbr_topo global 10.1.1.2 IPv4 Unicast:base (0x6808A92C:1) NSF no stale paths state is NSF not active
*Apr 27 20:03:13.475: BGP: nbr_topo global 10.1.1.2 IPv4 Unicast:base (0x6808A92C:1) Resetting ALL counters.
*Apr 27 20:03:13.475: BGP: 10.1.1.2 closing
*Apr 27 20:03:13.479: BGP: nbr_topo global 10.1.1.2 IPv4 Unicast:base (0x6808A92C:1) Resetting ALL counters.
*Apr 27 20:03:13.479: BGP: 10.1.1.2 went from Established to Idle
*Apr 27 20:03:13.479: %BGP-5-ADJCHANGE: neighbor 10.1.1.2 Down Interface flap
*Apr 27 20:03:13.483: %BGP_SESSION-5-ADJCHANGE: neighbor 10.1.1.2 IPv4 Unicast topology base removed from session Interface flap
R1#sh ip bgp summary | beg Nei
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.2 4 65002 0 0 1 0 0 00:00:43 Idle
From the above output you can see neighbors go down immediately
I have no shut the interface and again we have bgp neighborship. Now let’s disable “bgp fast-external-fallover” command, shutdown the interface and see what will happen?
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config-if)#router bgp 65001
R1(config-router)#no bgp fast-external-fallover
R1(config)#int fa1/0
R1(config-if)#sh
R1(config-if)#^Z
R1#
*Apr 27 20:55:29.603: %SYS-5-CONFIG_I: Configured from console by console
*Apr 27 20:55:30.487: %LINK-5-CHANGED: Interface FastEthernet1/0, changed state to administratively down
R1#sh ip bgp summary | beg Nei
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.2 4 65002 7 7 1 0 0 00:03:11 0
R1#sh ip bgp summary | beg Nei
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.2 4 65002 7 7 1 0 0 00:03:35 0
*Apr 27 20:57:22.215: BGP: topo global:IPv4 Unicast:base Scanning routing tables
*Apr 27 20:57:22.219: BGP: topo global:IPv4 Multicast:base Scanning routing tables
R1#sh ip bgp summary | beg Nei
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.2 4 65002 7 9 1 0 0 00:05:09 0
R1#sh ip bgp summary | beg Nei
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.2 4 65002 7 9 1 0 0 00:05:17 0
R1#sh ip bgp summary | beg Nei
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.2 4 65002 7 10 1 0 0 00:05:33 0
R1#sh ip bgp summary | beg Nei
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.2 4 65002 0 0 1 0 0 00:00:00 Idle
R1#
*Apr 27 20:58:12.347: BGP: 10.1.1.2 connection timed out 180172ms (last update) 180000ms (hold time)
*Apr 27 20:58:12.347: BGP: 10.1.1.2 went from Established to Closing
*Apr 27 20:58:12.351: %BGP-5-ADJCHANGE: neighbor 10.1.1.2 Down BGP Notification sent
*Apr 27 20:58:12.351: %BGP-3-NOTIFICATION: sent to neighbor 10.1.1.2 4/0 (hold time expired) 0 bytes
*Apr 27 20:58:12.351: BGP: ses global 10.1.1.2 (0x6816B4EC:1) Send NOTIFICATION 4/0 (hold time expired) 0 bytes
*Apr 27 20:58:12.359: BGP: 10.1.1.2 local error close after sending NOTIFICATION
R1#u all
All possible debugging has been turned off
R1#
R1#sh ip bgp nei 10.1.1.2 | in hold
Last read 00:00:06, last write 00:00:07, hold time is 180, keepalive interval is 60 seconds
minRTT: 64 ms, maxRTT: 300 ms, ACK hold: 200 ms
From the above output you can see that after shutting the interface connected between R1 & R2 down the session remains up until the hold-down timer expires.
BGP fast external fallover can also be configured on a per-interface basis using the "ip bgp fast-external-fallover" interface configuration command.
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int fa0/0
R1(config-if)#ip bgp
R1(config-if)#ip bgp fa
R1(config-if)#ip bgp fast-external-fallover ?
deny dis-allow fast fallover
permit allow fast fallover
Related Information:
BGP Commands: