ONOS SDN拓扑中,寻求支持最大带宽限制的节点间测量方案
解决ONOS拓扑下iperf TCP模式带宽上限限制问题
核心问题说明
iperf的-b参数在TCP模式下是目标发送速率,它会通过调整发送窗口维持恒定带宽,无法实现"2Gbps作为上限、测试值在其上下浮动"的需求。要实现带宽上限限制,需要结合网络层面的流量控制,而非仅依赖iperf参数。
方案1:通过ONOS配置QoS流规则限制带宽
ONOS原生支持QoS流量控制,可直接为指定端口或流设置带宽上限:
- 定位测试节点的设备ID、端口号,以及测试流的源/目的IP、协议类型(TCP)
- 使用ONOS CLI创建QoS规则:
若需针对特定流限制,可先创建流规则,再将QoS条目关联到该流# 为指定端口设置最大带宽2Gbps(单位:bps) qos-add <device-id> <port-number> type=MAX-RATE rate=2000000000- 运行iperf测试(无需
-b参数):
此时ONOS会将该端口/流的带宽限制在2Gbps以内,测试值会在2G上下浮动。# 服务器端 iperf -s # 客户端:每5秒采集一次,持续1分钟 iperf -c <server-ip> -i 5 -t 60- 运行iperf测试(无需
方案2:用Linux tc工具在节点上做流量整形
如果ONOS QoS配置复杂,可直接在测试节点的网卡上通过tc(流量控制)工具设置带宽上限:
- 在发送或接收节点执行tc命令:
其中# 为网卡添加令牌桶过滤器,限制带宽为2Gbps tc qdisc add dev <interface-name> root tbf rate 2gbit burst 10mb latency 70msburst允许短时间内的突发流量,latency控制流量处理延迟 - 执行iperf测试命令(同方案1的客户端/服务器端命令),iperf会全力发送数据,tc会将带宽限制在2Gbps以内,测试结果符合需求。
关键参数说明
-i 5:每5秒输出一次带宽统计数据,满足你的采集频率要求-t 60:设置测试持续时间为60秒,符合1分钟的测试要求- TCP模式下无需加
-b参数,让iperf全力发送,才能真实反映带宽在2Gbps上限附近的波动情况
内容的提问来源于stack exchange,提问作者Iwannis Koulouras
相关产品推荐
相关产品推荐

