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
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.