Original Message:
Sent: 03-17-2023 12:21
From: aaron.gould
Subject: routing questions
I see the same type of thing occur in my network. You mentioned "I expect to see two, but I have four here. why the same route appears twice?"
2x2=4
In my network, I see 6 for my 0/0 default route to the Internet. I have 3 internet connections, which all receive a default route. At first glance, you might expect remote PE's to receive 3 default routes... but they receive 6. Because, like you, I also have dual route reflectors...
3x2=6
When running dual route reflector nodes, your mp-ibgp rr clients will always receive X2 routes for everything. This is because the RR cluster members have the naturally learned route and the reflected route from the far-side rr neighbor, so x2 routes result at each RR node. Then those 2 RR cluster nodes reflect those x2 routes to RR clients which will then have 4. 2 from RR node 1, and 2 from RR node 2
The RR clients ends up with all 4 entries like you have shown ...
10.146.41.0/24
1 --- AS path: 64851 64874 64850 64870 I
2 --- AS path: 64851 64874 64850 64870 I
3 --- AS path: 64851 64874 64850 64870 I
4 --- AS path: 64851 64874 64850 64870 I
The client can see the source of those reflected routes like this... 2 from each RR cluster member
show route 10.146.41.10 logical-system LS-MC extensive | grep "protocol next hop"
10.220.1.1
10.220.1.1
10.220.1.2
10.220.1.2
I'm thinking those ip addresses are the loopbacks (RID, router ID) of each of the 2 RR cluster nodes which you also use for peering, if so...
you can see these routes received from each RR like this...
show route receive-protocol bgp 10.220.1.1 10.146.41.0/24 exact table MC.inet.0
show route receive-protocol bgp 10.220.1.2 10.146.41.0/24 exact table MC.inet.0
you can see the best/active route with...
show route 10.146.41.10 logical-system LS-MC active
to learn why it's active, you can look at the reason....
show route 10.146.41.10 logical-system LS-MC extensive | grep reason
in the default state, the reason is lowest loopback address. so all traffic will probably flow via 10.220.1.1
when I needed to load balance traffic in my network I learned the following...
A few protocols (i think bgp-based l3vpn, and perhaps rsvp-te) will use the inet.3 table for its metrics when deciding best path
show route table inet.3 | grep metric
...you should see that all metrics are 1
with that, now see this command...
show route 10.146.41.10 logical-system LS-MC extensive | grep metric
you will see that the metric for all 4 routes is 1, this is because, inet.3 doesn't use the inet.0 IGP metric. however, I wanted my remote PE's to load balance for Internet, particularly CGNat balancing, so I needed the inet.0 IGP metric to be used as part of the best path calculation to the cgnat node exit point... here's a simple LDP command to enable this...
set protocols ldp track-igp-metric
this command will now cause all inet.0 metrics to be copied into inet.3
show route table inet.0 | grep metric
show route table inet.3 | grep metric
you should see the inet.0 and inet.3 metrics the same now.
now you will see the ripple affect into the bgp metrics for best path calculation, and are no longer simply based on a RID tie-breaker
show route 10.146.41.10 logical-system LS-MC extensive | grep metric
and now your best path active/inactive reason will change...
show route 10.146.41.10 logical-system LS-MC extensive | grep reason
In your simple 3-node-triangle network, your remote PE "LS-UW" may not see a change since the underlying default ospf metrics are 1, but now if you change one of those ospf interfaces , you could then see how to alter the best path calculation using the igp metric. there are others ways of traffic engineering, but this is a simply way to alter it and see the dependencies and points of influence
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 metric 2
having dual route reflector hub architecture is wonderful for redundancy and fault tolerance, and, I'll add, for maintenance activities which may/will cause bgp neighbors to bounce. adding new address families for growth or new technologies (evpn, l2vpn, inet6) will cause a neighbor session to flap, but don't worry since the other rr neighbor connection will stay up and you should not have an outage. very nice.
btw, i did a video about this. Maybe it will help you and others...
"juniper and cisco i-bgp scalability using dual route reflectors"
https://youtu.be/J4dmmpat9ZI
------------------------------
- Aaron
Original Message:
Sent: 03-12-2023 14:32
From: gongyayu
Subject: routing questions
I have the following:
root@LS-UW# run show route 10.146.41.10 logical-system LS-MC MC.inet.0: 35 destinations, 118 routes (35 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both10.146.41.0/24 *[BGP/170] 00:11:23, localpref 160, from 10.220.1.2 AS path: 64851 64874 64850 64870 I, validation-state: unverified > to 10.55.1.0 via ge-0/0/6.5, Push 302592 [BGP/170] 00:37:04, localpref 160, from 10.220.1.2 AS path: 64851 64874 64850 64870 I, validation-state: unverified > to 10.55.2.0 via ge-0/0/7.5, Push 302576 [BGP/170] 00:37:03, localpref 100, from 10.220.1.1 AS path: 64851 64874 64850 64870 I, validation-state: unverified > to 10.55.1.0 via ge-0/0/6.5, Push 302592 [BGP/170] 00:10:59, localpref 100, from 10.220.1.1 AS path: 64851 64874 64850 64870 I, validation-state: unverified > to 10.55.2.0 via ge-0/0/7.5, Push 302576
I expect to see two, but I have four here. why the same route appears twice?
Here are the details for the first two
root@LS-UW# run show route 10.146.41.10 logical-system LS-MC extensive MC.inet.0: 35 destinations, 118 routes (35 active, 0 holddown, 0 hidden)10.146.41.0/24 (4 entries, 1 announced)TSI:KRT in-kernel 10.146.41.0/24 -> {indirect(1048577)} *BGP Preference: 170/-161 Route Distinguisher: 10.220.1.1:1 Next hop type: Indirect Address: 0x9758a3c Next-hop reference count: 145 Source: 10.220.1.2 Next hop type: Router, Next hop index: 717 Next hop: 10.55.1.0 via ge-0/0/6.5, selected Label operation: Push 302592 Label TTL action: prop-ttl Load balance label: Label 302592: None; Session Id: 0x100003 Protocol next hop: 10.220.1.1 Label operation: Push 302592 Label TTL action: prop-ttl Load balance label: Label 302592: None; Indirect next hop: 0x9780110 1048577 INH Session ID: 0x100007 State: <Secondary Active Int Ext ProtectionCand> Local AS: 64850 Peer AS: 64850 Age: 12:24 Metric2: 1 Validation State: unverified Task: BGP_64850.10.220.1.2+59509 Announcement bits (1): 0-KRT AS path: 64851 64874 64850 64870 I (Originator) Cluster list: 12.12.12.12 Originator ID: 10.220.1.1 Communities: 64850:20150 64874:1 target:64850:10 Import Accepted VPN Label: 302592 Localpref: 160 Router ID: 10.220.1.2 Primary Routing Table bgp.l3vpn.0 Indirect next hops: 1 Protocol next hop: 10.220.1.1 Metric: 1 Label operation: Push 302592 Label TTL action: prop-ttl Load balance label: Label 302592: None; Indirect next hop: 0x9780110 1048577 INH Session ID: 0x100007 Indirect path forwarding next hops: 1 Next hop type: Router Next hop: 10.55.1.0 via ge-0/0/6.5 Session Id: 0x100003 10.220.1.1/32 Originating RIB: inet.3 Metric: 1 Node path count: 1 Forwarding nexthops: 1 Nexthop: 10.55.1.0 via ge-0/0/6.5 BGP Preference: 170/-161 Route Distinguisher: 10.220.1.2:2 Next hop type: Indirect Address: 0x9758d30 Next-hop reference count: 120 Source: 10.220.1.2 Next hop type: Router, Next hop index: 716 Next hop: 10.55.2.0 via ge-0/0/7.5, selected Label operation: Push 302576 Label TTL action: prop-ttl Load balance label: Label 302576: None; Session Id: 0x100001 Protocol next hop: 10.220.1.2 Label operation: Push 302576 Label TTL action: prop-ttl Load balance label: Label 302576: None; Indirect next hop: 0x9780220 1048576 INH Session ID: 0x100006 State: <Secondary NotBest Int Ext ProtectionCand> Inactive reason: Not Best in its group - Router ID Local AS: 64850 Peer AS: 64850 Age: 38:05 Metric2: 1 Validation State: unverified Task: BGP_64850.10.220.1.2+59509 AS path: 64851 64874 64850 64870 I Communities: 64850:20150 64874:1 target:64850:10 Import Accepted VPN Label: 302576 Localpref: 160 Router ID: 10.220.1.2 Primary Routing Table bgp.l3vpn.0 Indirect next hops: 1 Protocol next hop: 10.220.1.2 Metric: 1 Label operation: Push 302576 Label TTL action: prop-ttl Load balance label: Label 302576: None; Indirect next hop: 0x9780220 1048576 INH Session ID: 0x100006 Indirect path forwarding next hops: 1 Next hop type: Router Next hop: 10.55.2.0 via ge-0/0/7.5 Session Id: 0x100001 10.220.1.2/32 Originating RIB: inet.3 Metric: 1 Node path count: 1 Forwarding nexthops: 1 Nexthop: 10.55.2.0 via ge-0/0/7.5
What is the Address in hex ?
how to interpret Next hop index ?
root@LS-UW# run show route receive-protocol bgp 10.220.1.2 logical-system LS-MC 10.146.40.0 MC.inet.0: 35 destinations, 118 routes (35 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path* 10.146.40.0/24 10.220.1.1 100 64851 64874 64850 64870 I 10.220.1.2 100 64851 64874 64850 64870 Iroot@LS-UW# run show route receive-protocol bgp 10.220.1.2 logical-system LS-MC 10.146.40.0 extensive MC.inet.0: 35 destinations, 118 routes (35 active, 0 holddown, 0 hidden)* 10.146.40.0/24 (4 entries, 1 announced) Import Accepted Route Distinguisher: 10.220.1.1:1 VPN Label: 302592 Nexthop: 10.220.1.1 Localpref: 100 AS path: 64851 64874 64850 64870 I (Originator) Cluster list: 12.12.12.12 Originator ID: 10.220.1.1 Communities: 64850:20150 64874:1 target:64850:10 Import Accepted Route Distinguisher: 10.220.1.2:2 VPN Label: 302576 Nexthop: 10.220.1.2 Localpref: 100 AS path: 64851 64874 64850 64870 I Communities: 64850:20150 64874:1 target:64850:10
Why does the router receive two routes ?
thanks so much !