Due to a recent experience of mine in problems with routing, I would like to share the magic of the ip_forwarding option in Unix/Linux.
ip has a switch that controls whether the computer will forward packets it receives that are addressed to others. If this switch is not on, your router will not route. If you find that your router is acting like a roach motel (packets check in; they don't check out), or more specifically, is responding to pings from either side to either of its ip addresses, but not allowing any traffic through, this may in fact be your problem.
For Solaris, you can check with the command: ndd /dev/ip ip_forwarding
This will tell you "0" for no, or "1" for yes. To fix it enter: ndd -set /dev/ip ip_forwarding 1
For linux, to determine if ip_forwarding is on, use cat /proc/sys/net/ip/ip_forwarding
again 1 for on and 0 for off. To fix, you can use: echo "1" > /proc/sys/net/ip/ip_forwarding
You may need to check to see that said file exists in said location, our router is Solaris, so I'm not sure of the address.