如何排查 Amazon VPC 路由表的问题?
我想解决我的 Amazon Virtual Private Cloud (Amazon VPC) 路由表存在的问题。
简短描述
Amazon VPC 中的每个子网都与一个控制子网路由的路由表相关联。Amazon VPC 的路由选项取决于您使用的网关类型或连接。公有子网有通往互联网网关的直接路由。公有子网中的资源可以访问公共互联网。私有子网没有通往互联网网关的直接路由。私有子网中的资源需要 NAT 设备才能访问公共互联网。
根据子网的网关类型或连接类型对子网和路由表进行故障排除:
- 使用互联网网关作为默认路由目标的公有子网(IPv4 为 0.0.0.0/0,IPv6 为 ::/0)
- 使用 NAT 实例或 NAT 网关的私有子网
- 使用 VPC 对等连接的私有子网
- 使用 AWS 虚拟专用网络 (AWS VPN) 的私有子网
- 使用 AWS Direct Connect 的私有子网
- 使用 Amazon VPC 网关端点的私有子网
- 使用 Amazon VPC 虚拟接口端点的私有子网
- 使用 AWS Transit Gateway 的私有子网
此外,要了解您的 Amazon VPC 资源以及流量如何从您的子网流向网关和连接,请使用资源地图。可以在资源地图中看到以下资源:
- VPC
- 子网
- 路由表
- 互联网网关
- 仅限出口的互联网网关
- NAT 网关
- 网关端点
解决方法
公有子网
使用互联网网关作为默认路由目标的公有子网
- 打开 Amazon VPC 控制台。
- 在导航窗格的子网下,选择您的公有子网。
- 选择路由表视图。
- 确认路由表目标有指向互联网网关的默认路由(IPv4 为 0.0.0.0/0,IPv6 为 ::/0)。
有关更多信息,请参阅如何解决从互联网到我的 VPC 内的 Amazon EC2 实例之间存在的连接问题?
私有子网
使用 NAT 实例或 NAT 网关的私有子网
- 打开 Amazon VPC 控制台。
- 在导航窗格的子网下,选择您的私有子网。
- 选择路由表视图。确认路由表中有指向 NAT 实例或网关的默认路由 (0.0.0.0/0)。
- 确认已在公有子网中创建 NAT 设备。然后,参照上文公有子网部分对公有子网执行必要的检查。
**注意:**如果您使用的是 NAT 实例,请确保禁用源目标检查。 - 要配置 Amazon VPC 启用 IPv6(以免互联网流量路由到私有子网中的实例),请使用仅限出口的互联网网关。有关更多信息,请参阅使用仅限出口的互联网网关启用出站 IPv6 流量。
使用 VPC 对等连接的私有子网
- 打开 Amazon VPC 控制台。
- 在导航窗格中,选择对等连接,然后选择您的对等连接。
- 确认状态为活动。
- 在导航窗格中,选择子网,然后选择 Amazon VPC 的子网。
- 选择路由表视图,然后确认路由表包含以下其中一个路由:
到带有特定对等连接的 Amazon VPC 子网的 CIDR。
到对等连接的 Amazon VPC 的整个 CIDR。这包括您在步骤 2 中选择的对等连接。 - 确认路由表包含对等互连 Amazon VPC 的所有子网。
- 在对等连接的 Amazon VPC 上执行相同的检查。
**注意:**确保 VPC 对等连接配置有效。
有关详细信息,请参阅如何解决通过 VPC 对等连接建立通信的问题?
使用 AWS VPN 的私有子网
- 打开 Amazon VPC 控制台。
- 在导航窗格中,选择 VPN 连接,然后选择 VPN 连接。
- 确认 VPN 状态为可用,并且至少有一个隧道的状态为运行。
**注意:**如果您使用的是动态 VPN,请确保 AWS VPN 接收 BGP 路由。您可以启用路由传播以确认 BGP 路由正在传播到虚拟专用网关。 - 记下供此 VPN 连接使用的虚拟专用网关。
- 在导航窗格中,选择子网,然后选择 Amazon VPC 的子网。
- 选择路由表视图,然后确认以下信息:
您的网络就是路由目的地。
步骤 4 中提到的虚拟专用网关即为目标。
有关详细信息,请参阅如何解决 AWS VPN 端点和基于策略的 VPN 之间的连接问题?
使用 AWS Direct Connect 的私有子网
- 打开 AWS Direct Connect 控制台。
- 在导航窗格中选择虚拟接口,然后选择私有虚拟接口。
- 确认 BGP 状态为运行。
- 记下供私有虚拟接口使用的虚拟专用网关。
- 打开 Amazon VPC 控制台。
- 在导航窗格的子网下,选择 Amazon VPC 的子网。
- 选择路由表视图,然后确认以下信息:
您的网络就是路由目的地。
步骤 4 中提到的虚拟专用网关即为目标。
注意: 如果您使用 BGP,请确保 AWS 收到路由。您可以启用路由传播以确认 BGP 路由正在传播到虚拟专用网关。
有关详细信息,请参阅排查 AWS Direct Connect 问题。
使用 Amazon VPC 网关端点的私有子网
- 打开 Amazon VPC 控制台。
- 在导航窗格中,选择端点,然后选择端点。
- 确认其状态为可用,然后记下端点 ID。
- 在导航窗格的子网下,选择 Amazon VPC 的子网。
- 选择路由表视图,然后确认以下信息:
Amazon VPC 端点策略允许 Amazon VPC 子网中的资源与 AWS 服务进行通信。有关更多信息,请参阅新增 - 适用于 Amazon S3 的 VPC 端点
路由表中添加了一条路由,其目的地指定服务的 AWS 前缀列表 ID。
步骤 3 中的端点 ID 即为目标。
注意:如果子网的路由表未显示 AWS 服务前缀列表的条目和目标端点 ID,则添加该路由表。要手动添加路由表,请导航到端点,选择端点,选择路由表,然后选择管理路由表。然后,选择缺失的 Amazon VPC 路由表。
有关详细信息,请参阅为什么我无法使用网关 VPC 端点连接到 Amazon S3 桶?
使用 Amazon VPC 虚拟接口端点的私有子网
- 打开 Amazon VPC 控制台。
- 在导航窗格中,选择端点,然后选择端点。
- 选择子网列,然后确认已在与要连接的服务关联的子网中创建了端点网络接口。
- 在导航窗格的端点下,选择策略视图。
- 确认安全组允许访问 AWS 服务。
注意:Amazon VPC 资源使用本地路由通过接口端点发送流量。
有关详细信息,请参阅使用接口 VPC 端点访问 AWS 服务。
使用 Amazon Transit Gateway 的私有子网
- 打开 Amazon VPC 控制台。
- 在导航窗格的子网下,选择您的私有子网。
- 选择路由表视图。确认路由表中是否有预期的目标 CIDR,且 Transit Gateway ID 正确无误。
- 要进一步排查 Transit Gateway 存在的问题,请参阅以下资源:
有关 Amazon VPC 到 VPC 的连接,请参阅如何通过 Transit Gateway 排查 VPC 到 VPC 的连接存在的问题?
有关通过站点到站点或直接连接 VPN 实现的 Amazon VPC 到本地的连接,请参阅如何通过 Transit Gateway 排查本地与 VPC 的连接存在的问题?
使用资源地图可视化您的 Amazon VPC 中的资源
- 打开 Amazon VPC 控制台。
- 在导航窗格中,选择 VPC,然后选择 Amazon VPC。
- 选择资源地图选项卡以显示资源的可视化效果。
- 选择显示详细信息可查看详细信息,例如资源 ID 和显示的默认区域:
VPC: 分配给 VPC 的 IPv4 和 IPv6 CIDR 范围。
子网: 分配给每个子网的 IPv4 和 IPv6 CIDR 范围。
路由表: 子网关联和路由表中的路由数量。
网络连接: 对于 Amazon VPC 中的公有子网,会有一个互联网网关资源,其中包含路由数量以及源子网和目标子网。对于仅限出口的互联网网关,会有一个仅限出口的互联网网关资源,其中包含路由数量以及源子网和目标子网。对于 NAT 网关,会有一个 NAT 网关资源,其中包含网络接口数量和弹性 IP 地址。对于网关端点,会有一个网关端点资源,其中包含可以连接的 AWS 服务名称。 - 要查看资源之间的关系,请将鼠标悬停在资源上。实线表示资源之间的关系。虚线表示网络连接的网络流量。
相关内容
- AWS 官方已更新 3 年前
- AWS 官方已更新 10 个月前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前