Pktgen-DPDK 简介
Pktgen(Packet Gen-erator)是一个基于软件的流量生成器,由 DPDK 快速数据包处理框架提供支持。
Pktgen 的一些功能是:
- 它能够生成具有 64 字节帧的 10Gbit 线速流量。
- 它可以以线速充当发送器或接收器。
- 它有一个运行时环境来配置启动和停止流量。
- 它可以显示多个端口的实时指标。
- 它可以通过迭代源或目标 MAC,IP 地址或端口来按顺序生成数据包。
- 它可以处理 UDP、TCP、ARP、ICMP、GRE、MPLS 和 Queue-in-Queue 的数据包。
- 它可以通过 TCP 连接远程控制。
- 它可以通过 Lua 进行配置,并且可以运行命令脚本来设置可重复的测试用例。
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
make
其他配置
配置大页个数
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 停止发包 stop 设置源目的 mac 地址 set 设置源目的 ip 地址 set 设置发包类型 set 设置协议类型 设置包大小 set 设置最大发送速率的百分比(默认全速全速) set 本文作者:孙文杰
set
用户评论(2)
滴滴云blog系统页面布局丑陋不堪不知道是不是mac 系统safari 浏览器的问题还是bug,两边的宽边真是浪费
马上改版后的新版就要上线了,敬请期待哈