【问题标题】:AWS VPC Route Table -- Delete default routeAWS VPC 路由表 -- 删除默认路由
【发布时间】: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 ​​的所有连接

我的问题是:

  1. 如何确保所有来自 B 的数据包始终通过 A 发送?
  2. 本地路由10.0.0.0/16可以删除吗?
  3. 我还能做些什么来做我想做的事?

【问题讨论】:

  • 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


【解决方案1】:

嗯。在这种情况下,A 如果要通过它转发数据包,还需要在 10.0.40.0/24 中有一个接口。 AB 位于不同的网段中,这使得其中一个无法在 IP 级别到达另一个(数据包通过默认情况下不受您控制的路由器)。

该图显示的本质:

我相信您可以通过在您的 VPC 子网 10.0.40.0/24 中创建一个网络接口然后将其附加到 A 中的实例来创建此连接:

【讨论】:

  • 我不想让 A 成为 B 网络的一部分。我想要实现的是拥有三个不同的子网 a、b 和 c,每个子网分别具有设备 A、B 和 C。我希望 A 充当 B 和 C 之间的中间人(实际上是 b 和 c 子网中的任何设备)。就我而言,A 是我正在试验的虚拟设备,而 AWS 路由对我来说很困难。
  • 所以中间人需要在AB都有接口。如果您使用的是 linux,请确保打开转发。