AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
如何排查 AWS VPN 连接上的数据包丢失问题?
我发现我的 AWS 虚拟专用网络(AWS VPN)连接存在持续或间歇性丢包和高延迟问题。我想知道应该运行哪些测试来确认 Amazon Virtual Private Cloud(Amazon VPC)中是否出现问题。
简短描述
随着 AWS VPN 互联网流量在本地网络和 Amazon VPC 之间移动,丢包原因可能发生变化。最佳做法是隔离并确认丢包的来源。
解决方法
要确定是否已达到网络限制,应检查源主机和目标主机是否存在资源利用率问题。您可以通过 CPUUtilization、NetworkIn 和 NetworkOut 或 NetworkPacketsIn 和 NetworkPacketsOut 等值找到资源利用率问题。
使用 MTR 检查是否存在 ICMP 或 TCP 丢包和延迟
MTR 会提供持续更新的输出,使您可以分析一段时间内的网络性能。它将 traceroute 和 ping 的功能整合到单个网络诊断工具中。要检查 ICMP 或 TCP 丢包和延迟,应在 VPC 中的 Amazon Elastic Compute Cloud(Amazon EC2)实例上安装 MTR 网络工具。
Amazon Linux:
sudo yum install mtr
Ubuntu:
sudo apt-get install mtr
Windows:
要安装 WinMTR,请访问 SourceForge 网站。
注意: 对于 Windows 操作系统(OS),WinMTR 不支持基于 TCP 的 MTR。
在您的 EC2 实例和本地主机的私有和公有 IP 地址之间运行以下测试。当方向反转时,TCP/IP 网络上节点之间的路径可能会发生变化,因此应从两个方向获取 MTR 结果。
在运行测试之前,请检查以下配置:
- 确保安全组和网络访问控制列表(网络 ACL)规则允许来自源实例的 ICMP 流量。
- 确保测试端口在目标实例上已打开。确认安全组和网络 ACL 规则在协议和端口上允许来自源的流量。
基于 TCP 的结果确定连接上是否存在基于应用程序的丢包或延迟问题。MTR 版本 0.85 及更高版本有 TCP 选项。
私有 IP 地址 EC2 实例本地主机报告:
mtr -n -c 200
私有 IP 地址 EC2 实例本地主机报告:
mtr -n -T -c 200 -P 443 -m 60
公有 IP 地址 EC2 实例本地主机报告:
mtr -n -c 200
公有 IP 地址 EC2 实例本地主机报告:
mtr -n -T -c 200 -P 443 -m 60
使用 traceroute 确定延迟或路由问题
Linux traceroute 实用程序可识别从客户端节点到目标节点的路径。此实用程序以毫秒为单位记录每台路由器响应请求的时间。traceroute 实用程序还会计算每个跃点到达目标之前所用的时间。
有一些超时请求很常见,因此应检查目标或路由最后一个跃点是否存在丢包。多个跃点有丢包情况可能说明存在问题。
注意: 最佳做法是运行从客户端到服务器的 traceroute 命令。然后,再反向运行此命令。
要安装 traceroute,请运行以下命令:
Amazon Linux:
sudo yum install traceroute
Ubuntu:
sudo apt-get install traceroute
要测试 EC2 实例和本地实例的私有 IP 地址,请运行以下命令:
Amazon Linux:
sudo traceroutesudo traceroute -T -p 80
Windows:
tracerttracetcp
注意: 这些命令在端口 80 执行基于 TCP 的跟踪。请确认您已双向打开端口 80 或正在测试的端口。
如果您使用 Linux,则使用 traceroute 选项指定基于 TCP 的跟踪,而不是 ICMP。这是因为大多数互联网设备会降低基于 ICMP 的跟踪请求的优先级。
使用 hping3 确定端到端 TCP 丢包和延迟问题
die.net 网站上的 Hping3 是一种命令行 TCP/IP 包汇编器和分析器,用于测量 TCP 连接上的端到端丢包和延迟。
MTR 和 traceroute 捕获每个跃点的延迟。但是,hping3 结果显示 TCP 上的丢包以及端到端最小、最大和平均延迟。要安装 hping3,请运行以下命令:
Amazon Linux:
sudo yum --enablerepo=epel install hping3
Ubuntu:
sudo apt-get install hping3
运行以下命令:
hping3 -S -c 50 -V <Public IP of EC2 instance or on-premises host> hping3 -S -c 50 -V <Private IP of EC2 instance or on-premises host>
注意: 默认情况下,hping3 将 TCP 标头发送到目标主机的端口 0(winsize 为 64,不启用 tcp 标志)。
使用 tcpdump 或 Wireshark 的包捕获示例
复制问题时,在 VPC 中的测试 EC2 实例和本地主机之间执行同步包捕获。这可以帮助确定 VPN 连接上是否存在任何应用程序或网络层问题。要执行包捕获,在 Linux 实例上安装 tcpdump,或在 Windows 实例上安装 Wireshark。
Amazon Linux 上的 tcpdump:
sudo yum install tcpdump
在 Ubuntu 上安装 tcpdump:
sudo apt-get install tcpdump
Windows 操作系统上的 Wireshark:
要安装 Wireshark,请访问 Wireshark 网站。然后,进行包捕获。
关闭 ECN
如果您开启了显式拥塞通知(ECN),在您连接 Windows 实例时,可能会导致丢包或性能问题。要提高性能,应关闭 ECN。
要确定 ECN 是否开启,请运行以下命令:
netsh interface tcp show global
如果 ECN 功能已开启,请运行以下命令将其关闭:
netsh interface tcp set global ecncapability=disabled
相关信息
- 语言
- 中文 (简体)

相关内容
AWS 官方已更新 1 年前