HQoS
A final element to consider about MQC-based QoS tools is that these can be combined in a hierarchical fashion, meaning, MQC policies can contain other “nested” QoS policies within them. Such policy combinations are commonly referred to as Hierarchal QoS policies or HQoS policies. HQoS policies are crucial in some TelePresence deployment scenarios, particularly with respect to subline rate services like Metro Ethernet or MPLS VPN services (with Ethernet handoffs).
Syntactically, HQoS policies can be constructed within MQC by attaching the service-policy command to a per-class action within a policy map, rather than to an interface. Incidentally, the output keyword is not required for such a policy because this is implied.
Consider a couple of examples where HQoS policies might be useful. First, look at an example of nested HQoS policies using the same QoS tool (such as a hierarchical policer), and then take a look at HQoS policies using a combination of different QoS tools (such as an HQoS shaping with queuing policy).
In the first case, you might encounter scenarios where some applications require policing at multiple levels. For example, it might be desirable to limit all TCP traffic to 5 Mbps, while, at the same time, limiting FTP traffic (which is a subset of TCP traffic) to no more than 1.5 Mbps. To achieve this nested policing requirement, Hierarchical Policing can be used.
The policer at the second level in the hierarchy acts on packets transmitted or marked by the policer at the first level. Therefore, any packets dropped by the first level are not seen by the second level. Up to three nested levels are supported by the Cisco IOS Hierarchical Policing feature.
Example 1 shows the configuration for the nested, two-level, hierarchical policing of TCP and FTP traffic.
Example 1: Hierarchical Policing Policy Example
Router(config)# policy-map FTP-POLICER Router(config-pmap)# class FTP Router(config-pmap-c)# police cir 1500000 Router(config-pmap-c-police)# conform-action transmit Router(config-pmap-c-police)# exceed-action drop Router(config-pmap-c-police)# violate-action drop Router(config-pmap-c)# exit Router(config-pmap)# exit Router(config)# policy-map TCP-POLICER Router(config-pmap)# class TCP Router(config-pmap-c)# police cir 5000000 Router(config-pmap-c-police)# conform-action transmit Router(config-pmap-c-police)# exceed-action drop Router(config-pmap-c-police)# violate-action drop Router(config-pmap-c-police)# service-policy FTP-POLICER
Additionally, it is often useful to combine shaping and queuing policies in a hierarchical manner, particularly over subline rate access scenarios.
As previously discussed, queuing policies only engage when the physical interface is congested (as is indicated to IOS Software by a full Tx-Ring). This means that queuing policies never engage on media that has a contracted subline rate of access, whether this media is Frame Relay, ATM, or Ethernet. In such a scenario, queuing can be achieved only at a subline rate by introducing a two-part HQoS policy wherein
- Traffic is shaped to the subline rate.
- Traffic is queued according to the LLQ/CBWFQ policies within the subline rate.
With such an HQoS policy, it is not the Tx-Ring that signals IOS Software to engage LLQ/CBWFQ policies, but rather it is the Class-Based Shaper that triggers software queuing when the shaped rate has been reached.
Consider a practical example: A service provider offers an enterprise subscriber a GigabitEthernet handoff, but with a (subline rate) contract for only 60 Mbps, over which he wants to deploy IP Telephony and TelePresence and data applications. Normally, queuing policies will engage only on this GE interface when the offered traffic rate exceeds 1000 Mbps. However, the enterprise administrator wants to ensure that traffic within the 60 Mbps contracted rate is properly prioritized prior to the handoff so that both VoIP and TelePresence are given the highest levels of service. Therefore, he configures an HQoS policy so that the software shapes all traffic to the contracted 60 Mbps rate and attaches a nested LLQ/CBWFQ queuing policy within the shaping policy so that traffic is properly prioritized within this 60 Mbps subline rate. Finally, the shaping policy (with the nested queuing policy) is attached to the GE interface, as shown in Example 2.
Example 2: Hierarchical Shaping and Queuing Policy Example
Router(config)# class-map match-all VOIP Router(config-cmap)# match dscp ef Router(config-cmap)# ! Matches VoIP on DSCP EF Router(config-cmap)# exit Router(config)# class-map match-all TELEPRESENCE Router(config-cmap)# match dscp cs4 Router(config-cmap)# ! Matches TelePresence on DSCP CS4 (per RFC4594) Router(config-cmap)# exit Router(config)# Router(config)# policy-map LLQ-CBWFQ Router(config-pmap)# class VOIP Router(config-pmap-c)# priority percent 10 Router(config-pmap-c)# ! Provisions 6 Mbps of LLQ for VoIP Router(config-pmap-c)# class TELEPRESENCE Router(config-pmap-c)# priority percent 25 Router(config-pmap-c)# ! Provisions 15 Mbps of LLQ for TelePresence Router(config-pmap-c)# class CALL-SIGNALING Router(config-pmap-c)# bandwidth percent 5 Router(config-pmap-c)# class TRANSACTIONAL-DATA Router(config-pmap-c)# bandwidth percent 20 Router(config-pmap-c)# class BULK-DATA Router(config-pmap-c)# bandwidth percent 10 Router(config-pmap-c)# class class-default Router(config-pmap-c)# fair-queue Router(config-pmap-c)# exit Router(config-pmap)# exit Router(config)# Router(config)# policy-map HQoS-60MBPS Router(config-pmap)# ! HQoS Shaping policy Router(config-pmap)# class class-default Router(config-pmap-c)# shape average 60000000 1200000 Router(config-pmap-c)# ! Rate=650Mbps; Bc=1.2Mb, Tc=20ms Router(config-pmap-c)# service-policy LLQ-CBWFQ Router(config-pmap-c)# ! Forces queuing policy to engage at sub-line rate Router(config-pmap-c)# exit Router(config-pmap)# exit Router(config)# Router(config)# interface GigabitEthernet0/1 Router(config-if)# description Access Edge (60 Mbps CIR over GE) Router(config-if)# service-policy output HQoS-60MBPS Router(config-if)# ! Attaches HQoS policy to GE interface Router(config-if)# exit
1 comment:
Rate=60Mbps ?
Post a Comment