QoS實現工具之MQC
QoS技術可以對網絡中報文進行分類處理,根據優先級提供不同的差分服務,如何實現這種差分服務呢?我們有一種強大的配置方法-模塊化QoS命令行MQC(Modular QoS Command-Line)。下面就來介紹一下MQC。
1 MQC可以做什么?
MQC,又叫流策略,是指通過將某些具有相同特征的報文划分為一類,並為這一類報文提供相同服務的配置方法。通過配置流策略,用戶可以定義報文分類規則匹配需要單獨處理的流量,然后將匹配的流量進行相應處理,達到自己想要的效果。
通過MQC配置可以實現流量監管、重標記優先級等QoS業務,也可以實現流量統計、策略路由等其他網絡常用功能,功能強大,配置靈活。
2 MQC是如何實現的?
2.1 MQC的配置流程
MQC包含三個要素,分別是流分類(traffic classifier)、流行為(traffic behavior)和流策略(traffic policy)。三要素通過下面的方式配合使用完成對流量的處理:
1、 配置流分類定義報文匹配規則
2、 配置流行為確定報文處理動作
3、 配置流策略,並將配置好的流分類和流行為綁定到一起
4、 在指定視圖下應用流策略
圖一 MQC配置流程圖
2.2配置流分類
當用戶想要對某類流量進行識別時,需要確定一組流量匹配規則,這個過程稱為定義流分類。分類方法豐富多樣,常用的報文分類規則有如下幾種:
· MAC地址
· VLAN ID
· 802.1p優先級
· EXP優先級
· ACL
· DSCP優先級
· IP優先級
· 所有報文
· 出接口或入接口
通過命令traffic classifier classifier-name [ operator { and | or } ] [ precedence precedence-value ]配置流分類,然后在該流分類中通過if-macth命令配置具體的規則。框式設備可以通過precedence precedence-value 為每個流分類指定優先級,如果不配置,則使用系統默認分配的優先級,即根據用戶的配置順序生效。盒式設備不支持該參數,按照用戶的配置順序生效,報文優先匹配先配置的流分類規則。
一個流分類中可以配置一條規則,也可以配置多條,多條規則之間的關系可以配置為and或者or。規則之間的關系配置為and或者or時,報文匹配流分類的要求不同:
匹配規則 |
流分類中有ACL規則 |
流分類中沒有ACL規則 |
and |
報文必須匹配ACL中的一條rule規則以及所有非ACL規則才屬於該類 |
報文必須匹配所有非ACL規則才屬於該類 |
or |
報文只需匹配流分類中的一個或多個規則即屬於該類 |
以下面兩個流分類為例,對於tc1來說,報文必須同時匹配ACL2001(或者ACL3001),802.1p優先級為5和三層協議類型為IP協議三個規則時才屬於該類。
[switch] traffic classifier tc1 operator and
[switch-classifier-tc1] if-match acl 2001
[switch-classifier-tc1] if-match 8021p 5
[switch-classifier-tc1] if-match acl 3001
[switch-classifier-tc1] if-match protocol ip
對於tc2來說,報文匹配ACL3001或者報文802.1p優先級為6時都屬於該類。
[switch] traffic classifier tc2 operator or
[switch-classifier-tc2] if-match acl 3001
[switch-classifier-tc2] if-match 8021p 6
2.3配置流行為
前面通過流分類對報文進行了分類,那分類的目的是什么呢?就是對不同類型的報文(或者說不同業務)提供不同的服務,而不同的服務就是通過流行為來定義的。配置時需要通過命令traffic behavior behavior-name定義一個流行為,然后在流行為中配置具體的流動作。常用的流動作包括以下幾種:
流動作 |
命令關鍵字 |
報文過濾 | deny | permit |
重標記 |
remark |
重定向和策略路由 |
redirect |
流量統計 |
statistic enable |
流量監管 |
car |
流鏡像 |
mirroring to observe-port |
如果配置流動作為重標記,表示對報文重新進行分類,可以重標記報文的802.1p優先級、DSCP優先級、本地優先級、目的MAC地址、流ID等等。重標記報文的802.1p優先級和DSCP優先級會影響下游設備對報文的QoS處理,不影響報文在本設備的QoS處理;重標記本地優先級則僅影響本設備對報文的QoS處理。
在一個流行為中可以定義一個或多個動作,如下流行為tb1表示對匹配分類的報文進行流量監管,限速為4096kbit/s,同時進行流量統計。
[switch]traffic behavior tb1
[switch-behavior-tb1] car cir 4096
[switch-behavior-tb1] statistic enable
流行為tb2表示將匹配分類的報文重定向到下一跳10.10.10.1。
[switch] traffic behavior tb2
[switch-behavior-tb2] redirect ip-nexthop 10.10.10.1
不同的流動作之間可能會存在互斥,即同一個流行為中,某些動作不能同時配置。比如流動作deny與流鏡像之外的其他動作不能在一個流行為中配置。
ACL與MQC經常組合使用。ACL里面的permit/deny與traffic behavior中的permit/deny組合使用時有如下四種情況:
ACL |
Traffic policy中的behavior |
匹配報文的最終處理結果 |
permit |
permit |
permit |
permit |
deny |
deny |
deny |
permit |
deny |
deny |
deny |
deny |
2.4配置流策略
前面配置的流分類、流行為是孤立的,本身沒任何意義,所以必須將兩者聯系在一起才有意義,而流策略就是把兩者綁定起來。流分類規則和流行為定義好之后,通過命令traffic policy policy-name [ match-order { auto | config } ]配置一個流策略,然后通過classifier classifier-name behavior behavior-name將流分類和流行為綁定到一起,組成一個特定的策略。
以下面的配置為例,流策略tp1表示對匹配tc1規則的報文執行tb1的動作,對匹配tc2規則的報文執行tb2動作。
[switch] traffic policy tp1 match-order config
[switch-trafficpolicy-tp1] classifier tc1 behavior tb1
[switch-trafficpolicy-tp1] classifier tc2 behavior tb2
l 流策略tp1的配置順序為config,匹配順序由流分類規則優先級決定:
² 如果未配置優先級,或者不支持流分類規則優先級配置,則按照配置順序生效。tc1先配置,因此報文優先匹配tc1的規則,執行tb1的動作,匹配之后不會再進行下一步規則查找。
² 如果框式設備配置了流分類規則優先級,則按照優先級配置大小生效,數值越小,優先級越高。
l 如果流策略tp1的配置順序為auto,匹配順序由系統預先指定的流分類類型的優先級決定:
² 該優先級由高到低依次為:自定義ACL規則 > 二層規則 三層規則 > 二層規則 > 三層規則。
² 流分類tc1中定義的規則屬於二層規則 三層規則,因此優先級較高,報文優先匹配tc1的規則,執行tb1的動作,匹配之后不會執行tb2的流動作。
l 對於不支持配置match-order參數的盒式設備,報文按照配置順序進行匹配。
2.5應用流策略
流策略配置完之后,需要選擇該策略在設備上生效的范圍。流策略可以應用在接口、VLAN和全局的出方向和入方向,其中接口包括物理接口、子接口、VLANIF接口和Eth-Trunk接口等。以接口為例,在指定接口入方向應用某個流策略,表示對進入該接口且匹配流分類規則的流量執行指定動作。如下所示:
[switch] interface GigabitEthernet 1/0/1
[switch-GigabitEthernet1/0/1] traffic-policy tp1 inbound
同一台設備上面可以配置多個流策略,同一個流策略也可以應用在多個視圖下。因此報文有可能會同時匹配多個流策略,那到底哪個流策略會生效呢?根據流分類規則是否屬於同一類,分為以下兩種情況。
當流分類屬於同一類時,流策略的生效規則如下圖所示:
圖二 流策略生效規則示意圖一
當流分類規則不屬於同一類時,流策略的生效規則如下圖所示:
圖三 流策略生效規則示意圖二
比如,設備上還配置了一個流策略tp2,且應用在VLAN30上。
[switch] traffic policy tp2 match-order config
[switch-trafficpolicy-tp2] classifier tc1 behavior tb1
[switch-trafficpolicy-tp2] quit
[switch] vlan 30
[switch-vlan30] traffic-policy tp2 inbound
從配置可以看出流分類規則均為tc1,但是因為接口的生效優先級高於VLAN,因此只有流策略tp1生效。
3 MQC配置舉例
前面我們已經分別介紹了配置MQC的四個步驟,現在我們來看一下一個完整的MQC配置過程是怎樣的。
以下面的組網為例,假設部門1的用戶均屬於VLAN10,部門2的用戶均屬於VLAN20,用戶希望為部門1提供8Mbit/s的帶寬,為部門2提供6Mbit/s的帶寬。
此處省略接口和VLAN等基本配置。
圖四 MQC應用組網圖
[LSW1] traffic classifier bumen1
[LSW1-classifier- bumen1] if-match vlan-id 10 //匹配部門1的流量
[LSW1-classifier- bumen1] quit
[LSW1] traffic classifier bumen2
[LSW1-classifier- bumen2] if-match vlan-id 20 //匹配部門2的流量
[LSW1-classifier- bumen2] quit
[LSW1] traffic behavior bumen1
[LSW1-behavior-bumen1] car cir 8000 pir 10000 green pass //限制部門1的流量為8Mbit/s
[LSW1-behavior-bumen1] quit
[LSW1] traffic behavior bumen2
[LSW1-behavior-bumen2] car cir 6000 pir 10000 green pass //限制部門2的流量為6Mbit/s
[LSW1-behavior-bumen2] quit
[LSW1] traffic policy xiansu
[LSW1-trafficpolicy-xiansu] classifier bumen1 behavior bumen1 //將流分類和流行為綁定
[LSW1-trafficpolicy-xiansu] classifier bumen2 behavior bumen2
[LSW1-trafficpolicy-xiansu] quit
[LSW1] interface gigabitethernet 0/0/3
[LSW1-GigabitEthernet0/0/3] traffic-policy xiansu outbound //在接口出方向應用該策略
[LSW1-GigabitEthernet0/0/3] quit
4 小結
MQC作為一種實現QoS技術的理念,可以完成QoS技術中的流量監管和限速,報文的分類和重標記。除了MQC外,優先級映射提供了另一種報文分類和標記的方法,前面提到的802.1p優先級、DSCP優先級和本地優先級將在后面的優先級映射專題中進行詳細介紹。