Hello people
Need help understanding below scenario I have bumped into on BGP route selection
The setup is such that there are two route reflectors (P routers) each of the route reflectors has a direct connection to the PE1 which is an originator of a certain inet-vpn route for L3MPLS (default route). This PE1 is a route reflector client of both route reflectors. Another router PE2 is also a route reflector client of both route reflectors. The PE2 is also participating in the VRF PE1 is originating routes for. PE2 receives the default route from both route reflectors and it chooses the best route based on peer address IP (update source).
Question is why choose the route based on update source instead of router ID with reference to the best route selection process in JunOS since the routes have same local preference and all the other parameters match except for router-id and peer address.
The default route entries received from route reflectors on PE2
PE2> show route table bgp.l3vpn.0 rd-prefix 184:191:0/0 exact extensive | match "preference|state|reason|protocol next|source|origin"
*BGP Preference: 170/-101
Source: 10.172.192.29
Protocol next hop: 10.172.192.31
State: <Active Int Ext>
AS path: 64512 I (Originator)
Originator ID: 10.172.192.31
Router ID: 10.172.192.29
Protocol next hop: 10.172.192.31 Metric: 1
10.172.192.31/32 Originating RIB: inet.3
BGP Preference: 170/-101
Source: 10.172.192.35
Protocol next hop: 10.172.192.31
State: <NotBest Int Ext>
Inactive reason: Not Best in its group - Update source
AS path: 64512 I (Originator)
Originator ID: 10.172.192.31
Router ID: 10.172.192.35
Protocol next hop: 10.172.192.31 Metric: 1
10.172.192.31/32 Originating RIB: inet.3
PE2 prefers the route from P1 (10.172.192.29) for an active route while the route from P2(10.172.192.35) is inactive with Inactive reason: Not Best in its group - Update source
My expectation was P1 to be active and P2 to be inactive with Inactive reason: Not Best in its group - Router ID as the router Id is analysed first prior to peer address (update source) in the route selection process
PE2 to PE1
PE2> show route 10.172.192.31 exact | match "[0-9]"
inet.0: 14977 destinations, 41513 routes (14975 active, 0 holddown, 3 hidden)
10.172.192.31/32 *[IS-IS/18] 1w0d 07:49:17, metric 210
> to 172.198.0.198 via xe-0/0/1.0
inet.3: 87 destinations, 87 routes (87 active, 0 holddown, 0 hidden)
10.172.192.31/32 *[LDP/20] 06:23:52, metric 1
> to 172.198.0.198 via xe-0/0/1.0, Push 538432
PE2 to P1
PE2> show route 10.172.192.29 exact | match "[0-9]"
inet.0: 14977 destinations, 41513 routes (14975 active, 0 holddown, 3 hidden)
10.172.192.29/32 *[IS-IS/18] 1w0d 07:49:11, metric 200
> to 172.198.0.198 via xe-0/0/1.0
inet.3: 87 destinations, 87 routes (87 active, 0 holddown, 0 hidden)
10.172.192.29/32 *[LDP/20] 06:23:46, metric 1
> to 172.198.0.198 via xe-0/0/1.0, Push 538416
PE2 to P2
PE2> show route 10.172.192.35 exact | match "[0-9]"
inet.0: 14977 destinations, 41513 routes (14975 active, 0 holddown, 3 hidden)
10.172.192.35/32 *[IS-IS/18] 7w6d 21:57:48, metric 100
> to 172.198.1.57 via xe-0/0/0.0
inet.3: 87 destinations, 87 routes (87 active, 0 holddown, 0 hidden)
10.172.192.35/32 *[LDP/20] 06:23:57, metric 1
> to 172.198.1.57 via xe-0/0/0.0
Thanks