Table Of Contents
Configuring Multiprotocol Label Switching
Configuring MPLS Levels of Control
Example 1—Enable MPLS Incrementally in a Network
Example 2—Route Labeled Packets to Network A Only
Example 3—Limit Label Distribution on a MPLS Network
Configuring MPLS Traffic Engineering
Configuring a Device to Support Tunnels
Configuring an Interface to Support RSVP-based Tunnel Signalling and IGP Flooding
Configuring an MPLS Traffic Engineering Tunnel
Configuring IS-IS for MPLS Traffic Engineering
Configuring MPLS Traffic Engineering Paths
Configuring MPLS Virtual Private Networks
Defining VPNs
Configuring BGP Routing Sessions
Configuring PE to PE Routing Sessions
Configuring BGP PE to CE Routing Sessions
Configuring RIP PE to CE Routing Sessions
Configuring Static Route PE to CE Routing Sessions
Verifying VPN Operation
Configuring MPLS CoS Backbone Support
LSRs
ATM LSRs
ATM Switches
Configuring MPLS CoS
Configuring PVC Mode in a Non-MPLS-Enabled Core
Configuring Multi-VC Mode in a MPLS-Enabled Core
Configuring Multi-VCs Using the Cos-Map Function
Configuring DWFQ and Changing Queue Weights on an Outgoing Interface
Verifying CoS Operation
Configuring the Label Switch Controller
LSC as Label Edge Device
Support for ATM Forum Protocols
Configuring MPLS on a LSC-Controlled BPX Port
MPLS Configuration Examples
Enabling MPLS Incrementally in a Network Example
Enabling MPLS for a Subset of Destination Prefixes Example
Selecting the Destination Prefixes and Paths Example
Displaying MPLS LDP Binding Information Example
Displaying MPLS Forwarding Table Information Example
Displaying MPLS Interface Information Example
Displaying MPLS LDP Neighbor Information Example
Enabling LSP Tunnel Signalling Example
Configuring a LSP Tunnel Example
Displaying the LSP Tunnel Information Example
Configuring an MPLS Traffic Engineering Tunnel Example
Configuring MPLS Virtual Private Networks Example
Configuring MPLS on a LSC-Controlled BPX Port Example
Implementing MPLS CoS Example
Configuring Cisco Express Forwarding
Running IP on Router 2
Running IP on Router 1
Running MPLS on Router 4
Running MPLS on Router 3
Running MPLS on Router 5
Running MPLS on Router 6
Configuring ATM Switch 2
Configuring ATM Switch 1
Configuring Multiprotocol Label Switching
This chapter describes how to configure your network to perform Multiprotocol Label Switching (MPLS). For a complete description of the MPLS commands, see the chapter "MPLS Commands" in the Cisco IOS Switching Services Command Reference. For documentation of other commands that appear in this chapter, you can use the command reference master index or search online.
This chapter contains the following sections:
•
Configuring MPLS Levels of Control
•
Configuring MPLS Traffic Engineering
•
Configuring MPLS Traffic Engineering Paths
•
Configuring MPLS Virtual Private Networks
•
Configuring MPLS CoS Backbone Support
•
Configuring MPLS CoS
•
Configuring the Label Switch Controller
•
MPLS Configuration Examples
Configuring MPLS Levels of Control
This section describes three sample cases where MPLS is configured on Cisco 7500/7200 series routers. These cases show the levels of control possible in selecting how MPLS is deployed in a network.
Table 16 lists the cases, including the steps to perform MPLS and their corresponding Cisco IOS CLI commands.
Table 16 MPLS—Levels of Control
Levels of Control Examples
|
Describes
|
Example 1—Enable MPLS Incrementally in a Network
|
The steps necessary for incrementally deploying MPLS through a network, assuming that packets to all destination prefixes should be label switched.
|
Example 2—Route Labeled Packets to Network A Only
|
The mechanism by which MPLS can be restricted, such that packets are label switched to only a subset of destinations.
|
Example 3—Limit Label Distribution on a MPLS Network
|
The mechanisms for further controlling the distribution of labels within a network.
|
For more information about the Cisco IOS CLI commands, see the chapter "MPLS Commands" in the Cisco IOS Switching Services Command Reference.
Figure 21 shows a router-only MPLS network with Ethernet interfaces. The following sections outline the procedures for configuring MPLS and displaying MPLS information in a network based on the topology shown in Figure 21.
Note
Ethernet interfaces are shown in Figure 21, but any of the interfaces that are supported could be used instead. ATM interfaces operating as TC-ATM interfaces are the exception to this statement.
Figure 21 A Router-Only MPLS Network with Ethernet Interfaces
Example 1—Enable MPLS Incrementally in a Network
In the first case, assume that you want to deploy MPLS incrementally throughout a network of routers, but that you do not want to restrict which destination prefixes are label switched. For a description of the commands listed in these cases, see the chapter "MPLS Commands" in the Cisco IOS Switching Services Command Reference.
To enable MPLS incrementally in a network, use the following steps and enter the commands in router configuration mode (see Figure 21):
| |
Command
|
Purpose
|
Step 1
|
At R1:
Router# configuration terminal
Router(config)# ip cef distributed
Router(config)# tag-switching advertise-tags
Router(config)# interface e0/1
Router(config-if)# tag-switching ip
Router(config-if)# exit
At R3:
Router# configuration terminal
Router(config)# ip cef distributed
Router(config)# tag-switching advertise-tags
Router(config)# interface e0/1
Router(config-if)# tag-switching ip
|
Enables MPLS between R1 and R3.
In order to configure distributed VIP MPLS, you must configure distributed CEF switching. Enter the ip cef distributed command on all routers.
|
Step 2
|
At R3:
Router(config)# interface e0/2
Router(config-if)# tag-switching ip
Router(config-if)# exit
At R4:
Router# configuration terminal
Router(config)# ip cef distributed
Router(config)# tag-switching advertise-tags
Router(config)# interface e0/2
Router(config-if)# tag-switching ip
Router(config-if)# exit
|
Enables MPLS between R3 and R4.
|
After you perform these steps, R1 applies labels to packets that are forwarded through interface e0/1, with a next hop to R3.
You can enable MPLS throughout the rest of the network by repeating steps 1 and 2 as appropriate on other routers until all routers and interfaces are enabled for MPLS. See the example in the "Enabling MPLS Incrementally in a Network Example" section.
Example 2—Route Labeled Packets to Network A Only
In the second case, assume that you want to enable MPLS for a subset of destination prefixes. This option might be used to test MPLS across a large network. In this case, you would configure the system so that only a small number of destinations is label switched (for example, internal test networks) without the majority of traffic being affected.
Use the following commands at each router in the network in router configuration mode (see Figure 21):
| |
Command
|
Purpose
|
Step 1
|
Router(config)# access-list 1 permit A
|
Limits label distribution by using an access list.
(Enter the actual network address and netmask in place of permit A. For example,
access-list 1 permit 192.5.34. 0 0.0.0.255.)
|
Step 2
|
Router(config)# tag-switching advertise-tags for 1
|
Instructs the router to advertise for network A only to all adjacent label switch routers.
Any labels for other destination networks that the router may have distributed before this step are withdrawn.
|
Example 3—Limit Label Distribution on a MPLS Network
The third case demonstrates the full control which is available to you in determining the destination prefixes and paths for which MPLS is enabled.
Configure the routers so that packets addressed to network A are labeled, all other packets are unlabeled, and only links R1-R3, R3-R4, R4-R6, and R6-R7 carry labeled packets addressed to A. For example, suppose the normally routed path for packets arriving at R1 addressed to network A or network B is R1, R3, R5, R6, R7. A packet addressed to A would flow labeled on links R1-R3 and R6-R7, and unlabeled on links R3-R5 and R5-R6. A packet addressed to B would follow the same path, but would be unlabeled on all links.
Assume that at the outset the routers are configured so that packets addressed to network A are labeled and all other packets are unlabeled (as at the completion of Case 2).
Use the tag-switching advertise-tags command and access lists to limit label distribution. Specifically, you need to configure routers R2, R5, and R8 to distribute no labels to other routers. This ensures that no other routers send labeled packets to any of those three. You also need to configure routers R1, R3, R4, R6, and R7 to distribute labels only for network A and to distribute them only to the appropriate adjacent router; that is, R3 distributes its label for network A only to R1, R4 only to R3, and so on.
To limit label distribution on a MPLS network, use the following commands in router configuration mode:
| |
Command
|
Purpose
|
Step 1
|
Router(config)# no tag-switching advertise-tags
|
Configures R2 to distribute no labels.
|
Step 2
|
Router(config)# no tag-switching advertise-tags
|
Configures R5 to distribute no labels.
|
Step 3
|
Router(config)# no tag-switching advertise-tags
|
Configures R8 to distribute no labels
|
Step 4
|
Router(config)# access-list 2 permit R1
Router(config)# no tag-switching advertise-tags for 1
Router(config)# tag-switching advertise-tags for 1 to 2
Router(config)# exit
|
Configures R3 by defining an access list and by instructing the router to distribute labels for the networks permitted by access list 1 (created as part of Case 2) to the routers permitted by access list 2.
The access list 2 permit R1 command permits R1 and denies all other routers.
(Enter the actual network address and netmask in place of permit R1. For example, access-list 1 permit 192.5.34.0 0.0.0.255.)
|
Step 5
|
Router(config)# access-list 1 permit A
Router(config)# access-list 2 permit R1
Router(config)# tag-switching advertise-tags for 1 to 2
Router(config)# exit
|
Configures R3.
(Enter the actual network address and netmask in place of permit R1. For example, access-list 1 permit 192.5.34.0 0.0.0.255.)
|
Step 6
|
Router(config)# access-list 1 permit A
Router(config)# access-list 2 permit R3
Router(config)# tag-switching advertise-tags for 1 to 2
Router(config)# exit
|
Configures R4.
(Enter the actual network address and netmask in place of permit R1. For example, access-list 1 permit 192.5.34.0 0.0.0.255.)
|
Step 7
|
Router(config)# access-list 1 permit A
Router(config)# access-list 2 permit R4
Router(config)# tag-switching advertise-tags for 1 to 2
Router(config)# exit
|
Configures R6.
(Enter the actual network address and netmask in place of permit R1. For example, access-list 1 permit 192.5.34.0 0.0.0.255.)
|
Step 8
|
Router(config)# access-list 1 permit A
Router(config)# access-list 2 permit R6
Router(config)# tag-switching advertise-tags for 1 to 2
Router(config)# exit
|
Configures R7.
(Enter the actual network address and netmask in place of permit R1. For example, access-list 1 permit 192.5.34.0 0.0.0.255.)
|
Configuring MPLS Traffic Engineering
Perform the following tasks before enabling MPLS traffic engineering:
•
Configure MPLS tunnels
•
Enable Cisco Express Forwarding (CEF)
•
Enable IS-IS
Perform the tasks in the following sections to configure MPLS traffic engineering:
•
Configuring a Device to Support Tunnels
•
Configuring an Interface to Support RSVP-based Tunnel Signalling and IGP Flooding
•
Configuring an MPLS Traffic Engineering Tunnel
•
Configuring IS-IS for MPLS Traffic Engineering
Configuring a Device to Support Tunnels
To configure a device to support tunnels, use the following commands in configuration mode:
| |
Command
|
Purpose
|
Step 1
|
Router(config)# ip cef
|
Enables standard CEF operation.
For information about CEF configuration and command syntax, see the Cisco IOS Switching Services Configuration Guide and Cisco IOS Switching Services Command Reference.
|
Step 2
|
Router(config)# mpls traffic-eng tunnels
|
Enables the MPLS traffic engineering tunnel feature on a device.
|
Configuring an Interface to Support RSVP-based Tunnel Signalling and IGP Flooding
To configure an interface to support RSVP-based tunnel signalling and IGP flooding, use the following commands in interface configuration mode:
Note
You need to enable the tunnel feature and specify the amount of reservable RSVP bandwidth if you have an interface that supports MPLS traffic engineering.
| |
Command
|
Purpose
|
Step 1
|
Router(config-if)# mpls traffic-eng tunnels
|
Enables the MPLS traffic engineering tunnel feature on an interface.
|
Step 2
|
Router(config-if)# ip rsvp bandwidth bandwidth
|
Enables RSVP for IP on an interface and specify amount of bandwidth to be reserved.
For a description of IP RSVP command syntax, see the Cisco IOS Quality of Service Command Reference.
|
Configuring an MPLS Traffic Engineering Tunnel
To configure an MPLS traffic engineering tunnel, use the following commands in interface configuration mode. This tunnel has two path setup options—a preferred explicit path and a backup dynamic path.
| |
Command
|
Purpose
|
Step 1
|
Router(config)# interface tunnel1
|
Configures an interface type and enter interface configuration mode.
|
Step 2
|
Router(config-if)# tunnel destination A.B.C.D
|
Specifies the destination for a tunnel.
|
Step 3
|
Router(config-if)# tunnel mode mpls traffic-eng
|
Sets encapsulation mode of the tunnel to MPLS traffic engineering.
|
Step 4
|
Router(config-if)# tunnel mpls traffic-eng
bandwidth bandwidth
|
Configures bandwidth for the MPLS traffic engineering tunnel.
|
Step 5
|
Router(config-if)# tunnel mpls traffic-eng
path-option 1 explicit name test
|
Configures a named IP explicit path.
|
Step 6
|
Router(config-if)# tunnel mpls traffic-eng
path-option 2 dynamic
|
Configures a backup path to be dynamically calculated from the traffic engineering topology database.
|
Configuring IS-IS for MPLS Traffic Engineering
To configure IS-IS for MPLS Traffic engineering, use the following IS-IS traffic engineering commands in interface configuration mode. For a description of IS-IS commands (excluding the IS-IS traffic engineering commands), see the Cisco IOS IP and IP Routing Configuration Guide.
| |
Command
|
Purpose
|
Step 1
|
Router(config)# router isis
|
Enables IS-IS routing and specify an IS-IS process for IP, which places you in router configuration mode.
|
Step 2
|
Router(config-router)# mpls traffic-eng level 1
|
Turns on MPLS traffic engineering for IS-IS level 1.
|
Step 3
|
Router(config-router)# mpls traffic-eng
router-id loopback0
|
Specifies the traffic engineering router identifier for the node to be the IP address associated with interface loopback0.
|
Step 4
|
Router(config-router)# metric-style wide
|
Configures a router to generate and accept only new-style TLVs.
|
Configuring MPLS Traffic Engineering Paths
To configure an MPLS traffic engineering tunnel that an IGP can use, use the following commands in interface configuration mode:
| |
Command
|
Purpose
|
Step 1
|
Router(config-if)# interface tunnel1
|
Configures an interface type and enters interface configuration mode.
|
Step 2
|
Router(config-router)# tunnel mpls traffic-eng
autoroute announce
|
Causes the IGP to use the tunnel in its enhanced SPF calculation.
|
Configuring MPLS Virtual Private Networks
Perform the tasks in the following sections to configure and verify VPNs:
•
Defining VPNs
•
Configuring BGP Routing Sessions
•
Configuring PE to PE Routing Sessions
•
Configuring BGP PE to CE Routing Sessions
•
Configuring RIP PE to CE Routing Sessions
•
Configuring Static Route PE to CE Routing Sessions
•
Verifying VPN Operation
Defining VPNs
To define VPN routing instances, use the following commands in router configuration mode on the PE router:
| |
Command
|
Purpose
|
Step 1
|
Router(config)# ip vrf vrf-name
|
Enters VRF configuration mode and define the VPN routing instance by assigning a VRF name.
|
Step 2
|
Router(config-vrf)# rd route-distinguisher
|
Creates routing and forwarding tables.
|
Step 3
|
Router(config-vrf)# route-target {import | export |
both} route-target-ext-community
|
Creates a list of import and/or export route target communities for the specified VRF.
|
Step 4
|
Router(config-vrf)# import map route-map
|
(Optional) Associates the specified import route map with the VRF.
|
Step 5
|
Router(config-vrf)# export map route-map
|
(Optional) Associates the specified export route map with the VRF.
|
Step 6
|
Router(config-if)# ip vrf forwarding vrf-name
|
Associates a VRF with an interface or subinterface.
|
Configuring BGP Routing Sessions
To configure BGP routing sessions in a provider network, use the following commands in router configuration mode on the PE router:
| |
Command
|
Purpose
|
Step 1
|
Router(config)# router bgp autonomous-system
|
Configures the BGP routing process with the autonomous system number passed along to other BGP routers.
|
Step 2
|
Router(config-router)# neighbor {ip-address |
peer-group-name} remote-as number
|
Specifies a neighbor's IP address or BGP peer group identifying it to the local autonomous system.
|
Step 3
|
Router(config-router)# neighbor ip-address activate
|
Activates the advertisement of the IPv4 address family.
|
Configuring PE to PE Routing Sessions
To configure PE to PE routing sessions in a provider network, use the following commands in router configuration mode on the PE router:
| |
Command
|
Purpose
|
Step 1
|
Router(config-router)# address-family vpnv4 [unicast |
multicast]
|
Defines IBGP parameters for VPNv4 NLRI exchange.
|
Step 2
|
Router(config-router-af)# neighbor address remote-as
as-number
|
Defines an IBGP session to exchange VPNv4 NLRIs.
|
Step 3
|
Router(config-router-af)# neighbor address activate
|
Activates the advertisement of the IPv4 address family.
|
Configuring BGP PE to CE Routing Sessions
To configure BGP PE to CE routing sessions, use the following commands in router configuration mode on the PE router:
| |
Command
|
Purpose
|
Step 1
|
Router(config-router)# address-family ipv4 [unicast]
vrf vrf-name
|
Defines EBGP parameters for PE to CE routing sessions.
Note The default is Off for auto-summary and synchronization in the VRF address-family submode.
|
Step 2
|
Router(config-router-af)# neighbor address remote-as
as-number
|
Defines an EBGP session between PE and CE routers.
|
Step 3
|
Router(config-router-af)# neighbor address activate
|
Activates the advertisement of the IPv4 address family.
|
Configuring RIP PE to CE Routing Sessions
To configure RIP PE to CE routing sessions, use the following commands in router configuration mode on the PE router:
| |
Command
|
Purpose
|
Step 1
|
Router(config)# router rip
|
Enables RIP.
|
Step 2
|
Router(config-router-af)# address-family ipv4
[unicast] vrf vrf-name
|
Defines RIP parameters for PE to CE routing sessions.
Note The default is Off for auto-summary and synchronization in the VRF address-family submode.
|
Step 3
|
Router(config-router-af)# network prefix
|
Enables RIP on the PE to CE link.
|
Configuring Static Route PE to CE Routing Sessions
To configure static route PE to CE routing sessions, use the following commands in router configuration mode on the PE router:
| |
Command
|
Purpose
|
Step 1
|
Router(config)# ip route vrf vrf-name
|
Defines static route parameters for every PE to CE session.
|
Step 2
|
Router(config-router)# address-family ipv4 [unicast]
vrf vrf-name
|
Defines static route parameters for every BGP PE to CE routing session.
Note The default is Off for auto-summary and synchronization in the VRF address-family submode.
|
Step 3
|
Router(config-router-af)# redistribute static
|
Redistributes VRF static routes into the VRF BGP table.
|
Step 4
|
Router(config-router-af)# redistribute static
connected
|
Redistributes directly connected networks into the VRF BGP table.
|
Verifying VPN Operation
To verify VPN operation by displaying routing information on the PE routers, use any of the following show commands in any order:
Command
|
Purpose
|
Router# show ip vrf
|
Displays the set of defined VRFs and interfaces.
|
Router# show ip vrf [{brief | detail | interfaces}] vrf-name
|
Displays information about defined VRFs and associated interfaces.
|
Router# show ip route vrf vrf-name
|
Displays the IP routing table for a VRF.
|
Router# show ip protocols vrf vrf-name
|
Displays the routing protocol information for a VRF.
|
Router# show ip cef vrf vrf-name
|
Displays the CEF forwarding table associated with a VRF.
|
Router# show ip interface interface-number
|
Displays the VRF table associated with an interface.
|
Router# show ip bgp vpnv4 all [tags]
|
Displays information about all BGP VPN-IPv4 prefixes.
|
Router# show tag-switching forwarding vrf vrf-name [prefix
mask/length][detail]
|
Displays label forwarding entries that correspond to VRF routes advertised by this router.
|
Configuring MPLS CoS Backbone Support
Several different methods exist for supporting CoS across an MPLS backbone, the choice depending on whether the core has label switch routers (LSRs) or ATM LSRs. In each case, however, the CoS building blocks are the same: CAR, WRED, and WFQ.
Three configurations are described below:
•
LSRs used at the core of the network backbone
•
ATM LSRs used at the core of the network backbone
•
ATM switches without the MPLS feature enabled
LSRs
LSRs at the core of the MPLS backbone are usually either Cisco 7200 and Cisco 7500 series routers running MPLS software. Packets are processed as follows:
1.
IP packets enter into the edge of the MPLS network.
2.
The edge LSRs invoke CAR to classify the IP packets and possibly set IP precedence. Alternatively, IP packets can be received with their IP precedence already set.
3.
For each packet, the router performs a lookup on the IP address to determine the next-hop LSR.
4.
The appropriate label is placed on the packet with the IP precedence bits copied into every label entry in the MPLS header.
5.
The labeled packet is then forwarded to the appropriate output interface for processing.
6.
The packets are differentiated by class. This is done according to drop probability (WRED) or according to bandwidth and delay (WFQ). In either case, LSRs enforce the defined differentiation by continuing to employ WRED or WFQ on each hop.
ATM LSRs
ATM LSRs at the core implement the multiple label virtual circuit model (LVC). In the multiple LVC model, one label is assigned for each service class for each destination. The operation of the edge LSR is the same as that described previously for the LSR case, except that the output is an ATM interface. WRED is used to define service classes and determine discard policy during congestion.
In the multiple LVC model, however, class-based WFQ is used to define the amount of bandwidth available to each service class. Packets are scheduled by class during congestion. The ATM LSRs participate in the differentiation of classes with WFQ and intelligently drop packets when congestion occurs. The mechanism for this discard activity is weighted early packet discard (WEPD).
ATM Switches
When the core network uses ATM switches and the edge of the network uses MPLS-enabled edge LSRs, the edge LSRs are interconnected through a mesh of ATM Forum PVCs (CBR, VBR, or UBR) over the ATM core switches. The edge LSRs invoke WFQ on a per-VC basis to provide differentiation based on the delay of each MPLS CoS multiplexed onto the ATM Forum PVC. Optionally, WRED can also be used on a per-VC basis to manage drop priority between classes when congestion occurs on the edge LSR.
Table 17 lists the MPLS CoS features supported on packet interfaces.
Table 17 MPLS CoS Features Supported on Packet Interfaces
MPLS CoS Packet Feature
|
Cisco 7500 Series
|
Cisco 7200 Series
|
Cisco 4x00 Series
|
Cisco 36x0 Series
|
Cisco 2600 Series
|
Per-interface WRED
|
X
|
X
|
X
|
X
|
Untested
|
Per-interface, per-flow WFQ
|
X
|
X
|
X
|
X
|
Untested
|
Per-interface, per-class WFQ
|
X
|
X
|
X
|
X
|
Untested
|
Table 18 lists the MPLS CoS features supported on ATM interfaces.
Table 18 MPLS CoS Features Supported on ATM Interfaces
MPLS CoS ATM Forum PVCs Feature
|
Cisco 7500 Series
|
Cisco 7200 Series
|
Cisco 4x00
Series
|
Cisco 36x0 Series
|
Cisco 2600 Series
|
Per-VC WRED
|
X1
|
X1
|
—
|
—
|
—
|
Per-VC WRED and per VC, per-class WFQ
|
—
|
X1
|
—
|
—
|
—
|
MPLS CoS Multi-VC or LBR Feature
|
|
|
|
|
|
Per-interface WRED
|
X2
|
X2
|
—
|
—
|
—
|
Per-interface, per-class WFQ
|
X2
|
X2
|
—
|
—
|
—
|
Table 19 lists the MPLS CoS features supported on ATM switches.
Table 19 MPLS CoS Features Supported on ATM Switches
MPLS CoS ATM Forum PVCs Feature
|
BPX 8650 Series
|
MGX 8800 Series
|
LightStream 1010 ATM Switch 1
|
|
MPLS CoS ATM Forum PVCs
|
X
|
X
|
X
|
X
|
MPLS CoS Multi-VC or LBR—per-class WFQ
|
X
|
—
|
—
|
—
|
Configuring MPLS CoS
Perform the tasks in the following sections to configure the MPLS CoS feature:
•
Configuring PVC Mode in a Non-MPLS-Enabled Core
•
Configuring Multi-VC Mode in a MPLS-Enabled Core
•
Configuring Multi-VCs Using the Cos-Map Function
•
Configuring DWFQ and Changing Queue Weights on an Outgoing Interface
•
Verifying CoS Operation
Configuring PVC Mode in a Non-MPLS-Enabled Core
To configure a PVC in a non-MPLS-enabled core, use the following commands in router configuration mode:
| |
Command
|
Purpose
|
Step 1
|
Router(config)# interface type number point-to-point
|
Configures a point-to-point ATM subinterface.
|
Step 2
|
Router(config-subif)# ip unnumbered Loopback0
|
Assigns IP address to the subinterface.
|
Step 3
|
Router(config-subif)# pvc 4/40
|
Creates a PVC on the subinterface.
|
Step 4
|
Router(config-if-atm-vc)# random-detect attach
groupname
|
Activates (D)WRED on the interface.
|
Step 5
|
Router(config-if-atm-vc)# encapsulation aal5snap
|
Sets encapsulation type for the PVC.
|
Step 6
|
Router(config-subif)# exit
|
Exits from PVC mode and enters subinterface mode.
|
Step 7
|
Router(config-subif)# tag-switching ip
|
Enables MPLS IP on the point-to-point interface.
|
Configuring Multi-VC Mode in a MPLS-Enabled Core
To configure multi-VC mode in an MPLS-enabled core, use the following commands in router configuration mode:
Note
The default for the multi-VC mode creates four VCs for each MPLS destination.
| |
Command
|
Purpose
|
Step 1
|
Router(config)# interface type number tag-switching
|
Configures an ATM MPLS subinterface.
|
Step 2
|
Router(config-subif)# ip unnumbered Loopback0
|
Assigns IP address to the subinterface.
|
Step 3
|
Router(config-subif)# tag-switching atm multi-vc
|
Enables ATM multi-VC mode on the subinterface.
|
Step 4
|
Router(config-subif)# tag-switching ip
|
Enables MPLS on the ATM subinterface.
|
Configuring Multi-VCs Using the Cos-Map Function
If you do not choose to use the default for configuring label VCs, you can configure fewer label VCs by using the CoS map function. To use the CoS map function, use the following commands in router configuration mode:
| |
Command
|
Purpose
|
Step 1
|
Router(config)# tag-switching cos-map cos-map number
|
Creates a CoS map.
|
Step 2
|
Router(config-tag-cos-map)# class 1 premium
|
Enters the cos-map submode and maps premium and standard classes to label VCs.
This CoS map assigns class 1 traffic to share the same label VC as class 2 traffic. The numbers you assign to the CoS map range from 0 to 3.
The defaults are:
• class 0 is available
• class 1 is standard
• class 2 is premium
• class 3 is control
|
Step 3
|
Router(config-tag-cos-map)# exit
|
Exits the MPLS CoS map submode.
|
Step 4
|
Router(config)# access-list access-list-number permit
destination
|
Creates an access list.
The access list acts on traffic going to the specified destination address.
|
Step 5
|
Router(config)# tag-switching prefix-map prefix-map
access-list access-list cos-map cos-map
|
Configures the router to use a specified CoS map when a MPLS destination prefix matches the specified access list.
|
Configuring DWFQ and Changing Queue Weights on an Outgoing Interface
To configure distributed fair queueing and change queue weights on an interface, use the following commands in interface configuration mode after specifying the interface:
| |
Command
|
Purpose
|
Step 1
|
Router(config)# interface type number
|
Specifies the interface type and number.
|
Step 2
|
Router(config-if)# fair-queue tos
|
Configures an interface to use fair queueing
|
Step 3
|
Router(config)# fair-queue tos class weight
|
Changes the class weight on the specified interface.
|
Verifying CoS Operation
To verify the operation of MPLS CoS, use the following commands in configuration mode:
| |
Command
|
Purpose
|
Step 1
|
Router# show tag-switching interfaces interfaces
|
Displays detailed information about label switching interfaces.
|
Step 2
|
Router# show tag-switching cos-map
|
Displays the CoS map used to assign VCs.
|
Step 3
|
Router# show tag-switching prefix-map
|
Displays the prefix map used to assign a CoS map to network prefixes.
|
Configuring the Label Switch Controller
On the Label Switch Controller (LSC), the TC-ATM ports on the controlled switch are represented as a new IOS interface type called extended Label ATM (XmplsATM). XmplsATM interfaces are associated with particular physical interfaces on the controlled switch through the extended-port interface configuration command.
Figure 22 illustrates a configuration in which a LSC is controlling three ports on a BPX—6.1, 6.2, and 12.2. These corresponding XmplsATM interfaces have been created on the LSC and associated with the corresponding ATM ports using the extended-port interface configuration command. Note that an additional port on the BPX (12.1) acts as the switch control port, and an ATM interface (ATM1/0) on the LSC acts as the master control port.
Figure 22 shows a typical LSC configuration where the LSC and BPX together function as an ATM-LSR.
Figure 22 Typical LSC/BPX Configuration
LSC as Label Edge Device
The LSC can function simultaneously as a controller for an ATM switch and as a label edge device. Traffic can be forwarded between a router interface and a TC-ATM interface on the controlled switch as well as between two TC-ATM interfaces on the controlled switch. The LSC can perform the imposition and removal of labels and can serve as the head or tail of a label-switched path (LSP) tunnel. However, when acting as a label edge device, the LSC is limited by the capabilities of its control link with the switch as follows:
•
Total throughput between all other router interfaces and switch interfaces is limited by the bandwidth of the control link (that is, OC-3, 155 Mb per second).
•
Label space for LSC-terminated VCs is limited by the number of VCs supported on the control link.
Support for ATM Forum Protocols
The LSC may be connected to a network running ATM Forum protocols while simultaneously performing its LSC function. However, the connection to the ATM-Forum network must be through a separate ATM interface, that is, not through the master control port.
Configuring MPLS on a LSC-Controlled BPX Port
To configure MPLS on a port of the BPX that is being controlled by the LSC, use the following commands in configuration mode. The assumption is that the BPX is connected to the LSC through ATM1/0; the goal is to configure MPLS on slot 6, port 1 of the BPX.
| |
Command
|
Purpose
|
Step 1
|
Router(config)# interface atm1/0
Router(config-if)# tag-control-protocol vsi
|
Enables the VSI protocol on the control interface (ATM1/0).
|
Step 2
|
Router(config-if)# interface XTagATM61
Router(config-if)# extended-port atm1/0 bpx 6.1
|
Creates an extended label ATM (XmplsATM) virtual interface and bind it to BPX port 6.1.
|
Step 3
|
Router(config-if)# ip address 192.103.210.5
255.255.255.0
Router(config-if)# tag-switching ip
Router(config-if)# exit
|
Configures MPLS on the extended label ATM interface. (extended label ATM interfaces differ from ordinary ATM interfaces in that MPLS is configured on the primary interface of an extended label ATM interface, whereas it is configured on a MPLS subinterface of an ordinary ATM interface.)
|
Step 4
|
Router(config)# ip cef switch
|
Enables Cisco Express Forwarding (CEF) switching.
|
MPLS Configuration Examples
This section provides sample configurations. It contains the following sections:
•
Enabling MPLS Incrementally in a Network Example
•
Enabling MPLS for a Subset of Destination Prefixes Example
•
Selecting the Destination Prefixes and Paths Example
•
Displaying MPLS LDP Binding Information Example
•
Displaying MPLS Forwarding Table Information Example
•
Displaying MPLS Interface Information Example
•
Displaying MPLS LDP Neighbor Information Example
•
Enabling LSP Tunnel Signalling Example
•
Configuring a LSP Tunnel Example
•
Displaying the LSP Tunnel Information Example
•
Configuring an MPLS Traffic Engineering Tunnel Example
•
Configuring MPLS Virtual Private Networks Example
•
Configuring MPLS on a LSC-Controlled BPX Port Example
•
Implementing MPLS CoS Example
Enabling MPLS Incrementally in a Network Example
The following example shows you how to configure MPLS incrementally throughout a network of routers. You enable MPLS first between one pair of routers (in this case, R1 and R3 shown in Figure 21) and add routers step by step until every router in the network is label switch enabled.
router-1# configuration terminal
router-1(config)# ip cef distributed
router-1(config)# tag-switching ip
router-1(config)# interface e0/1
router-1(config-if)# tag-switching ip
router-1(config-if)# exit
router-1(config)#
router-3# configuration terminal
router-3(config)# ip cef distributed
router-3(config)# tag-switching ip
router-3(config)# interface e0/1
router-3(config-if)# tag-switching ip
router-3(config-if)# exit
router-3(config)#
Enabling MPLS for a Subset of Destination Prefixes Example
The following example shows the commands you enter at each of the routers to enable MPLS for only a subset of destination prefixes (see Figure 21).
Router(config)# access-list-1 permit A
Router(config)# tag-switching advertise-tags for 1
Selecting the Destination Prefixes and Paths Example
The following example shows the commands you enter to configure the routers to select the destination prefixes and paths for which MPLS is enabled. When you configure R2, R5, and R8 to distribute no labels to other routers, you ensure that no routers send them labeled packets. You also need to configure routers R1, R3, R4, R6, and R7 to distribute labels only for network A and only to the applicable adjacent router. This configuration ensures that R3 distributes its label for network A only to R1, R4 only to R3, R6 only to R4, and R7 only to R6 (see Figure 21).
router-2(config)# no tag-switching advertise-tags
router-5(config)# no tag-switching advertise-tags
router-8(config)# no tag-switching advertise-tags
router-1(config)# access-list permit R1
router-1(config)# no tag-switching advertise-tags for 1
router-1(config)# tag-switching advertise-tags for 1 to 2
router-1(config)# exit
router-3# access-list 1 permit A
router-3# access-list 2 permit R1
router-3# tag-switching advertise-tags for 1 to 2
router-3# exit
router-4# access-list 1 permit A
router-4# access-list 2 permit R3
router-4# tag-switching advertise-tags for 1 to 2
router-4# exit
router-6# access-list 1 permit A
router-6# access-list 2 permit R4
router-6# tag-switching advertise-tags for 1 to 2
router-6# exit
router-7# access-list 1 permit A
router-7# access-list 2 permit R6
router-7# tag-switching advertise-tags for 1 to 2
router-7# exit
Displaying MPLS LDP Binding Information Example
The following example shows how to use the show tag-switching tdp bindings command to display the contents of the Label Information Base (LIB). The display can show the entire database or can be limited to a subset of entries, based on prefix, input or output label values or ranges, and/or the neighbor advertising the label.
Note
This command displays downstream mode bindings. For label VC bindings, see the show tag-switching atm-tdp bindings command.
Router# show tag-switching tdp bindings
tib entry: 10.92.0.0/16, rev 28
local binding: tag: imp-null(1)
remote binding: tsr: 172.27.32.29:0, tag: imp-null(1)
tib entry: 10.102.0.0/16, rev 29
remote binding: tsr: 172.27.32.29:0, tag: 26
tib entry: 10.105.0.0/16, rev 30
local binding: tag: imp-null(1)
remote binding: tsr: 172.27.32.29:0, tag: imp-null(1)
tib entry: 10.205.0.0/16, rev 31
local binding: tag: imp-null(1)
remote binding: tsr: 172.27.32.29:0, tag: imp-null(1)
tib entry: 10.211.0.7/32, rev 32
remote binding: tsr: 172.27.32.29:0, tag: 28
tib entry: 10.220.0.7/32, rev 33
remote binding: tsr: 172.27.32.29:0, tag: 29
tib entry: 99.101.0.0/16, rev 35
local binding: tag: imp-null(1)
remote binding: tsr: 172.27.32.29:0, tag: imp-null(1)
tib entry: 100.101.0.0/16, rev 36
remote binding: tsr: 172.27.32.29:0, tag: imp-null(1)
tib entry: 171.69.204.0/24, rev 37
local binding: tag: imp-null(1)
remote binding: tsr: 172.27.32.29:0, tag: imp-null(1)
tib entry: 172.27.32.0/22, rev 38
local binding: tag: imp-null(1)
remote binding: tsr: 172.27.32.29:0, tag: imp-null(1)
tib entry: 210.10.0.0/16, rev 39
local binding: tag: imp-null(1)