Table Of Contents
MPLS Traffic Engineering - DiffServ Aware (DS-TE)
Related Features and Technologies
Supported Platforms and Interfaces
Supported Standards, MIBs, and RFCs
tunnel mpls traffic-eng bandwidth command
Level 1: Configuring the Device
Level 2: Configuring the Physical Interface
Level 3: Configuring the Tunnel Interface
Guaranteed Bandwidth Service Configuration
Guaranteed Bandwidth Service Examples
Example with Single Destination Prefix
Tunnel Midpoint Configuration [Mid-1]
Tunnel Midpoint Configuration [Mid-2]
Example with Many Destination Prefixes
Configuration of Tunnel Head-1
Configuration of Tunnel Head-2
Tunnel Midpoint Configuration [Mid-1]
Tunnel Midpoint Configuration [Mid-2]
mpls traffic-eng backup-path tunnel
show mpls traffic-eng fast-reroute database
show mpls traffic-eng fast-reroute log reroutes
show mpls traffic-eng topology
tunnel mpls traffic-eng bandwidth
tunnel mpls traffic-eng fast-reroute
MPLS Traffic Engineering - DiffServ Aware (DS-TE)
Feature History
This document describes extensions made to Multiprotocol Label Switching Traffic Engineering (MPLS TE) that make it DiffServ aware. Specifically, the bandwidth reservable on each link for constraint-based routing (CBR) purposes can now be managed through two bandwidth pools: a global pool and a sub-pool. The sub-pool can be limited to a smaller portion of the link bandwidth. Tunnels using the sub-pool bandwidth can then be used in conjunction with MPLS Quality of Service (QoS) mechanisms to deliver guaranteed bandwidth services end-to-end across the network.
The document contains the following sections:
•
Supported Platforms and Interfaces
•
Supported Standards, MIBs, and RFCs
Feature Overview
MPLS traffic engineering allows constraint-based routing of IP traffic. One of the constraints satisfied by CBR is the availability of required bandwidth over a selected path. DiffServ-aware Traffic Engineering extends MPLS traffic engineering to enable you to perform constraint-based routing of "guaranteed" traffic, which satisfies a more restrictive bandwidth constraint than that satisfied by CBR for regular traffic. The more restrictive bandwidth is termed a sub-pool, while the regular TE tunnel bandwidth is called the global pool. (The sub-pool is a portion of the global pool.) This ability to satisfy a more restrictive bandwidth constraint translates into an ability to achieve higher QoS performance (in terms of delay, jitter, or loss) for the guaranteed traffic.
For example, DS-TE can be used to ensure that traffic is routed over the network so that, on every link, there is never more than 40 percent (or any assigned percentage) of the link capacity of guaranteed traffic (for example, voice), while there can be up to 100 percent of the link capacity of regular traffic. Assuming QoS mechanisms are also used on every link to queue guaranteed traffic separately from regular traffic, it then becomes possible to enforce separate "overbooking" ratios for guaranteed and regular traffic. (In fact, for the guaranteed traffic it becomes possible to enforce no overbooking at all—or even an underbooking—so that very high QoS can be achieved end-to-end for that traffic, even while for the regular traffic a significant overbooking continues to be enforced.)
Also, through the ability to enforce a maximum percentage of guaranteed traffic on any link, the network administrator can directly control the end-to-end QoS performance parameters without having to rely on over-engineering or on expected shortest path routing behavior. This is essential for transport of applications that have very high QoS requirements (such as real-time voice, virtual IP leased line, and bandwidth trading), where over-engineering cannot be assumed everywhere in the network.
DS-TE involves extending OSPF (Open Shortest Path First) routing protocol, so that the available sub-pool bandwidth at each preemption level is advertised in addition to the available global pool bandwidth at each preemption level. And DS-TE modifies constraint-based routing to take this more complex advertised information into account during path computation.
Benefits
DiffServ-aware Traffic Engineering enables service providers to perform separate admission control and separate route computation for discrete subsets of traffic (for example, voice and data traffic).
Therefore, by combining DS-TE with other Cisco IOS features such as QoS, the service provider can:
•
Develop QoS services for end customers based on signaled rather than provisioned QoS
•
Build the higher-revenue generating "strict-commitment" QoS services, without overprovisioning
•
Offer virtual IP leased-line, Layer 2 service emulation, and point-to-point guaranteed bandwidth services including voice-trunking
•
Enjoy the scalability properties offered by MPLS
Related Features and Technologies
The DS-TE feature is related to OSPF, IS-IS, RSVP (Resource Reservation Protocol), QoS, and MPLS traffic engineering. Cisco documentation for all of these features is listed in the next section.
Related Documents
For OSPF:
•
"Configuring OSPF" in Cisco IOS IP Configuration Guide, Release 12.2
•
"OSPF Commands" in Cisco IOS IP Command Reference, Volume 2 of 3: Routing Protocols, Release 12.2
For IS-IS:
•
"Configuring Integrated IS-IS" in Cisco IOS IP Configuration Guide, Release 12.2
•
"Integrated IS-IS Commands" in Cisco IOS IP Command Reference, Volume 2 of 3: Routing Protocols, Release 12.2
For RSVP:
•
"Configuring RSVP" in Cisco IOS Quality of Service Solutions Configuration Guide, Release 12.2
•
Cisco IOS Quality of Service Solutions Command Reference, Release 12.2
For QoS:
•
Cisco IOS Quality of Service Solutions Configuration Guide, Release 12.2
•
Cisco IOS Quality of Service Solutions Command Reference, Release 12.2
For MPLS Traffic Engineering:
•
"Multiprotocol Label Switching" in Cisco IOS Switching Services Configuration Guide, Release 12.2
•
Cisco IOS Switching Services Command Reference, Release 12.2
Supported Platforms and Interfaces
This release supports DS-TE together with QoS on the Cisco IOS 7500 series router (VIP) over the POS (Packet over SONET) interface.
Finding Support Information for Platforms and Cisco IOS Software Images
Use Cisco Feature Navigator to find information about platform support and Cisco IOS software image support. Access Cisco Feature Navigator at http://www.cisco.com/go/fn. You must have an account on Cisco.com. If you do not have an account or have forgotten your username or password, click Cancel at the login dialog box and follow the instructions that appear.
Supported Standards, MIBs, and RFCs
Standards
Standardization of DiffServ-aware MPLS Traffic Engineering is still in progress in the IETF (Internet Engineering Task Force). At the time of publication of this feature guide, DS-TE is documented in the following IETF drafts:
•
Requirements for Support of Diff-Serv-aware MPLS Traffic Engineering by F. Le Faucheur, T. Nadeau, A. Chiu, W. Townsend, D. Skalecki & M. Tatham
http://search.ietf.org/internet-drafts/draft-ietf-tewg-diff-te-reqts-05.txt•
Protocol Extensions for Support of Diff-Serv-aware MPLS Traffic Engineering by F. Le Faucheur, T. Nadeau, J. Boyle, K. Kompella, W. Townsend & D. Skalecki
http://search.ietf.org/internet-drafts/draft-ietf-tewg-diff-te-proto-01.txtAs the IETF work is still in progress, details are still under definition and subject to change, so DS-TE should be considered as a pre-standard implementation of IETF DiffServ-aware MPLS Traffic Engineering. However, it is in line with the requirements described in the first document above. The concept of "Class-Type" defined in that IETF draft corresponds to the concept of bandwidth pool implemented by DS-TE. And because DS-TE supports two bandwidth pools (global pool and sub-pool), DS-TE should be seen as supporting two Class-Types (Class-Type 0 and Class-Type 1).
MIBs
No new or modified MIBs are supported by this release.
To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL:
http://tools.cisco.com/ITDIT/MIBS/servlet/index
If Cisco MIB Locator does not support the MIB information that you need, you can also obtain a list of supported MIBs and download MIBs from the Cisco MIBs page at the following URL:
http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml
To access Cisco MIB Locator, you must have an account on Cisco.com. If you have forgotten or lost your account information, send a blank e-mail to cco-locksmith@cisco.com. An automatic check will verify that your e-mail address is registered with Cisco.com. If the check is successful, account details with a new random password will be e-mailed to you. Qualified users can establish an account on Cisco.com by following the directions found at this URL:
RFCs
No new or modified RFCs are supported by this feature.
Prerequisites
Your network must support the following Cisco IOS features in order to support guaranteed bandwidth services based on DiffServ-aware Traffic Engineering:
•
MPLS
•
IP Cisco Express Forwarding (CEF)
•
OSPF or IS-IS
•
RSVP-TE
•
QoS
Configuration Tasks
This section lists the minimum set of commands you need to implement the DiffServ-aware Traffic Engineering feature—in other words, to establish a tunnel that reserves bandwidth from the sub-pool.
The "Configuration Examples" section presents these same commands in context and shows how, by combining them with QoS commands, you can build guaranteed bandwidth services.
Modified Commands
DS-TE commands were developed from the existing command set that configures MPLS traffic engineering. The only difference introduced to create DS-TE was the expansion of two commands:
•
ip rsvp bandwidth was expanded to configure the size of the sub-pool on every link.
•
tunnel mpls traffic-eng bandwidth was expanded to enable a TE tunnel to reserve bandwidth from the sub-pool.
ip rsvp bandwidth command
The old command was
ip rsvp bandwidth x ywhere x = the size of the only possible pool, and y = the size of a single traffic flow (ignored by traffic engineering)
Now the extended command is
ip rsvp bandwidth interface-kbps single-flow-kbps [sub-pool kbps]where x = the size of the global pool, and z = the size of the sub-pool.
(Remember, the sub-pool's bandwidth is less than—because it is part of—the global pool's bandwidth.)
tunnel mpls traffic-eng bandwidth command
The old command was
tunnel mpls traffic-eng bandwidth bwhere b = the amount of bandwidth this tunnel requires.
Now you specify from which pool (global or sub) the tunnel's bandwidth is to come. You can enter
tunnel mpls traffic-eng bandwidth sub-pool bThis indicates that the tunnel should use bandwidth from the sub-pool. Alternatively, you can enter
tunnel mpls traffic-eng bandwidth bThis indicates that the tunnel should use bandwidth from the global pool (the default).
Configuration Procedure
To establish a sub-pool TE tunnel, you must enter configurations at three levels:
•
Device (router or switch router)
•
Physical interface
•
Tunnel interface
On the first two levels, you activate traffic engineering; on the third level—the tunnel interface—you establish the sub-pool tunnel. Therefore, it is only at the tunnel headend device that you need to configure all three levels. At the tunnel midpoints and tail, it is sufficient to configure the first two levels.
Level 1: Configuring the Device
At this level, you tell the device (switch router) to use accelerated packet-forwarding (known as Cisco Express Forwarding or CEF), Multiprotocol Label Switching (MPLS), traffic-engineering tunneling, and the OSPF routing algorithm. This level is often called global configuration mode because the configuration is applied globally, to the entire device, rather than to a specific interface or routing instance. (These commands have not been modified from earlier releases of Cisco IOS.)
Enter the following commands:
Level 2: Configuring the Physical Interface
Having configured the device, you now must configure the interface on that device through which the tunnel will run. To do that, you first put the router into interface configuration mode.
You then enable RSVP. RSVP is used to signal (set up) a traffic engineering tunnel, and to tell devices along the tunnel path to reserve a specific amount of bandwidth for the traffic that will flow through that tunnel. This command establishes the maximum size of the sub-pool.
Finally, you enable the MPLS traffic engineering tunnel feature on this physical interface.
To accomplish these tasks, enter the following commands:
Level 3: Configuring the Tunnel Interface
Now you create a set of attributes for the tunnel itself; those attributes are configured on the tunnel interface (not to be confused with the physical interface just configured above).
The only command which was modified at this level for DS-TE is tunnel mpls traffic-eng bandwidth.
Enter the following commands:
Verifying the Configurations
To view the complete configuration you have entered, use the show running-config EXEC command and check its output for correctness.
To check just one tunnel's configuration, enter show interfaces tunnel followed by the tunnel interface number. To see that tunnel's RSVP bandwidth and flow, enter show ip rsvp interface followed by the name or number of the physical interface.
Here is an example of the information displayed by these two commands.
GSR1# show interfaces tunnel 4Tunnel4 is up, line protocol is downHardware is Routing TunnelMTU 1500 bytes, BW 9 Kbit, DLY 500000 usec, rely 255/255, load 1/255Encapsulation TUNNEL, loopback not set, keepalive set (10 sec)Tunnel source 0.0.0.0, destination 0.0.0.0Tunnel protocol/transport GRE/IP, key disabled, sequencing disabledLast input never, output never, output hang neverLast clearing of "show interface" counters neverOutput queue 0/0, 0 drops; input queue 0/75, 0 dropsFive minute input rate 0 bits/sec, 0 packets/secFive minute output rate 0 bits/sec, 0 packets/sec0 packets input, 0 bytes, 0 no bufferReceived 0 broadcasts, 0 runts, 0 giants0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort0 packets output, 0 bytes, 0 underruns0 output errors, 0 collisions, 0 interface resets, 0 restartsGSR1# show ip rsvp interface pos4/0interface allocated i/f max flow max sub maxPO4/0 300K 466500K 466500K 0MTo view all tunnels at once on the router you have configured, enter show mpls traffic-eng tunnels brief. The information displayed when tunnels are functioning properly looks like this.
GSR1# show mpls traffic-eng tunnels briefSignalling Summary:LSP Tunnels Process: runningRSVP Process: runningForwarding: enabledPeriodic reoptimization: every 3600 seconds, next in 3029 secondsTUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROTGSR1_t0 192.168.1.13 - SR3/0 up/upGSR1_t1 192.168.1.13 - SR3/0 up/upGSR1_t2 192.168.1.13 - PO4/0 up/upDisplayed 3 (of 3) heads, 0 (of 0) midpoints, 0 (of 0) tailsWhen one or more tunnels is not functioning properly, the display could instead look like this. (In the following example, tunnels t0 and t1 are down, as indicated in the far right column).
GSR1# show mpls traffic-eng tunnels briefSignalling Summary:LSP Tunnels Process: runningRSVP Process: runningForwarding: enabledPeriodic reoptimization: every 3600 seconds, next in 2279 secondsTUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROTGSR1_t0 192.168.1.13 - SR3/0 up/downGSR1_t1 192.168.1.13 - SR3/0 up/downGSR1_t2 192.168.1.13 - PO4/0 up/upDisplayed 3 (of 3) heads, 0 (of 0) midpoints, 0 (of 0) tailsTo find out why a tunnel is down, insert its name into this same command, after adding the name keyword and omitting the brief keyword. For example:
GSR1# show mpls traffic-eng tunnels name GSR1_t0Name:GSR1_t0 (Tunnel0) Destination:192.168.1.13Status:Admin:up Oper:down Path: not valid Signalling:connectedIf, as in this example, the Path is displayed as not valid, use the show mpls traffic-eng topology command to make sure the router has received the needed updates.
Additionally, you can use any of the following show commands to inspect particular aspects of the network, router, or interface concerned:
Configuration Examples
First this section presents the DS-TE configurations needed to create the sub-pool tunnel. Then it presents the more comprehensive design for building end-to-end guaranteed bandwidth service, which involves configuring QoS as well.
As shown in Figure 1, the tunnel configuration involves at least three devices—tunnel head, midpoint, and tail. On each of those devices one or two network interfaces must be configured for traffic ingress and egress.
Figure 1 Sample Tunnel Topology
Tunnel Head
At the device level:
Router-1# configure terminalEnter configuration commands, one per line. End with CNTL/Z.Router-1(config)# ip cef distributedRouter-1(config)# mpls traffic-eng tunnelsNow use the IS-IS commands on the left or the OSPF commands on the right
:
Router-1(config-router)# mpls traffic-eng router-id Loopback0Router-1(config-router)# exitNow resume the common command set.Router-1(config)# interface Loopback0At the virtual interface level:
Router-1(config-if)# ip address 22.1.1.1 255.255.255.255Router-1(config-if)# no ip directed-broadcastRouter-1(config-if)# exitAt the device level:
Router-1(config)# interface POS2/0/0At the physical interface level (egress):
Router-1(config-if)# ip address 10.1.1.1 255.255.255.0Router-1(config-if)# mpls traffic-eng tunnelsRouter-1(config-if)# ip rsvp bandwidth 130000 130000 sub-pool 80000If using IS-IS instead of OSPF:Router-1(config-if)# ip router isisIn all cases:Router-1(config-if)# exitAt the device level:
Router-1(config)# interface Tunnel1At the tunnel interface level:
Router-1(config-if)# bandwidth 110000Router-1(config-if)# ip unnumbered Loopback0Router-1(config-if)# tunnel destination 24.1.1.1Router-1(config-if)# tunnel mode mpls traffic-engRouter-1(config-if)# tunnel mpls traffic-eng priority 0 0Router-1(config-if)# tunnel mpls traffic-eng bandwidth sub-pool 30000Router-1(config-if)# tunnel mpls traffic-eng path-option 1 dynamicRouter-1(config)#Midpoint Devices
At the device level:
Router-2# configure terminalRouter-2(config)# ip cef distributedRouter-2(config)# mpls traffic-eng tunnelsNow use the IS-IS commands on the left or the OSPF commands on the right
:
router-2(config-router)# mpls traffic-eng router-id Loopback0router-2(config-router)# exitNow resume the common command set.Router-2(config)# interface Loopback0At the virtual interface level:
Router-2(config-if)# ip address 25.1.1.1 255.255.255.255Router-2(config-if)# no ip directed-broadcastRouter-2(config-if)# exitAt the device level:
router-1(config)# interface POS4/0Router-1(config-if)# ip address 11.1.1.2 255.255.255.0Router-1(config-if)# mpls traffic-eng tunnelsRouter-1(config-if)# ip rsvp bandwidth 130000 130000 sub-pool 80000If you are using IS-IS instead of OSPF:
Router-1(config-if)# ip router isisIn all cases:
Router-1(config-if)# exitAt the device level:
router-1(config)# interface POS4/1Router-1(config-if)# ip address 12.1.1.2 255.255.255.0Router-1(config-if)# mpls traffic-eng tunnelsRouter-1(config-if)# ip rsvp bandwidth 130000 130000 sub-pool 80000If you are using IS-IS instead of OSPF:
Router-1(config-if)# ip router isisIn all cases:
Router-1(config-if)# exitNote that there is no configuring of tunnel interfaces at the mid-point devices, only network interfaces and the device globally.
Tail-End Device
At the device level:
Router-3# configure terminalRouter-3(config)# ip cef distributedRouter-3(config)# mpls traffic-eng tunnelsNow use the IS-IS commands on the left or the OSPF commands on the right:
Router-3(config-router)# mpls traffic-eng router-id Loopback0Router-3(config-router)# exitNow resume the common command set.Router-3(config)# interface Loopback0At the virtual interface level:
Router-3(config-if)# ip address 24.1.1.1 255.255.255.255Router-3(config-if)# no ip directed-broadcastIf you are using IS-IS instead of OSPF:
Router-3(config-if)# ip router isisIn all cases:
Router-3(config-if)# exitAt the device level:
Router(config)# interface POS4/0Router-1(config-if)# ip address 12.1.1.3 255.255.255.0Router-1(config-if)# mpls traffic-eng tunnelsRouter-1(config-if)# ip rsvp bandwidth 130000 130000 sub-pool 80000If you are using IS-IS instead of OSPF:
Router-1(config-if)# ip router isisIn all cases:
Router-1(config-if)# exitGuaranteed Bandwidth Service Configuration
Having configured two bandwidth pools, you now can
•
Use one pool, the sub-pool, for tunnels that carry traffic requiring strict bandwidth guarantees or delay guarantees.
•
Use the other pool, the global pool, for tunnels that carry traffic requiring only Differentiated Service.
Having a separate pool for traffic requiring strict guarantees allows you to limit the amount of such traffic admitted on any given link. Often it is possible to achieve strict QoS guarantees only if the amount of guaranteed traffic is limited to a portion of the total link bandwidth.
Having a separate pool for other traffic (best-effort or DiffServ traffic) allows you to have a separate limit for the amount of such traffic admitted on any given link. This is useful because it allows you to fill up links with best-effort/DiffServ traffic, thereby achieving a greater utilization of those links.
Providing Strict QoS Guarantees Using DS-TE Sub-pool Tunnels
A tunnel using sub-pool bandwidth can satisfy the stricter requirements if you do all of the following:
1.
Select a queue—or in DiffServ terminology, select a PHB (per-hop behavior)—to be used exclusively by the strict guarantee traffic. This will be called the "GB queue."
If delay/jitter guarantees are sought, the DiffServ Expedited Forwarding queue (EF PHB) is used. You must configure the bandwidth of the queue to be at least equal to the bandwidth of the sub-pool.
If only bandwidth guarantees are sought, the DiffServ Assured Forwarding PHB (AF PHB) is used.
2.
Ensure that the guaranteed traffic sent through the sub-pool tunnel is placed in the GB queue at the outbound interface of every tunnel hop, and that no other traffic is placed in this queue.
You do this by marking the traffic that enters the tunnel with a unique value in the mpls exp bits field, and steering only traffic with that marking into the GB queue.
3.
Ensure that this GB queue is never oversubscribed; that is, see that no more traffic is sent into the sub-pool tunnel than the GB queue can handle.
You do this by rate-limiting the guaranteed traffic before it enters the sub-pool tunnel. The aggregate rate of all traffic entering the sub-pool tunnel should be less than or equal to the bandwidth capacity of the sub-pool tunnel. Excess traffic can be dropped (in the case of delay/jitter guarantees) or can be marked differently for preferential discard (in the case of bandwidth guarantees).
4.
Ensure that the amount of traffic entering the GB queue is limited to an appropriate percentage of the total bandwidth of the corresponding outbound link. The exact percentage to use depends on several factors that can contribute to accumulated delay in your network: your QoS performance objective, the total number of tunnel hops, the amount of link fan-in along the tunnel path, burstiness of the input traffic, and so on.
You do this by setting the sub-pool bandwidth of each outbound link to the appropriate percentage of the total link bandwidth.
Providing Differentiated Service Using DS-TE Global Pool Tunnels
You can configure a tunnel using global pool bandwidth to carry best-effort as well as several other classes of traffic. Traffic from each class can receive differentiated service if you do all of the following:
1.
Select a separate queue (a distinct DiffServ PHB) for each traffic class. For example, if there are three classes (gold, silver, and bronze) there must be three queues (DiffServ AF2, AF3, and AF4).
2.
Mark each class of traffic using a unique value in the MPLS experimental bits field (for example, gold = 4, silver = 5, bronze = 6).
3.
Ensure that packets marked as Gold are placed in the gold queue, Silver in the silver queue, and so on. The tunnel bandwidth is set based on the expected aggregate traffic across all classes of service.
To control the amount of DiffServ tunnel traffic you intend to support on a given link, adjust the size of the global pool on that link.
Providing Strict Guarantees and Differentiated Service in the Same Network
Because DS-TE allows simultaneous constraint-based routing of sub-pool and global pool tunnels, strict guarantees and DiffServ can be supported simultaneously in a given network.
Guaranteed Bandwidth Service Examples
This section describes two example topologies in which Guaranteed Bandwidth Services can be supplied. They illustrate opposite ends of the spectrum of possibilities.
In the first example, the guaranteed bandwidth tunnel can be easily specified by its destination. The forwarding criteria refer to a single destination prefix.
In the second example, there can be many final destinations for the guaranteed bandwidth traffic, including a dynamically changing number of destination prefixes. The forwarding criteria are specified by Border Gateway Protocol (BGP) policies.
Example with Single Destination Prefix
Figure 2 illustrates a topology for guaranteed bandwidth services whose destination is specified by a single prefix, either Site D (like a voice gateway, here bearing prefix 26.1.1.1) or a subnet (like the location of a web farm, here called "Province" and bearing prefix 26.1.1.0). Three services are offered:
•
From Site A (defined as all traffic arriving at interface FE4/1/0): to host 26.1.1.1, 8 Mbps of guaranteed bandwidth with low loss, low delay and low jitter
•
From Site B (defined as all traffic arriving at interface FE4/1/1): toward subnet 26.1.1.0, 32 Mbps of guaranteed bandwidth with low loss
•
From Site C (defined as all traffic arriving at interface FE2/1/0): 30 Mbps of guaranteed bandwidth with low loss
Figure 2 Sample Topology for Guaranteed Bandwidth Services to a Single Destination Prefix
These three services run through two sub-pool tunnels:
•
From the Head-1 router, 23.1.1.1, to the router-4 tail
•
From the Head-2 router, 22.1.1.1, to the router-4 tail
Both tunnels use the same tail router, though they have different heads. (In Figure 2 one midpoint router is shared by both tunnels. There can be many more midpoints.)
All POS interfaces in this example are OC3, whose capacity is 155 Mbps.
Configuring Tunnel Head-1
First, recapitulate commands that establish two bandwidth pools and a sub-pool tunnel (as presented earlier in the "Configuration Examples" section. Then present the QoS commands that guarantee end-to-end service on the subpool tunnel. (With the Cisco 7500 router, Modular QoS CLI is used.)
Configuring the Pools and Tunnel
At the device level:
Router-1(config)# mpls traffic-eng tunnelsRouter-1config)# mpls traffic-eng tunnelsNow use the IS-IS commands on the left or the OSPF commands on the right
:
Router-1(config-router)# mpls traffic-eng router-id Loopback0Router-1(config-router)# exitNow resume the common command set.
Create a virtual interface:
Router-1(config)# interface Loopback0Router-1(config-if)# ip address 23.1.1.1 255.255.255.255Router-1(config-if)# no ip directed-broadcastRouter-1(config-if)# exitAt the outgoing physical interface:
Router-1(config)# interface pos4/0Router-1(config-if)# ip address 10.1.1.1 255.0.0.0Router-1(config-if)# mpls traffic-eng tunnelsRouter-1(config-if)# ip rsvp bandwidth 140000 140000 sub-pool 60000If you are using IS-IS instead of OSPF:
Router-1(config-if)# ip router isisIn all cases:
Router-1(config-if)# exitAt the tunnel interface:
Router-1(config)# interface Tunnel1Router-1(config-if)# bandwidth 110000Router-1(config-if)# ip unnumbered Loopback0Router-1(config-if)# tunnel destination 27.1.1.1Router-1(config-if)# tunnel mode mpls traffic-engRouter-1(config-if)# tunnel mpls traffic-eng priority 0 0Router-1(config-if)# tunnel mpls traffic-eng bandwidth sub-pool 40000Router-1(config-if)# tunnel mpls traffic-eng path-option 1 dynamicTo ensure that packets destined to host 26.1.1.1 and subnet 26.1.1.0 are sent into the sub-pool tunnel, create a static route. At the device level:
Router-1(config)# ip route 26.1.1.0 255.255.255.0 Tunnel1Router-1(config)# exitTo make sure that the Interior Gateway Protocol (IGP) will not send any other traffic down this tunnel, disable autoroute announce:
Router-1(config)# no tunnel mpls traffic-eng autoroute announceFor Service from Site A to Site D
At the inbound physical interface (FE4/1/0):
1.
In global configuration mode, create a class of traffic matching ACL 100, called "sla-1-class":
class-map match-all sla-1-classmatch access-group 1002.
Create an ACL 100 to refer to all packets destined to 26.1.1.1:
access-list 100 permit ip any host 26.1.1.13.
Create a policy named "sla-1-input-policy", and according to that policy:
a.
Packets in the class called "sla-1-class" are rate-limited to:
–
A rate of 8 million bits per second
–
A normal burst of 1 million bytes
–
A maximum burst of 2 million bytes
b.
Packets which conform to this rate are marked with MPLS experimental bit 5 and are forwarded.
c.
Packets which exceed this rate are dropped.
d.
All other packets are marked with experimental bit 0 and are forwarded.
policy-map sla-1-input-policyclass sla-1-classpolice 8000000 1000000 2000000 conform-action set-mpls-exp-transmit 5 \ exceed-action dropclass class-defaultset-mpls-exp-transmit 04.
The policy is applied to packets entering interface FE4/1/0.
interface FastEthernet4/1/0service-policy input sla-1-input-policyFor Service from Site B to Subnet "Province"
At the inbound physical interface (FE4/1/1):
1.
In global configuration mode, create a class of traffic matching ACL 120, called "sla-2-class":
class-map match-all sla-2-classmatch access-group 1202.
Create an ACL, 120, to refer to all packets destined to subnet 26.1.1.0:
access-list 120 permit ip any 26.1.1.0 0.0.0.2553.
Create a policy named "sla-2-input-policy", and according to that policy:
a.
Packets in the class called "sla-2-class" are rate-limited to:
–
A rate of 32 million bits per second
–
A normal burst of 1 million bytes
–
A maximum burst of 2 million bytes
b.
Packets that conform to this rate are marked with MPLS experimental bit 5 and are forwarded.
c.
Packets that exceed this rate are dropped.
d.
All other packets are marked with experimental bit 0 and are forwarded.
policy-map sla-2-input-policyclass sla-2-classpolice 32000000 1000000 2000000 conform-action set-mpls-exp-transmit 5 \ exceed-action dropclass class-defaultset-mpls-exp-transmit 04.
The policy is applied to packets entering interface FE4/1/1.
interface FastEthernet4/1/1service-policy input sla-2-input-policyFor Both Services
The outbound interface (POS4/0) is configured as follows:
1.
In global configuration mode, create a class of traffic matching experimental bit 5, called "exp-5-traffic".
class-map match-all exp-5-trafficmatch mpls experimental 52.
Create a policy named "output-interface-policy". According to that policy, packets in the class "exp-5-traffic" are put in the priority queue (which is rate-limited to 62 kbits/sec).
policy-map output-interface-policyclass exp-5-trafficpriority 323.
The policy is applied to packets exiting interface POS4/0.
interface POS4/0service-policy output output-interface-policyThe result of the above configuration lines is that packets entering the Head-1 router via interface FE4/1/0 destined to host 26.1.1.1, or entering the router via interface FE4/1/1 destined to subnet 26.1.1.0, will have their MPLS experimental bit set to 5. We assume that no other packets entering the router (on any interface) are using this value. (If this cannot be assumed, an additional configuration must be added to mark all such packets to another experimental value.) Packets marked with experimental bit 5, when exiting the router via interface POS4/0, will be placed into the priority queue.
Note
Packets entering the router via FE4/1/0 or FE4/1/1 and exiting POS4/0 enter as IP packets and exit as MPLS packets.
Configuring Tunnel Head-2
First, recapitulate commands that establish two bandwidth pools and a sub-pool tunnel (as presented earlier in the "Configuration Examples" section). Then present the QoS commands that guarantee end-to-end service on the sub-pool tunnel.
Configuring the Pools and Tunnel
At the device level:
Router-2(config)# ip cef distributedRouter-2(config)# mpls traffic-eng tunnelsNow use the IS-IS commands on the left or the OSPF commands on the right
:
Router-2(config-router)# mpls traffic-eng router-id Loopback0Router-2(config-router)# exitNow resume the common command set.Create a virtual interface:
Router-2(config)# interface Loopback0Router-2(config-if)# ip address 22.1.1.1 255.255.255.255Router-2(config-if)# no ip directed broadcastRouter-2(config-if)# exitAt the outgoing physical interface:
Router-2(config)# interface pos0/0Router-2(config-if)# ip address 11.1.1.1 255.0.0.0Router-2(config-if)# mpls traffic-eng tunnelsRouter-2(config-if)# ip rsvp bandwidth 140000 140000 sub-pool 60000If you are using IS-IS instead of OSPF:
Router-2(config-if)# ip router isisIn all cases:
Router-2(config-if)# exitAt the tunnel interface:
Router-2(config)# interface Tunnel2Router-2(config-if)# ip unnumbered Loopback0Router-2(config-if)# tunnel destination 27.1.1.1Router-2(config-if)# tunnel mode mpls traffic-engRouter-2(config-if)# tunnel mpls traffic-eng priority 0 0Router-2(config-if)# tunnel mpls traffic-eng bandwidth sub-pool 30000Router-2(config-if)# tunnel mpls traffic-eng path-option 1 dynamicRouter-2(config-if)# exitTo ensure that packets destined to subnet 26.1.1.0 are sent into the sub-pool tunnel, create a static route, at the device level:
Router-2(config)# ip route 26.1.1.0 255.255.255.0 Tunnel2Router-2(config)# exitFinally, in order to make sure that IGP will not send any other traffic down this tunnel, disable autoroute announce:
Router-2(config)# no tunnel mpls traffic-eng autoroute announceFor Service from Site C to Subnet "Province"
At the inbound physical interface (FE2/1/0):
1.
In global configuration mode, create a class of traffic matching ACL 130, called "sla-3-class":
class-map match-all sla-3-classmatch access-group 1302.
Create an ACL, 130, to refer to all packets destined to subnet 26.1.1.0:
access-list 130 permit ip any 26.1.1.0 0.0.0.2553.
Create a policy named "sla-3-input-policy", and according to that policy:
a.
Packets in the class called "sla-3-class" are rate-limited to:
–
A rate of 30 million bits per second
–
A normal burst of 1 million bytes
–
A maximum burst of 2 million bytes
b.
Packets that conform to this rate are marked with MPLS experimental bit 5 and are forwarded.
c.
Packets that exceed this rate are dropped.
d.
All other packets are marked with experimental bit 0 and are forwarded.
policy-map sla-3-input-policyclass sla-3-classpolice 30000000 1000000 2000000 conform-action set-mpls-exp-transmit 5 \ exceed-action dropclass class-defaultset-mpls-exp-transmit 04.
The policy is applied to packets entering interface FE2/1/0.
interface FastEthernet2/1/0service-policy input sla-3-input-policyThe outbound interface POS0/0 is configured as follows:
1.
In global configuration mode, create a class of traffic matching experimental bit 5, called "exp-5-traffic".
class-map match-all exp-5-trafficmatch mpls experimental 52.
Create a policy named "output-interface-policy". According to that policy, packets in the class "exp-5-traffic" are put in the priority queue (which is rate-limited to 32 kbits/sec).
policy-map output-interface-policyclass exp-5-trafficpriority 323.
The policy is applied to packets exiting interface POS0/0:
interface POS0/0service-policy output output-interface-policyAs a result of all the above configuration lines, packets entering the Head-2 router via interface FE2/1/0 and destined for subnet 26.1.1.0 have their IP precedence field set to 5. It is assumed that no other packets entering this router (on any interface) are using this precedence. (If this cannot be assumed, an additional configuration must be added to mark all such packets with another precedence value.) When exiting this router via interface POS0/0, packets marked with precedence 5 are placed in the priority queue.
Note
Packets entering the router via FE2/1/0 and exiting through POS0/0 enter as IP packets and exit as MPLS packets.
Tunnel Midpoint Configuration [Mid-1]
All four interfaces on the midpoint router are configured identically to the outbound interface of the head router (except the IDs of the individual interfaces):
Configuring the Pools and Tunnels
At the device level:
Router-3(config)# ip cef distributedRouter-3(config)# mpls traffic-eng tunnelsNow use the IS-IS commands on the left or the OSPF commands on the right



