MPLS TE – Load Sharing

VN:F [1.9.6_1107]
Rating: 3.5/5 (2 votes cast)
By Wayne Lawson II on April 15th, 2009

This post takes a look at a couple options we have when configuring load-sharing over multiple MPLS TE tunnels. We will look at 3 options of the “tunnel mpls traffic-eng” command: autoroute, bandwidth, and load-share. We can perform equal cost and unequal cost load sharing.

To begin with, R1 has two tunnels to R5 per the diagram below.

Tunnel 105 uses an explicit path that prevents it from going through R3.

interface Tunnel5
ip unnumbered Loopback0
tunnel destination 10.0.0.5
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng bandwidth  50
tunnel mpls traffic-eng path-option 1 dynamic
!
interface Tunnel105
ip unnumbered Loopback0
tunnel destination 10.0.0.5
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng bandwidth  50
tunnel mpls traffic-eng path-option 1 explicit name R5-LONGWAY

ip explicit-path name R5-LONGWAY enable
exclude-address 192.168.13.3

Both tunnels are up:

R1#sho mpl traffic-eng tunnels | inc Name|Admin|Expli
Name: R1_t5                               (Tunnel5) Destination: 10.0.0.5
Admin: up         Oper: up     Path: valid       Signalling: connected
Explicit Route: 192.168.12.2 192.168.25.5 10.0.0.5
Name: R1_t105                             (Tunnel105) Destination: 10.0.0.5
Admin: up         Oper: up     Path: valid       Signalling: connected
Explicit Route: 192.168.13.3 192.168.34.4 192.168.45.5 10.0.0.5

If we look in the route table, R1 still learns the destination through R2:

R1#sho ip route 10.0.0.5
Routing entry for 10.0.0.5/32
Known via "ospf 1", distance 110, metric 7, type intra area
Last update from 192.168.12.2 on Serial2/0, 00:00:00 ago
Routing Descriptor Blocks:
* 192.168.12.2, from 10.0.0.5, 00:00:00 ago, via Serial2/0
Route metric is 7, traffic share count is 1

In order to learn the tunnel destination through the tunnel, we use the autoroute option in the tunnel configuration:

R1(config)#int tun 5
R1(config-if)#tunnel mpls traffic-eng autoroute announce
R1(config-if)#int tun 105
R1(config-if)#tunnel mpls traffic-eng autoroute announce

Now we have two paths to R5:

R1#sho ip route 10.0.0.5
Routing entry for 10.0.0.5/32
Known via "ospf 1", distance 110, metric 7, type intra area
Routing Descriptor Blocks:
* directly connected, via Tunnel5
Route metric is 7, traffic share count is 1
directly connected, via Tunnel105
Route metric is 7, traffic share count is 1

Notice the traffic share is 1 for each tunnel. This is because our bandwidth statements are 50k for each tunnel. Let’s change the bandwidth on Tunnel5 to 100:

R1(config)#int tun 5
R1(config-if)#tunnel mpls traffic-eng bandwidth 100
R1(config-if)#shut
R1(config-if)#no shut

R1#sho ip route 10.0.0.5
Routing entry for 10.0.0.5/32
Known via "ospf 1", distance 110, metric 7, type intra area
Routing Descriptor Blocks:
* directly connected, via Tunnel105
Route metric is 7, traffic share count is 1
directly connected, via Tunnel5
Route metric is 7, traffic share count is 2

The traffic share is now a ratio of 2:1 in favor of Tunnel5. We can also use the load-share command to influence traffic share. Suppose we want to even things up again:

R1(config)#int tun 105
R1(config-if)#tunnel mpls traffic-eng load-share 100

R1#sho ip route 10.0.0.5
Routing entry for 10.0.0.5/32
Known via "ospf 1", distance 110, metric 7, type intra area
Routing Descriptor Blocks:
* directly connected, via Tunnel105
Route metric is 7, traffic share count is 1
directly connected, via Tunnel5
Route metric is 7, traffic share count is 1

Load-share on Tunnel 105 is now equal to bandwidth on Tunnel5 and the traffic share is equal again.

The bandwidth and load-share values are very similar in function. The major difference is that the bandwidth value will be used by RSVP to make reservations during tunnel setup. The load-share value is only used to adjust traffic share at the head-end. Another thing to remember is that neither of these values cause any traffic policing to be performed, bandwidth is used by RSVP during tunnel setup and both values can be used to specify traffic share counts.

Regards, Bryan (Blog Post by Bryan Bartik)

MPLS TE – Load Sharing, 3.5 out of 5 based on 2 ratings
Share and Enjoy:
  • RSS
  • Twitter
  • Facebook
  • Google Bookmarks
  • Digg
  • Print
  • Technorati
  • Slashdot
  • LinkedIn
  • del.icio.us
  • Reddit
  • Sphinn
  • Mixx
  • Blogplay
  • Netvibes
  • NewsVine
  • Live
  • Ping.fm
  • MySpace
  • Yahoo! Bookmarks
  • Yahoo! Buzz

Tags: ,

2 Responses to “MPLS TE – Load Sharing”

  1. Swap says:

    slight typo in the diagram. R2 is named as R3.

    VA:F [1.9.6_1107]
    Rating: 1.0/5 (1 vote cast)
  2. Captain7 says:
    ip explicit-path name R5-LONGWAY enable
     exclude-address 192.168.13.3
    !

    Is it a typing mistake? I think exclude-address command under the explicit-path is excluding the specified address in order to prefer the alternate route. I think correct would be :

    ip explicit-path name R5-LONGWAY enable
     exclude-address 192.168.12.2
    !
    VA:F [1.9.6_1107]
    Rating: 0.0/5 (0 votes cast)

Leave a Reply