OK, imagine you are a packet from an arbitrary address coming in on port2, destination 59.22.94.5 which is your server. The FGT translates your destination IP address to 172.18.0.67 and forwards you to port3 where the server is found using ARP. All of this WITHOUT checking the NAT box in the policy, as it should be.
Now, the server responds. Destination address now is some address on the internet.
First, the server looks up it' s own routing table where hopefully it finds 172.18.0.1, the port3 address of the FGT, as the default gateway. IF THIS IS NOT THE CASE any return traffic must fail!
Now you (the reply packet) reach the FGT on port3. Looking into the routing table, this address is matched by 2 routes: one to port1, one to port2.
Which one to take??
Depending on the server' s address, being either odd or even, port1 or port2 will be chosen. So depending on the server' s address you are forwarded to the wrong port and discarded. From the outside it looks like the packet has never reached the server but that' s not true.
So, do the following:
- clarify which port leads to the internet
- create one default route to this port
- if you cannot reach any host on the port1 subnet anymore, the routing there is wrong
- you should be able to ping your server from the internet now
Ede Kernel panic: Aiee, killing interrupt handler!