UDP traffic lost behind NAT

my o.s is FreeBSD 7.2 stable. i am running a game net, behind that 7.2 stable FB router.
i have one static ip and ipnat running, all fine except this:
this is what i always find when my game players tried to connect to this fps online game which use udp traffic 4 playing:
1. client 1 and client 2 (both behind NAT) connected to game server 203.89.146.xxx. the server listens on tcp traffic port 39100. both connection succeed.
2. client 1 create room "inside" that game server 's "lobby". (still "in" 203.89.146.xxx tcp port 39100). client 2 entered the room. it succeeded.
3. client 1 % 2 tried to start playing. both of them start to sending out packets via udp to another ip, 203.89.146.yyy which listen on udp port 40008 (same for both client). router send icmp dest unreach, as if those udp packets are misplaced or "lost" even if i allow any in my ipf/ipfw.
4. these error don't happen when they tried to connect using DIFFERENT (static) ip through the same FB router, to the same game server. please, i very much need some addtional information, are there any "special" treatment which FBSD treat udp traffic behind NAT which i havent known yet? TIA.
 
How are you confirming #4? tcpdump? Are you sure its your router that's generating the ICMP destination unreachable?

Have you tried anything else for NAT? i.e. PF?
 
Back
Top