Information About MPLS Traffic Engineering - DiffServ Aware (DS-TE)
MPLS TE and Constraint-Based Routing (CBR)
MPLS TE allows constraint-based routing (CBR) of IP traffic. One of the constraints satisfied by CBR is the availability of required bandwidth over a selected path. DiffServ-aware TE 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. In the new IETF-Standard, the global pool is called BC0 and the sub-pool is called BC1. These are two of an eventually available eight Class Types). This ability to satisfy a more restrictive bandwidth constraint translates into an ability to achieve higher Quality of Service (QoS) performance in terms of delay, jitter, or loss for the guaranteed bandwidth services end-to-end across the network.
DS-TE has been augmented to conform to IETF standards that were developed after the initial creation of Cisco DS-TE. Now both the traditional and the IETF versions of DS-TE can be run on your network; the new releases are backwards compatible.
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 per cent (or any assigned percentage) of the link capacity of guaranteed traffic (for example, voice), while there can be up to 100 per cent of the link capacity of regular traffic. Assuming that 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.
The new IETF-Standard functionality of DS-TE expands the means for allocating constrained bandwidth into two distinct models, called the “Russian Dolls Model” and the “Maximum Allocation Model”. They differ from each other as follows:
MODEL |
Achieves Bandwidth Efficiency |
Ensures Isolation across Class Types |
Protects against QoS Degradation... |
||
---|---|---|---|---|---|
When Preemption is Not Used |
When Preemption is Used |
...of the Premium Class Type |
...of all other Class Types |
||
Maximum Allocation |
Yes |
Yes |
Yes |
Yes |
No |
Russian Dolls |
Yes |
No |
Yes |
Yes |
Yes |
Therefore in practice, a Network Administrator might prefer to use:
-
the Maximum Allocation Model when s/he needs to ensure isolation across all Class Types without having to use pre-emption, and s/he can afford to risk some QoS degradation of Class Types other than the Premium Class.
-
the Russian Dolls Model when s/he needs to prevent QoS degradation of all Class Types and can impose pre-emption.
DS-TE involves extending OSPF (Open Shortest Path First routing protocol), so that the available sub-pool or class-type 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.
With the addition of IETF-Standard functionality (beginning with Cisco IOS Release 12.2(33)SRB), networks may accomplish DS-TE in three different combinations or “modes”, so that they may transition to the IETF-Standard formats in a manner that will not degrade their ongoing traffic service. These three situations or modes are summarized as follows:
-
The original, or “Traditional” (pre-IETF-Standard) mode. This describes networks that already operate the form of DS-TE that was introduced by Cisco a few years ago. Such networks can continue to operate is this traditional mode, even when they use the new Release 12.2(33)SRB and subsequent releases.
-
The “Migration” or combination mode. Networks already running traditional DS-TE that would like to upgrade to the IETF-Standard should first configure their routers into the Migration mode. This will allow them to continue to operate DS-TE without tunnels being torn down. In Migration mode, routers will continue to generate IGP and tunnel signalling as in the Traditional form, but now these routers will add TE-class mapping and will accept advertisement in both the Traditional and the new IETF-Standard formats.
-
The “Liberal IETF” mode. Networks already running in the Migration mode can then move into IETF formats by reconfiguring their routers into this flexible (hence “Liberal”) combination: their routers will henceforth generate IGP advertisement and tunnel signalling according to the new IETF Standard, but they will remain capable of accepting advertisement in the Traditional format, as well as in the new IETF format.
The table below summarizes these distinctions among the three modes.
Uses TE-class mapping |
Generates |
Processes |
|||
---|---|---|---|---|---|
MODE |
IGP Advertisement |
RSVP-TE Signaling |
IGP Advertisement |
RSVP-TE Signaling |
|
Traditional |
No |
traditional |
traditional |
traditional1 |
traditional |
Migration |
Yes |
traditional |
traditional |
traditional & IETF |
traditional & IETF |
Liberal IETF |
Yes |
IETF |
traditional & IETF |
traditional & IETF |
traditional & IETF |
1Note that it is not possible for the Traditional mode to be liberal in what it accepts in terms of IGP, since it does not use TE-Class mapping and therefore cannot interpret the “Unreserved Bandwidth” in the IETF-compliant way when the Subpool Sub-TLV is absent.
From Traditional to IETF-Standard Commands
DS-TE commands originally were developed from the then-existing command set that had been used to configure MPLS traffic engineering. The only difference introduced at that time 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.
The ip rsvp bandwidth command
The early MPLS command had been
ip rsvp bandwidth x y
where x = the size of the only possible pool, and y = the size of a single traffic flow (ignored by traffic engineering).
Then, to create the original implementation of DS-TE, the command was made into
ip rsvp bandwidth x y sub-pool z
where x = the size of the global pool, and z = the size of the sub-pool.
With the addition of the IETF-Standard version of DS-TE, the command has been further extended to become:
ip rsvp bandwidth x y [ [rdm x {subpool z | bc1 z}] | [mam bc0 x bc1 z]]
where x = the size of the global pool (now called bc0 ), and z = the size of the sub-pool (now called also bc1 ).
Two bandwidth constraint models also have become available, “Russian Dolls” (indicated by the keyword rdm ) and “Maximum Allocation” (mam ). The former model allows greater sharing of bandwidth across all Class Types (bandwidth pools), while the latter protects especially the premium Class Type. (The IETF Standard makes possible the future implementation of as many as seven sub-pools within one LSP, instead of just one sub-pool per LSP).
The tunnel mpls traffic-eng bandwidth command
The pre-DS-TE traffic engineering command was
tunnel mpls traffic-eng bandwidth b
where b = the amount of bandwidth this tunnel requires.
So for the original DS-TE, you specified from which pool (global or sub) the tunnel's bandwidth would come. You could enter
tunnel mpls traffic-eng bandwidth sub-pool b
to indicate that the tunnel should use bandwidth from the sub-pool. Alternatively, you could enter
tunnel mpls traffic-eng bandwidth b
to indicate that the tunnel should use bandwidth from the global pool (which was the default).
With the addition of the IETF-Standard version of DS-TE, the command has been extended to become:
tunnel mpls traffic-eng bandwidth [sub-pool|class-type 1] b
where both sub-pool and class-type 1 indicate the same, smaller bandwidth pool (now called class-type 1). The two keywords can be used interchangeably.
The mpls traffic-eng ds-te commands
The IETF Standard introduces two new commands, one to indicate the Bandwidth Constraints model
mpls traffic-eng ds-te bc-model [rdm | mam]
and one to select the DS-TE mode:
mpls traffic-eng ds-te mode [migration|ietf]
(The concepts of bc-model and DS-TE mode were explained in the section above).
The first command allows you to select between the Russian Dolls Model (rdm ) and the Maximum Allocation Model (mam ) of bandwidth constraints.
The second command allows you to transition a network from traditional DS-TE tunnels to the IETF Standard without disrupting any of the tunnels’ operation. To accomplish this, you first put the routers into Migration mode (using the migration keyword) and subsequently into the Liberal-IETF mode (using the ietf keyword).
Transitioning a Network to the IETF Standard
Networks already operating DS-TE tunnels by means of the traditional, pre-IETF-Standard software can switch to the IETF-Standard without interrupting their DS-TE service by following this sequence:
-
Install Cisco IOS Release 12.2(33)SRB (or a subsequent release) on each router in the network, gradually, one router at a time, using Cisco’s In Service Software Upgrade (ISSU) procedure which protects ongoing network traffic from interruption. (After that installation, DS-TE tunnels in the network will continue to operate by using the pre-IETF-Standard formats.)
-
Enter the global configuration command mpls traffic-eng ds-te mode migration on each router in the network, one router at a time. This will enable the routers to receive IETF-format IGP advertisement and RSVP-TE signaling, while the routers will continue to generate and receive the pre-Standard formats for those two functions.
-
After all the routers in the network have begun to operate in Migration mode, enter the global configuration command mpls traffic-eng ds-te mode ietf on each router, one at a time. This will cause the router to refresh its TE tunnels with IETF-compliant Path signaling, without disrupting the tunnels’ operation. This mode also causes the router to generate IGP advertisement in the IETF-Standard format.
Guaranteed Bandwidth Service Configuration
Once two bandwidth pools are configured traffic can be managed in the following ways:
-
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:
- Select a queue--or in diffserv terminology, select a PHB (per-hop behavior)--to be used exclusively by the strict guarantee
traffic. This shall be called the “GB queue.”
If delay/jitter guarantees are sought, the diffserv Expedited Forwarding queue (EF PHB) is used. (On the Cisco 7500 [VIP], it is the "priority" queue.) 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. (On the Cisco 7500 [VIP], you use one of the existing Class-Based Weighted Fair Queuing [CBWFQ] queues.)
-
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. This is done 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.
- 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.
This done 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).
- 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.
This is done by setting the sub-pool bandwidth of each outbound link to the appropriate percentage of the total link bandwidth (that is, by adjusting the z parameter of the ip rsvp bandwidth command).
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:
-
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).
-
Mark each class of traffic using a unique value in the MPLS experimental bits field (for example gold = 4, silver = 5, bronze = 6).
-
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.