阅读:

8,271

对于网络设备而言,一款好的发包工具至关重要,而目前像IXIA, Sprient等仪表厂商的发包仪表虽然好用,但是价格昂贵,那么是否有一款在功能和性能上能与仪表相当,却又是开源的工具呢,思科的TRex的给出了答案。

目前,路由器厂商测试用的都是商业的仪表,一般的性能衡量都是以PPS作为标准,而路由器很复杂,牵扯到7层的应用,而且希望能够提供一种更加真实的流场景测试,TRex应运而生,TRex是一款开源的发包工具,它跑在标准的intel处理芯片上,同时支持stateful和stateless模式,stateful可以描述L4~L7层的应用场景,而stateless主要用来进行定制包的发包。

TRex特性

1、TRex 功能性能

stateful

支持高达200Gb/s的流量测试,需要网卡及CPU支持,一般跟core个数有关

支持时延和抖动,支持NAT/PAT自动学习,支持L4~L7

stateless

轻易产生stateless traffic stream,支持大流量 20mpps,支持stream并发,支持更改报文字段范围

支持Continuous/Burst/Multi-burst support,支持console/GUI,支持每条流的统计

支持pythonAPI

2、思博伦L4-L7旗舰产品Avalanche与TRex的比较

3、TRex的安装对OS以及网卡有特殊的要求

TRex运行

1、Identify the ports(虚拟机环境采用E1000驱动)

注释:Active 端口作为管理端口,管理端口不能被绑定,否则不能管理linux, 其它二个网卡可以绑定

2、绑定端口

cp cfg/simple_cfg.yaml /etc/trex_cfg.yaml,trex默认端口起动配置文件是/etc/trex_cfg.yaml,也可以自定义起动配置文件 “./t-rex-64 –cfg”

我们本地模拟采用的port 0: 00:08.0,port 1: 00:09.0,IP地址配置可根据实际测试需要修改,模拟配置的10.1.1.254和10.1.1.253

3、stateless模式进行验证

窗口1,启动服务

窗口2,启动终端

进入trex目录下进入service下进行ping操作

TRex-stateful介绍

Stateful模式指的是网络设备对每条流保存其五元组,TRex通常先录制一条流的一组报文,随后以这组报文为模板,在真正测试的时候,更改其src/dst IP和Port,TRex自身没有协议栈,却让网络设备有了状态,因此它可以测试L4~L7层的应用,重点是提前录制连接的过程。

stateful模式支持shell,也支持PythonAPI, 它由一个YAML文件组成,其中包含三部分:

duration(持续时间)、generator(操作选项)、cap_info(包信息、发送选项)

#通过修改cap_info下的-name:部分可指定多个组合,如IMIX组合

stateful操作几部曲(以dns为例)

step 1 设置端口跟DUT相连(/etc/trex_cfg.yaml)

step 2 录制DNS请求与应答包(./cap2/dns.pcap,目前开源的包包括../*/*.pcap)

step 3 修改 yaml文件就是cap2/dns.yaml

主要修改执行时间,client和server的变化以及cap info的loop和cps等

step 4 执行发包

./t-rex-64 -f cap2/dns.yaml -m 1 -d 10(m为复制几份,d为时间)

step 5 在IPS上诊断抓包

step7 查看发包统计states

执行命令的常用参数

TRex-stateful各种场景举例

1、IPv6场景模拟

2、GAV(Gateway Anti Virus)场景模拟

TRex-stateless介绍

Stateless是基于构包和发包两个阶段来完成, 构包完全基于python的scapy库,而发包则是其自开发的trex_stl_lib来完成。

特点:

Trex Objects

Simple Interactive Mode

TRex-stateless STLS框架

Trex的Stateless中的STLS框架,stateless由两部分组成,一部分是构包(Scapy), 另一方面是发包,这个由Trex框架完成,

### Scapy Scapy 是python用于发包的一个库,它通过layer的叠加从而达到构包的目的,如果你只需要构二层包,那么Ether()则构了, 如果你需要构三层IP包,则需要Ether()/IP(),同理L4~L7层的包都可以通过这种方式进行迭代,每个层里面都会有不同的协议,Scapy支持了目前的大多数协议,因此从理论上说,Scapy可以构造任意类型的包 。

TRex用于VIPS场景测试

测试场景:

stateless模式测试

1) VIPS配置为虚拟线模式

2)TRex服务器上开启stateless模式

./t-rex-64 -i

3) TRex服务器上t-rex-console进行udp-simple.py测试

./trex-console

start -f ./stl/udp_1pkt_simple.py -d 200 -m 500mbps -p 0

4)设备上查看流量

5)TRex上可以通过stats和capture进行流量跟踪

采用实体机器配备DPDK网卡,可以达到20G的测试

stateless支持的py文件如下,分别用于各种报文类型测试,也可以通过python+scapy编辑和规划发送报文以及发送方式

stateful模式测试

1)配置需要运行的yaml文件,例如识别rstp和https

2) 运行stateful测试

./t-rex-64 -f cap2/test.yaml -m 1pps -d 20

3)查看设备上流量和应用识别情况

本文主要参考网络分享文章:

https://my.oschina.net/hding/blog/886762

linux模拟发包工具,发包开源工具TRex在IPS测试中的应用相关推荐

  1. git 工具_Github开源工具分享之自托管GIT服务工具Gogs

    介绍 Gogs项目旨在构建一种简单,稳定和可扩展的自托管Git服务,该服务可以通过最轻松的方式进行设置.使用Go语言开发的git自托管服务,部署十分简单,可以在Go支持的所有平台(包括Linux,ma ...

  2. php图形开发工具,dba 开源工具:面向开发的MySQL图形可视化监控

    工具研发者介绍 贺春旸,凡普金科DBA团队负责人,<MySQL管理之道:性能调优.高可用与监控>第一.二版作者,曾任职于中国移动飞信.安卓机锋网.致力于MariaDB.MongoDB等开源 ...

  3. 如何提升 Linux 服务器安全的开源工具和技巧?

    本文基于我作为初学者迄今所学的知识,详细介绍了六个简单的步骤,以提高个人使用的 Linux 环境的安全性.在我的整个旅程中,我利用开源工具来加速我的学习过程,并熟悉了与提升 Linux 服务器安全有关 ...

  4. linux 邮件开源工具_使用Linux和开源工具编写剧本

    linux 邮件开源工具 早在今年5月,Jason van Gumster编写了4个开源工具来编写您的下一个剧本 . 它包括一些我以前从未听说过的工具,一些我非常熟悉的工具,并且缺少一些我自己喜欢的工 ...

  5. linux 邮件开源工具_5个适用于Linux的开源个人理财工具

    linux 邮件开源工具 编者注:本文最初于2016年1月发布,并已进行了更新,以添加两个很棒的附加工具. 当被问及个人目标时,在大多数人的榜单上,更好地掌握个人财务状况是很重要的. 这是否意味着制定 ...

  6. OhMyZsh是一款开源工具,可以用于管理Zsh(Linux命令解释器的一种)的配置

    最近在研究终端工具的时候,发现人家的终端可以输出各种彩色文字,还有各种提示,自己就算用了炫酷的Tabby也无法实现.后来发现需要在Linux上安装OhMyZsh才行,今天给大家介绍下这款功能强大,插件 ...

  7. 使用开源工具SVNKit编写程序管理Subversion

    转载自: http://www.loggingselenium.com/2013/09/使用开源工具svnkit编写程序管理subversion.html Subversion和SVNKit介绍做为软 ...

  8. matlab rebit,BIM的算法最新消息!MATLAB被禁也有BIM开源工具用!

    近期,哈工大师生被禁止使用MATLAB软件,在模拟计算.控制系统和人工智能方面失去了一项重量级的工具.工程建设行业也长期依赖国外软件,那么如果BIM圈的"MATLAB"被禁用了怎么 ...

  9. Linux内核调试的方式以及工具集锦

    Linux内核调试的方式以及工具集锦 CSDN GitHub Linux内核调试的方式以及工具集锦 LDD-LinuxDeviceDrivers/study/debug  本作品采用知识共享署名-非商 ...

  10. 业务流程巡检拨测(开源工具)

    应用运维系统的首要能力是在应用业务流程处理出现宕机.假死.错误或运行缓慢等异常状态时,先于用户发现,并及时通知相关责任人.其主要技术手段是采用软件程序主动模拟用户的操作过程,设置自动化巡检策略,定时主 ...

最新文章

  1. AngularJS ui-router (嵌套路由)
  2. 使用ansible批量部署开机启动时为字符界面
  3. window下安装Oracle11G安装
  4. 经常被人忽视的:Pandas 文本数据处理!
  5. 吴晓波上市梦碎,罗永浩:梦太大又入错行
  6. 大数据时代时代舍恩伯格书资源_大数据时代的特征和思维
  7. unity怪物攻击玩家减血_Unity RPG游戏攻击的判定
  8. 了不起的 Deno:带你极速获取各大平台今日热榜
  9. 如何设置三线表线条的粗细
  10. 计算机上u盘打不开,u盘在电脑上打不开怎么解决
  11. 论文写作 之 Related work
  12. unity3d 重力加速度传感器控制摄像头
  13. 阿里内网M8级别的“分布式到微服务”解密手册,学废了嘛
  14. android之manifest
  15. error: src refspec master does not match any error: failed to push some refs to ‘https://gitee.com/s
  16. 彩灯控制单片c语言程序,基于51单片机的led彩灯设计。 9个灯(红绿蓝三色)。按键控制 c语言程序...
  17. echarts中对整个图形旋转90°(实现div旋转90度)
  18. npm 淘宝镜像设置
  19. 零信任安全在攻防演练中的“防御”之道
  20. mybatis二级缓存

热门文章

  1. PYTORCH-KALDI语音识别工具包
  2. Quartus II bilibili 入门 EDA实用技术教程(一)---verilog语言编程基础
  3. VMware windows2003系统安装教程
  4. 如果计算机正执行屏幕保护程序 当用户,计算机一级考试参考试题(含答案)讲节一.doc...
  5. 程序设计导引及在线实践——练习记录
  6. c语言程序原版PDF,正式版C语言程序设计.pdf
  7. 富文本(vue3)SQL格式化 JSON格式化
  8. python如何可视化编辑gui_python gui,python可视化窗口编程
  9. oozie mysql5.6_oozie服务安装及使用
  10. Centos7安装SCIP with AMPL