我有一個 UDP 封包捕獲,它從網路 N1 上 IP1 上的連接埠 1 串流到 IP2 上的連接埠 2。我需要在另一個網路 N2 上從 IP3 上的連接埠 3 到 IP4 上的連接埠 4 重播這些封包。
我需要知道要使用什麼軟體來執行此操作,以及如何重播這些資料包,以便我可以在 N2 中再次檢測/捕獲它們。
到目前為止,我已經嘗試使用名為 Colasft Packet Player 的程式嚴格重播這些資料包,但運氣不佳。
答案1
tc預播放(https://tcpreplay.appneta.com/)似乎也能夠做你想做的事,也許使用tcprelat 編輯程序,但我沒有親自運行過這個軟體。
來自tcpreplay-編輯 概述:
tcpreplay 這些年來已經有了很大的發展。在 1.x 時代,它只是讀取資料包,然後透過線路發送回來。在 2.x 中,tcpreplay 得到了顯著增強,添加了各種重寫功能,但代價是複雜性、效能和膨脹。現在在 3.x 中,tcpreplay 已經回歸其根源,成為一個精簡的資料包發送機器,編輯功能已轉移到 tcprewrite 和一個將兩者結合在一起的強大的 tcpreplay-edit。
由於 tcpreplay-edit 包含 tcpreplay 和 tcprewrite 的所有功能,請參閱這些 wiki 頁面以了解如何使用 tcpreplay-edit。
答案2
比特扭曲(http://bittwist.sourceforge.net)應該能夠做你想做的事。
借助 Bit-Twist,您現在可以將捕獲的流量重新生成到即時網路上!資料包是從 tcpdump 追蹤檔案(.pcap 檔案)產生的。 Bit-Twist 還附帶了一個全面的追蹤檔案編輯器,可讓您更改追蹤檔案的內容。
「追蹤文件編輯器」部分是您在這裡最感興趣的部分。
我認為你需要分兩次進行轉換:一是更改 IP 位址,二是更改 UDP 連接埠號碼。我相信您可以按任一順序執行此操作。
bittwiste -I original.pcap -O changedip.pcap -T ip -s IP1,IP3 -d IP2,IP4
bittwiste -I changedip.pcap -O changedipandport.pcap -T udp -s Port1,Port3 -d Port2,Port4
您需要在其中貼上 IP 位址和連接埠號,例如
bittwiste -I original.pcap -O changedip.pcap -T ip -s 192.168.0.1,10.10.0.3 -d 192.168.0.2,10.10.0.4
bittwiste -I changedip.pcap -O changedipandport.pcap -T udp -s 12345,24680 -d 80,8080
如果您的原始擷取檔案僅包含原始電腦的 IP 和連接埠號,您可以透過在編輯命令中不提及舊的 IP 和連接埠號碼來簡化此操作,例如
bittwiste -I original.pcap -O changedip.pcap -T ip -s 10.10.0.3 -d 10.10.0.4
bittwiste -I changedip.pcap -O changedipandport.pcap -T udp -s 24680 -d 8080
產生從 10.10.0.3:24680 到 10.10.0.4:8080 的資料包。
從網路 N2 中的電腦上,您應該能夠changedipandport.pcap
使用以下命令播放該文件Colasoft 資料包播放器(http://www.colasoft.com/packet_player) 或命令列比特扭曲玩家,例如
bittwist -i 1 changedipandport.pcap
其中此處的「1」是設備 1 bittwist -d
。
BitTwist 播放器還有其他一些漂亮的選項,而 Colasft Packet Player 則無法做到,特別是透過更改乘法器發送的資料包的速度(例如 5 倍原始速度或 0.1 倍原始速度)。
我已經成功地測試了這個方法Wireshark(http://www.wireshark.org)捕獲從 i-device 上的 TouchOSC 發送到我的筆記型電腦(透過 WiFi)連接埠 8000 的 OSC 資料(UDP 資料包),使用比特維斯特(編輯)將目標 IP 位址變更為我的有線乙太網路介面卡位址,並將 UDP 連接埠變更為 8001,然後使用位扭曲(玩家)到純數據(http://puredata.info) 修補監聽埠 8001。