diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2015-06-12 16:59:10 +0200 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2015-06-12 16:59:10 +0200 |
commit | 31a4638f7d49753e904c3518de2b1aa51a47ab94 (patch) | |
tree | ef28ba9a8677f129d5c7e6549d6ba2e7f1fb4f5e /bgpd/bgp_community.h | |
parent | Remove the '(ignored)' output for nexthops, instead display 'used' for the us... (diff) | |
download | frr-31a4638f7d49753e904c3518de2b1aa51a47ab94.tar.xz frr-31a4638f7d49753e904c3518de2b1aa51a47ab94.zip |
BGP: bestpath needs to prefer confed-external over confed-internal
Topology:
+-----------------------------------------+
| |
| AS 100 |
| |
| +----------------+ |
+-----------+ | | | |
| | | | SubAS 65001 | |
| AS 90 | | | | +-------------+ |
| r9----------------r1---------r2----\ | | |
| | | | | | | | | | SubAS 65002 | |
+-----|-----+ | | \--- r3 --/ | \-------r4 | |
\---------------------/ \---------------/ | | |
| | | | | | |
| +----------------+ | | | |
| | | | |
| +----------------+ | r5 | |
+-----------+ | | | | | | |
| | | | SubAS 65003 | +-----|-------+ |
| AS 80 | | | | | |
| r8----------------r7--------r6--------------/ |
| | | | | |
+-----------+ | +----------------+ |
+-----------------------------------------+
Important info:
- r8 originates 8.8.8.8/32
- r1, r2, r3 -> r7 are 10.0.0.1, 10.0.0.2, etc
- 'bgp bestpath compare-routerid' is configured everywhere (we could still hit
the problem without this though)
Bestpath selection for 8.8.8.8/32 on r2 and r3 is inconsistent. Here r4
advertised the 8.8.8.8/32 to r2 first, r2 then advertised it to r3, r3 selected
the path from r2 as the bestpath due to lowest router-id.
r2
BGP routing table entry for 8.8.8.8/32
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
10.0.0.1 10.0.0.3 10.0.0.4
(65002 65003) 80
10.0.0.7 (metric 50) from 10.0.0.4 (10.0.0.4)
Origin IGP, metric 0, localpref 100, valid, confed-external, best
Last update: Fri May 1 14:46:57 2015
r3
BGP routing table entry for 8.8.8.8/32
Paths: (2 available, best #1, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
10.0.0.4 90.1.1.6
(65002 65003) 80
10.0.0.7 (metric 50) from 10.0.0.2 (10.0.0.2)
Origin IGP, metric 0, localpref 100, valid, confed-internal, best
Last update: Fri May 1 14:46:58 2015
(65002 65003) 80
10.0.0.7 (metric 50) from 10.0.0.4 (10.0.0.4)
Origin IGP, metric 0, localpref 100, valid, confed-external
Last update: Fri May 1 14:46:57 2015
Here r4 advertised the 8.8.8.8/32 to r3 first, r3 then advertised it to r2, r2
selected the path from r3 as the bestpath due to lowest router-id.
r2
BGP routing table entry for 8.8.8.8/32
Paths: (2 available, best #2, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
10.0.0.4
(65002 65003) 80
10.0.0.7 (metric 50) from 10.0.0.4 (10.0.0.4)
Origin IGP, metric 0, localpref 100, valid, confed-external
Last update: Fri May 1 15:37:27 2015
(65002 65003) 80
10.0.0.7 (metric 50) from 10.0.0.3 (10.0.0.3)
Origin IGP, metric 0, localpref 100, valid, confed-internal, best
Last update: Fri May 1 15:37:27 2015
r3
BGP routing table entry for 8.8.8.8/32
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
10.0.0.1 10.0.0.2 10.0.0.4 90.1.1.6
(65002 65003) 80
10.0.0.7 (metric 50) from 10.0.0.4 (10.0.0.4)
Origin IGP, metric 0, localpref 100, valid, confed-external, best
Last update: Fri May 1 15:37:22 2015
The fix is to have bestpath prefer a confed-external path over a confed-internal
path. I added this just after the "nexthop IGP cost" step because some confed
customers will have one IGP covering multiple sub-ASs, in that case you want to
compare nexthop IGP cost.
Diffstat (limited to 'bgpd/bgp_community.h')
0 files changed, 0 insertions, 0 deletions