Lesson Contents
MPLS Traffic Engineering (TE) autoroute is one of the routing options you can use to send traffic down an MPLS TE tunnel. When you create a TE tunnel, it connects but won’t be used until you configure routing.
With physical interfaces or GRE tunnels, you have to enable an IGP on the interface to establish a neighbor adjacency and to advertise the tunnel interface. We don’t do this with TE tunnels because:
- TE tunnels are unidirectional. For an IGP neighbor adjacency, you need to be able to send and receive traffic on the tunnel.
- Originally, TE tunnels were only used within an OSPF or ISIS area. Since these IGPs know what the entire area’s topology looks like, it doesn’t make sense to advertise any information through the tunnel. Nowadays, it is possible to configure interarea TE tunnels, though.
Autoroute is a dynamic option to use the TE tunnel. Autoroute announce modifies the shortest path first (SPF) algorithm by adding the TE tunnel to the SPF tree. When the IGP runs SPF and encounters a destination on or behind the tailend router, we install the TE tunnel as the next hop. These routes are IGP routes, but they are not advertised to other routers. This is only a local change to the routing table.
It is possible to advertise these routes to other routers with forwarding adjacency.
Configuration
Let’s see how to configure autoroute announce. This is the topology I’ll use:
Routers PE1, P1, P2, P3, and PE2 run MPLS TE. There is a tunnel where PE1 is the headend and PE2 is the tailend router. I use IOSv Software (VIOS-ADVENTERPRISEK9-M), Version 15.9(3)M4.
Configurations
Want to take a look for yourself? Here you will find the startup configuration of each device.
CE1
hostname CE1
!
ip cef
!
interface Loopback0
ip address 1.1.1.1 255.255.255.255
ip router isis
isis circuit-type level-2-only
!
interface GigabitEthernet0/0
ip address 192.168.12.1 255.255.255.0
ip router isis
isis circuit-type level-2-only
!
router isis
net 49.0001.0001.0001.0001.0001.00
is-type level-2-only
metric-style wide
!
end
CE2
hostname CE2
!
ip cef
!
interface Loopback0
ip address 7.7.7.7 255.255.255.255
ip router isis
isis circuit-type level-2-only
!
interface GigabitEthernet0/0
ip address 192.168.67.7 255.255.255.0
ip router isis
isis circuit-type level-2-only
!
router isis
net 49.0001.0007.0007.0007.0007.00
is-type level-2-only
metric-style wide
!
end
P1
hostname P1
!
ip cef
!
mpls traffic-eng tunnels
!
interface Loopback0
ip address 3.3.3.3 255.255.255.255
ip router isis
isis circuit-type level-2-only
!
interface GigabitEthernet0/0
ip address 192.168.23.3 255.255.255.0
ip router isis
mpls traffic-eng tunnels
mpls ip
isis circuit-type level-2-only
ip rsvp bandwidth 1000000
!
interface GigabitEthernet0/1
ip address 192.168.36.3 255.255.255.0
ip router isis
mpls traffic-eng tunnels
mpls ip
isis circuit-type level-2-only
ip rsvp bandwidth 1000000
!
router isis
mpls traffic-eng router-id Loopback0
mpls traffic-eng level-2
net 49.0001.0003.0003.0003.0003.00
is-type level-2-only
metric-style wide
!
mpls ldp router-id Loopback0 force
!
end
P2
hostname P2
!
ip cef
!
mpls traffic-eng tunnels
!
interface Loopback0
ip address 4.4.4.4 255.255.255.255
ip router isis
isis circuit-type level-2-only
!
interface GigabitEthernet0/0
ip address 192.168.24.4 255.255.255.0
ip router isis
mpls traffic-eng tunnels
mpls ip
isis circuit-type level-2-only
ip rsvp bandwidth 1000000
!
interface GigabitEthernet0/1
ip address 192.168.45.4 255.255.255.0
ip router isis
mpls traffic-eng tunnels
mpls ip
isis circuit-type level-2-only
ip rsvp bandwidth 1000000
!
router isis
mpls traffic-eng router-id Loopback0
mpls traffic-eng level-2
net 49.0001.0004.0004.0004.0004.00
is-type level-2-only
metric-style wide
!
mpls ldp router-id Loopback0 force
!
end
P3
hostname P3
!
ip cef
!
mpls traffic-eng tunnels
!
interface Loopback0
ip address 5.5.5.5 255.255.255.255
ip router isis
isis circuit-type level-2-only
!
interface GigabitEthernet0/0
ip address 192.168.56.5 255.255.255.0
ip router isis
mpls traffic-eng tunnels
mpls ip
isis circuit-type level-2-only
ip rsvp bandwidth 1000000
!
interface GigabitEthernet0/1
ip address 192.168.45.5 255.255.255.0
ip router isis
mpls traffic-eng tunnels
mpls ip
isis circuit-type level-2-only
ip rsvp bandwidth 1000000
!
router isis
mpls traffic-eng router-id Loopback0
mpls traffic-eng level-2
net 49.0001.0005.0005.0005.0005.00
is-type level-2-only
metric-style wide
!
mpls ldp router-id Loopback0 force
!
end
PE1
hostname PE1
!
ip cef
!
mpls traffic-eng tunnels
mpls traffic-eng logging lsp setups
mpls traffic-eng logging lsp teardowns
mpls traffic-eng reoptimize events link-up
!
interface Loopback0
ip address 2.2.2.2 255.255.255.255
ip router isis
isis circuit-type level-2-only
!
interface Tunnel1
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 6.6.6.6
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 750
tunnel mpls traffic-eng path-option 1 dynamic
no routing dynamic
!
interface GigabitEthernet0/0
ip address 192.168.12.2 255.255.255.0
ip router isis
isis circuit-type level-2-only
!
interface GigabitEthernet0/1
ip address 192.168.23.2 255.255.255.0
ip router isis
mpls traffic-eng tunnels
mpls ip
isis circuit-type level-2-only
ip rsvp bandwidth 1000000
!
interface GigabitEthernet0/2
ip address 192.168.24.2 255.255.255.0
ip router isis
mpls traffic-eng tunnels
mpls ip
isis circuit-type level-2-only
ip rsvp bandwidth 1000000
!
router isis
mpls traffic-eng router-id Loopback0
mpls traffic-eng level-2
net 49.0001.0002.0002.0002.0002.00
is-type level-2-only
metric-style wide
!
mpls ldp router-id Loopback0 force
!
end
PE2
hostname PE2
!
ip cef
!
mpls traffic-eng tunnels
!
interface Loopback0
ip address 6.6.6.6 255.255.255.255
ip router isis
isis circuit-type level-2-only
!
interface GigabitEthernet0/0
ip address 192.168.67.6 255.255.255.0
ip router isis
isis circuit-type level-2-only
!
interface GigabitEthernet0/1
ip address 192.168.36.6 255.255.255.0
ip router isis
mpls traffic-eng tunnels
mpls ip
isis circuit-type level-2-only
ip rsvp bandwidth 1000000
!
interface GigabitEthernet0/2
ip address 192.168.56.6 255.255.255.0
ip router isis
mpls traffic-eng tunnels
mpls ip
isis circuit-type level-2-only
ip rsvp bandwidth 1000000
!
router isis
mpls traffic-eng router-id Loopback0
mpls traffic-eng level-2
net 49.0001.0006.0006.0006.0006.00
is-type level-2-only
metric-style wide
!
mpls ldp router-id Loopback0 force
!
end
Let’s check our tunnel:
PE1#show mpls traffic-eng tunnels Tunnel 1
Name: PE1_t1 (Tunnel1) Destination: 6.6.6.6
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 1, type dynamic (Basis for Setup, path weight 20)
Config Parameters:
Bandwidth: 750 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF
Metric Type: TE (default)
AutoRoute: enabled LockDown: disabled Loadshare: 750 bw-based
auto-bw: disabled
Active Path Option Parameters:
State: dynamic path option 1 is active
BandwidthOverride: disabled LockDown: disabled Verbatim: disabled
InLabel : -
OutLabel : GigabitEthernet0/1, 26
RSVP Signalling Info:
Src 2.2.2.2, Dst 6.6.6.6, Tun_Id 1, Tun_Instance 18
RSVP Path Info:
My Address: 192.168.23.2
Explicit Route: 192.168.23.3 192.168.36.3 192.168.36.6 6.6.6.6
Record Route: NONE
Tspec: ave rate=750 kbits, burst=1000 bytes, peak rate=750 kbits
RSVP Resv Info:
Record Route: NONE
Fspec: ave rate=750 kbits, burst=1000 bytes, peak rate=750 kbits
Shortest Unconstrained Path Info:
Path Weight: 20 (TE)
Explicit Route: 192.168.23.2 192.168.23.3 192.168.36.3 192.168.36.6
6.6.6.6
History:
Tunnel:
Time since created: 6 days, 21 hours, 41 minutes
Time since path change: 6 days, 21 hours, 41 minutes
Number of LSP IDs (Tun_Instances) used: 18
Current LSP:
Uptime: 6 days, 21 hours, 41 minutes
Above, we see the tunnel is connected and goes through P1. Currently, we don’t use it:
PE1#show ip route isis
1.0.0.0/32 is subnetted, 1 subnets
i L2 1.1.1.1 [115/20] via 192.168.12.1, 00:00:07, GigabitEthernet0/0
3.0.0.0/32 is subnetted, 1 subnets
i L2 3.3.3.3 [115/20] via 192.168.23.3, 00:00:07, GigabitEthernet0/1
4.0.0.0/32 is subnetted, 1 subnets
i L2 4.4.4.4 [115/20] via 192.168.24.4, 00:00:07, GigabitEthernet0/2
5.0.0.0/32 is subnetted, 1 subnets
i L2 5.5.5.5 [115/30] via 192.168.24.4, 00:00:07, GigabitEthernet0/2
6.0.0.0/32 is subnetted, 1 subnets
i L2 6.6.6.6 [115/30] via 192.168.23.3, 00:00:01, GigabitEthernet0/1
7.0.0.0/32 is subnetted, 1 subnets
i L2 7.7.7.7 [115/40] via 192.168.23.3, 00:00:01, GigabitEthernet0/1
i L2 192.168.36.0/24 [115/20] via 192.168.23.3, 00:00:01, GigabitEthernet0/1
i L2 192.168.45.0/24 [115/20] via 192.168.24.4, 00:00:07, GigabitEthernet0/2
i L2 192.168.56.0/24 [115/30] via 192.168.24.4, 00:00:01, GigabitEthernet0/2
[115/30] via 192.168.23.3, 00:00:01, GigabitEthernet0/1
i L2 192.168.67.0/24 [115/30] via 192.168.23.3, 00:00:01, GigabitEthernet0/1
In the output above, you only see physical interfaces. Time to enable autoroute:
PE1(config)#interface Tunnel 1
PE1(config-if)#tunnel mpls traffic-eng autoroute announce
Now take another look at the routing table:
PE1#show ip route isis
1.0.0.0/32 is subnetted, 1 subnets
i L2 1.1.1.1 [115/20] via 192.168.12.1, 00:00:28, GigabitEthernet0/0
3.0.0.0/32 is subnetted, 1 subnets
i L2 3.3.3.3 [115/20] via 192.168.23.3, 00:00:28, GigabitEthernet0/1
4.0.0.0/32 is subnetted, 1 subnets
i L2 4.4.4.4 [115/20] via 192.168.24.4, 00:00:28, GigabitEthernet0/2
5.0.0.0/32 is subnetted, 1 subnets
i L2 5.5.5.5 [115/30] via 192.168.24.4, 00:00:28, GigabitEthernet0/2
6.0.0.0/32 is subnetted, 1 subnets
i L2 6.6.6.6 [115/30] via 6.6.6.6, 00:00:23, Tunnel1
7.0.0.0/32 is subnetted, 1 subnets
i L2 7.7.7.7 [115/40] via 6.6.6.6, 00:00:23, Tunnel1
i L2 192.168.36.0/24 [115/20] via 192.168.23.3, 00:00:23, GigabitEthernet0/1
i L2 192.168.45.0/24 [115/20] via 192.168.24.4, 00:00:28, GigabitEthernet0/2
i L2 192.168.56.0/24 [115/30] via 192.168.24.4, 00:00:23, GigabitEthernet0/2
[115/30] via 6.6.6.6, 00:00:23, Tunnel1
i L2 192.168.67.0/24 [115/30] via 6.6.6.6, 00:00:23, Tunnel1
We now see that all destinations on or behind the tailend router are routed through the tunnel interface. A quicker way to see what destinations are routed through the tunnel is show mpls forwarding-table
:
PE1#show mpls forwarding-table
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
16 No Label 1.1.1.1/32 0 Gi0/0 192.168.12.1
17 Pop Label 4.4.4.4/32 0 Gi0/2 192.168.24.4
18 Pop Label 192.168.45.0/24 0 Gi0/2 192.168.24.4
19 22 5.5.5.5/32 0 Gi0/2 192.168.24.4
20 23 192.168.56.0/24 0 Gi0/2 192.168.24.4
[T] No Label 192.168.56.0/24 0 Tu1 point2point
21 Pop Label 3.3.3.3/32 0 Gi0/1 192.168.23.3
22 Pop Label 192.168.36.0/24 0 Gi0/1 192.168.23.3
23 [T] Pop Label 6.6.6.6/32 0 Tu1 point2point
24 [T] No Label 7.7.7.7/32 0 Tu1 point2point
25 [T] No Label 192.168.67.0/24 0 Tu1 point2point
[T] Forwarding through a LSP tunnel.
View additional labelling info with the 'detail' option
The [T]
tells us which destinations go through the tunnel. If you want to see more detail, add the detail
parameter:
PE1#show mpls forwarding-table 7.7.7.7 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
24 No Label 7.7.7.7/32 0 Tu1 point2point
MAC/Encaps=14/18, MRU=1500, Label Stack{26}, via Gi0/1
5254001A70435254001F16328847 0001A000
No output feature configured
Or you can look at the CEF table: