My setup is as follows:
A ---------> B ---------> C
B eth0: 192.168.1.219 eth1: 192.168.1.711
A and B are both out-of-box redhat 9 machine. C is windows 2000. The
traffic flows as the arrow's direction. The B is the multicast router
and I want multicast packets coming out from A to be forwarded from
SubnetAB to Subnet BC.
I enabled packet forwarding on B (echo 1 > /proc.../ip_forward) and it
worked I can ping C from A. I also added a route for 184.108.40.206 on B
(route add -net 220.127.116.11/4 netmask 240.0.0.0 dev eth0), and I am
really only interested in uni-directional multicast forwarding.
I compiled mrouted and started it with everything set as default.
Afterwards, I can see the multicast packets coming in from eth0, but
they never were forwarded to eth1.
tcpdump output on B:
B:>tcpdump -i eth1 ip multicast
15:27:03.145280 192.168.7.111 > 18.104.22.168: igmp v2 report 22.214.171.124
15:27:04.422349 192.168.7.211 > dvmrp.mcast.net: igmp v2 report
dvmrp.mcast.net (DF) [ttl 1]
15:27:04.512361 192.168.7.211 > all-routers.mcast.net: igmp v2 report
all-routers.mcast.net (DF) [ttl 1]
15:27:07.040699 192.168.7.211 > dvmrp.mcast.net: igmp dvmrp Probe [tos
0xc0] [ttl 1]
15:27:11.155794 192.168.7.111 > 126.96.36.199: igmp v2 report
188.8.131.52 [ttl 1]
As you can see here, C was trying to join the 184.108.40.206 multicast
B:>tcpdump -i eth0 ip multicast
15:33:52.230373 192.168.1.224.8100 > 220.127.116.11.8100: udp 188 (DF)
15:33:52.230380 192.168.1.224.8100 > 18.104.22.168.8100: udp 188 (DF)
15:33:52.230385 192.168.1.224.8100 > 22.214.171.124.8100: udp 188 (DF)
15:33:52.230390 192.168.1.224.8100 > 126.96.36.199.8100: udp 132 (DF)
15:33:52.230394 192.168.1.224.8100 > 188.8.131.52.8100: udp 8 (DF)
As you can see here, the UDP multicast packet traffic is going very
well on eth0.
The kernel is a vanilla 2.4.20-31.9 i686 kernel. The likely multicast
routing related options had all been compiled in.
What am I missing? This had been puzzling me for the past few days. Any
help would be appreciated! Thanks!