3. Design Requirements (Requisiti di progettazione)
3. Design Requirements (Requisiti di progettazione)
Geneve è progettato per supportare i casi d'uso della virtualizzazione della rete, in cui una rete logica è sovrapposta a una rete IP fisica. I requisiti per un tale protocollo sono guidati dalle esigenze del piano di controllo, dalle capacità dei dispositivi del piano dati e dal desiderio di semplicità operativa.
3.1. Data Plane (Piano dati)
Il piano dati deve essere in grado di incapsulare e decapsulare i pacchetti in modo efficiente. Ciò implica:
- Low Overhead (Basso sovraccarico): L'intestazione di incapsulamento dovrebbe essere il più piccola possibile per ridurre al minimo l'utilizzo della larghezza di banda e la frammentazione.
- ** Efficient Processing (Elaborazione efficiente)**: Il formato dovrebbe essere facile da analizzare ed elaborare sia nell'hardware che nel software.
- Protocol Agnostic (Agnostico rispetto al protocollo): Il protocollo dovrebbe essere in grado di trasportare qualsiasi tipo di traffico interno (IPv4, IPv6, Ethernet, ecc.).
- Multipathing (Multipathing): Il protocollo dovrebbe supportare l'instradamento Equal-Cost Multipath (ECMP) nella rete underlay.
3.2. Control Plane (Piano di controllo)
Il piano di controllo è responsabile della creazione dei tunnel e della distribuzione delle policy. Il protocollo del piano dati deve supportare:
- Decoupling (Disaccoppiamento): Il piano dati non dovrebbe essere strettamente accoppiato a un piano di controllo specifico. Dovrebbe essere possibile utilizzare diversi piani di controllo (ad es. controller SDN, BGP-EVPN) con lo stesso piano dati.
- Extensibility (Estensibilità): Il piano di controllo potrebbe aver bisogno di allegare metadati ai pacchetti per implementare funzionalità avanzate (ad es. policy di sicurezza, catene di servizi). Il piano dati deve supportare un meccanismo flessibile per trasportare questi metadati.
3.3. Next-Generation Protocol Support (Supporto per protocolli di prossima generazione)
Nuovi protocolli e capacità emergono costantemente. Geneve è progettato per essere a prova di futuro:
- Avoiding fixed fields (Evitando campi fissi): A parte il minimo necessario per la consegna, l'intestazione non dovrebbe contenere campi fissi che potrebbero diventare obsoleti o insufficienti.
- TLV Options (Opzioni TLV): L'utilizzo di un formato Type-Length-Value per le opzioni consente di definire nuovi tipi di metadati senza modificare il protocollo di base.
3.4. Options (Opzioni)
Uno degli obiettivi principali di progettazione di Geneve è supportare opzioni di lunghezza variabile. Le opzioni vengono utilizzate per trasportare metadati tra gli endpoint del tunnel. Questi metadati possono essere utilizzati per una varietà di scopi, come:
- Policy enforcement (Applicazione delle policy): Applicazione di gruppi di sicurezza o access control lists (ACL).
- Service chaining (Concatenamento dei servizi): Indirizzamento del traffico attraverso una sequenza di middlebox.
- Telemetry (Telemetria): Trasporto di informazioni sulle prestazioni o di debug.
- Source identification (Identificazione della sorgente): Identificazione dell'hypervisor o del container di origine.
3.5. Existing Implementations (Implementazioni esistenti)
Geneve è progettato per essere implementabile su piattaforme hardware e software esistenti. Sebbene supporti funzionalità avanzate, dovrebbe anche essere possibile implementare un sottoinsieme di base del protocollo su dispositivi vincolati.
3.6. NIC Offloads (Offload NIC)
Le moderne schede di interfaccia di rete (Network Interface Cards, NIC) forniscono funzionalità di offload (come offload del checksum, Large Send Offload) per migliorare le prestazioni. Geneve è progettato per essere compatibile con questi offload ove possibile, o per consentire l'implementazione efficiente di nuovi offload.
3.7. Debugging and OAM (Debug e OAM)
Gli strumenti di Operations, Administration, and Management (OAM) sono essenziali per la risoluzione dei problemi di rete. Geneve include il supporto per pacchetti OAM (ad es. Ping, Traceroute) per verificare la connettività e le prestazioni della rete overlay.