NAT AWS VPN 通过 VPC 到 AWS IOT

NAT AWS VPN to AWS IOT via VPC

我的公司设备有一个专用 M2M GSM 网络。 我想将流量从我的设备发送到 AWS IOT,但 M2M 提供商不允许从其 SIM 卡访问互联网,它只提供到专用网络的 IPSec 连接。

我现在在配置 IPSec 连接到 AWS VPC 时遇到问题,我的模拟人生可以成功地 ping 我的 AWS VPC 中的所有实例。然而,我想要的是让我的模拟人生访问 AWS IOT。

我做了什么:

  1. 我用 AWS third scenario 配置了我的 VPN。我有一个 CIDR 为 192.168.0.0/24 的 public 网络和一个 CIDR 为 192.168.1.0/24 的专用网络。我的 VPN 有一条用于我的 M2M 网络的静态路由 CIDR 10.1.128.0/14。
  2. 然后我在 public 网络中启动了一个 EC2 Nat 实例。
  3. 我在我的 VPC 主路由中添加了路由规则 table 以将流量路由到 0.0.0.0/0 到我的 NAT 实例。
  4. 我在我的 VPC 的私有网络中启动了一个 EC2 实例,并尝试从它访问互联网,这项工作成功了,我可以看到流量通过我的 nat 实例。所以我假设我的 nat 和路由配置得很好。

但是我仍然无法从我的 SIM 卡访问互联网,流量甚至没有路由到我的 NAT 实例。根据 John Rotenstein's answer VPN 流量不会使用我的路由规则。

AWS VPN 是否会丢弃未以 VPC 或 VPN 的 CIDR 为目的地的流量?有安全原因吗? 如果是这样的话,有没有办法为 VPN 的流量定制路由规则?或者是在 EC2 实例中使用自定义 VPN 的唯一解决方案?

感谢您的帮助。

I added a routing rule to my VPC main routing table to route trafic to 0.0.0.0/0 to my NAT instance.

VPC 的 "main" 路由 table 会影响来自 VPC 硬件 VPN 的流量,这是一种可以理解的误解。它没有。没有路由 table 适用于此类流量,只有 VPC 子网的隐式目标。从这样的 VPN 只能访问指定的 CIDR 块。

Does AWS VPN drop traffic which is not destinated to the VPC's or VPN's CIDR? Is there a security reason for that?

是的,流量被丢弃了。

这可能不是专门出于安全原因...这只是服务设计的工作方式。托管 VPN 连接旨在访问基于实例的服务,不支持我们通常归类为网关、边缘到边缘、对等或传输的流量。

如果您可以将边缘设备配置为使用 Web 代理,则像 squid 这样的转发代理服务器可以处理设备的连接,因为设备和转发代理之间的 IP 路径是仅涉及设备和代理 IP。

一个更简单的解决方案是使用基于实例的防火墙来终止 VPN,而不是内置的 VPC VPN 服务,因为这样防火墙实例可以允许流量通过自身发夹,源伪装( NAT) 自己的 EIP 背后的流量,这将是 VPC 基础设施很容易支持的东西。

当然,您可以自己构建基于实例的防火墙,但 AWS Marketplace 中也有多种产品提供 IPSec 隧道终止和 NAT 功能。有些有免费试用期,其中唯一的费用是实例的费用。