Table of Contents
SDN : Réseau défini par logiciel
Le SDN pour Software Defined Network, est un nouveau concept pour l’architecture des réseaux qui est né en 2008 du travail des équipes de recherche des Université de Berkeley et Stanford.
Architecture SDN
La technologie de réseau défini par logiciel (SDN) est une approche de l'informatique en nuage qui facilite la gestion de réseau et permet une configuration réseau efficace par programme afin d'améliorer les performances et la surveillance du réseau. L’architecture statique des réseaux traditionnels est décentralisée et complexe, alors que les réseaux actuels exigent plus de flexibilité et un dépannage facile. Le réseau SDN tente de centraliser l'intelligence du réseau dans un composant du réseau en dissociant le processus de transfert des paquets du réseau (plan de données) du processus de routage (plan de contrôle).
Il y a trois composantes importantes qui definissent une architecture SDN :
- La décorréllation du plan de contrôle et du plan de donnée
- L’abstraction du réseau physique
- La programmabilité du réseau
Décorrélation du plan de contrôle et du plan de données
- Le plan de données ou “data plane”: est la partie qui gère le coeur de l'équipement, son rôle est d’acheminer des paquet depuis un point A vers un point B. Autrement dit “switcher” et/ou “router” en se basant sur des informations contenu dans des tables (comme par exemple la FIB ou la CAM/TCAM). On peut également définir le plan de données comme la gestion du trafic qui n’est pas à destination de l’équipement lui même, par opposition aux deux autres plan.
- Le plan de contrôle ou “control plane”: permet -comme son nom l’indique- de controler le plan de données en établissant les règles qu’il devra suivre (la table de routage par exemple). Parmis les protocoles qui participent à se plan, on peut citer par exemple OSPF, STP, ARP, ou BGP.
- Le plan de gestion ou management plane: concerne tout ce qui touche à l’administration de l’équipement. Il s’agit donc des flux SSH ou SNMP par exemple. Il est parfois considéré comme un sous-ensemble du plan de contrôle
Dans le fonctionnement actuel, chaque équipement d’un réseau opère de façon distribuée chacune de ces fonctions. Le SDN propose donc de créer un point central qui gère le plan de contrôle, tandis que les switches/routeurs physiques n’auraient plus qu’à s’occuper du plan de données. Pour réaliser cela, l’ONF a publié OpenFlow. C’est un protocol standard pour transmettre des instructions qui permettent de programmer le plan de contrôle d’un équipement. Ces instruction (appelées flow entries dans le jargon OpenFlow) sont des règles avec un pattern (ip source ou destination, mac adresse, port TCP …) et une action correspondante (rejeter le paquet, transmettre sur port x, ajouter un entête VLAN …)
Abstraction de la topologie réseau
Le controleur central ne se contente pas de donner des instructions pour le plan de contrôle des équipements, il récupère également des informations de la part des switches (toujours via OpenFlow), et grâce à cela possède une vue globale logique (abstraction) du réseau physique. Cette vue est utilisée pour toutes les décisions que doit prendre le plan de contrôle (routage, prévention de boucle …)
Programmabilité du réseau
Le controleur SDN présente l’abstraction du réseau et une API accessible aux “applications SDN”. Ces applications dialoguent avec le controleur SDN pour implémenter des services tels que le routage, la sécurité, la qualité de service etc. Le contrôleur va à son tour transmettre les instructions nécessaires aux équipements via OpenFlow.
Ces applications SDN sont typiquement des applications d’orchestration qui vont appliquer des politiques de réseau ou de sécurité liées à des déploiements d’applications ou de machines virtuelles par exemple.
Plan de données vs. plan de contrôle
Plan de données
- Transfère / modifie les paquets
- (pipeline d'entrée-sortie)
- Opérations de match-action
- Implémenté entièrement dans du matériel de commutation spécialisé
- Super rapide (10 Gbps)
Plan de contrôle
Le plan de contrôle comprend un ou plusieurs contrôleurs qui sont considérés comme le cerveau du réseau SDN dans lequel l'intelligence entière est incorporée. Cependant, la centralisation du renseignement a ses propres inconvénients en matière de sécurité, d’évolutivité et d’élasticité, et c’est là le principal problème du réseau SDN.
- Détermine comment gérer les paquets (fwd, mcast,…)
- Installe les règles dans les tables HW
- Implémenté par le processeur de contrôle (firmware)
- Lent (1000s / sec)
Commutateurs vs. SDN
Commutateurs modernes:
- Le plan de contrôle remplit les tables de transfert
- Le plan de données agit en fonction des entrées de table
- Les deux s'exécutent localement sur le commutateur
SDN
- Découple le plan de contrôle du plan de données
- Plan de données situé sur le commutateur*
- Plan de contrôle ailleurs (typiquement un contrôleur séparé)
SDN est généralement associé au protocole OpenFlow (pour la communication à distance avec des éléments du plan réseau dans le but de déterminer le chemin des paquets réseau sur les commutateurs réseau).
Comparaison des contrôleurs
| Nom | Description | Les Plus | Les Moins |
|---|---|---|---|
| NOX/POX | Premier contrôleur SDN développé par Nicira et publié en 2008 | ||
| Floodlight | contrôleur OpenFlow basé sur Java et sous licence Apache | ||
| Ryu | fournit des composants logiciels avec des API bien définies qui permettent de créer facilement de nouvelles applications de gestion et de contrôle de réseau. | ||
| Opendaylight | projet open source collaboratif écrit en langage de programmation Java pour promouvoir la virtualisation des fonctions réseau définies par logiciel | De nombreux outils (topologie, explorateur d’API, API Rest graphique, …) | L’explorateur d’API RESTCONF est déployé sous la forme d’un ensemble OSGI qui génère de nombreux documents JSON que le navigateur doit charger |
