Я установил межсайтовую VPN для провайдера связи (для передачи данных по мобильной сети).
У них подсеть 192.168.0.0/21. Он подключен через vgw (виртуальный шлюз) к подсети 10.0.1.0/24. Подсеть подключена к Интернету через igw (Интернет-шлюз).
Таблица маршрутизации подсети теперь выглядит следующим образом:
10.0.0.0/16 local
0.0.0.0/0 igw-xxx
192.168.0.0/21 vgw-xxx
Пока работает следующее:
Теперь мне нужно разрешить конечному устройству доступ в Интернет.
Думал, понадобится шлюз NAT. Поэтому я добавил в подсеть шлюз NAT и заменил igw на nat. Но это привело к исчезновению связи с экземплярами, поскольку он направляет только исходящий трафик (который я позже прочитал в руководстве).
Итак, какие еще варианты у меня есть? Как мне настроить конечные устройства (Linux) для использования этого шлюза nat.
VPN-подключения VPC не предназначены для такой работы.
Вы не можете направлять трафик на шлюз NAT через одноранговое соединение VPC, соединение Site-to-Site VPN или AWS Direct Connect. Шлюз NAT не может использоваться ресурсами на другой стороне этих подключений.
https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html
Единственный способ, которым что-либо на другой стороне VPN-соединения может проходить через VPC и получать доступ в Интернет, - это реализовать решение, в котором отсутствует сквозной трафик.
Примером этого может быть прокси-сервер Squid HTTP, настроенный в настройках прокси-сервера HTTP клиента. Используя прокси-сервер HTTP, клиент устанавливает соединение с прокси-сервером (на экземпляре EC2) и запрашивает второе соединение с местом назначения. Это два независимых TCP-соединения - устройство на другой стороне VPN, подключающееся к экземпляру EC2, и экземпляр EC2, подключающийся к Интернету. Это работает благодаря двум независимым соединениям. Невозможно направить трафик напрямую из VPN-соединения на какой-либо другой тип шлюзового устройства в VPC - только на цели EC2 и другие службы на основе ENI, которые явно поддерживают его.