pktgen的安装与使用.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《pktgen的安装与使用.doc》由会员分享,可在线阅读,更多相关《pktgen的安装与使用.doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流pktgen的安装与使用【精品文档】第 11 页pktgen的安装与使用 0顶0踩简单的 vim 配置 | Linux如何在系统启动时自动加载内核模块 2011-03-31pktgen的安装与使用 L脚本CC+pktgen的安装与使用 系统环境:fefora core 12 如果你和我一样,在pktgen面前是个新人。是不是也曾遇到下面的问题: (1)以为pktgen和tcpdump一样是Linux下的工具软件; (2)后来,明白了pktgen不是工具,而是内核模块,但是不知道如何加载; (3)加载后,却不会使用,并且一度一位pktgen无法与网络接口e
2、th0建立映射关系; 那么,我写下的东西可能对你学习pktgen有所帮助。因为,我也在google上搜了一同,却没有很好的对于pktgen讲解的文档。 A 首先,pktgen是Linux下的一个内核模块,并不是工具软件。所以,不能通过在命令行输入pktgen的方式运行。 那么,我的系统默认pktgen不是自动加载进内核,所以,如果你和我有一样的情况,就需要自己手动添加pktgen入内核。 查看pktgen是否在内核命令: $ lsmod | grep pktgen 加载pktgen模块入内核的命令: $ modprobe pktgen 此时,就会不禁想到,加载的模块文件到底在哪。我的系统位于
3、/lib/modules/内核版本号/kernel/net/core/pktgen.ko B 加载成功后,看看pktgen模块的线程是不是已经运行了(更准确的说,是不是处于sleep状态)。 $ ps aux | grep pktgen 看到如下内容,说明pktgen的线程已经启动了。线程个数与cpu核数相关,本机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 然后,pktgen.txt上说可以检测下面三
4、个文件的信息来了解pktgen /proc/net/pktgen/pgctrl /proc/net/pktgen/kpktgend_X /proc/net/pktgen/ethX 但是,我发现自己主机中并没有 /proc/net/pktgen/ethX(X代表编号,例如接口eth0或eth1)。此时,我以为是不是 pktgen没有和网络接口eth0建立关系呢?难道是模块有问题? 其实,并不是这样,因为pktgen的运行需要脚本来驱动。因为我运行了网上的实例脚本pktgen.conf-1-1,但是也没有获得预期的结果。 /proc/net/pktgen/ethX还是不存在。一度认为pktgen.
5、c编码有问题,因为我看到了本机中,之有eth0网络接口。命令如下: $ dmesg | grep pktgen 输出结果: pktgen: no such netdevice: eth1 pktgen.conf-1-1下载地址: ftp:/robur.slu.se/pub/Linux/net-development/pktgen-testing/examples/ D 最后我终于发现,既不是源码pktgen.c的问题,也不是pktgen模块的问题。原因在于,驱动脚本pktgen.conf-1-1中的网络接口配置与我的本机的不符所致。 pktgen.conf-1-1源码如下: #! /bin/s
6、h #modprobe pktgen function pgset() local result echo $1 > $PGDEV result=cat $PGDEV | fgrep Result: OK: if $result = ; then 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
7、, eth2 respectivly. PGDEV=/proc/net/pktgen/kpktgend_0 echo Removing all devices pgset rem_device_all echo Adding eth1 pgset add_device eth1 # 就在这一句,默认的配置网络接口为eth1,但是我的本机并没有这个接口,而是eth0。所以,应该自己手动修改。 echo Setting max_before_softirq 10000 pgset max_before_softirq 10000 # device config # delay 0 means ma
8、ximum speed. CLONE_SKB=clone_skb 1000000 # NIC adds 4 bytes CRC PKT_SIZE=pkt_size 60 # COUNT 0 means forever #COUNT=count 0 COUNT=count 10000000 DELAY=delay 0 PGDEV=/proc/net/pktgen/eth0 echo Configuring $PGDEV pgset $COUNT pgset $CLONE_SKB pgset $PKT_SIZE pgset $DELAY pgset dst 10.10.11.2 pgset dst
9、_mac 00:04:23:08:91:dc # Time to run PGDEV=/proc/net/pktgen/pgctrl echo Running. ctrlC to stop pgset start echo Done # Result can be vieved in /proc/net/pktgen/eth1 E 驱动脚本也有自己的一些命令方式,或者语法。下面列出一些规则: 同时,我自己也要进一步学习,也不是全懂。 * Pgcontrol commands: start stop * Thread commands: add_device rem_device_all max
10、_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 IPDST_RND UDPSRC_RND UDPDST_RND MACSRC_RND MACDST_RND dst_min dst_max src_min src_max dst
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pktgen 安装 使用
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内