第1步:定義傳輸類型
妳必須告訴路由器,哪種數據流需要進行QoS管理。妳可以通過訪問控制列表(ACL)或者基於網絡應用程序識別(NBAR)的方式來進行定義。其中ACL是為路由器設定不同傳輸數據 類型的傳統方式。
而NBAR則是讓路由器識別流經路由器的各種數據的類別,比如HTTP數據是HTTP類別,Skype是Skype類別。但是路由器可識別的應用程序協議數量是有限的,這依賴於路由器內部存 儲的壹個程序協議列表。
雖然路由器無法識別全部應用程序,但是路由器廠商在每次IOS升級時,會在列表中加入更多的程序。另外,妳也可以自己定義程序識別列表。
第2步:創建類映射(class-map)
類映射就是將不同類型的數據流進行分組。比如,妳可以創建壹個叫做“VoIP traffic”的類映射,然後將各種VoIP協議歸入該類。
第3步:創建策略映射(policy-map)
策略映射可以與類映射匹配,確定某類數據流的帶寬和/或優先級。
第4步:將策略映射應用於接口
和ACL列表壹樣,妳必須將策略映射應用於某個妳所設定的端口上。妳可以設定策略映射為輸入或輸出模式
實例:
對不同IP組進行流量限制實例:
Cisco(config)#ip access-list extended BOSS
Cisco(config-ext-nacl)#permit ip host 192.168.1.8 any
Cisco(config-ext-nacl)#permit ip host 192.168.1.18 any
Cisco(config-ext-nacl)#permit ip host 192.168.1.38 any
Cisco(config-ext-nacl)#permit ip host 192.168.1.48 any
Cisco(config-ext-nacl)#permit ip host 192.168.1.58 any
Cisco(config-ext-nacl)#permit ip host 192.168.1.68 any
Cisco(config-ext-nacl)#end
Cisco#config t
Cisco(config)#ip access-list extended COMMON
Cisco(config-ext-nacl)#deny ip host 192.168.1.8 any
Cisco(config-ext-nacl)#deny ip host 192.168.1.18 any
Cisco(config-ext-nacl)#deny ip host 192.168.1.38 any
Cisco(config-ext-nacl)#deny ip host 192.168.1.48 any
Cisco(config-ext-nacl)#deny ip host 192.168.1.58 any
Cisco(config-ext-nacl)#deny ip host 192.168.1.68 any
Cisco(config-ext-nacl)#permit ip 192.168.0.0 0.0.255.255 any
Cisco(config-ext-nacl)#end
Cisco#config t
Cisco(config)#route-map QoS permit 10
Cisco(config-route-map)#match ip address BOSS
Cisco(config-route-map)#set ip precedence ?
<0-7> Precedence value
critical Set critical precedence (5)
flash Set flash precedence (3)
flash-override Set flash override precedence (4)
immediate Set immediate precedence (2)
internet Set internetwork control precedence (6)
network Set network control precedence (7)
priority Set priority precedence (1)
routine Set routine precedence (0)
<cr>
Cisco(config-route-map)#set ip precedence critical
Cisco(config-route-map)#exit
Cisco(config)#route-map QoS permit 20
Cisco(config-route-map)#match ip address COMMON
Cisco(config-route-map)#set ip precedence priority
Cisco(config-route-map)#exit
Cisco(config)#class-map match-any NORMAL
Cisco(config-cmap)#match ip precedence 0 1 2
Cisco(config-cmap)#class-map match-any PREMIUM
Cisco(config-cmap)#match ip precedence 0 1 2
Cisco(config-cmap)#exit
Cisco(config)#policy-map QoS_OUTPUT
Cisco(config-pmap)#class PREMIUM
Cisco(config-pmap-c)#bandwidth 2048
Cisco(config-pmap-c)#police 2048000 bc 19200 38400
Cisco(config-pmap-c-police)#conform-action transmit
Cisco(config-pmap-c-police)#exceed-action transmit
Cisco(config-pmap-c-police)#class NORMAL
Cisco(config-pmap-c)#bandwidth 512
Cisco(config-pmap-c)#police cir 51000 bc 1200 be 1200
Cisco(config-pmap-c-police)#conform-action transmit
Cisco(config-pmap-c-police)#exceed-action drop
Cisco(config-pmap-c-police)#end
Cisco#config t
Cisco(config)#interface G 0/0
Cisco(config-if)#ip nat inside
Cisco(config-if)#ip policy route-map QoS
Cisco(config)#interface G 0/1
Cisco(config-if)#ip nat outside
Cisco(config-if)#service-policy output QoS_OUTPUT