Search This Blog

Saturday, December 8, 2012

MPLS-TE bandwidth and load-share



Using the same topology and configuration from the previous MPLS-TEbasic configuration lab 



Currently I have two MPLS-TE tunnels:
Tunnel 37 – going from R3->R4->R5->R7 [explicit path]
Tunnel 73 – going from R3->R6->R7 [dynamic path]

Both paths are configured with RSVP of 100Kbps

Looking from R3 perspective:

R3#sh ip route 7.7.7.7
Routing entry for 7.7.7.7/32
  Known via "ospf 1", distance 110, metric 3, type intra area
  Last update from 7.7.7.7 on Tunnel73, 00:00:01 ago
  Routing Descriptor Blocks:
  * 7.7.7.7, from 7.7.7.7, 00:00:01 ago, via Tunnel73
      Route metric is 3, traffic share count is 1
    7.7.7.7, from 7.7.7.7, 00:00:01 ago, via Tunnel37
      Route metric is 3, traffic share count is 1

There are two paths with equal traffic share to the destination, but remember that load-sharing isn’t done by MPLS nor the IGP it’s all about CEF and current CEF mode is per-destination

R3#show cef state               
CEF Status:
 RP instance
 common CEF enabled
IPv4 CEF Status:
 CEF enabled/running
 dCEF disabled/not running
 CEF switching enabled/running
 universal per-destination load sharing algorithm, id E6B80BFB
IPv6 CEF Status:
 CEF disabled/not running
 dCEF disabled/not running
 universal per-destination load sharing algorithm, id E6B80BFB

So let’s configure tunnel 37 with bandwidth of 50Kbps:

R3(config)#interface tunnel 37
R3(config-if)#tunnel mpls traffic-eng bandwidth 50

Now let’s have a look on R3 routing table:

R3(config-if)#do sh ip route 7.7.7.7
Routing entry for 7.7.7.7/32
  Known via "ospf 1", distance 110, metric 3, type intra area
  Last update from 7.7.7.7 on Tunnel73, 00:00:57 ago
  Routing Descriptor Blocks:
  * 7.7.7.7, from 7.7.7.7, 00:00:57 ago, via Tunnel73
      Route metric is 3, traffic share count is 2
    7.7.7.7, from 7.7.7.7, 00:00:57 ago, via Tunnel37
      Route metric is 3, traffic share count is 1

We decreased tunnel 37 bandwidth requirement to 50Kbps so now tunnel 73 load-share has doubled, if we change the bandwidth of tunnel 37 to 20Kbps the load-share of tunnel 73 will be 5 times greater and so on, I hope you got the idea.
Load-share is basically the same as bandwidth but without constrains, remember the bandwidth command constrain the tunnel to specific requirement from the RSVP, if there isn’t enough RSVP bandwidth reservation for the tunnel requirement the tunnel wouldn’t use that path.

For our example if I had use bandwidth 150Kbps the tunnel wouldn’t come up at all due to RSVP of 100Kbps on both physical paths.

So if I will configure the following on R3:

R3(config)#interface tunnel 37
R3(config-if)#tunnel mpls traffic-eng load-share 50

The result:

R3(config-if)#do sh ip route 7.7.7.7
Routing entry for 7.7.7.7/32
  Known via "ospf 1", distance 110, metric 3, type intra area
  Last update from 7.7.7.7 on Tunnel73, 00:00:57 ago
  Routing Descriptor Blocks:
  * 7.7.7.7, from 7.7.7.7, 00:00:57 ago, via Tunnel73
      Route metric is 3, traffic share count is 2
    7.7.7.7, from 7.7.7.7, 00:00:57 ago, via Tunnel37
      Route metric is 3, traffic share count is 1

Load share of 150 will do:

R3(config-if)#do sh ip route 7.7.7.7
Routing entry for 7.7.7.7/32
  Known via "ospf 1", distance 110, metric 3, type intra area
  Last update from 7.7.7.7 on Tunnel73, 00:00:57 ago
  Routing Descriptor Blocks:
  * 7.7.7.7, from 7.7.7.7, 00:00:57 ago, via Tunnel73
      Route metric is 3, traffic share count is 2
    7.7.7.7, from 7.7.7.7, 00:00:57 ago, via Tunnel37
      Route metric is 3, traffic share count is 3

And so on.







No comments:

Post a Comment