TRex 学习 (4) ---- stateful ( advanced )

stateful 是一种有状态的发包,虽然基于包模板进行顺序发送,但对于DUT来说是一个有状态的连接,因此它可以用在我们很多的测试场景中

1. NAT 场景测试

输入图片说明

  • Client 通过 DUT并作NAT后访问 Server,这是一个典型的应用场景
  • 对于DUT来说需要做一次源端口的转换,
  • 对于TRex来模仿C/S,此时S回给C的包的目的地址不是C的地址而是DUT的地址,
  • 随后再由DUT转换目的IP给Client

  • 测试用http_browsing模板,模拟客户在LAN端访问WAN端的HTTP Server浏览网页
  • yaml 设置
 13   cap_ipg    : true
 14   cap_info :
 15      - name: avl/delay_10_http_browsing_0.pcap
 16        cps : 2.776
 17        ipg : 10000
 18        rtt : 10000
 19        w   : 1

./t-rex-64 -f cap2/http_simple.yaml -d 10 --learn-mode 1

  • 1是根据第一个包来确定NAT地址学习,
  • 2是根据ip option,
  • 3是server-client的identification不会变,增加性能

  • capture result
    输入图片说明
    图中可见原本由server发回给client的包应该是 48.0.0.1-->16.0.0.1,而现在变成了 10.10.10.1,这是因为起用--learn-mode而起的作用,TRex学习第一个包的源地址,从而根据这个源地址进行回送,这就模拟一个在LAN端的用户访问internet的场景

2. IPv6场景测试

随着internet的用户急剧的增加,在ipv4地址将会逐渐的耗尽, IPv6大势所趋,目前已经有很多的场景需要用到IPv6进行测试,虽然现在大多数的地方仍然是ipv4, 6to4,4to6等过渡性应用,但不久的将来,IPv6将会全面覆盖,TRex支持IPv6,但不支持IPv4与IPv6同时运用。

  • yaml 设置
 13   src_ipv6 : [0x2001,0x0203,0x0000,0x0000,0x0000,0x0000]     #ipv6 prefix 2001:203::IPv4/96
 14   dst_ipv6 : [0x2001,0x0204,0x0000,0x0000,0x0000,0x0000]     #ipv6 prefix 2001:204::IPv4/96
 15   cap_info :
 16      - name: exp/hlt_ipv6_default.pcap
 17        cps   : 10.0
 18        ipg   : 10000
 19        rtt   : 10000
 20        w     : 1
  • DUT设置
  • 配置NDP,由于不会进行NDP的学习,因此需要让被测设备知道网关的MAC
  • 配置路由,2001:203::/96与2001:204::/96网段怎么去
  • capture result
    ./t-rex-64 -f cap2/ipv6_box.yaml -d 10 --ipv6
    输入图片说明
    由于模板包是单方向,因此只有X0->X2方向的包,全部通过,地址是96位掩码+IPv4的地址成为IPv6地址

3. VPN场景测试

在公司与分公司之间要穿透internet进行通信,其中运用的最广的是走VPN通道,而VPN场景测试也是我们需要的,TRex是否支持VPN,这一点其实无用质疑,虽然VPN通道间传输数据是加密的,但是通向两个终端的数据还是原始数据,加密解密,GRE, IPSec这些都是DUT做的事,TRex只不过是给两个终端发包而已,唯一不同的是此时TRex把两个DUT看作一个DUT而已 输入图片说明

  • yaml 设置
  1 - duration : 10.0
  2   generator :  
  3           distribution : "seq"                     
  4           clients_start : "16.0.0.1"
  5           clients_end   : "16.0.1.255"
  6           servers_start : "32.0.0.1"
  7           servers_end   : "32.0.0.255"
  8           clients_per_gb : 201
  9           min_clients    : 101
 10           dual_port_mask : "1.0.0.0" 
 11           tcp_aging      : 1
 12           udp_aging      : 1
 13   cap_info : 
 14      - name: cap2/http_get.pcap
 15        cps : 1.0
 16        ipg : 10000
 17        rtt : 10000
 18        w   : 1
  • DUT设置
  • DUT1 与DUT2配置VPN
  • DUT1保护网段 16.0.0.0, 远端网络 32.0.0.0
  • DUT2保护网段 32.0.0.0, 远端网络 16.0.0.0
  • ./t-rex-64 -f cap2/vpn.yaml --cfg cfg/vpn_cfg.yaml -d 100
  • capture result
    输入图片说明
    16.0.0.1->32.0.0.1经过WAN口进行封装,ESP传输给对端,对端32.0.0.1->16.0.0.1直接解密发到TRex端口上

4.HTTPS场景测试

在网络安全受到重视的今天,越来越多的厂家选择https加密通信,因为http是名文的,已经对于现在的互联网世界不再适用,而TRex对于https的流量场景是否能够测试,答案是肯定的,虽然https是加密的,但加密这个动作并不需要TRex去做,TRex需要做的仅仅是把录制的报文发出去而已,因此对于DUT来说是一个完整的HTTPS加密连接。

  • yaml配置很简单
 13   cap_info :
 14      - name: cap2/https.pcap
 15        cps : 1.0
 16        ipg : 10000
 17        rtt : 10000
 18        w   : 1
  • 执行测试 ./t-rex-64 -f cap2/https.yaml -d 10
  • capture result
    输入图片说明

5. GAV(Gateway Anti Virus)场景测试

互联网安全一直是当今网络的主题,病毒的入侵无时不在,我们希望TRex能够完成一个基本的病毒入侵测试,首先因为TRex只发包,而不会去考虑发的是什么包,因此首先需要录制一个下载病毒过程的模板,当这个模板录制好后,client首先发TCP与Server进行三次握手,随后client会发出一个get viru的请求,此时server就会把病毒的数据传给client,当数据传给client时经过DUT,检测DUT是否能够检测到该数据是一个病毒,从而产生reset,产生log完成测试。
输入图片说明

  • yaml 设置
 13   cap_info :
 14      - name: cap/http_virus.pcap
 15        cps : 100.0
 16        ipg : 10000
 17        rtt : 10000
 18        w   : 1
  • 执行测试 ./t-rex-64 -f cap2/http_virus.yaml -d 10
  • 输入图片说明

参考

https://trex-tgn.cisco.com/trex/doc/trex_manual.html

转载于:https://my.oschina.net/hding/blog/891848

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值