MPLS Traffic Engineering

This chapter provides conceptual and configuration information for the following MPLS-TE features:

  • MPLS-TE Automatic Bandwidth

  • MPLS-TE Fast Reroute (FRR)

Overview of MPLS Traffic Engineering

MPLS-TE software enables an MPLS backbone to replicate and expand upon the traffic engineering capabilities of Layer 2 ATM and Frame Relay networks. MPLS is an integration of Layer 2 and Layer 3 technologies. By making traditional Layer 2 features available to Layer 3, MPLS enables traffic engineering. Thus, you can offer in a one-tier network what now can be achieved only by overlaying a Layer 3 network on a Layer 2 network.

MPLS-TE is essential for service provider and Internet service provider (ISP) backbones. Such backbones must support a high use of transmission capacity, and the networks must be very resilient so that they can withstand link or node failures. MPLS-TE provides an integrated approach to traffic engineering. With MPLS, traffic engineering capabilities are integrated into Layer 3, which optimizes the routing of IP traffic, given the constraints imposed by backbone capacity and topology.

Benefits of MPLS-TE

MPLS-TE enables ISPs to route network traffic to offer the best service to their users in terms of throughput and delay. By making the service provider more efficient, traffic engineering reduces the cost of the network.

Currently, some ISPs base their services on an overlay model. In the overlay model, transmission facilities are managed by Layer 2 switching. The routers see only a fully meshed virtual topology, making most destinations appear one hop away. If you use the explicit Layer 2 transit layer, you can precisely control how traffic uses available bandwidth. However, the overlay model has numerous disadvantages. MPLS-TE achieves the TE benefits of the overlay model without running a separate network and without a non-scalable, full mesh of router interconnects.

How MPLS-TE works

MPLS-TE automatically establishes and maintains label switched paths (LSPs) across the backbone by using RSVP. The path that an LSP uses is determined by the LSP resource requirements and network resources, such as bandwidth. Available resources are flooded by means of extensions to a link-state-based Interior Gateway Protocol (IGP).

MPLS-TE tunnels are calculated at the LSP headend router, based on a fit between the required and available resources (constraint-based routing). The IGP automatically routes the traffic to these LSPs.

MPLS-TE Scale Details

Scale details for MPLS-TE:

Table 1. Supported LSPs for MPLS-TE

MPLS TE with FRR

Head/Tail Node: 75000 LSPs

Mid Node: 37500 LSPs

MPLS TE without FRR

Head/Tail Node: 75000 LSPs

Mid Node: 75000 LSPs

MPLS-TE Automatic Bandwidth

The MPLS-TE automatic bandwidth feature measures the traffic in a tunnel and periodically adjusts the signaled bandwidth for the tunnel.

MPLS-TE Automatic Bandwidth Overview

MPLS-TE automatic bandwidth is configured on individual Label Switched Paths (LSPs) at every head-end. MPLS-TE monitors the traffic rate on a tunnel interface. Periodically, MPLS-TE resizes the bandwidth on the tunnel interface to align it closely with the traffic in the tunnel. MPLS-TE automatic bandwidth can perform these functions:

  • Monitors periodic polling of the tunnel output rate

  • Resizes the tunnel bandwidth by adjusting the highest rate observed during a given period

For every traffic-engineered tunnel that is configured for an automatic bandwidth, the average output rate is sampled, based on various configurable parameters. Then, the tunnel bandwidth is readjusted automatically based upon either the largest average output rate that was noticed during a certain interval, or a configured maximum bandwidth value.

This table lists the automatic bandwidth functions.

Table 2. Automatic Bandwidth Variables

Function

Command

Description

Default Value

Application frequency

application command

Configures how often the tunnel bandwidths changed for each tunnel. The application period is the period of A minutes between the bandwidth applications during which the output rate collection is done.

24 hours

Requested bandwidth

bw-limit command

Limits the range of bandwidth within the automatic-bandwidth feature that can request a bandwidth.

0 Kbps

Collection frequency

auto-bw collect command

Configures how often the tunnel output rate is polled globally for all tunnels.

5 min

Highest collected bandwidth

You cannot configure this value.

Delta

You cannot configure this value.

The output rate on a tunnel is collected at regular intervals that are configured by using the application command in MPLS-TE auto bandwidth interface configuration mode. When the application period timer expires, and when the difference between the measured and the current bandwidth exceeds the adjustment threshold, the tunnel is reoptimized. Then, the bandwidth samples are cleared to record the new largest output rate at the next interval.

When reoptimizing the LSP with the new bandwidth, a new path request is generated. If the new bandwidth is not available, the last good LSP continues to be used. This way, the network experiences no traffic interruptions.

If minimum or maximum bandwidth values are configured for a tunnel, the bandwidth, which the automatic bandwidth signals, stays within these values.


Note

When more than 100 tunnels are auto-bw enabled, the algorithm will jitter the first application of every tunnel by a maximum of 20% (max 1hour). The algorithm does this to avoid too many tunnels running auto bandwidth applications at the same time.


If a tunnel is shut down, and is later brought again, the adjusted bandwidth is lost and the tunnel is brought back with the initial configured bandwidth. In addition, the application period is reset when the tunnel is brought back.

Adjustment Threshold

Adjustment Threshold is defined as a percentage of the current tunnel bandwidth and an absolute (minimum) bandwidth. Both thresholds must be fulfilled for the automatic bandwidth to resignal the tunnel. The tunnel bandwidth is resized only if the difference between the largest sample output rate and the current tunnel bandwidth is larger than the adjustment thresholds.

For example, assume that the automatic bandwidth is enabled on a tunnel in which the highest observed bandwidth B is 30 Mbps. Also, assume that the tunnel was initially configured for 45 Mbps. Therefore, the difference is 15 mbit/s. Now, assuming the default adjustment thresholds of 10% and 10kbps, the tunnel is signalled with 30 Mbps when the application timer expires. This is because 10% of 45Mbit/s is 4.5 Mbit/s, which is smaller than 15 Mbit/s. The absolute threshold, which by default is 10kbps, is also crossed.

Overflow Detection

Overflow detection is used if a bandwidth must be resized as soon as an overflow condition is detected, without having to wait for the expiry of an automatic bandwidth application frequency interval.

For overflow detection one configures a limit N, a percentage threshold Y% and optionally, a minimum bandwidth threshold Z. The percentage threshold is defined as the percentage of the actual signalled tunnel bandwidth. When the difference between the measured bandwidth and the actual bandwidth are both larger than Y% and Z threshold, for N consecutive times, then the system triggers an overflow detection.

The bandwidth adjustment by the overflow detection is triggered only by an increase of traffic volume through the tunnel, and not by a decrease in the traffic volume. When you trigger an overflow detection, the automatic bandwidth application interval is reset.

By default, the overflow detection is disabled and needs to be manually configured.

Underflow Detection

Underflow detection is used when the bandwidth on a tunnel drops significantly, which is similar to overflow but in reverse.

Underflow detection applies the highest bandwidth value from the samples which triggered the underflow. For example, if you have an underflow limit of three, and the following samples trigger the underflow for 10 kbps, 20 kbps, and 15 kbps, then, 20 kbps is applied.

Unlike overflow, the underflow count is not reset across an application period. For example, with an underflow limit of three, you can have the first two samples taken at the end of an application period and then the underflow gets triggered by the first sample of the next application period.

Restrictions for MPLS-TE Automatic Bandwidth

When the automatic bandwidth cannot update the tunnel bandwidth, the following restrictions are listed:

  • Tunnel is in a fast reroute (FRR) backup, active, or path protect active state. This occurs because of the assumption that protection is a temporary state, and there is no need to reserve the bandwidth on a backup tunnel. You should prevent taking away the bandwidth from other primary or backup tunnels.

  • Reoptimization fails to occur during a lockdown. In this case, the automatic bandwidth does not update the bandwidth unless the bandwidth application is manually triggered by using the mpls traffic-eng auto-bw apply command in EXEC mode.

Configure Automatic Bandwidth

Configuring automatic bandwidth involves the following tasks:

  • Configuring Collection Frequency

  • Forcing the current application period to expire immediately

  • Configuring the automatic bandwidth functions

Configure Collection Frequency

Perform this task to configure the collection frequency. You can configure only one global collection frequency.

Procedure


Step 1

configure

Step 2

mpls traffic-eng

Example:


RP/0/RP0:hostname(config)# mpls traffic-eng
RP/0/RP0:hostname(config-mpls-te)# 

Enters MPLS-TE configuration mode.

Step 3

auto-bw collect frequency minutes

Example:


RP/0/RP0:hostname(config-mpls-te)# auto-bw collect frequency 1

Configures the automatic bandwidth collection frequency, and controls the manner in which the bandwidth for a tunnel collects output rate information; but does not adjust the tunnel bandwidth.

minutes

Configures the interval between automatic bandwidth adjustments in minutes. Range is from 1 to 10080.

Step 4

commit


Forcing the Current Application Period to Expire Immediately

Perform this task to force the current application period to expire immediately on the specified tunnel. The highest bandwidth is applied on the tunnel before waiting for the application period to end on its own.

Procedure


Step 1

mpls traffic-eng auto-bw apply {all | tunnel-te tunnel-number }

Example:

RP/0/RP0:hostname# mpls traffic-eng auto-bw apply tunnel-te 1
Configures the highest bandwidth available on a tunnel without waiting for the current application period to end.
all

Configures the highest bandwidth available instantly on all the tunnels.

tunnel-te

Configures the highest bandwidth instantly to the specified tunnel. Range is from 0 to 65535.

Step 2

commit

Step 3

show mpls traffic-eng tunnels [auto-bw ]

Example:


RP/0/RP0:hostname# show mpls traffic-eng tunnels auto-bw

Displays information about MPLS-TE tunnels for the automatic bandwidth.


Configure Automatic Bandwidth Functions

Perform this task to configure the following automatic bandwidth functions:

Application frequency

Configures the application frequency in which a tunnel bandwidth is updated by the automatic bandwidth.

Bandwidth collection

Configures only the bandwidth collection.

Bandwidth parameters

Configures the minimum and maximum automatic bandwidth to set on a tunnel.

Adjustment threshold

Configures the adjustment threshold for each tunnel.

Overflow detection

Configures the overflow detection for each tunnel.

Procedure


Step 1

configure

Step 2

interface tunnel-te tunnel-id

Example:


RP/0/RP0:hostname(config)# interface tunnel-te 6
RP/0/RP0:hostname(config-if)#

Configures an MPLS-TE tunnel interface and enables traffic engineering on a particular interface on the originating node.

Step 3

auto-bw

Example:


RP/0/RP0:hostname(config-if)# auto-bw
RP/0/RP0:hostname(config-if-tunte-autobw)# 

Configures automatic bandwidth on a tunnel interface and enters MPLS-TE automatic bandwidth interface configuration mode.

Step 4

application minutes

Example:


RP/0/RP0:hostname(config-if-tunte-autobw)# application 1000

Configures the application frequency in minutes for the applicable tunnel.
minutes

Frequency in minutes for the automatic bandwidth application. Range is from 5 to 10080 (7 days). The default value is 1440 (24 hours).

Step 5

bw-limit {min bandwidth } {max bandwidth }

Example:


RP/0/RP0:hostname(config-if-tunte-autobw)# bw-limit min 30 max 80

Configures the minimum and maximum automatic bandwidth set on a tunnel.
min

Applies the minimum automatic bandwidth in kbps on a tunnel. Range is from 0 to 4294967295.

max

Applies the maximum automatic bandwidth in kbps on a tunnel. Range is from 0 to 4294967295.

Step 6

adjustment-threshold percentage [min minimum-bandwidth ]

Example:


RP/0/RP0:hostname(config-if-tunte-autobw)# adjustment-threshold 50 min 800

Configures the tunnel bandwidth change threshold to trigger an adjustment.
percentage

Bandwidth change percent threshold to trigger an adjustment if the largest sample percentage is higher or lower than the current tunnel bandwidth. Range is from 1 to 100 percent. The default value is 5 percent.

min

Configures the bandwidth change value to trigger an adjustment. The tunnel bandwidth is changed only if the largest sample is higher or lower than the current tunnel bandwidth. Range is from 10 to 4294967295 kilobits per second (kbps). The default value is 10 kbps.

Step 7

overflow threshold percentage [min bandwidth ] limit limit

Example:


RP/0/RP0:hostname(config-if-tunte-autobw)# overflow threshold 100 limit 1

Configures the tunnel overflow detection.
percentage

Bandwidth change percent to trigger an overflow. Range is from 1 to 100 percent.

limit

Configures the number of consecutive collection intervals that exceeds the threshold. The bandwidth overflow triggers an early tunnel bandwidth update. Range is from 1 to 10 collection periods. The default value is none.

min

Configures the bandwidth change value in kbps to trigger an overflow. Range is from 10 to 4294967295. The default value is 10.

Step 8

commit


Fast Reroute

Fast Reroute (FRR) provides link protection to LSPs enabling the traffic carried by LSPs that encounter a failed link to be rerouted around the failure. The reroute decision is controlled locally by the router connected to the failed link. The headend router on the tunnel is notified of the link failure through IGP or through RSVP. When it is notified of a link failure, the headend router attempts to establish a new LSP that bypasses the failure. This provides a path to reestablish links that fail, providing protection to data transfer.

You should be aware of these requirements for the backup tunnel path
  • Backup tunnel must not pass through the element it protects.

  • Primary tunnel and a backup tunnel should intersect at least at two points (nodes) on the path: point of local repair (PLR) and merge point (MP). PLR is the headend of the backup tunnel, and MP is the tailend of the backup tunnel.


Note

When you configure TE tunnel with multiple protection on its path and merge point is the same node for more than one protection, you must configure record-route for that tunnel.


FRR Node Protection

If a link failure occurs within an area, the upstream router directly connected to the failed link generates an RSVP path error message to the headend. As a response to the message, the headend sends an RSVP path tear message and the corresponding path option is marked as invalid for a specified period and the next path-option (if any) is evaluated.

To retry the ABR immediately, a second path option (identical to the first one) should be configured. Alternatively, the retry period (path-option hold-down, 2 minutes by default) can be tuned to achieve a faster retry.

Protecting MPLS Tunnels with Fast Reroute

Before you begin

The following prerequisites are required to protect MPLS-TE tunnels:

  • You must have a router ID for the neighboring router.

  • Stable router ID is required at either end of the link to ensure that the link is successful. If you do not assign a router ID to the routers, the system defaults to the global router ID. Default router IDs are subject to change, which can result in an unstable link.

  • You must first configure a primary tunnel.

Procedure


Step 1

configure

Step 2

interface tunnel-te tunnel-id

Example:


RP/0/RP0:hostname# interface tunnel-te 1

Configures an MPLS-TE tunnel interface.

Step 3

fast-reroute

Example:


RP/0/RP0:hostname(config-if)# fast-reroute

Enables fast reroute.

Step 4

exit

Example:


RP/0/RP0:hostname(config-if)# exit

Exits the current configuration mode.

Step 5

mpls traffic-eng

Example:


RP/0/RP0:hostname(config)# mpls traffic-eng 
RP/0/RP0:hostname(config-mpls-te)#

Enters MPLS-TE configuration mode.

Step 6

reoptimize timers delay {cleanup delay-time | installation delay-time}

Example:


RP/0/RP0:hostname(config-mpls-te)# reoptimize timers delay cleanup 180 
RP/0/RP0:hostname(config-mpls-te)# reoptimize timers delay installation 180

Delays removal of the old LSPs and installation of a new label after tunnel reoptimization. The minimum installation and cleanup time is 180 seconds.

Step 7

interface type interface-path-id

Example:


RP/0/RP0:hostname(config-mpls-te)# interface TenGigE0/1/0/3
RP/0/RP0:hostname(config-mpls-te-if)#

Enables traffic engineering on a particular interface on the originating node.

Step 8

backup-path tunnel-te tunnel-number

Example:


RP/0/RP0:hostname(config-mpls-te-if)# backup-path tunnel-te 2

Sets the backup path to the backup tunnel.

Step 9

exit

Example:


RP/0/RP0:hostname(config-mpls-te-if)# exit
RP/0/RP0:hostname(config-mpls-te)#

Exits the current configuration mode.

Step 10

exit

Example:


RP/0/RP0:hostname(config-mpls-te)# exit
RP/0/RP0:hostname(config)#

Exits the current configuration mode.

Step 11

interface tunnel-te tunnel-id

Example:


RP/0/RP0:hostname(config)# interface tunnel-te 2

Configures an MPLS-TE tunnel interface.

Step 12

ipv4 unnumbered type interface-path-id

Example:


RP/0/RP0:hostname(config-if)# ipv4 unnumbered Loopback0

Assigns a source address to set up forwarding on the new tunnel.

Step 13

path-option preference-priority {explicit name explicit-path-name }

Example:


RP/0/RP0:hostname(config-if)# path-option l explicit name backup-path

Sets the path option to explicit with a given name (previously configured) and assigns the path ID.

Step 14

destination ip-address

Example:


RP/0/RP0:hostname(config-if)# destination 192.168.92.125

Assigns a destination address on the new tunnel.

  • Destination address is the remote node’s MPLS-TE router ID.

  • Destination address is the merge point between backup and protected tunnels.

Note 

When you configure TE tunnel with multiple protection on its path and merge point is the same node for more than one protection, you must configure record-route for that tunnel.

Step 15

commit

Step 16

(Optional) show mpls traffic-eng tunnels backup

Example:


RP/0/RP0:hostname# show mpls traffic-eng tunnels backup

Displays the backup tunnel information.

Step 17

(Optional) show mpls traffic-eng tunnels protection frr

Example:


RP/0/RP0:hostname# show mpls traffic-eng tunnels protection frr

Displays the tunnel protection information for Fast-Reroute (FRR).

Step 18

(Optional) show mpls traffic-eng fast-reroute database

Example:


RP/0/RP0:hostname# show mpls traffic-eng fast-reroute database

Displays the protected tunnel state (for example, the tunnel’s current ready or active state).