How do I check if my router blocks multicast traffic?

276

Solution 1

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.

Solution 2

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")

Share:
276

Related videos on Youtube

Tibor Nagy
Author by

Tibor Nagy

Updated on September 18, 2022

Comments

  • Tibor Nagy
    Tibor Nagy over 1 year

    I'm working with ionic/angular on android. There are two buttons in a form:

    <ion-modal-view>
      <ion-content>
        <form>
          <div class="list">
            ...
            <label class="item">
              <button ng-click="prefsSave(true)" class="button button-block button-positive">Save & Check</button>
              <button ng-click="prefsSave(false)" class="button button-block button-positive">Save</button>
            </label>
          </div>
        </form>
      </ion-content>
    </ion-modal-view>
    

    The function to be called on click is defined in the controller:

    $scope.prefsSave = function(check) {
      ...
    }
    

    The function is called always with ''true'' regardless of which button was pressed. What is wrong?

    • Admin
      Admin about 12 years
      The make and model number are a good start.
    • Admin
      Admin about 12 years
      Either refer to the support documentation for your router, or [test it][1]. [1]: serverfault.com/questions/211482/…
    • Admin
      Admin about 12 years
      Testing it won’t tell you if it is disabled, blocked, or not supported at all.
    • Admin
      Admin about 12 years
      @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)?
    • Admin
      Admin about 12 years
      @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.
    • Admin
      Admin about 12 years
      @Breakthrough - my new problem is I dont see any IGMP messages on wireshark when I do a JoinMulticastGroup method in my c# code. Why might that be happening?
    • Admin
      Admin about 12 years
      Again, it depends on your router. It may be configured to block multicast, it may be directing them incorrectly, it may not support it at all. Perhaps some security software (firewall, anti-virus, etc.) is blocking them. Maybe the C# program is incorrectly set (sending receiving incorrect port/protocol/IP). There are just so many causes for the symptom you describe, so you’ll need to provide more information before anyone can effectively diagnose this. (Patient: I have an ache in my torso. Doctor: and…)
    • Admin
      Admin about 12 years
      Are you asking if your router blocks multicast between machines on the same LAN? Your question is missing context.
    • Sam5487
      Sam5487 over 7 years
      The above works for me, passing true/false correctly. Could you provide more code about the controller?
    • sioesi
      sioesi over 7 years
      You can leave more code control? What you wear now works for me.
    • Tibor Nagy
      Tibor Nagy over 7 years
      I've added all of the surrounding HTML tags, to reproduce the problem. See also my answer below.