Exposé
Exposé
Exposé
Groupe I
Est le protocole défini par l’ONF (Open Networking foundation) pour transférer les règles définies dans
l’architecture SDN initiale.
Il permet par exemple à contrôleur d’injecter des règles sur des commutateurs ou des routeurs.
Openflow transmet des ordres au niveau du plan de données par exemple:
• Transférer les trames à destination de l’adresse MAC X vers l’interface Y en rajoutant le VLAN Z dans
l’entête 802.1Q
• Jeter les paquets ayant pour source ou destination l’adresse IPv6 A
• Encapsuler en GRE à destination de l’adresse IPv4 C tous les paquets IPv4 provenant de l’adresse D
OpenFlow est un composant de SDN mais c’est loin d’être la seule puisque cette technologie ne répond pas
directement au problématique rencontrées.
Modèle de programmation:
Impératif:
Dans ce model, un programme connait exactement toute la suite des actions à réaliser pour
achever une action. Appliqué au SDN, cela revient à devoir injecter sur l’ensemble des
équipements tous les états nécessaires pour réaliser une action
Déclaratif:
Dans ce model, le programme se focalise sur l’objectif. Chaque entité appelée par le programme
(un élément réseau dans le cas du SDN) va faire tout le nécessaire pour arriver à cet objectif en
reposant éventuellement sur une décision locale.
Ce second modèle semble aujourd’hui gagner du terrain sur le SDN pour de nombreuses raisons:
Il est plus simple à mettre en œuvre puisqu’on va utiliser une intelligence déjà présente sur les
équipement;
Il est plus robuste puisque les équipement réseau eux-mêmes peuvent réagir. Prenons simplement le
cas d’un protocole de routage: une décision prise localement sur un routeur sera toujours plus rapide
que reposer sur un ordre transmis par un contrôleur sur le réseau qui peut justement subir une panne;
Il est préfère par les constructeurs qui acceptent plus facilement d’exposer l’intelligence de leurs
équipements s’ils restent complètement maitres de leur technologie.
Différents modelés pour le SDN
Comme explique les sections précédentes, le SDN englobe toutes les solutions permettant une
programmation du réseau, afin de mieux interagir avec les applications. Diverses solutions coexistent,
adaptées selon les besoin des utilisateurs. On comprend aisément que les solutions permettant de
simplifier le déploiement d’une application dans un Datacenter ne sont pas les mêmes celles qui
permettront de mieux contrôler l’éclairage d’une ville a travers le réseau.
On peut noter différents modelés de programmable:
Programmabilité individuelle de chaque équipement. Dans ce modelé une application interagit directement avec
chaque équipement via des API. L’application est centraliser ou peut être localisée directement sur l’équipement
réseau pour réaliser des taches spécifiques.
Programmabilité via un contrôleur. Dans ce modèle, une application donne un ordre abstrait et global à un
contrôleur, qui à son tour traduit cette requête en une suite d’ordre auprès des équipement du réseau concerné. Ce
modelé est certainement le plus populaire puisqu’il permet de simplifier le réseau. Le contrôleur masque la
complexité du réseau. On peut distinguer plusieurs cas selon le type d’ordres échangés entre le contrôleur et les
équipements. Si au départ, il était une question d’avoir une programmabilité du plan de données (via Openflow par
exemple), des modelés dans lesquels des ordres plus abstraits sont données aux équipements, ces derniers restant
libres de les implémenter au mieux. On parle dans ce cas d’un modèle « policy-intent ».
Création d’un réseau virtuel au dessus du réseau physique. Dans ce modelé, les applications créent leur propre
réseau « overlay », s’affranchissant des contraintes du réseau physique sous jacent. Ce dernier n’a pour mission
que la simple connectivité entre les nœuds d’extrémité des tunnels, et le réseau d’overlay assure l’intégralité des
services. On parle également de virtualisation des fonctions réseau (NFV – Network function virtualization) quand
les routeurs, commutateurs, firewalls, etc. sont des éléments virtualisés sur des serveurs.
La programmation des équipements
Ce récent projet regroupant divers académiques et industriels illustre bien les conclusions de la section
précédente car il vise la programmation complète du traitement des données sur un équipement réseau. Au
lieu de programmer des états comme le fait OpenFlow, on va réellement programmer via un langage
abstrait baptise sur P4 le comportement d’un équipement réseau. Un algorithme de traitement d’un paquet
IPv4 pourra être simplement construit. Le format même des paquets est simplement défini dans le
programme et rajouter/modifier un en-tête relevé d’une simplicité enfantine. L’exemple ci-dessous montre
comment analyser (parser) une trame Ethernet. Il suffit de quelques lignes pour définir un nouveau format
de données.
1 Parser Ethernet{
2 switch(ethernetType){
3 case 0x8100 : vlan;
4 case 0x9100 : vlan;
5 case 0x0800 : ipv4;
6 case 0x86dd : ipv6;
7 }
8 }
Une fois le programme créé, il suffit de le compiler pour qu’il puisse fonctionner sur le matériel désiré
(ASIC, FPGA, Network Processing, CPU…). A nouveau, le degré de programmabilité du matériel est la
clé pour réaliser les actions demandées avec les performances requises.
Les contrôleurs SDN
Définition:
Certaines solutions SDN reposent sur la mise en place de contrôleurs. Ces derniers ont pour mission de fournir une
couche d’abstraction du réseau et de présenter ce dernier comme un système. Le contrôleur SDN permet
d’implémenter rapidement un changement sur le réseau en traduisant une demande globale (par exemple: prioriser
l’application X) en une suite d’opération sur les équipement réseau (requêtes Netconf, ajouts d’états Openflow,
configuration en CLI…).
Les ordres sont données au contrôleur par une application via une API dite « Northbound » ou nord. Les éditeurs
logiciels de contrôleurs publient la documentation de l’API afin de permettre d’interfacer des application.
Le contrôleur SDN communique avec les application via une API dite « Southbound » ou sud. Openflow se positionne
comme une API sud agissant directement sur le plan de données. D’autres API permettent d’agir sur le plan de
management ou de contrôle. Netconf est par exemple une API sud permettant au contrôleur de configurer un
équipement. Un contrôleur pourra même parler directement en CLI avec un équipement pour actionner une
fonctionnalité.
Open Daylight
Alors que le consortium ONF s’est penché sur l’API Openflow permettant le contrôle du plan
de données, le consortium Open Daylight a été créé pour se pencher sur la problématique du
contrôleur, qui est un élément prépondérant de nombreuses architectures SDN. L’objectif de ce
consortium est de regrouper les efforts d’industriels et d’académiques pour développer un
contrôleur réellement utilisable dans des environnements de production (au-delà des quelques
laboratoires de recherche ou de sociétés dans le domaine de l’informatique ou le réseau). Ce
projet collaboratif, placé au sein de la Linux foundation, a permis le développement d’un
contrôleur, aujourd’hui dans sa troisième version: lithium.
Nous pouvons noter la quantité d’interfaces sud (Openflow, OVSDB, Netconf, BGP, PCEP,
SNMP, HTTP, Opflex…) mettant en évidence qu’une seule API focalisée sur le Dataplane ne
suffit pas quand il es nécessaire d’assurer de nombreux services. Pour assurer l’intégration
simple d’une API sud, une couche d’abstraction appelée SAL (service Abstraction Layer) a été
conçue et reste un élément clé du contrôleur Open Daylight, permettant un développement de
nouveaux services sans lien direct avec les API utilisées pour les implémenter.
La virtualisation des fonctions réseau (NFV)
Est une approche consistant à réaliser certaines fonctions réseau, traditionnellement effectuées sur du
matériel dédié, sur des serveurs x86. c’est une facette importante du SDN particulièrement étudiée chez les
fournisseurs de services qui voient ici une solution pour mieux ajuster l’investissement selon les besoin de
leurs clients. Au lieu de déployer du matériel ad-hoc pour chaque demande, l’operateur va piocher dans une
capacité de calcul globale, facilement extensible via l’ajout de serveurs.
Il y’a 3 grandes problématiques associées aux approches NFV:
Il n’y a plus un réseau à gérer mais plusieurs réseaux (dont le réseau physique). A première vue cela semble contraire à l’un
des objectifs du SDN : la simplification des opérations réseau;
L’interconnexion de réseau virtuel au reste du monde, à l’internet. Les overlays restent le plus souvent confinés à certains
domaines, comme le Datacenter, et l’interconnexion reste nécessaire via passerelles qui doivent supporter les protocoles du
modèle overlay tout en garantissant les performances requises;
Le réseau sous-jacent ne voit plus grand-chose de ce qu’il transporte, puisque le trafic est encapsulé en amont dans un
protocole ad-hoc comme par exemple VXLAN ou NVGRE;
Une approche NFV nécessite souvent un niveau d’expertise additionnelle en amont et une modification
dans l’organisation des équipes en charge des serveurs/applications et du réseau. Les équipes réseau ne
peuvent accepter de reposer sur des serveurs que s’ils ont la garantie de leur bon fonctionnement. Pour
beaucoup d’organisation aujourd’hui, cela est un frein. Les service providers sont les plus avancés sur le
NFV car ils ont davantage les capacités de faire face aux challenges du NFV: le réseau est leur métier.
Pour autant les déploiements massifs d’architectures NFV N’en sont encore qu’à leurs prémices.
Programmation bout en bout: le rôle de l’orchestrateur
Comme explicité précédemment, les solutions SDN vont varier selon le type d’environnement
(WAN, LAN, Datacenter…) et comme c’est le cas aujourd’hui pour les solutions de management
traditionnelles, des solutions indépendantes sont souvent déployées chaque domaine.
Or, la nécessité de programmation existe de bout en bout. Si l’application est déployée dans un
Datacenter, les usagers peuvent être connectés en WI-FI, connecté au LAN, derrière le WAN et
des firewalls ou autres dispositifs réseau. Il est illusoire de penser qu’un seul contrôleur pourra
programmer l’ensemble de la chaîne. La première raison est que les cycles d’acquisition de tous
ces éléments sont différents aujourd’hui dans les organisations. L’autre raison est que la plupart
des organisations veulent cloisonner ces domaines pour garder davantage de liberté, mais
également parce qu’elles sont elles mêmes organisées en silos avec des équipes en charge
directement d’un sous-ensemble du réseau.
Dans les modèles SDN actuels, ce n’est pas le contrôleur mais l’orchestrateur qui va offrir cette
fonction de programmation de bout-en-bout. Ce dernier reçoit un ordre depuis une application
(par exemple un portail de fourniture de service) et réalise ensuite la suite d’actions nécessaires
pour mener à bien la tâche demandée. Pour réaliser sa mission, l’orchestrateur va pouvoir
s’appuyer pour chaque élément de la sur le/les contrôleurs déployés.
L’orchestrateur travaille généralement en mode dit « transactionnel ». Il doit être capable de
valider chaque étape quand il réalise une action afin de revenir en arrière en cas d’échec. Il ne
peut pas laisser dans un mode bancal où seule une partie aurait été configurée avec un nouveau
service.
conclusion
Le Software Difined Netwoking annonce des changements importants sur les réseaux dans les
années a venir. Ceux-ci vont voir leur architecture profondément évoluer, facilitant des
nouveaux usages. Tout cela sera permis grâce à la programmabilité, l’ouverture, la
virtualisation et l’orchestration. Aucun domaine ne semble épargné: WAN, Datacenter,
campus, sécurité… L’enjeu pour les administrateurs réseau est d’accompagner cette nouvelle
étape afin de pouvoir tirer profit de ces nouvelles capacités.
Bibliographie:
https://www.zestedesavoir.com
https://www.developpez.net
https://www.w3schools.com
https://www.pdf-drive.com
https://www.fr.m.wikipedia.org
https://www.openclassrooms.com
Remerciement