Telechargé par elieessongue

TP5 Openstack

publicité
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
Virtualisation et Cloud computing
Travaux Pratiques
TP 05 : Conception et déploiement d’une plateforme Cloud pour
fournir des conteneurs de service SDN
2022 – 2023
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
2022 – 2023
3
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
2022 – 2023
Objectif :
Déployer un environnement Cloud Computing basée sur Openstack, l’un des outils les plus
populaires au sein de la communauté Cloud afin de mettre en œuvre des conteneurs Docker
visant à procurer des contrôleurs de service SDN (Software-defined networking) (Virtualisation
des réseaux).
Pour réaliser ce projet, nous présenterons des sections qui :

Définissent les notions, introduisent et justifient les outils utilisés,

Expliquent les étapes à suivre,
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
4
Cloud Computing
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN 13
Cloud Computing
1. Définition et généralités
L’informatique dans le nuage est plus connue sous sa forme anglo-saxonne : « Cloud
Computing », mais il existe de nombreux synonymes francophones tels que : « informatique
dans les nuages », « infonuagique » (Québec) ou encore « informatique dématérialisée ».
Même si les experts ne sont pas d’accords sur sa définition exacte, la plupart s’accordent
à dire qu’elle inclue la notion de services disponibles à la demande, extensibles à volonté et à
distance ou sur le net. En contradiction avec les systèmes actuels, les services sont virtuels et
illimités et les détails des infrastructures physiques sur lesquels les applications reposent ne
sont plus du ressort de l’utilisateur.
Selon le National Institute of Standards and Technology, le cloud computing englobe trois
caractéristiques clés :

la mutualisation, de la part du fournisseur, de ressources éclatées ;

des ressources accessibles en réseau ;

des ressources accessibles rapidement, à la demande et de façon souple ;
Par exemple quelques définitions qui ont circulés : « Le cloud computing est un modèle qui
permet un accès réseau à la demande et pratique à un pool partagé des ressources informatiques
configurables (telles que réseaux, serveurs, stockage, applications et services) qui peuvent être
provisionnées rapidement et distribuées avec un minimum de gestion ou d’interaction avec le
fournisseur de services. »
«Le Cloud Computing est une plateforme de mutualisation informatique fournissant aux
entreprises des services à la demande avec l'illusion d'une infinité des ressources».
Un des points essentiels de ces définitions est la notion de « scalability » ; d’extensibilité
à la demande, d’élasticité, c’est à dire qu’on ne paie que ce qu’on utilise. C’est un avantage
considérable par rapport à une infrastructure propre à l’entreprise où les serveurs sont très
souvent sous-utilisés. On devrait avoir ici pas mal de références ?!
« Donc le Cloud Computing est un concept qui consiste à déporter sur des serveurs distants
des stockages et des traitements informatiques traditionnellement localisés sur des serveurs
locaux ou sur le poste de l'utilisateur. Il consiste à proposer des services informatiques sous
forme de service à la demande, accessible de n'importe où, n'importe quand et par n'importe
qui ». L'idée principale à retenir est que le Cloud n'est pas un ensemble de technologies, mais un modèle
de fourniture, de gestion et de consommation des services et des ressources informatiques localisés dans
des Datacenter.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
14
Cloud Computing
Figure 1:Cloud Computing
Le modèle Cloud Computing se différencie par les cinq caractéristiques essentielles suivantes:
Accès aux services par l’utilisateur à la demande
La mise en œuvre des systèmes est entièrement automatisée et c’est l’utilisateur, au moyen
d’une console ou à travers des outils et des logiciels spécifiques, qui mettent en place et gèrent
la configuration à distance.
Accès réseau large bande
Ces centres de traitement sont généralement raccordés directement sur le backbone internet pour
bénéficier d’une excellente connectivité. Les grands fournisseurs répartissent les centres de
traitement sur la planète pour fournir un accès aux systèmes en moins de 50 ms de n’importe
quel endroit.
Réservoir des ressources (non localisées)
La plupart de ces centres comportent des dizaines de milliers de serveurs et de moyens de
stockage pour permettre des montées en charge rapides. Il est souvent possible de choisir une
zone géographique pour mettre les données “près” des utilisateurs.
Redimensionnement rapide (élasticité)
La mise en ligne d’une nouvelle instance d’un serveur est réalisée en quelques minutes, l’arrêt
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
15
Cloud Computing
et le redémarrage en quelques secondes. Toutes ces opérations peuvent s’effectuer
automatiquement par des scripts. Ces mécanismes de gestion permettent de bénéficier
pleinement de la facturation à l’usage en adaptant la puissance de calcul au trafic instantané.
Facturation à l’usage
Il n’y a généralement pas de coût de mise en service (c’est l’utilisateur qui réalise les
opérations). La facturation est calculée en fonction de la durée et de la quantité de ressources
utilisées. Une unité de traitement stoppée n’est pas facturée.
2. Historique du Cloud Computing
Il est communément admis que le concept de Cloud Computing a été initié par le géant Amazon
en 2002. Le cybermarchand avait alors investi dans un parc informatique afin de pallier les
surcharges des serveurs dédiés au commerce en ligne constatées durant les fêtes de fin d’année.
A ce moment-là, Internet comptait moins de 600 millions d’utilisateurs mais la fréquentation
de la toile et les achats en ligne étaient en pleine augmentation. En dépit de cette augmentation,
les ressources informatiques d’Amazon restaient peu utilisées une fois que les fêtes de fin
d’année étaient passées. Ce dernier a alors eu l’idée de louer ses capacités informatiques le reste
de l’année à des clients pour qu’ils stockent les données et qu’ils utilisent les serveurs. Ces
services étaient accessibles via Internet et avec une adaptation en temps réel de la capacité de
traitement, le tout facturé à la consommation.
Cependant, ce n’est qu’en 2006 qu’Amazon comprit qu’un nouveau mode de consommation
de l’informatique et d’internet faisait son apparition.
Bien avant la naissance du terme de Cloud Computing, utilisé par les informaticiens pour
qualifier l’immense nébuleuse du net, des services de Cloud étaient déjà utilisés comme le
webmail2, le stockage de données en ligne (photos, vidéos,…) ou encore le partage
d’informations sur les réseaux sociaux.
La virtualisation est un concept beaucoup plus ancien qui constitue le socle du Cloud
Computing. La virtualisation regroupe l’ensemble des techniques matérielles ou logicielles
permettant de faire fonctionner, sur une seule machine physique, plusieurs configurations
informatiques (systèmes d’exploitation, applications, mémoire vive,…) de manière à former
plusieurs machines virtuelles qui reproduisent le comportement des machines physiques.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
16
Cloud Computing
3. Bénéfices du cloud Computing
Les retombées des principes du cloud sont bénéfiques à la fois pour son fournisseur, les
entreprises délocalisant leurs infrastructures. Généralement, ils assurent aux deux premiers une
meilleure rentabilité. De plus, ils permettent à l'entreprise de se concentrer sur les taches de
production autres que la maintenance de systèmes informatiques.
3.1 Pour le fournisseur
Les bénéfices du fournisseur sont uniquement dus au fait de la mutualisation des ressources. En
effet, après son investissement dans la mise en place des infrastructures pour le cloud, il fait
payer aux entreprises la marge nécessaire pour sa rentabilisation. Comme pour une entreprise
disposant d'une plateforme interne, il paie pour les frais d'administration de l'ensemble. Cette
dépense peut être amortie par facturation aux entreprises. En plus de cette marge, il bénéficie
des couts de réutilisation des ressources. En effet, compte tenu de la non appartenance des
ressources aux entreprises, elles (les ressources) leurs sont facturées à chaque usage. La même
ressource peut ainsi faire l'objet de plusieurs facturations.
3.2 Pour l'entreprise
C'est elle la première gagnante de cette technologie. Elle réalise des bénéfices en argent et en
flexibilité dans sa capacité à s'agrandir.
3.2.1 La réduction des couts :
Le recours au cloud permet à l'entreprise d'être facturée à l'usage, en fonction de ses besoins.
Pour avoir une idée du gain réalisé, reprenons cette observation de Michael Crandell du groupe
RightScale à propos du cloud d'Amazon « Le cout à pleine charge d'un serveur sur Amazon se
situe entre 70$ et 150$ par mois alors qu'il s'élève à 400$ en moyenne par mois s'il était hébergé
par l'entreprise en interne » [1]. Plusieurs raisons expliquent cette différence de cout. En effet,
une gestion interne de l'infrastructure implique l'achat des matériels, l'affectation du personnel
(et donc du cout salarial qu'il induit) pour la gestion de l'infrastructure et divers moyens de
production mis en place pour le fonctionnement de l'ensemble (électricité, locaux, ….etc.). Le
partage de ressources tel que pratiqué dans le cloud permet au fournisseur de répartir ces couts
entre plusieurs entreprises.
3.2.2 La réduction des gaspillages:
Les infrastructures gérées en interne sont souvent sous-utilisées, alors que l'infrastructure d'un
cloud mutualise l'ensemble de ressources pour un grand nombre d'entreprises. La
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN 17
Cloud Computing
mutualisation consiste à mettre à la disposition de plusieurs utilisateurs une base commune de
ressources. Elle permet ainsi d'augmenter le taux d'utilisation de ces ressources. En effet, les
ressources n'étant pas dédiées à un seul utilisateur, elles pourront servir à d'autres en cas de
besoin.
3.2.3 La flexibilité et accès aux ressources à larges échelle :
L'entreprise peut augmenter la capacité de son infrastructure sans investissement majeur. En
effet, grâce à l'allocation dynamique (à la demande) des ressources qu'offre le cloud, il suffit de
souscrire à des nouvelles ressources et celles-ci sont directement allouées.
De plus, l’entreprise est libre de ses allées et venues car les contrats d'utilisation sont limités
dans le temps (autour de l'heure).
Ainsi, l'entreprise peut augmenter ou réduire son infrastructure à sa guise à moindre cout et dans
un délai réduit (il faut mettre en avant le critère de rapidité qui est un grand avantage) .
Rappelons que le cloud offre ainsi à l'entreprise une possibilité d'accéder à une quantité de
ressources dont elle ne pourrait se l'offrir en interne. Elle peut dorénavant envisager des
applications large échelle sans se soucier de l'obtention des équipements.
4. Les différents services
Le cloud computing peut être décomposé en trois couches :

Application (SaaS, Software as a Service)

Platform (PaaS, Platform as a Service)

Infrastructure (IaaS, Infrastructure as a Service)
La Figure 6 ci-dessous représente les différentes couches du cloud computing : de la couche la
moins visible pour les utilisateurs finaux à la plus visible.
L’infrastructure as a Service (Iaas) , est plutôt gérée par les architectes réseaux, la couche PaaS
est destinée aux développeurs d’applications et finalement le logicielle comme un service
(SaaS) est le « produit final » pour les utilisateurs.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN 18
Cloud Computing
Figure 2:Les couches du cloud computing

Infrastructure as a Service (IaaS)
Seul le serveur est dématérialisé. Un prestataire propose la location de composants
informatiques comme des espaces de stockages, une bande passante, des unités centrales et des
systèmes d’exploitation. Les utilisateurs d’une IaaS peuvent donc utiliser à la demande des
serveurs virtuels situés dans des Datacenter sans avoir à gérer les machines physiques (coûts de
gestion, remplacement de matériel, climatisation, électricité….)
L’IaaS offre une grande flexibilité, avec une administration à distance, et permet d’installer tout
type de logiciel. En revanche, cette solution nécessite la présence d’un administrateur système
au sein de l’entreprise, comme pour les solutions serveur classiques. Parmi les prestataires
d’IaaS, on peut citer : Amazon avec EC2 ou Orange Business Services avec Flexible
Computing.

Platform as a Service (PaaS)
Le matériel (serveurs), l’hébergement et le Framework d’application (kit de composants
logiciels structurels) sont dématérialisés. L’utilisateur loue une plateforme sur laquelle il peut
développer, tester et exécuter ses applications. Le déploiement des solutions PaaS est
automatisé et évite à l’utilisateur d’avoir à acheter des logiciels ou d’avoir à réaliser des
installations supplémentaires, mais ne conviennent qu’aux applications Web. Les principaux
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN 19
Cloud Computing
fournisseurs de PaaS sont : Microsoft avec AZURE, Google avec Google App Engine et
Orange Business Services.

Software as a Service (SaaS)
Le matériel, l’hébergement, le framework d’application et le logiciel sont dématérialisés et
hébergés dans un des Datacenter du fournisseur. Les utilisateurs consomment les logiciels à la
demande sans les acheter, avec une facturation à l’usage réel.
Il n’est plus nécessaire pour l’utilisateur d’effectuer les installations, les mises à jour ou encore
les migrations de données.
Les solutions SaaS constituent la forme la plus répandue de Cloud Computing. Les prestataires
de solutions SaaS les plus connus sont Microsoft – offre Office365 (outils collaboratifs) Google
– offre Google Apps (messagerie et bureautique).
Figure 3: répartition des charges
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN 20
Cloud Computing
5. Modèles de déploiement
D’après la définition donnée dans la Section précédente un nuage correspond à une
infrastructure distante, dont on ne connaît pas les détails architecturaux, et qui est connue pour
les services informatiques qu’elle offre. Aussi, il est courant d’utiliser le terme un nuage pour
désigner l’infrastructure gérée par un prestataire donné. On pourra alors parler du nuage
d’Amazon, de celui de Google, et ainsi de suite. On peut distinguer quatre types principaux de
modèles de déploiement pour ces nuages : le nuage privé, le nuage communautaire, le nuage
public et le nuage hybride.
 Le nuage privé :
L’infrastructure d’un nuage privé n’est utilisée que par un unique client. Elle peut être gérée par
ce client ou par un prestataire de service et peut être située dans les locaux de l’entreprise cliente
ou bien chez le prestataire, le cas échéant. L’utilisation d’un nuage privé permet de garantir, par
exemple, que les ressources matérielles allouées ne seront jamais partagées par deux clients
différents.

Le nuage communautaire :
L’infrastructure d’un nuage communautaire est partagée par plusieurs organisations
indépendantes et est utilisée par une communauté qui est organisée au tour des mêmes besoins,
vis-à-vis de son utilisation. Par exemple, dans le projet Open Cirrus, le nuage communautaire
est partagé par plusieurs universités dans le cadre d’un projet scientifique commun. Son
infrastructure peut être gérée par les organisations de la communauté qui l’utilise ou par un tiers
et peut être située, soit au sein des dites organisations, soit chez un prestataire de service.

Le nuage public :
L’infrastructure d’un nuage public est accessible publiquement ou pour un large groupe
industriel. Son propriétaire est une entreprise qui vend de l’informatique en tant que service.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
21
Cloud Computing

Le nuage hybride :
L’infrastructure d’un nuage hybride est une composition de deux ou trois des types de nuages
précédemment cités. Les différents nuages qui la composent restent des entités indépendantes
à part entière, mais sont reliés par des standards ou par des technologies propriétaires qui
permettent la portabilité des applications déployées sur les différents nuages. Une utilisation
type de nuage hybride est la répartition de charge entre plusieurs nuages pendant les pics du
taux d’utilisation.
6. La virtualisation
6.1 Définition
La virtualisation consiste à faire fonctionner un ou plusieurs systèmes d'exploitation sur un ou
plusieurs ordinateurs. Cela peut sembler étrange d'installer deux systèmes d'exploitation sur une
machine conçue pour en accueillir qu'un, mais comme nous le verrons par la suite, cette
technique a de nombreux avantages.
Il est courant pour des entreprises de posséder de nombreux serveurs, tels que les serveurs de
mail, de nom de domaine, de stockage pour ne citer que ceux-ci. Dans un contexte économique
où il est important de rentabiliser tous les investissements, acheter plusieurs machines physiques
pour héberger plusieurs serveurs n'est pas judicieux. De plus, une machine fonctionnant à 15
pour cent ne consomme pas plus d'énergie qu'une machine fonctionnant à 90 pour cent. Ainsi,
regrouper ces serveurs sur une même machine peut donc s'avérer rentable si leurs pointes de
charge ne coïncident pas systématiquement.
Enfin, la virtualisation des serveurs permet une bien plus grande modularité dans la répartition
des charges et la reconfiguration des serveurs en cas d'évolution ou de défaillance momentanée.
Les intérêts de la virtualisation sont multiples. On peut citer :

L'utilisation optimale des ressources d'un parc de machines (répartition des
machines virtuelles sur les machines physiques en fonction des charges
respectives)

L'économie sur le matériel (consommation électrique, entretien physique,
surveillance)
6.1.1 L'installation Le para virtualisation
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
22
Cloud Computing
Le para virtualisation est une technique de virtualisation qui présente à la machine invitée une
interface logicielle similaire mais non identique au matériel réel. Ainsi, elle permet aux
systèmes d'exploitation invités d'interagir directement avec le système d'exploitation hôte et
donc ils seront conscients de la virtualisation.
6.1.2 La virtualisation complète
La virtualisation complète (en anglais full-virtualization) est une technique de virtualisation qui
permet de créer un environnement virtuel complet. En utilisant cette technique, le système
d'exploitation invité n'interagit pas directement avec le système d'exploitation hôte et donc il
croit s'exécuter sur une véritable machine physique.
Cette technique de virtualisation ne permet de virtualiser que des SE de même architecture
matérielle que l'hôte.
6.2 Solutions de virtualisation
Dans cette section, nous présentons les outils de virtualisation les plus utilisés qui sont Xen,
KVM, VMware et HyperV :
 Xen : est une solution libre de virtualisation permettant de faire tourner plusieurs
systèmes d'exploitation sur une même machine physique. Il est de type hyperviseur,
c'est à dire qu'il vient s'insérer entre le matériel et le noyau. Xen est considéré comme
une solution à base de para virtualisation, car les systèmes invités doivent être modifiés
pour cohabiter.
 KVM : est un projet de virtualisation complète qui est actuellement en développement
pour un module de para virtualisation. Il est intégré depuis le noyau Linux 2.6.20 et
permettant une virtualisation matérielle des processeurs. Ainsi, il ne fonctionne que sur
un processeur de type Intel VT ou AMD-V.
 VMware : est une société qui offre des produits propriétaires liés à la virtualisation
d'architectures x86. Elle est leader dans le marché de la virtualisation pour PC. Son
produit de virtualisation VMware Server est de type virtualisation complète pour
serveur sous GNU/Linux et/ou Microsoft Windows.
 , tests, développements sans endommager le système hôte.
 HyperV : est une solution de virtualisation basée sur la virtualisation 64 bits pour
Microsoft. Il est considéré comme une solution de para virtualisation.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
23
Etude Comparative et Choix
de la
Solution cloud
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
24
Etude Comparative et choix de la solution Cloud
1. Introduction
Depuis ces dernières années, plusieurs projets autour du cloud computing ont vu le jour et
donnée naissance à autant de plateforme d'administration dans le cloud. Dans cette section,
nous étudions un extrait des solutions propriétaires et des solutions open sources.
Les solutions open source ne fournissent que le support logiciel (et pas matériels) de la mise en
place d'une véritable plateforme de cloud.
2. Le Cloud Computing et Acteurs
Le marché du cloud computing est partagé entre acteurs : les éditeurs, les fournisseurs

Editeurs :
Les éditeurs sont les sociétés proposant des solutions Cloud. Un éditeur n'est pas forcément un
fournisseur de services, autrement dit son périmètre n'est pas de fournir un service Cloud, mais
plutôt de fournir une technologie capable d'héberger une solution Cloud

Fournisseurs :
Les fournisseurs de services de Cloud Computing sont des hébergeurs, Ils mettent à disposition
des infrastructures physiques proposant une plate-forme de Cloud. Il serait bien trop conséquent
d’analyser tous les acteurs du Cloud Computing présents sur le marché actuel. Nous survolerons
les principaux acteurs:Salesforce.com, Amazon, Google, VMware et Microsoft :
2.1 . SALESFORCE
Salesforce.com est une société créée en 1999 par Marc Benioff. Elle est devenue l'une des
pionnières du modèle SaaS notamment grâce à son outil historique de «Customer Relationship
Management»CRM
intitulé Salesforce.
2.2 . Amazon
Amazon, au travers d’ « Amazon Web Services » (AWS) met à disposition un Cloud public
depuis 2006. Au départ, il s'agissait de rentabiliser leurs énormes infrastruct ures en place pour
absorber les pics de charge lors des fêtes de Noël sur leur boutique en ligne. Aujourd'hui,
Amazon propose un service d’IaaS avec « EC2 » (Elastic Compute Cloud) et différents PaaS
liés ou non à leur boutique.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN 25
Etude Comparative et choix de la solution Cloud
2.3 Google
En 2008, Google a lancé son Cloud public orienté pour les services Web offrant une plate forme (PaaS) nommée « Google App Engine » et permettant l'hébergement d'applications
Python ou Java, ainsi que des applications SaaS regroupées dans la gamme « Google App ».
2.4 VMware
VMware est une entreprise filiale d’EMC créée en 1998 à Palo Alto. Pendant plus de 10 ans,
elle a conçu différents produits liés à la virtualisation. En 1999 apparaissait la première version
de VMware Workstation, un logiciel client permettant la virtualisation de machines virtuelles.
D'autres éditions comme la gamme ESX ou Server (anciennement GSX) proposent des
solutions de virtualisation pour les serveurs.
Depuis 2008, VMware n'a cessé d'investir dans le marché du Computing, en rachetant
différentes entreprises comme Zimbra (application SaaS de collaboration) ou SpringSource
pour son offre PaaS avec vFabric.
2.5 . Microsoft
Microsoft annonçait l'arrivée de sa propre solution de Cloud Computing nommée Windows
Azure. Cette dernière a été rendue commerciale en janvier 2010, Le Cloud de Microsoft s'est
aussi des applications SaaS de la gamme Live et Online Service
3. Solution open source
3.1 OpenNebula
3.1.1 Présentation
OpenNebula voit le jour en 2005 à l'université Complutense de Madrid dans le cadre du projet
européen open source RESERVOIR. Son objectif dans le cadre de ce projet est l'administration
des IaaS virtualisés. Autrement dit, il fournit des services permettant de déployer et d'exécuter
dans un environnement matériel virtualisé des VM. Notons qu'une version commerciale
d'OpenNebula (OpenNebulaPro) est disponible depuis 2010.
Dans sa version actuelle, OpenNebula est capable de prendre en compte simultanément dans
l'IaaS des hyperviseurs Xen, kvm et VMware. Il organise l'IaaS sous forme de clusters et de
VLAN (réseaux virtuels). Un cluster contient un ensemble de machines physiques tandis qu'un
VLAN est défini pour un ensemble de VM. Lors de la création d'une VM, le client choisit la
machine et le VLAN dans lequel il souhaite l'exécuter. Notons que dans l'esprit du cloud, il ne
revient pas au client de choisir la machine sur laquelle il souhaite exécuter sa VM.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN 26
Etude Comparative et choix de la solution Cloud
Toutes les opérations d'administration sont coordonnées à partir d'une unique machine de l'IaaS
appelée Frontend.
3.1.2 Composants
Les composants d'Open Nebula peuvent être divisés en trois couches :
 Tools : c'est l'ensemble des outils de gestion pour OpenNebula ;
 Core: il se compose d'un ensemble de composants pourcontrôler les machines
virtuelles, le stockage et le réseau virtuel ;
 Drivers : l'interaction entre OpenNebula et l'infrastructure de Cloud est
effectuée par des pilotes spécifiques qui sont les drivers.
Les machines Front end et Node sont reliés entre eux à travers un réseau privé.
Figure 4:architecture OpenNebula
3.2 OpenStack
3.2.1 Présentation
Créé en juillet 2010 par la NASA et l'hébergeur américain Rackspace, OpenStack est une offre
d'IaaS 100% open-source encore en développement qui a livré son code source récemment et
qui permet aux sociétés de développer leurs propres solutions d’infrastructure du Cloud
Computing.
Plus que trente fournisseurs soutiennent ce projet tels que : A MD, Intel, Dellet Citrix.
OpenStack devrait également être intégré dans les prochaines versions d'Ubuntu comme c'est le
cas pour Eucalyptus. Il comprend le logiciel OpenStack Compute pour la création automatique
et la gestion de grands groupes de serveurs privés virtuels et le logiciel OpenStack Stockage
pour optimiser la gestion de stockage, répliquer le contenu sur différents serveurs et le mettre à
disposition pour une utilisation massive des données.
3.2.2 Composant d’openstack
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN 27
Etude Comparative et choix de la solution Cloud
OpenStack s'organise autour de trois composants et des API qui leur permettent de
communiquer (figure 10)

OpenStack Nova : Il fournit les fonctionnalités de gestion du cycle de vie des VM (via
le sous composant nova-compute), du réseau (via nova-network) et des authentifications.
Il implante également les programmes de scheduling de VM à travers son composant
nova- Scheduler. Son sous composant Queue Server implante
le mécanisme de
dispatching de requêtes aux autres sous composants en fonction des actions qu'elles
requièrent.

OpenStack Swift : permet de créer un service de stockage dans une architecture de
cloud computing. Il permet de gérer une large capacité de stockage évolutive avec une
redondance ainsi que le basculement entre les différents objets de stockage.

OpenStack Imaging Service : OpenStack Imaging Service est un système de
récupération et de recherche d'images de machines virtuelles.
Figure 5:Architecture d’Openstack
1.1
Eucalyptus
1.1.1 Présentation
Issue d’un projet de recherche de l’université de Californie, cette plate-forme cloud open source
est certainement la plus connue, car intégrée dans Ubuntu Server et Debian. Ecrite en C, Java et
Python, elle permet de créer des clouds Iaas (Infrastructure as a service) de type privé ou
hybride, supporte des machines virtuelles Linux ainsi que les hyperviseurs Xen et KVM. Par
ailleurs, elle est compatible avec EC2 d’Amazon. Il existe également une version
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN 28
Etude Comparative et choix de la solution Cloud
propriétaire commercialisée par la société Eucalyptus Systems. Il apporte des fonctionnalités
supplémentaires comme le support de VMware, celui des machines virtuelles Windows et
l’intégration SAN.
1.1.2 Composants

Une configuration de cloud fondée sur Eucalyptus se compose de cinq types de composants
principaux.
 Cloud Controller : c'est l'unique point d'entrée (Front end) pour tous les utilisateurs
et les administrateurs d'Eucalyptus. Il est responsable de la gestion de tout le système.
Surveiller la disponibilité des ressources sur les différentes composantes de l'infrastructure
du cloud.
 Node Controler : Le rôle du node est d'héberger KVM, il sert ainsi d'hyperviseur pour
les machines virtuelles qui sont déployées. Les machines virtuelles fonctionnant sur
l'hyperviseur sont appelées des instances. Eucalyptus permet aussi d'utiliser d'autres types
d'hyperviseurs comme XEN 3, mais Canonical a fait le choix de privilégier KVM. Le
contrôleur de node fonctionne sur chaque node et est chargé de vérifier le cycle de vie des
instances en cours d'exécution sur le node.
 Cluster Controller : Ce contrôleur sert à déployer et gérer les différents contrôleurs
de node. Il sert également à gérer la mise en place du réseau entre les instances des
différents node. C'est lui qui communique l'ensemble des informations au contrôleur du
cloud. Il reçoit les requêtes de déploiement des instances, décide sur quel contrôleur de
node les instances seront déployé aussi il contrôle le réseau virtuel entre les instances.

Walrus:
Il assure 3 fonctions principales :
Le stockage des images de machines virtuelles.
Le stockage des images prises en fonctionnement à uninstant précis.
Stocker des fichiers et les services
 Storage Controller: ce composant fonctionne avec le composant Walrus et permet de
stocker les images des machines virtuelles et les données des utilisateurs
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN 29
Etude Comparative et choix de la solution Cloud
1.2
Nimbus
1.2.1 Présentation
Issu du monde de la recherche, Nimbus permet de déployer un cloud de type Iaas. Diffusée sous
licence Apache 2.0, cette plate-forme supporte les hyperviseurs Xen et KVM, et peut
s’interfacer avec le cloud d’Amazon, EC2. Elle est associée à autre projet, baptisé Cumulus, qui
permet de déployer des services de stockage en cloud, compatible avec le service Amazon S3.
Nimbus a été déployé, entre autres, par un réseau d’universités américaines qui proposent des
clouds en libre accès pour des projets de recherche.
1.2.2 Architecture
Nimbus comprend plusieurs composants qui peuvent être regroupés selon trois contextes
comme le montre la figure 2.7. Ces composants sont reliés entre eux à travers un réseau privé.

Client-supported modules : il est utilisé pour gérer les clients du Cloud. Il comprend
le contexte client module, le Cloud client module, le référence client module et l'EC2
client module.

Service-supported modules : il fournit tous les services du Cloud. Il comprend le
contexte brocker module, le Web service resource Framework module.

Backgroud resource management modules : son rôle est de gérer les ressources
physiques du Cloud. Il comprend différents modules à savoir : workspace service
manager module, IaaS gateway module, EC2 module, workspace pilot
module,workspace ressource management module et workspace contrôler
Figure 6: Architecture Nembus
Mémoire Projet de Fin d’Etudes | Année Universitaire 2021- 2022
30
Etude Comparative et choix de la solution Cloud
4. Synthèse
Tableau comparative détaillé des différentes solutions open source.
Tableau 1 : Tableau Comparative des Solutions Open Source
Eucalyptus
Produit par
But
Architecture
OpenNebula
Nimbus
OpenStack
Apparu au début
par
l’université
Santa Barbara de
l’université
de
Californie
Eucalyptus
System
Company
L’union
Européen
ne
Chercheurs
de
l’université
dechicago
Rackspace,
NASA,
Dell, Citrix, Cisco,
Canonical et plus que
50 autres organisations
Une
réponse
open
source
pour le Cloud
commerciale
EC2
Un
Cloud
privé
pure
Solution
scientifique
du
Cloud
Computing
Créer et offrir des
fonctionnalités de Cloud
Computing en utilisant un
logiciel open source
fonctionnant sur
du matérielstandard
Hiérarchique
Cinq
composants
Centrali
sé Trois
composants
Centralis
é Trois
composants
Intégration desdeux
composants
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN 31
Chapitre 2 : Etude Comparative et choix de la solution Cloud
Domaine
d’utilisation
Supporte
multiple cluster
Minimum deux
Serveurs
Les entreprises
Minimum
deux serveurs
Minimum deux
serveurs
OpenStack
compute
Les chercheurs
dans
le
domaine
de
Cloud
Computing et
de
la
virtualisation
Les
communautés
scientifiques
(moins
intéressés par les
techniques
internes
du
système)
Les sociétés, les
fournisseurs de
services, les
chercheurs et
les centres de
données
mondiaux qui
cherchent
à
grande échelle
leurs Cloud
privés ou
publiques
-Linux et
récemment
Windows
-Exige x86
processor
Linux (Ubuntu, Linux
Systèmes
d’exploitatio Fedora, CentOS, (Ubuntu,
n supportés OpenSUSE et RedHat
Debian)
Entreprise
Linux, Fedora
et SUSE Linux
Entreprise
Server)
Langage de Java, C et
Java, Ruby et
programmat Python
C++
ion
Walrus
GridFTP,
Stockage
Comulus
(version
récente de
GridFTP
XCP
Réseau
Serveur DHCP
Configuration
installé sur le
manuelle par
cluster
l’administrateu
controller
r
EC2 WS API
EC2 WS API
Interface
Outils tel que :
OCCI API
utilisateur
HybridFox,
ElasticFox
Fichier
zip Authentificatio
Sécurité
téléchargeable à n
niveau
travers
utilisateur
l’interface Web
qui
contient
certificats
Connexion
HTTPS
Sécurité
Connexion SSH Root
La plupart des
distributions
Linux
Python et Java
Python
SCP
SQLite3
OpenStack
Storage
Serveur DHCP
installé
sur
chaque nœud
OpenStack
Compute
EC2 WS API
Nimbus WSRF
Interface Web
Certificat X509
-Certificat X509
Connexion SSL
-Connexion
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN 32
Etude Comparative et choix de la solution Cloud
niveau
administrate
ur
Root exigé
seulement si
nécessaire
(selon les
droits d’accès)
Intègre Globus
(certification)
SSH
Equilibrage
de charge
Le Cloud
Controller
Nginx
Le context
Broker
Le Cloud
Controller
Tolérance
aux pannes
Séparation des
clusters
controllers
Database
backend
(enregistre les
informations
des machines
virtuelles)
Vérification
périodique des
nœuds du Cloud
Replication
5. Choix de la Solution
Afin de caractériser chaque solution notre choix adéquat pour la construction d'un Cloud
Prive Open Source, l’étude comparative de quatre solutions libre se basant sur les
différents critères de classification suivantes :

But : l'objectif à viser par la création de la solution.

L'architecture : c'est la structure du système qui comprend les ressources
matérielles et logicielles et l'interaction entre eux.

Systèmes d'exploitation supportés : pour construire un Cloud Computing, on
doit disposer d'un système d'exploitation qui gère les ressources physiques en
permettant leur allocation et leur partage.

Langage de programmation : il représente le langage de programmation avec
lequel la solution est implémentée.

L'interface utilisateur : l'interface utilisateur représente l'interface de
communication entre l'utilisateur et le Cloud.

Tolérance aux pannes : c'est la capacité d'un système à fonctionner malgré
une défaillance d'un de ses composants.

Emplacement des machines virtuelles : savoir l'emplacement des machines
virtuelles permet de garantir une utilisation optimale des ressources.

Migration des machines virtuelles : c'est le fait de déplacer des machines
virtuelles d'un serveur physique à un autre. On distingue deux types de
migration, à savoir la migration à chaud qui se fait lors de l'exécution des
machines virtuelles et la migration à froid qui ne peut être réalisée qu'après
l'arrêt de la machine virtuelle à déplacer.

Cout de la solution : licence ((Licence Publique Générale\Linux)
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
33
Etude Comparative et choix de la solution Cloud

Caractéristiques : Accès aux sources

Communautés : Nombre des développeurs importants ayant comme rôle
principal de faire remonter des dysfonctionnements et des suggestions.
Dans les paragraphes précédents, nous avons présenté une liste de logiciels permettant
decréer des solutions Cloud. Il est à présent question de faire le choix de celui qui nous
convient le mieux.
La solution que nous devons proposer doit être
Facile à utilisation
Facile à installer et déployer
Sous licence libre
Extensible
S’adaptant à tous types d’infrastructures existantes
Bien documenté
Modulaire et innovante
 La solution qui répond à tous ces critères est OpenStack
La figure ci-dessous présente le pourcentage d’utilisation du logiciel OpenStack par
rapportaux autres solutions selon Zenoss.com.
Figure 7: Pourcentage d’utilisation d’OpenStack dans le monde
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
34
Etude Comparative et choix de la solution Cloud
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
35
Conteneurisation &
Docker
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
36
Conteneurisation & Docker
1.
Introduction :
Une machine virtuelle (VM - Virtual Machine) "imite" intégralement un serveur où chaque
VM "invitée" contient un système d'exploitation complet, avec ses pilotes, fichiers binaires ou
bibliothèques, ainsi que l'application elle-même. Chaque VM s'exécute alors sur un hyperviseur,
qui s'exécute à son tour sur un système d'exploitation hôte. Bien que la méthode ait fait ses
preuves, on s'aperçoit aisément que cela entraine le gaspille de la mémoire du serveur et limite
forcément le nombre de VM prises en charge par chaque serveur. Ce qui pour certains remet en
cause le futur de cette technologie.
Une approche qui a fait ses preuves face au gaspillage des ressources est le concept de
conteneurisation où chaque conteneur ne renferme que l’application et les fichiers binaires ou
bibliothèques associées. L’idée globale consiste donc à utiliser le même système d'exploitation
OS (operating system) hôte pour plusieurs conteneurs, au lieu d'installer un OS (et d'en acheter
la licence) pour chaque VM invitée. Le rôle de l'hyperviseur est alors assuré par un moteur de
conteneurisation, tel que Docker, qui s'installe par-dessus le système d'exploitation hôte.
Lors de ce chapitre nous allons présenter Docker, ses différents composants et comprendre
ce qu’est la conteneurisation.
2.
Présentation :
Docker est une plate-forme logicielle qui permet de concevoir, tester et déployer des
applications rapidement. Docker intègre les logiciels dans des unités normalisées appelées
conteneurs, qui rassemblent tous les éléments nécessaires à leur fonctionnement, dont les
bibliothèques, les outils système, le code et l'environnement d'exécution. Avec Docker, il est
facile de déployer et de dimensionner des applications dans n'importe quel environnement, avec
l'assurance que le code s'exécutera correctement.
3.
Historique :
Docker a été développé par Solomon Hykes pour un projet interne de dotCloud, une société
proposant une plate-forme en tant que service, avec les contributions d'Andrea Luzzardi et
François-Xavier Bourlet, également employés de dotCloud, entreprise française. Docker est une
évolution basée sur les technologies propriétaires de dotCloud, elles-mêmes construites sur des
projets open source.
Docker a été distribué en tant que projet open source à partir de mars 2013.
En 2019 est annoncée la version 3 de la plateforme Docker lors de la conférence DockerCon
2019.
4.
Docker Engine (moteur de Docker) :
Docker Engine est la technologie client-serveur sous-jacente qui crée et exécute des
conteneurs à l'aide des composants et services de Docker.
Docker Engine fournit :
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
38
Conteneurisation & Docker

Un serveur qui est un type de programme de longue durée appelé processus de démon,
qui joue le rôle de création et de gestion des objets Docker tels que images, conteneurs,
réseaux et volumes de données.

Une API REST qui spécifie les interfaces que les programmes peuvent utiliser pour
parler au démon et lui indiquer ce qu'il faut faire.

Une ligne de commande client CLI (Command-line Interface) qui permet aux
utilisateurs d’interagir avec le démon.
Figure 8: Docker Engine
5.
Architecture Docker :
L'architecture Docker utilise un modèle client-serveur et comprend les composants Docker Client,
Docker Host et Docker Registry.
Figure 9: Architecture Docker
5.1 Docker Client
Le client Docker permet aux utilisateurs d'interagir avec Docker. Le client Docker peut
résider sur le même hôte que le démon ou se connecter à un démon sur un hôte distant. Un client
docker peut communiquer avec plusieurs démons. Le client Docker fournit une interface de
ligne de commande (CLI) qui permet d'émettre des commandes de génération, d'exécution et
d'arrêt sur un démon Docker.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
39
Conteneurisation & Docker
Le principal objectif du client Docker est de fournir un moyen de diriger l'extraction d'images
d'un registre et de l'exécuter sur un hôte Docker.
Les commandes courantes émises par un client sont :

docker build : permet de créer une nouvelle image.

docker pull : permet de récupérer une image du registre.

docker run : permet d’exécuter une image.
5.2 Docker Host
Docker host fournit un environnement complet pour exécuter des applications. Il comprend
le démon Docker, les images, les conteneurs, les réseaux et le stockage.
5.3 Docker Daemon
Le docker Daemon est un service d'arrière-plan exécuté sur l'hôte qui est responsable de la
création, du démarrage et du monitoring des conteneurs, mais aussi de la construction et du
stockage des images.
5.4 Docker Images
Les images Docker contiennent du code source d'application exécutable ainsi que tous les
outils, bibliothèques et dépendances dont le code d'application a besoin pour s'exécuter en tant
que conteneur. Lorsque l'image Docker est exécuté, elle devient une instance (ou plusieurs
instances) du conteneur.
Il est possible de créer une image Docker à partir de zéro, mais aussi l’obtenir depuis des
référentiels courants. Plusieurs images Docker peuvent être créées à partir d'une seule image de
base et partagent les points communs de leur pile.
5.5 Docker Container
Un conteneur Docker est une instance exécutable d'une image Docker. Un conteneur peut
être exécuter, démarrer, arrêter, déplacer ou supprimer à l'aide des commandes Docker. Chaque
conteneur est une plate-forme d'application isolée et sécurisée, mais peut avoir accès à des
ressources fonctionnant dans un hôte ou un conteneur différent.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
40
Conteneurisation & Docker
Figure 10: Principe du conteneur Docker
5.6 Registre Docker :
Un registre docker est une bibliothèque d'images qui peut être public ou privé, il permet de
fournir des emplacements afin de stocker et télécharger les images Docker.
6.
Avantages de Docker

Simple à installer : les conteneurs sont lancés à partir d’images portables
contenant un programme unique de serveurs et les différents fichiers nécessaire à
l’installation (librairies, programmes d’aide, données de configuration).
L’installation se fait via une seule ligne de commande.

Applications isolées : chaque application contenue dans un conteneur fonctionne
indépendamment des autres conteneurs présents sur le même système
d’exploitation. L’avantage est donc de pouvoir gérer plusieurs applications n’ayant
pas les mêmes contraintes et exigences.

Faible consommation de ressources : les containers partagent les ressources avec
le système d'exploitation, ce qui permet de les rendre plus efficaces. Les containers
permettent de diminuer le temps de démarrage, diminuer l'espace de stockage et la
consommation du processeur, par rapport au système traditionnel de machines
virtuelles.

Meilleure gestion des applications : le fait d’intégrer une application dans un
conteneur permet de faciliter le déploiement, la gestion des retours à une version
antérieure ou encore la résolution des problèmes.

Une accélération du déploiement des applications : Les conteneurs disposent
d'un environnement d'exécution minimal pour les applications, réduisant leur taille
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
41
Conteneurisation & Docker
et permettant un déploiement plus rapide.
7.
Inconvénients de Docker

Faille dans le noyau : Contrairement à une machine virtuelle, le noyau est partagé
entre tous les conteneurs et le système hôte. Si un conteneur provoque une panique
du noyau, il emportera tout le système hôte.

Images empoisonnées : Si un attaquant réussit tromper l’utilisateur lors de
l’exécution d’une image, le système hôte et les données sont en danger.

Impossible d’utiliser des OS différents sur un même serveur physique ce qu’est
possible avec la virtualisation classique.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
42
Software Defined
Networking
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
43
Software Defined Networking
1 Introduction
Avec l’évolution du Cloud Computing, le sujet le plus important en matière de réseaux est
le Software Defined Networking (SDN). Cette technologie permet d’avoir une architecture
automatisée, programmable et qui peut être mise en place via divers protocoles.
Dans ce chapitre, nous allons tous d’abord donner un aperçu global sur la technologie SDN
et son architecture, ensuite nous présenterons le protocole OpenFlow et enfin nous terminerons
avec quelques contrôleurs SDN.
2 Définition SDN
SDN est une technologie qui rend le réseau programmable. Il présente une architecture
réseau où le plan de contrôle est totalement découplé du plan de données.
Le plan de contrôle gère la gestion des périphériques réseau, tandis que le plan de données
est la couche matérielle responsable du transfert des paquets selon les règles définies dans le
plan de contrôle. Ce découplage transforme les commutateurs/routeurs en simples dispositifs
de transfert, tandis que l’entité logique est implémentée dans le contrôleur qui fonctionne
comme un système d'exploitation réseau centralisé.
3 Architecture SDN
SDN est basée sur une architecture hiérarchique de trois couches.
Couche application :
Cette couche regroupe un ensemble d’applications, qui interagit directement avec chaque
équipement via des API. De telles applications peuvent, par exemple, implémenter des parefeu, des politiques de routage ou des équilibreurs de charge.
Couche du plan de contrôle :
Cette couche est considérée comme le noyau du SDN. Elle est constituée d’un ensemble de
contrôleurs. Ces derniers traduisent la requête envoyée par l’application afin d’établir des règles
de traitement des données, qui seront injecter par la suite au niveau de chaque équipement du
réseau.
Couche du plan de données :
Cette couche est constituée d’un ensemble d’équipements réseaux qui peuvent être
physiques ou logiciels, souvent appelés, les équipements de diffusion qui assurent uniquement
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
44
Software Defined Networking
L’envoi et la réception des données en respectant l’acheminement, définit par le contrôleur de
la couche de contrôle.
4 Interface de communication
North bound API :
Elle permet la communication et l’échange de données entre le contrôleur SDN et les
applications du réseau.
South bound API :
Elle fait référence aux différentes APIs qui permettent les communications entre les
équipements de plan de contrôle et ceux du plan de données.
5 OpenFlow
OpenFlow est un standard de communication basé sur le concept des Software-Defined
Networking géré par l'ONF (Open Networking Foundation). Il standardise l'interface entre le
contrôleur et les périphériques de transfert dans le but de transmettre aux commutateurs des
instructions qui permettent de programmer leur plan de données et par conséquent l'obtention
des informations de ces derniers afin que le contrôleur puisse avoir une vue globale logique du
réseau physique.
5.1 Les structures de données OpenFlow :
Un commutateur OpenFlow se compose d'une ou plusieurs tables de flux (pipeline) et d'une
table de groupe, qui effectuent des recherches de paquets et le transfert, et un canal OpenFlow
vers un contrôleur externe. Le commutateur communique avec le contrôleur et ce dernier gère
le commutateur via le protocole OpenFlow comme le montre la figure suivante [18] :
Figure 11: Architecture OpenFlow
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
45
Software Defined Networking
Une table de flux "Flow Table" est constituée de plusieurs entrées de flux, chacune est
structurée comme suit :

Match fields : il se compose du port d’entrée et des en-têtes de paquets, et
éventuellement d’autres champs tels que les métadonnées spécifiées par d’autres tables
du pipeline.
Priority : correspond de priorité de l'entrée du flux.
Counters : il est mis à jour lorsqu’une correspondance avec un paquet est trouvée.
Instructions : Ce champ sert à spécifier des actions à exécuter si une correspondance
est trouvée.
Timeouts : durée maximale ou temps d'inactivité avant l'expiration du flux par le
commutateur.
Cookie : utilisé par le contrôleur pour filtrer les entrées de flux affectées par les
statistiques, les demandes de modification et de suppression de flux.





5.2 Les messages OpenFlow :
L'échange d'informations entre le commutateur et le contrôleur s'effectue par l'envoi de
messages via un canal de contrôle sécurisé en utilisant TLS (Transport Layer Security).
Le protocole OpenFlow dans l’Architecture SDN prend en charge trois types de message :
symétrique, asynchrone et messages contrôleur vers switch.
5.2.1 Messages symétrique
Les messages symétriques sont envoyés sans sollicitation, dans les deux sens.



Message HELLO : les messages Hello sont échangés entre le commutateur et le
contrôleur au démarrage de la connexion.
Message ECHO : les messages de request/reply peuvent être envoyés par le
commutateur ou le contrôleur, et doivent retourner une réponse Echo. Ils sont
principalement utilisés pour vérifier la vivacité d’une connexion contrôleurcommutateur, et peut aussi bien être utilisé pour mesurer sa latence ou sa bande
passante.
Message ERROR : les messages d’erreur sont utilisés par le commutateur ou le
contrôleur pour signaler les problèmes à l’autre côté de la connexion. Ils sont
principalement utilisés par le commutateur pour indiquer un échec d’une demande
lancée par le contrôleur.
5.2.2 Messages Asynchrones
Les messages asynchrones sont envoyés sans qu’un contrôleur les sollicite à partir d’un
commutateur. Les commutateurs envoient des messages asynchrones aux contrôleurs pour
indiquer l’arrivée ou le changement d’état d’un paquet.

Packet-In : Il est utilisé par le commutateur pour envoyer les paquets de données au
contrôleur afin de déléguer au contrôleur la décision quant au transfert du paquet.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
46
Software Defined Networking


Flow-Removed : informe le contrôleur de la suppression d’une entrée dans la table
de Flux.
Port-Status : est utilisé afin de communiquer un changement de configuration du port
ou changement d’état du port.
Messages contrôleur vers switch :
Ils sont initiés par le contrôleur et utilisés pour gérer ou vérifier l'état du commutateur. Ce
type peut demander une réponse de la part du commutateur.



Packet-Out : le contrôleur utilise Packet_Out afin d’émettre des paquets de données au
commutateur pour leur acheminement.
Modify-State : les messages de modification d’état sont envoyés par le contrôleur pour
gérer l’état sur les commutateurs. Leur objectif principal est d’ajouter, supprimer ou
modifier dans les tables de flux.
Read-State : sont utilisés par le contrôleur pour recueillir diverses informations du
commutateur, telles que la configuration actuelle, les statistiques et les capacités.
5.3 Fonctionnement OpenFlow
Lorsqu’un paquet arrive à un commutateur, ce dernier vérifie s'il y a une entrée dans la table
de flux qui correspond à l'en-tête de paquet. Si c'est le cas, le commutateur exécute l’action
correspondante dans la table de flux. Dans le cas contraire, le commutateur génère un message
asynchrone vers le contrôleur sous la forme d’un "Packet_in ", puis le contrôleur décide selon
sa configuration une action pour ce paquet, et envoie une nouvelle règle de transmission sous la
forme d’un "Packet_out" et "Flow-mod " au commutateur, et enfin, la table de flux du
commutateur est mise à jour, pour prendre en compte la nouvelle règle installée par le contrôleur.
6 Contrôleurs SDN
Avec l'explosion de la technologie SDN, un nombre important de contrôleurs a vu le jour.
Ces contrôleurs diffèrent par leurs langages de programmation, la version d'OpenFlow et
l’architecture de SDN supportée ainsi que les performances comme le débit. Parmi les
contrôleurs existants, on trouve :
NOX et POX :
NOX est le premier contrôleur OpenFlow qui a vu le jour. Il a été à la base de nombreux
projets de recherche et développement dans les débuts de l'exploration de l'OpenFlow et du
SDN. Il est développé en C++, il fournit une API pour le développement avec le Python.
POX quant à lui, est une variante du NOX écrite en Python, c’est une plate-forme de
développement open source utilisée pour développer des applications de contrôle des réseaux
définis par logiciel.
Floodlight :
Floodlight est un contrôleur open-source, il offre un point de gestion central pour les réseaux
OpenFlow basé sur Java, pris en charge par BIGSwitch Networks. Il est sous licence Apache.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
47
Software Defined Networking
Ryu :
Le terme RYU vient d'un mot japonais qui signifie "flux". Ce contrôleur est bien connu dans
le monde de la programmation Python. Tout son code est disponible gratuitement sous licence
Apache 2.0. Il supporte jusqu’à la dernière version d’OpenFlow.
ONOS (Open Network Operating System):
Il s’agit d’un système d’exploitation réseau ou d’un contrôleur SDN récemment libéré qui
se concentre sur les cas d’utilisation des fournisseurs de services, il assure l'évolutivité, la haute
disponibilité, la performance et des abstractions pour faciliter la création des applications et des
services.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
48
Conception
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
65
Conception
1. Introduction
Au cours de ce chapitre on se basera sur la solution Cloud choisi, ainsi que son architecture
suivie d’une étude détaillée sur les différents services qui ont permis de faire le choix d'entre
eux pour pouvoir réunir les technologies vues précédemment.
2. Les besoins
Le besoin identifié pour ce projet est de promouvoir un contrôleur SDN sous forme d’un
service aux clients, de la manière la plus optimale en terme de coût et consommation de
ressources, et cela afin d’aller vers une architecture réseau centralisée, managée par un seul
contrôleur. Toutefois ces mêmes clients veulent se concentrer sur leurs métiers de base et ne
pas fournir plus du temps, d’énergie et d'argent en acquérant et administrant une nouvelle
plateforme IT. Par conséquent, la solution proposée est d’implémenter une plateforme Cloud
Computing pour fournir des contrôleurs SDN sous forme de conteneur Docker.
3. Choix de la plateforme Cloud
Les buts définis plus haut sont la clé majeure qui nous mène au choix optimal de la
plateforme cloud à déployer qui doit être :





Open source.
Aucun cout de licence.
Haute disponibilité des services.
Intégration avec des outils tiers (Docker, Kubernetes …).
Bien documenté.
La solution qui s’adapte aux besoins de notre projet est Openstack, ce dernier est une plateforme de Cloud Computing évolutive et open source, la plus utilisée dans ces dernières années.
Et ceci est dû à sa flexibilité, scalabilité et de nombreux autres avantages.
Architecture d’installation :
La difficulté liée à l’installation d’Openstack réside dans la complexité de son architecture,
du fait que chaque service comporte plusieurs processus qui doivent communiquer ensemble à
travers un courtier de message AMQP, tout en s’authentifiant par un service central (Keystone).
En outre, l’état des services et d’autres informations correspondant au cloud déployé sont
stockés dans une base de données.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
66
Conception
La seconde difficulté vient du fait qu’une telle architecture doit être définie auparavant en
fonction de ressources disponibles, parmi de nombreuses architectures nous citons à titre
d’exemple :
Un seul nœud (All in one):
Un seul serveur exécute tous les services Openstack et également conduit toutes les
instances virtuelles.
Deux nœuds :
Il se compose de deux serveurs, en premier le contrôleur qui exécute les services : d'identité,
d'image, les parties de gestion de compute, la partie de gestion du réseau ainsi que ses divers
agents et le tableau de bord, il comprend également des services de prise en charge tels qu'une
base de données et une file d'attente de messages, en second le compute qui exécute la partie
hyperviseur et gère les instances. Il exécute également un agent de service de mise en réseau qui
connecte les instances aux réseaux virtuels et fournit des services de pare-feu aux instances via
des groupes de sécurité.
Plusieurs nœuds :
Il comprend au minimum trois nœuds qui sont le contrôleur, le compute et le nœud de
stockage (Object storage ou Bloc storage).
Choix de l’architecture d’installation :
On opte pour une architecture All in one qui regroupe tous les services dans un
environnement de test.
Cette architecture comportera une interface réseau eth0 relié à un réseau externe qui sert à
la connectivité internet.
Le choix d’un réseau LAN est dû à quelques problèmes de connectivité que nous avons
affrontés lors de la phase du déploiement, cela sera expliquer dans le chapitre qui se suit.
Figure 23: Architecture d'installation Openstack.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
67
Conception
4. Services de conteneurisation Openstack :
En tant que technologie émergente dans le Cloud Computing, Docker devient de plus en
plus populaire en raison de sa grande efficacité et de sa portabilité. L'intégration de Docker avec
Openstack a été un sujet brûlant dans les domaines de la recherche et de l'industrie [24].
Il existe plusieurs projets, qui répondent à ce besoin. Nous présenterons quelques services
que nous avons jugés crucial dans l’étape de l’intégration de docker dans Openstack :
Nova docker :
Nova-docker est un pilote d'hyperviseur pour Openstack Nova Compute. Il a été introduit
pour la première fois avec la version Havana, mais il était également en cours de développement
pour Icehouse, Juno et Kilo.
Dans ce qui suit nous illustrons le fonctionnement de Nova docker :



Pour mettre en place les conteneurs, le pilote Nova compute est pointé sur le pilote
Docker comme mentionné dans le schéma ci-dessous.
Le pilote Nova Docker Virt communique avec l'agent Docker en utilisant des appels
api http.
Les images de Docker sont stockées dans le registre Docker et les images sont
exportées pour être consultées à partir du registre Docker que Nova utilise pour créer
les conteneurs
Figure 24:Architecture de nova-docker
Ce service n’est malheureusement plus maintenu par la communauté Openstack.
Zun :
Zun gère le conteneur comme une sorte de ressource Openstack, Il fournit l'API nécessaire
pour le déploiement et la gestion des conteneurs en utilisant diverses technologies de
conteneurs. Zun a été intégré à plusieurs services d'Openstack. Keystone, Neutron et Kuryrlibnetwork sont des services nécessaires au fonctionnement de Zun. Ils fournissent à ce dernier
l'authentification, le réseau, la connexion entre les réseaux de neutrons et de docker.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
68
Conception
Pour faire fonctionner un container, Zun nécessite au moins deux nœuds (nœud contrôleur
et nœud de calcul).
Le diagramme ci-dessous illustre la relation entre les composants Zun et Openstack.
Figure 25:Architecture Zun



Zun API : Traitement des demandes REST et vérification des paramètres d'entrée.
Zun Compute : Planification des ressources et gestion des conteneurs.
Glance : Stockage d'images de docker (si glance n'est pas utilisé, l’alternative sera
DockerHub).
Magnum :
Magnum est un service de gestion de l'infrastructure des conteneurs pour Openstack, il
fournit des API pour déployer les clusters Kubernetes, Swarm et Mesos sur l'infrastructure
d'Openstack. Magnum déploie des VM ou bare-metal via l’orchestrateur Heat, afin de former
un cluster, puis invoque l'interface COE (Container Orchestration Engine) pour compléter le
déploiement du conteneur.
Il existe plusieurs types d'objets dans le service magnum :





Cluster : Une collection d'objets nœuds.
Cluster Template : Un objet stocke des informations sur le modèle de cluster qui est
utilisé pour créer de nouveaux clusters de manière cohérente.
Pod : collection de conteneurs fonctionnant sur un bare-metal ou machine virtuelle.
Service : Une abstraction qui définit un ensemble logique de pods et une politique
permettant d'y accéder.
Conteneur : Un conteneur Docker.
Deux binaries travaillent ensemble pour composer le service magnum. Le premier est le
serveur REST de magnum-api, Ce dernier peut s'exécuter en tant que processus unique ou en
tant que multiples processus. Lorsqu'une requête REST est envoyée à l'API du client, la requête
est transféré via AMQP au processus magnum-conducteur qui assure la coordination et le
support d'interrogation des bases de données pour Magnum, il sélectionne le pilote de cluster et
envoie par la suite les fichiers de template au service Heat pour effectuer l'installation, et enfin
met à jour la base de données avec les détails des objets.
Le diagramme ci-dessous montre les différents composants de Magnum, les autres projets
Openstack auxquels ils communiquent et l'infrastructure prévue pour son fonctionnement.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
69
Conception
Figure 26: Architecture Magnum
Choix de service :
Compte tenu des schémas d'intégration existants (Nova-docker et Zun), qui souffrent d'un
déploiement lent, d'un faible débit de conteneurs, d'un manque de prise en charge des limitations
de ressources, d'une allocation de ressources déraisonnable et d'une grave dégradation des
performances de conteneurs dans le cadre de la concurrence des ressources, par conséquent,
magnum demeure la meilleure solution comparant aux précédentes et réponds au mieux aux
objectifs de ce projet.
5. Choix du contrôleur SDN
Une multitude de choix d’images est offerte par docker hub à ses utilisateurs afin de profiter
aux avantages de la conteneurisation. Malgré la diversité que Docker hub nous prodigue, il a été
difficile de trouver l’image du contrôleur SDN, qui convient le mieux à notre environnement et
qui ne pose pas de problème lors de son importation.
Pour nos premiers pas nous avons testé plusieurs contrôleurs, mais des anomalies sont
apparus lors de l’importation de l’image, c’est ce qui nous a mené à opter pour le contrôleur
ONOS qui semble être l’idéal pour notre environnement.
5.1 Architecture de la solution :
A travers les concepts théoriques vus précédemment, nous sommes arrivés à proposer une
architecture afin de déployer et tester le contrôleur SDN sur la plateforme Openstack.
5.1.1 Architecture réseau :
Notre architecture réseau se compose d’un cluster qui regroupe deux instances, dont un
master et un worker attachés à un réseau privé 10.10.0.0/24, ce dernier est lié à un routeur virtuel
qui est à son tour relié au réseau externe 192.168.1.0/24, et permet la connectivité des VMs au
monde extérieur.
Afin d’assurer la connectivité de l’extérieur vers les VMs, nous devons associer une adresse
ip flottante à ces dernières dans la plage d’adressage 192.168.1.0/24.
Afin d’avoir une vision claire sur l’architecture proposée, nous illustrons la figure ci-dessous.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
70
Conception
Figure 27:Architecture réseau.
5.1.2
Vue d’ensemble de l’utilisation du cluster :
L’architecture générale que nous avons conçue et qui met en œuvre cette plate-forme est
illustrée dans la figure 4.8. Elle se compose d’un cluster swarm créé auparavant par l’admin,
dont le master est utilisé pour envoyer les tâches au nœud worker. Lors de la réception des
tâches par le worker, ce même nœud execute les actions requises, telles que le démarrage ou
l’arrêt d’un conteneur. Cela nous offre la possibilité de déployer le contrôleur SDN sur la
plateforme Openstack.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
71
Conception
Figure 28: Architecture de déploiement
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
72
Déploiement
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
73
Déploiement
1.
Introduction
On s’intéresse ici, aux principales étapes d’installation d’Openstack. On commence par la
préparation du système, sur lequel sera implémentée cette solution
2.
Environnement de travail
Cette section présentera l'environnement matériel et logiciel dans lesquels notre plateforme
sera déployée.
2.1 Environnement matérielle
Les caractéristiques de la machine utilisée durant toute la phase de configuration et
déploiement sont :
1.1.1
1.1.2
1.1.3
1.1.4
Machine : Dell
Mémoire RAM : 12 Go
Disque dur : 500 Go HDD
Processeur : Intel® Core™ i5-4200U CPU @ 1.60 GHZ
2.2 Environnement logiciel
Au lieu d’installer OpenStack directement sur la machine hôte, le logiciel Virtualbox sera
utilisé pour créer une machine virtuelle, sur laquelle seront installés les composants
d’Openstack.
3.
Installation Openstack
Openstack est une plateforme qui a fait un énorme bruit au sein de la communauté cloud
lors de son lancement, en ce qui concerne l’installation et la maintenance, de divers tutoriels et
vidéos ont ouvert la voie aux personnes qui veulent maitriser une nouvelle technique, mais
malheureusement cela n’était pas à l’accès de tout le monde du fait qu’Openstack est un outil
complexe qui demande du temps et de la bonne maitrise des concepts réseaux et système.
3.1 Méthode d’installation
L’installation d’OpenStack peut se faire de deux (2) Manières :


Single Node (” All in One”) Deployments.
Multi Node.
Nous allons installer Openstack sur une seule machine. Openstack
propose aussi plusieurs types d’installation :



Installation via Packstack.
Installation via des scripts.
Installation via les packages.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
74
Déploiement
Pour la réalisation de notre plateforme, nous allons choisir l’installation via Packstack.
Packstack : est un outil d'installation pour Openstack destiné aux déploiements de
démonstration et de test, mais n’est absolument pas mise en production.
3.2 Choix de la distribution
Openstack propose dans sa documentation des guides d’installation pour les distributions
suivantes :
3.2.1
3.2.2
Red Hat Entreprise Linux 7 / CentOS 7.
Red Hat Entreprise Linux 8 / CentOS 8.
Notre choix s’est porté sur Centos 7, car ce dernier est le plus simple a utilisé avec
Openstack.
3.3 Configuration de VirtualBox
Après l’installation de VirtualBox nous allons configuré la machine virtuelle comme suit :
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5
3.3.6
3.3.7
Nom : centos_2
Type de système d’exploitation : Linux.
Version : RedHat 64 bit.
Mémoire RAM : 10 Go.
Disque : 75 Go.
Activer le mode Nested VT-x/AMD-V.
Réseau : Bridge
Figure 7.1 : Configuration network sur VirtualBox.
3.4
Etape d’installation Openstack :
Après avoir configuré la machine virtuelle, notre environnement est maintenant près pour
l’introduction des étapes suivantes :
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
75
Déploiement
3.4.1
Désactiver le pare-feu :
Figure 7.2 : Désactivation du pare-feu.
3.4.2
Désactiver le NetworkManager :
3.5
Figure 7.3 : Désactivation du NetworkManager.
3.5.1
Redémarrer le service réseau :
Figure 7.4 : Redémarrer le service réseau.
3.5.2
Mettre à jour le système :
Figure 7.5 : Mise à jour du système.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
76
Déploiement
3.5.3
Installer le package pour active le référentiel Openstack :
Figure 7.6 : Installation du package Openstack.
3.5.4
Refaire la mise à jour du système :
Figure 7.7 : Mise à jour du système.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
77
Déploiement
3.5.5
Installer Packstack :
Figure 7.8 : Installation Packstack.
3.5.6
Avec la commande qui suit, nous aurons un fichier qui figurera dans le répertoire
avecle nom answerFile et qui sera utilisé afin de configurer les mots de passes
ainsi que l’installation de quelques services que nous verrons par la suite :
Figure 7.9 : Génération du fichier answerFile.
3.5.7
Vue global sur le contenu de fichier généré « answer.txt »
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
78
Déploiement
3.5.8
Lancer la commande de l’installation :
Figure 7.10 : Lancement de l’installation PackStack.
3.5.9
L’installation est enfin bien réussite
Figure 7.11 : Installation avec succès.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
79
Déploiement
3.5.10 Accéder au Dashboard d’Openstack (Horizon) :
L’accès se fait à travers lenavigateur web, en introduisant l’adresse 192.168.1.4, ainsi
que le nom d’utilisateur
« admin » et le mot de passe déjà configuré auparavant « secret ».
Figure 7.12 : Dashboard Openstack.
3.6 Configuration d’OpenvSwitch
OpenvSwitch est un projet open source qui permet de virtualiser la couche réseau, en
fournissant la connectivité et la commutation Ethernet L2 au grand nombre de machines
virtuelles.
Dans Openstack, le nœud Neutron est le service qui exécute OpenvSwitch, et afin de
répondre aux besoins de notre architecture réseaux déployé sur Openstack, l’étape de
configuration d’OpenvSwitch demeure une étape cruciale pour la phase qui viendra par la suite.
Pour configuré OpenVswitch on doit tout d’abord accéder au fichier ml2_conf.ini qui se
trouve dans le chemin /etc/neutron/plugins/ml2.
$packstack –allinone –os-neutron-l2-agent=openvswitch \
--os-neutron-ml2-mechanism-drivers=openvswitch \
--os-neutron-ml2-tenant-network-types=vxlan \
--os-neutron-ml2-type-drivers=vxlan, flat \
--os-neutron-ovs-bridge-mappings=extent:br-ex \
--os-neutron-ovs-bridge-interfaces=br-ex:eth0
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
80
Déploiement
4. Création du cluster swarm
Après avoir choisi l’orchestrateur swarm, nous procédons aux étapes suivantes afin de
configurer notre environnement :
4.1 Configuration du cluster
Avant la création du cluster swarm, il faut un OS sur lequel les instances (master et
worker) doivent booter, pour notre cas ça sera l’image Fedora atomic avec l’extension
QCOW2.
Figure 7.13 : Téléchargement de l'image Fedora.
Quand le téléchargement de l’image est effectué, l’étape de la création de l’image glance est
initiée. Cette commande permet le stockage de l’image Fedora dans glance.
Figure 7.14 : Création de l'image glance.
La création d’une paire de clé ssh.
Figure 7.15 : Création de la clé ssh.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
81
Déploiement
Création du réseau publique de type plat, qui sera attaché au réseau externe.
Figure 7.16 : Création du réseau publique.
 Création de sous-réseau
tous comme une architecture réelle, nous devons créer un sous réseau publique
192.168.1.0/24, ce même sous-réseau est lié au réseau externe eten fait partie afin de
permettre aux instances de se connecter au monde extérieur.
Figure 7.17 : Création de sous-réseau.
Quand a la création du routeur et le sous-réseau privé, nous avons fait appel à magnumqui gère ça
automatiquement lors de la mise en œuvre du cluster, car la création manuelle nous a causé des
anomalies.
 Création de template :
Cette étape consiste au pré-déploiement du cluster, en spécifiant les exigences attribuées
précédemment, ainsi que les gabarits personnaliséspour chaque nœud.
m1.test : 1,5 GB de ram, 20GB de disque et 1 vCPU attribué au master.
m2.test : 500GB de ram, 15GB de disque et 1 vCPU attribué au worker.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
82
Déploiement
Ce choix est dû au manque de ressources.
Figure 7.18 : Création de template.
La figure 5.18 montre que la template a été bien créé.
Figure 7.19 : Template du cluster.

Création du cluster
A travers la template créé, le cluster doté de deux nœuds (1master et 1 worker) peut
enfin être déployer.
Figure 7.20 : Création du cluster.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
83
Déploiement
Figure 7.21 : Swarm cluster.
4.2 Topologie réseau du cluster :
Après avoir réussi à mettre en place le cluster swarm, la figure 5.21 illustrera la topologie
réseau qui donnera une vue globale sur la connection entre les nœuds du cluster.
Figure 7.22 : Topologie réseau du cluster.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
84
Déploiement
5.
Création de service et déploiement du conteneur
Les conteneurs peuvent être déployés dans le swarm de la même manière que les conteneurs
sont utilisés sur un seul hôte. Un service est créé et l'image qui doit être utilisée pour déployer
le conteneur est spécifiée. Du moment où le service est lancé au niveau du master, le nœud
worker prend automatiquement le relai et execute le conteneur (run).
Afin d'assurer la haute disponibilité des conteneurs, le service swarm utilise une politique
de réplication de conteneur sur tous les nœuds worker.
Dans le cas où l'image utilisée n'est pas disponible dans le registre local, elle est
automatiquement tirée du docker hub.
Dans le but de déployer notre contrôleur ONOS, nous avons tenté de créer un service à
travers la commande qui se suit :
$ docker service create --name onos-test -p 6633:6633 -p 6640:6640 –p 8181:8181 -p
8101:8101 -p 9876:9876 onosproject/onos:1.14.0
L’accès au contrôleur doit se faire en exposant les ports spécifiques à ONOS qui sont :





Port 6633 : port spécifique à OpenFlow.
Port 6640 : port spécifique à OVSDB.
Port 8181 : pour l’accès à l’interface graphique (GUI).
Port 8101 : pour l’accès à la ligne de commande (CLI).
Port 9876 : pour la communication intra-cluster ONOS.
Malheureusement, les performances de la machine n’ont pas été en notre faveur, c’est
pourquoi et pour des raisons de test, nous avons déployé le conteneur du contrôleur SDN
(ONOS) au niveau du nœud master en utilisant les commandes Docker (pull et run).
L’utilisation de l’outil d’émulation Mininet est nécessaire pour tester le bon fonctionnement
du contrôleur.
Mininet est un outil permettant l’émulation des réseaux classiques et SDN, fonctionne sur le
noyau linux et propose une API très riche en fonctionnalités programmées en Python.
5.1 Test du contrôleur ONOS
Au début de la phase du test, nous devons tout d’abord récupérer (pull) l’image ONOS du
docker hub, cela est illustré dans la figure ci-dessous.
Figure 7.23 : Récupération de l'image ONOS.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
85
Déploiement
Lorsque la récupération de l’image est effectuée, nous exécuterons le conteneur du
contrôleur ONOS et exposant les ports nécessaires pour pouvoir y accéder.
Figure 7.24 : Exécution du contrôleur.
La figure suivante montre l’interface graphique du contrôleur ONOS.
Figure 7.25 : Interface graphique ONOS.
Pour tester ce contrôleur nous avons opté pour une simple topologie qui se compose de deux
hosts reliés à un switch sous mininet, tout cela est décrit par la figure 5.25.
Figure 7.26 : Réseau mininet.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
86
Déploiement
Figure 7.27 : Topologiemininet.
Figure 7.28 : Topologiemininet.2
On voit bien à travers le test effectué que la communication entre toutes les machines.
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
87
Déploiement
Les machines détectaient sur le contrôleur.
On voit bien à travers le test effectué que la communication entre les deux machines h1 et h2
est bien fonctionnel.
Figure 7.28: h1 ping h2.
Figure 7.29: h2 ping h1
Conception et déploiement d’une plateforme Cloud pour fournir des conteneurs de service SDN
88
Téléchargement