


版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、pktgen 的安裝與使用0 頂0 踩簡(jiǎn)單的vim配置| Linux 如何在系統(tǒng)啟動(dòng)時(shí)自動(dòng)加載內(nèi)核模塊2011-03-31pktgen的安裝與使用L腳本CC+pktgen 的安裝與使用系統(tǒng)環(huán)境: fefora core 12 如果你和我一樣,在 pktgen 面前是個(gè)新人。 是不是也曾遇到下面的問(wèn)題:( 1)以為 pktgen 和 tcpdump 一樣是 Linux 下的工具軟件;( 2)后來(lái),明白了 pktgen 不是工具,而是內(nèi)核模塊,但是不知道如何加載;(3)加載后,卻不會(huì)使用,并且一度一位pktgen 無(wú)法與網(wǎng)絡(luò)接口 eth0 建立映射關(guān)系;那么,我寫(xiě)下的東西可能對(duì)你學(xué)習(xí) pktgen
2、 有所幫助。 因?yàn)?,我也?google 上搜了一同, 卻沒(méi)有很好的對(duì)于 pktgen 講解的文檔。 A 首先, pktgen 是Linux 下的一個(gè)內(nèi)核模塊,并不是工具軟件。所以,不能通過(guò)在命令行輸入pktgen 的方式運(yùn)行。那么,我的系統(tǒng)默認(rèn)pktgen 不是自動(dòng)加載進(jìn)內(nèi)核,所以,如果你和我有一樣的情況,就需要自己手動(dòng)添加pktgen 入內(nèi)核。查看pktgen是否在內(nèi)核命令:$ lsmod | grep pktgen加載pktgen模塊入內(nèi)核的命令:$ modprobe pktgen此時(shí),就會(huì)不禁想到,加載的模塊文件到底在哪。我的系統(tǒng)位于/lib/modules/ 內(nèi)核版本號(hào) /kerne
3、l/net/core/pktgen.ko B加載成功后,看看pktgen 模塊的線程是不是已經(jīng)運(yùn)行了(更準(zhǔn)確的說(shuō),是不是處于sleep 狀態(tài))。 $ ps aux | grep pktgen 看到如下內(nèi)容,說(shuō)明pktgen的線程已經(jīng)啟動(dòng)了。線程個(gè)數(shù)與cpu核數(shù)相關(guān),本機(jī) cpu 雙核,所以兩個(gè)線程。root20610.00.000 ?S<Mar300:28kpktgend_0root20620.00.000 ?S<Mar300:00 kpktgend_1 C然后,pktgen.txt 上說(shuō)可以檢測(cè)下面三個(gè)文件的信息來(lái)了解pktgen /proc/net/pktgen
4、/pgctrl/proc/net/pktgen/kpktgend_X/proc/net/pktgen/ethX但是,我發(fā)現(xiàn)自己主機(jī)中并沒(méi)有 /proc/net/pktgen/ethX( X 代表編號(hào),例如接口 eth0或 eth1)。此時(shí),我以為是不是pktgen 沒(méi)有和網(wǎng)絡(luò)接口eth0 建立關(guān)系呢?難道是模塊有問(wèn)題? 其實(shí),并不是這樣,因?yàn)?pktgen 的運(yùn)行需要腳本來(lái)驅(qū)動(dòng)。因?yàn)槲疫\(yùn)行了網(wǎng)上的實(shí)例腳本 pktgen.conf-1-1 ,但是也沒(méi)有獲得預(yù)期的結(jié)果。/proc/net/pktgen/ethX 還是不存在。一度認(rèn)為pktgen.c 編碼有問(wèn)題,因?yàn)槲铱吹搅吮緳C(jī)中,之有 eth0
5、網(wǎng)絡(luò)接口。 命令如下:$ dmesg | grep pktgen 輸出結(jié)果: pktgen: no such netdevice: "eth1" pktgen.conf-1-1 下載地址: ftp:/robur.slu.se/pub/Linux/net-development/pktgen-testing/exa mples/ D 最后我終于發(fā)現(xiàn),既不是源碼 pktgen.c 的問(wèn)題,也不是 pktgen 模塊的問(wèn)題。原因在于,驅(qū)動(dòng)腳本 pktgen.conf-1-1中的網(wǎng)絡(luò)接口配置與我的本機(jī)的不符所致。pktgen.conf-1-1 源碼如下:#! /bin/sh #mo
6、dprobe pktgenfunction pgset() local resultecho $1 > $PGDEVresult=cat$PGDEV | fgrep "Result: OK:"if "$result" = "" ; thencat $PGDEV | fgrep Result:fi function pg() echo inject > $PGDEVcat $PGDEV # Config Start Here- # thread config# Each CPU has own thread.
7、 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"# 就在這一句, 默認(rèn)的配置網(wǎng)絡(luò)接口為 eth1,但是我的本機(jī)并沒(méi)有這個(gè)接口,而是 eth0。所以,應(yīng)該自己手動(dòng)修改。echo "Setting max_befor
8、e_softirq 10000" pgset "max_before_softirq 10000" # device config# delay 0 means maximum speed. CLONE_SKB="clone_skb 1000000"# NIC adds 4 bytes CRCPKT_SIZE="pkt_size 60" # COUNT 0 means forever#COUNT="count 0"COUNT="count 10000000"DELAY="de
9、lay 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 ec
10、ho "Running. ctrlC to stop"pgset "start"echo "Done" # Result can be vieved in /proc/net/pktgen/eth1 E驅(qū)動(dòng)腳本也有自己的一些命令方式,或者語(yǔ)法。下面列出一些規(guī)則:同時(shí),我自己也要進(jìn)一步學(xué)習(xí),也不是全懂。* Pgcontrolcommands: startstop * Thread commands: add_devicerem_device_allmax_before_softirq * Device commands: countcl
11、one_skbdebug fragsdelay src_mac_countdst_mac_count pkt_sizemin_pkt_sizemax_pkt_size mpls udp_src_minudp_src_max udp_dst_minudp_dst_max flagIPSRC_RNDTXSIZE_RNDIPDST_RNDUDPSRC_RNDUDPDST_RNDMACSRC_RNDMACDST_RND dst_mindst_max src_minsrc_max dst_macsrc_mac clear_counters dst6src6 flowsflowlen F再寫(xiě)一些實(shí)例。pg
12、set "clone_skb 1"sets thenumber of copies of the same packetpgset "clone_skb 0"use single SKB for all transmitspgset "pkt_size 9014"sets packet size to 9014pgset "frags 5"packet will consist of 5 fragmentspgset "count 200000"sets number of packets to
13、 send, set tozerofor continuous sends untilexplicitly stopped. pgset "delay 5000"adds delay tohard_start_xmit(). nanoseconds pgset "dst "sets IPdestination address(BEWARE! This generator isvery aggressive!) pgset "dst_min "Sameas dstpgset "dst_max 1
14、54"Set the maximumdestination IP.pgset "src_min "Set the minimum (oronly) source IP.pgset "src_max 54"Set the maximumsource IP.pgset "dst6 fec0:1"IPV6 destination addresspgset "src6 fec0:2"IPV6 source addresspgset "dstmac 00:00
15、:00:00:00:00"sets MAC destinationaddresspgset "srcmac 00:00:00:00:00:00"sets MAC source addresspgset "queue_map_min 0" Sets the min value of tx queue intervalpgset "queue_map_max 7" Sets the max value of tx queue interval, for multiqueue devicesTo select queue 1 of
16、 a givendevice,use queue_map_min=1 andqueue_map_max=1 pgset "src_mac_count 1" Sets the number ofMACs we'll range through.The 'minimum' MAC is what youset with srcmac. pgset "dst_mac_count 1" Sets the number of MACs we'll range through.The 'minimum' MAC is
17、what youset with dstmac. pgset "flag name"Set a flag todetermine behaviour.Current flagsare: IPSRC_RND #IP Source israndom (between min/max),IPDST_RND,UDPSRC_RND,UDPDST_RND,MACSRC_RND, MACDST_RNDMPLS_RND, VID_RND,SVID_RNDQUEUE_MAP_RND #queue map randomQUEUE_MAP_CPU #queue map mirrors smp_p
18、rocessor_id() pgset "udp_src_min 9"set UDP source port min, If < udp_src_max, thencycle 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, thencycle through the port ran
19、ge.pgset "udp_dst_max 9"set UDP destination port max. pgset"mpls 0001000a,0002000a,0000000a" set MPLS labels (in thisexampleouterlabel=16,middle label=32,inner label=0 (IPv4 NULL) Note thatthere must be no spaces between thearguments. Leading zeros are required.Do not set the bot
20、tom of stack bit,that's done automatically. If you doset the bottom of stack bit, thatindicates that you want to randomlygenerate that address and the flagMPLS_RND will be turned on. Youcan have any mix of random and fixedlabels in the label stack. pgset "mpls 0"turn off mpls (or anyinvalid argument works too!) pgset "vlan_id 77"setVLAN ID 0-4095pgset "vlan_p 3"set priority bit 0-7 (default
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東南方職業(yè)學(xué)院《高爾夫技術(shù)實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 農(nóng)產(chǎn)品加工業(yè)項(xiàng)目風(fēng)險(xiǎn)分析和評(píng)估報(bào)告
- 廣東司法警官職業(yè)學(xué)院《中醫(yī)全科醫(yī)學(xué)概論(含整合醫(yī)學(xué)概論)》2023-2024學(xué)年第二學(xué)期期末試卷
- 撫順師范高等??茖W(xué)?!缎∏蝾悾ㄆ古仪颍?023-2024學(xué)年第二學(xué)期期末試卷
- 北京郵電大學(xué)《快題專題訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東省深圳實(shí)驗(yàn)校2025屆初三下期第一次月考物理試題試卷含解析
- 泉州工程職業(yè)技術(shù)學(xué)院《建筑結(jié)構(gòu)試驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京市海淀區(qū)2024-2025 學(xué)年第二學(xué)期期中練習(xí)(一模)數(shù)學(xué)試題(含答案)
- 2025年加工承攬合同范本示例
- 2025網(wǎng)站開(kāi)發(fā)合同書(shū)范本
- 夏暉冷鏈物流公司
- 人教版小學(xué)數(shù)學(xué)四年級(jí)下冊(cè)第五單元《三角形》作業(yè)設(shè)計(jì)
- 2025年遼寧省能源控股集團(tuán)所屬遼能股份公司招聘筆試參考題庫(kù)附帶答案詳解
- 2024年南通市公安局蘇錫通園區(qū)分局招聘警務(wù)輔助人員考試真題
- 不良資產(chǎn)處置業(yè)務(wù)操作流程與財(cái)務(wù)管理
- 填海石采購(gòu)合同6篇
- 2025屆山東省青島市高三下學(xué)期一模英語(yǔ)試題(原卷版+解析版)
- 2025屆福建省廈門(mén)市高三第二次質(zhì)量檢測(cè)地理試題(原卷版+解析版)
- 車(chē)隊(duì)安全學(xué)習(xí)培訓(xùn)課件
- 中華人民共和國(guó)國(guó)家安全法全文
- 《兒童代謝綜合征臨床防治指南(2025)》臨床解讀
評(píng)論
0/150
提交評(píng)論