一部の VM で TCP セッションが正しく動作しない
search cancel

一部の VM で TCP セッションが正しく動作しない

book

Article ID: 436853

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

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

  • 特定のマシン宛ての TCP セッションが正常に完了しません。
  • クライアントとサーバー間で Generic Network Virtualization Encapsulation(GENEVE)オーバーレイを使用している環境です。
  • クライアント マシンは SYN パケットを送信し、サーバー マシンは SYN/ACK を返します。しかし、クライアントは SYN/ACK を受信していないかのように、SYN パケットを送り続けます。
  • SYN/ACK パケットには、TCP CHECKSUM INCORRECT と表示されます。

###.###.###.###    ###.###.###.###    TCP    122    4380    9100 → 54465 [SYN, ACK] Seq=0 Ack=1 Win=4380 [TCP CHECKSUM INCORRECT] Len=0 MSS=1460

  • チェックサム エラー("Checksum: incorrect")が表示されるすべてのパケットには、ゼロ以外のトレーラーが付加されています。  
  • カプセル化されたパケットには、ゼロ以外のトレーラー(この例では 7172)が含まれています。

Generic Network Virtualization Encapsulation, VNI: 0x#####
Ethernet II, Src: ######## (######), Dst: ####### (######)
   Destination: ###### (########)
   Source: <ゲスト OS サーバーの MAC>
   Type: IPv4 (0x0800)
   [Stream index: 1]
   Trailer: 7172
Internet Protocol Version 4, Src: #.#.#.#, Dst: #.#.#.#
Transmission Control Protocol, Src Port: 9100, Dst Port: 55340, Seq: 0, Ack: 1, Len: 0

 

Environment

VMware vSphere ESXi
VMware NSX

 

Cause

  • サーバー VM のゲスト OS が、パケット末尾をゼロ以外の値でパディングしています。この例では 7172 がトレーラーとして確認されています。
  • 内部 TCP チェックサムの計算には、このトレーラーも含まれます。  
  • パディングやトレーラーがゼロ以外の値になっている場合、NIC のチェックサム オフロードによって不正なチェックサム値が生成されます。

Resolution

ほとんどのドライバー / デバイスはゼロ以外のトレーラーを含むパケットを処理できないため、VCF バージョン 9.0.2 では、この問題を回避するためのワークアラウンド ビルドが提供されています。

回避策:
トラフィック送信に使用している NIC で、チェックサム オフロードをソフトウェア処理に設定します。

#esxcli network nic software set --ipv4cso=1 -n vmnicX

Additional Information

esxcli network Commands