Я знаю, что это возможно - и, по-видимому, довольно часто встречается у крупных компаний, которые не / не могут маршрутизировать частные адреса по причинам перекрытия, - но я не могу понять, как заставить это работать. Я сейчас играю с pfSense, Vyatta и Cisco 5505 с точки зрения оборудования.
Итак, вот моя установка:
Итак, мы пытаемся сделать следующее: направлять трафик через туннель от машины A к машине B без использования частных адресов. то есть 172.16.0.200 отправляет TCP-запрос на 10.0.0.210:80, и, что касается EAST, он видит src IP 10.0.0.254.
На WEST у меня есть типичный Source NAT «многие к одному» для преобразования 172.16.0.0/24 в 10.0.0.254, и это подтверждено, что он работает.
Также на WEST у меня есть следующая конфигурация IPSec:
У меня обратная конфигурация на ВОСТОК. Что происходит, когда я делаю запрос с машины A на 10.0.0.210:80, так это то, что SNAT переводит частный адрес машины A в 10.0.0.254, и он маршрутизируется (и отбрасывается на другом конце) без установления туннеля. Я предполагаю, что происходит то, что внутренний интерфейс на WEST получает пакет от 172.16.0.200, и поскольку он не соответствует локальной подсети, определенной в конфигурации туннеля, он не обрабатывается механизмом IPSec, и туннель не установлен. .
Как у вас это работает? Кажется, что это курица и яйцо с NAT и IPSec, и я просто не могу понять, как это можно сделать: могу ли я сказать, «если на внутреннем интерфейсе получен пакет с адресом назначения 10.0.0.210, переведите его на 10.0.0.254 перед механизм IPSec проверяет это "?
Оказывается, он действительно работает (если вы правильно настроили в Vyatta). В их документации (которая использует OpenSWAN) они заявляют, что NAT применяется до применения конфигурации IPSec. Не уверен, актуально ли это для других брандмауэров / маршрутизаторов. Можно попробовать с PIX вместо Vyatta.
Вам необходимо изменить переадресацию портов, чтобы сообщить Cisco направить ваш запрос tcp: 80 на порт 80 машины b (192.168.10.2). В противном случае маршрутизатор Cisco не знает, на какую машину пойдет входящий запрос, и остановит его.