如何解决 Direct Connect 与 AWS 资源的连接问题?

3 分钟阅读
0

我想解决在 AWS Direct Connect 和 AWS 资源之间遇到的连接问题。

简短描述

Direct Connect 使用私有、公共和中转虚拟接口 (VIF),具体取决于您在 AWS 中访问的资源。使用 Direct Connect VIF 从本地连接到 AWS 资源可能会导致多种连接问题,具体取决于您使用的 VIF 的类型。

解决方法

如果您遇到问题的 VIF 在使用突然停止运行,请完成以下步骤:

  • 查看您的 AWS Health Dashboard,看一下是否有任何正在进行或最近完成的 AWS 维护,这些维护可能会影响您的 Direct Connect 连接或 VIF。
  • 登录您的 Direct Connect 控制台并检查 VIF 状态是否为 UP。如果状态为 DOWN,则表明未建立边界网关协议 (BGP)。要解决此问题,请参阅 AWS Direct Connect 故障排除

根据您的 VIF 类型对连接问题进行故障排除

要解决连接问题,请确定您的 VIF 类型并完成以下步骤:

私有虚拟接口

私有虚拟接口用于访问 Amazon Virtual Private Cloud (Amazon VPC) 中的资源。他们访问资源时使用的是从 Amazon VPC CIDR 范围中分配的私有 IP 地址。如果您在连接 Amazon VPC 中的资源时遇到问题,请完成以下步骤:

1.检查目标实例的安全组和子网网络访问控制列表 (ACL) 是否有相应的入站和出站规则。根据使用的源和目标 IP 地址及端口,应允许 AWS 与本地之间的双向连接。

2.检查本地路由器上的 BGP 路由配置,确保所需的路由定向到 AWS。如果您在 Amazon VPC 路由表上使用路由传播,则这些路由应该在 Amazon VPC 路由表中可见。此外,目标应该是正确的虚拟专用网关。

3.检查您的本地路由器是否正在通过 BGP 接收 Amazon VPC CIDR 的路由。应从与 Direct Connect VIF 关联的 AWS 对等 IP 地址接收路由。

  • 如果您没有从 AWS 对等 IP 地址接收路由,请检查虚拟专用网关是否关联到正确的 Amazon VPC。
  • 如果您的私有 VIF 在 Direct Connect 网关上终止,请确保正确的虚拟专用网关与 Direct Connect 网关相关联。确保将允许的前缀配置为允许 Amazon VPC CIDR 定向到本地路由器。

4.执行从本地路由器到 Amazon VPC 实例的 traceroute,反向执行如下操作:

基于 ICMP 的 traceroute:

sudo traceroute -n -I <private-IP-of-EC2-instance/on-premises-host>

**注意:**如果您的本地路由器或防火墙阻止基于 ICMP 的 traceroute 请求,请在相应的 TCP 端口上运行基于 TCP 的 traceroute。

基于 TCP 的 traceroute:

sudo traceroute -n -T -p 22 <private-IP-of-EC2-instance/on-premises-host>

注意:在前面的命令中,-n -T -p 22 在端口 22 上跟踪。您可以使用应用程序在监听的任何端口。

5.检查您的 traceroute 结果,确认与您的 VIF 关联的本地路由器和 AWS 对等 IP 地址的可见性和行为。

  • 如果 traceroute 在本地路由器对等 IP 地址处停止,则流量在到达本地路由器后会下降。检查本地网络防火墙设置,确保所选端口允许双向连接。
  • 如果 traceroute 在 AWS 对等 IP 地址处停止,请执行步骤 1 检查网络 ACL 和安全组配置。您还可以使用 Amazon VPC 流日志检查在特定的弹性网络接口是否收到本地路由器发送的数据包。
  • 如果您没有看到与 VIF 关联的 AWS 或本地对等 IP 地址,则表明流量正在通过错误的路径转发。检查您的本地路由器,确认它通过其他对等 IP 地址是否有同一 CIDR 的更具体的或首选路由。
  • 如果从 AWS 到本地路由器的 traceroute 不包含 AWS 对等 IP 地址,则检查另一个 VIF 是否也在终止。检查另一个 VIF 是否在播发相同本地路由的同一个虚拟专用网关或 Direct Connect 网关上终止。如果是,请在 Amazon VPC 路由表中检查是否有任何现有的 Site-to-Site VPN 连接为本地路由器播发特定路由。

6.比较从 AWS 到本地路由器以及从本地路由器到 AWS 的 traceroute。如果两个 traceroute 的跳数不同,则表明是非对称路由。通过使用路由策略,确保双向路由均首选相同的 Direct Connect 私有虚拟接口。

公共虚拟接口

公共虚拟接口使用公共 IP 地址访问所有 AWS 公共服务。要解决您的公共虚拟接口连接问题,请完成以下步骤:

1.检查托管您的公共虚拟接口的本地路由器是否在从 AWS 对等 IP 地址接收来自公共前缀的路由。如果您使用入站前缀筛选器和路由映射来筛选路由,请确保前缀筛选器与所需的前缀匹配。

2.如果您正在对本地网络执行网络地址转换 (NAT),请检查您是否在通过 BGP 向 AWS 播发公共对等 IP 地址。

示例场景:

  • 本地对等 IP 地址为 69.210.74.146/31
  • 远程对等 IP 地址为 69.210.74.147/31
  • 如果对流向本地对等 IP 地址的本地局域网流量执行 NAT,则向 AWS 播发 69.210.74.146/32

**注意:**确保通过公共 VIF 使用本地播发到 AWS 的前缀连接。您无法使用未向公共 VIF 播发的前缀进行连接。

3.执行从本地到 AWS 的 traceroute,检查流量是否在通过 Direct Connect 公共 VIF 转发。

  • 如果流量是在通过公共 VIF 转发,则 traceroute 应关联局域网(本地)和远程 (AWS) 对等 IP 地址。
  • 如果您需要检查 AWS 中使用的网络路径,请启动公共 Amazon Elastic Compute Cloud (Amazon EC2) 实例。该实例必须与您的 AWS 服务处于同一区域。启动实例后,对本地执行 traceroute。如果 traceroute 显示流量在通过互联网或通过其他 VIF 转发,则表明可能在播发特定的路由。

注意:AWS 使用 AS_PATH最长前缀匹配算法确定路由路径。Direct Connect 是来自 Amazon 的流量的首选路径。

4.检查您与公共 AWS 服务(例如 Amazon Simple Storage Service 或 Amazon S3)的连接是否适用于正确的目标区域。然后,检查在向 Amazon 播发的公共前缀上是否使用了 BGP 社区标签

**注意:**BGP 社区标签决定了您的前缀在 Amazon 网络上播发的距离。

中转虚拟接口

中转虚拟接口访问与 Direct Connect 网关关联的一个或多个 Amazon VPC 中转网关 (TGW)。要解决连接问题,请完成以下步骤:

1.检查目标资源的 Amazon VPC 子网路由表中是否有指向 TGW 的本地 CIDR 的路由。确保实例或资源安全组和子网的网络 ACL 允许双向连接。有关更多信息,请参阅网络 ACL 如何与中转网关配合使用

2.检查与您的中转 VIF 关联的本地路由器是否在通过 BGP 从 AWS 对等 IP 地址接收正确的路由。这些路由指向目标 Amazon VPC CIDR。如果您未在接收所需的路由,请检查允许的前缀部分。检查与 TGW 关联的 Direct Connect 网关的允许前缀是否配置了所需的前缀。只有在允许的前缀部分下配置的路由才会通过 Transit VIF 从 AWS 进行播发。

3.检查与中转 VIF 关联的本地路由器是否在向 AWS 播发所需的本地网络前缀。

  • 如果您在从 Direct Connect 网关向 TGW 路由表播发路由,请检查这些路由在路由表上是否可见。如果路由不可见,请检查播发的路由上的 AS 路径,确保其中不包含 TGW ASN。
  • 如果您在播发的特定路由的 AS 路径上包含 TGW ASN,则在路由表中不会安装该路由。确保客户网关设备(本地路由器)使用的 ASN 与 TGW ASN 不同。

4.检查与 Direct Connect 网关关联的 TGW 表和目标 Amazon VPC 附件的目的地路由是否正确。

  • 与 Direct Connect 网关关联的 TGW 路由表必须有指向 Amazon VPC 附件的 Amazon VPC CIDR 路由。
  • 与 Amazon VPC 连接关联的 TGW 路由表必须有指向 Direct Connect 网关附件的本地 CIDR 路由。

5.执行从 AWS 到本地(双向)的双向 traceroute,以确定流量路径和流量下降的跳点。

  • 如果到达 AWS 对等 IP 地址后流量下降,请检查以下几个方面:
  • 如果从 AWS 到本地的 traceroute 在本地对等 IP 地址处中断,请检查本地的防火墙配置。确保在正确端口上允许源和目标之间的双向连接。

6.如果从 AWS 到本地的 traceroute 不包含与您的 VIF 关联的对等 IP 地址,请检查 Direct Connect 网关。检查 Direct Connect 网关,确认您在同一 Direct Connect 网关上是否有其他中转 VIF 在播发相同的本地路由。如果是,请使用此中转 VIF 的路由策略来确定出站连接必须使用的 VIF。

7.检查 TGW Amazon VPC 附件是否有一个子网,与目标资源从同一个可用区关联。例如,如果您的实例位于特定的可用区,则 TGW Amazon VPC 附件连接必须在同一位置有一个子网。

**注意:**您可以使用 Amazon VPC 流日志来检查本地流量是否到达特定的实例弹性网络接口。这有助于确定弹性网络接口上是否有双向流量。

AWS 官方
AWS 官方已更新 8 个月前