Multicast and MPLS-TE

Load mpls.te.multicast.init.cfg

#IOS-XE
config replace flash:mpls.te.multicast.init.cfg
	
#IOS-XR
configure
load bootflash:mpls.te.multicast.init.cfg
commit replace
y

The PE-CE links for XR13 and XR14 have been added to the global table. PIM is enabled everywhere with CSR9 as the RP. XR13 has joined group 239.1.1.1.

Currently XR14 can ping this group:

RP/0/0/CPU0:XRv14#ping 239.1.1.1 repeat 3 source 10.8.14.14 timeout 1
Sat Oct 21 11:35:59.080 UTC
Type escape sequence to abort.
Sending 3, 100-byte ICMP Echos to 239.1.1.1, timeout is 1 seconds:

Reply to request 0 from 10.11.13.13, 39 ms
Reply to request 1 from 10.11.13.13, 9 ms
Reply to request 2 from 10.11.13.13, 9 ms

However, when the operator adds a bidircetional tunnel between CSR8 and XR11 with autoroute announce, multicast breaks. Add the bidirectional tunnel and explain the issue. Find a way to fix it.

Answer

#CSR8
interface Tunnel10
 ip unnumbered Loopback0
 tunnel mode mpls traffic-eng
 tunnel destination 11.11.11.11
 tunnel mpls traffic-eng autoroute announce
 tunnel mpls traffic-eng path-option 1 dynamic
!
router ospf 1
 mpls traffic-eng multicast-intact

#XR11
interface tunnel-te0
 ipv4 unnumbered Loopback0
 autoroute announce
 !
 destination 8.8.8.8
 path-option 1 dynamic
!
router ospf 1
 mpls traffic-eng multicast-intact

Explanation

The problem is that the RPF check on XR11 fails when you add the TE tunnel. This is because the destination 10.8.14.14 is now via Tunnel-TE0 in the RIB. A TE tunnel never receives traffic, so multicast will always be broken for destinations that are via a TE tunnel. (Plus the TE tunnel does not have a valid PIM neighbor to use as the RPF neighbor).

We can verify this on XR11 with the following show command:

To fix this, we use the special command mpls traffic-eng multicast-intact under the IGP. This forces the router to use the IGP path as the RPF check, instead of using the TE route from the RIB. The addition of TE tunnels will not affect multicast’s SPF check.

#XR11
router ospf 1
 mpls traffic-eng multicast-intact

Now XR11 has the RPF check as via the physical interface, even though the unicast route is still via the TE tunnel:

Traffic is working again:

Last updated