Mise en œuvre de la solution basée sur la méthode de cluster des contrôleurs SDN
Introduction
Dans le chapitre précédent, nous avons fait une revue des travaux existants qui traitent le problème de placement des contrôleurs dans SDN et nous avons présenté l’approche de cluster en détail. Dans ce chapitre nous implémentons cette solution basée sur la méthode de clustering permettant le partage de charge et l’optimisation du placement des contrôleurs. Nous allons donc expliquer dans ce chapitre comment créer un cluster de contrôleurs (trois contrôleurs pour notre cas) afin de synchroniser l’état des contrôleurs et de gérer la haute disponibilité. Et par la suite nous allons faire l’analyse et l’interprétation des résultats sur les performances telle que la latence et la fiabilité du réseau.
Etude comparative des outils de simulations
Plusieurs outils de simulation et d’émulation comme Mininet ont été développés pour implémenter les réseaux basés sur OpenFlow dans une seule machine, et aussi pour tester les nouvelles applications. • Mininet (nous présentons l’installation et les commandes d’utilisation dans section suivante) : est un émulateur d’environnement SDN, développé par l’université de Stanford, et peut être utilisé pour construire des réseaux virtuels et estimer les métriques de performance pour différentes topologies avec des configurations différentes. • NS3 : une autre option est d’utiliser le simulateur NS dans sa version 3 qui supporte la version 0.8.9 du protocole OpenFlow dans son environnement. • EstiNet : est un simulateur propriétaire supportant la version 1.3.2 du protocole OpenFlow.
Il propose deux modes de fonctionnement, simulation et émulation, et peut simuler des milliers de switchs. EstiNet consomme moins de ressources et il est considéré comme étant le plus performant et le plus évolutif. • OMNET++ : est un projet open source dont le développement en C++ a commencé en 1992 par Andras Vargas à l’université de Budapest. En 2013, Omnet++ support le protocole OpenFlow v1.0. Outils de simulation OpenSource Versions openflow supportées Langage utilisée Mininet Oui Toutes versions Python NS3 Oui V0.8.9 C++, python EstiNet Oui V1.3.2 Python Omnet++ Oui V1.0 C++ Tableau 3 : Tableau comparatif des outils de simulation 4.3 Présentation de l’émulateur de réseau mininet Mininet est un émulateur de réseau, il permet de créer une topologie réseau qui se compose d’un ensemble de hosts, de switchs, de contrôleurs et liens virtuels. Il fournit la capacité de créer des hôtes, les commutateurs et contrôleurs via : 41 • Ligne de commande, • Interface interactive, • Script Python.
Configuration utilisée
Afin de bien visualiser le fonctionnement du SDN, nous avons choisi d’utiliser une machine virtuelle téléchargée depuis : https://github.com/mininet/mininet/releases/download/2.2.2/mininet-2.2.2-170321-ubuntu14.04.4-server-amd64.zip et accessible via VirtualBox, elle utilise le système d’exploitation Linux ( Ubuntu-14.04.4 ).
Fonctionnement de base de mininet
Mininet permet avec un simple jeu de commande de réaliser des réseaux virtuels en utilisant la commande mn. 4.3.2 Création d’une topologie avec la ligne de commande Mininet fournit, en plus de la topologie « minimal », la topologie « single », « linear » et « tree » comme montre dans la figure 15. Pour charger l’une de ces topologies, on utilise l’option « –topo », Par exemple : $ sudo mn –topo single « single » tout court donne la même topologie que minimal, c’est-à-dire créer un hôte relie avec un switch, mais on peut ajouter également comme argument un chiffre, qui indique le nombre d’hôtes à créer. Par exemple : $ sudo mn –topo single,4 Si nous souhaitons personnaliser une topologie déjà créée, nous appliquons une des commandes citées ci-dessous : • Ajouter un switch: self.AddSwitch(‘s1’)1’) • Ajouter un hôte : self.AddHost(‘h1’) • Ajouter un lien : self.addLink(h1, s1)