cisco 871w路由器QoS配置步驟 首先我們要理解帶寬和優(yōu)先級之間的區(qū)別。當(dāng)我們在網(wǎng)絡(luò)設(shè)備(路由器和交換機(jī))上指定了某類數(shù)據(jù)流的優(yōu)先級和帶寬,,那么這些數(shù)據(jù)就會在其它數(shù)據(jù)傳輸之前進(jìn)行傳輸,,同時網(wǎng) 絡(luò)設(shè)備也會通過加大該類數(shù)據(jù)的發(fā)送量的方式來提高其傳輸帶寬。 正如我之前所說的,,配置QoS是一件復(fù)雜的工作,。根據(jù)QoS的不同,使用QoS的方式也多種多樣,。我們曾介紹過如何利用Cisco IOS AutoQoS對路由器進(jìn)行自動配置,,為VoIP數(shù)據(jù)流提 供足夠的帶寬和優(yōu)先級。 配置QoS 下面我們就來看看在Cisco 871W路由器上配置QoS的具體步驟,。 第1步:定義傳輸類型 你必須告訴路由器,,哪種數(shù)據(jù)流需要進(jìn)行QoS管理。你可以通過訪問控制列表(ACL)或者基于網(wǎng)絡(luò)應(yīng)用程序識別(NBAR)的方式來進(jìn)行定義,。其中ACL是為路由器設(shè)定不同傳輸數(shù)據(jù) 類型的傳統(tǒng)方式,。 而NBAR則是讓路由器識別流經(jīng)路由器的各種數(shù)據(jù)的類別,,比如HTTP數(shù)據(jù)是HTTP類別,Skype是Skype類別,。但是路由器可識別的應(yīng)用程序協(xié)議數(shù)量是有限的,,這依賴于路由器內(nèi)部存 儲的一個程序協(xié)議列表。 雖然路由器無法識別全部應(yīng)用程序,,但是路由器廠商在每次IOS升級時,,會在列表中加入更多的程序。另外,,你也可以自己定義程序識別列表,。 第2步:創(chuàng)建類映射(class-map) 類映射就是將不同類型的數(shù)據(jù)流進(jìn)行分組。比如,,你可以創(chuàng)建一個叫做"VoIP traffic"的類映射,,然后將各種VoIP協(xié)議歸入該類。 第3步:創(chuàng)建策略映射(policy-map) 策略映射可以與類映射匹配,,確定某類數(shù)據(jù)流的帶寬和/或優(yōu)先級,。 第4步:將策略映射應(yīng)用于接口 和ACL列表一樣,你必須將策略映射應(yīng)用于某個你所設(shè)定的端口上,。你可以設(shè)定策略映射為輸入或輸出模式,,以下是相應(yīng)的指令代碼: service-policy output|input {name of policy-map} 對不同IP組進(jìn)行流量限制實例: 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 ---------------------------------------------------------------------------- marking: 1.定義class-map. class-map [match-all/match-any] {map-name} 默認(rèn)不打的話是match-all 2.定義匹配命令match match access-group {NO} match input-interface {interface} match class-map {map-name} class-map嵌套 match source-address {mac-address} 源mac地址 match destination-address {mac-address} 目的mac地址 match vlan {vlan-ID} match ip dscp {DSCP} match ip precedencc {precedence} match protocol {protocol} 基于NBAR Router(config) class-map FOO Router(config-cmap)#match ? access-group Access group any Any packets class-map Class map cos IEEE 802.1Q/ISL class of service/user priority values destination-address Destination address input-interface Select an input interface to match ip IP specific values mpls Multi Protocol Label Switching specific values not Negate this match result protocol Protocol qos-group Qos-group source-address Source address 3.設(shè)置policy-map policy-map {policy-name} 4.調(diào)用class-map class-map {map-name} 5.設(shè)置標(biāo)記 set ip dscp {DSCP} set ip precedence {PRECEDENCE} set cos {COS} priority {Kbps|percent PERCENT} [bc] 定義優(yōu)先級流量的帶寬以及突發(fā)流量 bandwidth {Kbps|percent PERCENT} 定義保留帶寬 random-detect 啟用WRED police {CIR BC BE} conform-action {action} exceed-action {action} [violated-action {action}] 使用令牌桶限速 queue-limit {PACKETS} 定義隊列中數(shù)據(jù)報的最大個數(shù) service-policy {policy-name} 調(diào)用其它的策略進(jìn)行嵌套 shape {average|peak} {CIR [BC] [BE]} 整形 drop 6.在接口模式下調(diào)用policy-map service-policy [input|ouput] {POLICY-NAME} 察看命令: show policy-map [policy-name] show policy-map interface [INTERFACE] show class-map [class-name] show ip nbar pdlm show ip nbar port-map 顯示NBAR使用的協(xié)議到端口的映射 NBAR應(yīng)用: 使用限制: 1.快速以太網(wǎng)信道 2.隧道接口或加密的接口 3.SVI(交換虛擬接口) 4.撥號接口 5.多鏈路PPP(MLP) 使用前先要敲命令:ip cef class-map {name} match protocol … ip nbar pdlm flash://bittorrent.pdlm 加載bittorrent.pdlm 到路由器閃存里(事先要把pdlm復(fù)制到flash中) match procotol http url "*.jpeg|*.jpg" (匹配url中帶有jpeg和jpg的連接) match procotol http url "*.gif" (匹配url中有g(shù)if的連接) 擁塞管理 WFQ: 特點: 1.基于流(5元素)分類,隊列數(shù)N可以配置 2.出隊后按IP優(yōu)先級來分配帶寬,,優(yōu)先級越低則帶寬越小 3.在其它隊列空閑時搶占它們的帶寬,,又有流量時歸還帶寬 4.是低于2.048Mbps串行接口的默認(rèn)配置 配置命令: 接口模式下fair-queue show queueing fair show queue [interface] PQ: 缺點:1.只能靜態(tài)配置,,不能適應(yīng)網(wǎng)絡(luò)拓?fù)涞淖兓?.不支持隧道接口3.要通過數(shù)據(jù)分類卡,,比FIFO慢 配置: 1.定義優(yōu)先級隊列,可以基于協(xié)議和基于進(jìn)站接口 基于協(xié)議riority-list {list-number} protocol {PROTOCOL-NAME} {high|medium|normal|low} 基于進(jìn)站接口riority-list {list-number} interface {interface} {high|medium|normal|low} 2.定義默認(rèn)優(yōu)先級隊列,,未被分類的數(shù)據(jù)報被送到此處,,默認(rèn)級別為normal priority-list {list-number} default {high|medium|normal|low} 3.定義每個隊列中數(shù)據(jù)報的個數(shù),從高到低,,默認(rèn)為20,40,60,80 priority-list {list-number} queue-limit {high-limit medium-limit normal-limit low-limit} 4.把優(yōu)先級隊列運用在接口上 priority-group {list-number} 察看命令: show queue [interface] show queueing priority RTP(Real Time Protocol) 支持端口號為偶數(shù)的udp報文 可以進(jìn)行限速,,超過的可丟棄,也可以配置帶寬,,不會占用超出規(guī)定的帶寬 命令: ip rtp priority {starting-rtp-port-number port-number-range} {bandwidth} max-reserved-bandwidth PERCENT show queue [interface] debug priority CRTP(壓縮實時協(xié)議): 用來壓縮ip/udp/rtp報頭 壓縮分為三種:鏈路壓縮,,有效負(fù)載壓縮,報頭壓縮 二層報頭--tcp/ip報頭--有效負(fù)載 1.鏈路壓縮:對整個分組進(jìn)行壓縮,,包括報頭和有效負(fù)載,。獨立于協(xié)議的。只適用于點到點鏈路,。兩種算法:Predictor和STAC 2.有效負(fù)載壓縮:只壓縮數(shù)據(jù)部分,,對報頭沒有影響,。適用于frame-relay或ATM網(wǎng)絡(luò)。 3.tcp/ip報頭壓縮:針對協(xié)議的,,適用于幾個字節(jié)數(shù)據(jù)的小型分組,。 配置: 對HDLC,LAPB: compress [predictor|stac|mppc] 對ppp: ip compress [predictor|stac] 對frame-relay點到點接口或子接口啟用stac壓縮: frame-relay payload-compress 啟用crtp: 1. ip rtp header-compression [passive] 若不啟用passive,則對所有RTP數(shù)據(jù)流壓縮;若啟用passive,則只有當(dāng)進(jìn)入端口的RTP分組被壓縮時,,軟件才能對離開該接口的RTP分組壓縮 2. ip rtp compression-connections {NUMBER} 更改CRTP壓縮的條數(shù),,默認(rèn)為16條 3. 啟用tcp報頭壓縮: ip tcp header-compression [passive] 若沒有啟用passive, 則必須指定關(guān)鍵字active,將對所有IP/UDP/RTP包頭進(jìn)行壓縮 ip tcp compression-connections {NUMBER} frame-relay中的 crtp: 在物理接口上啟用CRTP,則在它的子接口上將繼承特性 frame-relay ip rtp header-compression [passive] frame-relay ip rtp compression-connections {NUMBER} 只針對特定的PVC啟用CRTP: frame-relay map ip {ip-address} {dlci} [broadcast] rtp header-compression [active|passive] [connections number] 察看命令: show ip rtp header-compression [interface] [detail] show frame-relay ip rtp header-compression [interface] WRR(weighted round-robin) 一種隊列調(diào)度機(jī)制,根據(jù)每個出站隊列的權(quán)值來分配帶寬,,權(quán)值與帶寬成正比,。 僅當(dāng)發(fā)生擁塞時才會使用WRR,不擁塞時不會分配帶寬。 步驟: 1.全局啟用mls qos 2.進(jìn)入接口模式 3.通過COS將數(shù)據(jù)報分配到不同的隊列中去,。 wrr-queue cos-map QUEUE-ID THROSHOLD COS1… COSn 它用于配置cos值到出站隊列的映射關(guān)系,。 對隊列進(jìn)行編號時,從低優(yōu)先級開始,,到嚴(yán)格優(yōu)先級結(jié)束,。 配置嚴(yán)格優(yōu)先級隊列:wrr-queue priority-queue 4.配置WRR隊列的權(quán)重 wrr-queue bandwidth WEIGHT1 WEIGHT2 WEIGHT3 WEIGHT4 計算每個隊列的方法是: example:wrr-queue bandwith 1 2 3 4 則帶寬: 隊列1:權(quán)重1/總權(quán)重=1/10 5.定義傳輸隊列長度的比例,取值為1-100% wrr-queue queue-limit LOW-PRIORITY-QUEUE-WEIGHT MEDIUM-PRIORITY-QUEUE-WEIGHTS HIGH-PRIORITY-QUEUE-WEIGHTS 高優(yōu)先級隊列因為延時小,,數(shù)據(jù)量小,,所以不需要太大的緩存區(qū)。往往將大部分緩沖區(qū)用于低優(yōu)先級隊列,。 擁塞避免 1.尾丟棄 對所有通信流平等對待,,將導(dǎo)致TCP全局同步 wrr-queue threshold QUEUE-ID THR1% 100% THR1%是開始丟棄通信流時輸出隊列的填滿程度,后面一個是100%是尾丟棄 2.WRED WRED與RED的區(qū)別在于前者引入IP優(yōu)先權(quán)DSCP值來區(qū)別丟棄策略,,可以為不同IP優(yōu)先級DSCP設(shè)定不同的隊列長度,、隊列閾值、丟棄概率,。并且RED只對TCP流量有用 通過對隊列數(shù)據(jù)流傳輸速度的平均值計算來決定是否丟棄,,防止了對突發(fā)流量的不公平待遇。 WRED和LLQ矛盾 WRED往往和WRR一起使用,。 WRED可以在接口上進(jìn)行配置,,也可以在policy上進(jìn)行配置,可以針對于precedence進(jìn)行RED,也可以針對于DSCP值進(jìn)行RED,當(dāng)然,,兩者之間只能選擇一個,。 (1)基于DSCP random-detect dscp-based random-detect dscp {DSCP} {min max mark} ?。?)基于ip precedence random-detect random-detect precedence {PRECEDENCE} {min max mark} WRED與WRR連用: wrr-queue random-detect min-throshold QUEUE-ID THR1% [THR2% [THR3% …]] wrr-queue random-detect max-throshold QUEUE-ID THR1% [THR2% [THR3% …]] min-throshold表示開始丟棄某些數(shù)據(jù)包時的最大填滿程度 max-throshold表示丟棄所有數(shù)據(jù)包時的最大填滿程度 example: int G1/1 wrr-queue bandwidth 50 75 wrr-queue queue-limit 100 50 wrr-queue random-detect min-throshold 1 50 70 wrr-queue random-detect max-throshold 1 75 100 wrr-queue cos-map 1 1 0 2 wrr-queue cos-map 1 2 3 wrr-queue cos-map 2 1 4 wrr-queue cos-map 2 2 6 priority-queue cos-map 1 1 5 7 rcv-queue cos-map 1 1 0 switchport 解釋:共有兩個隊列,。當(dāng)隊列1的填滿程度達(dá)到50%和70%時,交換機(jī)分別對映射到閘值1和閘值2的數(shù)據(jù)包進(jìn)行WRED(即開始丟棄),當(dāng)隊列1的填滿程度達(dá)到75%和100%時,,交換機(jī)分別對映射到閘值1和閘值2的數(shù)據(jù)包全部丟棄,。注意:隊列2沒有采取WRED. 基于流的WRED(WRED和WFQ結(jié)合起來使用) 小的流丟棄的概率小,大的流丟棄的概率大,,保護(hù)小的流,。 命令: 1.啟用基于流的WRED. random-detect flow 2.設(shè)置平均深度因素(average depth factor)的值,值必須為2的冪,,默認(rèn)值為4.可選: random-detect flow average-depth-factor {scaling-factor} 這個參數(shù)是改變一個乘法的比例因數(shù),。從而改變隊列的大小,其實就是改變隊列的長度,。 3.設(shè)置基于流的WRED 的數(shù)據(jù)流數(shù)目,,默認(rèn)值為256 random-detect flow count {number} 流量策略 qos的流程:1.基于流或基于類的分類;2.結(jié)合令牌桶進(jìn)行policing或shaping(CAR或GTS),;3.擁塞避免(尾丟棄或WRED),;4.擁塞管理(各種隊列機(jī)制);5.出隊,。 標(biāo)記在什么地方進(jìn)行,??(標(biāo)記可以在進(jìn)行CAR的時候進(jìn)行,,CAR也可以進(jìn)行重新標(biāo)記) CAR(Committed Access Rate) CAR通過使用令牌桶TC來進(jìn)行流量控制,。分類后,不需要流控的流量直接繼續(xù)發(fā)送,,而需要進(jìn)行流控的流量就要經(jīng)過令牌桶,。只有當(dāng)令牌桶中有令牌時,相應(yīng)的流量才能通過,。若沒有足夠的令牌,,要么流量被直接丟棄(policing),要么緩存起來(shaping),,等有了足夠的令牌后再發(fā)送出去,。 CAR還可以用來做mark或remark(即可以用來設(shè)置ip優(yōu)先級或重新設(shè)置ip優(yōu)先級) CAR可以為不同類別的報文設(shè)置不同的流量特性和標(biāo)記特性,即可以對每個類進(jìn)行CAR.CAR的策略還可以串聯(lián)處理,,比如先對總的流量進(jìn)行一次限速,然后再對各個類進(jìn)行小范圍的限速,。 CAR一般用在網(wǎng)絡(luò)邊界路由器上,。可以在一個接口上設(shè)置多個CAR策略,,數(shù)據(jù)包依次和多個CAR策略匹配,,若沒有匹配的,則默認(rèn)操作時轉(zhuǎn)發(fā)數(shù)據(jù)包。 CAR的使用有以下限制:1.只能對IP流量限速,;2.不支持fast EtherChannel;3.不支持隧道接口,;4.不支持ISDN PRI接口。 命令: rate-limit {output|input} {CIR BC BE} conform-action {action} exceed-action {action} 注意:CIR單位是bit/s;而BC和BE的單位是byte/s. conform-action的條件是指當(dāng)要發(fā)的數(shù)據(jù)小于正常突發(fā)(bc)的時候,。exceed-action是指要發(fā)的數(shù)據(jù)大于普通突發(fā),,小于最大突發(fā)(be)的時候。 action的選項共有如下這些: continue 繼續(xù)執(zhí)行下一條CAR語句 drop 丟棄數(shù)據(jù)包 tranmsit 轉(zhuǎn)發(fā)數(shù)據(jù)包 set-prec-continue {precedence} 設(shè)置IP優(yōu)先級并繼續(xù)執(zhí)行下一條CAR語句 set-prec-transmit {precedence} 設(shè)置IP優(yōu)先級并轉(zhuǎn)發(fā)數(shù)據(jù)包 set-dscp-continue {dscp} 設(shè)置dscp值并繼續(xù)執(zhí)行下一條CAR語句 set-dscp-transmit {dscp} 設(shè)置dscp值并轉(zhuǎn)發(fā)數(shù)據(jù)包 上面都是只能基于整個接口的流量進(jìn)行CAR,下面的可以分別針對某個流量或ip precedence或dscp值或MAC地址進(jìn)行CAR 擴(kuò)展的配置 1.針對dscp值進(jìn)行CAR rate-limit {output|input} [dscp DSCP] {CAR BC BE} conform-action {action} exceed-action {action} 2.針對ACL進(jìn)行CAR rate-limit {output|input} access-group {ACL NUM} {CAR BC BE} conform-action {action} exceed-action {action} 3.針對限速ACL進(jìn)行CAR rate-limit {output|input} access-group rate-limit {ACL NUM} {CAR BC BE} conform-action {action} exceed-action {action} 限速ACL只是一種調(diào)用關(guān)系:access-list rate-limit {ACL NUM} {precedence|mac-address} 可以匹配優(yōu)先級,,也可以匹配MAC地址 察看命令: 1.查看限速ACL:show access-lists rate-limit [ACL] 2.查看接口的限速信息:show interfaces [interface] rate-limit policy map中CAR操作 police {CIR BC BE} conform-action {action} exceed-action {acion} violated-action {acion} action的選項同上,。 流量整形(shaping) 通常通過緩沖區(qū)和令牌桶來完成,當(dāng)報文的發(fā)送速度過快時,,首先在緩沖區(qū)進(jìn)行緩存,,在令牌桶的控制下再均勻地發(fā)送這些被緩沖的報文。 采用的技術(shù)為GTS(通用流量整形),。 GTS與CAR的主要區(qū)別在于:利用CAR進(jìn)行報文流量控制時對不符合流量特性的報文進(jìn)行丟棄,,而GTS對于不符合流量特性的報文則是進(jìn)行緩沖,減少了報文的丟棄,,同時滿足報文的流量特性,。 若報文不需要進(jìn)行GTS,則不經(jīng)過令牌桶的處理直接發(fā)送。 當(dāng)因為缺乏足夠的令牌而采用GTS后,,GTS按一定的周期從隊列中取出報文進(jìn)行發(fā)送,。每次發(fā)送都會與令牌桶中的令牌數(shù)作比較。直到令牌桶中的令牌數(shù)減少到隊列中的報文不能再發(fā)送或是隊列中的報文全部發(fā)送完畢為止,。 一般在路由器的出口進(jìn)行shaping,入口進(jìn)行policing. 命令: 1.基本的GTS:traffic-shape rate {CIR BC BE} 2.基于ACL的GTS: traffic-shape group {ACL} {CIR BC BE} 察看: 1.查看GTS 的配置信息:show traffic-shape [interface] 2.查看GTS 的統(tǒng)計信息:show traffic-shape statistics [interface] GTS在Frame Relay上的實現(xiàn) 1.在接口上啟用GTS: traffic-shape rate {CIR [Bc [Be]]} 2.當(dāng)接口收到向后顯性擁塞通知(BECN)時,,估算流量速率的最低值: traffic-shape adaptive {CIR} 3.以向前顯性擁塞通知(FECN)做為BECN 的響應(yīng)??蛇x: traffic-shape fecn-adapt GTS在policy map上的實現(xiàn) GTS還可以定義平均值和峰值的流量整形,,并且可以在配置GTS 的時候采用CBWFQ. 配置基于分類的流量整形的步驟如下: 1.定義平均值和峰值的CIR,Bc 和Be: (config-pmap-c)#shape {average|peak} {CIR [Bc] [Be]} average指的是平均值,,peak說得是峰值 2.定義緩沖區(qū)上限,,默認(rèn)值為1000.可選: (config-pmap-c)#shape max-buffers {number-of-buffers} 3.在策略上應(yīng)用CBWFQ.可選: ?。╟onfig-if)#service-policy output {policy-name} |
|