Tuesday, October 6, 2020

BGP: route not removed from routing table when a peer is down

Hello, I have EdgeRouter 12P running v2.0.8-hotfix.1 and having an issue with BGP. All works fine and I receive routes from BGP peers ( metallb speakers ) however when one of the peers goes down ( not-graceful ) routes via this peer remain in the routing table which makes traffic arrive on non-working next-hop.My BGP config:

set protocols bgp 110720 maximum-paths ebgp 8 set protocols bgp 110720 maximum-paths ibgp 8 set protocols bgp 110720 neighbor 10.0.0.10 remote-as 200914 set protocols bgp 110720 neighbor 10.0.0.30 remote-as 200914 set protocols bgp 110720 neighbor 10.0.0.31 remote-as 200914 set protocols bgp 110720 neighbor 10.0.0.40 remote-as 200914 set protocols bgp 110720 neighbor 10.0.0.41 remote-as 200914 set protocols bgp 110720 neighbor 10.0.0.42 remote-as 200914 set protocols bgp 110720 neighbor 10.0.0.43 remote-as 200914 set protocols bgp 110720 parameters log-neighbor-changes set protocols bgp 110720 parameters router-id 10.0.0.1 set protocols bgp 110720 redistribute static set protocols bgp 110720 timers holdtime 10 set protocols bgp 110720 timers keepalive 60 

state before reproducing the problem:

ubnt@EdgeRouter-12P:~$ show ip bgp summary BGP router identifier 10.0.0.1, local AS number 110720 BGP table version is 5 2 BGP AS-PATH entries 0 BGP community entries 8 Configured ebgp ECMP multipath: Currently set at 8 8 Configured ibgp ECMP multipath: Currently set at 8 Neighbor V AS MsgRcv MsgSen TblVer InQ OutQ Up/Down State/PfxRcd 10.0.0.10 4 200914 0 0 0 0 0 never Active 10.0.0.30 4 200914 1529 2533 5 0 0 00:00:18 4 10.0.0.31 4 200914 1527 2534 5 0 0 00:00:18 3 10.0.0.40 4 200914 1434 2383 5 0 0 00:00:18 2 10.0.0.41 4 200914 1525 2536 5 0 0 00:00:18 2 10.0.0.42 4 200914 1526 2535 5 0 0 00:00:18 2 10.0.0.43 4 200914 1526 2535 5 0 0 00:00:18 2 ubnt@EdgeRouter-12P:~$ show ip route 10.0.8.10 Routing entry for 10.0.8.10/32 Known via "bgp", distance 20, metric 0, External Route Tag: 200914, best Last update 00:01:02 ago * 10.0.0.43, via switch0.100 * 10.0.0.42, via switch0.100 * 10.0.0.41, via switch0.100 * 10.0.0.40, via switch0.100 * 10.0.0.31, via switch0.100 * 10.0.0.30, via switch0.100 ubnt@EdgeRouter-12P:~$ show ip bgp 10.0.8.10 BGP routing table entry for 10.0.8.10/32 Paths: (6 available, best #1, table Default-IP-Routing-Table) Advertised to non peer-group peers: 10.0.0.31 10.0.0.40 10.0.0.41 10.0.0.42 10.0.0.43 200914 10.0.0.30 from 10.0.0.30 (10.0.0.30) Origin incomplete, metric 0, localpref 100, valid, external, multipath-candidate, installed, best Last update: Mon Sep 28 15:29:11 2020 200914 10.0.0.40 from 10.0.0.40 (10.0.0.40) Origin incomplete, metric 0, localpref 100, valid, external, multipath-candidate, installed Last update: Mon Sep 28 15:29:11 2020 200914 10.0.0.43 from 10.0.0.43 (10.0.0.43) Origin incomplete, metric 0, localpref 100, valid, external, multipath-candidate, installed Last update: Mon Sep 28 15:29:11 2020 200914 10.0.0.42 from 10.0.0.42 (10.0.0.42) Origin incomplete, metric 0, localpref 100, valid, external, multipath-candidate, installed Last update: Mon Sep 28 15:29:11 2020 200914 10.0.0.41 from 10.0.0.41 (10.0.0.41) Origin incomplete, metric 0, localpref 100, valid, external, multipath-candidate, installed Last update: Mon Sep 28 15:29:11 2020 200914 10.0.0.31 from 10.0.0.31 (10.0.0.31) Origin incomplete, metric 0, localpref 100, valid, external, multipath-candidate, installed Last update: Mon Sep 28 15:29:11 2020 

when 10.0.0.40 is force stopped I can see that in the logs:

Sep 28 15:35:17 EdgeRouter-12P BGP[4248]: BGP-6: 10.0.0.40-Outgoing [RIB] : Cleared BGP route table, af=1/1 route-num=2 Sep 28 15:35:17 EdgeRouter-12P BGP[4248]: BGP-6: %BGP-5-ADJCHANGE: neighbor 10.0.0.40 Down Peer closed the session 

it no longer appears in `show IP bgp`

ubnt@EdgeRouter-12P:~$ show ip bgp 10.0.8.10 BGP routing table entry for 10.0.8.10/32 Paths: (5 available, best #1, table Default-IP-Routing-Table) Advertised to non peer-group peers: 10.0.0.31 10.0.0.41 10.0.0.42 10.0.0.43 200914 10.0.0.30 from 10.0.0.30 (10.0.0.30) Origin incomplete, metric 0, localpref 100, valid, external, multipath-candidate, installed, best Last update: Mon Sep 28 15:29:11 2020 200914 10.0.0.43 from 10.0.0.43 (10.0.0.43) Origin incomplete, metric 0, localpref 100, valid, external, multipath-candidate, installed Last update: Mon Sep 28 15:29:11 2020 200914 10.0.0.42 from 10.0.0.42 (10.0.0.42) Origin incomplete, metric 0, localpref 100, valid, external, multipath-candidate, installed Last update: Mon Sep 28 15:29:11 2020 200914 10.0.0.41 from 10.0.0.41 (10.0.0.41) Origin incomplete, metric 0, localpref 100, valid, external, multipath-candidate, installed Last update: Mon Sep 28 15:29:11 2020 200914 10.0.0.31 from 10.0.0.31 (10.0.0.31) Origin incomplete, metric 0, localpref 100, valid, external, multipath-candidate, installed Last update: Mon Sep 28 15:29:11 2020 

but route still remains in a kernel routing table:

ubnt@EdgeRouter-12P:~$ show ip route 10.0.8.10 Routing entry for 10.0.8.10/32 Known via "bgp", distance 20, metric 0, External Route Tag: 200914, best Last update 00:07:06 ago * 10.0.0.43, via switch0.100 * 10.0.0.42, via switch0.100 * 10.0.0.41, via switch0.100 * 10.0.0.40, via switch0.100 * 10.0.0.31, via switch0.100 * 10.0.0.30, via switch0.100 

Would anyone be able to help debug/fix that problem ?



No comments:

Post a Comment