У меня следующая проблема.
Я установил соединение типа "сеть-сеть" через IPSec между виртуальной сетью в Azure и Raspberry Pi у себя дома.
Raspberry Pi подключен через кабель к моему маршрутизатору (интерфейс eth0) и действует как VPN-шлюз и дополнительный маршрутизатор для отдельной сети через интерфейс Wlan (wlan0).
Итак, у меня есть следующая структура:
Дома:
Public IP: 87.114.x.x
Router with first subnet: 192.168.2.0/24
=> Raspberry PI via eth0 Interface: 192.168.2.109
=> Starting from the Raspberry Pi:
=> Second subnet via wlan0 interface: 192.168.10.0/24
=> My mobile phone connected to RPI via WLAN: 192.168.10.185
=> Laptop connected to RPI via WLAN via en0: 192.168.10.177
=> Virtual machine on laptop with network bridge to en0: 192.168.10.137
В Azure:
Public IP. 104.122.x.x
=> Subnet: 10.3.0.0/24
=> Virtual machine: 10.3.0.5
Туннель IPSec:
10.3.0.0/24 === 192.168.10.0/24
Интерфейсы eth0 и wlan0 на RPI «подключены» в обоих направлениях через iptables (правило пересылки).
Связь между подсетями устанавливается без проблем. Я могу подключиться к виртуальным машинам в Azure со всех устройств в моей домашней сети (192.168.10.0/24), включая виртуальную машину на моем ноутбуке.
Однако с виртуальной машины в Azure я могу подключиться только к тем устройствам, которые физически подключены к моему RPI, то есть к моему ноутбуку и мобильному телефону. Я не могу подключиться к виртуальной машине на моем ноутбуке, даже если она находится в той же сети через сетевой мост.
Если я подключаюсь к виртуальной машине Azure через SSH с локальной виртуальной машины, в netstat отображается IP-адрес моего ноутбука, а не IP-адрес виртуальной машины (что в принципе верно).
Подозреваю проблема с таблицами ARP.
Как вы думаете, в чем проблема?