SDN et openflow

juin 26, 2014  |   Actualités,Blog   |     |   0 commentaire

Introduction

Cet article a pour but d’expliquer un concept devenu à la mode depuis quelques temps, le SDN pour Software Defined Network. L’objectif n’est pas de faire une analyse technique exhaustive, mais simplement de passer en revue les concepts clés et les éventuels impacts sur les futurs réseaux de données.

Le SDN 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. En 2011, l’Open Networking foundation, une organisation à but non lucratif dont l’objectif est la promotion du SDN, est créée par Deutsche Telekom, Facebook, Google, Microsoft, Verizon, et Yahoo!. Elle compte de plus parmi ses membres toutes les grands constructeurs/éditeurs IT telles que Cisco, Juniper, HP, Dell, Broadcom, IBM et bien d’autres.

Le SDN n’est donc pas simplement un travail de recherche universitaire, mais bien une nouvelle organisation des réseaux qui intéresse fortement tous les grands acteurs du réseau aujourd’hui.

Définition du SDN

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

Reprenons ces points un par un :

Décorrélation du plan de contrôle et du plan de données

Avant d’aborder ce point, il faut rappeler les différents plans qui composent les équipements réseaux :

  • Le plan de données ou “data plane”

C’est la partie qui gère le coeur de metier de notre é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”

Ce plan 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

Ce dernier plan 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 …)

La 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.

Software Defined Network

L’architecture SDN

Quels avantages apporte le SDN ?

Le SDN permet plusieurs améliorations par rapport au fonctionnement classique :

  • La vue globale du réseau par le controleur permet de remplacer les protocoles de routage distribués (OSPF, EIGRP, BGP …) par des mécanismes plus simples (pas besoin de découvrir la topologie, pas de problème de convergence …)
  • Le management est par conception centralisé, ce qui simplifie l’administration d’une infrastructure de grande taille (cloud computing par exemple)
  • La programmabilité permet de répondre aux besoins d’automatisation du cloud
  • On peut introduire une nouvelle fonctionnalité très facilement, pas besoin de se soucier des switches, il suffit de l’implémenter sur le controleur
  • Il n’y a plus de problème d’intéropérabilité entre les différents matériels réseaux, du moment que ceux ci comprennent OpenFlow

 

Quels sont les impacts aujourd’hui et dans le futur

Le SDN est pour l’instant réservé aux grands opérateurs telecom ou de cloud computing, mais son adoption est relativement rapide. Google a annoncé dès 2012 qu’il utilisait le SDN pour son WAN entre ses Data Centers. Tous les editeurs et constructeurs réseau prennent le SDN très au serieux et propose tous une solution SDN.

Le risque pour les constructeurs réseaux est de voir arriver massivement d’un côté des “bare-metal switches”, i.e. des switches génériques à bas coût vendus sans systeme d’exploitation ou bien un OS basic avec OpenFlow et de l’autre des vendeurs de solutions purement logicielles pour piloter ces équipements. Cela pourrait avoir un impact sur le business model de constructeurs qui vendent logiciel et matériels de façon liée (avec une marge autour de 60% aujourd’hui), et ce ne sera pas sans rappeler l’histoire de Sun qui vendait Solaris sur des machines SPARC avant la démocratisation des processeur x86.

 

Reférences

 http://www.youtube.com/watch?feature=player_detailpage&v=eXsCQdshMr4&t=168

http://en.wikipedia.org/wiki/Software_defined_networking

https://www.opennetworking.org/membership/member-listing

https://www.opennetworking.org/sdn-resources/sdn-library/whitepapers

http://www.aricent.com/sites/default/files/pdfs/Aricent-Demystifying-Routing-Services-SDN-Whitepaper.pdf