Par V.Dotta - Responsable DT Virtual Infrastructure SQUAD
Les réseaux sont complexes par définition et présentent un réel goulot d’étranglement au sein des DataCenters. Ceci s’explique par l’explosion de la virtualisation des serveurs, du stockage, ou encore des postes de travail, l’incapacité à faire évoluer les réseaux physiques aussi vite que les montées en charge, ou encore une limitation dans le déploiement automatique des ressources dans des environnements multi-clients. Dans l’optique de répondre à ces problématiques, l’IT a besoin de réduire le temps de déploiement de ses services liés aux réseaux en adoptant le SDN en complément des technologies déjà utilisées telles que le cloud computing et la virtualisation.
Qu’est-ce que le SDN (Software Defined Networking) ?
Le SDN se définit par le fait de pouvoir découpler le plan de contrôle (qui définit comment un équipement fait suivre le traffic) du plan de données (équipement qui assure le mouvement des données), ce qui permet de rendre programmables les équipements réseaux et ceci d’un point seul et même point de contrôle centralisé. Le plan de contrôle est placé dans un contrôleur centralisé qui a une vue globale de la topologie du réseau et qui peut gérer les hôtes qui s’y connectent.
La communication avec le contrôleur se fait par ses interfaces API « NorthBound » et « SouthBound ». La « NorthBound » est attaquée par les applications qui vont dire au contrôleur comment programmer le réseau. La « SouthBound » sert au contrôleur pour communiquer avec les équipements du réseau. Différents protocoles peuvent être utilisés pour la communication « SouthBound », le plus connu étant OpenFlow, mais ce n’est pas le seul. On retrouve d’autres protocoles tels que OSPF, MPLS, BGP ou encore IS-IS.
Le déploiement du réseau devient programmable et peut être industrialisé
Généralement les administrateurs réseaux se servent de différents outils pour la configuration du réseau et des différents équipements qui le composent. Bien souvent il faut attendre plusieurs heures avant de pouvoir raccorder un nouveau serveur à une infrastructure existante, voire plusieurs jours si il faut rajouter des équipements réseaux supplémentaires. Bien que certaines opérations puissent être automatisées et simplifiées grâce à certains outils tels que Puppet ou Chef, les tâches les plus complexes restent manuelles et la gestion des déploiements peut s’avérer problématiques et engendrer des erreurs.
Grâce au SDN, les réseaux sont maintenant programmables, et la mise à disposition d’interfaces de programmation d’applications (API) va permettre de programmer les équipements du réseau en utilisant différents langages. De plus, cette programmation ne va plus se faire essentiellement que par des ingénieurs réseaux mais aussi par tout un ensemble d’outils tels que des scripts pour l’automatisation de tâches de déploiements, la récupération et l’analyse de l’état du réseau, ou encore des outils d’orchestration pour l’exécution de tâches en séquence.
Les cas dans lesquels l’utilisation du SDN peut être envisagée sont multiples telle que la mise en œuvre de règles de sécurité réseau intelligentes, où par exemple des flux particuliers peuvent être isolés et basculés vers un système de détection d’intrusion, ou encore pour du mirroring de flux, pour dupliquer des flux à des fins de logging, de reporting ou d’analyse.
3 approches différentes pour déployer du SDN
- Switch based
Le contrôleur SDN programme les switches existants de l’infrastructure. Typiquement, les switches compatible avec OpenFlow.
- Overlay
Utilisation d’une approche de type « tunneling », dans ce cas le contrôleur SDN envoie les instructions à un hyperviseur qui contient un switch virtuel. On appelle cela des tunnels « overlay » (VxLAN, GRE…) qui sont indépendants de l’infrastructure physique « underlay ». Par exemple, la solution SDN NSX de VMware, ou encore Contrail de Juniper, ou bien VTS de Cisco.
- Hybrid
Cette dernière approche consiste en une combinaison des deux précédentes. Elle est basée sur des tunnels « overlay » (VxLAN) qui peuvent interagir et coexister avec les technologies traditionnelles de Switching Ethernet.
Quel type d’utilisation du SDN peut-on faire ?
Dans l’exemple ci-dessous, le but est d’apporter au client sur la gauche, différents services (bureau distants, ferme de serveur web connectés à un réseau DMZ, accès à Internet, sécurité des données) de façon rapide, dynamique et automatisée. Les éléments cerclés en bleu sont des applicatifs exécutés sur des machines virtuelles, trois réseaux virtuels sont déployés, Privé, Public et DMZ.
Les réseaux Privé et Public ont un attribut particulier (route target) afin de se terminer dans une instance de routage particulière, l’un sur le routeur côté client, et l’autre sur un routeur directement connecté à Internet. La communication et la sécurité entre les réseaux Privé et Public se fait grâce à une instance virtuelle de NAT/FW connectée sur les deux réseaux. On applique ensuite une règle sur ces deux réseaux afin d’autoriser le flux de données en mode bi-directionnel, tout en passant par le FW. On appelle cela « une chaine de services ».
Quels sont les compétiteurs ?
Les équipementiers réseaux sont les premiers à proposer leurs contrôleurs SDN basés sur leur propre matériel réseau, tel que CISCO avec l’ACI (Application Centric Inftrastructure), Arista Networks, HP, Dell, Vyatta de Brocade, ou encore la solution SDN Contrail de Juniper qui est agnostique au niveau de l’infrastructure réseau et qui peut communiquer avec d’autres équipements de marques différentes. On trouve aussi des vendeurs de logiciel, par exemple VMware propose sa propre solution SDN qui s’appelle NSX.