.png)
У меня есть совершенно новый VPC (10.0.0.0/16) с 3 публичными подсетями (указывающими на IGW) и 3 частными подсетями (с NAT GW в каждой). Я развернул OpenVPN-устройство в публичной подсети и настроил его на использование режима NAT ( Yes, using NAT
в конфигурации маршрутизации). У меня также есть тестовый экземпляр в одной из частных подсетей. И экземпляр OpenVPN, и тестовый экземпляр имеют группы SG с «щедрой» гибкостью (т. е. все разрешено входящим и исходящим... для целей тестирования). На OpenVPN я настроил 10.0.0.0/16
в Specify the private subnets to which all clients should be given access (one per line):
полевых условиях.
С моего Mac (в домашней сети 192.168.178.0/24) я могу установить туннель и легко попасть на тестовый экземпляр. Все хорошо.
Теперь я хочу переключиться в режим маршрутизации.
- Я изменил режим маршрутизации на
Yes, using Routing
. Я отключил проверку источника/назначения на экземпляре OpenVPN. - Я добавил статический маршрут во все 4 таблицы маршрутизации в VPC (3 для частных подсетей и 1 для публичной подсети), чтобы указать, что трафик, направленный в
192.168.178.0/24
(мою домашнюю сеть), должен поступать в экземпляр OpenVPN (вероятно, для публичной подсети это не требовалось). - Я добавил
192.168.178.0/24
вSpecify the private subnets to which all clients should be given access (one per line):
поле (не уверен, было ли это обязательным) в дополнение к10.0.0.0/16
. - Я перенастроил разрешения пользователя, под которым я вхожу в систему,
Use Routing
и снова указал обе подсети, указанные выше (10 и 192).
Я все еще могу установить туннель. Я могу получить доступ к внутреннему IP-адресу экземпляра OpenVPN:
$ traceroute 10.0.4.223
traceroute to 10.0.4.223 (10.0.4.223), 64 hops max, 52 byte packets
1 10.0.4.223 (10.0.4.223) 178.345 ms 174.470 ms 173.680 ms
$
Но я НЕ могу добраться до тестового экземпляра в частной подсети:
$ traceroute 10.0.165.139
traceroute to 10.0.165.139 (10.0.165.139), 64 hops max, 52 byte packets
1 172.27.232.1 (172.27.232.1) 194.976 ms 177.014 ms 174.402 ms
2 * * *
3 * * *
4 * * *
^C
$
Интересно, что если я подключаюсь по ssh к своему серверу OpenVPN и пытаюсь запустить curl NGINX на локальной рабочей станции, где я запустил туннель, я не могу до него добраться. Похоже, что рабочая станция может добраться до сервера OpenVPN (см. трассировку выше 10.0.4.223
), но сервер OpenVPN не может добраться до рабочей станции (по некоторым причинам).
Похоже, что поток, инициированный с рабочей станции, способен найти маршрут к (и обратно) к экземпляру OpenVPN. Однако маршрут прерывается где-то от рабочей станции к тестовому экземпляру (и обратно) И, похоже, он также прерывается при инициировании от экземпляра OpenVPN к рабочей станции (см. curl).
решение1
В конце концов я понял, что устройство OpenVPN Access Server не может быть настроено для обратного подключения к собственному IP клиента в локальной подсети. Однако клиент может быть доступен через туннельный IP, назначенный VPN. Этот IP может быть настроен статически для каждого пользователя или может быть получен из пула, определенного на устройстве.
В моем случае я настроил оба варианта (см. рисунок).
Важно знать, что это (это) также подсети, которые необходимо использовать в информации о маршрутизации. То есть IP, который находится в сети 10.0.0.0/16, может достичь клиентского устройства по одному из назначенных адресов 172.27, и поэтому в таблице маршрутизации необходимо указать сети 172.27 (а НЕ локальную собственную сеть клиентского устройства - 192.168.178.0/24 в моем примере).