DPVS TC理解

概述

当前DPVS TC 是在 Egress 即发包时进行流量控制,Ingress 收包的流量控制当前没有实现(社区DPVS最新的Commit好像是实现了Ingress方向的TC)。由于DPVS 的 TC 是一个独立的模块,和 ipvs 负载均衡的功能没有任何联系,所以需要单独配置报文匹配规则(qos classify)、带宽限速参数和算法(qos sched)。

DPVS 的 TC 在数据面进行保文规则匹配时,效率比较低下,原理如下:

一个Qsch队列下,一条一条规则(cls)进行顺序比较,直到完全匹配到规则,就用匹配规则里设置的队列的对应配置对报文进行 QoS schedule 操作。由于匹配效率低下,也设置了最大 reclassify 的值,进行 8 次比较还没完全匹配上的话,就直接 drop 这个包了。

对于新四层负载均衡的 vip 级别的限速需求,由于匹配规则条目非常多,规则匹配效率很低下,非常影响性能。

功能测试

由于TC是在 Egress 即发包时根据从Mbuf中提取的五元组以及接口信息进行规则匹配。

(1)Inbound方向

从Lan口发包时 Dip:Dport 即 Rip:Rport 是明确的,Lip:Lport 是不确定的,所以 Inbound方向限速,是通过在 Lan口上 配置目的 IP:Port 为 RS 的 IP:Port 进行规则匹配,在匹配到的队列中设置限速参数进行限速。

(2)Outbound 方向

从 Wan 口 发包时,Sip:Sport 为 Vip: Vport, Dip:Dport 是 Cip:Cport。所以 Outbound方向限速,是通过在 Wan口上 配置源 IP:Port 为 VS 的 IP:Port 进行规则匹配,在匹配到的队列中设置限速参数进行限速。

Inbound方向

配置

# inbound方向 设置出接口 lan上开启 egress 限速;
dpip link set lan  tc-egress on 

# vs/rs 配置信息
# ipvsadm -ln
IP Virtual Server version 0.0.0 (size=0)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
UDP  192.22.1.123:8888 rr uoa_max_trail 3
  -> 192.21.5.11:8888             FullNat 20     0          2
  
# lan口上 创建一个qsch 队列,设定限速参数;
dpip qsch add dev lan handle 1: parent root tbf rate 100m burst 100000 limit 300000
# tbf: (token bucket filter) 令牌桶过滤类型的qsch队列
# rate 100m: 限速值为 100Mbps; 即以100Mbps的速率向令牌桶中生成令牌;
# burst 100000: 令牌桶的容量为 100000B;
# limit 300000: 缓存队列的大小为 300000B;

# 设置分类
dpip cls add dev lan qsch root match pattern 'udp,to=192.21.5.11:8888' target 1:
# 将dip:dport(即RS的ip:port)为 192.21.5.11:8888的报文调度给队列 1,即上诉配置的队列;

#查看队列
# dpip qsch show dev lan
qsch pfifo_fast 0: dev lan root bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
qsch tbf 1: dev lan 0: rate 100.00Mbps burst 100000B limit 300000B
ps: 通过 -s/-v 参数可以查看队列相关的统计信息;

# 查看分类
# dpip cls show dev lan qsch root
cls match 8001: dev lan 0: pkttype 0x0800 prio 0 UDP,to=192.21.5.11-192.21.5.11:8888-8888 target 1:

#查看接口是否开启 TC Egress 限速
# dpip link show lan
1: lan: socket 0 mtu 1500 rx-queue 4 tx-queue 4
    UP 10000 Mbps full-duplex auto-nego tc-egress
    addr E0:00:84:56:20:66 OF_RX_IP_CSUM OF_TX_IP_CSUM OF_TX_TCP_CSUM OF_TX_UDP_CSUM
PS: 如上存在 tc-egress 标记;

outbound方向

功能测试同Inbound方向测试方法类似,忽略;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值