HCIE之QoS实验(十八)

QoS

一、 分类、打标记

1、 复杂流打标记

在这里插入图片描述
实验环境:

  • 全网跑ospf
  • R1、R4运行bgp - TCP 179流量
  • R4开启telnet - telnet流量
  • R1、R2之间自用子接口802.1q通信,R2使用802.1p打2层标记

1.1、基础实验环境

全网ospf(省略)
R1、R4 bgp(省略)
R4开启telnet(省略)
R1-R2之间运行802.1q子接口:
R1
interface GigabitEthernet0/0/0.1
dot1q termination vid 10
ip address 12.1.1.1 255.255.255.0
arp broadcast enable

R2
interface GigabitEthernet0/0/0.1
dot1q termination vid 10
ip address 12.1.1.2 255.255.255.0
arp broadcast enable

1.2、复杂流MQC打标记

1.2.1、定义ACL匹配流量

R1
acl number 3000
rule 5 permit icmp
acl number 3001
rule 5 permit tcp destination-port eq telnet
acl number 3002
rule 5 permit tcp destination-port eq bgp

1.2.2、定义类调用ACL

R1
traffic classifier icmp operator or //定义类 名称icmp
if-match acl 3000 //匹配ACl 3000的icmp流量
traffic classifier telnet operator or
if-match acl 3001
traffic classifier bgp operator or
if-match acl 3002

1.2.3、定义打标的动作

R1
traffic behavior 8021p-1
remark 8021p 1 //把802.1q包按照802.1p标准打上优先级1
statistic enable //开启数据包计数功能,方便查看
traffic behavior 8021p-2
remark 8021p 2
statistic enable
traffic behavior 8021p-3
remark 8021p 3
statistic enable

注:其实R1发出的数据包的二层802.1q包头包含优先级参数
三层ip包包头也包含优先级参数
所以此处也可以直接使用dscp更改ip包头优先级

1.2.4、关联类和动作

R1
traffic policy mark //定义关联策略
classifier icmp behavior 8021p-1 //icmp类 按照8021p-1打上优先级1
classifier telnet behavior 8021p-2
classifier bgp behavior 8021p-3

注:对于没有ACl没有匹配的流量,将会被默认不打标记正常放行

在MQC没有调用前,先在R1的出接口上抓包观察ping包的优先级(以icmp包为例)
二层802.1q 默认优先级为0
三层ip包的默认优先级为0
在这里插入图片描述

1.2.5、调用出接口

R1
interface GigabitEthernet0/0/0
traffic-policy mark outbound //R1出接口调用MQC策略,将802.1Q包打标记为1

1.2.6、验证结果

R1出接口抓包查看802.1q包优先级改成了1 – 成功
抓包查看三层ip包头优先级还是0 – 正确,因为MQC修改的是802.1q优先级
在这里插入图片描述
R1查看MQC 打标记调用情况
[R1]display traffic-policy applied-record mark
在这里插入图片描述
R1查看数据包打优先级标记计数情况
[R1]display traffic policy statistics interface GigabitEthernet 0/0/0 outbound
在这里插入图片描述

1.2.7、复杂流标记优势
  • 出接口、入接口随便调用,且不用管报文以前的优先级是什么,是二层的802.1p标记还是三层dscp标记,随便remark

2、简单流分类(自动映射)

2.1、发包优先级分析

默认情况下:R2收包(R1发包)的时候icmp 802.1q包优先级为1
R2转发icmp报文(右侧接口)抓包查看优先级变化
发现
A、右侧是三层接口,没有802.1q包头
B、右侧的ip包头优先级还是0
C、左侧的802.1q优先级1没有继承给右侧的ip包优先级
相当于 – 优先级经过R2转发失效了(其实R2自己也没有接受优先级)
在这里插入图片描述
分析:默认一台设备对流量进行打标记后传出去到下一台设备不会接受。
解决方法:需要在R2收包接口开启简单流分类自动映射(trust功能),用来接受R1发送过来的数据包包含的优先级,且路由器会自动将2层802.1p外部优先级自动映射为外部dscp 3层优先级

2.2、开启简单流分类(自动映射)

R2
interface GigabitEthernet0/0/0
trust 8021p override //接受8021p更改802.1q包优先级,且自动转换为内部优先级

注:override参数:R2收到的优先级会由内部优先级映射成外部优先级继续向下传递。
不带override就只有R2将收到的外部优先级转换为内部优先级自己使用,不会传递

R2查看2层8021p外部优先级 – 3层优先级DSCP(传出的ip包)映射关系– 默认映射关系
[R2]display qos map-table dot1p-dscp
在这里插入图片描述
R2右侧出接口抓包查看优先级变化
原来收到的icmp 8021p优先级为1,不trust override时右侧接口是0
在这里插入图片描述
分析:R2数据包处理流程:
第一步:R2收到802.1p的icmp数据包外部优先级 = 1 – 二层
第二步:R2将802.1p数据包优先级转换为3层优先级DSCP值为8 – 三层
802.1p 优先级1 = 2进制 001 = DSCP 6个bit 001 000 = 8 – 二层转三层
第三步:R2将优先级值为8的dscp优先级写入ip包3层TOS位直接从出接口转发
TOS的前6bit = 100000 = CS1
在这里插入图片描述

2.3、2层到3层优先级映射修改

R2修改下列默认简单流分类的二层dost1p – dscp映射关系
在这里插入图片描述
R2
qos map-table dot1p-dscp //R2简单流分类dot1p – dscp 映射
input 1 output 46
分析:R2收到的dot1p 外部优先级为1的数据包 – 转换成dscp外部优先级为46(ef)转发出去(二层优先级继承给3层优先级),R2自己认为的内部优先级,个人认为还是CS1(没查文档,自己认为不知道对不对)

R2查看修改是否成功
[R2]display qos map-table dot1p-dscp
在这里插入图片描述
R2出接口抓包查看是否icmp包三层包头优先级从CS1变成为EF
在这里插入图片描述

3、优先级转发的理解

自己的理解,不知道对不对
A、 初始优先级
每种协议的都有初始的优先级,这个初始优先级PC发出来没有,只有经过路由器之后
CS7 协议报文
CS6 协议报文(bgp、OSPF、telnet)
EF voip语音
AF4x 振铃流量
AF3x 直播流量
AF2x 点播流量
AF1x 普通上网流量
BE 尽力而为
B、 接口trust命令:
接口下敲trust命令:代表这个接口收到的优先级会自动映射成内部优先级 - 并让数据包按照优先级进入内部默认的8个队列,做简单流拥塞管理和避免用。也就是说trust参数只有两种情况下有可能用到:
(1) 接收数据的设备本身需要使用简单流做拥塞管理、拥塞避免。需要面对上游接口打开trust命令。
(2) 设备是二层、三层交汇处,需要使用trust XXX override将二、三层的优先级自动互相转换
C、 对于下游发过来的优先级:
每台设备自己:在不做简单流和复杂流拥塞管理、拥塞避免的情况下,每台设备默认处理都是放入默认队列0,FIFO转发,也就是说这个优先级就是个摆设,没有实际意义
D、 对于上游发过来的优先级:
每台设备自己在不做拥塞管理的情况下会放入队列0 FIFO出去,但出去的时候也会携带着自己的数据包原先的优先级。

E、 修改优先级的方法:
(1) 简单流分类:使用qos map-table XXX-XXX
Input xxx output xxx
注:此命令只影响收到的数据包优先级改成多少传出去,不影响设备自己处理(自己如果做拥塞管理,还是按照input的优先级值处理)。
(2) 复杂流分类:MQC里面的traffic behavior XXX
if-match xxx
remark xxx

二、拥塞管理

1、简单流队列

在这里插入图片描述

1.1、简单流实验(PQ+WFQ)

1.1.1、入接口trust

R3
interface GigabitEthernet0/0/1
trust dscp //R3收包接口接受并开启dscp自动映射

R2优先级发送结果:icmp = 5 (EF)
telnet = 2
bgp = 3

1.1.2、定义拥塞管理策略

R3
qos queue-profile test //定义简单流拥塞管理策略
queue 2 weight 40 //定义telnet流量调度权重40
queue 3 weight 60 //定义bgp流量调度权重60
schedule wfq 2 to 3 //定义telnet、bgp流量按照wfq权重调度进入硬件队列
schedule pq 5 //定义icmp流量永远优先转发

注意:pq 调度 ef的流量,注意撑死pq、饿死wfq,因为pq永远优先转发

1.1.3、调用出接口

R3
interface GigabitEthernet0/0/0 //R3出接口
qos queue-profile test //调用简单流拥塞管理策略 PQ+WFQ

1.1.4、验证

R3查看简单流拥塞管理策略
[R3]display qos queue-profile test //查看策略内容、权重值
在这里插入图片描述
R3出接口查看各优先级队列数据包匹配情况
[R3]display qos queue statistics interface GigabitEthernet 0/0/0
注意:这条命令查看的是设备内部队列匹配情况
在这里插入图片描述

1.2、总结

  • PQ:PQ软件队列有流量,就一直优先调度进入硬件队列FIFO转发
  • WRR(模拟器不支持):8个队列1个包1个包轮询调入硬件队列FIFO转发
  • DRR(模拟器不支持):8个队列按照等量的字节数轮询调入硬件队列FIFO转发
  • WFQ:PQ队列无流量,剩余队列按照WFQ权重调度分配进入硬件队列FIFO转发
    在这里插入图片描述
    简单流总结
    不管用是什么标准(802.1p、mpls exp、dscp、ipp),打上8种优先级的标记。trust以后自动映射成内部的8种优先级标记(4种丢弃颜色),再进入8个软件队列。然后按照不同的调度机制调度进入硬件队列FIFO出去。
    注:只有8个固定的优先级,不能再多分类
    只有固定4种不同的队列,且队列动作固定好的4种。
    无法做到保证带宽
    A、最好先借助复杂流MQC在上游打标记(外部优先级)
    标记按照802.1p、mpls exp、DSCP、IPP(ip包头tos位)标准进行。
    简单流标记分8个优先级:0 – 7。越大越优
    CS0 = 默认
    AF1 – 4 = 正常使用
    CS5 = 快速转发
    CS6、7 = 默认系统保留给协议报文
    B、 收到标记流量入接口trust – 设备自己接受外部优先级,自动映射至内部优先级。
    选择是否将标记继续传递还是自己处理(override)、或者修改2-3层映射值
    C、收到报文的外部优先级自动映射成内部优先级
    8个外部优先级对应8个内部软件队列CS0-7对应BE、AF1-4、EF、CS6、7
    D、根据8个内部软件队列,对不同队列做不同的拥塞管理调度算法,比如PQ+WFQ
    E、简单流队列调度:只支持8个优先级 - 8种软件队列
    只支持4种队列怎么调度进入硬件队列,不支持保证带宽就算前面打了EF标记,EF含有保证带宽的属性,也做不了
    F、一定要将调度策略调用在出接口
    在这里插入图片描述

2、复杂流分类+队列

2.1、修改优先级

分析当前优先级:
当前流量优先级:
Icmp = ef
telnet = 2 = 16
bgp = 3 = 24
在这里插入图片描述
预计修改优先级:R2上
Icmp = ef 保持不变
telnet = CS2 = DSCP 010000
通过命令将telnet优先级改为 18 = 001010 = AF21
Bgp优先级改为 26 = 011010 = AF31
R2
qos map-table dot1p-dscp
input 1 output 46 //之间就已经改过的icmp = 1 改成了EF
input 2 output 18 //优先级2的telnet 改成18 = AF21
input 3 output 26 //优先级3的bgp改成26 = AF31
R2上查看修改结果
[R2]display qos map-table dot1p-dscp
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2、复杂流调用

在这里插入图片描述
需求
使用复杂流拥塞管理技术对R3收到的几种流量做如下队列调度策略:

  • R3收到的EF icmp流量 -> 放入 EF队列里,并且保证带宽10%
  • R3收到的AF21 telnet流量 -> 放入AF队列里,并且保证带宽10%
  • R3收到的AF31 bgp流量 -> 放入AF队列里,并且保证带宽20%
  • 剩余其他流量,按照复杂流队列WFQ重新分成64个队列进行调度

2.3、MQC配置

2.3.1、匹配数据

R3
traffic classifier icmp operator or //定义类名为 icmp
if-match dscp ef //匹配ef优先级流量
traffic classifier telnet operator or
if-match dscp af21
traffic classifier bgp operator or
if-match dscp af31

2.3.2、定义行为

R3
traffic behavior ef //定义行为ef
queue ef bandwidth pct 10 //放入ef队列,保证最小带宽10%,最大也10%
traffic behavior af21 //定义行为af21
queue af bandwidth pct 10 //放入af队列,保证带宽10%,拥塞可以尝试突破10%
traffic behavior af31
queue af bandwidth pct 20
traffic behavior default //定义行为默认(剩余流量)
queue wfq queue-number 64 //按照复杂流WFQ 64个队列调度

2.3.3、关联数据和行为

R3
traffic policy test //定义复杂流策略test
classifier icmp behavior ef //icmp类关联调度动作ef(带宽10、最优先转发)
classifier telnet behavior af21 //telnet类关联调度动作af21(带宽10,次优先转发)
classifier bgp behavior af31 //bgp类关联调度动作af31(带宽20,次优先转发)
classifier default-class behavior default //剩余默认流量,走default(wfq)

2.3.4 、出接口调用

R3出接口调用策略
R3
interface GigabitEthernet0/0/0
traffic-policy test outbound

2.3.5、验证

R3查看复杂流调度策略配置结果
[R3]display traffic-policy applied-record test //查看策略调用结果,策略内容
在这里插入图片描述

2.4、总结

在这里插入图片描述
EF队列与LLQ的区别

  • 相同点都是优先调度

    • 最小的转发延迟
    • 最小的带宽保证
    • 最大带宽限制。
  • 不同点是对(最大带宽限制的不同)

    • EF在不拥塞的时候可以占用额外的带宽
    • LLQ在不拥塞的时候也不可以占用额外的带宽

复杂流总结:
复杂流分类的时候MQC可以支持多种形式匹配
可以直接匹配优先级标记(和简单流一样)
也可以直接匹配不同的协议。可以直接调用ACL匹配数据包五元组
可以认为复杂流的优先级仅仅只是一个标记,不具备优先级作用,关键的调度动作、转发原则、带宽保证、丢弃方式都看管理员自己定义的动作(官方给出的动作是推荐动作)。
执行的动作也是4种队列,但不光是优先转发,还支持带宽保证。
A、最好在出接口
B、定义策略的时候一般带上default-class
C、复杂流队列的wfq(CBWFQ)与简单流队列的wfq不是一个含义。复杂流队列的wfq代表hash出64个队列重新调度

三、拥塞避免

在这里插入图片描述

1、WRED模板配置

R3
drop-profile drop //定义拥塞避免策略
wred dscp //使用wred dscp
dscp af11 low-limit 70 high-limit 90 discard-percentage 10
dscp af12 low-limit 60 high-limit 90 discard-percentage 10
dscp af13 low-limit 50 high-limit 90 discard-percentage 10
dscp af21 low-limit 70 high-limit 90 discard-percentage 10
dscp af22 low-limit 60 high-limit 90 discard-percentage 10
dscp af23 low-limit 50 high-limit 90 discard-percentage 10
dscp af31 low-limit 70 high-limit 90 discard-percentage 10
dscp af32 low-limit 60 high-limit 90 discard-percentage 10
dscp af33 low-limit 50 high-limit 90 discard-percentage 10
dscp af41 low-limit 70 high-limit 90 discard-percentage 10
dscp af42 low-limit 60 high-limit 90 discard-percentage 10
dscp af43 low-limit 50 high-limit 90 discard-percentage 10
//对于af21的流量低门限70,高门限90, 50-90之间0% - 10%丢包率递增

R3查看配置结果
[R3]display drop-profile drop
在这里插入图片描述

2、 复杂流拥塞避免(MQC)

需求:

  • R3出接口使用复杂流拥塞管理-cbq(ef、af、wfq)

  • 使用复杂流拥塞避免-wred方式

  • 对于telnet流量(af21),设置低门限70,高门限90, 70% - 90%之间丢包率10%

  • 对于bgp流量(af31),设置低门限70,高门限90, 70% - 90%之间丢包率10%

  • 对于icmp流量,采用ef转发不丢弃

2.1、匹配流量

R3
traffic classifier icmp operator or
if-match dscp ef //匹配ef的icmp
traffic classifier telnet operator or
if-match dscp af21
traffic classifier bgp operator or
if-match dscp af31

2.2、定义行为

R3
traffic behavior ef
queue ef bandwidth pct 10
traffic behavior af21 //定义行为af21(名字)
queue af bandwidth pct 10 //进入af队列,保证带宽10%
drop-profile drop //调用拥塞避免drop策略
traffic behavior af31
queue af bandwidth pct 20
drop-profile drop
traffic behavior wfq //给默认剩余类准备的cbwfq
queue wfq queue-number 64
drop-profile drop

2.3、关联数据和行为

R3
traffic policy cbq //定义拥塞策略cbq
classifier icmp behavior ef //icmp类关联行为ef(优先转发、保证10%带宽)
classifier telnet behavior af21 //telnet类关联行为af21(门限值之间丢弃10%)
classifier bgp behavior af31 //bgp类关联行为af21(门限值之间丢弃10%)
classifier default-class behavior wfq
//剩余类关联wfq,门限值之间丢弃10%(如af11-13,22、32)
对于未在drop-profile定义的类,执行正常尾丢弃

2.4、接口调用

R3
interface GigabitEthernet0/0/0
traffic-policy cbq outbound //出方向调用

2.5、验证查看

R3查看策略应用结果和具体策略内容
[R3]display traffic-policy applied-record < cbq > //加上cbq就有内容,不加就是应用情况
在这里插入图片描述
注:复杂流MQC配置方式是拥塞管理(队列调度)+ 拥塞避免(丢弃方式)一起配置的。

3、简单流拥塞避免(queue-profile)

需求:

  • R3出接口使用简单流PQ+WFQ进行拥塞管理

  • 简单流wred进行拥塞避免

R3
qos queue-profile drop //定义拥塞避免策略
queue 0 weight 40 //未打标记的默认流量调度权重40
queue 2 to 3 weight 20 //telnet和bgp调度权重20
schedule wfq 0 to 3 //优先级0 – 3的流量采用wfq权重调度
schedule pq 5 //ef的icmp流量优先走
queue 0 to 3 drop-profile drop //优先级0 – 3的流量按照丢弃权重70 -90%丢弃10%

R3查看简单流拥塞管理+拥塞避免配置情况
[R3]display qos queue-profile drop
在这里插入图片描述
注:简单流拥塞管理和拥塞避免也是一起配置的

四、限速

1、流量监管

流量监管出、入两个接口都可以应用, 推荐应用在入接口。
配置上支持单速双桶双色、双速双桶三色令牌。
含义是超出定义以外的流量直接丢包。

1.1、接口流量监管

1.1.1、限制接口下所有流量

在这里插入图片描述
在R3 g0/0/1接口收包时,使用流量监管将收到的所有流量限速为100兆

配置:
R3
interface GigabitEthernet0/0/1
qos car inbound cir 100000 cbs 18800000 pbs 31300000 green pass yellow pass remark-dscp cs1 red discard

注:
A、 命令为单速双桶三色流量监管
CIR = 限速值 = 流量大部分时间速率极限
CBS = CIR注入的桶大小(第一个桶)
PBS = 第二个桶 - 只接第一个桶溢出的令牌
B、 默认情况下只敲到 cir 100000就可以回车了,后面的CBS、PBS最好让系统自动生成
C、 Yellow的动作除了默认pass,最好修改下dscp优先级,否则yellow = green都是pass没有意义
D、 命令中CIR的单位是kbps,CBS和PBS单位是Kbyte
**E、**此命令仅限制接口总速率,可以挂载ACL实现对某些协议(某些特定五元组)流量进行限制,其他正常放行

查看限速情况:
R3:display qos car statistics interface GigabitEthernet 0/0/1 inbound
在这里插入图片描述

1.1.2、限制接口下协议流量

在R3 g0/0/1接口收包时,使用流量监管将收到的所有流量限速为100兆

R3
acl number 3000
rule 5 permit tcp destination-port eq telnet
interface GigabitEthernet0/0/1
ip address 23.1.1.3 255.255.255.0
qos car inbound acl 3000 cir 100000 cbs 18800000 pbs 31300000 green pass yellow pass remark-dscp cs1 red discard

注:
A、命令为单速双桶三色流量监管
CIR = 限速值 = 流量大部分时间速率极限
CBS = CIR注入的桶大小(第一个桶)
PBS = 第二个桶 - 只接第一个桶溢出的令牌
B、默认情况下只敲到 cir 100000就可以回车了,后面的CBS、PBS最好让系统自动生成
C、Yellow的动作除了默认pass,最好修改下dscp优先级,否则yellow = green都是pass没有意义
D、命令中CIR的单位是kbps,CBS和PBS单位是Kbyte
E、没被ACl匹配的流量,不做流量监管正常接口速率转发

查看限速情况:
R3:display qos car statistics interface GigabitEthernet 0/0/1 inbound

1.2、MQC流量监管

在R3 g0/0/1接口收包时,使用流量监管将收到的所有流量限速为100兆

1.2.1、匹配流量

R3
acl number 3000
rule 5 permit icmp
acl number 3001
rule 5 permit tcp destination-port eq telnet

1.2.2、定义类

R3
traffic classifier icmp operator or
if-match acl 3000
traffic classifier telnet operator or
if-match acl 3001

1.2.3、定义行为

R3
traffic behavior 100m
car cir pct 10 green pass yellow pass remark-dscp cs1 red discard
traffic behavior 50m
car cir pct 5 green pass yellow pass remark-dscp cs2 red discard

注:mqc方式流量监管支持接口带宽百分比配置,这里虽然是配置到百分比就回车了,但其实也是单速双桶三色,有默认的cbs、ebs没有显示出来

1.2.4、关联

R3
traffic policy icmp_telnet
classifier icmp behavior 100m
classifier telnet behavior 50m

1.2.5、接口调用MQC

R3
interface GigabitEthernet0/0/1
traffic-policy icmp_telnet inbound

注意:剩余没有匹配的流量使用接口真实速率正常转发

R3查看MQC流量监管调用结果
[R3]display traffic-policy applied-record icmp_telnet
在这里插入图片描述

2、流量整形

流量整形调用在设备出接口
流量整形的含义是将超出cir和cbs令牌的流量暂时放入一个缓存列表重新排队,等流量峰值过去,空闲的时候重新转发:会提高链路利用率 – 削峰填谷,但缓存过长会加大延迟。
支持单速单桶令牌
可以嵌套子MQC实现对同一个接口的不同用户、不同协议进行整形+拥塞管理+拥塞避免。

2.1、接口流量整形

需求:

  • R3出接口使用流量整形,将R3发出的流量限制为500M

R3
interface GigabitEthernet0/0/0
qos gts cir 500000 cbs 12500000

注:流量整形直接用于接口不能挂载ACL,也没有找到查看的命令….
默认队列缓存值不知道是多少,不推荐使用。

2.2、简单流队列流量整形

需求:

  • R3出接口使用流量整形,将R1、R2发出的icmp流量流量整形至100兆

  • R1、R2发出的telnet流量整形至100兆

  • 剩余流量正常速率转发

2.2.1、R2出接口修改icmp、telnet流量优先级值

修改优先级方式有两种
方式一:
在R2上使用入接口trust 802.1q override +qos map-table dot1p-dscp方式,将R1发过来的icmp流量和telnet流量进行优先级修改并传出- 太麻烦,还得知道qos map-table里面原来传入R2的优先是多少。

方式二:
在R2出方向使用MQC 直接remark icmp和telnet的优先级

R2
acl number 3000 //匹配流量
rule 5 permit icmp
acl number 3001
rule 5 permit tcp destination-port eq telnet

traffic classifier icmp operator or //分类
if-match acl 3000
traffic classifier telnet operator or
if-match acl 3001

traffic behavior cs1
remark dscp cs1 //打标记
traffic behavior cs2
remark dscp cs2

traffic policy remark //关联
classifier icmp behavior cs1
classifier telnet behavior cs2

interface GigabitEthernet0/0/1
traffic-policy remark outbound //出接口调用

R2右侧接口转发检查
在这里插入图片描述
在这里插入图片描述

2.2.2、R3入方向接受DSCP值进入简单流队列

R3
interface GigabitEthernet0/0/1
trust dscp override

个人觉得R3如果想用简单流流量整形调用在出接口,必须在R3左侧收包接口打上trust dscp,接受上游传过来的优先级,因为只有打了trust,R3左侧收到的报文才会自动向内映射进入简单流8个队列….然后传出的时候才能在出接口按照简单流流量整形限速。。

2.2.3、简单流流量整形

R3
qos queue-profile gts //定义简单流策略
queue 1 length packets 1 //队列1 缓存数据包1个
queue 1 gts cir 100000 cbs 2500000 //单速单桶 常规限速100M,桶大小2500兆
queue 2 length packets 1
queue 2 gts cir 100000 cbs 2500000

interface GigabitEthernet0/0/0
qos queue-profile gts

注意:
A、 流量整形的gts值最好也是不打,走默认值
B、 Gts 的length packets 1 代表缓存队列只有1个包,再多余的包直接丢弃,缓存1个包不会造成什么延迟,和流量监管效果差不多

R3使用简单流查看命令查看队列匹配的数据包
[R3]display qos queue statistics interface GigabitEthernet 0/0/1
R3收包口没有调用简单流策略,所以都在队列0中
在这里插入图片描述
注意:
A、 简单流查看命令查看内部队列匹配情况时,一定要注意查看哪个接口?是哪个接口调用的简单流策略(不管是监管还是拥塞管理、避免)就查看哪个接口,没有调用任何策略的接口默认流量都进入队列0
B、 实验证明:R3在出接口调用简单流流量整形,R3左侧接口必须先trust dscp,否则流量不进入简单流队里,对队列做的流量整形策略就不生效。但是 – override参数不用打出向接口的简单流整形策略也有匹配数据包。
C、 display qos queue xxx命令是专门查看简单流队列匹配的情况。复杂流用不上

2.3、MQC方式流量整形

需求:

  • R3出接口使用流量整形,将R1 – R4的流量整形为100兆

  • R2 – R4的流量整形为150兆

R3
acl number 3000
rule 5 permit ip source 12.1.1.1 0 destination 34.1.1.4 0
acl number 3001
rule 5 permit ip source 23.1.1.2 0 destination 34.1.1.4 0

traffic classifier r1-r4 operator or
if-match acl 3000
traffic classifier r2-r4 operator or
if-match acl 3001

traffic behavior 100m
gts cir 100000 cbs 2500000 queue-length 1
traffic behavior 150m
gts cir 100000 cbs 2500000 queue-length 1

traffic policy shaping
classifier r1-r4 behavior 100m
classifier r2-r4 behavior 150m

interface GigabitEthernet0/0/0
traffic-policy shaping outbound
R3查看MQC调用情况
[R3]display traffic-policy applied-record shaping
在这里插入图片描述
R3通过查看调用的MQC里的ACL数据包匹配情况,确认MQC流量监管是否生效
[R3]display acl all
在这里插入图片描述

3、 监管与整形总结

3.1、监管与整形表格对比

在这里插入图片描述

3.2、Qos查看命令总结

简单流
display qos queue statistics interface xxx //查看数据包匹配情况
display qos queue-profile XX //查看简单流策略配置情况

复杂流:
display traffic-policy applied-record xxx //查看策略调用情况,策略详细内容
display acl all //查看MQC调用后的数据包匹配情况
display traffic policy statistics interface GigabitEthernet 0/0/0 outbound
//查看traffic policy的计数结果(有数据包就代表配置成功)
注:这条命令前提必须在配置traffic behavior的里面打上 statistic enable ,否则查看的时候会显示traffic policy is not enable
display traffic behavior user-defined //查看所有的traffic behavior:

3.3、令牌桶cbs、pbs倍数

在这里插入图片描述
//如果不配置CB,PB桶大小,默认值如上图所示。

五、Hqos

在这里插入图片描述

5.1、需求

  • R2出接口方向使用复杂流MQC打标记
  • R3出接口方向嵌套使用流量整形调用拥塞管理+拥塞避免

实现目标:
在这里插入图片描述

5.2、配置思路分析

第一步:配置父策略
流量整形:匹配R1 – R4的所有流量 – 流量整形100兆 – 调用在接口
匹配R2 – R4的所有流量 – 流量整形150兆

第二步:配置子策略
MQC:匹配icmp流量 – 拥塞管理策略 + 拥塞避免策略 – 调用在父策略
匹配telnet流量 – 拥塞管理策略 + 拥塞避免策略 – 调用在父策略
其他流量 – wfq + wred

5.3、父策略-流量整形

R3
acl number 3000
rule 5 permit ip source 12.1.1.1 0 destination 34.1.1.4 0
acl number 3001
rule 5 permit ip source 23.1.1.2 0 destination 34.1.1.4 0

traffic classifier r1-r4 operator or
if-match acl 3000
traffic classifier r2-r4 operator or
if-match acl 3001

traffic behavior r1-r4-shaping
gts cir 100000 cbs 2500000 queue-length 1
statistic enable
traffic behavior r2-r4-shaping
gts cir 150000 cbs 3750000 queue-length 1
statistic enable

traffic policy shaping
classifier r1-r4 behavior r1-r4-shaping
classifier r2-r4 behavior r2-r4-shaping

interface GigabitEthernet0/0/0
traffic-policy shaping outbound

5.4、复杂流打标记

采用R2数据包出方向打标记
R2
acl number 3100
rule 5 permit icmp
acl number 3101
rule 5 permit tcp destination-port eq telnet

traffic classifier icmp operator or
if-match acl 3100
traffic classifier telnet operator or
if-match acl 3101

traffic behavior ef
remark dscp ef
statistic enable

traffic behavior af
remark dscp af11
statistic enable

traffic policy remark
classifier icmp behavior ef
classifier telnet behavior af

interface GigabitEthernet0/0/1
traffic-policy remark outbound

R2右侧接口抓包验证优先级是否修改成功
在这里插入图片描述
在这里插入图片描述

5.5、子策略-拥塞管理

R3
traffic classifier icmp operator or
if-match dscp ef
traffic classifier telnet operator or
if-match dscp af11

traffic behavior ef
queue ef bandwidth pct 30 //进入ef队列有限转发,带宽占比30%
statistic enable //开启计数,方便查看
traffic behavior af
queue af bandwidth pct 30
statistic enable
traffic behavior wfq //定义wfq行为
queue wfq queue-number 64 //流量走wfq 64个队列调度
statistic enable

traffic policy child-policy //建立子策略(关联除整形以外所有管理、避免动作)
classifier icmp behavior ef //icmp流量 走ef队列行为
classifier telnet behavior af //telnet流量 走af队列行为
classifier default-class behavior wfq //剩余流量 走wfq行为

5.6、子策略-拥塞避免

R3
drop-profile child-wred //定义wred模版
wred dscp
dscp af11 to af13 low-limit 50 high-limit 90 discard-percentage 10

traffic behavior af //上面拥塞管理配置过的、拥塞避免也调用在这个里面
queue af bandwidth pct 30
drop-profile child-wred //调用刚配置的拥塞避免模版
statistic enable

traffic behavior wfq //上面拥塞管理配置过的、拥塞避免也调用在这个里面
queue wfq queue-number 64
drop-profile child-wred //调用刚配置的拥塞避免模版
statistic enable

5.7、父策略调用子策略

R3
traffic behavior r1-r4-shaping
traffic-policy child-policy
Error: All the father behavior should have subpolicy in HCBQ, on interface GigabitEthernet0/0/0.

traffic behavior r2-r4-shaping
traffic-policy child-policy

报错代表要求同一个traffic policy里面的每一个behavior都必须调用子policy
R3查看父策略所有内容及调用结果
[R3]display traffic-policy applied-record shaping

R3查看父策略所有内容及调用结果
[R3]display traffic-policy applied-record shaping
注意:这条命令如果想看到效果,必须在配置traffic behavior的里面
statistic enable,否则命令会显示traffic behavior is not enable

  • 21
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值