yum install gcc libpcap-devel kernel-devel kernel-headers
TOPDIR=/devel
mkdir -p $TOPDIR
cd $TOPDIR
git clone http:
git clone http:
export RTE_SDK=$TOPDIR/dpdk
export RTE_TARGET=x86_64-native-linuxapp-gcc
$ cd $RTE_SDK
$ make install T=x86_64-native-linuxapp-gcc
$ cd $TOPDIR/pktgen-dpdk
$ make
示例:
绑定igb_uio(mlx4/mlx5无需绑定)后
./pktgen -c 0xffff --socket-mem=5120,5120 -w 03:00.0 -w 03:00.1 -n 2 -r 2 -- --crc-strip -P -m [1:2-15].0 -T -N
注意事项
1. pktgen 支持单一、范围、随机、序列多重数据流发送模式,每种模式都拥有自己的packet buffer。所以为每种模式启用不同的配置,并启用模式(enable port-id mode),默认启用为单一数据流放方式;
2. pktgen 最小要求2个CPU才可以运行,0核用于处理命令行&计时器屏幕刷新,其他核用于发送&接收数据报文;
3. pktgen一定要在与pktgen.lua文件同一目录下运行,即pktgen的文件夹中运行;
single - 单一地址流模式
set 0 dst mac 11:22:33:44:55:66
set 0 dst ip 192.168.11.1
set 0 src ip 192.168.10.1/24
range - 指定地址范围多流模式
enable 0 rang
page rage
set 0 dst ip 192.168.20.3
range 0 dst ip 192.168.20.3 192.168.20.3 192.168.20.50 0.0.0.1
set 0 src ip 192.168.30.3/24
range 0 src ip 192.168.30.3 192.168.30.3 192.168.30.50 0.0.0.1
range 0 size 64 64 64 0
page stats
sequence - 序列多重数据流模式
sequence <seq#> <portlist> dst <Mac> src <Mac> dst <IP> src <IP> sport <val> dport <val> ipv4|ipv6 udp|tcp|icmp vlan <val> pktsize <val> [teid <val>]
sequence <seq#> <portlist> <dst-Mac> <src-Mac> <dst-IP> <src-IP> <sport> <dport> ipv4|ipv6 udp|tcp|icmp <vlanid> <pktsize> [<teid>]
- Set the sequence packet information, make sure the src-IP has the netmask value eg 1.2.3.4/24
page seq
seq 0 all 0000:4455:6677 0000:1234:5678 10.11.0.1 10.10.0.1/16 5 6 ipv4 udp 1 128 0
seq 1 all 0000:4455:6677 0000:1234:5678 10.11.0.1 10.10.2.1/16 5 6 ipv4 udp 1 128 3
set all seqCnt 2
page stats
random - 随机流模式
set port-id rnd idx offset bitmask
发送随机流, 随机源地址(offset 26) + 随机源端口(offset 34);
page rnd
enable 0 random
set 0 rnd 0 26 ........XXXXXXXXXXXXXXXXXXXXXXXX
set 0 rnd 1 34 XXXXXXXXXXXXXXXX................
page stats
page rnd
enable all random
set all rnd 0 26 ........XXXXXXXXXXXXXXXXXXXXXXXX
set all rnd 1 34 XXXXXXXXXXXXXXXX................
page main
pktgen-dpdk Doc
pktgen-dpdk安装yum install gcc libpcap-devel kernel-devel kernel-headersTOPDIR=/develmkdir -p $TOPDIRcd $TOPDIRgit clone http://dpdk.org/git/dpdkgit clone http://dpdk.org/git/apps/pktgen-dp...
本人最近在学习使用Pktgen构造DDoS的攻击流,就记录了一下Pktgen和DPDK的使用学习笔记
dpdk是Intel发起的高速网络处理工具,能够旁路Linux在用户空间接管CPU、内存和网卡队列,进行高度并行的网络收发包。pktgen-dpdk是Linux内核发包工具的dpdk加强版
一、安装配置
安装过程需要设置hugepage以支持dpdk,编译加载dpdk模块和绑定网卡,编译pktgen-dpdk,运行pktgen-dpdk.
安装 dpdk-20.11,可以参看dpdk-20.11 编译和安装
dpdk-pktgen 有独立的 git 仓库,并且可以基于 meson 和 ninja 进行构建,因此安装过程很简单。
安装过程如下:
$ git clone git://dpdk.org/apps/pktgen-dpdk
$ cd pktgen-dpdk
$ git checkout ma...
原文链接:http://mowblog.com/pktgen简要使用说明/
上一篇通过在虚拟机中安装dpdk和pktgen,基本已经有了一个可以测试的环境,今天主要验证pktgen的-s选项,通过pcap格式的数据文件来构造pktgen端口发送的数据,这个功能实在是太有效果了,可惜的是家里的环境没有那么多网卡,没办法捕获到pktgen端口发出的消息,否则看起来会更加直观。
在贴图之前,先简要记录一...
Pktgen, (Packet Gen-erator) is a software based traffic generator powered by the DPDK fast
packet processing framework.
Some of the features of Pktgen are:
• It is capable of generating 10Gbit wire rate traffic with 64 byte frames.
• It can act as a transmitter or receiver at line rate.
• It has a runtime environment to configure, and start and stop traffic flows.
• It can display real time metrics for a number of ports.
• It can generate packets in sequence by iterating source or destination MAC, IP addresses
or ports.
• It can handle packets with UDP, TCP, ARP, ICMP, GRE, MPLS and Queue-in-Queue.
• It can be controlled remotely over a TCP connection.
• It is configurable via Lua and can run command scripts to set up repeatable test cases.
• The software is fully available under a BSD licence.
错误如下EAL: VFIO support initialized
EAL: Probe PCI driver: mlx5_pci (15b3:101e) device: 0000:12:01.0 (socket 0)
mlx5_pci: no Verbs device matches PCI device 0000:12:01.0, are kernel drivers loaded?
common_mlx5: Failed to load driver = mlx5_pci.
EAL: Requeste