引言
当前主流的网络流量测试工具主要为iperf3和pktgen这两种工具,其中iperf3是基于linux内核开发的一种流量测试工具,其收发包能力和压测指标受限于linux内核协议栈,在高性能网络的场景下不能满足使用,pktgen是基于DPDK开发的一种网络流量测试工具,但由于pktgen对于ARP,IPV6 NS/NA报文、可编程性、图形化界面的支持有限,所以功能受限。Trex完美的解决了上述两款工具的缺点,trex是基于DPDK开发的高性能网络测试仪器,支持使用scapy来构建数据包模板或者从pcap文件中读取数据包模板,支持多种常见的数据包的封装,可以使用trex来做流量稳定性以及压力测试和性能测试;构建复杂的数据流量压测;放大和回放数据包;支持自动化的调用。
1.trex介绍
Trex-core是trex的核心,主要分为两部分,一部分是trex server,用来转发数据包,其代码存在trex/src下,一部分是trex client,存在trex/scripts,用来生成各种各样的数据包报文。运行时,先启动trex-server,通过client连接到server执行发包指令。
2.trex编译
本次实验编译和测试均在ctyunos2上进行编译和测试
yum install libstdc++-static zlib-devel
cd linux_dpdk
CC=clang CXX=clang++ ./b configure
./b build
cd ../scripts
启动trex server.
./t-rex-64 -i --stl
3.trex使用
使用cli方式控制测试仪,构造并发送20条UDP流。
连接到trex测试仪
开启service模式(service 模式下,port才会响应ARP/NS/NA请求)
指定p0发送流量(service模式下需要指定-force)
使用tui命令查看统计信息