红联Linux门户
Linux帮助

在Ubuntu14.04LTS上安装pktgen详细教程

发布时间:2016-08-26 09:43:50来源:linux网站作者:温兴泵
step1:
下载最新版的DPDK和pktgen,官网地址(http://www.dpdk.org/download)
在Ubuntu14.04LTS上安装pktgen详细教程
或者可以用我的测试的dpdk16.04和pktgen2.9.17 (百度网盘地址:http://pan.baidu.com/s/1mhDn1Ss)
 
step2:
把pktgen解压放到dpdk16.04的examples文件夹里面。
在Ubuntu14.04LTS上安装pktgen详细教程
 
step3:
首先安装DPDK16.04
(根据自己电脑的特性安装,下面是参考)
/home/dpdk/wenxingbeng/dpdk-16.04/tools# ./setup.sh      #用自带脚本安装
接下来分别选择:
[15] x86_64-native-linuxapp-gcc
[17] Insert IGB UIO module
[20] Setup hugepage mappings for non-NUMA systems     #输入1024
[23] Bind Ethernet device to IGB UIO module #输入 0000:01:00.0  0000:01:00.1
(界面如下!需要说的的是需要dpdk指定的网卡才能运行!)
Network devices using DPDK-compatible driver
============================================
Network devices using kernel driver
===================================
0000:01:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' if=eth4 drv=ixgbe unused=igb_uio 
0000:01:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection' if=eth3 drv=ixgbe unused=igb_uio 
0000:03:00.0 'RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller' if=eth0 drv=r8169 unused=igb_uio *Active*
Other network devices
=====================
Enter PCI address of device to bind to IGB UIO driver: 0000:01:00.0  0000:01:00.1
 
step4: 指定环境变量RTE_SDK和RTE_TARGET
export RTE_SDK=/home/dpdk/wenxingbeng/dpdk-16.04   #dpdk安装的文件夹
export RTE_TARGET=x86_64-native-linuxapp-gcc #你所指定的编译器
 
step5: 安装 libpcap-dev
root@dpdk-All-Series:/home/dpdk/wenxingbeng/dpdk-16.04/examples/pktgen-2.9.17# sudo apt-get install libpcap-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
libpcap-dev 已经是最新的版本了。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 711 个软件包未被升级。
一般都需要安装 linux-headers-版本号-generic  ,但是我亲测的时候并不需要!有问题就安装吧!
(sudo apt-get install linux-headers-4.2.0-23-generic)
如果你不知道版本号 就只输入 sudo apt-get install linux-headers   然后会给出版本列表,安装即可!
 
step6: 进入examples/pktgen-2.9.17 
输入make
 
step7: 进入examples/pktgen-2.9.17 
打开doith.sh文件  在最后一行输入
./app/app/x86_64-native-linuxapp-gcc/pktgen -c 0x1f -n 3 -- -P -m "[1:3].0, [2:4].1"
在Ubuntu14.04LTS上安装pktgen详细教程
在Ubuntu14.04LTS上安装pktgen详细教程
(启动的位置必须和pktgen.lua文件在同一目录下,不然会报错!)
在Ubuntu14.04LTS上安装pktgen详细教程
Copyright (c) <2010-2016>, Intel Corporation. All rights reserved.
Pktgen created by: Keith Wiles -- >>> Powered by Intel® DPDK <<<</div>
Lua 5.3.2  Copyright (C) 1994-2015 Lua.org, PUC-Rio
lua-shell: module 'Pktgen' not found:
no field package.preload['Pktgen']
no file '/usr/local/share/lua/5.3/Pktgen.lua'
no file '/usr/local/share/lua/5.3/Pktgen/init.lua'
no file '/usr/local/lib/lua/5.3/Pktgen.lua'
no file '/usr/local/lib/lua/5.3/Pktgen/init.lua'
no file './Pktgen.lua'
no file './Pktgen/init.lua'
no file '/usr/local/lib/lua/5.3/Pktgen.so'
no file '/usr/local/lib/lua/5.3/loadall.so'
no file './Pktgen.so'
stack traceback:
[C]: in function 'require'
pktgen: /home/dpdk/wenxingbeng/dpdk-16.04/examples/pktgen-2.9.17/app/lpktgenlib.c:3164: _lua_openlib: Assertion `dolibrary(L, "Pktgen") == 0' failed.
./doit.sh: 行 63:  4293 已放弃               (核心已转储) ./app/app/x86_64-native-linuxapp-gcc/pktgen -c 0x1f -n 3 -- -P -m "[1:3].0, [2:4].1"
 
step8: 运行pktgen
在Ubuntu14.04LTS上安装pktgen详细教程
 
step9: 输入start0 开始发包
在Ubuntu14.04LTS上安装pktgen详细教程
quit命令是退出
stop是停止发包。
 
更多内容详见官方技术文档:http://pktgen.readthedocs.org/en/latest/
在Ubuntu14.04LTS上安装pktgen详细教程
 
附件:Pktgen在默认条件下的发包流程图概要
在Ubuntu14.04LTS上安装pktgen详细教程
 
修改发包的内容方法
在Ubuntu14.04LTS上安装pktgen详细教程
输入一下内容:
在Ubuntu14.04LTS上安装pktgen详细教程
# seq dst-Mac src-Mac dst-IP src-IP/netmask sport dport ipv4|ipv6|vlan udp|tcp|icmp vid pktsize
seq 0 0 0000:4455:6677 0000:1234:5678 211.11.0.0 10.10.0.1/16 5 6 ipv4 udp 1 64
seq 1 0 0000:4455:6677 0000:1234:5678 211.11.0.1 10.10.0.1/16 5 6 ipv4 udp 1 128
seq 2 0 0000:4455:6677 0000:1234:5678 211.11.0.2 10.10.0.1/16 5 6 ipv4 udp 1 192
seq 3 0 0000:4455:6677 0000:1234:5678 211.11.0.3 10.10.0.1/16 5 6 ipv4 udp 1 256
seq 4 0 0000:4455:6677 0000:1234:5678 211.11.0.4 10.10.0.1/16 5 6 ipv4 udp 1 320
seq 0 1 0000:4455:6677 0000:1234:5678 211.11.1.0 10.10.0.1/16 5 6 ipv4 udp 1 64
seq 1 1 0000:4455:6677 0000:1234:5678 211.11.1.1 10.10.0.1/16 5 6 ipv4 udp 1 128
seq 2 1 0000:4455:6677 0000:1234:5678 211.11.1.2 10.10.0.1/16 5 6 ipv4 udp 1 192
seq 3 1 0000:4455:6677 0000:1234:5678 211.11.1.3 10.10.0.1/16 5 6 ipv4 udp 1 256
seq 4 1 0000:4455:6677 0000:1234:5678 211.11.1.4 10.10.0.1/16 5 6 ipv4 udp 1 320
set 0 seqCnt 5
set 1 seqCnt 5
 
每一个端口法五种类型的包
然后再启动脚本里 doit.sh文件里面 面修改
./app/app/x86_64-native-linuxapp-gcc/pktgen -c 0x1f -n 1 --proc-type auto --socket-mem 2048 --file-prefix pg -- -p 0x3 -P -m "[1:3].0, [2:4].1"  -f test/set_seq_wxb.pkt
在Ubuntu14.04LTS上安装pktgen详细教程
 
本文永久更新地址:http://www.linuxdiyf.com/linux/23636.html