I’ve recently started using Fedora 16 on my laptop computer, and I enabled the avahi service, which uses mDNS, more commonly known as Bonjour in Apple terminology. This is a convenient way for devices on a small network to automatically discover each other; I enabled avahi on my desktop computer and the two machines found each other’s IP addresses. It’s also used by my HP 6940 desktop printer, which it automatically discovered.
Unfortunately, mdns started getting flaky recenty, and then stopped working altogether in the last couple days. I spent quite awhile looking for Linux problems. The odd thing was that avahi worked fine over the ethernet cable, just not over wireless. After some troubleshooting, I discovered that my wireless interface was not sending or receiving any multicast traffic, which is how mdns works. Eventually I discovered that my wireless access point, an Actiontec MI424-WR rev C, which Verizon provided when they setup FiOs, has issues with wireless multicast. The most common complaint I found is with Bonjour not working:
Despite a number of claims from companies like HP saying that Actiontec routers don’t support Bonjour, I finally found a configuration setting that fixed the problem. Under the web configuration for the router, go to Advanced -> IGMP Proxy -> ACL Multicast Filtering. In my case I enabled the whitelist, then added my particular IP of interest: 188.8.131.52 / 255.255.255.255, which is what mDNS / Bonjour use. Apparently everything is filtered by default, though I wonder if this is a recent change from Verizon in their firmware configuration. Once I added my whitelist entry and saved, multicast started working instantly.
In Linux, this is obvious by running “avahi-browse -at” and looking for expected results beyond localhost. My mDNS / Bonjour printing also started working.
Another thing to check is that Multicast is not disabled at some other level; check the Interface Multicast Filtering to make sure that all interfaces are enabled.