QoS實現工具之MQC

[轉自]https://www.cnblogs.com/ricksteves/p/9684814.html

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、 在指定視圖下應用流策略

20161226103816504001.png

圖一 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

同一臺設備上面可以配置多個流策略,同一個流策略也可以應用在多個視圖下。因此報文有可能會同時匹配多個流策略,那到底哪個流策略會生效呢?根據流分類規則是否屬於同一類,分爲以下兩種情況。

當流分類屬於同一類時,流策略的生效規則如下圖所示:

20161226103817289002.png

圖二 流策略生效規則示意圖一

當流分類規則不屬於同一類時,流策略的生效規則如下圖所示:

20161226103818078003.png

圖三 流策略生效規則示意圖二

比如,設備上還配置了一個流策略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等基本配置。

20161226103819088004.png

圖四 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技術中的流量監管和限速,報文的分類和重標記。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章