This sample configuration shows how to implement traffic engineering (TE) on top of an existing Multiprotocol Label Switching (MPLS) network using Frame Relay and Intermediate System-to-Intermediate System (IS-IS). This example implements two dynamic tunnels (automatically set up by the ingress Label Switch Routers [LSR]) and two tunnels that use explicit paths.
TE is a generic name that corresponds to the use of different technologies to optimize the utilization of a given backbone capacity and topology.
MPLS TE provides a way to integrate TE capabilities (such as those used on Layer 2 protocols like ATM) into Layer 3 protocols (IP). MPLS TE uses an extension to existing protocols (Resource Reservation Protocol [RSVP], IS-IS, Open Shortest Path First [OSPF]) to calculate and establish unidirectional tunnels that are set according to the network constraint. Traffic flows are mapped on the different tunnels depending on their destination.
There are no specific requirements for this document.
The information in this document is based on these software and hardware versions:
Cisco IOS® Software Releases 12.0(11)S and 12.1(3a)T
Cisco 3600 routers
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
For more information on document conventions, refer to Cisco Technical Tips Conventions.
Component | Description |
---|---|
IP tunnel interfaces | Layer 2: An MPLS tunnel interface is the head of a Label Switched Path (LSP). It is configured with a set of resource requirements, such as bandwidth and priority. Layer 3: The LSP tunnel interface is the head-end of a unidirectional virtual link to the tunnel destination. |
RSVP with TE extension | RSVP is used to establish and maintain LSP tunnels based on the calculated path using PATH and RESV messages. The RSVP protocol specification has been extended so that the RESV messages also distribute label information. |
Link-state IGP (IS-IS or OSPF with TE extension) | Used to flood topology and resource information from the link management module. IS-IS uses new Type-Length-Values (TLVs) and OSPF uses type 10 Link State Advertisements (also called Opaque LSAs). |
MPLS TE path calculation module | Operates at the LSP head only and determines a path using information from the link-state database. |
MPLS TE link management module | At each LSP hop, this module performs link call admission on the RSVP signaling messages, and bookkeeping of topology and resource information to be flooded by OSPF or IS-IS. |
Label switching forwarding | Basic MPLS forwarding mechanism based on labels. |
This document uses the network setup shown in this diagram.
This procedure can be used to perform a quick configuration. For more detailed information, refer to MPLS Traffic Engineering and Enhancements.
Set up your network with the usual configuration (in this case, Frame Relay is used).
Note: It is mandatory to set up a loopback interface with a IP mask of 32 bits.
This address is used for the set up of the MPLS network and TE by the routing protocol. This loopback address must be reachable via the global routing table.
Set up a routing protocol for the MPLS network. It must be a link-state protocol (IS-IS or OSPF). In the routing protocol configuration mode, enter:
For IS-IS:
metric-style wide (or metric-style both) mpls traffic-eng router-id LoopbackN mpls traffic-eng [level-1 | level-2 |]
For OSPF:
mpls traffic-eng area X mpls traffic-eng router-id LoopbackN (must have a 255.255.255.255 mask)
Enable MPLS TE. Enter ip cef (or ip cef distributed if available in order to enhance performance) in the general configuration mode. Enable MPLS (tag-switching ip) on each concerned interface. Enter mpls traffic-engineering tunnel to enable MPLS TE, as well as RSVP for zero-bandwidth TE tunnels.
Enable RSVP by entering ip rsvp bandwidth XXX on each concerned interface for non-zero bandwidth tunnels.
Set up tunnels to be used for TE. There are many options that can be configured for MPLS TE tunnel, but the tunnel mode mpls traffic-eng command is mandatory. The tunnel mpls traffic-eng autoroute announce command announces the presence of the tunnel by the routing protocol.
Note: Do not forget to use ip unnumbered loopbackN for the IP address of the tunnel interfaces.
This sample configuration shows two dynamic tunnels with different bandwidth (and priorities) that go from the Pescara router to the Pesaro router, and two tunnels that use an explicit path that goes from Pesaro to Pescara.
Only the relevant parts of the configuration files are included. The commands used to enable MPLS are italicized, while the commands specific to TE (including RSVP) are in bold.
Pesaro |
---|
Current configuration: ! version 12.1 ! hostname Pesaro ! ip cef mpls traffic-eng tunnels ! interface Loopback0 ip address 10.10.10.6 255.255.255.255 ip router isis ! interface Tunnel158 ip unnumbered Loopback0 tunnel destination 10.10.10.4 tunnel mode mpls traffic-eng tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng priority 2 2 tunnel mpls traffic-eng bandwidth 158 tunnel mpls traffic-eng path-option 1 explicit name low ! interface Tunnel159 ip unnumbered Loopback0 tunnel destination 10.10.10.4 tunnel mode mpls traffic-eng tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng priority 4 4 tunnel mpls traffic-eng bandwidth 159 tunnel mpls traffic-eng path-option 1 explicit name straight ! interface Serial0/0 no ip address encapsulation frame-relay ! interface Serial0/0.1 point-to-point bandwidth 512 ip address 10.1.1.22 255.255.255.252 ip router isis tag-switching ip mpls traffic-eng tunnels frame-relay interface-dlci 603 ip rsvp bandwidth 512 512 ! router isis net 49.0001.0000.0000.0006.00 is-type level-1 metric-style wide mpls traffic-eng router-id Loopback0 mpls traffic-eng level-1 ! ! ip classless ! ip explicit-path name low enable next-address 10.1.1.21 next-address 10.1.1.10 next-address 10.1.1.1 next-address 10.1.1.14 ! ip explicit-path name straight enable next-address 10.1.1.21 next-address 10.1.1.5 next-address 10.1.1.14 ! end |
Pescara |
---|
Current configuration: ! version 12.0 ! hostname Pescara ! ip cef ! mpls traffic-eng tunnels ! interface Loopback0 ip address 10.10.10.4 255.255.255.255 ip router isis ! interface Tunnel1 ip unnumbered Loopback0 tunnel destination 10.10.10.6 tunnel mode mpls traffic-eng tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng priority 5 5 tunnel mpls traffic-eng bandwidth 25 tunnel mpls traffic-eng path-option 2 dynamic ! interface Tunnel3 ip unnumbered Loopback0 tunnel destination 10.10.10.6 tunnel mode mpls traffic-eng tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng priority 6 6 tunnel mpls traffic-eng bandwidth 69 tunnel mpls traffic-eng path-option 1 dynamic ! interface Serial0/1 no ip address encapsulation frame-relay ! interface Serial0/1.1 point-to-point bandwidth 512 ip address 10.1.1.14 255.255.255.252 ip router isis mpls traffic-eng tunnels tag-switching ip frame-relay interface-dlci 401 ip rsvp bandwidth 512 512 ! router isis net 49.0001.0000.0000.0004.00 is-type level-1 metric-style wide mpls traffic-eng router-id Loopback0 mpls traffic-eng level-1 ! end |
Pomerol |
---|
Current configuration: version 12.0 ! hostname Pomerol ! ip cef ! mpls traffic-eng tunnels ! interface Loopback0 ip address 10.10.10.3 255.255.255.255 ip router isis ! interface Serial0/1 no ip address encapsulation frame-relay ! interface Serial0/1.1 point-to-point bandwidth 512 ip address 10.1.1.6 255.255.255.252 ip router isis mpls traffic-eng tunnels tag-switching ip frame-relay interface-dlci 301 ip rsvp bandwidth 512 512 ! interface Serial0/1.2 point-to-point bandwidth 512 ip address 10.1.1.9 255.255.255.252 ip router isis mpls traffic-eng tunnels tag-switching ip frame-relay interface-dlci 302 ip rsvp bandwidth 512 512 ! interface Serial0/1.3 point-to-point bandwidth 512 ip address 10.1.1.21 255.255.255.252 ip router isis mpls traffic-eng tunnels tag-switching ip frame-relay interface-dlci 306 ip rsvp bandwidth 512 512 ! router isis net 49.0001.0000.0000.0003.00 is-type level-1 metric-style wide mpls traffic-eng router-id Loopback0 mpls traffic-eng level-1 ! ip classless ! end |
Pulligny |
---|
Current configuration: ! version 12.1 ! hostname Pulligny ! ip cef ! mpls traffic-eng tunnels ! interface Loopback0 ip address 10.10.10.2 255.255.255.255 ! interface Serial0/1 no ip address encapsulation frame-relay ! interface Serial0/1.1 point-to-point bandwidth 512 ip address 10.1.1.2 255.255.255.252 ip router isis mpls traffic-eng tunnels tag-switching ip frame-relay interface-dlci 201 ip rsvp bandwidth 512 512 ! interface Serial0/1.2 point-to-point bandwidth 512 ip address 10.1.1.10 255.255.255.252 ip router isis mpls traffic-eng tunnels tag-switching ip frame-relay interface-dlci 203 ip rsvp bandwidth 512 512 ! router isis passive-interface Loopback0 net 49.0001.0000.0000.0002.00 is-type level-1 metric-style wide mpls traffic-eng router-id Loopback0 mpls traffic-eng level-1 ! ip classless ! end |
Pauillac |
---|
! version 12.1 ! hostname pauillac ! ip cef mpls traffic-eng tunnels ! interface Loopback0 ip address 10.10.10.1 255.255.255.255 ip router isis ! interface Serial0/0 no ip address encapsulation frame-relay ! interface Serial0/0.1 point-to-point bandwidth 512 ip address 10.1.1.1 255.255.255.252 ip router isis mpls traffic-eng tunnels tag-switching ip frame-relay interface-dlci 102 ip rsvp bandwidth 512 512 ! interface Serial0/0.2 point-to-point bandwidth 512 ip address 10.1.1.5 255.255.255.252 ip router isis mpls traffic-eng tunnels tag-switching ip frame-relay interface-dlci 103 ip rsvp bandwidth 512 512 ! interface Serial0/0.3 point-to-point bandwidth 512 ip address 10.1.1.13 255.255.255.252 ip router isis mpls traffic-eng tunnels tag-switching ip frame-relay interface-dlci 104 ip rsvp bandwidth 512 512 ! router isis net 49.0001.0000.0000.0001.00 is-type level-1 metric-style wide mpls traffic-eng router-id Loopback0 mpls traffic-eng level-1 ! ip classless ! end |
This section provides information you can use to confirm your configuration is working properly.
The Output Interpreter Tool (registered customers only) (OIT) supports certain show commands. Use the OIT to view an analysis of show command output.
show mpls traffic-eng tunnels brief
show mpls traffic-eng tunnels name Pesaro_t158
show ip rsvp interface
show mpls traffic-eng topology path destination 10.10.10.6 bandwidth 75
Other useful commands (not illustrated here) include:
show isis mpls traffic-eng advertisements
show tag-switching forwarding-table
show ip cef
show mpls traffic-eng tunnels summary
On any LSR, you can use show mpls traffic-eng tunnels to check the existence and state of the tunnels. For example, on Pesaro, you see a total of four tunnels, two that arrive at Pesaro (Pescara_t1 and t3) and two that start from Pesaro (t158 and t159):
Pesaro#show mpls traffic-eng tunnels brief Signaling Summary: LSP Tunnels Process: running RSVP Process: running Forwarding: enabled Periodic reoptimization: every 3600 seconds, next in 606 seconds TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROT Pesaro_t158 10.10.10.4 - Se0/0.1 up/up Pesaro_t159 10.10.10.4 - Se0/0.1 up/up Pescara_t1 10.10.10.6 Se0/0.1 - up/up Pescara_t3 10.10.10.6 Se0/0.1 - up/up Displayed 2 (of 2) heads, 0 (of 0) midpoints,2 (of 2) tails
This is what is seen while on a middle router:
Pulligny#show mpls traffic-eng tunnels brief Signaling Summary: LSP Tunnels Process: running RSVP Process: running Forwarding: enabled Periodic reoptimization: every 3600 seconds, next in 406 seconds TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROT Pescara_t3 10.10.10.6 Se0/1.1 Se0/1.2 up/up Pesaro_t158 10.10.10.4 Se0/1.2 Se0/1.1 up/up Displayed 0 (of 0) heads, 2 (of 2) midpoints, 0 (of 0) tails
The detailed configuration of any tunnel can be seen using this:
Pesaro#show mpls traffic-eng tunnels name Pesaro_t158 Name: Pesaro_t158 (Tunnel158) Destination: 10.10.10.4 Status: Admin: up Oper: up Path: valid Signaling: connected path option 1, type explicit low (Basis for Setup, path weight 40) Config Parameters: Bandwidth: 158 kbps Priority: 2 2 Affinity: 0x0/0xFFFF AutoRoute: enabled LockDown: disabled InLabel : - OutLabel : Serial0/0.1, 17 RSVP Signaling Info: Src 10.10.10.6, Dst 10.10.10.4, Tun_Id 158, Tun_Instance 1601 RSVP Path Info: My Address: 10.10.10.6 Explicit Route: 10.1.1.21 10.1.1.10 10.1.1.1 10.1.1.14 10.10.10.4 Record Route: NONE Tspec: ave rate=158 kbits, burst=8000 bytes, peak rate=158 kbits RSVP Resv Info: Record Route: NONE Fspec: ave rate=158 kbits, burst=8000 bytes, peak rate=4294967 kbits History: Current LSP: Uptime: 3 hours, 33 minutes Selection: reoptimation Prior LSP: ID: path option 1 [1600] Removal Trigger: configuration changed
In this case, the path is explicit and specified in the RSVP message (the field that carries the path is also known as the Explicit Route Object [ERO]). If this path cannot be followed, the MPLS TE engine uses the next path option, which can be another explicit route or a dynamic route.
RSVP specific information is available using standard RSVP commands. In this output, there are two reservations made on Pulligny, one by Pesaro_t158 (158K) and the other by Pescara_t3 (69k).
Pulligny#show ip rsvp interface interface allocated i/f max flow max pct UDP IP UDP_IP UDP M/C Se0/1 0M 0M 0M 0 0 0 0 0 Se0/1.1 158K 512K 512K 30 0 1 0 0 Se0/1.2 69K 512K 512K 13 0 1 0 0
If you want to know which TE path is used for a particular destination (and a particular bandwidth) without creating a tunnel, you can use this command:
Note: Please note that this command is wrapped to a second line for spatial reasons.
Pescara#show mpls traffic-eng topology path destination 10.10.10.6 bandwidth 75 Query Parameters: Destination: 10.10.10.6 Bandwidth: 75 Priorities: 0 (setup), 0 (hold) Affinity: 0x0 (value), 0xFFFFFFFF (mask) Query Results: Min Bandwidth Along Path: 385 (kbps) Max Bandwidth Along Path: 512 (kbps) Hop 0: 10.1.1.14 : affinity 00000000, bandwidth 512 (kbps) Hop 1: 10.1.1.5 : affinity 00000000, bandwidth 385 (kbps) Hop 2: 10.1.1.21 : affinity 00000000, bandwidth 512 (kbps) Hop 3: 10.10.10.6
If the network does IP TTL propagation (refer to mpls ip ttl propagate ), issue a traceroute command and see that the path followed is the tunnel and that the tunnel routes according to what is configured:
Pescara#traceroute 10.10.10.6 Type escape sequence to abort. Tracing the route to 10.10.10.6 1 10.1.1.13 [MPLS: Label 29 Exp 0] 540 msec 312 msec 448 msec 2 10.1.1.2 [MPLS: Label 27 Exp 0] 260 msec 276 msec 556 msec 3 10.1.1.9 [MPLS: Label 29 Exp 0] 228 msec 244 msec 228 msec 4 10.1.1.22 112 msec * 104 msec
Revision | Publish Date | Comments |
---|---|---|
1.0 |
10-Aug-2005 |
Initial Release |