SDN (Software-Defined Networking)
L'appellation réseau à définition logicielle, ou SDN (Software-Defined Networking), désigne un ensemble de technologies innovantes visant à permettre un contrôle centralisé des ressources réseau, une meilleure programmabilité et une orchestration de ces ressources, ainsi que la virtualisation de ces ressources en les dissociant des éléments physiques du réseau.
L'objectif de ces innovations est de simplifier l'administration du réseau et à l'instar de ce que la virtualisation a réalisé dans le monde des serveurs, de rendre la consommation des ressources réseaux par les applications plus flexible.
Les SDN ont pour but pratique de rendre programmables les réseaux par le biais d’un contrôleur centralisé. Aujourd’hui les commutateurs et les routeurs programment leurs tables de forwarding localement, ce qui signifie que les périphériques réseau prennent leurs propres décisions en interne sur la meilleure façon d'aiguiller le trafic. Ces décisions s’appuient sur les informations distribuées collectées par des protocoles de routage comme OSPF et BGP ou des protocoles comme Spanning Tree. Mais ces protocoles sont peu flexibles. Pour fonctionner ensemble, tous les équipements du réseau doivent suivre les règles définies par les standards. Cela laisse peu de place à la créativité ou à des exigences métiers inhabituelles.
Avec les SDN, on établit une séparation claire entre le plan de contrôle (qui définit comment un équipement forwarde le trafic) et le plan de données (la partie des commutateurs et routeurs qui assure effectivement le mouvement des données). Dans les SDN, le plan de contrôle est placé dans un contrôleur centralisé qui a une visibilité sur l’ensemble du réseau, y compris les hôtes qui s’y connectent et a une vision complète de la topologie du réseau.
Vers un réseau programmable
Les administrateurs réseau configurent historiquement les équipements du réseau à l’aide d’une interface de ligne de commande (CLI) ou via l’interface utilisateur graphique (GUI) des équipements. Ce modèle n’est pas sans poser des problèmes. La mise en œuvre de configurations de réseau complexes peut exiger d’un ingénieur qu’il configure séparément plusieurs périphériques réseau différents. C’est un processus gourmand en temps, fastidieux et source d’erreurs.
En rendant les réseaux programmables, l’objectif des SDN est de changer cela en mettant à disposition des administrateurs des interfaces de programmation d’applications (API) permettant de programmer les périphériques du réseau via de multiples langages. L’utilisation d’API implique aussi que la programmation du réseau n’est plus forcément limitée aux seuls ingénieurs réseau capable d’utiliser une CLI mais qu'elle devient accessible à un ensemble d’outils et aux développpeurs d'applications.
Un contrôleur central logiciel "omniscient" permet aux ingénieurs de réseau de mettre en œuvre des politiques de trafic uniques et flexibles dont les seules limitations sont liées à la capacité du logiciel faisant fonctionner le contrôleur. Dans un réseau à définition logicielle, l'administrateur peut organiser le trafic depuis une console de contrôle centrale, sans intervention directe sur les différents commutateurs. Si nécessaire, il peut modifier les règles de n'importe lequel d'entre eux, en gérant les priorités de types de paquets spécifiques, voire en les bloquant purement et simplement, et ce via un contrôle d'une très grande précision.
OpenFlow
Il est difficile de ne pas mentionner OpenFlow lors de l’évocation des SDN. En développement constant au sein de l’Open Networking Foundation, ce protocole est un excellent exemple de la façon de mettre en œuvre la programmation de réseau à l’aide d’un contrôleur central.
OpenFlow est une norme agnostique qui décrit comment programmer un commutateur de réseau. Il identifie les flux spécifiques en utilisant une variété de critères (adresse MAC, adresse IP de destination, etc), puis effectue des actions sur ces flux (forwarding via le port X ou Y, abandon du trafic, etc). Un contrôleur OpenFlow centralisé avec la connaissance de l’ensemble de la topologie du réseau peut programmer ces politiques pour tous les commutateurs de réseau, quelle que soit leur marque.