汎用ルーティング カプセル化 (NVGRE) を使用したネットワークの仮想化について

Hyper-V ネットワーク仮想化は、IP アドレスを仮想化するメカニズムとして 汎用ルーティング カプセル化 (NVGRE) を使用したネットワーク仮想化をサポートします。 NVGRE では、仮想マシンのパケットは別のパケット内にカプセル化されます。 この新しい NVGRE 形式のパケットのヘッダーには、適切な送信元および送信先プロバイダー領域 (PA) IP アドレスがあります。 さらに、新しいパケットの GRE ヘッダーに格納される 24 ビット仮想サブネット ID (VSID) があります。

以下の図は、GRE カプセル化されたパケットを示しています。 ネットワーク上では、NVGRE でカプセル化されたパケットは IP オーバー イーサネット パケットのように見えますが、外部 IP ヘッダーのペイロードが GRE カプセル化 IP パケット (イーサネット ヘッダーを含む) である点が異なります。

Diagram comparing original packet and GRE-encapsulated packet. Both have MAC, IP header, TCP header, and TCP user data. GRE-encapsulated packet also has outer MAC, outer IP header, and GRE.

NDIS 6.30 (Windows Server 2012 以降で利用可能) では、NVGRE タスク オフロードが導入され、これにより、NVGRE 形式のパケットを次の値で使用できます。

  • Large Send Offload (LSO)
  • 仮想マシン キュー (VMQ)
  • 送信 (Tx) チェックサム オフロード (IPv4、TCP、UDP)
  • 受信 (Rx) チェックサム オフロード (IPv4、TCP、UDP)

NDIS 6.85 では、UDP セグメント化オフロード (USO) を使用した NVGRE のサポートが導入されています。

注意:プロトコル ドライバーが「混合モード」パケットをオフロードすることは可能です。これは、内部 IP ヘッダーと外部 IP ヘッダーのバージョンが異なるパケットを意味します。 たとえば、パケットの外側の IP ヘッダーは IPv6、内部 IP ヘッダーは IPv4 になります。

注意:プロトコル ドライバーは、内部 TCP または UDP ヘッダーのない NVGRE 形式のパケットをオフロードすることもできます。 たとえば、IP パケットは、インターネット制御メッセージ プロトコル (ICMP) パケットである内部ペイロードを持つことができます。

NVGRE の詳細については、以下のインターネット ドラフトを参照してください。

NVGRE は、汎用ルーティング カプセル化 (GRE) に基づいています。 GRE の詳細については、以下のリソースを参照してください。

このセクションには、次が含まれます。

チェックサム タスクのオフロード

大きな TCP パケットのセグメント化のオフロード

TCP/IP タスク オフロード