Direct Connect 接続のパケット損失をトラブルシューティングするにはどうすればよいですか?

最終更新日: 2021 年 12 月 23 日

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 接続が終了するデバイスでの光信号の読み取り。
  • 入力エラー、増分フレーミングエラー、巡回冗長 (CRC) エラー、runts、giants、throttles により、 Direct Connect 接続が終了するデバイス。

Direct Connect 接続のメトリクスを確認する (レイヤー 1)

次の Direct Connect メトリクスを確認します。

  • ConnectionErrorCount: sum 統計を適用します。ゼロ以外の値は AWS デバイス上の MAC レベルのエラーを示していることに注意してください。
  • ConnectionLightLevelTX と ConnectionLightLevelRX: 問題が発生したときに Direct Connect 接続に記録された光信号を確認します。許容範囲は -14.4~2.50 dBm です。
  • ConnectionBpsEgress および ConnectionBpsIngress: リンクの輻輳によりパケット損失が発生した場合に、Direct Connect 接続のトラフィック量を確認します。

詳細については、Direct Connect の接続メトリクスを参照してください。

非対称の最適ではないルーティングを確認する (レイヤー 3)

オンプレミスファイアウォールがユニキャストリバースパス転送を実行してネットワークトラフィックをドロップすると、非対称ルーティングによってパケット損失が発生することがあります。オンプレミスネットワークでのルーティングが最適でない場合も、パケット損失を引き起こす可能性があります。

詳細については、トランジットゲートウェイで Direct Connect のバックアップとして VPN を作成する場合、非対称ルーティングの問題を解決するにはどうすればよいですか? を参照してください。

オンプレミスホストと 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 OS:

1.    WinPcaptracetcp をダウンロードします。

2.    Tracetcp ZIP ファイルを展開します。

3.    tracetcp.exe を C ドライブにコピーします。

4.    WinPcap をインストールします。

5.    コマンドプロンプトを開き、C:\Users\username>cd \ コマンドを使用して WinPcap を C ドライブにルートします。

6.    tracetcp.exe hostname:port コマンド、または tracetcp.exe ip:port コマンドを使用して tracetcp を実行します。

オンプレミスホストと 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 OS:

WinMTR をダウンロードしてインストールします。

注: Windows OS の場合、WinMTR は TCP ベースの MTR をサポートしていません。

2.       オンプレミス --> AWS の方向については、オンプレミスホスト (ICMP および TCP ベース) で MTR を実行します。

$ 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 インスタンス (ICMP および TCP ベース) で MTR を実行します。

$ 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 検出を参照してください。

tracepath を使用して 2 つのホスト間のパス MTU を確認できます。

1.  オンプレミス --> AWS の方向では、ローカルホストからポート 80 で tracepath を実行します。

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