My server (runs on Ubuntu 12.04) is behind a NAT and has to access a specific service that has a public IP address (64.*.*.*
).
The problem is that I cannot reach that specific public IP (all other IP addresses for the same service work; the domain has several IP addresses assigned to it). The same IP address can be reached from another identical environment. The NAT server (through which I pass) can also access it.
Tcpdump on my server shows only SYN packages, while on the NAT does not show any traffic comming from my server. The IP is not blocked by iptables on the NAT server. Another IP for the same service works fine.
Scheme:
My Server -> My NAT -> (Unreachable) Public IP
Routing table:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.10.2.200 0.0.0.0 UG 0 0 0 eth0
10.10.0.0 10.10.2.1 255.255.255.0 UG 0 0 0 eth0
10.10.2.0 0.0.0.0 255.255.254.0 U 0 0 0 eth0
10.10.9.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
IP Address of eth0: 10.10.2.51
I discovered (by comparing the MAC addresses in tcpdumps and looking in the arp table) that instead of going towards my default gateway, the server tries to establish the connection through 10.10.2.1 (but only for that public IP, 64.*.*.*
), which is puzzling me.
10.10.0.*
, then it'll be routed through10.10.2.1
. For the reasons you've listed, it's probably a routing issue on your server, and the address we're trying to reach matters very much for figuring this out.