坑:NVUE操作命令和linux配置文件操作命令不要混用,配置文件可能被覆盖
Nvidia官网推荐测试方法:
Arista官网内容翻译:
IPERF:
1. 生成 TCP 流量
2. 生成 UDP 流量
3. 生成组播流量
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
如果此单播数据包发往 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 进行相同的连接。