如何排查我的 Direct Connect 连接的数据包丢失问题?
我正在使用 AWS Direct Connect 传输数据。在将数据传输到我的 Amazon Elastic Compute Cloud(Amazon EC2)实例时,遇到了数据包丢失的情况。如何排查数据包丢失问题?
简短描述
当传输的数据包未能到达目的地,从而导致网络性能问题时,就会发生数据包丢失。数据包丢失是由目的地信号强度低、系统利用率过高、网络拥塞和网络路由配置错误造成的。
解决方法
对您的网络设备和 Direct Connect 连接运行以下检查。
检查 AWS Personal Health Dashboard 中以了解计划维护或事件
AWS Personal Health Dashboard 将显示相关信息,并提供活动通知。有关详细信息,请参阅 如何获取 Direct Connect 计划维护或事件的通知?
检查 Direct Connect 端点、客户网关(CGW)和中间设备(第 1 层)的指标
对于 CGW 和中间设备,问题可能是本地网络或通往 AWS 的传输路径的局部问题。检查本地节点和中间设备上的以下各项:
- 接口翻动的 CGW 日志。
- 出现问题时 CGW 的 CPU 使用率。
- Direct Connect 连接终止时设备上的光信号读数。
- Direct Connect 连接因输入错误、递增帧错误、循环冗余(CRC)错误、残损、巨量和节流而终止的设备。
检查 Direct Connect 连接指标(第 1 层)
检查以下 Direct Connect 指标:
- ConnectionErrorCount:应用总和统计数据,并注意非零值表示 AWS 设备上的 MAC 级别错误。
- ConnectionLightLevelTX 和 ConnectionLightLevelRX:检查问题发生时 Direct Connect 连接上记录的光信号。可接受的范围在 -14.4 到 2.50 dBm 之间。
- ConnectionBpsEgress 和 ConnectionBpsIngress:检查因链路拥塞而丢失数据包时,Direct Connect 连接上的流量。
有关详细信息,请参阅 Direct Connect 连接指标。
检查非对称次优路由(第 3 层)
如果内部防火墙执行单播反向路径转发,导致网络流量下降,非对称路由会导致数据包丢失。本地网络的次优路由也可能会导致数据包丢失。
有关详细信息,请参阅如何解决在 Transit Gateway 中创建 VPN 作为 Direct Connect 的备份时出现的非对称路由问题?
本地主机与 AWS 主机之间的端到端双向跟踪路由(第 3 层)
在主机之间运行跟踪路由可确定两个方向上的网络路径。跟踪结果还可确定路由是否非对称、负载均衡等。
1. 运行以下命令以安装 traceroute:
Linux:
sudo yum install traceroute
Ubuntu:
sudo apt-get install traceroute
2.然后,为 ICMP 跟踪路由运行类似以下内容的命令:
sudo traceroute -T -p <destination Port> <IP of destination host>
Windows 操作系统:
2. 提取 Tracetcp 压缩文件。
3. 将 tracetcp.exe 复制到 C 盘。
4. 安装 WinPcap。
5. 打开命令提示符,使用 *C:\Users\username>cd * 命令从根 WinPcap 进入 C 驱动器。
6. 使用以下命令运行 tracetcp:tracetcp.exe hostname:port 或 tracetcp.exe ip:port。
本地主机与 AWS 主机之间的端到端双向 MTR 测试(第 3 层)
MTR 测试与 traceroute 类似,允许发现主机之间网络连接路径中的每台路由器。MTR 测试还提供有关路径中每个节点的信息,例如数据包丢失。
检查 MTR 结果以了解数据包丢失和网络延迟情况。跃点处的网络丢失百分比可能表示路由器存在问题。一些服务提供商限制 MTR 使用的 ICMP 流量。要确定数据包丢失是否是由于速率限制造成的,请查看后续跃点。如果后续跃点显示数据包丢失 0.0%,表明 ICMP 速率受到限制。
1. 运行以下命令以安装 MTR:
Amazon Linux/REHEL:
$ sudo yum install mtr -y
Ubuntu:
sudo apt install mtr -y
Windows 操作系统:
下载并安装 WinMTR。
**注意:**对于 Windows 操作系统,WinMTR 不支持基于 TCP 的 MTR。
2. 对于本地 --> AWS 方向,请在本地主机上运行 MTR(基于 ICMP 和 TCP):
$ mtr -n -c 100 <private IP of EC2> --report $ mtr -n -T -P <EC2 instance open TCP port> -c 100 <private IP of EC2> --report
3. 对于 AWS --> 本地方向,请在 EC2 实例上运行 MTR(基于 ICMP 和 TCP):
$ mtr -n -c 100 <private IP of the local host> --report $ mtr -n -T -P <local host open TCP port> -c 100 <private IP of the local host> --report
查看本地主机与 AWS 主机之间的路径 MTU(第 3 层)
最大传输单位(MTU)是允许通过网络连接传递的最大数据包大小。路径 MTU 发现(PMTUD)确定 MTU 路径。如果数据包太大,可能会发生数据包丢失。有关详细信息,请参阅 路径 MTU 发现。
1. 对于本地 --> AWS 方向,请从本地主机在端口 80 上运行跟踪路径:
$ tracepath -n -p 80 <EC2 private instance IP>
2.对于 AWS --> 本地方向,请从 EC2 实例在端口 80 上运行跟踪路径:
$ tracepath -n -p 80 <private IP of local host>
相关信息

相关内容
- 已提问 4 个月前lg...
- 已提问 4 个月前lg...
- 已提问 5 个月前lg...
- 已提问 3 个月前lg...
- 已提问 1 个月前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 3 年前
- AWS 官方已更新 4 个月前
- AWS 官方已更新 1 年前