Closed Malvineous closed 2 years ago
What is the TTL of the incoming multicast data? If you use ping, you must also supply the -t NUM
flag. The Linux kernel will not route a packet that has a TTL value in its IP header that, once decremented, is less than the TTL threshold for the outbound interface. By default the TTL threshold of an interface is set to 1, so the TTL in an inbound multicast stream must be > 1 to be allowed to be routed. This is covered in the documentation, and even in the project's README.
Oh I'm so sorry, you're completely right! I was thrown off because it was originally NodeJS code, which I then tried to simplify down to netcat, then finally ping. Now I realise that everything emitting multicast packets has to have the TTL set, my bad for not reading the doco properly! Sorry for the noise.
For the record yes, setting the TTL in ping (and using setMulticastTTL() in the NodeJS code) completely solves the problem.
I'm a bit stuck trying to get smcroute to forward IPv6 traffic. I have three multicast streams and two streams are forwarded but one is not. To experiment, I tried using
ping
andnetcat
but I cannot get smcroute to forward the traffic generated by these utilities. I am not sure where the problem is so any advice you can offer would be much appreciated.I am running smcroute on an OpenWRT router with this config:
I then go to a machine attached to the router's
eth0
interface and send traffic to the multicast address:When I do this I immediately see smcrouted notice the new packet:
If I use
tcpdump
on the router, I can confirm that the packets are coming in:However if I run the same
tcpdump
command for the outgoing interface, the packets are never forwarded:What am I doing wrong? How do I get these packets arriving on one interface to be sent out the other network interface?