NSX L2 VPN のトラブルシューティング
search cancel

NSX L2 VPN のトラブルシューティング

book

Article ID: 414518

calendar_today

Updated On:

Products

VMware NSX

Issue/Introduction

免責事項:これは英文の記事「Troubleshooting NSX L2 VPN」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

L2 VPN(レイヤー2仮想プライベートネットワーク)接続により、データセンター間でレイヤー2ネットワークを安全に拡張できます。

ルートベースのIPsecは、L2トラフィックのトランスポートトンネルとして使用されます。

NSX-T L2VPN管理対象サーバーと管理対象クライアントは、VLANセグメントとオーバーレイ(VNI)セグメントの両方を拡張できますが、NSX-T Autonomous EdgeはVLANセグメントのみを拡張できます。

 

L2VPN の実装方法の例:

送信元VMから送信されたL2パケットはNSXT Edgeに到達します。

送信元NSX-T Edge内では、L2パケットにVLANタグが付けられます(VLAN ID = トンネルID)。このVLANタグ付きパケットはGREヘッダー内にカプセル化され、VTI(仮想トンネルインターフェース)に転送されます。

GREでカプセル化されたパケットは暗号化され、トンネルを介してピアに送信されます。

ピアNSX-T Edgeでは、このパケットは復号化され、GREヘッダーが削除されます。VLAN IDはパケットから削除され、元のL2パケットが目的のセグメントに転送されます。

 

Environment

  • VMware NSX
  • VMware NSX-T Datacenter
  • VMware NSX-T Autonomous Edge

 

Resolution

シナリオA: L2VPNトンネルはダウンしているが、IPsecセッションはアップしている

ステップ1: ピアGRE IPを見つける

セッションの詳細を取得するには、次のコマンドを実行します。

nsx-edge> get l2vpn sessions config
 

出力例:

DISPLAY_NAME: L2VPN-Session-1
ENABLED: True
ID: <L2VPN-Session-UUID>
L2VPN_SERVICE_ID: <Service-UUID>
TRANSPORT_TUNNELS:
   IPSEC_VPN_SESSION_ID: <IPSEC-Session-UUID>
   VTI: <VTI-UUID>
    TUNNEL_ENCAPSULATION:
       LOCAL_ENDPOINT_IP:
           IPV4: <Local-IP>
       PEER_ENDPOINT_IP:
           IPV4: <Peer-IP>
       PROTOCOL: GRE

***PEER_ENDPOINT_IPとVTI UUIDをメモします****

ステップ2: T0論理ルーターのルーティングテーブルを確認する

次のコマンドを実行して、T0 SR 論理ルーターのルーティング テーブルを検査します。

nsx-edge> get logical-router

出力例:

IPv4 Forwarding Table
IP Prefix          Gateway IP       Type      UUID             Gateway MAC
.....
<Local-IP>                         route   <Next-Hop-UUID>
<Peer-IP>                          route   <Next-Hop-UUID                    
  • VTI UUID がピア GRE IP のネクストホップ UUID と一致していることを確認してください。

  • ルートが見つからないか正しくない場合は、静的ルーティングに問題があります。

 

シナリオB: L2VPNトンネルは稼働しているが、ワークロードが通信できない

L2VPNパイプラインのトラブルシューティング

  1. トンネル ID の不一致:
    • クライアント側とサーバー側の両方でトンネル ID が同じであることを確認してください。不一致があると、GRE カプセル化解除後にパケットがドロップされます。
    • GRE トンネルの統計情報を確認します。
      • nsx-edge> get tunnel-port <UUID> stats
      • 「No-Match」カウンタの増加を確認します。
    • 対策: 両端でトンネル ID が同一であることを確認します。
  2. ストレッチ セグメントのエラー カウンタ:
    • エラー カウンタを確認します。
      • 論理スイッチ UUID を取得します: nsx-edge> get l2vpn session <L2VPN-Session-UUID> logical-switch
      • トンネル ID (VLAN ID) と一致する論理スイッチ UUID を検索します。
      • nsx-edge> get l2vpn session <L2VPN-Session-UUID> logical-switch <Switch-UUID> stats
    • 一般的なエラー:
      • 不正形式: パケット形式が認識されません。
        • 対策: パケット形式を調べてください。
      • No-Match: トンネルIDが一致しません。
        • 対策: トンネルIDが一致していることを確認してください。
      • No-Linked-Port: GREトンネルポートがリンクされていません。
        • 対策: NSXエージェントのログでエラーがないか確認してください。
  3. パケットフローの検証:
    • 出力トラフィックの場合、パケットは論理スイッチポート → GREタップインターフェース → VTIインターフェースの順に通過する必要があります。
    • 上記のインターフェース/ポートからパケットキャプチャを実行し、欠落しているパケットがないか確認するには、以下のコマンドを使用します。
      • 論理スイッチポート:
        • nsx-edge> get l2vpn session <Session UUID> logical-switch
        • 必要なトンネルIDのスイッチポートUUIDを探します。
        • nsx-edge> start capture interface <Switch-port-uuid> direction dual
      • GREタップインターフェース:
        • nsx-edge> get logical-router <logical-router UUID> interfaces 
        • モードが「gretap」のインターフェースUUIDを探します。
        • nsx-edge> start capture interface <GRE-tap-interface-UUID> direction dual
      • 仮想トンネルインターフェース (VTI):
        • nsx-edge> get logical-router <logical-router UUID> interfaces 
        • モードが「vti」のインターフェースUUIDを探します。
        • nsx-edge> start capture interface <VTI-interface-UUID> direction dual
      • NSX Edgeでパケットをキャプチャする方法の詳細については、こちらを参照してください
    • GREタップとVTIの両方でパケットが見られるか確認してください。
    • GREパケットがタップインターフェースでは見られるものの、VTIインターフェースでは見られない場合は、ピアGRE IPのルートが get logical-router <T0-SR-UUID> forwarding に登録されていることを確認してください。

 

L2VPNパイプラインを超えたトラブルシューティング

A. VM 接続 (VLAN/オーバーレイ 延伸)

  • VMがL2VPNセッションでストレッチされている正しいポートグループに接続されていることを確認してください。

  • VMの正しいインターフェース(MAC/IP)が接続されていることを確認してください。

B. 仮想ポートグループの設定を確認する(VLAN延伸)

  1. VLAN ID 構成を確認します:
    • VM のアクセス ポート グループに正しい VLAN ID が設定されていることを確認します。
  2. Edge のダウンリンクの構成を確認します:
    • 複数の VLAN をサポートするには、Edge ダウンリンクが接続されているポート グループをトランクとして設定する必要があります。
  3. 延伸されたポートグループの構成を確認します:
    • ESXi ホストのバージョンと仮想スイッチの種類に応じて、以下のいずれかのオプションを使用してストレッチポートグループを構成します。
      • プロミスキャスモードの有効化
        • この方法では、このポートグループに接続されているすべての仮想マシンにパケットが送信されるため、パフォーマンスへの影響が最も大きくなります。
        • 「Forged Transmits」も有効になっていることを確認してください。
        • ESXi ホストの詳細設定で「Net.ReversePathFwdCheckPromisc」を有効にすることをお勧めします。
      • シンクポートの作成
        • 仮想スイッチが認識していない MAC アドレス宛のフレームを受信するように、仮想スイッチのポートを構成します。
        • 以下のコマンドは、VDS を使用している場合にのみ使用できます。
        • net-dvs --enableSink 1 -p <ポート ID> <VDS 名>
        • 「Forged Transmits」も有効になっていることを確認してください。
      • MAC ラーニングの有効化
        • この方法は、パフォーマンスとセキュリティが最も優れています。
        • このオプションは vSphere 6.7 以降にのみ存在し、VDS を使用している場合にのみ適用されます(VSS には適用されません)。
        • vSphere 8 以降では、 vSphere UI 経由で MAC ラーニングを VDS で直接有効にできます。
        • vSphere バージョン 8 未満で MAC アドレス学習を有効にするには、Broadcom サポートにお問い合わせください。

Additional Information

NSX Broadcom サポートへのサポートチケットが必要な場合は、以下の情報をご提供ください。

  • IPSEC VPN が設定されている T0 または T1 を含む Edge クラスタ内のすべての Edge の NSX Edge ログバンドル
  • ログの日付範囲が調査対象のイベントの発生日全体をカバーしていることを確認してください。不明な場合は、すべての期間のログを取得してください。
  • NSX Manager ログバンドル
  • 影響を受ける Edge VM が稼働しているすべてのホストの ESXi ホストログバンドル
  • 調査に関連する NSX GUI またはコマンドラインに表示されたエラーメッセージのテキスト
  • IPSEC VPN の反対側にあるデバイスの設定とログ