How to fix UPNP IGD not working on ASUS RT-AC87U

UPNP IGD is a system used to allow clients behind a NAT to be reachable for incoming connections. This is very useful for all kinds of P2P protocols and is a standard features of most Internet routers.

But it wasn’t working right on my RT-AC87U. It would work after a fresh router reboot or when a connection was made but after a dozen of minutes, no application was able to add port forwarding entries.

I fired up Wireshark to see what’s going on.

UPNP uses multicasting to advertise itself. So I just simulated a client using the UPNP Tools. I could see how Windows would send an IGMPv3 Membership Report but then it would never see an IGMP Membership Query from the router.

On another machine hooked to an ethernet port, I would see them, though.

After a while, it seems this is because the router doesn’t let IGMP pass through the WiFi interface. I’m not sure why this is the case but it might be because having a stream of multicast packets go through WiFi is usually hell, as described in a previous post of mine.

The fix isn’t very intuitive because you have to go into the IPTV settings of the router, even though it doesn’t seem related with IPTV at first. So go to Advanced Settings / LAN / IPTV.

Make sure both of those are enabled.

If you use IPTV, make sure each wireless interface has Enable IGMP Snooping ticked, to avoid multicast flood.

And that’s it. UPNP should now work perfectly! I’m a bit surprised there’s like zero information about that even on ASUS forums.