Trex client发送报文的几种方式

8 篇文章 1 订阅
2 篇文章 0 订阅
本文介绍了如何通过Trexserver进行流量测试,包括登录、配置服务模式、使用Scapy封装报文、发送PCAP文件及自定义脚本。重点展示了如何利用Scapy创建VLAN和TCP/IP报文,并演示了抓包文件的推送和速率控制操作。
摘要由CSDN通过智能技术生成

准备工作

登录Trex server开启server进程

[root@localhost ~]# cd /home/test/v2.95/
[root@localhost v2.95]# ./t-rex-64 -i --stl --ipv6

再次看个连接,启动client

[root@localhost v2.95]# ./trex-console --force

发送过程中可以用stop命令来强制停止发送

直接发送流量

先开启service模式下的端口转包,以便验证流量
capture monitor start --tx 1:打印port 1 的出方向的报文

trex>service
Enabling service mode on port(s): [0, 1, 2, 3]               [SUCCESS]
trex(service)>capture monitor start --tx 1
Starting stdout capture monitor - verbose: 'low'             [SUCCESS]
*** use 'capture monitor stop' to abort capturing... ***

报文的封装是靠scapy来完成的,具体可以参看Scapy Manual
Ether(): 不填参数就用端口默认的mac来发送,这个默认的mac是在/etc/trex_cfg.yaml里面初始化的。当然也可以根据实际的需求学习刷新
Dot1Q(vlan=12):指定Vlan,也能再加上dscp等参数
-p 1:指定发送的接口,不指定的话从所有可用的口都发一份

trex(service)>pkt -s Ether()/Dot1Q(vlan=12)/IPv6(src="::5")/TCP(dport=12,sport=1025) -p 1
Pushing 1 packets on port(s) [1]:                            [SUCCESS]
7.32 [ms]
trex(service)>
#1 Port: 1 ──▶ TX
trex(service)>
    Type: TCP, Size: 78 B, TS: 6.56 [sec]
trex(service)>
 Ether(dst='6c:fe:54:25:2f:d0',src='6c:fe:54:25:2f:d1',type=33024)/Dot1Q(prio=0,id=0,vlan=12,type=34525)/IPv6(version=6,tc=0,fl=0,plen=20,nh=6,hlim=64,src='::5',dst='::1')/TCP(sport=1025,dport=12,seq=0,ack=0,dataofs=5,reserved=0,flags=2,window=8192,chksum=35792,urgptr=0)

用现成的PCAP抓包文件发送

用push命令发送
-f :要使用的文件,相对的根目录是在trex的安装路径
–force:service模式下需要强制发送

trex(service)>push -f stl/udp_64B_no_crc.pcap --force -p 1

Converting 'stl/udp_64B_no_crc.pcap' to streams:             [SUCCESS]


Removing all streams from port(s) [1._]:                     [SUCCESS]


Attaching 1 streams to port(s) [1._]:                        [SUCCESS]


Starting traffic on port(s) [1._]:                           [SUCCESS]

61.36 [ms]

trex(service)>

2022-06-13 22:44:52 - [server][info]     - Profile 1._ job done

trex(service)>

2022-06-13 22:44:52 - [server][info]     - Port 1 job done

trex(service)>



#2 Port: 1 ──▶ TX


trex(service)>

    Type: UDP, Size: 60 B, TS: 2154.10 [sec]


trex(service)>

    Ether(dst='6c:fe:54:25:2f:d0',src='6c:fe:54:25:2f:d1',type=2048)/IP(version=4,ihl=5,tos=0,len=46,id=0,flags=2,frag=0,ttl=64,proto=17,chksum=28605,src='101.0.0.1',dst='102.0.0.1')/UDP(sport=2001,dport=2001,len=26,chksum=1176)/Raw(load=b'\xde\xad\xbe\xef\x00\x01\x06\x07\x08\t\n\x0b\x00\x9b\xe7\xdb\x82M')

调用封装好的py文件发送

-m 10: 指定发送速率bps
-d 1:发送时长单位是秒

start -f stl/simple_3st.py -m 10 -d 1 --force
#375584 Port: 1 ──▶ TX


trex(service)>

    Type: UDP, Size: 60 B, TS: 2701.19 [sec]


trex(service)>

    Ether(dst='6c:fe:54:25:2f:d0',src='6c:fe:54:25:2f:d1',type=2048)/IP(version=4,ihl=5,tos=0,len=46,id=1,flags=0,frag=0,ttl=64,proto=17,chksum=15035,src='16.0.0.3',dst='48.0.0.1')/UDP(sport=1025,dport=12,len=26,chksum=32621)/Raw(load=b'xxxxxxxxxxxxxxxxxx')
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值