TRex 控制台命令解析
TRex 是一种高性能的网络测试工具,用于生成和分析网络流量。以下是对这些命令的简要解释:
一、help
Console Commands(控制台命令)
- capture:管理 PCAP 捕获。
- debug:用于开发的内部调试器。
- events:显示事件日志。
- help:显示帮助屏幕。
- history:管理命令历史记录。
- plugins:显示、加载或使用插件。
- quit:退出控制台。
- tui:显示图形控制台。
- verbose:显示或设置详细模式。
Common Commands(常用命令)
- acquire:获取端口。
- arp:执行端口的 ARP 解析。
- clear:清除本地缓存的统计信息。
- connect:连接到 TRex 服务器并获取端口。
- disconnect:断开与 TRex 服务器的连接。
- global_cfg:设置全局配置参数。
- ipv6:配置端口的 IPv6。
- l2:将端口配置为 L2 模式。
- l3:将端口配置为 L3 模式。
- map:映射端口拓扑。
- ns:网络命名空间。
- ping:ping 服务器或特定 IP。
- pkt:发送 Scapy 格式的数据包。
- portattr:设置端口属性。
- release:释放端口。
- reset:重置端口。
- scan6:搜索 IPv6 邻居。
- shutdown:关闭服务器。
- stats:显示各种统计信息。
- vlan:为端口配置 VLAN 标签。
Stateless Commands(无状态命令)
- pause:暂停 TRex 上指定端口的活动流量。
- profiles:获取服务器上加载的配置文件信息。
- push:推送一个 PCAP 文件。
- resume:恢复 TRex 上指定端口的活动流量。
- service:将端口配置为服务模式。
- start:在 TRex 上指定端口启动选定的流量。
- stop:停止 TRex 上指定端口的活动流量。
- streams:获取服务器上加载的流信息。
- tpg_clear_stats:清除标记数据包组统计信息。
- tpg_clear_tx_stats:清除标记数据包组发送统计信息。
- tpg_clear_unknown_tags:清除标记数据包组未知标签。
- tpg_disable:禁用标记数据包组。
- tpg_enable:启用标记数据包组。
- tpg_show_unknown_tags:显示标记数据包组未知标签。
- tpg_stats:显示标记数据包组统计信息。
- tpg_status:显示标记数据包组状态。
- tpg_tags:显示标记数据包组标签。
- tpg_tx_stats:显示标记数据包组发送统计信息。
- tpg_update:更新标记数据包组标签。
- update:更新当前活动端口的速度。
二、详细命令
2.1 portattr
命令用法
portattr [-h] [-p PORTS [PORTS ...] | -a] [--prom {on,off}] [--link {up,down}] [--led {on,off}] [--fc {none,tx,rx,full}] [--vxlan-fs [VXLAN_FS ...]] [--supp] [--mult {on,off}]
-p PORTS [PORTS ...]
:指定端口号。-a
:对所有端口进行操作。- 其他选项用于设置端口属性,例如:
--prom {on,off}
:设置端口的混杂模式。--link {up,down}
:设置端口的链路状态。--led {on,off}
:设置端口的 LED 状态。--fc {none,tx,rx,full}
:设置端口的流量控制模式。--vxlan-fs [VXLAN_FS ...]
:设置 VXLAN 流量空间。--supp
:显示端口的补充信息。--mult {on,off}
:设置端口的多播模式。
查看端口的详细属性
trex> portattr -p 0
这将显示端口 0 的当前配置状态,例如混杂模式、链路状态、LED 状态、流量控制等。
启用链路
trex> portattr -p 0 --link down
trex> portattr -p 0 --link up
2.2 查看端口统计信息
trex> stats
这将显示端口的发送和接收统计信息,以及一些基本的配置信息。
2.3 启用或禁用端口的服务模式
启用: 使端口进入服务模式,此时端口可以响应 ARP 请求
l2 为2层模式,需要改变mac,vlan等可以用二层模式转发;
l3 为3层模式,port上的有固定的IP地址,并且指定了网关地址,可以回复ARP;
trex> service -p 0
trex(service: 0)>
trex(service: 0)>l2 -p 0 --dst 00:11:22:33:44:55
trex(service: 0)>
trex(service: 0)> l3 -p 0 --src 192.168.1.100 --dst 192.168.1.1
发送测试流量:
无论端口处于何种模式,都可以发送测试流量以验证端口是否正常工作:
pkt -p 0 -s “Ether(dst=‘<目标MAC地址>’)/IP(dst=‘<目标IP地址>’)/ICMP()”
发送一个 ICMP 数据包
pkt -p 0 -s Ether(dst='00:11:22:33:44:55')/IP(dst='192.168.1.1')/ICMP()
发送更多的 ICMP 数据包
ping -p 0 -d 192.168.1.1 -n 5 //-n 参数的值设置为所需的数量
发送一个 TCP 数据包
pkt -p 0 -s Ether(dst='00:11:22:33:44:55')/IP(dst='192.168.1.1')/TCP(dport=80)
发送一个 UDP 数据包
pkt -p 0 -s Ether(dst='00:11:22:33:44:55')/IP(dst='192.168.1.1')/UDP(dport=53)
启动流量生成:如果需要生成持续的流量,可以加载流量配置文件并启动流量:
start -f /path/to/your/traffic.yaml
sudo find / -name “trex_cfg.yaml” //查找
禁用: 使端口退出服务模式
trex(service: 0)>service --off -p 0
trex>
2.4 解析 ARP
arp -p <端口号> -r <次数>
trex>
trex(service: 0)> arp -p 0 -r 3
trex(service: 0)>
trex(service: 0)> ping -p 0 -d 192.168.1.1 -n 3 //这将发送 ICMP 请求,触发 ARP 解析。
将发送 ARP 请求并解析对端设备的 MAC 地址
2.6 VLAN 配置
- 查看 VLAN 配置:使用
vlan -p 0 -c
- 添加 VLAN 配置:使用
vlan -p 0 --vlan 100
- 删除 VLAN 配置:使用
vlan -p 0 -c
2.7 重置端口
reset -p 0
配置文件
- 检查配置文件:可以查看 TRex 的配置文件(如
trex_cfg.yaml
),确认 VLAN 配置是否正确。例如:- port_limit : 2version : 2interfaces :- "enp4s0" :dest_mac : "00:11:22:33:44:55"default_gw: "192.168.1.1"ipv4 :- "192.168.1.101/24"vlan :- 100
确保 interfaces 中的 PCI 地址(如 0b:00.0 和 13:00.0)与实际网卡 PCI 地址一致。通过以下命令查看网卡的 PCI 地址:
sudo lspci | grep -i ethernet