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