Basic TE Tunnel w/ ISIS

Load mpls.te.init.with.isis.cfg or mpls.te.init.with.isis.and.rsvp.cfg (to skip enabling RSVP-TE)

#IOS-XE
config replace flash:mpls.te.init.with.isis.cfg
! or
config replace flash:mpls.te.init.with.isis.and.rsvp.cfg

#IOS-XR
configure
load bootflash:mpls.te.init.with.isis.cfg
! or
load bootflash:mpls.te.init.with.isis.and.rsvp.cfg
commit replace
y

The basic IP addresses, L3VPN between XRv14 and XRv13, and ISIS has been pre-configured.

Currently traffic between XRv14 and XRv13 is not working because LDP is not running in the core. Configure an RSVP tunnel on the PEs, CSR8 and XRv11, that takes the following path (both forward and reverse):

  • CSR8

  • CSR9

  • CSR2

  • CSR10

  • XRv11

Answer

This lab is the same as the previous lab, except ISIS is used instead of OSPF. First we must enable MPLS-TE globally and per-link, and RSVP per-link. This step is skipped if you loaded mpls.te.init.with.isis.and.rsvp.cfg

#CSR1
mpls traffic-eng tunnels
!
int GigabitEthernet2.513
 mpls traffic-eng tunnels
 ip rsvp bandwidth 1000000
int GigabitEthernet2.514
 mpls traffic-eng tunnels
 ip rsvp bandwidth 1000000
int GigabitEthernet2.516
 mpls traffic-eng tunnels
 ip rsvp bandwidth 1000000
int GigabitEthernet2.517
 mpls traffic-eng tunnels
 ip rsvp bandwidth 1000000
int GigabitEthernet2.518
 mpls traffic-eng tunnels
 ip rsvp bandwidth 1000000
int GigabitEthernet2.519
 mpls traffic-eng tunnels
 ip rsvp bandwidth 1000000

#XRv11
mpls traffic-eng
 int Gi0/0/0/0.501
 int Gi0/0/0/0.512
 int Gi0/0/0/0.531
 int Gi0/0/0/0.551
!
rsvp
 int Gi0/0/0/0.501
  bandwidth 1 g
 int Gi0/0/0/0.512
  bandwidth 1 g
 int Gi0/0/0/0.531
  bandwidth 1 g
 int Gi0/0/0/0.551
  bandwidth 1 g
!
mpls ldp

Now we enable MPLS-TE on the IGP (ISIS)

#CSR1
router isis 132
 mpls traffic-eng router-id lo0
 mpls traffic-eng level-2

#XRv11
router isis 132
 add ipv4 
  mpls traffic-eng router-id lo0
  mpls traffic-eng level-2-only

We can use show mpls traffic-eng topology br on any router to verify that all routers have advertised their TE attributes and populated the TED.

Now we configure the TE tunnels as before.

#CSR8
ip explicit-path name CSR8-CSR9-CSR2-CSR10-XRv11 enable
 index 1 next-address loose 9.9.9.9
 index 2 next-address loose 2.2.2.2
 index 3 next-address loose 10.10.10.10
!
interface Tunnel0
 description CSR8 TO XRv11
 ip unnumbered Loopback0
 tunnel mode mpls traffic-eng
 tunnel destination 11.11.11.11
 tunnel mpls traffic-eng path-option 1 explicit name CSR8-CSR9-CSR2-CSR10-XRv11
 tunnel mpls traffic-eng autoroute announce

#XRv11
explicit-path name XRv11-CSR10-CSR2-CSR9-CSR8
 index 1 next-address loose ipv4 unicast 10.10.10.10
 index 2 next-address loose ipv4 unicast 2.2.2.2
 index 3 next-address loose ipv4 unicast 9.9.9.9
!
interface tunnel-te0
 description XRv11 TO CSR8
 ipv4 unnumbered Loopback0
 autoroute announce
 !
 destination 8.8.8.8
 path-option 1 explicit name XRv11-CSR10-CSR2-CSR9-CSR8

Tracing between XRv13 and XRv14 verifies the path is correct:

Theory

ISIS was easily extended to support MPLS-TE thanks to its implementation of TLVs. MPLS-TE uses sub-TLVs within the extended IS reachability TLV (22). This requires support for wide-metrics to be enabled.

We can see this in the ISIS LSPDB using the verbose keyword:

You can also see this same information with show isis mpls traffic-eng advertisements.

A pcap of the TLVs that enable MPLS-TE is shown below. The Extended IS Reachability TLV has serveral sub TLVs that advertise the TE metric, affinity, and bandwidth of each link.

Last updated