Hi Guys,
Just while doing some labbing I noticed that when 'auto-export' feature is used to leak VPN routes from one VRF to another(which seems to work just fine), these route are not advertised to remote PE routers via MP-BGP??
This is effectively exactly same thing as shown here -> https://www.saidvandeklundert.nl/hub-and-spoke-vpn-on-mx-with-1-interface.php
However in my example the routes that are leaked using auto-export feature are never redistributed to other PE routers. I need to say that I am using logical systems and logical interfaces but I have never run into any L3VPN limiations like that before so don't see if that could be some sort of limitation.
Why are the routes not redistributed, its super weird as when I configure sample static route in same VRF it is redistributed via MP-BGP instantly and visible on all relevant router in bgp.l3vpn + VRF tables, so that verifies RT must be correct.
See below for some more specific configuration regarding my setup, let me know if more is needed and I will add to the thread.
Main VRF that learns the routes from other SPOKES and CE-HUB router (default route advertised from CE-HUB):
r4@MX480_LAB_1_RE0:R4> show configuration routing-instances BGP-HUB-SPOKE-1-INT->HUB | display set
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB instance-type vrf
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB interface lt-0/0/10.6
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB vrf-import SPOKE-IN
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB vrf-export HUB-OUT
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB no-vrf-advertise
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB routing-options auto-export
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB protocols bgp group CE4 type external
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB protocols bgp group CE4 peer-as 65020
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB protocols bgp group CE4 as-override
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB protocols bgp group CE4 neighbor 172.16.0.22
VRF to which default route is leaked so it can be redistributed to other sites vie MP-BGP:
r4@MX480_LAB_1_RE0:R4> show configuration routing-instances BGP-HUB-SPOKE-1-INT->HUB-2 | display set
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB-2 instance-type vrf
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB-2 vrf-target target:65412:100
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB-2 vrf-table-label
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB-2 routing-options static route 1.1.1.1/32 next-table BGP-HUB-SPOKE-1-INT->HUB.inet.0 <- sample static route to test general MP-BGP + RT, this gets propagated wihtout any issues
set logical-systems R4 routing-instances BGP-HUB-SPOKE-1-INT->HUB-2 routing-options auto-export
r4@MX480_LAB_1_RE0:R4> show configuration policy-options policy-statement HUB-OUT | display set
set logical-systems R4 policy-options policy-statement HUB-OUT term 1 from protocol bgp
set logical-systems R4 policy-options policy-statement HUB-OUT term 1 from protocol direct
set logical-systems R4 policy-options policy-statement HUB-OUT term 1 from route-filter 0.0.0.0/0 exact
set logical-systems R4 policy-options policy-statement HUB-OUT term 1 from route-filter 172.16.0.20/30 exact
set logical-systems R4 policy-options policy-statement HUB-OUT term 1 then community add HUB
set logical-systems R4 policy-options policy-statement HUB-OUT term 1 then accept
r4@MX480_LAB_1_RE0:R4> show configuration policy-options policy-statement SPOKE-IN | display set
set logical-systems R4 policy-options policy-statement SPOKE-IN term 1 from protocol bgp
set logical-systems R4 policy-options policy-statement SPOKE-IN term 1 from community SPOKE
set logical-systems R4 policy-options policy-statement SPOKE-IN term 1 then accept
r4@MX480_LAB_1_RE0:R4> show configuration policy-options community HUB | display set
set logical-systems R4 policy-options community HUB members target:65412:100
r4@MX480_LAB_1_RE0:R4> show configuration policy-options community SPOKE | display set
set logical-systems R4 policy-options community SPOKE members target:65412:200
and view from inside VRF routing table that the routes are leaked into, from this table I would expect routes to be exported into bgp.l3vpn table and to other PE routers via MP-BGP, but somehow doesn't work for leaked prefiexes:
r4@MX480_LAB_1_RE0:R4> show route table BGP-HUB-SPOKE-1-INT->HUB-2 detail
BGP-HUB-SPOKE-1-INT->HUB-2.inet.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
0.0.0.0/0 (1 entry, 1 announced)
*BGP Preference: 170/-101
Next hop type: Router, Next hop index: 2178
Address: 0xa6017f4
Next-hop reference count: 4
Source: 172.16.0.22
Next hop: 172.16.0.22 via lt-0/0/10.6, selected
Session Id: 0x2f9
State: <Secondary Active Ext>
Peer AS: 65020
Age: 1:24:00
Validation State: unverified
Task: BGP_65020.172.16.0.22
Announcement bits (1): 0-KRT
AS path: 65020 I
Communities: target:65412:100
Accepted
Localpref: 100
Router ID: 172.16.0.22
Primary Routing Table BGP-HUB-SPOKE-1-INT->HUB.inet.0
1.1.1.1/32 (1 entry, 1 announced)
*Static Preference: 5
Next table: BGP-HUB-SPOKE-1-INT->HUB.inet.0
Next-hop index: 1957
Address: 0xa601ae8
Next-hop reference count: 5
State: <Active Int Ext>
Age: 55:39
Validation State: unverified
Task: RT
Announcement bits (2): 0-KRT 1-rt-export
AS path: I
172.16.0.20/30 (1 entry, 1 announced)
*Direct Preference: 0
Next hop type: Interface, Next hop index: 0
Address: 0xa5fe224
Next-hop reference count: 2
Next hop: via lt-0/0/10.6, selected
State: <Secondary Active Int>
Age: 1:24:04
Validation State: unverified
Task: IF
Announcement bits (1): 0-KRT
AS path: I
Communities: target:65412:100
Primary Routing Table BGP-HUB-SPOKE-1-INT->HUB.inet.0
Routes are also not present in the local bgp.l3vpn table(except for sample static route):
r4@MX480_LAB_1_RE0:R4> show route table bgp.l3vpn
bgp.l3vpn.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
10.0.3.4:76:1.1.1.1/32
*[Static/5] 01:02:13
to table BGP-HUB-SPOKE-1-INT->HUB.inet.0
Hopefully someone has seen this before at some stage and can advice.
Thanks,
Arthur