第130篇:流量限速——CAR(Committed Access Rate)

关键词

CAR、流量限速、承诺访问速率、令牌桶、速率限制、流量监管


一、为什么要限速?

1.1 限速场景

场景 需求
P2P 下载限速 限制特定用户/应用的带宽,保护关键业务
用户带宽套餐 运营商对不同用户提供不同速率
出口带宽管理 总带宽有限,需要公平分配
突发流量控制 防止流量突发导致拥塞
优先级标记后限速 高优先级的流量也需要防滥用

1.2 CAR 的作用

CAR(Committed Access Rate) 是一种流量监管(Policing)技术——测量流量速率,超过承诺速率的部分丢弃重新标记

                        ┌────────────┐
   输入流量 10 Mbps     │   CAR      │   输出流量 ≤ 5 Mbps
   ───────────────────►│   限速 5M   │───────────────────►
                        │            │    超出部分:
                        └────────────┘    ● 丢弃(Drop)
                                          ● 降级(Remark)

二、令牌桶算法

2.1 基本原理

CAR 使用令牌桶(Token Bucket)算法来测量速率:

令牌桶 | 令牌生成速率: CIR(承诺信息速率) ┌───────────────┐ | ○ ○ ○ ○ ○ | | 桶内最多 CBS 个令牌 | | --- | --- | --- | --- |

每个报文需要消耗与报文大小相等的令牌数 令牌足够 → 报文通过 令牌不足 → 报文被丢弃或降级

2.2 关键参数

参数 含义 说明
CIR(Committed Information Rate) 承诺信息速率 平均速率(如 5 Mbps)
CBS(Committed Burst Size) 承诺突发尺寸 允许的瞬间突发流量(字节)
PIR(Peak Information Rate) 峰值信息速率 最大允许速率(可选)
EBS(Excess Burst Size) 超额突发尺寸 超出 CBS 后的额外突发

2.3 单桶 vs 双桶

算法 说明 动作
单速率单桶 一个桶,填满为止 简单:符合/不符合
单速率双桶 C 桶 + E 桶 符合/超符合/不符合
双速率双桶 CIR 桶 + PIR 桶 绿色/黄色/红色

三、CAR 配置

3.1 基于 ACL 的 CAR

# ===== 匹配 P2P 流量 =====
acl number 3000
 rule 10 permit tcp source 192.168.10.0 0.0.0.255 destination-port eq 6881
 rule 20 permit udp source 192.168.10.0 0.0.0.255 destination-port eq 6881

# ===== 配置 CAR 限速 =====
interface GigabitEthernet0/0/24
 car outbound acl 3000 cir 1024 cbs 64000 pir 2048 ebs 128000
 # CIR = 1 Mbps, CBS = 64000 bytes
 # PIR = 2 Mbps (可选)

3.2 基于 MQC 的 CAR

# ===== 1. 定义流分类 =====
traffic classifier P2P
 if-match acl 3000

# ===== 2. 定义流行为 =====
traffic behavior P2P_LIMIT
 car cir 1024 cbs 64000 green pass red discard
 # 绿色:通过
 # 红色:丢弃

# 或降级处理:
traffic behavior P2P_REMARK
 car cir 1024 cbs 64000 green pass yellow pass remark-pass
 # 黄色:通过但降低优先级

# ===== 3. 定义策略并应用 =====
traffic policy LIMIT_P2P
 classifier P2P behavior P2P_LIMIT

interface GigabitEthernet0/0/24
 traffic-policy LIMIT_P2P inbound

3.3 每用户限速

# 对每个用户独立限速
acl number 3001
 rule 5 permit ip source 192.168.10.10 0

traffic classifier USER_A
 if-match acl 3001

traffic behavior USER_A_LIMIT
 car cir 2048 cbs 128000

traffic policy PER_USER
 classifier USER_A behavior USER_A_LIMIT

四、流量整形(Shaping)vs 流量监管(Policing)

对比项 监管(Policing/CAR) 整形(Shaping)
超限处理 丢弃或标记 缓存后延迟发送
缓存 不需要 需要缓存队列
适用位置 入方向/出方向 出方向
延迟影响 不增加延迟 增加延迟
CPU 负载 高(需要缓存管理)
典型场景 接入限速 出口整形
CAR(监管):超速 → 直接丢弃
  ──► [CAR] ──► 流量 ≤ CIR

Shaping(整形):超速 → 缓存排队
  ──► [队列] ──► 流量 ≤ CIR
       └── 缓存超速部分

4.1 流量整形配置

# 接口整形
interface GigabitEthernet0/0/24
 qos lr cir 10000       # 限制接口出方向速率为 10 Mbps

# 队列整形
traffic behavior SHAPE
 queue af bandwidth 5000 shape 8000
 # 保证 5 Mbps,整形到 8 Mbps

五、实战案例:出口限速

5.1 需求

企业有一条 100 Mbps 的出口链路,需要做如下分配: - VoIP:保证 10 Mbps - 视频会议:保证 20 Mbps - 普通办公:保证 50 Mbps - P2P 下载:限制到 10 Mbps - 剩余带宽:按比例分配

5.2 配置

# 匹配 P2P
acl number 3000
 rule 10 permit tcp source any destination-port range 6881 6999
 rule 20 permit udp source any destination-port range 6881 6999

# 分类
traffic classifier VOICE
 if-match dscp ef

traffic classifier VIDEO
 if-match dscp af41

traffic classifier P2P
 if-match acl 3000

# 行为
traffic behavior VOICE_BEHAVIOR
 queue llq ef bandwidth 10000     # LLQ 10 Mbps

traffic behavior VIDEO_BEHAVIOR
 queue af bandwidth 20000          # 保证 20 Mbps

traffic behavior P2P_BEHAVIOR
 car cir 10240 cbs 640000          # 限速 10 Mbps

# 策略
traffic policy WAN_QOS
 classifier VOICE behavior VOICE_BEHAVIOR precedence 1
 classifier VIDEO behavior VIDEO_BEHAVIOR precedence 2
 classifier P2P behavior P2P_BEHAVIOR precedence 3

# 应用到出口
interface GigabitEthernet0/0/24
 traffic-policy WAN_QOS outbound

六、CAR 排错

# 查看 CAR 统计
display car statistics interface GigabitEthernet0/0/24
-----------------------------------------------
  CIR(kbps): 1024
  PASS: 123456 packets (100 MB)
  DISCARD: 7890 packets (5 MB)
  GREEN: 123456, YELLOW: 3000, RED: 4890

# 查看策略统计
display traffic policy statistics interface GigabitEthernet0/0/24

七、总结

知识点 核心要点
CAR 本质 流量监管(Policing),超速丢弃/降级
令牌桶 测量速率的算法
CIR/CBS/PIR 承诺速率/突发/峰值
监管 vs 整形 丢弃 vs 缓存
典型应用 P2P 限速、用户限速、出口限速

八、思考

  1. 令牌桶中 CIR 和 CBS 分别代表什么?
  2. 流量监管(CAR)和流量整形(Shaping)的区别是什么?
  3. 如果某个用户的带宽限制为 5 Mbps,CIR = 5 Mbps,但用户瞬间发送 10 Mbps,会发生什么?(取决于 CBS 设置)
  4. 在 MQC 配置中,car 的 green pass red discard 是什么意思?
  5. 为什么 P2P 限速建议使用 CAR 而不是 Shaping?

下篇预告:第131篇《重标记优先级——基于报文类型的 QoS 策略》——讲解如何通过重标记(Remark)流量优先级,在网络的不同信任边界上统一 CoS/DSCP 标记。