pktgen的安装与使用.doc

上传人:1595****071 文档编号:33865714 上传时间:2022-08-12 格式:DOC 页数:11 大小:55KB
返回 下载 相关 举报
pktgen的安装与使用.doc_第1页
第1页 / 共11页
pktgen的安装与使用.doc_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《pktgen的安装与使用.doc》由会员分享,可在线阅读,更多相关《pktgen的安装与使用.doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

11、_mac src_mac clear_counters dst6 src6 flows flowlen F 再写一些实例。 pgset clone_skb 1 sets the number of copies of the same packet pgset clone_skb 0 use single SKB for all transmits pgset pkt_size 9014 sets packet size to 9014 pgset frags 5 packet will consist of 5 fragments pgset count 200000 sets number

12、 of packets to send, set to zero for continuous sends until explicitly stopped. pgset delay 5000 adds delay to hard_start_xmit(). nanoseconds pgset dst 10.0.0.1 sets IP destination address (BEWARE! This generator is very aggressive!) pgset dst_min 10.0.0.1 Same as dst pgset dst_max 10.0.0.254 Set th

13、e maximum destination IP. pgset src_min 10.0.0.1 Set the minimum (or only) source IP. pgset src_max 10.0.0.254 Set the maximum source IP. pgset dst6 fec0:1 IPV6 destination address pgset src6 fec0:2 IPV6 source address pgset dstmac 00:00:00:00:00:00 sets MAC destination address pgset srcmac 00:00:00

14、:00:00:00 sets MAC source address pgset queue_map_min 0 Sets the min value of tx queue interval pgset queue_map_max 7 Sets the max value of tx queue interval, for multiqueue devices To select queue 1 of a given device, use queue_map_min=1 and queue_map_max=1 pgset src_mac_count 1 Sets the number of

15、MACs well range through. The minimum MAC is what you set with srcmac. pgset dst_mac_count 1 Sets the number of MACs well range through. The minimum MAC is what you set with dstmac. pgset flag name Set a flag to determine behaviour. Current flags are: IPSRC_RND #IP Source is random (between min/max),

16、 IPDST_RND, UDPSRC_RND, UDPDST_RND, MACSRC_RND, MACDST_RND MPLS_RND, VID_RND, SVID_RND QUEUE_MAP_RND # queue map random QUEUE_MAP_CPU # queue map mirrors smp_processor_id() pgset udp_src_min 9 set UDP source port min, If < udp_src_max, then cycle through the port range. pgset udp_src_max 9 set UD

17、P source port max. pgset udp_dst_min 9 set UDP destination port min, If < udp_dst_max, then cycle through the port range. pgset udp_dst_max 9 set UDP destination port max. pgset mpls 0001000a,0002000a,0000000a set MPLS labels (in this example outer label=16,middle label=32, inner label=0 (IPv4 NU

18、LL) Note that there must be no spaces between the arguments. Leading zeros are required. Do not set the bottom of stack bit, thats done automatically. If you do set the bottom of stack bit, that indicates that you want to randomly generate that address and the flag MPLS_RND will be turned on. You ca

19、n have any mix of random and fixed labels in the label stack. pgset mpls 0 turn off mpls (or any invalid argument works too!) pgset vlan_id 77 set VLAN ID 0-4095 pgset vlan_p 3 set priority bit 0-7 (default 0) pgset vlan_cfi 0 set canonical format identifier 0-1 (default 0) pgset svlan_id 22 set SVL

20、AN ID 0-4095 pgset svlan_p 3 set priority bit 0-7 (default 0) pgset svlan_cfi 0 set canonical format identifier 0-1 (default 0) pgset vlan_id 9999 > 4095 remove vlan and svlan tags pgset svlan 9999 > 4095 remove svlan tag pgset tos XX set former IPv4 TOS field (e.g. tos 28 for AF11 no ECN, default 00) pgset traffic_class XX set former IPv6 TRAFFIC CLASS (e.g. traffic_class B8 for EF no ECN, default 00) pgset stop aborts injection. Also, C aborts generator. 0 顶0 踩分享到:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁