Lesson Contents
When you have a TE tunnel and use something like autoroute to use it in your routing table, you’ll notice that the router installs the tunnel as the next hop for the tailend router and any destinations behind it.
It’s impossible to load balance traffic between your IGP and a TE tunnel to the tailend router. You can’t do this because if you could, it would be impossible to route traffic down a TE tunnel that follows a suboptimal path. Here is an example:
PE1 is the headend router. PE2 is the tailend router. To get from PE1 to PE2, we have three paths:
- TE Tunnel:
- PE1 > P1 > PE2
- IGP:
- PE1 > P1 > PE2
- PE1 > CE2 > PE2
When we use the default IGP metric, these three paths have the same metric.
If PE1 didn’t prefer the TE tunnel, it would load balance traffic using these three paths. The headend router would send only 33% of the traffic through the TE tunnel.
What is possible is that you can load balance traffic between your IGP and TE tunnel to destinations behind the tailend router. In this lesson, I’ll demonstrate how this works.
Configuration
Here is our topology:
PE1 is the headend router. PE2 is our tailend router. I configured an explicit path so the tunnel goes through P1. We have two links that are not enabled for MPLS:
- PE1 – CE2
- P1 – CE2
These two links are only advertised in the IGP (IS-IS). All links have the default IS-IS metric of 10. Our goal is to load balance traffic from PE1 to CE2’s loopback interface using the TE tunnel and IGP links.
All routers use IOSv Software (VIOS-ADVENTERPRISEK9-M), Version 15.9(3)M6on all routers.
Configurations
Want to take a look for yourself? Here you will find the startup configuration of each device.
CE2
hostname CE2
!
ip cef
!
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.14.4 255.255.255.0
ip router isis
isis circuit-type level-2-only
!
interface GigabitEthernet0/1
ip address 192.168.34.4 255.255.255.0
ip router isis
isis circuit-type level-2-only
!
interface GigabitEthernet0/2
ip address 192.168.24.4 255.255.255.0
ip router isis
isis circuit-type level-2-only
!
router isis
mpls traffic-eng level-2
net 49.0001.0004.0004.0004.0004.00
is-type level-2-only
metric-style wide
!
end
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 1000000
!
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
isis circuit-type level-2-only
!
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 autoroute announce
tunnel mpls traffic-eng priority 7 7
tunnel mpls traffic-eng bandwidth 750
tunnel mpls traffic-eng path-option 1 explicit name INCLUDE_P1
!
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 1000000
!
interface GigabitEthernet0/1
ip address 192.168.14.1 255.255.255.0
ip router isis
isis circuit-type level-2-only
!
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
!
ip explicit-path name INCLUDE_P1 enable
next-address loose 192.168.12.2
!
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 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
Let’s make sure the tunnel is up:
PE1#show mpls traffic-eng tunnels Tunnel 1
Name: PE1_t1 (Tunnel1) Destination: 3.3.3.3
Status:
Admin: up Oper: up Path: valid Signalling: connected
path option 1, type explicit INCLUDE_P1 (Basis for Setup, path weight 10)
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: explicit path option 1 is active
BandwidthOverride: disabled LockDown: disabled Verbatim: disabled
InLabel : -
OutLabel : GigabitEthernet0/0, 16
RSVP Signalling Info:
Src 1.1.1.1, Dst 3.3.3.3, Tun_Id 1, Tun_Instance 13
RSVP Path Info:
My Address: 192.168.12.1
Explicit Route: 192.168.12.2 2.2.2.2
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.12.1 192.168.12.2 192.168.23.2 192.168.23.3
3.3.3.3
History:
Tunnel:
Time since created: 12 minutes, 7 seconds
Time since path change: 11 minutes, 24 seconds
Number of LSP IDs (Tun_Instances) used: 13
Current LSP:
Uptime: 11 minutes, 24 seconds
The tunnel is connected. You can see the explicit route and that autoroute is enabled. Let’s look at the routing table of PE1:
PE1#show ip route isis
Gateway of last resort is not set
2.0.0.0/32 is subnetted, 1 subnets
i L2 2.2.2.2 [115/20] via 192.168.12.2, 00:12:02, GigabitEthernet0/0
3.0.0.0/32 is subnetted, 1 subnets
i L2 3.3.3.3 [115/30] via 3.3.3.3, 00:09:50, Tunnel1
4.0.0.0/32 is subnetted, 1 subnets
i L2 4.4.4.4 [115/20] via 192.168.14.4, 00:09:50, GigabitEthernet0/1
i L2 192.168.23.0/24 [115/20] via 192.168.12.2, 00:09:50, GigabitEthernet0/0
i L2 192.168.24.0/24 [115/20] via 192.168.14.4, 00:07:38, GigabitEthernet0/1
[115/20] via 192.168.12.2, 00:07:38, GigabitEthernet0/0
i L2 192.168.34.0/24 [115/20] via 192.168.14.4, 00:09:50, GigabitEthernet0/1
In the output above, we see:
- We only use tunnel 1 to reach the tailend router (3.3.3.3). The metric is 30.
- We use the direct IGP path to CE2 to reach the loopback interface of CE2 (4.4.4.4). The metric is 20.
There are three paths to get from PE1 to CE2:
- TE Tunnel:
- PE1 > PE2 > CE2
- IGP:
- PE1 > CE2
- PE1 > P1 > CE2
Let’s see if we can play with the IS-IS metric so that PE1 load balances traffic on these three paths to reach CE2. The metric of the TE tunnel is the same as the shortest IGP path. To get from PE1 to PE2, we must cross two GigabitEthernet links. That’s a metric of 20.
To get from PE2 to CE2’s loopback interface, we must cross one GigabitEthernet link (10) and the loopback of CE2 (10) for a total metric of 20. The total metric through the TE tunnel to CE2’s loopback is 40.
I’ll increase the metric on the direct link from PE1 to CE2 so that it is equal to the total metric of the TE tunnel: