流量限速原理与实验(3)

基本原理

CAR:committed access rate 承诺访问速率

  • 流量限速技术分为两种
    • 流量监管,由CAR技术完成,可以用在入接口和出接口,一般都用在入接口,超出配置的阈值就丢弃
    • 流量整形,一般用在出接口,在出接口方向进行限速,使报文以均速发送出去,超出之后不丢弃,会加入到缓存,均速发送出去
工作位置 超出阈值 丢包率 延迟
流量监管 一般用在入接口 丢弃超出的 超了就丢,所以没啥延迟
流量整形 出接口 缓存到队列,慢慢发送 放到队列后空闲发送,延迟高

为什么流量监管一般用在入接口呢?很好理解呀

这要比较节省资源呀,如果用于出方向,流量在内部处理半天了,结果因为CAR的流量监控没发出去,这多浪费呀

流量监管还可以进行打标

如果流量老是超出阈值,可以选择对流量重新重新打标。

流量监管的应用场景

一般就是在高速和低速中间部署做缓冲时使用,运营商与企业的接口处用的就是流量监管技术,我们买了百兆带宽,用的是个光纤,肯定运营商限速了呀,这个限速其实的就是用的流量监管,将带宽压制住。

如上文,流量监管可以用于做高速网络与低速网络的做缓冲,让高速网络的流量别发那么快从而导致低速网络受不了,
那我直接修改接口的协商速率不就行了,这多简单,干嘛还要去做流量监管这么复杂的技术呢?如果把个问题放到SD-WAN场景当中就很好理解了,假如A、B、C三个公司通过SD-WAN做互联,A和B都是1000M网络,而C是100M网络,关键这三者都不在同一个物理环境,A如果把1000M的流量发送给C,到达C的时候一定会拥塞呀,所以我要控制A给C发送数据的时候别按照1000M来发,虽然A与运营商之间是1000M,但给C发送数据时候不能按照1000M来发,而按照100M来发送。

流量整形的应用场景:

也是在sd-wan的场景当中,本地带宽是100M,对方按照1000M的流量向本地发送,一定会拥塞,这时候设备会通过流量整形技术尽量不会给你丢包,把包缓存下来,等空闲了之后再帮你转发,但这么做是有极限的,内存有限,到了一定的还是会丢包的。

令牌桶

单桶单速

流量监管和流量整形其实都是使用了令牌桶技术。

假如说令牌桶里面有100M的令牌,现在来了50M流量,那就拿走50M,进行正常的转发,这时候又来了60M流量,结果令牌桶里面只有5OM流量,怎么办呢?如果是流量监管的话,那就把超出的10M流量给丢了,如果是流量整形,那就会等着令牌桶的流量超过60M的时候再去转发

我们可以到通过单桶单速的方式做流量监管,一旦超过阈值就会丢弃,这样的话,抗突发能力比较差

单桶单速里面的重要指标

CIR:向令牌桶里面填充令牌的速率,这就是数据转发的最大速率了,不可能超过这个值,这也是一个保证值,保证不少少于CIR。

CBS:令牌桶的容量,就是这个令牌桶最大能存放多少的流量。

双桶单速

  • 有两个桶,所以说容量会变大,可以允许有是允许短暂的突发流量。
  • 指标与单桶单速一样。

双桶双速

  • 两个桶,两个速度。
  • 最大特点是允许较长时间的突发流量

重要指标

  • PIR峰值速率
  • PBS峰值的突发最大尺寸

流量监管配置

流量监管

在配置流量监管的时候有两种方式:

  • 基于接口的流量监管,基于接口的流量监管就是不管是什么类型的流量,反正只要从此接口流过都受监管,监管是整体。
  • 基于类的流量监管,先定义好类,然后监管类,比如我们仅监管视频类或语音类的数据。

特别好理解,基于接口的流量监管是在接口上限速,而基于类的是只限制某一种类型的流量。

# 基于接口的流量监管
# 要求在g0/0/0接口上进行监管,设置报文正常的流量是1M,对于greeen报文允许通过,red报文丢弃
# 配置
system view
int g0/0/0 # 入接口
	qos car cir 1000 cbs 10000 pbs 0 greeen pass red discard inbound

pbs=0就是单通单速,因为单桶单速就没有PBS,只有CBS,只有PBS是0就代表这一定是单桶单速。

cir 1000就是正常速率1M,而cbs为什么这么大呢?cbs是整个桶的容量,这个容易最小也不能小于MTU,一般这个值我们不用写,我们只需要写cir即可,路由器会自动帮我们根据cir和mtu算出一个比较合适的值的。

实际上我们在接口上敲的时候需要写的东西很少,只需要写:

[AR2-GigabitEthernet0/0/0]qos car inbound cir 1000
[AR2-GigabitEthernet0/0/0]dis th
[V200R003C00]
#
interface GigabitEthernet0/0/0
 ip address 10.1.12.2 255.255.255.0 
 qos car inbound cir 1000 cbs 188000 pbs 313000 green pass yellow pass red disca

但我们会发现路由器自动填充的pbs不是0,如果是0那是单桶单速,当前pbs有值,表示峰值突出尺寸,这样双桶双速的指标,所以默认就是双桶双速,有的设备支持更改,有的设备不支持更改。

小实验

image-20230329135712189

[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]qos car inbound cir 8
[AR2-GigabitEthernet0/0/0]dis th
[V200R003C00]
interface GigabitEthernet0/0/0
 ip address 10.1.12.2 255.255.255.0 
 qos car inbound cir 8 cbs 1504 pbs 2504 green pass yellow pass red discard # 自动生成的
 traffic-policy MQC inbound  # 之前配置的

上面是根据接口来做的流量监管,我们也可以根据类来做:

# 还是先匹配流量
[AR2]acl number 2000
[AR2-acl-basic-2000]rule 5 permit source 10.1.12.0 0.0.0.255
[AR2]traffic classifier POLI 
[AR2-classifier-POLI]if-match acl 2000

# 通过行为调用car做流量监管,保证带宽为100
[AR2]traffic behavior POLI
[AR2-behavior-POLI]car cir 100
[AR2-behavior-POLI]dis th
[V200R003C00]
#
traffic behavior POLI
 car cir 100 cbs 18800 pbs 31300 green pass yellow pass red discard

# 将流量和行为做一个捆绑
[AR2]traffic policy POLI
[AR2-trafficpolicy-POLI]classifier POLI behavior POLI

# 应用
[AR2-trafficpolicy-POLI]int g0/0/0
[AR2-GigabitEthernet0/0/0]traffic-policy POLI outbound 

流量整形

理论

  • 一般用在出接口
  • 应用场景是双方高低速率不一致的情况下

比如你这边是万兆网络,但是上行链路是1000M的,你使用万兆互联,如果你不做流量整形,对方根据抗不住这么大的流量,你对此可以做流量整形,流量整形会将超过阈值的流量缓存下来,趁设备空闲的时候再发送,可是你想一下,他能无限缓存吗?缓存依靠是内存,内存不可能是无限大的,所以这个缓存也是有限度的,它会生成一个有限长度的队列,当队列长度满了之后就得丢弃了,怎么丢弃呢?这个时候又用到令牌桶,所以流量整形是由缓存技术和令牌桶先后完成的

在流量整形当中的令牌桶没有那么复杂,只有符合和超标两种指标,还是比较简单的。

实验

image-20230329135721911

# 定义匹配哪些流量
acl 3000
	rule 0 permit ip source 10.1.12.1 0 destination 10.1.5.5 0

# 将定义好的流量在tc当中引用
[AR2]traffic classifier test
[AR2-classifier-test]if-match acl 3000

# 定义保证带宽和调用的算法
[AR2]traffic behavior test_behavior
[AR2-behavior-test_behavior]gts cir 100

# 将定义好的算法、保证带宽和匹配要的流量绑定到一起
[AR2]traffic policy test_policy
[AR2-trafficpolicy-test_policy]classifier test behavior test_behavior

# 在接口上应用一下
interface Serial1/0/0
traffic-policy test_policy outbound

配置流量整形的思路与配置流量监管是一样的。只是调用的算法不一样的了,在流量监控当中主要用于CAR这种单纯的令牌桶技术,而是流量整形当中会用到GTS这种技术,这种技术实际上是将令牌桶与缓存队列结合到一起的。

posted @ 2023-03-29 14:04  张贺贺呀  阅读(366)  评论(0编辑  收藏  举报