I am trying a sender and receiver multicast c# program on my computer. How do I check if my router blocks multicasting? i.e whether members of the group receive packets from 224.0.0.1.
-
2The make and model number are a good start.– SynetechMar 9, 2012 at 22:08
-
Either refer to the support documentation for your router, or [test it][1]. [1]: serverfault.com/questions/211482/…– ZoredacheMar 9, 2012 at 22:09
-
1Testing it won’t tell you if it is disabled, blocked, or not supported at all.– SynetechMar 9, 2012 at 22:27
-
@user494461 I'm assuming your application isn't working. Get Wireshark, and make sure your computer gets the packets. I had a similar situation - Wireshark saw my computer getting the packets, but they wouldn't get to my application. The only way I got around this was to disable the Base Filtering Engine service. Do not disable that service on a public network, but you can test it out at home to see if that's the cause. Also, are you sure you want to broadcast to the entire network, and just not your subnet (and instead use something like 192.168.1.255 as the broadcast address)?– BreakthroughMar 9, 2012 at 23:18
-
@Synetech, kinda depends on how you defined blocked. If you defined blocked as explicitly disallowed via acl/rule, then testing will not help. If you define blocked as simply not functioning, then a test will prove if it works or not. I agree it won't tell you anything about the capabilities of the router though.– ZoredacheMar 9, 2012 at 23:51
2 Answers
IPv4 routers are required not to forward multicasts to 224.0.0.1. That's the "all hosts" multicast address. That address is not a routable multicast address. See RFC 3171, "IANA Guidelines for IPv4 Multicast Address Assignments". It is not allowed off the current data-link-layer (layer 2) network. Otherwise, when pinging it, you'd literally be pinging every last IPv4-capable host on the entire Internet, and instantly DDOSing yourself with all the ping replies. :-)
While developing your application, I think you'll probably want to use "Administratively Scoped IP Multicast" addresses (239/8). See RFC 2365. caveat lector: I'm certainly no expert on IPv4 multicast routing.
If you were using layman's terms instead of precise networking jargon, and the networking device you were calling a "router" is actually just an Ethernet bridge/switch and not an IPv4 router, then it would indeed forward it between ports, because that's what Ethernet bridges/switches are required to do. Because at the Ethernet layer, the destination MAC address would have the multicast bit set.
If you're dealing with 802.11 (Wi-Fi) at all, note that 802.11 is a data link layer protocol, basically wireless Ethernet. A device that connects a wireless Ethernet to a wired Ethernet is technically called an "Access Point" or AP. An AP can be a simple link-layer bridge between wired and wireless Ethernet. So some devices that people refer to in layman's terms as a "wireless router" may, depending on how you have it set up, really just be a bridging AP and not a router at all.
But if you have a "wireless router" configured to act as an IPv4 NAT gateway, then it's okay to think of it as a router, because a NAT gateway pretty much does everything a simple IPv4 router would do, plus it employs some higher-layer tricks to make the traffic from the LAN-side, private-subnet hosts look like it's actually coming from the gateway's one WAN-side, publicly-routable IP address. But even if it's a NAT gateway, it shouldn't be forwarding packets for 224.0.0.1 from LAN-to-WAN or WAN-to-LAN.
Hardware Concerns:
Check the make, model, and documentation, to ensure the hardware supports multicast. Assuming it is not a hardware issue, check the config of the access-point/switch/gateway/"traffic-passing blinky box"...
Diagnosis:
As a C# user you might need to translate my Mac/Unix command/responses to Windows land...
When I run: > ifconfig
from my house I get:
...
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
...
which makes sense, because I use zeroconf, mDNS, Bonjour services, etc at home via my wireless connection. When I perform the same thing at a coworking space, where none of the zeroconf stuff works, I also noticed the ifconfig
command excludes the multicast flag.
...
en1: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
....
For Gateway Admins
Login to the Access Point and attempt to enable multicasting. For reference if you are using a consumer oriented "router" you may have to dig into Advanced Tabs (PDF example from Time Warner. Be sure search for "mulitcast")