Мой сервер (работает на Ubuntu 12.04) находится за NAT и должен иметь доступ к определенной службе, имеющей публичный IP-адрес (64.*.*.*
)
Проблема в том, что я не могу получить этот конкретный общедоступный IP-адрес (все другие IP-адреса для той же службы работают; домену назначено несколько IP-адресов). Тот же IP-адрес может быть получен из другой идентичной среды. Сервер NAT (через который я прохожу) также может получить к нему доступ.
Tcpdump на моем сервере показывает только пакеты SYN, в то время как на NAT не отображается трафик, поступающий с моего сервера. IP не заблокирован iptables на сервере NAT. Другой IP для того же сервиса работает нормально.
Схема:
Мой сервер -> Мой NAT -> (Недоступен) Публичный IP
Таблица маршрутизации:
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-адрес eth0: 10.10.2.51
Я обнаружил (сравнивая MAC-адреса в tcpdumps и просматривая таблицу arp), что вместо того, чтобы идти к моему шлюзу по умолчанию, сервер пытается установить соединение через 10.10.2.1 (но только для этого публичного IP, 64.*.*.*
), что меня озадачивает.