AWS VPC 无法删除到不存在的 IP 范围的路由规则

AWS VPC Cannot delete routing rule to inexistent IP range

我整个上午都在研究这个问题,但它似乎超出了我对 AWS VPC 的了解。

我们有一个旧的 AWS 账户,其中包含一系列 VPC。这些是几年前创建的。我关心的 VPC 很容易就有 6 年的历史,如果不是更老的话。现有的 VPC 是:

eu-west-1(爱尔兰)

us-west-2(俄勒冈州)

我正在使用的 VPC 是 I1: 172.31.0.0/16.

I1O1 是对等的。

好的,我现在有一个新帐户,我在俄勒冈州创建了一个新的 VPC。让我们称之为

我看过 O1NO1。对等互连工作正常,路由 tables 也是如此。

当我查看 I1NO1 时出现问题。

我担心的是:当我为 I1 修改路由 table 时,我看到以下规则。

我不明白 10.0.0.0/8 规则。完整的 IP 范围正在内部路由并且:

当我去修改路由table时,无法删除172.31.0.0/1610.0.0.0/8规则,所以我只能假设它们是默认创建的。

我的问题是,当 IP 范围是 "non-existent" 时,这个规则怎么会是 active?为什么我不能删除这个?我从未见过这个范围被默认添加到路由 table,这可能是 AWS 很久以前做的事情吗?

我添加了规则 10.1.0.0/20 将流量路由到我的对等 VPC。我希望因为它更具体,所以它能正常工作。我这样想对吗?

由于对等,这条路线可以完美。

  • 请注意,CIDR 范围 10.0.0.0/8 实际上包括 10.0.0.110.255.255.254

  • 您的 NO110.1.0.0/20 包括 IP 10.1.0.110.1.15.254

  • 所以实际上 10.1.0.0/2010.0.0.0/8

  • 里面

看起来 AWS 正在做的事情是在 I1 路线 table 中阻止您需要的范围以及更多范围,可能是为了避免重叠或出于任何其他原因。但肯定 10.1.0.0/2010.0.0.0/8

里面

为了处理 IP 范围这个问题,我使用了这个非常具有说明性的工具 https://cidr.xyz/,它有助于理解 CIDR 范围的最小和最大 IP 以及可能的不同 IP 总数,这有助于理解还定义子网。

您为此 VPC 启用了 ClassicLink(VPC 和 EC2-Classic 之间的网络连接)。将其关闭(当然,在确认您实际上没有使用它之后),该路由将自行删除。

When you enable a VPC for ClassicLink, a static route is added to all of the VPC route tables with a destination of 10.0.0.0/8 and a target of local. This allows communication between instances in the VPC and any EC2-Classic instances that are then linked to the VPC. If you add a custom route table to a ClassicLink-enabled VPC, a static route is automatically added with a destination of 10.0.0.0/8 and a target of local. When you disable ClassicLink for a VPC, this route is automatically deleted in all of the VPC route tables.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html