3. Design Requirements (Exigences de conception)
3. Design Requirements (Exigences de conception)
Geneve est conçu pour prendre en charge les cas d'utilisation de la virtualisation de réseau, où un réseau logique est superposé à un réseau IP physique. Les exigences d'un tel protocole sont guidées par les besoins du plan de contrôle, les capacités des dispositifs du plan de données et le désir de simplicité opérationnelle.
3.1. Data Plane (Plan de données)
Le plan de données doit être capable d'encapsuler et de désencapsuler efficacement les paquets. Cela implique :
- Low Overhead (Faible surcharge) : L'en-tête d'encapsulation doit être aussi petit que possible pour minimiser l'utilisation de la bande passante et la fragmentation.
- ** Efficient Processing (Traitement efficace)** : Le format doit être facile à analyser et à traiter tant au niveau matériel que logiciel.
- Protocol Agnostic (Indépendant du protocole) : Le protocole doit être capable de transporter tout type de trafic interne (IPv4, IPv6, Ethernet, etc.).
- Multipathing (Multipathing) : Le protocole doit prendre en charge le routage Equal-Cost Multipath (ECMP) dans le réseau sous-jacent.
3.2. Control Plane (Plan de contrôle)
Le plan de contrôle est responsable de la mise en place des tunnels et de la distribution de la politique. Le protocole du plan de données doit prendre en charge :
- Decoupling (Découplage) : Le plan de données ne doit pas être étroitement couplé à un plan de contrôle spécifique. Il devrait être possible d'utiliser différents plans de contrôle (par exemple, contrôleur SDN, BGP-EVPN) avec le même plan de données.
- Extensibility (Extensibilité) : Le plan de contrôle peut avoir besoin d'attacher des métadonnées aux paquets pour implémenter des fonctionnalités avancées (par exemple, politiques de sécurité, chaînes de services). Le plan de données doit prendre en charge un mécanisme flexible pour transporter ces métadonnées.
3.3. Next-Generation Protocol Support (Prise en charge des protocoles de nouvelle génération)
De nouveaux protocoles et capacités émergent constamment. Geneve est conçu pour être pérenne en :
- Avoiding fixed fields (Évitant les champs fixes) : Mis à part le strict nécessaire pour la livraison, l'en-tête ne doit pas contenir de champs fixes qui pourraient devenir obsolètes ou insuffisants.
- TLV Options (Options TLV) : L'utilisation d'un format Type-Length-Value pour les options permet de définir de nouveaux types de métadonnées sans modifier le protocole de base.
3.4. Options (Options)
L'un des principaux objectifs de conception de Geneve est de prendre en charge des options de longueur variable. Les options sont utilisées pour transporter des métadonnées entre les points de terminaison du tunnel. Ces métadonnées peuvent être utilisées à diverses fins, telles que :
- Policy enforcement (Application de la politique) : Application de groupes de sécurité ou de listes de contrôle d'accès (ACL).
- Service chaining (Chaînage de services) : Direction du trafic à travers une séquence de boîtiers intermédiaires (middleboxes).
- Telemetry (Télémétrie) : Transport d'informations de performance ou de débogage.
- Source identification (Identification de la source) : Identification de l'hyperviseur ou du conteneur source.
3.5. Existing Implementations (Implémentations existantes)
Geneve est conçu pour être implémentable sur les plateformes matérielles et logicielles existantes. Bien qu'il prenne en charge des fonctionnalités avancées, il devrait également être possible d'implémenter un sous-ensemble de base du protocole sur des dispositifs contraints.
3.6. NIC Offloads (Déchargements NIC)
Les cartes d'interface réseau (Network Interface Cards, NIC) modernes fournissent des fonctionnalités de déchargement (telles que le déchargement de la somme de contrôle, Large Send Offload) pour améliorer les performances. Geneve est conçu pour être compatible avec ces déchargements lorsque cela est possible, ou pour permettre la mise en œuvre efficace de nouveaux déchargements.
3.7. Debugging and OAM (Débogage et OAM)
Les outils d'Opérations, Administration et Gestion (OAM) sont essentiels pour le dépannage des problèmes de réseau. Geneve inclut la prise en charge des paquets OAM (par exemple, Ping, Traceroute) pour vérifier la connectivité et les performances du réseau overlay.