如何通过 Transit Gateway 对 VPC 到 VPC 的连接进行故障排查?

上次更新日期:2022 年 7 月 29 日

我的 Virtual Private Cloud (VPC) 都连接到同一个 AWS Transit Gateway。但是,我在两个 VPC 之间建立连接时遇到了问题。如何解决此问题?

简短描述

要对连接到同一 AWS Transit Gateway 的两个 VPC 之间的连接进行故障排除,您可以:

  • 检查 AWS Transit Gateway、VPC 和 Amazon EC2 实例的路由配置。
  • 在 AWS Network Manager 中使用 Route Analyzer

解决方案

确认路由配置

确认这两个 VPC 连接到同一个 Transit Gateway

  1. 打开 Amazon Virtual Private Cloud(Amazon VPC)控制台
  2. 从导航窗格中选择 Transit Gateway Attachments(Transit Gateway 挂载)。
  3. 验证 VPC 挂载是否关联了相同的 Transit Gateway ID

确认 Transit Gateway 路由表与 VPC 挂载关联

  1. 打开 Amazon VPC 控制台
  2. 从导航窗格中选择 Transit gateway Route Tables(Transit Gateway 路由表)。
  3. 选择与源 VPC 的中转网关 VPC 挂载关联的路由表。
  4. 选择 Routes(路由)选项卡。
  5. 验证是否存在远程 VPC IP 范围的路由,其目标TGW VPC 挂载,且该路由与远程 VPC 的值相对应。
  6. 选择与远程 VPC 的中转网关 VPC 挂载关联的路由表。
  7. 选择 Routes(路由)选项卡。
  8. 验证是否存在源 VPC IP 范围的路由,其目标TGW VPC 挂载。验证该路由是否与源 VPC 的值相对应。

确认源 VPC 的 VPC 路由表具有远程 VPC IP 范围的路由,并且网关设置为 Transit Gateway

  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择 Route Tables(路由表)。
  3. 选择源 EC2 实例使用的路由表。
  4. 选择 Routes(路由)选项卡。
  5. 验证 Destination(目标)下是否有远程 VPC CIDR 块的路由。然后,验证 Destination(目标)是否设置为 Transit Gateway ID
确认远程 VPC 的 VPC 路由表具有源 VPC IP 范围的路由,并且网关设置为 Transit Gateway。
  1. 打开 Amazon VPC 控制台
  2. 在导航窗格中,选择 Route Tables(路由表)。
  3. 选择源 EC2 实例使用的路由表。
  4. 选择 Routes(路由)选项卡。
  5. 验证 Destination(目标)下是否有远程 VPC CIDR 块的路由。然后,验证 Destination(目标)是否设置为 Transit Gateway ID
检查源和远程 VPC 的中转网关 VPC 挂载的可用区
  1. 打开 Amazon VPC 控制台
  2. 从导航窗格中选择 Transit Gateway Attachments(Transit Gateway 挂载)。
  3. 选择源 VPC 挂载。
  4. 在详细信息下,找到 Subnet IDs(子网 ID)。验证已选择源 EC2 实例可用区中的子网。
  5. 返回 Transit Gateway Attachments(Transit Gateway 挂载)。然后,选择远程 VPC 挂载。
  6. 在详细信息下,找到 Subnet IDs(子网 ID)。确认已选择远程 EC2 实例可用区中的子网。
  7. 要将可用区添加到 VPC 挂载,请选择Actions(操作)。 然后,修改 Transit Gateway 挂载,并从所需的可用区中选择任何子网。
    注意:当连接处于 Modifying(修改)状态时,添加或修改 VPC 挂载子网可能会影响数据流量。
确认 Amazon EC2 实例的安全组和网络访问控制列表 (ACL) 允许流量通过
  1. 打开 Amazon EC2 控制台
  2. 从导航窗格中,选择 Instances(实例)。
  3. 选择要执行连通性测试的实例。
  4. 选择 Security(安全性)选项卡。
  5. 验证入站规则和出站规则是否允许流量通过。
  6. 打开 Amazon VPC 控制台
  7. 在导航窗格中,选择 Network ACLs(网络 ACL)。
  8. 选择与您的实例所在的子网关联的网络 ACL。
  9. 选择 Inbound(入站)规则Outbound(出站)规则以验证规则是否允许流量通过。

确认与 Transit Gateway 网络接口关联的网络 ACL 允许流量通过

  1. 打开 Amazon EC2 控制台
  2. 在导航窗格中,选择 Network Interfaces(网络接口)。
  3. 在搜索栏中,输入 Transit Gateway。此时系统将显示 Transit Gateway 的所有网络接口。记下与创建中转网关接口的位置相关联的 Subnet ID(子网 ID)。
  4. 打开 Amazon VPC 控制台
  5. 在导航窗格中,选择 Network ACLs(网络 ACL)。
  6. 在搜索栏中,输入您在步骤 3 中记下的子网 ID。与子网关联的网络 ACL 会显示。
  7. 确认网络 ACL 的 Inbound(入站)规则Outbound(出站)规则允许远程 VPC 流量。

使用 Route Analyzer

先决条件:在继续操作之前,请先完成本部分的适用于 Transit Gateway 网络的 AWS Network Manager 入门中的步骤。

创建全球网络并注册中转网关后:

  1. 访问 Amazon VPC 控制台
  2. 在导航窗格中,选择 Network Manager
  3. 选择中转网关注册时所在的全球网络。
  4. 在导航窗格中选择 Transit Gateway Network(中转网关网络)。然后,选择 Route Analyzer
  5. 根据需要填写 Source(源)和 Destination(目标)信息。确认 Source(源)和 Destination(目标)具有相同的中转网关。
  6. 选择 Run route analysis(运行路由分析)。

Route Analyzer 执行路由分析并指示 Connected(已连接)或 Not Connected(未连接)的状态。如果状态为 Not Connected(未连接),Route Analyzer 会为您提供路由建议。使用建议,然后再次运行测试以确认连接性。如果仍存在连接问题,请参阅本文的确认路由配置部分以了解更多问题排查步骤。