Как разделить VPN-подключение к экземплярам в частной подсети? - PullRequest
0 голосов
/ 27 июня 2018

Я создал 2 экземпляра:

  • VM-A в общедоступной подсети
  • VM-B в частной подсети

Я следовал этому руководству и мог заставить его работать. VM-B может получить доступ к Интернету (через VM-A ): https://aws.amazon.com/premiumsupport/knowledge-center/vpc-nat-instance/

Вкл. VM-A Я настроил OpenVPN, и он может подключаться к нашему VPN-серверу в нашем офисе.

Теперь я бы хотел, чтобы VM-B мог использовать VPN-подключение VM-A для доступа к машинам в нашем офисе, но я не могу найти способ, как сделай это.

Мне кажется, я знаю, почему он не работает, потому что в таблице маршрутов VM-B у меня есть:

Destination    Target
10.0.0.0/16    local
0.0.0.0/0      eni-xxxx

Сетевой интерфейс eni-xxxx относится к VM-A . Так что движение идет туда.

Вместо этого я хотел бы добавить что-то подобное, но это кажется невозможным, потому что "tun0" не является допустимым идентификатором ресурса:

Destination
10.100.7.2 (network in our office accessible via VPN)

Target
tun0 (the network interface created by OpenVpn)

Какой-нибудь совет, как решить эту проблему?

Дополнительный вопрос: Полезно ли добавлять маршруты с помощью команды route add или лучше использовать веб-интерфейс «Таблицы маршрутов» на панели мониторинга VPC?

1 Ответ

0 голосов
/ 03 июля 2018

Я нашел решение. Мне не хватало правила в брандмауэре для маскировки адреса. VM-A :

# the subnet of VM-B is 10.0.30.0/24
$ sudo iptables -t nat -A POSTROUTING -o tun0 -s 10.0.30.0/24 -j MASQUERADE
...