Я использую OpenSWAN для настройки VPN-туннеля между сетями. Мне удалось настроить тестовый сценарий следующим образом:
Около test
и test2
:
openswan
пакет.Вот как я настроил туннель:
/etc/ipsec.conf (идентично слева и справа):
version 2.0
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey
conn net-to-net
authby=secret
left=192.168.0.11
leftsubnet=10.1.0.0/16
leftsourceip=10.1.0.1
right=192.168.0.12
rightsubnet=10.2.0.0/16
rightsourceip=10.2.0.1
auto=start
/etc/ipsec.secrets (идентично слева и справа):
192.168.0.11 192.168.0.12: PSK "mytestpassword"
/etc/rc.local (слева):
modprobe dummy
ifconfig dummy0 10.1.0.1 netmask 255.255.0.0
iptables -t nat -A POSTROUTING -o eth0 -s 10.1.0.0/16 ! -d 10.2.0.0/16 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart
exit 0
/etc/rc.local (справа):
modprobe dummy
ifconfig dummy0 10.2.0.1 netmask 255.255.0.0
iptables -t nat -A POSTROUTING -o eth0 -s 10.2.0.0/16 ! -d 10.1.0.0/16 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart
exit 0
Теперь я хотел бы создать следующий сценарий:
Вопросы, которые мне нужно понять:
Может ли IPSec подключаться через шлюз VPN, который использует общедоступный IP-адрес через NAT (входящий обход NAT)? Относятся ли к этому NAT-T и IPSec passthrough или они предназначены только для исходящего NAT (то есть имеют дело с клиентами, которые находятся за NAT, но у шлюза есть общедоступный IP-адрес)? Достаточно ли перенаправить некоторые порты с router1 для тестирования, или это будет несовместимо с IPSec?
NAT-T, как определено в RFC 3947/3948, представляет собой инкапсуляцию трафика IPSec в UDP. Без этой инкапсуляции IPSec использует собственные типы протоколов под IP для обоих - транспортного и туннельного режимов, что делает невозможным работу через NAT. С инкапсуляцией UDP он будет работать через любое устройство NAT, способное обрабатывать UDP.
Направление установления соединения действительно имеет значение, поскольку маршрутизаторы NAT сохраняют состояние и поддерживают информацию о «соединениях» UDP, разрешая только «соединения» UDP, инициированные из сети с NAT. Создание правила переадресации портов для порта UDP, используемого IKE, и инкапсуляция UDP для ESP (4500 / udp) преодолели бы это ограничение, но, очевидно, разрешили бы только один хост IPSec, настроенный таким образом за устройством NAT.
Могут ли оба конца туннеля IPSec иметь динамические IP-адреса, если у одного есть доменное имя и динамический DNS?
Да ты не необходимость статический IP-адрес, хотя он, вероятно, облегчит вашу жизнь, поскольку удаляет две единичные точки отказа (поставщик / процесс обновления DDNS) из вашей конфигурации. Обратите внимание, что для работы с динамическими IP-адресами на обоих концах с аутентификацией PSK потребуется агрессивный режим для фазы 1 IKE.
Обычно я не из тех, кто отвечает на хорошо продуманный вопрос «иди, воспользуйся чем-нибудь другим», но ... IPSec VPN всегда представляет собой проблему для настройки. Добавление NAT и динамических IP-адресов - всего лишь приглашение к разочарованию.
Вы когда-нибудь смотрели на OpenVPN? Это VPN на основе SSL, которая туннелирует все через порт UDP 1194, поэтому вам не придется иметь дело с ESP. Вероятно, вы сможете настроить WAN менее чем за час.