Hi!
I've recently started playing around with VPNv4 and VRFs on Mikrotik by configuring some P, PE and CPE routers.
This is how my setup looks like
I've configured the following
- OSPF as IGP in the MPLS core (P1, P2, PE1 and PE2)
- MPLS on all interfaces not facing customers (P1, P2, PE1 and PE2)
- P1 as BGP route reflector with VPNv4 address family, which is then peering with PE1 and PE2
- VRF on PE1 and PE2 interfaces facing the customer (RD 1:1, import 1:1 export 1:1)
- OSPF on the VRF interfaces which redistributes BGP routes (VPNv4)
- OSPF on CPE1-1 and CPE1-2
I can see the routes showing up on each CPE and they can ping each others internal network (192.168.10.1 and 192.168.20.1). At first when I did a traceroute between CPE1-1 and CPE1-2 the first 4 jumps failed, and on the 5th it arrived (propaget TTL is enabled).
[admin@CPE1-1] > tool trace 192.168.20.1
# ADDRESS LOSS SENT LAST AVG BEST WORST STD-DEV STATUS
1 100% 6 timeout
2 100% 6 timeout
3 100% 6 timeout
4 100% 5 timeout
5 192.168.20.1 0% 5 8.8ms 7 3.8 8.8 1.9
It took me a while to figure it out, that the customer facing networks on PE1 and PE2 (10.12.0.0/24 and 10.56.0.0/24) were not in the main routing table, they were in the VRFs routing table, and because of this the lookup failed on both PE routers. I added a static route for the networks on each PE in their main routing table and now I can see the PE routers in the traceroute.
[admin@CPE1-1] > tool trace 192.168.20.1
# ADDRESS LOSS SENT LAST AVG BEST WORST STD-DEV STATUS
1 10.12.0.2 0% 2 3ms 2.1 1.2 3 0.9
2 100% 2 timeout
3 100% 1 timeout
4 10.45.0.5 0% 1 7.3ms 7.3 7.3 7.3 0
5 192.168.20.1 0% 1 10.6ms 10.6 10.6 10.6 0
Is it correct to add static routes like this?
As you can see there are 2 jumps that fails. I guess it's where it's going through my MPLS core? Why do they fail, and why wont the customer see the MPLS labels?
If I do a traceroute again, but with porpagate TTL disabled these 2 jumps disaperes as show below
[admin@CPE1-1] > tool trace 192.168.20.1
# ADDRESS LOSS SENT LAST AVG BEST WORST STD-DEV STATUS
1 10.12.0.2 0% 3 1ms 1.3 1 1.6 0.2
2 10.45.0.5 0% 3 3.9ms 4.1 3.9 4.2 0.1
3 192.168.20.1 0% 3 6.3ms 6.7 5.7 8.2 1.1
If I do a traceroute from PE1 to PE2 (both to the loopback and far end interface, and propagate TTL enabled again) I can see the MPLS labels
[admin@PE1] > tool traceroute 5.5.5.5
# ADDRESS LOSS SENT LAST AVG BEST WORST STD-DEV STATUS
1 10.23.0.3 0% 4 2.6ms 4.4 2.6 6.4 1.5 <MPLS:L=47,E=0>
2 10.34.0.4 0% 4 2.9ms 3.9 2.9 4.7 0.8 <MPLS:L=40,E=0>
3 5.5.5.5 0% 4 2.4ms 4.3 2.4 7.2 2
[admin@PE1] > tool traceroute 10.56.0.5
# ADDRESS LOSS SENT LAST AVG BEST WORST STD-DEV STATUS
1 10.23.0.3 0% 4 2.8ms 3 2.8 3.2 0.2 <MPLS:L=52,E=0>
2 10.34.0.4 0% 4 2.9ms 2.8 2.4 3.3 0.4 <MPLS:L=44,E=0>
3 10.56.0.5 0% 4 2.5ms 2.7 2.5 2.9 0.2
So again, why wont the customer see the MPLS labels?