如何針對我的 Direct Connect 連線封包遺失進行疑難排解?

3 分的閱讀內容
0

我使用 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 層)

如果內部部署防火牆執行會造成網路流量丟棄的單播反向路徑轉送,非對稱路由會造成封包遺失。使用內部部署網路的次等最佳路由也會造成封包遺失。

如需詳細資訊,請參閱在傳輸閘道中建立 VPN 作為 Direct Connect 的備份時,如何解決非對稱路由問題?

內部部署主機與 AWS 主機 (第 3 層) 之間的端對端雙向追蹤路由

在主機之間執行追蹤路由會決定在雙向採用的網路路徑。追蹤結果也會決定路由是否為非對稱、負載平衡等等。

1.    執行下列命令以安裝 traceroute:

Linux:

 sudo yum install traceroute

Ubuntu:

sudo apt-get install traceroute

2.然後,針對 ICMP traceroute 執行類似以下的命令:

sudo traceroute -T -p <destination Port> <IP of destination host>

Windows 作業系統:

1.    下載 WinPcaptracetcp

2.    解壓縮 Tracetcp ZIP 檔案。

3.    將 tracetcp.exe 複製到您的 C 磁碟機。

4.    安裝 WinPcap。

5.    開啟命令提示字元並且使用 *C:\Users\username>cd * 命令讓 WinPcap 的根目錄指向您的 C 磁碟機。

6.    使用下列命令執行 tracetcp:tracetcp.exe hostname:porttracetcp.exe ip:port

內部部署主機與 AWS 主機 (第 3 層) 之間的端對端雙向 MTR 測試

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 主機 (第 3 層) 之間的路徑 MTU

最大傳輸單位 (MTU) 是透過網路連線傳遞的最大可允許封包大小。路徑 MTU 探索 (PMTUD) 會決定 MTU 路徑。如果封包太大,則會發生封包遺失。如需詳細資訊,請參閱 路徑 MTU 探索

您可以使用 tracepath 檢查兩部主機之間的路徑 MTU

1.  對於內部部署 --> AWS 方向,從本機主機在連接埠 80 上執行 tracepath:

$ tracepath -n -p 80 <EC2 private instance IP>

2.對於 AWS --> 內部部署方向,從 EC2 執行個體在連接埠 80 上執行 tracepath:

$ tracepath -n -p 80 <private IP of local host>

相關資訊

設定網路介面的最佳實務

如何透過網際網路閘道或 NAT 閘道監控從 AWS 到內部部署網路的封包遺失和延遲?

針對 AWS Direct Connect 進行疑難排解

如何解決 Direct Connect 網路效能問題?

AWS 官方
AWS 官方已更新 2 年前