Passa al contenuto principale

1. Introduction (Introduzione)

1. Introduction (Introduzione)

La virtualizzazione della rete è una tecnica utile per creare ambienti agili e multi-tenant su un'infrastruttura fisica condivisa. Disaccoppiando la simulazione della topologia di rete dall'hardware fisico, è possibile costruire piani di controllo semplici e flessibili che offrono la vista di una rete dedicata alle applicazioni adiacenti di livello superiore. Ciò comporta spesso l'uso di un protocollo di tunneling per incapsulare il traffico virtualizzato mentre scorre attraverso l'infrastruttura fisica. Mentre i requisiti del piano di controllo e dell'ambiente si evolvono, il protocollo di tunneling e incapsulamento è un meccanismo implementato in hardware e/o software e può essere più difficile da modificare. Questo documento descrive Geneve (Generic Network Virtualization Encapsulation), un protocollo che cerca di evitare i problemi di definizioni standard rigide fornendo un framework flessibile ed estensibile per i casi d'uso di rete attuali e futuri.

Il protocollo di tunneling definisce il formato del piano dati del traffico in transito. Nella misura in cui questo formato è fisso, diventa la "vita stretta" (narrow waist) del sistema, vincolando il ritmo dell'innovazione (simile al modo in cui le opzioni IPv4 sono difficili da evolvere). L'obiettivo di Geneve è definire un formato dati di incapsulamento che sia il più flessibile ed estensibile possibile al fine di consentire al piano di controllo di evolversi e supportare nuovi casi d'uso senza richiedere modifiche permanenti al formato dati.

Gli incapsulamenti di virtualizzazione attuali possono essere classificati in quelli senza stato (ad es. VXLAN [RFC7348] e NVGRE [RFC7637]) e quelli che includono lo stato (ad es. STT [STT]). I protocolli con stato offrono flessibilità e prestazioni significative, ma lo stato deve essere sincronizzato tra gli endpoint, il che aggiunge complessità. I protocolli senza stato sono più semplici da implementare e sottoporre a debug, ma sono limitati nella quantità di informazioni che possono essere trasportate nel pacchetto. Geneve è un protocollo senza stato che tenta di fornire la flessibilità di un protocollo con stato con la semplicità di uno senza stato.

1.1. Requirements Language (Linguaggio dei requisiti)

Le parole chiave "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" e "OPTIONAL" in questo documento devono essere interpretate come descritto nel BCP 14 [RFC2119] [RFC8174] quando, e solo quando, appaiono in tutte le lettere maiuscole, come mostrato qui.