Troubleshooting multicast routing
Felix <[email protected]> Mon, 3 Aug 2026 22:05:46 +1000
| Newsgroups | gmane.os.freebsd.devel.net |
|---|---|
| Message-ID | <[email protected]> |
Hi all, I'm experimenting with static multicast routing using smcroute on FreeBSD. (My goal is bridging SSDP between networks, but I'm mostly using this as a chance to experiment with multicast routing in general.) I'm having some trouble getting v4 traffic to route (while v6 is working fine), and I'd be grateful for any advice. My simple smcroute.conf to bridge SSDP between three networks is as follows: > phyint trusted enable > phyint untrusted enable > phyint tenants enable > > mroute from trusted group 239.255.255.250 to tenants > mroute from trusted group ff05::c to tenants > mroute from untrusted group 239.255.255.250 to tenants > mroute from untrusted group ff05::c to tenants > mroute from tenants group 239.255.255.250 to trusted untrusted > mroute from tenants group ff05::c to trusted untrusted "trusted" (172.16.0.94/27), "untrusted" (172.16.0.126/27), and "tenants" (172.16.0.1/32) are three vlan(4) interfaces on the same physical ixl(4) interface. After starting smcrouted, netstat -g reports as expected: > IPv4 Virtual Interface Table > Vif Thresh Local-Address Remote-Address Pkts-In Pkts-Out > 0 1 172.16.0.94 0 0 > 1 1 172.16.0.126 0 0 > 2 1 172.16.0.1 0 0 > > IPv4 Multicast Forwarding Table is empty > > > IPv6 Multicast Interface Table > Mif Rate PhyIF Pkts-In Pkts-Out > 0 0 trusted 0 0 > 1 0 untrusted 0 0 > 2 0 tenants 0 0 > > IPv6 Multicast Forwarding Table is empty I then send some SSDP discover packets on "trusted" - four each on v4 and v6. The v6 packets are routed to "tenants" as expected, but I never see the v4 packets, either on a tcpdump of "tenants" on the router or on another device connected to "tenants". netstat -g appears to suggest that the packets were forwarded: > IPv4 Virtual Interface Table > Vif Thresh Local-Address Remote-Address Pkts-In Pkts-Out > 0 1 172.16.0.94 4 0 > 1 1 172.16.0.126 0 0 > 2 1 172.16.0.1 0 4 > > IPv4 Multicast Forwarding Table > Origin Group Packets In-Vif Out-Vifs:Ttls > 172.16.0.65 239.255.255.250 4 0 2:1 > > > IPv6 Multicast Interface Table > Mif Rate PhyIF Pkts-In Pkts-Out > 0 0 trusted 4 0 > 1 0 untrusted 0 0 > 2 0 tenants 0 4 > > IPv6 Multicast Forwarding Cache > Origin Group Packets Waits In-Mif Out-Mifs > 2XXX:XXXX:XXXX:1:d92:4ded:53c ff05::c 4 0 0 2 smcroute logs a message seemingly indicating that it saw an IGMPMSG_NOCACHE with the wrong vif - 2 (tenants) rather than 0 (trusted): > smcroute[45888]: Multicast from 172.16.0.73, group 239.255.255.250, coming in on wrong VIF 2, iface tenants However, I think this might be a red herring, because the forwarding table entry is clearly created correctly. Maybe smcroute is seeing the packet again on its way out? pflog sees the packet come in on the expected interface, but never sees any multicast packets leave (neither v4 nor the known-working v6). Any idea what might be happening here? (It's not TTL, I've accounted for that already.) I'd appreciate any suggestions. Thanks, - Felix