You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何私有子网仅配置0.0.0.0路由时才能访问互联网?

问题描述

我的架构如下:

EC2 in private subnet (10.0.0.0/24) --> NAT gateway in public subnet (10.0.0.8/24)

当为私有子网配置以下路由时,EC2无法连接互联网:

10.0.0.0/24 nat-08a0fd199f0599e7c   Active  No
10.0.0.0/16 local   Active  No

若将私有子网路由表修改为以下配置,则可以正常访问:

0.0.0.0/0   nat-08a0fd199f0599e7c   Active  No
10.0.0.0/16 local   Active  No

我认为这两种配置效果应该一致,私有子网实际为10.0.0.0/24,测试所用EC2的IP为10.0.0.62。另外,可达性分析器显示:

rtb-0470933497a2054a2 (demo-private-routetable)
NO_ROUTE_TO_DESTINATION:
Route table rtb-0470933497a2054a2 does not have an applicable route to igw-01f02d81bd80fc493. See rtb-0470933497a2054a2.

请问这是为什么?

问题原因分析
  • 最长前缀匹配规则是核心:AWS路由表采用最长前缀匹配原则,只有目标IP与路由条目网段完全匹配,且是最具体的条目时,才会被选中。EC2访问互联网时,目标IP是公网地址(比如8.8.8.8),第一个路由表中的10.0.0.0/24和10.0.0.0/16仅覆盖私有IP段,完全不匹配公网IP,因此没有可用路由转发流量,导致无法联网。而0.0.0.0/0是默认路由,会匹配所有未被更具体路由覆盖的目标IP,自然包含所有公网地址,能将流量导向NAT网关实现互联网访问。
  • 路由条目生效范围理解错误:你误以为10.0.0.0/24的路由能覆盖EC2的互联网流量,这是错误的。这条路由仅对目标IP属于10.0.0.0/24网段的流量生效,而互联网流量的目标地址是公网IP,不在该网段内,所以这条路由根本不会被触发。
  • 可达性分析器提示的本质:提示中说路由表没有到IGW的适用路由,核心原因是没有匹配公网目标IP的路由条目,流量找不到出口。虽然你使用的是NAT网关而非IGW,但问题根源是没有能引导公网流量的路由,所以流量无法被转发到NAT网关,最终表现为无路由到目的地。

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 16:25:16