I have stumbled over a really strange problem that I do not know how to fix.
Setup:
Client <- (wireless) -> WRT54G (LAN) <- cable -> Switch <- cable -> m0n0wall <- cable -> Internet
The switch has some other clients that can reach Internet without problems.
The Client however can not. At least not until I manually ping the client from m0n0wall.
it doesn't work if I ping it from another client connected to the switch.
My main suspect is the WRT54G unit, but the LAN is connected to the LAN port and the WAN port
is not used at all. And, when I used a Windows 2003 server in the very same place as the
m0n0wall, it was working all the time.
Any ideas on things I can try?
Sounds like you need the ping to activate a route, which normally should not be necessary. I've seen this problem when you are joining two separate subnets through a gateway when there is another subnet junction between yet another gateway at the end.
Going by your setup, it should be a straight shot all the way with one route. So the next test you could try is fiddling with the MTU settings of the client as an experiment. Start with 1300 for example. It's possible that the large packets are dieing in transit and thus the route never gets established, but the ping since it's small, gets the route going, then the larger packets fall in line.
Just my guess, I've seen stranger things before.