1

问题

我们可以制作一个同时包含 igw-id(Internet 网关 ID)和 vgw-id(VPN 网关 ID)的路由表吗?如果我们不能/不应该这样做,为什么?

例子

10.0.0.0/16 --> Local  
172.16.0.0/12 --> vgw-id  
0.0.0.0/0 --> igw-id 

参考

https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario3.html
(我主要参考“Overview”部分和“Alternate routing”部分。)

解释

上面这个网页展示了一个 VPC 有一个公有子网、一个私有子网和一个 VPN 网关的场景。在此示例中,始终从私有子网中的实例访问 VPN 网关(这意味着其路由表没有记录“igw-id”)。我想知道为什么一个路由表没有“igw-id”和“vgw-id”。

4

3 回答 3

2

是的,我们可以同时拥有igwvgw。事实上,上面的示例非常适合公共子网,它可以通过直接连接或站点到站点 VPN 连接到您的公司网络,并且还可以访问互联网并可以从互联网访问。

现在,不管你是否想要这个,这是一个架构决定。igw在 AWS 给出的示例场景中,他们尝试通过拥有一个可以包含可从 Internet 访问的服务的公共子网(带有 可以使用站点到站点 VPN 从公司网络访问这些后端服务,这就是子网具有vgw.

于 2021-09-12T14:24:29.773 回答
1

是的,您可以拥有一个包含您指定的 3 条路由的路由表。但是,请记住,使用路由0.0.0.0/0 --> igw-id,互联网上的主机可以启动与该子网中的实例的连接。通常,您希望保护子网中的实例,您允许路由到您的本地网络,而不是将其暴露给 Internet。如果这些实例需要连接到 Internet,AWS 会为您的 VPC 推荐 NAT 设备

于 2021-09-12T14:04:22.333 回答
1

虽然在技术上是可行的,但不这样做的主要原因是由于一个称为网络分段的概念。它基本上遵循“纵深防御”方法,即网络层应分为“公共”和“私有”部分(更多区域也经常使用,如第三层用于数据存储,第四层用于管理其他区域的基础设施)三层)。

由于您的公共子网直接暴露在互联网上,因此当您错误配置某些内容时,它很可能会被破坏。如果您的公有子网中有通往您的 VPN 网关的路由,那么一次漏洞也可以让攻击者攻击您的本地环境。

这就是为什么在您的架构中添加一两个网络层的最佳实践。即使公共层受到威胁,他们仍然需要进入私有层中的实例,然后才能攻击您的本地环境。

建议您的公有子网尽可能仅包含弹性负载均衡器或类似设备。它是减少应用程序服务器攻击面的好方法(减少暴露不需要的端口等的机会)。

可以在这里找到一个很好的指南。它不包括 vpns,但您可以将它们视为应用程序层的一部分。

于 2021-09-12T14:14:20.100 回答