一、发pkt模拟包
例如:
./pktgen -c c -n 4 --proc-type auto -b 01:00.0 --socket-mem 512 --file-prefix pg -- -n 10 -T -m 3.0 -f set_seq64_200wconv.pkt
./pktgen -c 3 -n 4 --proc-type auto -b 01:00.1 --socket-mem 512 --file-prefix pg1 -- -n 10 -T -m 1.0 -f set_seq64_200wconv.pkt
分别打开2个窗口执行以上2个命令,top中可以看到2个pktgen进程,一张万兆卡的2个口分别发包,互不影响。
参数说明:
1. -c为抓包掩码,第一条命令中掩码为1100,抓包核心为3, 抓包核后面的核为保留位,核心2位保留位。第二条命令中掩码为0011,抓包核心为1,0核为保留位。
2. -b 为网卡pci的查询结果,表示不同的网口。
3. --file-prefix pg 在2条命令中名称要求不一致。
4. -m 为抓包核心,3.0,1.0分别表示1中的3核和1核,2条命令中可以用同一端口0,不互相影响。
一个pcap一个pkt配对:
./pktgen20180410 -c f -n 4 --proc-type auto --socket-mem 512 -b 01:00.1 --file-prefix pg -- -T -m 3.0 -s 0:voip-udp.pcap:2 -d 8000 --bps 1000
./pktgen20180410 -c 3 -n 4 --proc-type auto -b 01:00.0 --socket-mem 512 --file-prefix pg1 -- -n 10 -T -m 1.0 -f set_seq64_200wconv.pkt
二、发pcap包
./pktgen -c 70 -n 4 --proc-type auto --socket-mem 1024 -b 04:00.1 --file-prefix pg2 -- -T -m 5.0 -s 0:/home/192.168.5.15-100.17-0.187-sendpkt/:6
-c 为发包对应的核心掩码,70为0111 0000 其中从右至左第1个1表示给屏幕的核心,上例中为4号核心。从右至左第2,3个核心表示给m和文件夹发包的核心。上例中为:5.6核心
-n 为内存通道数,一般都是4
--socke-mem 1024 表示分配给大页的内存为1GB
-b 04:00.1 表示lspci中的网卡ID ;
-b blacklist黑名单发包程序看不到这张卡
-w whitelist白名单 发包程序只看得到-w 指定的网卡
--file-prefix pg2 文件前缀,表示多网卡发包不同的文件区别,多网卡发包的前缀名称(这里是pg2,也可以是别的)必须不同
-T
-m 为网口发包线程绑定CPU核心
-r 表示发包轮数,发一轮:-r 1
pktgen可以启动多个发包线程向同一网口发送数据。因此需要为每个网口发包线程指定CPU核心。
例子:
•1个网口绑定1个发包线程
-m 1.0 (0号网口启动1个发包线程,发包线程绑定到CPU核心1上)
•1个网口绑定2个发包线程
-m 1-2.0 (0号网口启动2个发包线程,两个发包线程分别绑定到CPU核心1和2上)
•2个网口分别绑定1个发包线程
-m 1.0,2.1 (0号网口启动1个发包线程,发包线程绑定到CPU核心1,1号网口启动一个发包线程绑定到CPU核心2
•网口1绑定1个发包线程,网口2绑定两个发包线程
-m 1.1,3-4.2 (1号网口启动1个发包线程,绑定到CPU核心1, 2号网口启动两个发包线程绑定CPU核心3和4)
三、按指定网口发送流量
四、按指定pps发送流量
五、按指定bps发送流量
六、用pcap文件生成流量
七、原速发送pcap文件
八、放大pcap会话
九、
十
十一
十二
十三
十四
十五
十六
十七
其中 -c 7表示核心0,1,2,其中0为打印用不能用,1,2可以被-m使用,-m中 1.0 中的0表示-w中的44:00.0网口,-m中2.1中1表示-w中44:00.1网口