3. Design Requirements (設計要件)
3. Design Requirements (設計要件)
Geneve は、論理ネットワークが物理 IP ネットワーク上にオーバーレイされるネットワーク仮想化のユースケースをサポートするように設計されています。このようなプロトコルの要件は、コントロールプレーンのニーズ、データプレーンデバイスの機能、および運用の単純さへの要望によって推進されます。
3.1. Data Plane (データプレーン)
データプレーンは、パケットを効率的にカプセル化およびカプセル化解除できなければなりません。これは以下を意味します。
- Low Overhead (低オーバーヘッド): 帯域幅の使用と断片化を最小限に抑えるために、カプセル化ヘッダーは可能な限り小さくあるべきです。
- ** Efficient Processing (効率的な処理)**: フォーマットは、ハードウェアとソフトウェアの両方で解析および処理が容易であるべきです。
- Protocol Agnostic (プロトコルに依存しない): プロトコルは、あらゆる種類の内部トラフィック(IPv4、IPv6、Ethernet など)を伝送できるべきです。
- Multipathing (マルチパス): プロトコルは、アンダーレイネットワークにおける Equal-Cost Multipath (等価コストマルチパス, ECMP) ルーティングをサポートすべきです。
3.2. Control Plane (コントロールプレーン)
コントロールプレーンは、トンネルの設定とポリシーの配布を担当します。データプレーンプロトコルは以下をサポートしなければなりません。
- Decoupling (分離): データプレーンは特定のコントロールプレーンに密結合すべきではありません。同じデータプレーンで異なるコントロールプレーン(例:SDN コントローラー、BGP-EVPN)を使用できるべきです。
- Extensibility (拡張性): コントロールプレーンは、高度な機能(例:セキュリティポリシー、サービスチェーン)を実装するために、パケットにメタデータを添付する必要がある場合があります。データプレーンは、このメタデータを伝送するための柔軟なメカニズムをサポートしなければなりません。
3.3. Next-Generation Protocol Support (次世代プロトコルのサポート)
新しいプロトコルと機能は絶えず登場しています。Geneve は、以下によって将来にわたって使用できるように設計されています。
- Avoiding fixed fields (固定フィールドの回避): 配送に必要な最小限のものを除き、ヘッダーには陳腐化したり不十分になったりする可能性のある固定フィールドを含めるべきではありません。
- TLV Options (TLV オプション): オプションに Type-Length-Value 形式を使用することで、基本プロトコルを変更することなく新しいメタデータタイプを定義できます。
3.4. Options (オプション)
Geneve の主要な設計目標の 1 つは、可変長オプションをサポートすることです。オプションは、トンネルエンドポイント間でメタデータを伝送するために使用されます。このメタデータは、次のようなさまざまな目的に使用できます。
- Policy enforcement (ポリシーの適用): セキュリティグループやアクセス制御リスト (ACL) の適用。
- Service chaining (サービスチェーン): 一連のミドルボックス (middleboxes) を介してトラフィックを誘導する。
- Telemetry (テレメトリ): パフォーマンス情報やデバッグ情報を伝送する。
- Source identification (送信元の識別): 送信元のハイパーバイザーやコンテナを識別する。
3.5. Existing Implementations (既存の実装)
Geneve は、既存のハードウェアおよびソフトウェアプラットフォーム上で実装できるように設計されています。高度な機能をサポートしつつ、制約のあるデバイス上でプロトコルの基本的なサブセットを実装することも可能であるべきです。
3.6. NIC Offloads (NIC オフロード)
最新のネットワークインターフェースカード (Network Interface Cards, NIC) は、パフォーマンスを向上させるためにオフロード機能(チェックサムオフロード、Large Send Offload など)を提供しています。Geneve は、可能な限りこれらのオフロードと互換性があるように、または新しいオフロードを効率的に実装できるように設計されています。
3.7. Debugging and OAM (デバッグと OAM)
Operations, Administration, and Management (運用管理保守, OAM) ツールは、ネットワークの問題をトラブルシューティングするために不可欠です。Geneve には、オーバーレイネットワークの接続性とパフォーマンスを検証するための OAM パケット(例:Ping、Traceroute)のサポートが含まれています。