Pktgen-DPDK 简介
Pktgen(Packet Gen-erator)是一个基于软件的流量生成器,由 DPDK 快速数据包处理框架提供支持。
Pktgen 的一些功能是:
kernel.debug 安装
yum install -y kernel-devel
cd /lib/modules/3.10.0-693.21.1.el7.x86_64/
rm -fr build
ln -s /usr/src/kernels/3.10.0-693.21.1.el7.x86_64/ build
DPDK 安装
以 dpdk17.11.4 为例
代码下载:
wget http://fast.dpdk.org/rel/dpdk-17.11.4.tar.xz
解压缩 tar -Jxvf dpdk-17.11.4.tar.xz
cd ./dpdk-stable-17.11.4
export RTE_SDK=`pwd`
export RTE_TARGET=x86_64-native-linuxapp-gcc
export EXTRA_CFLAGS=’-O2 -g’
make install T=x86_64-native-linuxapp-gcc
Pktgen-DPDK 安装
以 pktgen-dpdk-3.4.9 为例
代码下载:
wget http://git.dpdk.org/apps/pktgen-dpdk/snapshot/pktgen-3.4.9.tar.gz
解压缩 tar -zxvf pktgen-3.4.9.tar.gz
cd ./pktgen-3.4.9
配置大页个数
echo 512 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
安装 dpdk 工具
yum install -y dpdk-tools
启动 igb_uio 驱动
modprobe uio
insmod ./dpdk-17.11.4/x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
绑定 igb_uio ( 需要在控制台下执行 )
.dpdk-devbind -b igb_uio 0000:00:03.0 (网卡pci可用 dpdk-devbind.py -s 查看)
启动 Pktgen
cd ./pktgen-3.4.9( 必须在此目录下执行 )
./app/x86_64-native-linuxapp-gcc/pktgen -c 0x3 -n 4 –proc-type auto –socket-mem 1024 — -T -P -m “[1:1].0”
参数解释( 详细可用 -h 参数查看 )
-c cpu 核的掩码信息 16进制0x3表示使用第一个和第二个核
-n 通道个数
–proc-type 进程类型 一般默认 auto
–socket-mem pktgen使用的内存若有多个numa用 ‘,’ 隔开
-T 彩色输出
-P 所有端口开启混杂模式
-m 网口0的首发队列配置
程序内部命令( 详细可用 help 命令查看 )
port 发包,收包是默认动作
start
port 停止发包
设置源目的 mac 地址
set src|dst mac
设置源目的 ip 地址
set [src|dst] ip
设置发包类型
set type ipv4|ipv6|vlan|arp
设置协议类型
set proto udp|tcp|icmp
设置包大小
set size
设置最大发送速率的百分比(默认全速全速)