开源流量生成工具-Trex

龅牙兔谈科技 2024-05-18 08:58:15

T-Rex 是一个由思科开发并开源的高性能网络流量生成器,用于生成多种协议的网络流量,帮助测试和验证网络设备和服务的性能。

T-Rex 是一种低成本、有状态和无状态流量生成器,由 DPDK 支持。它可生成 L3-L7 流量,提供了商业工具才能支持的功能。

T-Rex 的无状态功能支持多个数据流,能够更改任何数据包字段,并针对每个数据流提供统计数据、延迟和抖动。

T-Rex 支持多核、多线程,能够生成和处理大规模的网络流量,非常适合高性能网络环境的测试需求。

T-Rex 仿真功能包括客户端协议,如: ARP、IPv6、ND、MLD、IGMP、ICMP、802.1X、DCHPv4、DHCPv6、DNS。

T-Rex 最高仿真流量可达到 200Gbps。

GitHub开源地址:https://github.com/cisco-system-traffic-generator/trex-core

官网链接:https://trex-tgn.cisco.com/

功能特点高性能:T-Rex 采用 DPDK(Data Plane Development Kit)技术,支持多核、多线程,能够在单台服务器上生成高达数十 Gbps 的网络流量。多协议支持:支持生成多种网络协议的流量,包括 TCP、UDP、ICMP、IPsec、L2/L3 隧道等。流量建模:提供灵活的流量建模功能,可以生成各种复杂的流量模式,包括不同的包大小、流速和协议分布等。实时统计和监控:提供实时流量统计和监控功能,用户可以实时查看和分析生成的流量和设备的性能指标。自动化测试:提供丰富的 API 和自动化脚本支持,方便集成到 CI/CD 流程中,实现自动化测试和性能验证。开源和社区支持:T-Rex 是开源项目,用户可以访问其源代码,自行定制和扩展功能,并得到活跃社区的支持。适用场景网络设备测试:使用 T-Rex 生成高性能网络流量,测试路由器、交换机、防火墙等网络设备的性能和稳定性。性能基准测试:生成不同类型的流量模型,对网络服务和应用程序进行性能基准测试,评估其处理能力。CI/CD 集成:将 T-Rex 集成到 CI/CD 流程中,自动化进行网络性能测试和验证,确保每次代码变更后的网络性能符合预期。安全测试:生成恶意流量模型,测试网络设备和安全系统的检测和防护能力,确保其能够有效抵御各种网络攻击。流量模拟:模拟真实的网络流量场景,进行网络规划和优化,评估不同网络配置对性能的影响。部署安装

T-Rex 支持在各种 Linux 发行版上安装,例如 Ubuntu、CentOS 等。

//以CentOS安装为例sudo yum updatesudo yum install -y build-essential python python3 python3-pip libpcap-dev //安装依赖项git clone https://github.com/cisco-system-traffic-generator/trex-core.git //克隆源码cd trex-core./scripts/setup.sh //开始编译./configuremakevim cfg.yaml //配置cfg.yaml文件,根据实际网络环境配置网络接口和其他参数- port_limit: 2 //配置 T-Rex 使用的端口数量 version: 2 //配置文件版本 interfaces: ["01:00.0", "01:00.1"] //配置 T-Rex 使用的网络接口的 PCI 地址sudo ./t-rex-64 -i //启动T-Rex。-i表示交互模式,可以通过交互界面进行配置和查看状态Starting Scapy server.... Scapy server is running.Importing pkt from /path/to/pkt/syn_ack.yamlT-Rex is running in interactive mode. Use 'help' for more information.trex> start -f cap2/http_traffic.yaml -m 1mpps -d 30 //在交互模式下,通过该命令加载并运行一个流量脚本生成流量//其中:-f cap2/http_traffic.yaml: 指定流量脚本文件-m 1mpps: 设置流量速率为每秒 1 百万包-d 30: 设置流量持续时间为 30 秒

注意:安装过程详解,建议参考官方技术指导手册https://trex-tgn.cisco.com/trex/doc/trex_manual.html#_download_and_installation

使用//例如,生成一个http请求流量的流量脚本文件vim http_traffic.yaml- name: "HTTP Traffic"mode: statefulstream:isg: 100packets:- packet:- ether:dst: '00:00:00:00:00:01'- ipv4:src: '192.168.1.1'dst: '192.168.1.2'- tcp:src: 1025dst: 80- payload:pattern: 'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n'mode:count: 10sudo ./t-rex-64 -f http_traffic.yaml -m 500kpps -d 60 //调用该流量脚本文件

相关文章链接:

!!!【点赞】、【关注】不走丢^_^

!!!【点赞】、【关注】不走丢^_^



0 阅读:0

龅牙兔谈科技

简介:感谢大家的关注