如何使用tcpreplay重放PGM协议的网络流量?

时间:2016-11-30 05:40:30

标签: networking udp tcpreplay pgm-protocol

我想将网络流量多播到特定的多播目标IP地址。在输入pcap文件中,PGM协议包可用。

我正在执行以下tcpreplay步骤,以通过网络多播pcap文件 -

  1. 重写pcap文件中可用的目标和源mac地址

    tcprewrite --enet-dmac =目标Mac地址--enet-smac =源Mac地址--infile = input.pcap --outfile = output.pcap

  2. 获取缓存文件,该文件在重写IP地址时使用。

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

  3. 重写IP地址

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

  4. 最后多播newoutput.pcap。

    sudo tcpreplay --mbps = 2.0 --intf1 = eth0 newoutput.pcap

  5. 但在第1步中,我面临以下错误 -

      

    tcprewrite.c中的警告:post_args()第225行:   使用9216字节的snaplen捕获testsg.pcap。这可能意味着您已截断数据包。

    另一方面,我试图使用以下命令捕获 -

      

    tcpdump -n“dst host目标组播IP地址和dst端口   目的地端口号“

    但即使是一个数据包也不会被另一方捕获。

    以前我正在发送UDP协议捕获pcap文件,那时我正确地获取所有数据包。

    现在我无法理解PGM数据包的问题是什么,以及为什么这些数据包不会被捕获到另一端。如何使用目标多播IP地址成功重播网络上的这些网络流量?

1 个答案:

答案 0 :(得分:0)

第一个“错误”实际上是一个警告。我们已经看到很多pcap文件的snaplen为9216,数据包被截断。你可能想在Wireshark中加载文件并确保它没问题。

您是否在步骤#2中验证了自动桥接模式正在做正确的事情?使用tcpprep -S进行检查。

“另一面”是通过交换机还是VM直接连接?

“另一边”的服务器的MAC地址是否已经正确?如果没有,那可能就是问题。