UDP multicast client does not see UDP multicast traffic generated by tcpreplay

前端 未结 5 679
不思量自难忘°
不思量自难忘° 2021-02-06 01:20

I have two programs:

  • server ... it generates UDP traffic on a chosen multicast
  • listener ... it prints UDP traffic on a chosen multicast (it sub
相关标签:
5条回答
  • 2021-02-06 01:36

    In Windows (I write it because in topic name you not specify that is not Windows) there is problem like this with different programs. But this program works fine Colasoft Packet Player. First time you should start it with administrative privileges.

    OR (for all possible systems) you can try check this list.

    0 讨论(0)
  • 2021-02-06 01:45

    In my case I needed to adjust the pcap file by setting the correct destination MAC address. Also the checksum should be recalculated. And yes, 2 hosts are required for "tcpreplay". Without these I was fighting for a long time but only "tcpdump" showed the replayed stream, not my multicast listening app :(

    Here is the link to my article: Step by step instructions on Dump/Replay Multicast feed

    0 讨论(0)
  • 2021-02-06 01:46

    This is just a theory, but it might be that the packets are discarded by the receiving side due to their checksums being wrong.

    That could happen if the machine where you run tcpdump has IP or UDP checksum offloading enabled. That means the packages you capture locally haven't their checksums calculated yet, which the hardware does before sending them out. When you then tcpreplay those packets, the checksums are not calculated, as tcpreplay works on a lower level than the socket API you used to generate the packets.

    In order to verify the correctness of the checksums (both those of the dump file as well as those of the packets spit out by the subsequent tcpreplay), tcpdump -v ... will warn you about wrong checksums. wireshark also colors wrongly checksummed frames differently (unless turned off in the wireshark settings).

    Did you try to tcpdump the packets only on the sending host, or also on the receiving host? The latter would remove the checksum errors, if that is indeed your problem.

    0 讨论(0)
  • 2021-02-06 01:52

    To my knowledge, you can't do this on the same box ,tcpreplay bypasses the host's routing table and sends traffic out the interface.

    you have to start your listener on a different box. and make sure multicast is enabled. because by default, switch discards multicast traffic.

    0 讨论(0)
  • 2021-02-06 02:02

    We had the same problem. With tcpdump we saw the data; however, the multicast client/listener was not picking up the data. Then we realized that the Reverse Path Filter (rp_filter) was rejecting the packets.

    After disabling the rp-filter, the client/listener application started picking up the packets. Use the below command to disable rp_filter:

    echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter

    In the above, replace 'eth0' with the interface receiving the multicast if other than eth0

    0 讨论(0)
提交回复
热议问题