searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

ovs限速的几种方法

2023-12-06 02:25:37
142
0

简单梳理找ovs上配置限速的3中方法,各有优劣,可以根据实际情况选择限速方法

1.  ovs端口支持qos限速.

原理就是将包含发送到网卡的不同队列, 利用tc进行限速

1) 配置限速队列, 创建一个限速队列1, 限速100mbps

ovs-vsctl set port veth1 qos=@newqos --  \

--id=@newqos create qos type=linux-htb queues=1=@q1 -- \

--id=@q1 create queue other-config:max-rate=100000000

2)设置流表匹配流量送到限速队列1,

ovs-ofctl add-flow br-v6 ip,nw_dst=192.168.0.11,action=set_queue:1,normal

3)查询限速

 ovs-vsctl list port veth1 |grep qos

ovs-vsctl list qos QOSID

ovs-vsctl list queue QID

4) 删除qos

ovs-vsctl clear port veth qos

ovs-vsctl -- destroy qos QOSID

ovs-vsctl -- destroy queue QID

5) 不是所有端口都支持qos限速的, 本质是tc限速, 有些端口比如vlxan段不是网卡设备, 不能使用qos限速

通过ovs-appctl  qos/show-types PORT_NAME 可以查看是否支持

 

2. 利用ovs自带的端口限速, 只支持端口粒度的限速

比如配置端口vtep1 收包限速10Mbps可以如下配置(虚拟机在物理机侧网卡收包对应是虚拟机发包)

$ ovs-vsctl set interface vif1.0 ingress_policing_rate=10000
$ ovs-vsctl set interface vif1.0 ingress_policing_burst=8000

 

3. ovs meter限速

meter限速是ovs内实现的流表粒度的限速功能, 支持带宽和pps限速

配置方法

1)创建200m的带宽

ovs-ofctl -O OpenFlow15 add-meter br-test tmeter=100,kbps,burst,stats,band=type=drop,rate=200000,burst_size=200001

2)创建10000bps的pps限速

ovs-ofctl -O OpenFlow15 add-meter br-test meter=101,pktps,band=type=drop,rate=10000

3)对veth1 口 发包流量进行带宽限速, 对目的ip 192.168.1.1, 端口8080进行pps限速

ovs-ofctl add-flow br-test ip,action=meter:100, veth1 -O openflow15

ovs-ofctl add-flow br-test ip,nw_dst=192.168.1.1/32,tp_port=8080,action=meter:101, veth1 -O openflow15

 

0条评论
作者已关闭评论
何****森
15文章数
1粉丝数
何****森
15 文章 | 1 粉丝
何****森
15文章数
1粉丝数
何****森
15 文章 | 1 粉丝
原创

ovs限速的几种方法

2023-12-06 02:25:37
142
0

简单梳理找ovs上配置限速的3中方法,各有优劣,可以根据实际情况选择限速方法

1.  ovs端口支持qos限速.

原理就是将包含发送到网卡的不同队列, 利用tc进行限速

1) 配置限速队列, 创建一个限速队列1, 限速100mbps

ovs-vsctl set port veth1 qos=@newqos --  \

--id=@newqos create qos type=linux-htb queues=1=@q1 -- \

--id=@q1 create queue other-config:max-rate=100000000

2)设置流表匹配流量送到限速队列1,

ovs-ofctl add-flow br-v6 ip,nw_dst=192.168.0.11,action=set_queue:1,normal

3)查询限速

 ovs-vsctl list port veth1 |grep qos

ovs-vsctl list qos QOSID

ovs-vsctl list queue QID

4) 删除qos

ovs-vsctl clear port veth qos

ovs-vsctl -- destroy qos QOSID

ovs-vsctl -- destroy queue QID

5) 不是所有端口都支持qos限速的, 本质是tc限速, 有些端口比如vlxan段不是网卡设备, 不能使用qos限速

通过ovs-appctl  qos/show-types PORT_NAME 可以查看是否支持

 

2. 利用ovs自带的端口限速, 只支持端口粒度的限速

比如配置端口vtep1 收包限速10Mbps可以如下配置(虚拟机在物理机侧网卡收包对应是虚拟机发包)

$ ovs-vsctl set interface vif1.0 ingress_policing_rate=10000
$ ovs-vsctl set interface vif1.0 ingress_policing_burst=8000

 

3. ovs meter限速

meter限速是ovs内实现的流表粒度的限速功能, 支持带宽和pps限速

配置方法

1)创建200m的带宽

ovs-ofctl -O OpenFlow15 add-meter br-test tmeter=100,kbps,burst,stats,band=type=drop,rate=200000,burst_size=200001

2)创建10000bps的pps限速

ovs-ofctl -O OpenFlow15 add-meter br-test meter=101,pktps,band=type=drop,rate=10000

3)对veth1 口 发包流量进行带宽限速, 对目的ip 192.168.1.1, 端口8080进行pps限速

ovs-ofctl add-flow br-test ip,action=meter:100, veth1 -O openflow15

ovs-ofctl add-flow br-test ip,nw_dst=192.168.1.1/32,tp_port=8080,action=meter:101, veth1 -O openflow15

 

文章来自个人专栏
neutron
6 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0