Protocoles de configuration OpenFlow : comprendre OF-Config et OVSDB
OpenFlow achemine des flux de paquets réseau, tandis que ses protocoles de configuration, OF-Config et OVSDB, établissent des relations entre contrôleurs et commutateurs.
De nombreuses méthodes de mise en oeuvre du réseau à définition logicielle (SDN) devraient voir le jour au fil du temps, mais l'une des stratégies les plus explorées à ce jour consiste à dissocier le plan de contrôle d'un réseau physique pour confier la gestion à un contrôleur centralisé. Ce contrôleur utilise OpenFlow comme protocole descendant (southbound) pour acheminer des flux spécifiques entre les noeuds, assurant ainsi une programmabilité granulaire du réseau.
Bien qu'OpenFlow gère efficacement les flux et détermine le mode de transfert des paquets entre chaque paire source et cible, il ne fournit pas les fonctions de configuration et de gestion nécessaires pour allouer des ports ou affecter des adresses IP. C'est là qu'interviennent les protocoles de configuration d'OpenFlow.
Cependant, l'un des avantages potentiels du SDN tient à ce qu'il dispense les ingénieurs de programmer chaque commutateur du réseau. A la place, les contrôleurs SDN leur donnent une vue holistique de chaque composant du réseau et la capacité de définir une stratégie et de diriger le trafic dans la matrice complexe des périphériques.Dans un réseau traditionnel, les fournisseurs utilisent des méthodes de configuration et de gestion propriétaires. Certains se reposent sur SNMP pour configurer les produits et surveiller les périphériques. D'autres font appel à des lignes de commande pour configurer chaque périphérique du réseau.
Dans ce scénario, OpenFlow définit le fonctionnement des flux de paquets, mais ne spécifie ni des bases de données de configuration des commutateurs, ni aucun protocole de gestion. En revanche, les protocoles de configuration d'OpenFlow établissent la relation entre contrôleurs et commutateurs, offrant ainsi une méthode de configuration et de gestion standard des commutateurs. En utilisant la même configuration de gestion, les responsables réseau peuvent sélectionner les commutateurs de n'importe quel constructeur, choisir le meilleur périphérique pour chaque emplacement du réseau, et définir les paramètres de communication entre contrôleurs et commutateurs.
Deux protocoles de configuration et de gestion sont actuellement en cours d'élaboration pour les commutateurs OpenFlow : OpenFlow Management and Configuration Protocol (OF-Config) et Open vSwitch Database Management Protocol.
Eléments de base d'OF-Config
Publié en mars 2011 et développé sous l'égide de l'Open Networking Foundation, OpenFlow Management and Configuration Protocol version 1.1 (OF-Config) a été conçu pour s'appliquer à toutes les mises en oeuvre d'OpenFlow, et sur des commutateurs tant physiques que virtuels.
Ce protocole administre les éléments suivants de la gestion contrôleur-commutateur :
- Point de configuration OpenFlow : le point OF-Config émet des commandes OF-Config.
- Commutateur compatible OpenFlow : un dispositif de commutation physique ou virtuel contient un certain nombre de ports et de files d'attente.
- Commutateur logique OpenFlow : un commutateur logique alloue un sous-ensemble des ports et files d'attente qui composent le commutateur compatible OpenFlow.
Le point OF-Config se trouve sur le même serveur ou poste de travail qu'un contrôleur OpenFlow, ou est intégré à des produits de gestion de réseau traditionnels. Dans les deux cas, les points de configuration peuvent gérer plusieurs commutateurs virtuels ou physiques compatibles OpenFlow. Un point de configuration peut gérer plusieurs commutateurs compatibles OpenFlow et un commutateur compatible peut être géré par plusieurs points de configuration.
Le point de configuration communique également avec des commutateurs logiques OpenFlow actifs au sein du commutateur compatible OpenFlow. Plus précisément, le point de contrôle fournit à chaque commutateur logique les adresses IP et les numéros de port des contrôleurs OpenFlow qui feront transiter les flux de paquets par le commutateur. Il détermine également si le protocole TCP ou TLS sera utilisé pour la communication entre le commutateur et le contrôleur, et il configure les certificats nécessaires à cette communication. Chaque commutateur logique OpenFlow fonctionne indépendamment des autres au sein d'un même commutateur compatible OpenFlow.
Un point de configuration peut découvrir les ressources allouées à un commutateur logique, configurer des tunnels, définir les paramètres des ports, activer et désactiver des ports, et extraire l'état du commutateur. Il reçoit les codes d'erreur provenant d'un commutateur en cas d'échec d'une opération de configuration et peut annuler l'opération si cet échec n'est que partiel.
La mise en oeuvre d'OF-Config dans un commutateur requiert de modifier la base de données de configuration interne du commutateur et de mettre en oeuvre le protocole Netconf (RFC 6241) pour la communication entre points de configuration et commutateurs. Netconf utilise le codage XML pour les données de configuration et les messages de protocole.
Les données de configuration sont envoyées et récupérées sur les commutateurs par le biais d'appels de procédure distante. Netconf peut envoyer ou extraire des descriptions de configuration complètes ou partielles, et transmettre des notifications asynchrones provenant du commutateur.
Le protocole Netconf est extensible, de sorte qu'il continuera à prendre en charge OF-Config en cas d'ajout ultérieur de fonctions. Etant donné que les points de configuration peuvent récupérer les fonctions de configuration du commutateur, un point de configuration mis à niveau avec une version ultérieure d'OF-Config continuera à prendre en charge un commutateur non encore mis à niveau.
La spécification OF-Config 1.1.1 contient des diagrammes UML, des exemples XML et le schéma XML intégral définissant les fonctions de configuration.
Eléments de base du protocole OVSDB : gestion du commutateur virtuel Open vSwitch
Le protocole OVSDB (Open vSwitch Database Management Protocol) est un composant du commutateur open source Open vSwitch, spécialement conçu pour gérer les mises en oeuvre Open vSwitch.
Une mise en oeuvre Open vSwitch se compose d'un serveur de base de données et d'un démon de commutateur. Un cluster de contrôle contient des gestionnaires et des contrôleurs qui exploitent le protocole OVSDB pour fournir des informations de configuration au serveur de base de données du commutateur. Les contrôleurs utilisent OpenFlow pour définir les détails des flux de paquets transitant par le commutateur. Chaque gestionnaire et contrôleur peut diriger plusieurs commutateurs, et chaque commutateur peut recevoir des directives émanant de plusieurs gestionnaires et contrôleurs.
Vous pouvez faire appel à la commande ovs-vsctl incluse dans les différentes éditions d'Open vSwitch pour générer des opérations OSVSDB. Ce sont les options de la ligne de commande qui indiquent l'opération OVSDB à exécuter. Des séquences de commandes ovs-vsctl sont généralement émises dans le cadre de scripts ou de produits de gestion de réseau.
Le protocole OVSDB permet aux gestionnaires d'indiquer le nombre de ponts virtuels dans une mise en oeuvre Open vSwitch, et de créer, configurer et supprimer des ports et des tunnels sur un pont. Un gestionnaire peut également créer, configurer et supprimer des files d'attente.
Le protocole OVSDB utilise la notation JSON (JavaScript Object Notation) spécifiée dans le document RFC 4627 pour le format de son schéma et de son protocole filaire, et la notation JSON-RPC 1.0 pour son protocole filaire. Chaque RPC peut contenir une liste d'opérations de configuration mais fonctionne comme une transaction distincte.
La documentation Open vSwitch contient des informations sur la base de données de configuration, et le projet OVSDB diffusé sur Internet définit les opérations JSON-RPC du protocole.
La documentation du protocole OVSDB accompagne depuis longtemps la documentation Open vSwitch. Pour la rendre plus facile d'accès et plus compréhensible, les collaborateurs de VMware Inc. ont publié un projet Internet qui définit le protocole OVSDB.
Open vSwitch met déjà en oeuvre le protocole OVSDB, mais d'autres fournisseurs devraient modifier la base de données de configuration de leur commutateur et mettre en oeuvre les formats JSON et JSON-RPC pour adopter ce protocole.
L'un des protocoles de configuration OpenFlow parviendra-t-il à s'imposer ?
Jusqu'à présent, aucun protocole de configuration OpenFlow n'a été adopté comme norme. Toutefois, il se peut qu'à terme la pression exercée par les grands opérateurs de Clouds publics ou privés oblige les fournisseurs à adopter une norme unique.