H3C 设备qos配置经典讲解 

QoS配置指导

以下例子中的组网如下:
   ETH0/1   ______________
    192.168.1.12 |          |
 ---------------| ROUTER |---------------
 内网        |_____________|   外网2.1        基于内网网段进行限速
场景要求:对内网为192.168.1.0的网段进行限速,访问外网的速率不能超过64k。
定义ACL规则:
 [H3C]acl number 2000
 [H3C -acl-basic-2000] rule 0 permit source 192.168.1.0 0.0.0.255在内网口应用策略:
 [H3C] interface Ethernet 0/1
 [H3C-Ethernet0/1] qos car inbound acl 2000 cir 64 cbs 4000 ebs 0 green pass red discard CBS和EBS的配置方法:
 CIR:表示向C桶中投放令牌的速率,即C桶允许传输或转发报文的平均速率;
 CBS:表示C桶的容量,即C桶瞬间能够通过的承诺突发流量;
 EBS:表示E桶的容量,即E桶瞬间能够通过的超出突发流量。
 CIR用来确定设备允许的流的平均速度,基于速率的设置就是指该值的设置;CBS表示每次突发所允许的最大的流量尺寸,这个值可以通过(流量波动时间 超过CIR的部分)进行估算。但是该值的设置一般比较粗略,只能是一个大概的数值,在实际使用中如果效果不好,还需要继续细调;EBS的值一般来说不需要 设置,所以设置为0即可。
 2.2        基于时间段和网段进行限速
 场景要求:对内网为192.168.1.0的网段进行限速,访问外网的速率不能超过64k,限定时间为工作时间。
 通过设置time-range和ACL,可以实现基于时间段的限速。
 定义时间段:
 [H3C]time-range worktimeam 8:00 to 12:00 working-day
 [H3C]time-range worktimepm 13:00 to 17:00 working-day
 定义ACL规则:
 [H3C]acl number 2000
 [H3C -acl-basic-2000]
 [H3C -acl-basic-2000] rule 0 permit source 192.168.1.0 0.0.0.255 time-range worktimeam
 [H3C -acl-basic-2000] rule 1 permit source 192.168.1.0 0.0.0.255 time-range worktimepm在内网口应用策略:
 [H3C] interface Ethernet 0/1
 [H3C-Ethernet0/1] qos car inbound acl 2000 cir 64 cbs 4000 ebs 0 green pass red discard 2.3        基于网段进行流量整形
场景要求:为了减少报文的无谓丢失,可以在ICG的出口对报文进行流量整形处理。将超出流量整形特性的报文缓存在ICG中。当可以继续发送下一批报文时,流量整形再从缓冲队列中取出报文进行发送。这样,发向外网的报文将都符合外网的流量规定。
 对内网为192.168.1.0的网段进行流量整形,访问外网的速率不能超过512k。
 定义ACL规则:
 [H3C]acl number 2000
 [H3C -acl-basic-2000]
 [H3C -acl-basic-2000] rule 0 permit source 192.168.1.0 0.0.0.255
 在外网口应用策略:
 [H3C] interface Ethernet 0/0
 [H3C-Ethernet0/0] qos gts acl 2000 cir 512 cbs 32000 ebs 0 queue-length 50  2.4        基于物理接口进行限速
场景要求:物理接口限速能够限制在物理接口上通过的所有报文,流量监管在IP层实现,可以对端口上不同的流分类进行限速,但是对于不经过IP层处理的报文不起作用。当用户只要求对所有报文限速时,使用物理接口限速比较简单。
 这里要求对出接口方向的物理限速为64k。
 在外网口应用策略:
 [H3C] interface Ethernet 0/0
 [H3C-Ethernet0/0] qos lr outbound cir 64 cbs 4000 ebs 0 2.5        基于协议进行限速
场景要求:对BT下载的速率不能超过64k。
 定义类:
 [H3C] traffic classifier bt operator and
 [H3C-classifier-bt] if-match protocol bittorrent
 定义流行为:
 [H3C] traffic behavior 64k
 [H3C-behavior-64k] car cir 64 cbs 4000 ebs 0 green pass red discard
 定义策略:
 [H3C] qos policy bt_64k 
 [H3C-qospolicy-bt_64k] classifier bt behavior 64k
 在外网口的入和出方向应用策略
 [H3C] interface Ethernet 0/0
 [H3C-Ethernet0/0] qos apply policy bt_64k inbound
 [H3C-Ethernet0/0] qos apply policy bt_64k outbound  
2.6       基于类的队列进行限速
 场景要求:ICG是外网出口,下挂2个网段,存在语音业务。对192.168.1.0网段访问Internet需要8k保证,对于所有RTP流需要32k保证。
 由于存在语音业务,语音报文对延迟敏感,所以,需要对于RTP流放入EF类,其他的报文可放入AF类。所以,此时需要实现给予类的队列进行限速。
 定义ACL规则:
 [H3C]acl number 2000
 [H3C -acl-basic-2000]
 [H3C -acl-basic-2000] rule 0 permit source 192.168.1.0 0.0.0.255
 定义类:
 [H3C] traffic classifier acl2000 operator and
 [H3C-classifier-acl2000] if-match acl 2000
 [H3C]traffic classifier rtp operator and
 [H3C-classifier-rtp]if-match protocol rtp
 定义流行为:
 [H3C]traffic behavior ef32k
 [H3C-behavior-ef32k]queue ef bandwidth 32 cbs 1500
 [H3C]traffic behavior af8k
 [H3C-behavior-af8k]queue af bandwidth 8
 [H3C-behavior-af8k]wred
 定义策略:
 [H3C]qos policy cbq
 [H3C-qospolicy-cbq]classifier acl2000 behavior af8k
 [H3C-qospolicy-cbq]classifier rtp behavior ef32k
 将策略应用在外网接口:
 [H3C] interface Ethernet 0/0
 [H3C-Ethernet0/0] qos apply policy cbq outbound 2.7        基于自定义队列解决拥塞
场景要求:ICG是外网出口,下挂2个网段,要求网络拥塞时通过CQ对192.168.1.0/24网段给予优先保证。
 在该场景下,只需要保证网段192.168.1.0/24下流量的优先于网段192.168.2.0/24下的流量。
 定义ACL规则(均为内网网段):
 [H3C]acl number 2000
 [H3C -acl-basic-2000]
 [H3C -acl-basic-2000] rule 0 permit source 192.168.1.0 0.0.0.255
 [H3C]acl number 2001
 [H3C -acl-basic-2001]
 [H3C -acl-basic-2001] rule 0 permit source 192.168.2.0 0.0.0.255
 定义CQL 1队列:
 [H3C]qos cql 1 queue 1 queue-length 1000
 [H3C]qos cql 1 queue 1 serving 1000
 [H3C]qos cql 1 queue 2 queue-length 500
 [H3C]qos cql 1 queue 2 serving 500
 将ACL2000和CQL 1的队列1绑定起来
 [H3C]qos cql 1 protocol ip acl 2000 queue 1
 将ACL2001和CQL 1的队列2绑定起来
 [H3C]qos cql 1 protocol ip acl 2001 queue 2
 将CQL 1应用在外网接口
 [H3C] interface Ethernet 0/0
 [H3C-Ethernet0/0] qos cq cql 1 2.8        基于优先队列解决拥塞
场景要求:ICG是外网出口,下挂2个网段,要求网络拥塞时通过PQ对192.168.1.0/24网段给予优先保证。
 在该场景下,需要优先保证网段192.168.1.0/24下流量的绝对优先。
 定义ACL规则(均为内网网段):
 [H3C]acl number 2000
 [H3C -acl-basic-2000] rule 0 permit source 192.168.1.0 0.0.0.255
 [H3C]acl number 2001
 [H3C -acl-basic-2001] rule 0 permit source 192.168.2.0 0.0.0.255
 定义PQL 1队列,对ACL 2000的流量作为高优先级队列,对ACL 2001的流量作为低优先级队列:
 [H3C]qos pql 1 protocol ip acl 2000 queue top
 [H3C]qos pql 1 protocol ip acl 2001 queue bottom
 将PQL 1应用在外网接口
 [H3C] interface Ethernet 0/0
 [H3C-Ethernet0/0] qos pq pql 1

2.9        基于RTP队列对RTP进行优先处理

场景要求:ICG是外网出口,要求在出口对RTP进行优先处理。
为了保证RTP的时延和抖动降低为最低限度,保证语音或视频业务的服务质量,这里可以采用给予RTP优先队列。
在外网接口设置RTP优先队列
[H3C] interface Ethernet 0/0
[H3C-Ethernet0/0] qos reserved-bandwidth pct 50
[H3C-Ethernet0/0] qos rtpq start-port 16384 end-port 32767 bandwidth 32 cbs 1500

2.10       基于WRED接口模式的配置

场景要求:在外网口应用WRED处理。
为了避免TCP全局同步,可以采用WRED。WRED可以有效解决尾丢弃技术造成的问题,和尾丢弃不同,WRED不是等到队列满了才开始丢弃,而是发现队 列长度不够时,在数据包进入队列前随机的提取数据包进行丢弃,这样可以解决丢弃对语音传输的影响。
[H3C] interface Ethernet 0/0
[H3C-Ethernet0/0] qos wfq precedence queue-length 64 queue-number 256
[H3C-Ethernet0/0] qos wred enable
[H3C-Ethernet0/0] qos wred weighting-constant 6
[H3C-Ethernet0/0] qos wred ip-precedence 3 low-limit 20 high-limit 40 discard-probability 15

*注:关于CIR、CBS、EBS、CAR的解释:
0、在令牌桶原理中,CBS(承诺突发尺寸)+EBS(超额突发尺寸Excess Burst Size)=令牌桶大小,默认情况下EBS为0,CBS采用默认值,CBS和EBS单位是Byte,即字节
1、CIR(承诺信息速率)为每秒往令牌桶添加令牌的速度,单位是kbps,注意是bit每秒,不是Byte每秒,如配置qos car outbound carl 1 cir 64,其含义就是对carl队列1在接口出方向配置CIR为64kbps,此时默认CBS为4000(Byte),即令牌桶大小为4000字节,每秒往桶内注入令牌的速率是64kbps,令牌桶就和水桶一样,CIR最多把桶注满,并不会多出。
2、假设一个包,大小是1500字节,如果此时桶内令牌数量是2000字节,那么该数据包通过,令牌数量变成2000-1500=500(字节),如果此时再来一个1000字节的数据包,那么令牌就不够,这个数据包就有可能被丢弃或remark
3、上面只是原理介绍,实际情况是动态变化(一边有令牌注入,一边有数据包转发取令牌)的,需要计算机仿真才能看到令牌桶的动态变化
4、CAR(承诺访问数率)用来限速,比如限制FTP、HTTP、每IP限速,并不用来做流量保证,如VoIP、Video业务优先转发。