
У меня есть VPC с двумя экземплярами EC2:
- API
- Частный IP
10.0.103.200
(частная подсеть)
- Частный IP
- VPN-маршрутизатор
- Частный IP
10.0.103.100
(частная подсеть) - Частный IP
10.0.4.100
(публичная подсеть) и публичный IP - Внутренне установленный IP
10.69.69.1
- Частный IP
Публичный IP VPN используется внешними устройствами для подключения с помощью IPSEC/L2TP. Клиенты, подключающиеся таким образом, получают адреса из 10.69.69.0/24
пространства, которое управляется только внутри самой машины VPN. Машина VPN имеет адрес10.69.69.1
Конечно, таблица маршрутизации AWS не знает об этом 10.69.69.1
, однако, поскольку API может видеть и взаимодействовать с VPN, я должен иметь возможность просто сделать:
ip route add 10.69.69.0/24 via 10.0.103.100
К сожалению, это не работает и 10.69.69.1
по-прежнему недоступно из API. Я проверил, что VPN вообще не получает трафик в этом случае.
Делает ли AWS что-то, что не позволяет мне этого достичь?
Конечной целью является обеспечение 10.69.69.0/24
доступа ко всему через API, но первым шагом является получение доступа к собственному адресу VPN в этом пространстве.
Я знаю, что у AWS тоже есть свои собственные VPN-сервисы, но они слишком дороги для моего варианта использования. Мне нужно подключить кучу коробок (маршрутизатор LTE, Raspbery Pi и IP-камеру). AWS IoT кажется крутым, но, к сожалению, он, вероятно, не решит мою задачу. Кроме того, я хотел бы избежать необходимости подключаться из API к VPN с помощью IPSEC/L2TP, но в настоящее время это, похоже, единственный вариант, который я знаю.
решение1
Скорее всего, вы сталкиваетесь с проверкой source/dest, которую экземпляры EC2 выполняют по умолчанию: они блокируют любой трафик, который не предназначен для их интерфейсов напрямую. Это та же проблема, с которой вы сталкиваетесь при создании экземпляра NAT.
Это можно отключить.в консолив сетевых настройках вашего экземпляра.