參考博客
Pktgen概述
- Pktgen,(Packet Gen-erator)是一個基於DPDK的軟件框架,發包速率可達線速。
- 提供運行時管理,端口實時測量。
- 能夠控制 UDP, TCP, ARP, ICMP, GRE, MPLS and Queue-in-Queue等包。
- 能夠經過TCP進行遠程控制。
Pktgen官網html
安裝使用過程
- 版本:Ubuntu 16.04
- DPDKL 18.02
- cpu配置:
安裝DPDK依賴:
- DPDK安裝依賴項合集 環境合集
- 安裝DPDK:Quick Start
$ git clone git://dpdk.org/dpdk or:git clone http://dpdk.org/git/dpdk $ git clone git://dpdk.org/apps/pktgen-dpdk or: $ git clone http://dpdk.org/git/apps/pktgen-dpdk
設置DPDK的環境變量:
$ export RTE_SDK=<DPDKInstallDir>//DPDK的安裝目錄 $ export RTE_TARGET=x86_64-native-linuxapp-gcc $ cd $RTE_SDK $ make install T=x86_64-native-linuxapp-gcc
安裝pktgen
$ cd <PktgenInstallDir>//進入pktgen的安裝目錄 $ make
修改cfg/default
- 修改網卡的設備號,可在dpdk配置腳本中查詢:
# cd dpdk/usertools # ./dpdk-setup.sh
-
修改DPDK EAL 的命令行參數linux
-
修改Pktgen的命令行參數git
description = 'A Pktgen default simple configuration' # Setup configuration setup = { 'exec': ( 'sudo', '-E' ), 'devices': ( '01:00.0 01:00.1' //修改網卡設備PCI號,本機綁定了兩張10G網卡 ), 'opts': ( '-b igb_uio' ) } # Run command and options run = { 'exec': ( 'sudo', '-E' ), # Application name and use app_path to help locate the app 'app_name': 'pktgen', # using (sdk) or (target) for specific variables # add (app_name) of the application # Each path is tested for the application 'app_path': ( './app/%(target)s/%(app_name)s', '%(sdk)s/%(target)s/app/%(app_name)s', ), 'dpdk': ( '-l 0-2',//使用了三個邏輯核 '-n 2',//內存通道數爲2 '--proc-type auto', '--log-level 7', '--socket-mem 1024',//大頁爲1024 '--file-prefix pg' ), 'blacklist': ( #'-b 81:00.0 -b 81:00.1 -b 81:00.2 -b 81:00.3', #'-b 85:00.0 -b 85:00.1 -b 85:00.2 -b 85:00.3', '-b 81:00.0 -b 81:00.1', '-b 85:00.0 -b 85:00.1', '-b 83:00.0' ), 'app': ( '-T', '-P', '--crc-strip', '-m [1].0',//邏輯覈對1應端口號0,邏輯核0號做爲主核不可綁定 '-m [2].1'//邏輯覈對1應端口號0,邏輯核0號做爲主核不可綁定 #'-m [19:20].2', #'-m [21:22].3' ), 'misc': ( '-f', 'themes/black-yellow.theme' ) }
$ cd <PktgenInstallDir>/tools $ ./run.py -s default # setup system using the cfg/default.cfg file $ cd <PktgenInstallDir>/tools $ run.py default
若沒有出現正確的配置選項,可參照博客: http://www.cnblogs.com/ZCplayground/p/9328735.htmlapp
https://mails.dpdk.org/archives/users/2018-July/003269.html框架
效果
-
用網線把兩個網卡接口相連,運行
socket
-
顯示包轉發速率到了每秒千萬級別,已徹底達到高速發包的要求ui