光模块系统级测试_交换机自带打流工具

坑:NVUE操作命令和linux配置文件操作命令不要混用,配置文件可能被覆盖

Nvidia官网推荐测试方法:

682869ff3fa8431fbdf7236bf7d32617.png

b58f6448da5048b6ae6c18fbf39ddd34.jpg

Arista官网内容翻译:

Arista上的流量生成器
IPERF:
1. 生成 TCP 流量
2. 生成 UDP 流量
3. 生成组播流量
ETHXMIT:
1. 带 vlan 标签的 L2 广播帧
2. L3 单播数据包
3. L3 组播数据包

Iperf 和 Ethxmit 工具都预装在 Arista 交换机上,无需额外配置即可使用它们。
 

IPERF

此工具可用于从交换机生成流量。默认情况下,iperf 使用 TCP 端口 5001 进行服务器模式下的入站连接。

-s 选项用于使主机充当 iperf 测试的服务器。在客户端上,使用 -c 选项并提供用于测试的服务器的 IP 地址。

[admin@server ~]$ iperf -s

------------------------------------------------------------

Server listening on TCP port 5001

TCP window size: 85.3 KByte (default)

------------------------------------------------------------

[  4] local 10.0.0.1 port 5001 connected with 10.0.0.2 port 36006

[ ID] Interval       Transfer Bandwidth

[  4] 0.0-10.2 sec  23.5 MBytes 19.4 Mbits/sec

  
 

[admin@client ~]$ iperf -c 10.0.0.1

------------------------------------------------------------

Client connecting to 10.0.0.1, TCP port 5001

TCP window size: 45.0 KByte (default)

------------------------------------------------------------

[  3] local 10.0.0.2 port 36006 connected with 10.0.0.1 port 5001

[ ID] Interval       Transfer Bandwidth

[  3] 0.0-10.2 sec  23.5 MBytes 19.4 Mbits/sec

 

例子

1. 生成 TCP 流量
 

在下面的示例中,tcp 端口 40001 用于生成流量。客户端经过调整,以发送 mss 为 1460 字节的 tcp 数据包,持续时间为 20 秒。

[admin@server ~]$ iperf -s -p 40001

------------------------------------------------------------

Server listening on TCP port 40001

TCP window size: 85.3 KByte (default)

------------------------------------------------------------

[  4] local 10.0.0.1 port 40001 connected with 10.0.0.2 port 50921

[ ID] Interval       Transfer Bandwidth

[  4] 0.0-20.0 sec  1.62 GBytes 695 Mbits/sec

[admin@client ~]$ iperf -c 10.0.0.1 -M 1460 -p 40001 -t 20

WARNING: attempt to set TCP maximum segment size to 1460, but got 536

------------------------------------------------------------

Client connecting to 10.0.0.1, TCP port 40001

TCP window size: 85.6 KByte (default)

------------------------------------------------------------

[  3] local 10.0.0.2 port 50921 connected with 10.0.0.1 port 40001

[ ID] Interval       Transfer Bandwidth

[  3] 0.0-20.0 sec  1.62 GBytes 695 Mbits/sec

 

2. 生成 UDP 流量

使用“-u”选项生成 UDP 流量。
默认情况下,服务器侦听 udp 端口 5001,客户端以 1 Mbit/秒的速度发送数据包。
在下面的示例中,客户端以 100 Mbit/s 的速度发送 udp 流量。

[admin@server ~]$ iperf -s -u

------------------------------------------------------------

Server listening on UDP port 5001

Receiving 1470 byte datagrams

UDP buffer size:  208 KByte (default)

------------------------------------------------------------

[  3] local 10.0.0.1 port 5001 connected with 10.0.0.2 port 36750

[ ID] Interval       Transfer Bandwidth        Jitter Lost/Total Datagrams

[  3] 0.0-10.0 sec  1.25 MBytes 1.05 Mbits/sec   0.010 ms 0/ 893 (0%)

[  4] local 10.0.0.1 port 5001 connected with 10.0.0.2 port 43062

[  4] 0.0-10.3 sec  23.8 MBytes 19.5 Mbits/sec  15.652 ms 68456/85457 (80%)

[  4] 0.0-10.3 sec  1 datagrams received out-of-order
 

[admin@client ~]$ iperf -c 10.0.0.1 -u -b 100m

------------------------------------------------------------

Client connecting to 10.0.0.1, UDP port 5001

Sending 1470 byte datagrams

UDP buffer size:  208 KByte (default)

------------------------------------------------------------

[  3] local 10.0.0.2 port 43062 connected with 10.0.0.1 port 5001

[ ID] Interval       Transfer Bandwidth

[  3] 0.0-10.0 sec   120 MBytes 100 Mbits/sec

[  3] Sent 85460 datagrams

[  3] Server Report:

[  3] 0.0-10.3 sec  23.8 MBytes 19.5 Mbits/sec  15.652 ms 68456/85457 (80%) 

[  3] 0.0-10.3 sec  1 datagrams received out-of-order

 

3. 生成组播流量

可以通过向组播组发送 UDP 数据包来生成组播流量。可以使用“-B”选项绑定组播数据包的源 IP,然后使用交换机上配置的 IP 地址进行绑定。
在下面的示例中,10.0.0.1 是组 239.250.1.255 的组播流量源。

[admin@source ~]$ iperf -c 239.250.1.255 -u -B 10.0.0.1

------------------------------------------------------------

Client connecting to 239.250.1.255, UDP port 5001

Binding to local address 10.0.0.1

Sending 1470 byte datagrams

Setting multicast TTL to 1

UDP buffer size:  224 KByte (default)

------------------------------------------------------------

[  3] local 10.0.0.1 port 5001 connected with 239.250.1.255 port 5001

[ ID] Interval       Transfer Bandwidth

[  3] 0.0-10.0 sec  1.25 MBytes 1.05 Mbits/sec

[  3] Sent 893 datagrams

Use 'iperf -help' to see all available tuning parameters.

注意:

1.交换机产生的流量受CPU限制。因此,此工具无法提供准确的网络吞吐量。

2. 如果配置了控制平面 ACL,请确保 ACL 中允许用于生成流量的端口。

 

ETHXMIT 

Ethxmit 用于根据用户可配置的各种标头字段制作数据包。此工具可用于模拟生成流量,以便进行测试或故障排除。

用法:ethxmit [ OPTIONS ] 接口

 

例子

1. 带 vlan 标签的 L2 广播帧

Switch1 (et1) ----------(et2) Switch2 

Switch1 和 Switch2 都配置了 vlan 10。SVI 10 的 IP 地址分别为 10.0.0.1 和 10.0.0.2。每台交换机上的 Ethernet1 和 ethernet2 配置为中继,vlan 1 作为本地 vlan。

以下示例的目标是从 switch1 向 switch2 发送 arp 请求。这里,ethxmit 用于制作一个 ARP 请求数据包,其中 10.0.0.1 和 10.0.0.2 作为源和目标 IP 地址。源 mac 00:1c:73:20:f5:f6 是 switch1 的 mac 地址,目标 mac 是 ff:ff:ff(ARP 请求是广播数据包)。由于 ethernet1 是中继端口,因此在帧中添加了 vlan 标签 10。

[admin@switch1 ~]$ sudo ethxmit --ip-src=10.0.0.1 --ip-dst=10.0.0.2  -S 00:1c:73:20:f5:f6 -D ff:ff:ff:ff:ff:ff --vlan=10 --arp=request et1

 

2. L3 单播数据包

交换机 1 (et1) ----------(et2) 交换机 2
在下面的示例中,我们在 switch1 上使用 ethxmit 通过提供所需的 IP 地址和 TCP 端口来制作 TCP SYN 数据包。-n 选项用于对要发送的数据包总数进行计数。

[admin@switch1 ~]$ 
sudo ethxmit --ip-src=10.0.0.1 --ip-dst=10.0.0.2  -S 28:99:3a:bb:af:6e -D 28:99:3a:1b:76:65 --tcp-sport=13000 --tcp-dport=17000 --tcp-flags=S et1 -n 5

如果目标 IP 与源 IP 属于同一子网,则目标 MAC 字段应具有预期目标设备的 MAC 地址。
如果此单播数据包发往 10.0.0.0/24 子网之外的 IP,则目标 MAC 应该是下一跳路由器或默认网关的 MAC。
默认情况下,ethxmit将在未提供端口信息时发送IPv4数据包。

3. L3 组播数据包

交换机可以使用目标 IP 作为组播组地址,并使用源 IP 作为流量源的 IP 地址来获取组播流量。目标 MAC 派生自组播 IP 地址。“-c”选项用于发送连续的组播数据包流。

[admin@switch ~]$ 
ethxmit -–ip-src=10.116.8.38 -–ip-dst=239.0.10.1 -S 00:1c:73:20:f5:f6 -D 01:00:5e:00:0a:01 –-udp-dport=50001 –-udp-sport=50002 et1 -c

使用“ethxmit -help”查看可以与此工具一起使用的各种选项。

注意:

1. 如果未指定端口,则默认情况下使用 IPv4 数据包。

2. 即使 ethxmit 可以发送带有特定标志的 TCP 数据包,它也不会保持 tcp 连接,即执行三次握手。如果测试的要求是维护 tcp 连接,则使用 iperf 进行相同的连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值