关键词不能为空

当前您在: 主页 > 英语 >

pktgen的安装与使用

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 08:15
tags:

-

2021年2月28日发(作者:pig是什么意思)


pktgen


的安装与使用








0




0




简单的



vim


配置



| Linux


如何在系统启动时自动加载内核


模块





2011-03-31


pktgen


的安装与使用





脚本


CC++


pktgen


的安装与使用



系统环境:


fefora core 12

< br>如果你和我


一样,



pktge n


面前是个新人。


是不是也曾遇到下面的问题:





1

)以为


pktgen



tcpdu mp


一样是


Linux


下的工具软件;





2


)后来,明白了


pktgen


不是工具,而 是内核模块,但是


不知道如何加载;





3


)加载后,却不会使用,并且一度 一位


pktgen


无法与网


络接口


eth0


建立映射关系;



那么,我写下的东西可能对你


学习


pktgen


有所帮助。


因为,


我也在

google


上搜了一同,



没有 很好的对于


pktgen


讲解的文档。



A


首先,


pktgen



Linux


下的一个内核模块,并不是工具软件。 所以,不能通


过在命令行输入


pktgen

的方式运行。




那么,我的系统 默认


pktgen


不是自动加载进内核,所以,如


果你和我有一样的情况,就需要自己手动添加


pktgen

< br>入内


核。



< br>查看


pktgen


是否在内核命令:


$$ lsmod | grep pktgen


加载< /p>


pktgen


模块入内核的命令:



$$ modprobe pktgen


此时,就会

< p>
不禁想到,加载的模块文件到底在哪。我的系统位于


/lib/modules/


内核版本号


/kernel/ net/core/ B


加载成


功后,看看

< br>pktgen


模块的线程是不是已经运行了


(

< p>
更准确的


说,是不是处于


sleep


状态)




$$ ps aux | grep pktgen


看到如


下内容,说明< /p>


pktgen


的线程已经启动了。线程个数与

cpu



数相关,


本机

< p>
cpu


双核,


所以两个线程。


root







2061



0.0



0.0







0






0 ?









S<




Mar30




0:28


[kpktgend_0]



root







2062



0.0



0.0







0






0 ?









S<




Mar30




0:00 [kpktgend_1] C


然后,

< p>


上说可以检测


下面三个文件的信息来了解


pktgen /proc/net/pktgen/pgctrl



/proc/net/pktgen/kpktgend_X











/proc/net/pktgen/ethX


但是,


我发现自己主机中并没



< br>/proc/net/pktgen/ethX



X


代表编号,


例如接口


eth0



eth1



< p>
此时,我以为是不是




pktgen


没有和网络接口


eth0


建立关系呢?难道是模块有问


题?



其 实,并不是这样,因为


pktgen


的运行需要脚本来驱


动。因为我运行了网上的实例脚本


-1-1


, 但是也


没有获得预期的结果。




/proc/net/pktgen/ethX


还是不存在。一度认 为


pktgen.c


编码有


问题,


因为我看到了本机中,


之有


eth0


网络接口。


命令如下:



$$ dmesg | grep pktgen


输出结果:



pktgen: no such netdevice:



下载地址:



ftp:///pub/Linux/net- development/pktgen-testing/exa


mples/ D


最后我终于发现,既不是源码


pktgen.c


的问题,也


不是


pktgen


模块的问题。


原因在于,


驱动脚本


-1 -1


中的网络接口配置与我的本机的不符所致。




-1-1


源码如下:



#! /bin/sh #modprobe pktgen


function pgset() {







local result






echo $$1 > $$PGDEV






result=`cat


$$PGDEV | fgrep







if [












cat $$PGDEV | fgrep Result:







fi



} function pg() {







echo inject > $$PGDEV







cat $$PGDEV



} # Config Start Here


--------------------- -------------------------------------- # thread config



# Each CPU has own thread. Two CPU exammple. We add eth1,


eth2 respectivly. PGDEV=/proc/net/pktgen/kpktgend_0





echo



pgset





echo



pgset




#


就在这一句,

< br>默认的配置网络接


口为


eth1



但是我的本机并没有这个接口,


而是


eth0



所以,


应该自己手动修改。






echo



pgset



# delay 0 means maximum speed. CLONE_SKB=


1000000



# NIC adds 4 bytes CRC



PKT_SIZE=



#COUNT=



COUNT=



DELAY=





echo



pgset



pgset



pgset



pgset



pgset



pgset



00:04:23:08:91:dc



PGDEV=/proc/net/pktgen/pgctrl echo


stop



pgset



echo


驱动脚本也有自己的一些 命令方式,或者语法。下面列出一


些规则:




同时,我自己也要进一步学习,也不是全懂。



** Pgcontrol


commands: start



stop ** Thread commands: add_device



rem_device_all



max_before_softirq ** Device commands: count



clone_skb



debug frags



delay src_mac_count



dst_mac_count pkt_size



min_pkt_size



max_pkt_size mpls udp_src_min



udp_src_max udp_dst_min



udp_dst_max flag





IPSRC_RND





TXSIZE_RND


-


-


-


-


-


-


-


-



本文更新与2021-02-28 08:15,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/679817.html

pktgen的安装与使用的相关文章