TE Tunnel with Explicit-Null

Load mpls.te.base.config.with.ospf.cfg

#IOS-XE
config replace flash:mpls.te.base.config.with.ospf.cfg

#IOS-XR
configure
load bootflash:mpls.te.base.config.with.ospf.cfg
commit replace
y

Configure bi-directional TE tunnels between CSR8 and XR11 that takes the path:

  • CSR8

  • CSR9

  • XR12

  • XR11

Configuring the least number of routers, ensure that an explicit-null is used at the penultimate hop for both TE tunnels.

Answer

#R9
mpls traffic-eng signalling interpret explicit-null verbatim

#R8
mpls traffic-eng signalling advertise explicit-null
!
ip explicit-path name EP_TO_XR11
 next-address 9.9.9.9
 next-address 12.12.12.12
!
int tun1
 description TO_XR11
 ip unn lo0
 tunnel dest 11.11.11.11
 tunnel mode mpls traffic-eng
 tunnel mpls traffic-eng path-option 1 explicit name EP_TO_XR11

#XR11
explicit-path name EP_TO_R8
 index 1 next-address strict ipv4 unicast 12.12.12.12
 index 2 next-address strict ipv4 unicast 9.9.9.9
 index 3 next-address strict ipv4 unicast 8.8.8.8
!
int tunnel-te1
 description TO_R8
 ip unn lo0
 destination 8.8.8.8
 path-option 1 explicit name EP_TO_R8
!
mpls traffic-eng
 signalling advertise explicit-null

Explanation

By default, both IOS-XE and IOS-XR tailends advertise an implicit-null to their previous hop (phop). To change this, we must globally configure the tailends to advertise an explicit-null instead.

#R8
mpls traffic-eng signalling advertise explicit-null

#XR11
mpls traffic-eng
 signalling advertise explicit-null

However, on IOS-XE, an explicit-null is interpretted as implicit-null, and a Pop action will still happen. This means that no matter what you advertise on the tailend router, the IOS-XE phop will always do a Pop action. We can see this on R9 before adding the “interpret” command:

R9 has a “Pop” action even though R8 is advertising exp-null for the tunnel for which is it acting as tailend:

To change this, we must use the following command on R9:

#R9
mpls traffic-eng signalling interpret explicit-null verbatim

Note that this change is disruptive. R9 sends a PathError message up to XR11, prompting XR11 to re-signal the tunnel. R9 is now using explicit-null:

IOS-XR already interprets exp-null as exp-null. For this reason, no configuration on XR12 is necessary. It is already using exp-null as the outgoing label for the tunnel for which XR11 is the tailend:

Last updated