Edit 2: 31/10/18
If you’re having problems and you’re still on an older shibby, irateb provided the following suggestion:
“there’s a setting in Tomato called Cut Through Forwarding (CTF) that was enabled in Advanced > Miscellaneous. That setting supposedly gives a slight performance boost by bypassing some of the protocol overhead, but not without some consequences, one of which being port forwarding not working. Turning off CTF allowed port forwarding to work for me.”
Edit 15/11/17: this issue has been reported to have been fixed in shibby build 140.
Just quick quirk I learned today: if you’re having issues with port forwarding or UPNP not working on Advanced Tomato or Tomato Shibby firmware, and you are connecting to a bridged DSL modem over PPPoE, check that “Use DHCP” is OFF under “WAN settings on the “Basic Settings” page. DHCP needs to still be on for the LAN section, but having it on under the WAN settings was blocking all port forwarding, DMZ, and UPNP from working.
Its really impressively comprehensive firmware, far better than the stock Netgear R7000 firmware, but there’s definitely a few quirks here and there. Some people have even reported other weird behavior with port forwarding here and elsewhere.
If I’d known about this, it might have saved me $45 buying a new modem thinking that my bridging wasn’t working correctly. It was only when I did a factory reset, that I realised the actual cause – basic troubleshooting 101, doh!