已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
pktgen的安装与使用 0顶0踩简单的 vim 配置 | Linux如何在系统启动时自动加载内核模块 2011-03-31pktgen的安装与使用 L脚本CC+pktgen的安装与使用 系统环境:fefora core 12 如果你和我一样,在pktgen面前是个新人。是不是也曾遇到下面的问题: (1)以为pktgen和tcpdump一样是Linux下的工具软件; (2)后来,明白了pktgen不是工具,而是内核模块,但是不知道如何加载; (3)加载后,却不会使用,并且一度一位pktgen无法与网络接口eth0建立映射关系; 那么,我写下的东西可能对你学习pktgen有所帮助。因为,我也在google上搜了一同,却没有很好的对于pktgen讲解的文档。 A 首先,pktgen是Linux下的一个内核模块,并不是工具软件。所以,不能通过在命令行输入pktgen的方式运行。 那么,我的系统默认pktgen不是自动加载进内核,所以,如果你和我有一样的情况,就需要自己手动添加pktgen入内核。 查看pktgen是否在内核命令: $ lsmod | grep pktgen 加载pktgen模块入内核的命令: $ modprobe pktgen 此时,就会不禁想到,加载的模块文件到底在哪。我的系统位于 /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上说可以检测下面三个文件的信息来了解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.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/sh #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, 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 maximum 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 pgset dst_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_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_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 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 sets IP destination address (BEWARE! This generator is very aggressive!) pgset dst_min Same as dst pgset dst_max 54 Set the maximum destination IP. pgset src_min Set the minimum (or only) source IP. pgset src_max 54 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: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 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), 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 UDP 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 NULL) 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 can 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 p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省湛江市2026年普通高考测试生物(二)+答案
- 2025文华学院教师招聘考试题目及答案
- 2025江西现代职业技术学院教师招聘考试题目及答案
- 2025成都体育学院教师招聘考试题目及答案
- 连云港语文试题及答案
- 北京市海淀区实验幼儿园招聘建设笔试备考题库及答案解析
- 2026年4月江苏扬州市江都区教育系统事业单位招聘教师13人建设笔试备考题库及答案解析
- 2026贵州普安红集团黔叶农业开发有限公司市场经理招聘1人建设笔试备考试题及答案解析
- 2026对外经济贸易大学附属小学招聘建设考试参考试题及答案解析
- 2025年安阳市龙安区城管协管招聘考试试题及答案解析
- 新高考教学教研联盟(长郡二十校)2026届高三年级4月第二次联考英语试卷(含答案详解)
- 聘任委员会工作制度
- 浙江省杭州二中2025学年第二学期高三年级三月月考语文+答案
- JGJT303-2013 渠式切割水泥土连续墙技术规程
- 海上渔排租赁协议
- 《诗经》中的天文与地理
- 2023年中国水产科学研究院东海水产研究所招聘21人笔试备考试题及答案解析
- 2023年医技类-微生物检验技术(副高)考试历年真题拔高带答案必考
- 小儿体液平衡特点与液体疗法
- GB/T 9792-2003金属材料上的转化膜单位面积膜质量的测定重量法
- GB/T 12689.1-2010锌及锌合金化学分析方法第1部分:铝量的测定铬天青S-聚乙二醇辛基苯基醚-溴化十六烷基吡啶分光光度法、CAS分光光度法和EDTA滴定法
评论
0/150
提交评论