如何排查 Amazon VPC 路由表的问题?

3 分钟阅读
0

我想解决我的 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 网关
  • 网关端点

解决方法

公有子网

使用互联网网关作为默认路由目标的公有子网

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格的子网下,选择您的公有子网。
  3. 选择路由表视图。
  4. 确认路由表目标有指向互联网网关的默认路由(IPv4 为 0.0.0.0/0,IPv6 为 ::/0)。

有关更多信息,请参阅如何解决从互联网到我的 VPC 内的 Amazon EC2 实例之间存在的连接问题?

私有子网

使用 NAT 实例或 NAT 网关的私有子网

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格的子网下,选择您的私有子网。
  3. 选择路由表视图。确认路由表中有指向 NAT 实例或网关的默认路由 (0.0.0.0/0)。
  4. 确认已在公有子网中创建 NAT 设备。然后,参照上文公有子网部分对公有子网执行必要的检查。
    **注意:**如果您使用的是 NAT 实例,请确保禁用源目标检查
  5. 配置 Amazon VPC 启用 IPv6(以免互联网流量路由到私有子网中的实例),请使用仅限出口的互联网网关。有关更多信息,请参阅使用仅限出口的互联网网关启用出站 IPv6 流量

使用 VPC 对等连接的私有子网

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择对等连接,然后选择您的对等连接。
  3. 确认状态为活动
  4. 在导航窗格中,选择子网,然后选择 Amazon VPC 的子网。
  5. 选择路由表视图,然后确认路由表包含以下其中一个路由:
    到带有特定对等连接的 Amazon VPC 子网的 CIDR。
    到对等连接的 Amazon VPC 的整个 CIDR。这包括您在步骤 2 中选择的对等连接。
  6. 确认路由表包含对等互连 Amazon VPC 的所有子网。
  7. 在对等连接的 Amazon VPC 上执行相同的检查。

**注意:**确保 VPC 对等连接配置有效。

有关详细信息,请参阅如何解决通过 VPC 对等连接建立通信的问题?

使用 AWS VPN 的私有子网

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择 VPN 连接,然后选择 VPN 连接。
  3. 确认 VPN 状态为可用,并且至少有一个隧道的状态为运行
    **注意:**如果您使用的是动态 VPN,请确保 AWS VPN 接收 BGP 路由。您可以启用路由传播以确认 BGP 路由正在传播到虚拟专用网关
  4. 记下供此 VPN 连接使用的虚拟专用网关。
  5. 在导航窗格中,选择子网,然后选择 Amazon VPC 的子网。
  6. 选择路由表视图,然后确认以下信息:
    您的网络就是路由目的地。
    步骤 4 中提到的虚拟专用网关即为目标。

有关详细信息,请参阅如何解决 AWS VPN 端点和基于策略的 VPN 之间的连接问题?

使用 AWS Direct Connect 的私有子网

  1. 打开 AWS Direct Connect 控制台
  2. 在导航窗格中选择虚拟接口,然后选择私有虚拟接口
  3. 确认 BGP 状态为运行
  4. 记下供私有虚拟接口使用的虚拟专用网关。
  5. 打开 Amazon VPC 控制台
  6. 在导航窗格的子网下,选择 Amazon VPC 的子网。
  7. 选择路由表视图,然后确认以下信息:
    您的网络就是路由目的地。
    步骤 4 中提到的虚拟专用网关即为目标。

注意: 如果您使用 BGP,请确保 AWS 收到路由。您可以启用路由传播以确认 BGP 路由正在传播到虚拟专用网关

有关详细信息,请参阅排查 AWS Direct Connect 问题

使用 Amazon VPC 网关端点的私有子网

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择端点,然后选择端点。
  3. 确认其状态为可用,然后记下端点 ID。
  4. 在导航窗格的子网下,选择 Amazon VPC 的子网。
  5. 选择路由表视图,然后确认以下信息:
    Amazon VPC 端点策略允许 Amazon VPC 子网中的资源与 AWS 服务进行通信。有关更多信息,请参阅新增 - 适用于 Amazon S3 的 VPC 端点
    路由表中添加了一条路由,其目的地指定服务的 AWS 前缀列表 ID。
    步骤 3 中的端点 ID 即为目标。

注意:如果子网的路由表未显示 AWS 服务前缀列表的条目和目标端点 ID,则添加该路由表。要手动添加路由表,请导航到端点,选择端点,选择路由表,然后选择管理路由表。然后,选择缺失的 Amazon VPC 路由表。

有关详细信息,请参阅为什么我无法使用网关 VPC 端点连接到 Amazon S3 桶?

使用 Amazon VPC 虚拟接口端点的私有子网

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择端点,然后选择端点。
  3. 选择子网列,然后确认已在与要连接的服务关联的子网中创建了端点网络接口。
  4. 在导航窗格的端点下,选择策略视图。
  5. 确认安全组允许访问 AWS 服务。

注意:Amazon VPC 资源使用本地路由通过接口端点发送流量。

有关详细信息,请参阅使用接口 VPC 端点访问 AWS 服务

使用 Amazon Transit Gateway 的私有子网

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格的子网下,选择您的私有子网。
  3. 选择路由表视图。确认路由表中是否有预期的目标 CIDR,且 Transit Gateway ID 正确无误。
  4. 要进一步排查 Transit Gateway 存在的问题,请参阅以下资源:
    有关 Amazon VPC 到 VPC 的连接,请参阅如何通过 Transit Gateway 排查 VPC 到 VPC 的连接存在的问题?
    有关通过站点到站点或直接连接 VPN 实现的 Amazon VPC 到本地的连接,请参阅如何通过 Transit Gateway 排查本地与 VPC 的连接存在的问题?

使用资源地图可视化您的 Amazon VPC 中的资源

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择 VPC,然后选择 Amazon VPC。
  3. 选择资源地图选项卡以显示资源的可视化效果。
  4. 选择显示详细信息可查看详细信息,例如资源 ID 和显示的默认区域:
    VPC: 分配给 VPC 的 IPv4 和 IPv6 CIDR 范围。
    子网: 分配给每个子网的 IPv4 和 IPv6 CIDR 范围。
    路由表: 子网关联和路由表中的路由数量。
    网络连接: 对于 Amazon VPC 中的公有子网,会有一个互联网网关资源,其中包含路由数量以及源子网和目标子网。对于仅限出口的互联网网关,会有一个仅限出口的互联网网关资源,其中包含路由数量以及源子网和目标子网。对于 NAT 网关,会有一个 NAT 网关资源,其中包含网络接口数量和弹性 IP 地址。对于网关端点,会有一个网关端点资源,其中包含可以连接的 AWS 服务名称。
  5. 要查看资源之间的关系,请将鼠标悬停在资源上。实线表示资源之间的关系。虚线表示网络连接的网络流量。
AWS 官方
AWS 官方已更新 6 个月前