【问题标题】:NAT AWS VPN to AWS IOT via VPC通过 VPC 将 AWS VPN NAT 到 AWS IOT
【发布时间】:2018-09-27 05:14:56
【问题描述】:

我的公司设备有一个专用的 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 的公共网络和一个 CIDR 为 192.168.1.0/24 的专用网络。我的 VPN 有一条用于 M2M 网络的静态路由 CIDR 10.1.128.0/14。
  2. 然后我在我的公共网络中启动了一个 EC2 Nat 实例。
  3. 我在我的 VPC 主路由表中添加了一条路由规则,以将到 0.0.0.0/0 的流量路由到我的 NAT 实例。
  4. 我在我的 VPC 的私有网络中启动了一个 EC2 实例并尝试从它访问互联网,这项工作我可以看到流量通过我的 nat 实例。所以我假设我的 nat 和路由配置良好。

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

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

感谢您的帮助。

【问题讨论】:

  • 您可以启用 AWS 流日志(VPC 或子网)来捕获到您的 VPN 和流出的流量详细信息。这将为您提供清晰的洞察力,让您了解幕后发生的事情。
  • 您好,感谢您的帮助。正如你所说,我为我的 VPC 启用了流日志。之后,我尝试从我的一个 sim 中直接 ping 一个 EC2 实例,并在 Flow Log 中查看接受的数据包。但是,例如,当我尝试 ping 8.8.8.8 时,我没有记录日志。所以我猜这意味着到互联网的数据包在进入 VPC 之前被丢弃在虚拟私有网关上。

标签: amazon-web-services amazon-ec2 vpn aws-iot aws-vpc


【解决方案1】:

我在我的 VPC 主路由表中添加了一条路由规则,以将到 0.0.0.0/0 的流量路由到我的 NAT 实例。

VPC 的“主要”路由表会影响来自 VPC 硬件 VPN 的流量,这是一个可以理解的误解。它没有。没有适用于此类流量的路由表,只有 VPC 子网的隐式目标。此类 VPN 只能访问分配的 CIDR 块。

AWS VPN 是否会丢弃不是发往 VPC 或 VPN 的 CIDR 的流量?这样做有安全原因吗?

是的,该流量已被丢弃。

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

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

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

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

【讨论】:

  • 感谢您的回答,这确实清楚了很多事情并证实了我的观察。我考虑了一个代理,我可能会寻求类似的解决方案来获得像Soracom Beam 这样的解决方案。感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 2020-09-07
  • 2019-04-04
  • 2018-06-16
  • 2023-03-12
  • 2016-06-01
  • 2016-12-06
  • 2020-03-10
  • 1970-01-01
相关资源
最近更新 更多