11 Apr 2010
OpenWrt on Netgear WNDR3700 Router
A few weeks ago I bought a new WLAN router. However, after a few days I encountered two issues with the Netgear firmware. The implementation of static routes is flawed. You can ping servers behind the second router, but you cannot connect to services provided by servers behind the second router. The second issue is that the firmware only supports port forwarding but not port address translation. You can map port A of the external interface to port A of an internal server. However, you cannot redirect port A of the external interface to port B of an internal server. This is a big disadvantage if you would like to connect with RDP to multiple internal servers from the Internet. With my old router I was able to connect to FQDN-WAN-Interface:PortA and I was redirected to InternalServer1:Port3389, or FQDN-WAN-Interface:PortB and I was redirected to InternalServer2:Port3389, and so on.
I recommend that you browse through the WNDR3700 discussion forum before you buy this device.
Initially I considered to return the router, but I made the decision to use it as an opportunity to refresh my programming skills. After my studies I worked several years as Unix and VxWorks system programmer.
I replaced the Netgear firmware with a self compiled version of OpenWrt. OpenWrt is a Linux distribution for embedded devices. You can find a detailed description of the necessary steps to build the firmware for the WNDR3700 on the OpenWrt website. Now I use Iptables to translated external and internal ports, and of course static routes are working, too.