2016-11-30 99 views
0

我想組播一個網絡流量到特定的多播目標IP地址。在輸入pcap文件中,PGM協議包可用。如何使用tcpreplay重播PGM協議的網絡流量?

我執行tcpreplay的以下步驟來多播一個PCAP文件通過網絡 -

  1. 重寫目的地和源MAC在PCAP文件

    tcprewrite --enet-DMAC =目標可用的地址Mac地址--enet-smac =源Mac地址--infile = input.pcap --outfile = output.pcap

  2. 獲取緩存文件,該文件在重寫IP地址時使用。

    tcpprep --auto =橋--pcap = output.pcap --cachefile = input.cache

  3. 重寫的IP地址

    tcprewrite --endpoints =目標多播IP地址:源IP接口Address --cachefile = input.cache --infile = output.pcap --outfile = newoutput.pcap

  4. 最後組播newoutput.pcap。

    須藤tcpreplay --mbps = 2.0 --intf1 = eth0的newoutput.pcap

但是在步驟1中我面臨以下錯誤 - 在tcprewrite.c

警告:post_args ()第225行: testsg.pcap是使用9216字節的snaplen捕獲的。這可能意味着你截斷了數據包。

在另一邊,我嘗試使用下面的命令來捕獲 -

的tcpdump -n 「DST主機組播目的IP地址和目的端口 目的端口號」

但即使一個數據包也不會在對方被捕獲。

以前我發送UDP協議捕獲pcap文件,並在那個時候我正確地獲取所有的數據包。

現在我無法理解與PGM數據包相關的問題以及爲什麼這些數據包未在其他端捕獲。如何使用目標多播IP地址在網絡上成功重播這些網絡通信?

回答

0

第一個「錯誤」實際上是一個警告。我們已經看到很多pcap文件,其中包含截斷的數據包的9216個snaplen。您可能想要在Wireshark中加載文件並確保它沒問題。

您是否已驗證在步驟#2中自動橋接模式正在做正確的事情?使用tcpprep -S來檢查。

「對方」是通過交換機還是虛擬機直接連接?

「另一端」服務器的MAC地址是否已經正確?如果不是,那很可能是問題。