Lesson Contents
When a headend router creates a new TE tunnel, the router compares the requested bandwidth with the available bandwidth. When there is enough bandwidth, the tunnel is established. When there is insufficient bandwidth, we can’t establish the new tunnel.
This can be an issue. This means that the tunnels you configure first can reserve bandwidth and will be created. Tunnels that carry more important traffic that you configure later might be unable to reserve bandwidth and won’t be established.
Priorities help to deal with this situation. By assigning different priorities to tunnels, a tunnel can preempt another tunnel. This means that the router will tear down the existing tunnel to create the new tunnel with more important traffic.
With enough bandwidth, we don’t have to check these priorities, and we can create a new tunnel. When there is insufficient bandwidth, we’ll check the priorities to decide whether the new tunnel is more important than the existing tunnel.
Each TE tunnel has two priority values:
- Setup priority: how important is it to establish the new tunnel?
- Hold priority: how important is it to keep an existing tunnel established?
A new tunnel can preempt an existing tunnel when the new TE tunnel has a better setup priority than our existing TE tunnel’s hold priority.
The advantage of two priorities instead of one is that you can configure a TE tunnel that is difficult to set up (low setup priority) but, once established, difficult to preempt (high hold priority).
There are eight priority values for both the setup and hold priority. A lower value means higher importance:
- 0 is the highest and most important priority
- 7 is the lowest and least important.
- 7 is the default priority for both the setup and hold priority.
Let me give you an example of how this works:
- Tunnel one:
- Bandwidth request for 500 kbps.
- Setup priority: 6
- Hold priority: 5
- Tunnel two:
- Bandwidth request for 1600 kbps.
- Setup priority: 4
- Hold priority: 3
We have a total available bandwidth of 2000 kbps. Tunnel one is up and running, and we want to create tunnel two. There is not enough available bandwidth for both tunnels.
The router wants to establish tunnel two and realizes there is insufficient bandwidth available. It looks at the priorities:
Tunnel two setup priority 4 > Tunnel one hold priority 5.
As a result, tunnel two will preempt tunnel one.
The setup priority can’t be lower than the hold priority. If this was possible, you could have a situation where two tunnels preempt each other repeatedly.
Tunnels that need more bandwidth should have a better setup and hold priority. They can preempt tunnels that require less bandwidth, but these tunnels have more options because they require less bandwidth.
Configuration
Let’s look at this in action.
I’ll use the following topology:
We can use a small topology to test this. PE1 is our headend router, PE2 is the tailend router. We have two tunnels from PE1 to PE2. I use IOSv Software (VIOS-ADVENTERPRISEK9-M), Version 15.9(3)M6 on all routers.
Configurations
Want to take a look for yourself? Here you will find the startup configuration of each device.
P1
hostname P1
!
ip cef
!
mpls traffic-eng tunnels
!
interface Loopback0
ip address 2.2.2.2 255.255.255.255
ip router isis
isis circuit-type level-2-only
!
interface GigabitEthernet0/0
ip address 192.168.12.2 255.255.255.0
ip router isis
mpls traffic-eng tunnels
mpls ip
isis circuit-type level-2-only
ip rsvp bandwidth 2000
!
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 2000
!
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
PE1
hostname PE1
!
ip cef
!
mpls traffic-eng tunnels
!
interface Loopback0
ip address 1.1.1.1 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 3.3.3.3
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 500
tunnel mpls traffic-eng path-option 1 dynamic
no routing dynamic
!
interface Tunnel2
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 3.3.3.3
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 500
tunnel mpls traffic-eng path-option 1 dynamic
no routing dynamic
!
interface GigabitEthernet0/0
ip address 192.168.12.1 255.255.255.0
ip router isis
mpls traffic-eng tunnels
mpls ip
isis circuit-type level-2-only
ip rsvp bandwidth 2000
!
router isis
mpls traffic-eng router-id Loopback0
mpls traffic-eng level-2
net 49.0001.0001.0001.0001.0001.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 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 2000
!
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
We have two tunnel interfaces:
PE1#show running-config interface Tunnel 1
interface Tunnel1
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 3.3.3.3
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 500
tunnel mpls traffic-eng path-option 1 dynamic
no routing dynamic
PE1#show running-config interface Tunnel 2
interface Tunnel2
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination 3.3.3.3
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 500
tunnel mpls traffic-eng path-option 1 dynamic
no routing dynamic
Each tunnel reserves 500 kbps and uses the default setup and hold priorities. We can use up to 2000 kbps of bandwidth in total:
PE1#show mpls traffic-eng link-management summary | begin Link ID
Link ID:: Gi0/0 (192.168.12.1)
Local Intfc ID: 1
Link Status:
SRLGs: None
Intfc Switching Capability Descriptors:
Default: Intfc Switching Cap psc1, Encoding ethernet
Link Label Type: Packet
Physical Bandwidth: 1000000 kbits/sec
Max Res Global BW: 2000 kbits/sec (reserved: 0% in, 80% out)
Max Res Sub BW: 0 kbits/sec (reserved: 100% in, 100% out)
MPLS TE Link State: MPLS TE on, RSVP on, admin-up, flooded, allocated
Inbound Admission: reject-huge
Outbound Admission: allow-if-room
Link MTU: IP 1500, MPLS 1500
Admin. Weight: 10 (IGP)
IGP Neighbor Count: 1
We currently require 2x 500 kbps bandwidth and have 2000 kbps in total. Both tunnels can be created:
PE1#show mpls traffic-eng tunnels | include connected
Admin: up Oper: up Path: valid Signalling: connected
Admin: up Oper: up Path: valid Signalling: connected
So far, everything is good.
Let’s change the tunnels. I’ll shut tunnel two for now:
PE1(config)#interface Tunnel 2
PE1(config-if)#shutdown
Let’s change the priorities on PE1:
PE1(config)#interface Tunnel 1
PE1(config-if)#tunnel mpls traffic-eng priority 6 5
We’ll change the priorities on PE1 and also increase the bandwidth requirement:
PE1(config)#interface Tunnel 2
PE1(config-if)#tunnel mpls traffic-eng priority 4 3
PE1(config-if)#tunnel mpls traffic-eng bandwidth 1600
We won’t have enough bandwidth available for tunnel two.
Here’s what will happen when you try to establish tunnel two:
- The router will compare tunnel two’s setup priority (4) against tunnel one’s hold priority (5).
- Tunnel two’s setup priority is better than tunnel one’s hold priority, so tunnel one will go down so that tunnel two can be created.