1、Linux内核自带的高性能网络测试工具PKTGEN
1.1 首先加载PKTGEN 内核模块
sudo modprobe pktgen #加载pktgen模块
1.2 pktgen启动内核线程和/proc文件系统的交互文件
harbo@harbo-virtual-machine:~$ ps aux | grep pkt
root 2625 0.0 0.0 0 0 ? S 11:17 0:00 [kpktgend_0]
root 2626 0.0 0.0 0 0 ? S 11:17 0:00 [kpktgend_1]
root 2627 0.0 0.0 0 0 ? S 11:17 0:00 [kpktgend_0]
root 2628 0.0 0.0 0 0 ? S 11:17 0:00 [kpktgend_1]
root 2629 0.0 0.0 0 0 ? S 11:17 0:00 [kpktgend_0]
root 2630 0.0 0.0 0 0 ? S 11:17 0:00 [kpktgend_1]
harbo 3257 0.0 0.0 17864 2596 pts/1 S+ 11:45 0:00 grep --color=auto pkt
----------------------------------------------------------------
----------------------------------------------------------------
harbo@harbo-virtual-machine:~$ ls /proc/net/pktgen/
kpktgend_0 kpktgend_1 pgctrl
harbo@harbo-virtual-machine:~$
1.3 在/root目录下创建一个可执行的的pktgen.sh文件,
#! /bin/bash
# 定义一个工具函数,方便后面配置各种测试选项
function pgset() {
local result
echo $1 > $PGDEV
result=`cat $PGDEV | fgrep "Result: OK:"`
if [ "$result" = "" ]; then
cat $PGDEV | fgrep Result:
fi
}
# 为0号线程绑定ens33网卡
PGDEV=/proc/net/pktgen/kpktgend_0
pgset "rem_device_all" # 清空网卡绑定
pgset "add_device ens33" # 添加ens33网卡
# 配置ens33网卡的测试选项
PGDEV=/proc/net/pktgen/ens33
pgset "count 1000000" # 总发包数量
pgset "delay 5000" # 不同包之间的发送延迟(单位纳秒)
pgset "clone_skb 0" # SKB包复制
pgset "pkt_size 64" # 网络包大小
pgset "dst 192.168.40.1" # 目的IP
pgset "dst_mac 00:0c:29:5c:8f:ec" # 目的MAC
# 启动测试
PGDEV=/proc/net/pktgen/pgctrl
pgset "start"
1.4 将pk