1. Introduction (Einführung)
1. Introduction (Einführung)
Netzwerkvirtualisierung ist eine nützliche Technik, um agile, mandantenfähige Umgebungen auf einer gemeinsamen physischen Infrastruktur zu schaffen. Durch die Entkopplung der Simulation der Netzwerktopologie von der physischen Hardware können einfache und flexible Steuerungsebenen (Control Planes) aufgebaut werden, die benachbarten Anwendungsschichten die Sicht auf ein dediziertes Netzwerk bieten. Dies beinhaltet oft die Verwendung eines Tunneling-Protokolls, um den virtualisierten Datenverkehr zu kapseln, während er die physische Infrastruktur durchquert. Während sich die Anforderungen der Steuerungsebene und der Umgebung weiterentwickeln, ist das Tunneling- und Kapselungsprotokoll ein Mechanismus, der in Hardware und/oder Software implementiert ist und schwieriger zu ändern sein kann. Dieses Dokument beschreibt Geneve (Generic Network Virtualization Encapsulation), ein Protokoll, das versucht, die Probleme starrer Standarddefinitionen zu vermeiden, indem es ein flexibles und erweiterbares Gerüst für aktuelle und zukünftige Netzwerkanwendungsfälle bietet.
Das Tunneling-Protokoll definiert das Datenformat (Data Plane Format) des Datenverkehrs während der Übertragung. Insofern dieses Format fest ist, wird es zur "schmalen Taille" (narrow waist) des Systems und schränkt das Innovationstempo ein (ähnlich wie IPv4-Optionen schwer weiterzuentwickeln sind). Das Ziel von Geneve ist es, ein Kapselungsdatenformat zu definieren, das so flexibel und erweiterbar wie möglich ist, damit sich die Steuerungsebene weiterentwickeln und neue Anwendungsfälle unterstützen kann, ohne permanente Änderungen am Datenformat zu erfordern.
Aktuelle Virtualisierungskapselungen können in solche unterteilt werden, die zustandslos sind (z. B. VXLAN [RFC7348] und NVGRE [RFC7637]) und solche, die einen Zustand beinhalten (z. B. STT [STT]). Zustandsbehaftete Protokolle bieten erhebliche Flexibilität und Leistung, aber der Zustand muss zwischen den Endpunkten synchronisiert werden, was die Komplexität erhöht. Zustandslose Protokolle sind einfacher zu implementieren und zu debuggen, sind jedoch in der Menge an Informationen, die im Paket übertragen werden können, begrenzt. Geneve ist ein zustandsloses Protokoll, das versucht, die Flexibilität eines zustandsbehafteten Protokolls mit der Einfachheit eines zustandslosen Protokolls zu verbinden.
1.1. Requirements Language (Anforderungssprache)
Die Schlüsselwörter "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" und "OPTIONAL" in diesem Dokument sind so zu interpretieren, wie in BCP 14 [RFC2119] [RFC8174] beschrieben, wenn, und nur wenn, sie in Großbuchstaben erscheinen, wie hier gezeigt.