メインコンテンツまでスキップ

1. Introduction (はじめに)

1. Introduction (はじめに)

ネットワーク仮想化は、共有物理インフラストラクチャ上に俊敏なマルチテナント環境を構築するための有用な技術です。ネットワークトポロジのシミュレーションを物理ハードウェアから分離することで、シンプルで柔軟なコントロールプレーンを構築でき、上位のアプリケーションに対して専用ネットワークのようなビューを提供できます。これには通常、物理インフラストラクチャ上を流れる仮想化トラフィックをカプセル化するためのトンネリングプロトコルの使用が含まれます。コントロールプレーンと環境の要件は進化していますが、トンネリングおよびカプセル化プロトコルは、主にハードウェアやソフトウェアで実装されるメカニズムであり、変更がより困難な場合があります。本書では、現在および将来のネットワークユースケースに対して柔軟で拡張可能なフレームワークを提供することで、厳格な標準定義の問題を回避しようとするプロトコルである Geneve (Generic Network Virtualization Encapsulation) について説明します。

トンネリングプロトコルは、転送中のトラフィックのデータプレーン形式を定義します。この形式が固定されている限り、それはシステムの「細い腰 (narrow waist)」となり、イノベーションのペースを制約します(IPv4 オプションを進化させることが難しいのと同様です)。Geneve の目標は、データフォーマットに恒久的な変更を加えることなく、コントロールプレーンが進化し、新しいユースケースをサポートできるように、可能な限り柔軟で拡張性のあるカプセル化データフォーマットを定義することです。

現在の仮想化カプセル化は、ステートレスなもの(例:VXLAN [RFC7348] および NVGRE [RFC7637])と、ステートを含むもの(例:STT [STT])に分類できます。ステートフルプロトコルは、大幅な柔軟性とパフォーマンスを提供しますが、ステートをエンドポイント間で同期させる必要があり、複雑さが増します。ステートレスプロトコルは実装とデバッグが簡単ですが、パケットで伝送できる情報量に制限があります。Geneve は、ステートレスプロトコルの単純さを維持しながら、ステートフルプロトコルの柔軟性を提供しようとするステートレスプロトコルです。

1.1. Requirements Language (要件言語)

本書におけるキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「NOT RECOMMENDED」、「MAY」、および「OPTIONAL」は、すべて大文字で表記されている場合にのみ、BCP 14 [RFC2119] [RFC8174] で説明されているように解釈されます。