У меня следующая настройка сети:
+-----------------------------------+
| |
+------------------------+ | Public Box |
| Client Box | IPSEC | public IP: x.x.x.x |
| 192.168.13.21 +--------------+ source IP for IPSEC: 192.168.23.1 |
+------------------------+ | |
+-----------------------------------+
Клиентский ящик не имеет общедоступного IP-адреса (он скрыт за NAT-маршрутизатором, который сам получает адрес 10.xxx/8 от интернет-провайдера (NAT операторского уровня), но у него есть постоянно работающий туннель IPSEC к общедоступному ящику. Я могу общаются между общедоступным ящиком и клиентским ящиком по их адресам 192.xxx. Общий ящик настроен на использование IP-адреса 192.168.23.1 для связи внутри туннеля IPSEC, а также доступен через этот адрес из клиентского ящика и других ящиков. общедоступный IP-адрес Public Box не находится в доменах шифрования (левая подсеть / правая подсеть) конфигурации IPSEC.
Пока все работает отлично. Теперь цель состоит в том, чтобы сделать один IP-порт (443) клиентского ящика общедоступным из Интернета, перенаправляя любое соединение, направленное на порт 10443 общедоступного IP-адреса общего ящика, на порт 443 клиентского ящика через туннель IPSEC. .
Я пробовал использовать следующее правило (у меня все политики на ACCEPT)
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 10443 -j DNAT --to 192.168.13.21:443
Это не сработало. При попытке подключиться по telnet к порту 10443 Public Box я получаю сообщение «telnet: подключиться к адресу x.x.x.x: сеть недоступна»
Причина, по-видимому, в том, что Public Box пытается найти IP-адрес 192.168.13.31 через ARP, но не устанавливает соединение в туннель IPSEC.
00:26:42.649885 IP 88.217.180.252.34730 > x.x.x.x.10443: Flags [S], seq 17484960, win 65535, options [mss 1412,nop,wscale 5,nop,nop,TS val 1133369435 ecr 0,sackOK,eol], length 0
00:26:42.650012 ARP, Request who-has 192.168.13.21 tell x.x.x.x, length 28
Я считаю, что это связано с тем, что адрес ИСТОЧНИКА этого пакета является адресом источника отправителя соединения, поэтому он не будет упакован в туннель (туннель направляет только 192.168.23.0/24 <--> 192.168.13.0/24 ).
Итак, мой вопрос: возможно ли NAT адрес ИСТОЧНИКА входящего пакета на 192.168.23.1, чтобы он маршрутизировался через туннель IPSEC в клиентский ящик, и любой ответный пакет снова приходил в общий ящик, чтобы получить " un-masqued "и отправлен обратно отправителю?
Это вообще возможно?