0

我想将网络流量多播到特定的多播目标 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

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

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

另一方面,我正在尝试使用以下命令进行捕获-

tcpdump -n "dst host 目标多播 IP 地址和 dst port 目标端口号"

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

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

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

4

1 回答 1

0

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

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

“另一端”是通过交换机还是虚拟机直接连接的?

“另一端”服务器的MAC地址是否已经正确?如果不是,那很可能是问题所在。

于 2016-12-01T22:38:42.853 回答