【发布时间】:2025-12-16 16:40:01
【问题描述】:
在 AWS VPC 中,您创建的每个路由表都带有一个默认值(本地路由 10.0.0.0/16),当我希望我的 EC2 实例有另一个 EC2 实例作为默认网关时,这会导致一些问题。
例如,如果您有两个 EC2 实例,即 A(在子网 10.0.30.0/24 中)和 B(在子网 10.0.40.0/24 中),并且如果您将 A 设置为 B 的默认网关,那么来自 B 的所有数据包都是不通过 A 发送。而是通过 10.0.40.1 发送。
我什至尝试创建一个新的路由表并添加如下路由:0.0.0.0/0 go via A 的 NIC,即使这不会通过 A 路由流量
如果我删除 B 上到 10.0.40.1 的路由,那么我将失去与 B 的所有连接
我的问题是:
- 如何确保所有来自 B 的数据包始终通过 A 发送?
- 本地路由10.0.0.0/16可以删除吗?
- 我还能做些什么来做我想做的事?
【问题讨论】:
-
10.0.40.1 是一个虚拟设备,会将所有 Internet 绑定流量转发到您配置为子网默认路由的实例。这就是 VPC 的做法。您是在谈论针对 VPC 内其他实例的流量,而不是 Internet 流量?如果是这样,你为什么要这样做?
-
@Michael-sqlbot 是 VPC 内的其他实例;我的意思是来自 B 的所有流量,无论它注定要通过 A,这意味着如果 B 尝试与另一个设备通信,让我们说 C(在同一 VPC 内),即使我想通过 A 的流量。为了这样做我创建了一个新的路由表并创建了一个路由,上面写着 0.0.0.0/0 通过 A 的 NIC,但我没有看到 B 和 C 之间的任何流量通过 A,而是以某种方式直接传递给 C。
标签: amazon-web-services amazon-ec2 amazon-vpc