Я пытаюсь получить Azure От сайта к сайту VPN и работающий использующий RRAS, но потребовать, чтобы справка, настраивающая iptables моего маршрутизатора, соединила мостом порты VPN и протоколы к серверу RRAS, не используя NAT, все еще позволяя NAT использоваться для всего другого трафика.
Я смог настроить Azure и VM правильно, и я могу разбудить соединение и работающий с данными, текущими через ссылку (и показанный на портале Azure, как соединено с данными, идущими обоими путями). Однако соединение, которое настраивается, не применимо, я не могу проверить с помощью ping-запросов или, казаться, делаю любую форму соединения между Azure VM's и моими локальными машинами.
Я полагаю, что это происходит из-за От сайта к сайту Azure VPN, требующая, чтобы локальный шлюз VPN был подключен непосредственно к Интернету, не проходя брандмауэр NAT (который я должен использовать, поскольку это - моя домашняя широкополосная связь поэтому, только имеют один IP), поэтому, в то время как соединение может быть установлено, NAT на моем маршрутизаторе изменяет пакеты способом, который означает, что они неспособны быть направленными правильно однажды достижение сервера RRAS.
Я попробовал альтернативный От сайта к сайту решения VPN (OpenVPN, SoftEther, сам RRAS), но ни один не работает правильно весь показ той же проблемы, посредством чего два VM's, размещающие соединение VPN, могут соединиться со всем, и мои серверы домашней сети могут быть правильно направлены для соединения со стороной Azure, но я верю любому из-за ограничений на Azure VM's (только адаптер единой сети и никакая способность включить неразборчивый режим) или сама виртуальная сеть Azure, это не означает никакую другую Azure, которую VM может подключить к моей домашней сети несмотря на добавление в статических маршрутах для движения через сервер VPN или добавление его как дополнительный шлюз.
Я использую маршрутизатор RT-AC68U Asus, выполняющий последнюю сборку Merlin, таким образом, я надеюсь, что могу использовать Azure От сайта к сайту VPN путем изменения, это - правила iptables и конфигурация сети следующим образом:
Сеть в настоящее время похожа на это:
VM's Azure - 192.168.1.0/25, шлюз VPN с помощью динамической маршрутизации с общедоступным IP.
Домашняя сеть 192.168.0.0/24:
Модем VDSL <-мост PPPOE так Маршрутизатор имеет общедоступный IP-> Маршрутизатор Asus <-NAT-> 192.168.0.0.24
Таким образом, это - то, что я пытаюсь получить к так RRAS, имеет общедоступный IP в целях VPN только:
Я открыт для других предложений для получения От сайта к сайту работа VPN, если существует простое решение.
[обновите 1]
Я в настоящее время думаю о следующем, я дал RRAS Hyper-V VM дополнительный сетевой адаптер и присвоил его VLAN 635, неразборчивый режим включен, если по некоторым причинам он хочет измениться, это - MAC-адрес. Я затем отключил все объекты соединения кроме двух объектов Обнаружения топологии Канального уровня и IPv4.
Я присвоил настройкам IPv4 общедоступный IP-адрес, маску подсети 255.255.255.255 и шлюз, который является тем же шлюзом ppp0 адаптера в маршрутизаторе.
Я выполнил следование маршрутизатора, чтобы попытаться направить любой трафик, пытающийся связываться со шлюзом VPN Azure через к VLAN, и таким образом надо надеяться, позволяющий это быть направленным, не используя NAT:
/usr/sbin/ip link add link br0 name br0.635 type vlan id 635
/usr/sbin/ip link set dev br0.635 up
/usr/sbin/iptables -I INPUT -i br0.635 -j ACCEPT
/usr/sbin/iptables -I FORWARD -i ppp0 -o br0.635 -s <azure gateway IP> -j ACCEPT
/usr/sbin/iptables -I FORWARD -i br0.635 -o ppp0 -d <azure gateway IP> -j ACCEPT
/usr/sbin/iptables -I FORWARD -i ppp0 -o br0.635 -s <ppp0's gateway> -j ACCEPT
/usr/sbin/iptables -I FORWARD -i br0.635 -o ppp0 -d <ppp0's gateway> -j ACCEPT
К сожалению, это не работает и при попытке соединиться в RRAS, он говорит мне, что удаленный сервер не отвечает.
Итак, мне удалось выяснить это после долгих поисков, я могу использовать встроенную функциональность Azure Site-to-Site VPN с OpenSwan, которая работает на компьютере с Linux ( Raspberry Pi / Arch Linux) за NAT-маршрутизатором моей домашней сети.
Топология сети:
Сначала я настроил Azure с:
На маршрутизаторе моей домашней сети я перенаправил следующее к моему шлюзу Linux, на котором запущен Openswan (192.168.0.2):
Мой ipsec.conf выглядит так:
version 2.0
config setup
nat_traversal=yes
virtual_private=%4:192.168.0.0/24
protostack=auto
interfaces="ipsec0=eth0"
conn azure
authby=secret
auto=start
type=tunnel
left=192.168.0.2
leftsubnet=192.168.0.0/24
leftnexthop=192.168.0.1
right=<azure's VPN gateway IP>
rightsubnet=192.168.1.0/24
ike=3des-sha1-modp1024,aes128-sha1-modp1024
esp=3des-sha1,aes128-sha1
pfs=no
ipsec.secrets:
192.168.0.2 <azure vpn gateway> : PSK "Azure's PSK"
Это привело к подключению nd запущен, чтобы разрешить маршрутизацию между сайтами (в обе стороны после большого разочарования):
/etc/sysctl.conf:
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.icmp_ignore_bogus_error_responses = 1
Сценарий bash, который запускается при загрузке, чтобы «ipsec verify» был доволен:
#!/bin/bash
for vpn in /proc/sys/net/ipv4/conf/*; do
echo 0 > $vpn/accept_redirects;
echo 0 > $vpn/send_redirects;
done
sysctl -p
Наконец мои правила iptables, которые потребовали наибольшего количества возни:
таблица фильтров, это позволяет домашней сети подключаться к Azure и позволяет установить соединение, но виртуальные машины Azure по-прежнему не могут подключиться к серверам домашней сети:
-A FORWARD -s 192.168.1.0/24 -m policy --dir in --pol ipsec -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -m policy --dir out --pol ipsec -j ACCEPT
-A INPUT -p udp -m udp --dport 500 -j ACCEPT
-A INPUT -p udp -m udp --dport 4500 -j ACCEPT
-A INPUT -m policy --dir in --pol ipsec -j ACCEPT
-A INPUT -p esp -j ACCEPT
nat table, это позволяет виртуальным машинам Azure подключаться к любой машине в моей домашней сети:
-A PREROUTING -i eth0 -p udp -m udp --dport 4500 -j DNAT --to-destination <azure public vpn ip>:4500
-A PREROUTING -i eth0 -p udp -m udp --dport 500 -j DNAT --to-destination <azure public vpn ip>:500
-A POSTROUTING -o eth0 -j MASQUERADE
При этом я могу пинговать и общаться в обоих направлениях, все виртуальные машины Azure могут видеть мою домашнюю сеть, все машины домашней сети могут см. мою виртуальную машину Azure.
Сторона Azure маршрутизирует правильно сама по себе, для моей домашней сети я настроил статический маршрут в моем маршрутизаторе для отправки 192.168.1.0/24 на 192.168.0.2, но для тестирования на своей машине я только что создал статический маршрут:
route -p ADD 192.168.1.0 MASK 255.255.255.0 192.168.0.2 METRIC 100
Я надеюсь, что хоть кто-то сочтет это полезным, настройка заняла много времени, и нет хорошего завершения Мы предлагаем просто смесь решений, которые частично работают.