Generic Network Virtualization Encapsulation(GENEVE)は、元のパケットを追加のメタデータでカプセル化するネットワーク カプセル化プロトコルです。この追加のメタデータは、柔軟で拡張可能なネットワーク仮想化を可能にするのに役立ちます。
次の図は、GENEVE パケットのヘッダー形式を示しています。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Ver| Opt len |O|C| Rsvd. | Protocol type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual network identifier (VNI) | Rsvd. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
次の表に、上の図に示されている GENEVE ヘッダー フィールドの説明を示します。
| フィールド | 説明 | フィールドの長さ |
|---|---|---|
| Ver | GENEVE プロトコルのバージョン。サポートされているバージョンは 0 のみです。詳細については、トンネル ヘッダー フィールドをご覧ください。 | 2 ビット |
| Opt len | オプション フィールドの長さ。4 バイトの倍数で表されます。8 バイトの固定トンネル ヘッダーは含まれません。詳細については、トンネル ヘッダー フィールドをご覧ください。 | 6 ビット |
| O | 制御パケット ビット。詳細については、トンネル ヘッダー フィールドをご覧ください。 | 1 ビット |
| C | クリティカル オプション ビット。詳細については、トンネル ヘッダー フィールドをご覧ください。 | 1 ビット |
| Rsvd | 予約済みのフィールド。送信時は 0(ゼロ)にする必要があり、受信時は無視する必要があります。詳細については、トンネル ヘッダー フィールドをご覧ください。 | 6 ビット |
| プロトコル タイプ | プロトコル タイプでは任意の ethertype を使用できますが、Network Security Integration では IPv4(0x0800)または IPv6(0x86DD)のみが許可されます。 |
16 ビット |
| 仮想ネットワーク識別子(VNI) | 仮想ネットワーク要素の一意の識別子。Network Security Integration ではこのフィールドは入力されません。つまり、VNI は 0 に設定されます。詳細については、アウトオブバンド統合 GENEVE をご覧ください。 | 24 ビット |
| Rsvd | 予約済みのフィールド。送信時は 0(ゼロ)にする必要があり、受信時は無視する必要があります。詳細については、トンネル ヘッダー フィールドをご覧ください。 | 8 ビット |
Google Cloud固有の GENEVE オプション
GENEVE ヘッダーでは、オプションに Type-Length-Value(TLV)形式を使用します。つまり、各オプションは、型識別子、値のサイズを示す長さフィールド、値自体でエンコードされます。この形式は、既存の実装を中断することなく新しいオプションを追加できるため、柔軟性と拡張性に優れています。以降のセクションでは、オプションの順序と数について説明します。オプションの数と順序は、プロダクトの進化に伴って変化します。したがって、デバイス実装の上位互換性を確保するには、TLV フィールドに基づいて GENEVE ヘッダーを解析します。
Google Cloud に固有の GENEVE オプションは次のとおりです。
ネットワーク ID
ネットワーク ID オプション(「ネットワーク Cookie」とも呼ばれます)は、 Google Cloudの GENEVE カプセル化トラフィックに関連付けられた仮想ネットワークを識別します。このオプションは、オプション クラス 0x0132(Google)とタイプ 0x01(ネットワーク ID)で識別されます。オプション データには 32 ビットが含まれており、そのうち最初の 28 ビットは不透明なネットワーク ID を表します。残りの 4 ビットの目的については、次の図と表で説明します。
次の図は、GENEVE パケットのオプション形式を示しています。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x01 R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
次の表に、上の図に示されているオプション フィールドの説明を示します。
| フィールド | 説明 | フィールドの長さ |
|---|---|---|
| オプション クラス | オプションを定義した組織またはエンティティを識別します。値 0x0132 は、Google を定義エンティティとして指定します。 |
16 ビット |
| タイプ | クラス内のオプションのタイプを識別します。値 0x01 は、ネットワーク ID オプションを指定します。詳細については、トンネル オプションをご覧ください。 |
8 ビット |
| R | 将来の使用のために予約されたオプション制御フラグ。これらのビットは、送信時にはゼロ(0)でなければならず、受信時には無視されなければなりません。 | 3 ビット |
| LEN | オプションのペイロードの長さ(4 バイト単位)。ネットワーク ID ペイロードは 32 ビット(4 バイト)であるため、このオプションの長さは 1 に設定されます。 | 5 ビット |
| ネットワーク Cookie | 仮想ネットワークを識別する不透明なネットワーク Cookie。 | 28 ビット |
| R | 将来の実装のために予約済み。送信時に 0 に設定する必要があり、受信時に無視する必要があります。 | 2 ビット |
| T | カプセル化されたパケットの TLS オフロードを示します。使用されません。 | 1 ビット |
| D | 元のパケットの方向を示します。0 は内向き、1 は元のミラーリングされた仮想マシン(VM)上の外向きパケットを示します。 | 1 ビット |
エンドポイント ID
エンドポイント ID オプション(エンドポイント Cookie とも呼ばれます)は、キャプチャ ポイント( Google CloudVM のネットワーク インターフェース コントローラ)を一意に識別します。このオプションは、オプション クラス 0x0132(Google)とタイプ 0x02(エンドポイント ID)で識別されます。オプション データは 128 ビットの不透明な値です。
次の図は、GENEVE パケットのオプション形式を示しています。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
次の表に、上の図に示されているオプション フィールドの説明を示します。
| フィールド | 説明 | フィールドの長さ |
|---|---|---|
| オプション クラス | オプションを定義した組織またはエンティティを識別します。値 0x0132 は、Google を定義エンティティとして指定します。 |
16 ビット |
| タイプ | クラス内のオプションのタイプを識別します。値 0x02 は、エンドポイント ID オプションを指定します。詳細については、トンネル オプションをご覧ください。 |
8 ビット |
| R | 将来の使用のために予約されたオプション制御フラグ。これらのビットは、送信時にはゼロ(0)でなければならず、受信時には無視されなければなりません。 | 3 ビット |
| LEN | ペイロードの長さ(4 バイト単位)。エンドポイント ID ペイロードは 128 ビット(16 バイト)であるため、このオプションの長さは 4 に設定されます。 | 5 ビット |
| エンドポイント Cookie | キャプチャ ポイント(VM NIC)の不透明な識別子。 | 128 ビット |
プロフィール ID
プロファイル ID オプションは、トラフィックに適用されるミラーリング セキュリティ プロファイル グループを識別します。このオプションは、オプション クラス 0x0132(Google)とタイプ 0x03(プロファイル ID)で識別されます。オプション データは、セキュリティ プロファイル グループの data_path_id フィールドに対応する 64 ビットの識別子です。対象デバイスは、プロファイル グループ ID に基づいてセキュリティ ポリシーを適用する場合があります。
次の図は、GENEVE パケットのオプション形式を示しています。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
次の表に、上の図に示されているオプション フィールドの説明を示します。
| フィールド | 説明 | フィールドの長さ |
|---|---|---|
| オプション クラス | オプションを定義した組織またはエンティティを識別します。値 0x0132 は、Google を定義エンティティとして指定します。 |
16 ビット |
| タイプ | クラス内のオプションのタイプを識別します。値 0x03 は、プロファイル ID オプションを指定します。詳細については、トンネル オプションをご覧ください。 |
8 ビット |
| R | 将来の使用のために予約されたオプション制御フラグ。これらのビットは送信時にゼロでなければならず、受信時に無視されなければなりません。 | 3 ビット |
| LEN | オプションのペイロードの長さ(4 バイト単位)。プロファイル ID ペイロードは 64 ビット(8 バイト)であるため、このオプションの長さは 2 に設定されます。 | 5 ビット |
| プロフィール ID | ミラーリング セキュリティ プロファイル グループの識別子。 | 64 ビット |
タイムスタンプ
タイムスタンプ オプションは、送信元 VM での元のパケットのキャプチャ時間を示します。このオプションは、オプション クラス 0x0132(Google)とタイプ 0x0f(タイムスタンプ)で識別されます。
次の図は、GENEVE パケットのオプション形式を示しています。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x0f |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Timestamp +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
次の表に、上の図に示されているオプション フィールドの説明を示します。
| フィールド | 説明 | フィールドの長さ |
|---|---|---|
| オプション クラス | オプションを定義した組織またはエンティティを識別します。値 0x0132 は、Google を定義エンティティとして指定します。 |
16 ビット |
| タイプ | クラス内のオプションのタイプを識別します。値 0x0f はタイムスタンプ オプションを指定します。詳細については、トンネル オプションをご覧ください。 |
8 ビット |
| R | 将来の使用のために予約されたオプション制御フラグ。これらのビットは送信時にゼロでなければならず、受信時に無視されなければなりません。 | 3 ビット |
| LEN | オプションのペイロードの長さ(4 バイト単位)。タイムスタンプ ペイロードは 64 ビット(8 バイト)であるため、このオプションの長さは 2 に設定されます。 | 5 ビット |
| タイムスタンプ | 元のパケットのキャプチャ時間。エポックからのナノ秒で表されます。ナノ秒の粒度でナノ秒の精度が保証されるわけではありません。特定の精度のサービスレベル目標(SLO)については、プロダクトのドキュメントをご覧ください。 | 64 ビット |
ネットワークの安定した ID
ネットワーク安定 ID オプションは、ミラーリングされた VM のネットワークを識別します。このオプションは、オプション クラス 0x0132(Google)とタイプ 0x10(ネットワーク安定 ID)で識別されます。
次の図は、GENEVE パケットのオプション形式を示しています。ネットワークの安定した ID は、プロジェクト番号とネットワーク ID で構成されます。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x10 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Project Number +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Network ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
次の表に、上の図に示されているオプション フィールドの説明を示します。
| フィールド | 説明 | フィールドの長さ |
|---|---|---|
| オプション クラス | オプションを定義した組織またはエンティティを識別します。値 0x0132 は、Google を定義エンティティとして指定します。 |
16 ビット |
| タイプ | クラス内のオプションのタイプを識別します。値 0x10 は、ネットワーク安定 ID オプションを指定します。詳細については、トンネル オプションをご覧ください。 |
8 ビット |
| R | 将来の使用のために予約されたオプション制御フラグ。これらのビットは送信時にゼロでなければならず、受信時に無視されなければなりません。 | 3 ビット |
| LEN | オプションのペイロードの長さ(4 バイト単位)。ネットワーク ID ペイロードは 128 ビット(16 バイト)であるため、このオプションの長さは 4 に設定されます。 | 5 ビット |
| ネットワークの安定した ID | ミラーリングされた VM のネットワーク。 | 128 ビット(プロジェクト番号 64 ビット、ネットワーク ID 64 ビット) |
Network Security Integration の GENEVE ヘッダー形式
このセクションでは、Network Security Integration サービスで使用される GENEVE ヘッダー形式について説明します。
IPv4 経由の GENEVE パケット形式
GENEVE パケット形式は、IPv4 経由の UDP でコンパクトなトンネル ヘッダーをカプセル化します。小さな固定トンネル ヘッダーは、制御情報とベースレベルの機能および相互運用性を提供します。
次の図は、IPv4 上の GENEVE パケット形式を示しています。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of service| Total length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to live | Proto=17 (UDP)| Header checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
次の表に、前の図に示されている IPv4 ヘッダー フィールドの説明を示します。
| フィールド | 説明 |
|---|---|
| Proto=17(GENEVE の場合は常に UDP) | カプセル化されたペイロードが UDP プロトコルを使用することを示します。 |
| 送信元アドレス | ローカル サブネットのゲートウェイ IP アドレス。 |
| 配信先アドレス | お客様所有のロードバランサの VIP。 |
UDP ヘッダー
UDP RFC 0768 ヘッダーは、イーサネットと IP アドレスの接続なしのセマンティクスを維持しながら、データをカプセル化します。また、等価コスト マルチパス(ECMP)を実行するルーターにエントロピーも提供します。
次の図は、UDP 内にカプセル化された Geneve パケットのヘッダー形式を示しています。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source port = <hash> | Dest port = 6081 (Geneve)|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| UDP length | UDP checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
次の表に、前の図に示されている UDP ヘッダー フィールドの説明を示します。
| フィールド | 説明 |
|---|---|
| 送信元ポート | 16 ビットの範囲全体にわたる不透明なハッシュ。この値は、単一のカプセル化されたフローに属するすべてのパケット(両方向)で同じです。 |
| 宛先ポート | GENEVE トラフィックの指定された宛先ポート番号。6081 に設定されます。 |
| UDP の長さ | UDP ヘッダーとカプセル化された GENEVE パケットを含む、UDP データグラムの全長。 |
| UDP チェックサム | エラー検出に使用される UDP データグラムのチェックサム値。 |
帯域外統合
帯域外統合では、GENEVE トンネルを使用してミラーリングされたパケットをカプセル化して配信します。コレクタの内部ロードバランサの仮想 IP アドレス(VIP)は、ネットワーク Cookie などの Google Cloud固有のメタデータでアノテーションが付けられたパケットを受信します。
アウトオブバンド統合では、 Google Cloud固有の次の GENEVE オプション(ネットワーク Cookie、エンドポイント Cookie、プロファイル ID)を使用します。詳細については、 Google Cloud固有の GENEVE オプションをご覧ください。
次の図は、アウトオブバンド統合でミラーリングの直接モードに Google Cloud固有の GENEVE オプションを使用する方法を示しています。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=0| Opt len |O|C| Rsvd | Protocol type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual network identifier (VNI) = 0 | Rsvd. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
次の図は、アウトオブバンド統合でミラーリングのブローカー モード(プレビュー)に Google Cloud固有の GENEVE オプションを使用する方法を示しています。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=0| Opt len |O|C| Rsvd | Protocol type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual network identifier (VNI) = 0 | Rsvd. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x0f |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Timestamp +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x10 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Project Number +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Network ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
インバンド統合
インバンド統合では、GENEVE トンネルを使用して、傍受されたパケットをカプセル化して配信します。プロデューサーの内部ロードバランサの仮想 IP アドレス(VIP)は、ネットワーク Cookie などの Google Cloud固有のメタデータでアノテーションが付けられたパケットを受信します。
インバンド統合では、次の Google Cloud固有の GENEVE オプション(ネットワーク Cookie、エンドポイント Cookie、プロファイル ID)が使用されます。詳細については、Google Cloud固有の GENEVE オプションをご覧ください。
インバンド統合では、2 つの単方向 GENEVE トンネルで構成される論理双方向 GENEVE トンネルを使用して、元のエンドポイントへのパケットの再注入がサポートされます。プロデューサー ネットワーク アプライアンスは、パケットをインターセプトして検査した後、パケットをドロップするか、再挿入できます。パケットを再注入するために、アプライアンスは次の処理を行います。
- 元の GENEVE ヘッダー(同じオプション)を使用してパケットを再カプセル化します。
- 外側の IP ヘッダーで送信元アドレスと宛先アドレスを入れ替えます。
- チェックサムが正しいことを確認します。
次の図は、インバンド統合で Google Cloud固有の GENEVE オプションがどのように使用されるかを示しています。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=0| Opt len |O|C| Rsvd | Protocol type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual network identifier (VNI) = 0 | Rsvd. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=0x01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network Cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=0x02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint Cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=0x03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
GENEVE カプセル化と MTU 要件
最大伝送単位(MTU)は、イーサネット フレーム内に収まる IP パケットの最大サイズ(バイト単位)です。これには、IP ヘッダー、レイヤ 4 プロトコル ヘッダー、レイヤ 4 データが含まれます。詳細については、最大伝送単位をご覧ください。
Google Cloud ネットワークでは、許可される MTU は 8, 588 バイトです。ただし、Network Security Integration の場合は、Geneve カプセル化オーバーヘッド用に 308 バイトを保持する必要があります。この保持の必要性は、コンシューマー ネットワークとプロデューサー ネットワークの両方に影響します。
コンシューマー ネットワークの MTU: コンシューマー ネットワークの MTU は 8,588 バイト以下にする必要があります。この上限により、最大 MTU を超えることなく、GENEVE オーバーヘッドに十分なスペースが確保されます。
プロデューサー ネットワークの MTU: プロデューサー ネットワークの MTU は、コンシューマー ネットワークの MTU よりも 396 バイト以上大きくする必要があります。この許容値は、追加の GENEVE カプセル化に対応しています。
GENEVE カプセル化に対応できる MTU 制限が十分でない場合、パケットがドロップされることがあります。これは、仮想ネットワーク レベルまたは VM のオペレーティング システムで発生する可能性があります。