准备工具
- 光纤
- 光纤转换器
- 光模块
- 千兆网卡、万兆网卡
- 至少两台服务器
- 测试软件tcpdump、tcpreplay、dpdk等
步骤(本文中以千兆网卡为例)
- 1.首先在两台服务器上分别插上两个千兆网卡;
- 2.插上对应的光模块;
-
3.使用光纤通过光纤转换器将光模块连接起来;自环是发送的服务器。
- 4.测试连接是否正确,检查光纤插入光模块,灯是否亮绿灯,绿灯表示正常接通;若不亮,可换光模块进行测试看看是哪里出问题,即使更换正常的设备和正常的光纤转换器等;
- 5.软件进行发包、收包测试
安装软件(以tcpreplay为例)
验证
- 本文中用204发包、238收包
- 这里要提到tcpreplay这个软件,可以进行发包测试:
- 安装(本文中以centos7.4为例)
-
m4下载,解压文件
tar xfz m4-1.4.13.tar.gz
,进入解压后的文件夹,编译安装./configure --prefix=/root/test/ && make && make install
-
m4下载,解压文件
- 2.bison下载,步骤同上。解压并进行源码编译安装。
- 3.flex下载,安装同上。
- 4.libpcap下载,安装同上,都安装到/root/test/这个目录下,以方便删除。
- 5.tcpreplay下载下载4.2.6版本,同上。进入test目录下的bin目录,将
cp tcpreplay /usr/bin/
,就可以运行tcpreplay了。经测试4.2.6版本可以使用。 - 注意,若第五步运行报错,则进入tcpreplay 4.2.6这个文件夹中,分布操作
./configure
,make
,make install
,安装过的文件到/usr/local/bin/目录查找tcpreplay的可执行文件,将其复制到/usr/bin/目录,就可以使用tcpreplay命令了。
- 安装(本文中以centos7.4为例)
~ 如果可以上外网的服务器可以使用yum安装
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
yum install epel-release
yum install tcpreplay
- 基本用法
tcpreplay --intf1=eth0 sample.pcap 等价于
tcpreplay -i eth0 sample.pcap
(查看tcpreplay的缩写:tcpreplay -h) - 循环发包(--loop参数)
- 重复一次
tcpreplay --loop=1 --intf1=eth0 sample.pcap - 无限循环,直到ctrl+c结束
tcpreplay --loop=0 --intf1=eth0 sample.pcap - 两个网口之间重放数据包
1)利用tcpprep将数据包通信双方区分为客户端和服务器端,这样在eth0和eth1之间通信就相当于客户端和服务器
tcpreplay --cacheile=sample.prep --intf1=eth0 --intf2=eth1 test.pcap
(备注:cachefile由tcpprep生成)
2)如果已经将数据包分成两个文件,那么tcpreplay就可以用如下命令在两个网口进行数据的重放
tcpreplay --dualfile --intf1=eth0 --intf2=eth1 a.pcap b.pcap - 以不同的速度回放
- 以尽可能大的速度回放
tcpreplay --topspeed --intf1=eth0 sample.pcap - 以10Mbps速率回放
tcpreplay --mbps=10.0 --intf1=eth0 sample.pcap
3)以原速度的7.3倍速率回放
tcpreplay --multiplier=7.3 --intf1=eth0 sample.pcap
4)以原速度的7.3倍速率回放
tcpreplay --multiplier=7.3 --intf1=eth0 sample.pcap
5)以每秒回放25个包的速率回放
tcpreplay --pps=25 --intf1=eth0 sample.pcap
6)以一次一个包的速率发送数据包
tcpreplay这段摘自——
作者:Jasmine
链接:https://www.jianshu.com/p/91db5f2cf410
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- 发包服务器也可以使用pfring软件
- centos7.4没有破解发不出2g的流量
- 发包需要用centos6.4系统
- 1.如何加载dna驱动
cd /home/intone/bin/IManager/pfring
, igb是千兆网卡目录,ixgb是万兆。 - 2.根据实际选择千兆还是万兆进到这两个的目录其中之一,然后执行./load_dna_driver.sh 就可以加载dna驱动了
在centos6.4系统上加载完dna驱动后,用ifconfig可以看到dna0 dna1这样的网口,在centos7.4系统上看不到dna0这样的网口
然后用ethtool dna0 去查看连接状态
加载完驱动后,用ifconfig可以看到dna0,dna1这样的网口
加载完dna驱动后就可以进行发包
到send_test目录
./pfsend -h //查看参数说明
./pfsend -i dna1 -l 256 -n 0 -r 2.35 //表示往dna1口发送长度为256字节,速率为2.35Mbps
-
收包服务器可以使用tcpdump或者wireshark图形界面进行收包验证,企业级的服务器一般没有图形界面,所以可以选择在windows和mac安装app软件来查看。
-
收包服务器可以使用dpdk-dump进行测试
- 若启动不了,可以使用tstpmd:
-
-
然后另开一个窗口,执行dpdk-dump
注意:
- 1.pcap文件中的数据包就是那样的ip,用tcpreplay发,它是原样的把pcap文件中的包发出去,所以收包那收到的包当然是原来的ip而不是204的ip;
- 2.tcpdump是捕获网卡的数据包;
- 3.被驱成dpdk后,tcpdump就抓不到它的包了,因为dpdk不经过内核的协议栈。
成文需要多次测试,多次修改!
Please tell me if you have any questions !