# 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 <a href="#id-5fb5952b-d700-4c86-9066-dd0a7ce8c5dc" id="id-5fb5952b-d700-4c86-9066-dd0a7ce8c5dc"></a>

```
#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 <a href="#id-9bd8ef8b-661a-4096-9cb5-767870f97c4c" id="id-9bd8ef8b-661a-4096-9cb5-767870f97c4c"></a>

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:

<div align="left"><figure><img src="https://3072390383-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUz2C3GqnZcWhoVL6jfk%2Fuploads%2Fjrd7NgakxNBOHY392sTH%2Fimage.png?alt=media&#x26;token=ea81a081-9fcf-494c-b7cc-11fc9dc94d3e" alt=""><figcaption></figcaption></figure></div>

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

<div align="left"><figure><img src="https://3072390383-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUz2C3GqnZcWhoVL6jfk%2Fuploads%2FIiMZFzrfVqrbtGnXnZs3%2Fimage.png?alt=media&#x26;token=f8e53779-e96f-47b1-b386-c9135340f962" alt=""><figcaption></figcaption></figure></div>

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:

<div align="left"><figure><img src="https://3072390383-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUz2C3GqnZcWhoVL6jfk%2Fuploads%2FWszqjt4W1lJvxE7Jkpw2%2Fimage.png?alt=media&#x26;token=e1687fc1-da73-4b6d-a913-a253954c9ac6" alt=""><figcaption></figcaption></figure></div>

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:

<div align="left"><figure><img src="https://3072390383-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUz2C3GqnZcWhoVL6jfk%2Fuploads%2FcSovN9uf2M2dR1ohXn9f%2Fimage.png?alt=media&#x26;token=fac57189-452e-4a42-89dd-94513f9bd18a" alt=""><figcaption></figcaption></figure></div>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ccie-sp.gitbook.io/ccie-spv5.1-labs/labs/mpls-te/te-tunnel-with-explicit-null.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
