乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      tcpreplay工具安裝使用

       坤域的小窩 2012-07-04

      一.Tcpreplay功能簡(jiǎn)介

      首先推薦一個(gè)網(wǎng)站:http://tcpreplay./ ,上面有Tcpreplay的安裝包和很多文檔,包括手冊(cè)、man頁和FAQ等。

      Tcpreplay是一系列工具的總稱,包括tcpreplay、tcprewritetcpprep等工具,它可以用來在Unix系統(tǒng)或者linux系統(tǒng)上重放網(wǎng)絡(luò)包。這些包是由tcpdumpetherealwireshark等軟件抓取到的,即pcap格式的數(shù)據(jù)包。

      安裝Tcpreplay包時(shí),默認(rèn)情況下是安裝了下面這些工具的, 用于準(zhǔn)備發(fā)包的cache, 重寫報(bào)文等:

      1tcpprep: 這個(gè)工具的作用就是劃分客戶端和服務(wù)器,區(qū)分pcap數(shù)據(jù)包的流向,即劃分那些包是client的,哪些包是server的,一會(huì)發(fā)包的時(shí)候client包從一個(gè)網(wǎng)卡發(fā),另一個(gè)server的包可能從另一個(gè)網(wǎng)卡發(fā)。

      2tcprewrite這個(gè)工具的作用就是來修改報(bào)文,主要修改2層,3層,4層報(bào)文頭,即MAC地址,IP地址和PORT地址。

      3tcpreplay: 這是最終真正發(fā)包使用的工具,可以選擇主網(wǎng)卡、從網(wǎng)卡、發(fā)包速度等。

      一.Tcpreplay安裝條件

      Tcpreplay要實(shí)現(xiàn)它的功能要用到其它一些庫:

      1libpcap庫:由于tcpreplay在使用過程中主要依賴于libpcap庫,因此在安裝tcpreplay之前需要先安裝libpcap,否則在安裝tcpreplay的時(shí)候會(huì)提示你libpcap沒有安裝而安裝失敗。但如果希望libpcap能在linux上正常工作,則必須使內(nèi)核支持"packet"協(xié)議,也即在編譯內(nèi)核時(shí) 打開配置選項(xiàng) CONFIG_PACKET(選項(xiàng)缺省為打開)

      Libpcap可以從以下鏈接下載:http://www./  可以用源碼安裝,比較簡(jiǎn)單。

      2tcpdump 這個(gè)不是必須的,這個(gè)工具的主要作用就是來解碼數(shù)據(jù)包,在linux系統(tǒng)下查看pcap文件內(nèi)的數(shù)據(jù)包,也可以用它來進(jìn)行抓包。在安裝tcpreplay時(shí)可以選擇安裝它也可以不選擇安裝。(個(gè)人建議也一起安裝,以防止在使用tcpreplay時(shí)發(fā)生其他錯(cuò)誤。)

      3libnet庫。也不是必須的一個(gè)庫。Tcpreplay也可用它來發(fā)送數(shù)據(jù)包,但由于libnet自身的bug比較多且已不再有人維護(hù),Tcpreplay未來版本有可能取消對(duì)它的支持。(目前的版本還需要這個(gè)庫的支持,因此建議也安裝)

      另外,你所使用的linux系統(tǒng)需要安裝了GCC編譯器,否則無法安裝所有工具。

      二.Tcpreplay安裝過程

      1首先來說明一下如何安裝libpcap庫(在安裝tcpreplay之前需要先安裝libpcap),安裝libpcap之前需要首先安裝m4、bison,flex,否則會(huì)出現(xiàn)錯(cuò)誤:

      1打開網(wǎng)址:www./ 下載 libpcap-1.1.1.tar.gz (512.0KB) 軟件包,通過命令 tar zxvf libpcap-1.1.1.tar.gz 解壓文件,并將其放入自定義的安裝目錄。

      2)打開網(wǎng)址:flex./ 下載 flex-2.5.35.tar.gz (1.40MB) 軟件包,通過 tar zxvf flex-2.5.35.tar.gz  解壓文件,并將其放入上述自定義的安裝目錄中。

      注意:如果沒有編譯安裝此文件,在編譯安裝libpcap時(shí),就會(huì)出現(xiàn) “configure: error: Your operating system's lex is insufficient to compile libpcap.”的錯(cuò)誤提示。

      3)打開網(wǎng)址:ftp./gnu/bison/ 下載 bison-2.4.1.tar.gz (1.9MB) 軟件包,通過 tar zxvf bison-2.4.1.tar.gz 解壓文件,并將其放入上述自定義的安裝目錄中。

      注意:如果沒有編譯安裝此文件,在編譯安裝libpcap時(shí),就會(huì)出現(xiàn) "configure: WARNING: don't have both flex and bison; reverting to lex/yacc checking for capable lex... insufficient" 的錯(cuò)誤提示。

      4打開網(wǎng)址:ftp./gnu/m4/ 下載 m4-1.4.13.tar.gz (1.2MB)軟件包,通過 tar zxvf m4-1.4.13.tar.gz 解壓文件,并將其放入上述自定義的安裝目錄中。

      注意:如果沒有編譯安裝此文件,在編譯安裝bison-2.4.1時(shí),就會(huì)出現(xiàn) “configure: error: GNU M4 1.4 is required”的錯(cuò)誤提示。

      然后,依次進(jìn)入m4-1.4.13bison-2.4.1,flex-2.5.35libpcap-1.1.1 并執(zhí)行以下命令:

      # ./configure

      # make

      # make install

      命令完成后,libpcap才能正常使用。

      2安裝完libpcap后就可以安裝tcpreplay了,從這個(gè)鏈接http://tcpreplay./下載 tcpreplay-3.4.4.tar.gz軟件包,通過 tar zxvf tcpreplay-3.4.4.tar.gz  解壓文件,并將其放入上述自定義的安裝目錄中。然后進(jìn)入tcpreplay-3.4.4,并執(zhí)行以下命令:

      # ./configure

      # make

      # make install

      執(zhí)行完后,tcpreplay 就可以使用了,可以通過命令:tcpreplay –vesion來查看它的版本信息,tcpreplay –h來查看幫助內(nèi)容。

      .Tcpreplay使用的各種參數(shù)

      1tcpprep使用的參數(shù):

      Usage: # tcpprep [-a -n <mode> -N <type> | -c <cidr> | -p | -r <regex>]  -o <out> -i <in> <args>

      -a  Split traffic in Auto Mode

      一般情況下都需要該參數(shù),表示按模式自動(dòng)分離的通訊流量生成cache文件,表示自動(dòng)分離采取的拓?fù)淠J?,來決定采取那種模式分離通訊流量的雙方。

      -c  CIDR1,CIDR2,...      Split traffic in CIDR Mode

      可選參數(shù),表示分離流量時(shí)采用CIDR(無類別域間路由選擇)模式。格式:tcpprep  -ac 10.10.0.0/24,表示把源地址匹配10.10.0.0/24網(wǎng)段的報(bào)文全部由主網(wǎng)卡發(fā)送,剩下的報(bào)文由從網(wǎng)卡發(fā)送出來,這里還有一點(diǎn)需要補(bǔ)充,就是tcpreplay在重放報(bào)文時(shí)對(duì)兩個(gè)網(wǎng)卡的定義很明確,一個(gè)主網(wǎng)卡(primary interface),一個(gè)是從網(wǎng)卡(secondary interface),不同的模式,兩塊網(wǎng)卡的屬性不一樣。

      -C <comment>           Embed comment in tcpprep cache file

      可選參數(shù),表示在cache文件中嵌入注釋內(nèi)容,可以用于注釋說明cache文件的內(nèi)容,注意使用時(shí)參數(shù)位置,不要放在最后,我測(cè)試時(shí)放在-o參數(shù)值的后面就報(bào)錯(cuò),放到-i參數(shù)之前就可以。生成cache文件后使用-P可以查看寫入的內(nèi)容。(這個(gè)參數(shù)一般用不著)

      -h     Help

      顯示幫助文件

      -i <capfile>            Input capture file to process

      生成cache文件的必帶參數(shù),后面緊跟pcap文件名,表示這個(gè)pcap文件需要處理。

      -m <minmask>            Minimum mask length in Auto/Router mode

      可選參數(shù),在選用router模式時(shí)使用,表示最小掩碼,默認(rèn)是302個(gè)有效ip地址)。

      -M <maxmask>            Maximum mask length in Auto/Router mode

      可選參數(shù),在選用router模式時(shí)使用,表示最大掩碼,默認(rèn)是81600萬個(gè)ip地址)。

      -n <auto mode>          Use specified algorithm in Auto Mode

      生成cache文件的必帶參數(shù),后面緊跟模式名稱,可選項(xiàng)有(bridge|router|client|server),目前版本只支持這4種模式。模式的選擇很關(guān)鍵,例如在客戶端使用ftp軟件下載文件,那么你在客戶端抓到的報(bào)文生成的pcap文件,那么就選用client模式,在服務(wù)器端抓到的報(bào)文生成的pcap文件就選用server模式。只有模式選對(duì)了,才能正確的分離流量從正確的接口發(fā)出正確的報(bào)文。注意:Server端的報(bào)文由主網(wǎng)卡發(fā)送出去,Client端的報(bào)文由從網(wǎng)卡發(fā)送出去。怎么確定主從網(wǎng)卡由tcpreplay的命令(-i I兩個(gè)參數(shù))來決定。

      -o <outputfile>         Output cache file name

      生成cache文件的必帶參數(shù),后面緊跟cache文件名,表示這個(gè)輸出的cache文件以這個(gè)名字命名。

      -p        Split traffic based on destination port

      可選參數(shù),基于目的端口來分離通訊流量,它區(qū)分的依據(jù)是認(rèn)為0-1023端口都是服務(wù)器的端發(fā)出的報(bào)文,其它的端口都是客戶端發(fā)出的報(bào)文,具體的端口對(duì)應(yīng)的/etc/services文件里的的內(nèi)容。使用的格式:-p /etc/services,可以根據(jù)自己的需要來制作一個(gè)文件也可以。

      -r <regex>              Split traffic in Regex Mode

      可選參數(shù),表示使用Regex模式分離通訊流量,有點(diǎn)類似于CIDR模式,但是它匹配的是服務(wù)器的源IP。man文件提示不能和-a-c參數(shù)一起使用。

      -R <ratio>              Specify a ratio to use in Auto Mode

            可選參數(shù),一個(gè)比例值,這個(gè)比例值的意義是服務(wù)器端發(fā)起的連接數(shù)和客戶端發(fā)起的連接數(shù)的比例,這個(gè)值大于2的話就視為server端。這個(gè)英文原意我也不是太肯定,大家可以參考一下原文:

      The ratio of server connections to client connections  necessary to  be classified as a server in auto mode.  A system is classified as a server if [# server connections] >= ([# client connections] * [ratio]).  Default is: 2.0

      -x <match>              Only send the packets specified

            重要的可選參數(shù),表示按照參數(shù)定義的需求來定義發(fā)送報(bào)文。后面還有具體的參數(shù),因?yàn)樵谖覀兊淖グ^程中,可能會(huì)由于網(wǎng)絡(luò)環(huán)境原因,抓到了許多我們不需要回放的報(bào)文,我們就可以根據(jù)這個(gè)參數(shù)決定我們需要回放哪些報(bào)文內(nèi)容。具體的參數(shù)意思如下:

      S:<CIDR1>,... - Src IP must match specified CIDR(s)

            CIDR模式下必須匹配源IP,格式:-xS:100.1.1.0/24,10.10.10.0/26。多個(gè)用逗號(hào)隔開,參數(shù)個(gè)數(shù)沒有試過,3個(gè)沒有問題。

      D:<CIDR1>,... - Dst IP must match specified CIDR(s)

      CIDR模式下必須匹配目的IP,格式同上。

      B:<CIDR1>,... - Both src and dst addresses must match

      必須同時(shí)匹配源和目的IP,格式同上。

      E:<CIDR1>,... - Either src or dst address must match

      匹配源或目的IP,格式同上。

      Ex: -xP:1-5,9,15 would only send packets 1 through 5, 9 and 15.

      根據(jù)參數(shù)后的參數(shù)值(報(bào)文編號(hào))發(fā)送指定的報(bào)文??梢栽?/SPAN>ethereal中確認(rèn)報(bào)文的編號(hào),然后把需要的報(bào)文發(fā)送??梢杂糜谂懦?/SPAN>ARP報(bào)文。

      Tcpprep使用小結(jié):在使用過程中,很多參數(shù)都沒有用到,用的比較多的選項(xiàng)參數(shù)就-v、-P-xB、-xP,一般都是clientserver的模式,其它兩種模式?jīng)]有實(shí)驗(yàn)過,暫時(shí)還不知道怎么使用。

      Tcpprep區(qū)分模式舉例:

      1tcpprep -e 00:00:00:00:00:05 --include=P:1,2,3 -i test.pcap -o test.cache &mac模式include

      2tcpprep -e 00:1e:c9:4c:03:0a --exclude=P:1,2-5 -i test.pcap -o test.cache &mac模式exclude

      3tcpprep -a server --exclude=P:1,2-5 -i test.pcap -o test.cache &auto模式)

      4tcpprep --cidr=192.168.0.0/16,10.0.0.0/8 --include=P:1,2-5 -i test.pcap -o test.cache & CIDR

      5tcpprep -p  --include=P:1,2-5 -i test.pcap -o test.cache & port模式)

      2tcprewrite使用的參數(shù)

      -r   rewrite TCP/UDP ports

      重寫TCP/UDP端口

      -e  rewrite IP addresses to be between two endpoints

      重寫兩個(gè)端點(diǎn)之間的IP地址

      -b  skpi rewriting broadcast/multicast IPv4/IPv6 addresses

      跳過重寫廣播/多播IPv4/IPv6地址

      --enet-dmac    Override destination Ethernet MAC addresses

      修改目的MAC地址

      --enet-smac    Override source Ethernet MAC addresses

      修改源端MAC地址

      -i   Input pcap file to be processed

      輸入被處理的pcap文件

      -o  out pcap file

      輸出pcap文件 (這里這個(gè)生成的文件我還沒有弄清楚到底是什么作用)

      -c   Split traffic via tcpprep cache file

      發(fā)送的文件,即tcpprep處理生成的cache文件

      -h   help

      顯示幫助

      tcprewrite 工具還沒有真正的使用測(cè)試過,因此具體功能還要驗(yàn)證)

      3tcpreplay使用的參數(shù):

      Usage: tcpreplay [args] <file(s)>

      -c <cachefile>          Split traffic via cache file

       雙網(wǎng)卡回放報(bào)文必選參數(shù),后面緊跟cache文件名,該文件為tcpprep根據(jù)對(duì)應(yīng)的pcap文件構(gòu)造出來。

      -F           Fix IP, TCP, UDP and ICMP checksums

           可選參數(shù),在發(fā)送報(bào)文時(shí),自動(dòng)糾正錯(cuò)誤的校驗(yàn)和。對(duì)測(cè)試DUT的校驗(yàn)和檢驗(yàn)還是有用的。

      -i <nic>                Primary interface to send traffic out of

       雙網(wǎng)卡回放報(bào)文必選參數(shù),指定主接口。

      -I <nic>                Secondary interface to send traffic out of

        雙網(wǎng)卡回放報(bào)文必選參數(shù),指定從接口。

      -L <limit>              Specify the maximum number of packets to send

           可選參數(shù),指定最大的發(fā)包數(shù)量。可以在確認(rèn)連接的調(diào)試時(shí)使用。

      -x <multiple>           Set replay speed to given multiple

          可選參數(shù),指定一個(gè)倍數(shù)值,就是必默認(rèn)發(fā)送速率要快多少倍的速率發(fā)送報(bào)文。加大發(fā)送的速率后,對(duì)于DUT可能意味著有更多的并發(fā)連接和連接數(shù),特別是對(duì)于BT報(bào)文的重放,因?yàn)檫B接的超時(shí)是固定的,如果速率增大的話,留在session表中的連接數(shù)量增大,還可以通過修改連接的超時(shí)時(shí)間來達(dá)到該目的。

      -p <packetrate>         Set replay speed to given rate (packets/sec)

          可選參數(shù),指定每秒發(fā)送報(bào)文的個(gè)數(shù),指定該參數(shù),其它速率相關(guān)的參數(shù)被忽略,最后的打印信息不會(huì)有速率和每秒發(fā)送報(bào)文的統(tǒng)計(jì)。

      這是是主要的一些參數(shù),從網(wǎng)上查找的一些資料跟具體的tcpreplay中的參數(shù)有很大出入,因此建議想要使用其他參數(shù)時(shí),使用命令:# tcpreplay –h 查看幫助。

      四.Tcpreplay使用舉例:

      試驗(yàn)過程:從客戶端上抓取的訪問butterfly的原始包,tcp.pcap,通過TCPreplay回方后,在交換機(jī)上抓取的包result.pcap,可以看出,兩個(gè)文件中的包順序完全相同。

         配置實(shí)例:

      如圖:

          DUT設(shè)備的兩個(gè)接口和PC的兩個(gè)接口使用網(wǎng)線連接,使用tcpreplay重放報(bào)文。注意防火墻的配置為網(wǎng)橋(透明)模式。PC機(jī)的一個(gè)網(wǎng)卡連接DUT的端口1,另一個(gè)網(wǎng)卡連接DUT的端口2DUT內(nèi)的MAC地址設(shè)為靜態(tài)映射。

      1)  在客戶端利用Ethreal抓取客戶端訪問butterflyTCP包,目的IP地址為:10.1.145.249,本機(jī)地址為:10.1.145.96;

      2)  將抓取的包文件存為:tcp.pcap,然后拷貝到linux系統(tǒng)中,放到你安裝tcpreplay目錄中。

      3)  使用tcpprep區(qū)分clientserver端,生成cache文件。

      # tcpprep –a client –i tcp.pcap –o tcp.cache

      (這里采用自動(dòng)客戶端模式區(qū)分)

      4)  使用tcpreplay重放報(bào)文

      #tcpreplay –p 1000 –c tcp.cache –i eth0 –I eth1 tcp.pcap

       

      結(jié)論:在慢速重放包時(shí),可以按照原有報(bào)文的交互順序 通過被測(cè)設(shè)備。即完全模擬了客戶端和服務(wù)器的交互過程。

      該軟件默認(rèn)是線速發(fā)包,試驗(yàn)發(fā)現(xiàn)會(huì)有錯(cuò)誤的包和亂序的包。配置為1000個(gè)包/s時(shí),不會(huì)失序。

      推測(cè)失序原因:在高速發(fā)包時(shí),特別依賴于網(wǎng)卡,只要網(wǎng)卡有抖動(dòng),可能會(huì)導(dǎo)致client端和服務(wù)器端發(fā)送的包在通過DUT時(shí),排序有問題。

      安裝tcpreplay需要的所有安裝包文件,我已經(jīng)上傳到//pmd-3/測(cè)試部/tools目錄下。如果大家在使用中發(fā)現(xiàn)什么問題歡迎互相交流。

       

      使用經(jīng)驗(yàn)總結(jié):

      如果不對(duì)包文件進(jìn)行改寫,則重發(fā)包流程為:

      1.       先對(duì)包進(jìn)行區(qū)分客戶端和服務(wù)器端:

      tcpprep -a client -i http. pcap -o http. cache  

      2.       重放包文件,命令為:

      tcpreplay –p 1 -c http.cache -i eth0 -I eth1 http.pcap

       

       

      如果對(duì)包文件進(jìn)行改寫,則重發(fā)包文件流程為:

      1.       先對(duì)包進(jìn)行區(qū)分客戶端和服務(wù)器端:

      tcpprep -a client -i http. pcap -o http. Cache

      2.       對(duì)包文件進(jìn)行改寫:

      tcprewrite -e 192.85.1.2:192.85.2.2 --enet-dmac=00:15:17:2b:ca:14,00:15:17:2b:ca:15 --enet-smac=00:10:f3:19:79:86,00:10:f3:19:79:87 -c test.cache -i test.tcpdump -o 1.pcap

      3.       重放包文件:

      tcpreplay -i eth0 -I eth1 -l 1000 -t -c /dev/shm/test.cache /dev/shm/1.pcap

       

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多