Chapter 4: Cisco MPLS Traffic Engineering

Cisco Press

For further details about Cisco MPLS TE, see the book Traffic Engineering with MPLS (Cisco Press) or consult the software documentation available at Cisco.com.

Basic Operation of MPLS TE

The following sections review the configuration and operation of the most important aspects of Cisco MPLS TE. The section "Enabling MPLS TE" introduces the basic node and interface configuration that enables MPLS TE on a Cisco router. Then, the section "Defining a TE Tunnel Interface" discusses how you configure a TE LSP on the headend node. The sections "Link Information Distribution," "Signaling of TE LSPs," and "Traffic Selection" explain how to configure the MPLS TE functionality that equivalent sections in Chapter 2 introduced.

Enabling MPLS TE

Cisco MPLS TE requires configuration at the node and interface (link) levels. The configuration involves mainly the definition of MPLS TE and Resource Reservation Protocol (RSVP) behavior. In addition, you may want to enable the TE extensions for your IGP to perform constraint-based routing. Cisco IOS uses mpls traffic-eng as a command prefix for MPLS TE-related configuration. Similarly, ip rsvp is the command prefix for entering RSVP-related configuration. Cisco IOS XR uses a slightly different approach that groups each of those configuration tasks in separate configuration modes that the mpls traffic-eng and rsvp commands define respectively. The individual command syntax shares significant similarity between Cisco IOS and Cisco IOS XR.

Enabling MPLS TE on a Node

You enable MPLS TE on a node using the mpls traffic-eng tunnels command in Cisco IOS. You must configure this global command before you can implement MPLS TE. There are additional global commands. They share the mpls traffic-eng prefix. Those commands are all optional with the exception of the mpls traffic-eng tunnels command. They configure different aspects of the global behavior of MPLS TE for a node, including timers, automation, and logging. Enabling MPLS TE on a global basis does not result in an operational configuration.

Example 4-1 shows an MPLS TE node configuration in Cisco IOS. In this case, the commands enable MPLS on the node, logging of setup and teardown of TE LSPs, and path reoptimization when a physical interface becomes operational. The sections "Path Computation" and "DiffServ-Aware Traffic Engineering" cover some global commands in more detail. See Appendix A, "Command Reference for Cisco MPLS Traffic Engineering and RSVP," for a list of MPLS TE node commands in Cisco IOS. The Cisco IOS documentation contains additional command details.

Example 4-1 MPLS TE Node Configuration in Cisco IOS

mpls traffic-eng tunnels
mpls traffic-eng logging lsp setups
mpls traffic-eng logging lsp teardowns
mpls traffic-eng reoptimize events link-up
!

You enable MPLS TE on a node using the mpls traffic-eng command in Cisco IOS XR. This command defines a separate configuration mode that groups the MPLS TE configuration, with the exception of the TE extensions for the IGP. As the next section describes, you even enable under this configuration mode the physical interfaces that will participate in the MPLS TE network. Most of the global MPLS TE commands in Cisco IOS have an equivalent in Cisco IOS XR. Example 4-2 shows an MPLS TE node configuration under Cisco IOS XR. This configuration enables MPLS TE on two interfaces, defines the maximum number of configurable TE LSPs on the node, and disables penultimate hop popping (PHP) on the upstream neighbor when the node acts as ultimate hop.

Example 4-2 MPLS TE Node Configuration in Cisco IOS XR

mpls traffic-eng
 interface POS0/3/0/0
 !
 interface POS0/3/0/1
 !
 maximum tunnels 500
 signalling advertise explicit-null
!

Tip - You will find the man command useful to obtain online help on a command if you are using the EXEC interface to configure a node. The command is available only in Cisco IOS XR.


Enabling MPLS TE on an Interface

You use the mpls traffic-eng tunnels command to enable MPLS TE on an interface in Cisco IOS. This command enables MPLS TE on the interface, including the processing of RSVP signaling to set up and tear down TE LSPs. This command, in combination with its global peer, gives the minimal operational configuration. You can configure additional MPLS TE commands under an interface. They share the mpls traffic-eng prefix. Those interface commands enable you to specify link attributes, define link flooding thresholds, and control some aspects of FRR behavior. Example 4-3 illustrates interfaces POS0/1/0 and POS1/0/0 configured for MPLS TE. The sections "Link Information Distribution" and "Link and Node Protection" elaborate on the most relevant interface commands.

Example 4-3 MPLS TE Interface Configuration in Cisco IOS

interface POS0/1/0
 ip address 172.16.0.0 255.255.255.254
 mpls traffic-eng tunnels
 mpls traffic-eng administrative-weight 100
!
interface POS1/0/0
 ip address 172.16.0.2 255.255.255.254
 mpls traffic-eng tunnels
 mpls traffic-eng srlg 10
!

The interface command enables MPLS TE on an interface in Cisco IOS XR. This command resides under the mpls traffic-eng configuration mode. You do not configure any MPLS TE command under the main interface configuration. The interface command under the mpls traffic-eng mode defines a submode where the interface-specific configuration for MPLS TE resides. Example 4-4 illustrates interfaces POS0/3/0/0 and POS0/3/0/1 with their MPLS TE-specific configuration. As described previously, the sections "Link Information Distribution" and "Link and Node Protection" elaborate on the most relevant interface commands. Contrary to Cisco IOS, enabling MPLS TE on an interface does not enable the processing of RSVP signaling.

Example 4-4 MPLS TE Interface Configuration in Cisco IOS XR

mpls traffic-eng
 interface POS0/3/0/0
 admin-weight 5
 attribute-flags 0x8
 !
 interface POS0/3/0/1
 attribute-flags 0xf
 !
!

Note - This approach of enabling interfaces under protocols or technologies is common in Cisco IOS XR. Cisco IOS follows a different approach of enabling protocols or technologies under interfaces.


You can use a rich collection of show, clear, and debug commands to implement and operate an MPLS network. All show commands begin with the show mpls traffic-eng prefix, clear commands with clear mpls traffic-eng, and all debug commands with debug mpls traffic-eng. Appendix A includes a list of these commands. Cisco IOS and Cisco IOS XR use similar command syntax. The upcoming sections in this chapter cover the complete syntax and output of some of the verification commands that you will probably use most frequently.

Defining a TE Tunnel Interface

Nodes in an MPLS TE network use tunnel interfaces to define a new TE LSP. The tunnel interface specifies the characteristics of the TE LSP, including destination, bandwidth, path, protection requirements, and forwarding parameters, among others. At a minimum, you need to specify the destination and path of the TE LSP. You perform the tunnel configuration on the TE LSP headend. The tailend does not require special configuration because TE LSPs are generally unidirectional. In most cases, you want to have TE LSPs in both directions. In that case, you need to configure a second tunnel at the tailend toward the headend. For all purposes, those will be two separate TE LSPs that happen to have opposite headends and tailends.

Cisco IOS identifies tunnel interfaces with the tunnel keyword. These interfaces have multiple uses in Cisco IOS. They can use Layer 2 Tunnel Protocol (L2TP), generic routing encapsulation (GRE), MPLS, and other protocols as a tunneling mechanism. Therefore, you need to specify the tunnel as an MPLS TE tunnel using the tunnel mode mpls traffic-eng command. MPLS TE tunnels also use the existing tunnel destination command to define their destination. In general, you configure the behavior that is specific to a TE LSP under the tunnel interface. Those commands use the tunnel mpls traffic-eng prefix. Example 4-5 shows how a tunnel configuration looks in Cisco IOS. You will find further details about the most common tunnel commands throughout this chapter.

Example 4-5 Definition of a TE LSP Headend in Cisco IOS

interface Tunnel1
 ip unnumbered Loopback0
 tunnel destination 172.16.255.3
 tunnel mode mpls traffic-eng
 tunnel mpls traffic-eng path-option 10 dynamic
!

Note - Notice that MPLS TE commands that you configure under a tunnel interface have a tunnel prefix. MPLS TE commands that you configure under physical interfaces are different and do not have that prefix.


Cisco IOS XR identifies MPLS TE tunnel interfaces with the tunnel-te keyword. As the name suggests, you use this type of interface exclusively for MPLS TE tunnels. The tunnel configuration commands available in Cisco IOS XR have an equivalent in Cisco IOS, and their syntaxes resemble each other. However, the Cisco IOS XR syntax is shorter because the tunnel-te already provides an MPLS TE context to the configuration. Example 4-6 illustrates how a tunnel configuration looks in Cisco IOS XR. You will find further details about the most common tunnel commands throughout this chapter.

Example 4-6 Definition of a TE LSP Headend in Cisco IOS XR

interface tunnel-te0
 ipv4 unnumbered Loopback0
 destination 172.16.255.5
 path-option 10 dynamic
!

Link Information Distribution

You can use either IS-IS or OSPF for link information distribution. Both Cisco IOS and Cisco IOS XR support both protocols. The upcoming sections describe how to configure the distribution of link information, how to control the amount of flooding, and how to verify that a node has properly disseminated and received the information.

Using IS-IS for Link Information Distribution

You can use IS-IS to distribute link information relative to MPLS TE in Cisco IOS. You enable the MPLS TE extensions using the mpls traffic-eng command under the router isis configuration mode. The command must specify the proper IS-IS level (one or two). You also need to enable the wide metric format with the metric-style wide command and define an MPLS TE router identifier with the mpls traffic-eng router-id command. Example 4-7 shows a sample IS-IS configuration in Cisco IOS that uses the TE extensions of this protocol.

Example 4-7 MPLS TE Extensions for IS-IS in Cisco IOS

router isis 
 net 49.0001.1720.1625.5001.00
 is-type level-2-only
 metric-style wide
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng level-2
 passive-interface Loopback0
!

Cisco IOS XR also supports the distribution of this link information using IS-IS. The commands it uses are nearly identical to those in Cisco IOS. In both cases, the commands that relate to MPLS TE have the mpls traffic-eng prefix. In Cisco IOS XR, you need to enable these TE commands under the ipv4 unicast address family in the IS-IS configuration. You can also define the MPLS TE router identifier using the global router-id command that applies to all protocols. Example 4-8 shows an IS-IS configuration in Cisco IOS XR using the TE extensions.

Example 4-8 MPLS TE Extensions for IS-IS in Cisco IOS XR

router isis DEFAULT
 is-type level-2-only
 net 49.0001.1720.1625.5129.00
 address-family ipv4 unicast
  metric-style wide
  mpls traffic-eng level 2
  mpls traffic-eng router-id Loopback0
 !
 interface Loopback0
  passive
  address-family ipv4 unicast
    !
 !
 interface POS0/3/0/0
  address-family ipv4 unicast
    !
  !
!

Using OSPF for Link Information Distribution

Cisco IOS and Cisco IOS XR also support MPLS TE extensions for OSPF. You must use the mpls traffic-eng area command to specify the OSPF area where you are enabling MPLS TE. You specify the MPLS TE router identifier with the mpls traffic-eng router-id command. These two commands use the same syntax in both operating systems. All the OSPF commands that relate to MPLS TE have the mpls traffic-eng prefix.

Examples 4-9 and 4-10 show OSPF configurations with MPLS TE extensions for Cisco IOS and Cisco IOS XR, respectively.

Example 4-9 MPLS TE Extensions for OSPF in Cisco IOS

router ospf 100
 log-adjacency-changes
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 0
 passive-interface Loopback0
 network 172.16.0.0 0.0.255.255 area 0
!

Example 4-10 MPLS TE Extensions for OSPF in Cisco IOS XR

router ospf DEFAULT
 area 0
  interface Loopback0
  passive 
  !
  interface POS0/3/0/0
  !
 mpls traffic-eng router-id Loopback0
 mpls traffic-eng area 0
!

Controlling Flooding

Cisco MPLS TE offers granular control on the flooding of link information. You can have changes in available bandwidth trigger flooding of link updates. A node will also send periodic link updates. You tune periodic updates per node using the link management timers and the bandwidth utilization thresholds per interface using the interface flooding threshold. Figure 4-1 shows the default bandwidth utilization thresholds that influence link flooding in both operating systems. In addition, you can manually force the flooding on a node in Cisco IOS XR using the exec mpls traffic-eng link-management flood command.


Note - "Just because I can" is not a good reason to tune any timer. The timer defaults provide good results for most deployments. Before attempting to modify any timers, make sure you understand what you are trying to achieve and the impact that the change will have on the network.


Related:
1 2 3 4 5 6 7 8 Page 1
Page 1 of 8
SD-WAN buyers guide: Key questions to ask vendors (and yourself)