Vous êtes sur la page 1sur 33

Virtualisation et cloud computing

Table des matières


CHAPITRE 1 : CONCEPTS GENERAUX SUR LA VIRTUALISATION ..................................... 3
1.1 DEFINITION ...................................................................................................................................... 4
1.2 LES DOMAINES DE LA VIRTUALISATION ........................................................................................... 4
1.2.1 La virtualisation d’applications ............................................................................................... 4
1.2.2 La virtualisation de réseaux ..................................................................................................... 5
1.2.3 La virtualisation de stockage ................................................................................................... 5
1.2.4 La virtualisation de serveurs ................................................................................................... 7
1.3 AVANTAGES ET INCONVENIENTS DE LA VIRTUALISATION ................................................................ 8
1.4 LES 3 METHODES DE VIRTUALISATION ............................................................................................. 8
1.3.1 L'isolateur ................................................................................................................................ 8
1.3.2 L'émulateur .............................................................................................................................. 8
1.3.3 L'hyperviseur ............................................................................................................................ 9
1.4 LES DIFFERENTS TYPES DE VIRTUALISATION .................................................................................. 10
1.4.1 La virtualisation complète ..................................................................................................... 10
1.4.2 La paravirtualisation ............................................................................................................. 11
CHAPITRE 2 : VIRTUALISATION DES RESEAUX : ETHERNET ET LES VLAN ............... 12
2.1 RAPPELS SUR LES RESEAUX LOCAUX.............................................................................................. 13
2.1.1 Le format des trames Ethernet 1 (trame IEEE 802.3) et Ethernet II ..................................... 14
2.1.2 La méthode de réception d’une trame par une carte réseau dans Ethernet .......................... 15
2.1.3 Auto-construction d’une table de commutation par un switch .............................................. 16
2.2 LE PROTOCOLE STP ....................................................................................................................... 17
2.3 LES RESEAUX VIRTUELS : VLAN ................................................................................................... 17
2.3.1 Importance des VLAN ............................................................................................................ 17
2.3.2 Différents niveaux de VLAN : niveau 1, niveau 2, niveau 3 .................................................. 19
2.3.3 Etiquetage ou marquage des trames, liaison trunk et standard ............................................ 20
2.4 LE PROTOCOLE VTP ...................................................................................................................... 21
2.5 TRAVAUX PRATIQUES (VOIR FICHE DE TD SUR LA PLATEFORME) ................................................. 22
CHAPITRE 3 : PROTOCOLES D’ACCES A DISTANCE ET ETUDE DE QUELQUES
CLIENTS LEGERS ............................................................................................................................. 23
3.1 SSH ............................................................................................................................................... 23
3.2 VNC ............................................................................................................................................. 23
3.3 Protocole RDP et ses variantes ................................................................................................ 24
3.4 PROTOCOLE SPICE ........................................................................................................................ 24
3.5 TRAVAUX PRATIQUES (VOIR FICHE DE TP SUR LA PLATEFORME) ................................................... 25
CHAPITRE 4 : ETUDE DE QUELQUES PLATEFORMES DE VIRTUALISATION............... 26
4.1 LES PLATEFORMES DE VIRTUALISATION ......................................................................................... 26
4.1.1 QEMU-KVM .......................................................................................................................... 26
4.1.2 XEN ........................................................................................................................................ 26
4.1.3 Proxmox ................................................................................................................................. 26
1
4.1.4 Hyper-V .................................................................................................................................. 26
4.2 LES OUTILS DE GESTION DES PLATEFORMES DE VIRTUALISATION .................................................. 27
4.2.1 API libvirt............................................................................................................................... 27
4.2.2 Virt-manager .......................................................................................................................... 27
4.2.3 Kimchi .................................................................................................................................... 27
4.3 TRAVAUX PRATIQUES (VOIR SUR LA PLATEFORME FICHE DE TD) .................................................. 28
CHAPITRE 5 : LA CONTENEURISATION ................................................................................... 29
5.1 DEFINITION .................................................................................................................................... 29
5.2 DIFFERENCES ENTRE LA VIRTUALISATION MATERIELLE ET LA CONTENEURISATION ....................... 30
5.3 LXC ET LXD ................................................................................................................................. 32
5.4 DOCKER ......................................................................................................................................... 32
5.5 TRAVAUX PRATIQUES (VOIR FICHE DE TD SUR LA PLATEFORME) .................................................. 32
CHAPITRE 6 : INTRODUCTION AU CLOUD (VOIR RESSOURCE COMPLEMENTAIRE 1)

6.1. Définition du « Cloud Computing » ou informatique en nuage

6.2. Etude de quelques plateformes de cloud du marché : openstack

--- --- --- ---

PLAN DE COURS

Chapitre 1 : Concepts généraux sur la virtualisation (2heures)

Chapitre 2 : virtualisation des réseaux : Ethernet et les VLAN (6 heures)

Chapitre 3 : Protocoles d’accès à distance et étude de quelques clients légers (4 heures)

Chapitre 4 : Etude de quelques plateformes de virtualisation (6 heures)

Chapitre 5 : La conteneurisation (6 heures)

Chapitre 6 : Introduction au cloud (3 heures)

2
Chapitre 1 : Concepts généraux sur la virtualisation

Objectifs spécifiques

• savoir définir le concept de la virtualisation ;


• prendre connaissance des domaines de la virtualisation ;
• déterminer les avantages et les inconvénients de la virtualisation ;
• connaître les différentes méthodes de virtualisation ;
• comprendre les différents types de virtualisation.

3
1.1 Définition

La virtualisation désigne un ensemble de techniques permettant de faire tourner plusieurs systèmes


d’exploitation (machines virtuelles) sur une même machine physique (hôte). Le principe de la
virtualisation est donc le partage ou la mutualisation des ressources d’un serveur (voir figure 1.1). La
virtualisation est le socle du cloud computing que nous allons étudier en détail dans le chapitre 6.

Figure 1.1 Principe de la virtualisation

1.2 Les domaines de la virtualisation

1.2.1 La virtualisation d’applications

La virtualisation d’applications est une technologie logicielle qui va permettre d’améliorer la portabilité
et la compatibilité des applications en les isolant du système d’exploitation sur lequel elles sont
exécutées. Elle consiste à encapsuler l’application et son contexte d’exécution système dans un
environnement cloisonné.

Figure 1.2 : virtualisation d’applications

4
La couche virtuelle ajoute des avantages au système virtualisé en permettant d’exécuter des applications
conçues pour d’autres systèmes. A titre d’exemple, le logiciel Wine1 permet d'exécuter certains
programmes Windows sous Ubuntu.

La virtualisation d’applications peut aussi consister à rendre disponible une application installée sur un
serveur pour un client. Parmi les principaux acteurs de la virtualisation, on peut citer Citrix XENAPP 6,
Microsoft APP-V et VMWare ThinAPP.

1.2.2 La virtualisation de réseaux

La virtualisation de réseaux permet aux applications de s’exécuter sur un réseau virtuel comme si c’était
un réseau physique. Avec un réseau virtuel, les fonctions de commutation, le routage, le contrôle d'accès,
le pare-feu, la qualité de service (QoS) et l'équilibrage de charge sont implémentées dans le logiciel. La
virtualisation de réseau fait passer l'intelligence du matériel dédié au logiciel flexible.

Figure 1.3

1.2.3 La virtualisation de stockage

La virtualisation du stockage permet d’être indépendant de la localisation physique des données en créant
un espace logique de stockage. En effet, dans une machine virtuelle, les données sont stockées sur un
disque dur virtuel. Ce disque dur se présente sous forme de fichier dans le système de fichiers de l'hôte :

• VHD chez Microsoft


• VDI chez Oracle

1
http://www.winehq.org
5
• VMDK chez VMWare
• OVF format ouvert

Les disques virtuels peuvent être statiques ou dynamiques. Dans le cas où le disque est statique, si on
crée un disque de 50 Go, le fichier de disque virtuel fera 50 Go sur le système hôte. Avec un disque
dynamique, le fichier de disque virtuel se remplit au fur et à mesure qu'il est utilisé. Un disque de 50 Go
dans lequel il n'y a pas de données ne pèsera dans le système de fichiers hôte pas grande chose (voir
figure 1.4).

Figure 1.4 : création de disques virtuels

Grâce à la virtualisation de stockage, il est possible de réallouer dynamiquement de l’espace de stockage.


Ainsi, un serveur nécessitant un espace de stockage supplémentaire pourra rechercher des ressources
non allouées sur le disque logique. Inversement, un serveur nécessitant moins d’espace de stockage
pourra libérer cet espace et le rendre disponible pour d’autres serveurs.

La virtualisation de stockage permet aussi :

• d’adjoindre un périphérique de stockage supplémentaire sans interruption des services ;


• de regrouper des unités de disques durs de différentes vitesses, de différentes tailles et de
différents constructeurs.

La virtualisation du stockage touche aussi les éléments de stockage dédié, comme les NAS ou SAN.
6
1.2.4 La virtualisation de serveurs

La virtualisation de serveurs est un principe permettant de faire fonctionner simultanément, sur un seul
serveur physique, plusieurs serveurs virtuels. Cette technique permet aux entreprises d’utiliser des
serveurs virtuels en lieu et place de serveurs physiques. Si cette virtualisation est faite au sein de la même
entreprise, le but est de mieux utiliser la capacité de chaque serveur par une mise en commun de leur
capacité.

Figure 1.5 : virtualisation de serveurs

La virtualisation de serveurs permet de :

• regrouper plusieurs serveurs physiques sous-employés sur un seul hôte qui exécute des
systèmes virtuels ;
• réduire la surface au sol, les équipements matériels, le besoin de climatisation et le nombre
d'administrateurs ;
• réaliser des économies (locaux, consommation électrique, personnel) ;
• réduire les délais de mise à disposition de nouveaux serveurs ;
• simplifier l’administration et la gestion ;
• améliorer le niveau de service et la disponibilité des applications ;
• simplifier la migration des applications sur de nouveaux serveurs ;
• mettre en place un PRA (plan de reprise d’activité).
• s’inscrire dans la démarche Green IT.

7
1.3 Avantages et inconvénients de la virtualisation

Les avantages de la virtualisation sont nombreux. Limiter le gaspillage de ressources, réduire les coûts,
Cependant, il y a quelques limites qu’il est important de passer en revue. En effet, plusieurs
environnements virtuels s’exécutent sur une unique machine physique. Si cette machine tombe en panne,
alors les services fournis par les environnements virtuels sont interrompus.

Par ailleurs, bien que la virtualisation soit implémentée sur des machines puissantes, elle peut réduire
les performances des applications. Suivant le type de virtualisation envisagé, cette perte de
performances peut ou non être significative.

1.4 Les 3 méthodes de virtualisation

1.3.1 L'isolateur

Un isolateur est installé dans un système d’exploitation existant. Il permet de cloisonner des applications
qu’on souhaite virtualiser dans des zones d’exécution mémoire différentes. Ces zones génèrent un
contexte propre à chaque application. L’isolation n’est pas une technique de virtualisation au sens propre
du terme. L’isolation permet d’obtenir des environnements qui semblent se comporter comme des VM,
mais qui partagent un même noyau. On parle ici de conteneur. Un conteneur fait tourner une distribution
sur une distribution.

Figure 1.5

1.3.2 L'émulateur

Dans l’émulation, la machine physique « hôte » héberge de multiples VMs en leur donnant accès à ses
ressources matérielles de façon optimale et selon des règles de partitionnement ajustables.

8
Figure 1.6

Avantages :

• facilité de mise en œuvre et d'utilisation ;


• très bonne compatibilité d'OS.

Inconvénients :

• mauvaises performances, matériel émulé.

1.3.3 L'hyperviseur

Un hyperviseur est un système d’exploitation particulier qui va héberger lui-même un ou plusieurs


systèmes d’exploitation. L’hyperviseur alloue aux machines virtuelles des ressources matérielles. Il
existe des hyperviseurs de type 1 et de type 2.

L'hyperviseur de type 1 (natif ou bare metal)

Figure 1.7

9
Exemples : VMware ESXI, Hyper-V, Proxmox VE, Open-VZ, XEN, KVM.

L’hyperviseur de type 2 (ou host-based)

Figure 1.8

Exemples : virtualbox, vmware workstation, QEMU, Microsoft Virtual PC.

1.4 Les différents types de virtualisation

1.4.1 La virtualisation complète

La virtualisation complète (full virtualization), dénommée ainsi par opposition à la paravirtualisation


consiste à émuler l’intégralité d’une machine physique pour le système invité. Le système invité « croit
» s’exécuter sur une véritable machine physique. Le système invité, ne dialoguent jamais directement
avec le matériel réel, mais avec l’émulateur. La caractéristique principale de la virtualisation complète
est que les systèmes invités n’ont pas à être modifiés pour être utilisés dans une machine virtuelle
utilisant une technologie de virtualisation.

Exemples : VirtualBox , Microsoft VirtualPC et Microsoft VirtualServer

Figure 1.9

10
1.4.2 La paravirtualisation

La paravirtualisation est très proche du concept de la virtualisation complète, dans le sens où c’est
toujours un système d’exploitation complet qui s’exécute sur le matériel émulé par une machine
virtuelle. La para-virtualisation évite d'utiliser un système hôte complet pour faire la virtualisation. Les
performances sont bien meilleures en para-virtualisation qu'en virtualisation complète.

Exemple : Xen , KVM , ESX/ESXi , Hyper-V

Figure 1.10

11
Chapitre 2 : virtualisation des réseaux : Ethernet et les VLAN
Objectifs spécifiques chapitre 2 :

• décrire le format d'une trame Ethernet 1 et 2 ;


• comprendre l'algorithme de réception d’une trame par une carte réseau et par un
commutateur ;
• comprendre le fonctionnement des commutateurs en termes de génération et de gestion
des tables de commutation ;
• comprendre l’importance des protocoles STP et VTP
• connaitre les différents modes d’utilisation des switches et routeurs ;
• ajouter des disques flash à un routeur et les formater ;
• se connecter sur un routeur ou sur un switch à partir d’un câble console ;
• activer la connexion à distance par Telnet sur un switch ou un routeur ;
• configurer un port du switch en port mirroring en vue d’y connecter un analyseur de
protocoles ;
• analyser des trames capturées par wireshark ;
• afficher les tables ARP des machines et des routeurs ;
• afficher la table de commutation des switches ;
• faire la différence entre le vlan de management et le vlan par défaut ;
• connaitre la notion du port et vlan de management ;
• faire la différence des modes de fonctionnement des switches : vtp client, vtp serveur et
vtp transparent
• configurer un domaine VTP en vue de propagation des vlans sur un réseau de switches
• créer des vlans et ajouter des interfaces des switches dans des vlans
• gérer un réseau de switch à partir d’un ordinateur de management
• faire du routage interVLAN sur plusieurs interfaces d’un routeur connectées sur des
ports en mode accès d’un switch
• faire du routage interVLAN avec les sous interfaces d’un routeur connecté à un port en
mode trunk sur un switch
• faire du routage interVLAN sur un Switch de niveau 3

12
2.1 Rappels sur les réseaux locaux

Un réseau local ou LAN (Local Area Network) est un réseau informatique géographiquement limité à
une entreprise, une administration ou à un utilisateur privé. Dans un réseau local les types de support de
transmission qui sont utilisés sont :

• paire torsadée ;
• fibre optique ;
• ondes radio.

Les données qui sont échangées par les machines dans un réseau local sont appelées trames. Le réseau
Ethernet partagé utilise une topologie physique et logique en bus. Donc, 2 stations émettant en même
temps peuvent voir leurs signaux se brouiller on parle de collision. Il faut remarquer que dans un LAN
classique toutes les machines peuvent communiquer sans routeur intermédiaire.

Pour pouvoir échanger des données dans un réseau local, il faut d’abord s’y connecter physiquement.
On ne peut parler de réseau sans une carte réseau qui permet de convertir les signaux venant de support
de transmission et allant vers un ordinateur ou qui convertit les signaux sortant de l’ordinateur et allant
vers le support de transmission.

Chaque périphérique réseau (carte Wifi ou Ethernet) est identifié de manière unique sur le réseau grâce
à un identifiant attribué par le fabricant appelé : adresse MAC. Une adresse MAC est codée sur 48 bits
(6 octets) et se compose de six groupes de deux caractères chacun, séparés par deux points.

On définit l’encapsulation comme l’insertion du message d’un protocole de niveau N dans le corps du
message d’un protocole de niveau N − 1. L’encapsultation est donc le processus de génération des
données à transporter au niveau d’un émetteur. Le processus inverse de de restitution des données utiles
au niveau du destinataire est appelé désencapsulation.

Figure 2.1 : Encapsulation

13
Les deux principales normes des réseaux locaux sont :

• la norme dite 802.3 ou Ethernet déployé dans les réseaux câbles ;


• la norme 802.11 dont le nom commercial est le WIFI pour Wireless Fidelity.

En général, le but de l'étude d'une norme de réseau est :

• d'étudier les équipements à utiliser pour déployer un réseau respectant cette norme ;
• d'étudier les supports de transmission utilisés par un réseau respectant cette norme ;
• d'étudier aussi les formats de données manipulées dans cette norme ;
• d'étudier les méthodes d'accès ou les règles d'accès aux supports de transmission.

Ethernet fonctionne au niveau de la couche 2 et 1 du modèle OSI. Les principaux équipements utilisés
sont le Hub et le Switch (commutateur). Les données échangées sur un réseau local sont organisées sous
forme de trames. Dans Ethernet partagé, le bus est partagé par toutes les stations. Donc, 2 stations
émettant en même temps peuvent voir leurs signaux se brouiller : on dit alors qu’il y a collision. (voir
figure 2.1). Deux stations connectées à un même Hub sont dites être dans le même domaine de collision.

Figure 2.2 : collision des données sur un support dans Ethernet partagé

Pour résoudre le problème, Ethernet partagé utilise la méthode d’accès au support de transmission
appelée CSMA/CD. Elle consiste à écouter tout d’abord la porteuse du signal pour savoir si les données
y circulent. Sinon, transmettre, mais mettre en place un mécanisme pour détecter la collision.

2.1.1 Le format des trames Ethernet 1 (trame IEEE 802.3) et Ethernet II

Il existe deux types de trames Ethernet. La trame Ethernet 1 (figure 2.2) encore appelée trame IEEE
802.3 et la trame Ethernet 2 (figure 2.3) qui est la plus utilisée aujourd’hui. Toutefois, les deux trames
peuvent cohabiter grâce au champ Long/Type.

14
Figure 2.3 : Trame IEEE 802.3

Figure 2.4 : Trame Ethernet 2

2.1.2 La méthode de réception d’une trame par une carte réseau dans Ethernet

La méthode de réception mise en œuvre par une interface Ethernet peut être décrite comme suit :

1. écouter sur le bus et attendre qu’une trame arrive


2. quand une trame est arrivée, on vérifie :
2.1 qu’elle a une longueur ≥ à 72 octets
si une trame a une longueur de moins de 72 octets, c’est qu’elle a subi une
collision
2.2 et qu’elle est correcte (reste de la division des champs de la trame par le polynôme
générateur = FCS)
(en cas de collision le brouillage garantit que la trame sera incorrecte)
3. si la trame est correcte on regarde ensuite son champ DA (Destination Adresse) :
3.1 si DA = l’adresse de l’interface Ethernet ou FF:FF:FF:FF:FF:FF alors on délivre le
champ de données à la couche supérieure (au système d’exploitation dans le cas d’un
paquet IP)
3.2 sinon, la trame n’est pas destinée à l’interface Ethernet et on l’ignore

Il est important de préciser qu'Ethernet a eu plusieurs évolutions au cours des années impactant
notamment le débit, le codage des signaux, le matériel utilisé (câbles coaxial jaune, hubs et switches),
15
les distances de câble autorisées, la méthode d’accès, l’acheminement (broadcast, multicas, unicast), etc.
Ethernet fonctionne selon deux modes très différents, mais totalement compatibles, le mode partagé et
le mode commuté.
Ethernet commuté a été mis en place pour résoudre les problèmes que pose Ethernet I. à savoir :
• ne traite qu’une seule trame ;
• bande passante partagée ;
• diffusion sur tous les ports ;
• mode half-duplex ;
• un seul domaine de collisions.

Avec Ethernet commuté, il n’y a plus de collision si bien que les switches fonctionnent par défaut en
mode full duplex. Mais la méthode CSMA/CD a été maintenue et peut-être activée sur certains switches
pour garder la compatibilité avec les équipements plus anciens comme les hubs qui fonctionnent en
mode half-duplex. La topologie physique reste en étoile, organisée autour d’un commutateur (switch).
Mais le commutateur utilise un mécanisme de filtrage et de commutation. La topologie logique est en
étoile.
Le switch inspecte les adresses de source et de destination des trames, dresse une table appelée table de
commutation lui permettant de savoir quelle machine (adresse MAC) est connectée sur quel port du
switch. La table de commutation se fait par auto-apprentissage.

2.1.3 Auto-construction d’une table de commutation par un switch

La table de commutation contient une liste d’enregistrements (adresse MAC, port).


1.Le switch reçoit une trame Ethernet
2.Il vérifie la validité de celle-ci grâce au FCS contenu en fin de trame, si elle est valide on passe
au n°3, sinon il la détruit.
3.Le switch analyse l’adresse MAC source de la trame.
3.1 Si elle n’est pas présente dans sa table de commutation, il rajoute une nouvelle entrée
en l’associant à l’interface par laquelle elle est entrée et lui attribue une durée de vie (300
secondes par défaut sur un switch Cisco)
3.2 Si elle est présente et associée à la même interface, le switch rafraîchit la durée de vie.
3.3 Si elle est présente mais associée à une autre interface, le switch crée une nouvelle
entrée comme s’il s’agissait d’une nouvelle adresse MAC et ensuite supprime l’ancienne entrée.
4.Le switch analyse l’adresse MAC destination.

16
4.1Si l’adresse MAC existe dans la table d’adresse MAC et associée à une interface dans
le même vlan que celle d’entrée, le switch propage la trame uniquement par cette interface.
4.2Si l’adresse MAC n’est pas présente dans la table d’adresse MAC, le switch propage
la trame par toutes les interfaces du même vlan sauf celle d’où elle provient.
4.3 Si l’adresse MAC est soit l’adresse broadcast soit une adresse multicast, le switch
propage la trame par toutes les interfaces du même vlan sauf celle d’où elle provient.
2.2 Le protocole STP

La redondance dans un réseau est importante pour garantir sa fiabilité et le rendre résistant aux pannes.
Ainsi, en cas de rupture d’un lien ou de défaillance d’un port, on passe par un autre lien pour transmettre
les trames. Cependant, cette redondance peut créer ce qu’on appelle une boucle dans le réseau. Une
trame peut ainsi circuler indéfiniment sur le réseau et créer des perturbations si cela n’est pas géré. Le
protocole STP (Spanning Tree Protocol) ou ou la norme IEEE 802.1D garantit l’unicité du chemin
logique entre toutes les destinations sur le réseau en procédant intentionnellement au blocage des
chemins redondants susceptibles d’entraîner la formation d’une boucle.

2.3 Les réseaux virtuels : VLAN

2.3.1 Importance des VLAN

Soit le réseau suivant avec S1 au premier étage de l’entreprise, S2 au deuxième étage, et S3 au troisième
étage.

Figure 2.5 importance des réseaux locaux virtuels

On suppose que M1, M2 et M3 appartiennent au même département (service vente). On suppose que M1,
M2 et M3 :

17
• s’échangent beaucoup de trames et en particulier des trames de diffusion et encombrent le
réseau ;
• s’échangent des données confidentielles que les autres machines ne doivent pas recevoir, même
si elles espionnent le trafic.

Il faut donc trouver une solution pour éviter que M1, M2 et M3 n’encombrent le réseau tout en
garantissant la confidentialité des données échangées entre ces trois machines.

Une première solution est de mettre M1, M2 et M3 sur un réseau séparé en faisant une segmentation des
réseaux au niveau 3 par un routeur (voir figure 2.6). Ainsi, le routeur fonctionnera comme une barrière
entre les deux réseaux si bien qu’il est impossible pour M4 de capturer une trame émise par M1, M2 ou
M3.

Figure 2.6 Segmentation des réseaux au niveau 3 par un routeur

Cette solution règle le problème, mais a les inconvénients suivants :

• il faut acheter des équipements supplémentaires (switchs, câbles, routeur, . . . ) ;


• il faut nécessairement regrouper géographique M1, M2 et M3.

La deuxième solution est de répartir les machines sur des réseaux locaux virtuels. En d’autres termes,
il s’agit d’une segmentation du réseau physique au niveau de la couche liaison de données. On peut
définir les réseaux locaux virtuels (VLANs) comme un moyen d’avoir plusieurs réseaux logiques sur
un seul réseau physique (voir figure 2.7). Dans l’exemple de la figure 2.7, le VLAN10 est attribué au
service VENTE et le VLAN20 au service INFORMATIQUE.

18
Figure 2.7 Segmentation d’un réseau physique au niveau liaison de données logiquement

Principe des réseaux locaux virtuels

▪ On a un ensemble de réseaux locaux virtuels (ou VLANs, Virtual LANs).


▪ Chaque VLAN a un identifiant.
▪ Une machine est rattachée à un VLAN.
▪ La décomposition en VLANs implique un découpage du réseau :
• une machine ne peut communiquer qu’avec les machines du même VLAN ;
• le découpage en VLANs au niveau des switch est à la charge de l’administrateur du
réseau ;
• ce découpage logique se superpose à l’organisation physique.

Les VLANs apportent donc une plus grande sécurité et une plus grande souplesse au niveau de
l’administration réseau. En général, les utilisateurs ayant les mêmes besoins et dépendant du même
service utilisent des machines appartenant au même VLAN.

2.3.2 Différents niveaux de VLAN : niveau 1, niveau 2, niveau 3

Pour une liaison standard, un switch doit associer le port correspondant à un VLAN. Il existe 3 niveaux
d’association.

Niveau 1 : VLAN par port (statique)

L’administrateur attribue à chaque port un VLAN. Une station raccordée à 1 port est automatiquement
affectée au VLAN du port.

Niveau 2 : VLAN par adresse MAC (dynamique)

19
L’administrateur associe dans une table un VLAN à chaque adresse MAC. Dès qu’une machine envoie
une trame au switch auquel elle est reliée, il consulte cette table et associe le VLAN au port de réception.
Si une machine est déplacée, la reconfiguration est automatique.

Niveau 3 : VLAN par adresse IP (dynamique)

Comme le niveau 2, mais sur l’adresse IP.

2.3.3 Etiquetage ou marquage des trames, liaison trunk et standard

La norme IEEE 802.1Q définit le fonctionnement des équipements nécessaires à la gestion des VLANs.
La principale difficulté pour gérer les VLANs est le manque d’informations sur les VLANs dans les
trames Ethernet.

➢ Trames étiquetées

Exemple : Soient les 2 VLANs de la figure 2.8.

• M1 envoie une trame de diffusion sur le VLAN 10


• S1 retransmet cette trame à S2

Comment S2 sait-il que la trame circule sur le VLAN 10 (et donc ne doit pas être retransmise à M6) ?

Figure 2.8

Pour résoudre ce problème, la solution qui a été choisie par la norme 802.1Q est de rajouter dans l’en-
tête Ethernet une étiquette qui donne des informations sur le VLAN. Ainsi, on distingue deux types
d’équipements (équipement vlan informé et non-informé). Les trames émises par les équipements
informés sont marquées (tagged). Celles émises par les équipements non-informés ne sont pas
marquées (untagged).
20
En présence de VLANs on distingue deux types de liaison : liaisons trunk et standard.

➢ Les liaisons trunk (trunk = tronc)

Ce sont les liaisons sur lesquelles circulent des trames étiquetées. On peut faire passer sur ces liaisons
des trames de différents VLANS. Ce sont généralement les liaisons switch↔switch. Mais, pas
seulement. Un routeur peut par exemple être connecté à un switch par une liaison trunk.

➢ Les liaisons standard (non trunk)

Ce sont les liaisons sur lesquelles circulent des trames Ethernet standard (sans étiquette). Les trames
circulant sur une liaison standard appartiennent toutes au même VLAN. Ce sont généralement les
liaisons switch↔machine.

2.4 Le protocole VTP

Le protocole VTP (VLAN Trunking Protocol) est un protocole propriétaire de CISCO qui permet de
configurer un commutateur pour qu’il propage des configurations VLAN à d’autres commutateurs du
réseau (au moyen d'annonces VTP).

Le protocole VTP (protocole de messagerie de couche 2) assure la cohérence de la configuration VLAN


en gérant l'ajout, la suppression et la modification des VLAN sur l'ensemble des commutateurs faisant
partie d'un domaine VTP. Le commutateur peut être configuré dans le rôle d’un serveur VTP, d’un client
VTP ou d'un commutateur transparent.

Les commutateurs transparents transmettent les annonces VTP aux clients et serveurs VTP, mais ne
participent pas au protocole VTP. Les réseaux locaux virtuels créés, renommés ou supprimés sur un
commutateur transparent sont uniquement associés à ce commutateur.

Figure 2.9 :
21
Le protocole VTP détecte uniquement les réseaux locaux virtuels de plage normale (ID de VLAN de 1
à 1005). Les réseaux locaux virtuels de plage étendue (ID supérieur à 1005) ne sont donc pas pris en
charge par le Protocole VTP. Il est conseillé de configurer deux serveurs VTP pour des raisons de
redondance. Le protocole VTP mémorise les configurations VLAN dans la base de données VLAN
appelée vlan.dat.

2.5 Travaux Pratiques (voir fiche de TD sur la plateforme)

TP1 : Prise en main des routeurs et switches


TP2: Principe de port mirroring/port forwarding et analyse de trames avec
wireshark
TP3 : analyse des requêtes ARP et table de commutation des switches
TP4 : Vlan et VTP
TP5 : Routage interVLAN avec plusieurs interfaces d’un routeur
TP6 : Routage interVLAN avec des sous-interface : notion d’encapsulation 802.1Q
TP7 : Routage interVLAN avec un switch de niveau 3
TP 8 : Transformer sa machine linux en commutateur ethernet
TP 9 : Protocole STP pour la gestion des boucles

22
Chapitre 3 : Protocoles d’accès à distance et étude de quelques
clients légers
3.1 SSH

Le protocole SSH (Secure Shell) permet la connexion à distance sécurisée d'un ordinateur à un autre. Il
couvre l’authentification, la confidentialité et l’intégrité des données. Il fonctionne en mode client-
serveur. C'est une alternative sécurisée aux protocoles de connexion non protégés (tels que telnet) et aux
méthodes de transfert de fichiers non sécurisées (telles que FTP).

Il est possible d’établir une connexion automatique vers une autre machine sans saisir de mot de passe.
Pour cela, il est nécessaire depuis le compte utilisateur du client (la machine qui va se connecter) de
générer une paire de clés, privée et publique. Aucune passphrase ne doit être saisie. On utilise SSH avec
les logiciels OpenSSH, Putty, Filezilla, etc.

3.2 VNC

VNC (Virtual Network Computing) est un protocole inventé par RealVNC qui permet la prise de
contrôle à distance sécurisée d’un appareil (serveur) par un autre (client) via un réseau local, un VPN ou
Internet. Il est basé sur l'architecture client/serveur et utilise le protocole RFB (Remote Frame-Buffer)
pour transmettre les données de pixels en temps réel. Pour fonctionner, il est nécessaire d’installer le
Serveur VNC sur la machine dont on va prendre le contrôle, et le client VNC sur la machine devant
accéder au serveur. Le serveur VNC capture tout comportement graphique en provenance de la machine
et l’envoie vers le client. Inversement, le client capture les actions de l’utilisateur sur la fenêtre affichant
l’interface et les envoie au serveur afin d’être exécutées par le système du serveur. Avec le protocole
VNC, il est donc possible de faire à distance tout ce qu’on pourrait faire devant l’ordinateur avec son
clavier et sa souris. La seule exception est qu’on ne peut pas entendre le son de l’ordinateur distant pour
l’instant.

NB : Il existe une applet Java qui permet de se connecter à un serveur VNC depuis tout navigateur
Web : noVNC. C’est donc un client VNC utilisant le HTML5 et compatible avec la plupart des
navigateurs modernes y compris sur les terminaux mobiles.

On utilise VNC avec les logiciels Vinagre, UltraVNC, TightVNC, VNC Server, VNC Viewer, noVNC,
etc.

23
3.3 Protocole RDP et ses variantes

Le protocole RDP (Remote Desktop Protocol est un protocole propre à Microsoft qui permet à un client
(Remote Desktop Client) de se connecter à distance sur un serveur exécutant les services Bureau à
distance (Remote Desktop Server). Contrairement au protocole VNC, le protocole RDP prend en charge
le son. En d’autres termes, les utilisateurs peuvent écouter sur l'ordinateur local le son produit par un
programme exécuté sur l'ordinateur distant.

Il existe des variantes de RDP développées pour d’autres plateformes, mais parfaitement compatible
avec le protocole RDP. On peut citer entre autres le VRDP de virtualbox et le XRDP pour les
environnements Linux.

3.4 Protocole SPICE

SPICE (Simple Protocol for Independent Computing Environments) est un protocole OpenSource de
communication dédié aux environnements virtuels. Spice utilise un modèle client-serveur (voir figure
3.1). Les outils de virtualisation QEMU-KVM permettent de fournir un service SPICE.

Figure 3.1 : architecture de spice

Le protocole spice est multi-plateforme (Windows, Linux) et prend en charge les flux audio, vidéo et
la gestion de tous les périphériques (clavier, souris, etc…). On utilise spice avec virt-viewer, Xspice,
spice server, etc.

24
Il existe un module Spice-HTML5 qui permet de se connecter à un serveur spice en utilisant un
navigateur.

3.5 Travaux Pratiques (voir fiche de TP sur la plateforme)

TP 1 : SSH

TP 2 : VNC

TP 3 : RDP et ses variantes

TP 4 : SPICE

TP 5 : Client léger : gestion des périphériques

25
Chapitre 4 : Etude de quelques plateformes de virtualisation
4.1 Les plateformes de virtualisation

4.1.1 QEMU-KVM

KVM (Kernel-based Virtual Machine) est une solution de virtualisation complète open source intégrée
au sein du noyau Linux depuis la version 2.6.20. KVM est un projet issu de QEMU dont il utilise une
version modifiée. Les développements sont très actifs et KVM est maintenant considéré comme un
hyperviseur. Même si on fait souvent référence à l'hyperviseur KVM, il s'agit en réalité d'une
combinaison QEMU-KVM. KVM permet de faire fonctionner de nombreux systèmes invités :

• toutes les versions de Windows à partir de Windows 2000 ;


• toutes les distributions Linux.

Pour utiliser KVM, la machine doit être pourvue d’un processeur compatible. La majorité des
processeurs Intel et AMD récents sont compatibles avec KVM.

4.1.2 XEN

Xen est un hyperviseur de machines virtuelles, développé par la communauté Open Source, permettant
de faire fonctionner plusieurs systèmes d’exploitation virtuels sur une même machine hôte. La société
XenSource qui a contribué largement à Xen, a été rachetée par Citrix en 2007. XenServer est un produit
dit de paravirtualisation

4.1.3 Proxmox

Proxmox est une puissante plate-forme de virtualisation open-source basée sur QEMU/KVM et LXC
pour les conteneurs avec une seule interface web.

4.1.4 Hyper-V

Hyper-V est la plateforme de virtualisation Microsoft qui permet de créer des infrastructures virtuelles
sous Windows ou / et Linux. Hyper-V permet de faire cohabiter de manière isolée plusieurs systèmes
d’exploitation sur une même machine physique (Hyperviseur).

Autrement dit, il permet une consolidation de serveurs afin de profiter au maximum de leurs ressources
matérielles.

26
4.2 Les outils de gestion des plateformes de virtualisation

4.2.1 API libvirt

Libvirt est une boîte à outils pour gérer les plateformes de virtualisation. Il propose un service (libvirtd),
un ensemble d’utilitaires comme virtmanager, virtinstall, virtviewer et surtout un shell interactif dédié à
la gestion des machines virtuelles : virsh. Libvirt se connecte à l’hyperviseur local et peut ainsi être
utilisée soit en local, soit à distance via SSH. L’API libvirt se place donc comme une interface entre le
ou les hyperviseurs et le matériel. Libvirt supporte entre autres KVM, QEMU, Xen, Virtuozzo, VMWare
ESX, LXC. Il est également utilisé par de nombreuses applications y compris openstack, archipell, etc.

4.2.2 Virt-manager

Écrite en langage Python, l’interface Virt-manager est un outil d’administration graphique permet
d’effectuer quasiment toute la gestion des machines virtuelles sur un poste local, mais également entre
plusieurs hyperviseurs. Virt-manager est capable de se connecter sur tout serveur faisant tourner le
service libvirtd. Il est donc possible d’utiliser cette interface sur un poste et de piloter ainsi plusieurs
hôtes de virtualisation. Cette fonctionnalité permet d’utiliser un poste client doté d’une distribution
Linux orientée bureau et de se connecter à des serveurs distants via SSH.

4.2.3 Kimchi

Kimchi est un outil léger et facile à installer offrant une interface graphique basée sur le Web pour la
gestion des machines virtuelles KVM. Kimchi gère les machines virtuelles KVM via l’API libvirt.
L'interface de gestion est accessible sur le Web à l'aide d'un navigateur qui prend en charge le HTML5.

Figure 4.1

27
4.3 Travaux Pratiques (voir sur la plateforme fiche de TD)

TP 1 : QUEMU-KVM

TP 2 KIMCHI

28
Chapitre 5 : La conteneurisation
5.1 Définition

Dans une architecture à base de conteneurs (voir figure 1.5), le contenu du conteneur, c’est-à-dire le
code et ses dépendances (jusqu’au niveau de l’OS), est de la responsabilité du développeur. Le conteneur
offre l’isolation permettant à un développeur d’embarquer l’ensemble des dépendances logicielles dont
il a besoin (y compris les dépendances de niveau OS). De plus, un conteneur s’appuie sur le noyau
(kernel) du système d’exploitation hôte. Il est donc très léger et démarre presque aussi vite que le
processus qu’il encapsule. Le nombre de conteneurs qu’un même hôte peut exécuter est donc nettement
plus élevé que son équivalent en machines virtuelles.

Figure 5.1 architecture à base de conteneurs

Les termes « cgroups » et « namespaces » font référence à des extensions du noyau Linux qui rendent
possible la réalisation de conteneurs « isolés » les uns des autres.

CGroups (pour Control Groups) permet de partitionner les ressources d’un hôte (processeur, mémoire,
accès au réseau ou à d’autres terminaux). L’objectif est de contrôler la consommation de ces ressources
par processus.

Les Namespaces sont indépendants de CGroups, mais fonctionnent de concert. Ils permettent de faire
en sorte que des processus ne voient pas les ressources utilisées par d’autres. Si CGroups gère la
distribution des ressources, Namespaces apporte l’isolation nécessaire à la création de conteneurs.

En résumé, un conteneur est tout simplement un système de fichiers sur lequel s’exécutent des processus
(de préférence un par conteneur) de manière :
29
- contrainte : grâce à CGroups qui spécifie les limites en termes de ressources ;

isolée : grâce notamment à Namespaces qui fait en sorte que les conteneurs ne se voient pas les uns les
autres.

5.2 Différences entre la virtualisation matérielle et la conteneurisation

Étudions l’empilement des couches dans le cas du déploiement de trois logiciels sur un même hôte (host)
sans machine virtuelle ou conteneur.

Figure 5.2 Installation native de trois logiciels sur un même hôte

Dans ce type d’installation, on imagine que plusieurs situations problématiques peuvent survenir :

- les différents logiciels peuvent interagir entre eux s’ils n’ont pas été conçus par le même éditeur. Ils
pourraient, par exemple, nécessiter des packages (bibliothèques, extensions) ou des versions de système
d’exploitation différentes. Ils peuvent aussi ouvrir des ports réseaux identiques, accéder aux mêmes
chemins sur le système de fichiers ou encore entrer en concurrence pour les ressources I/O ou CPU ;

- toute mise à jour de l’OS hôte va nécessairement impacter tous les logiciels qui tournent dessus
;
- chaque mise à jour d’un logiciel pourrait entraîner des impacts sur les autres.

L’expérience montre que l’exécution, sur le même système, de logiciels fournis par des éditeurs
différents qui n’auraient pas testé cette cohabitation est très souvent problématique. La virtualisation
matérielle offre une réponse appropriée à ces problèmes de cohabitation sans aucun doute. Pour mieux
comprendre les limites de celle-ci et cerner l’importance des conteneurs, étudions à présent, le
déploiement de trois machines virtuelles sur le même hôte.

30
Figure 5.3 Virtualisation matérielle : trois machines virtuelles sur le même hôte

Dans les faits, comme nous le voyons sur la figure 5.2, cette virtualisation matérielle offre un niveau
d’isolation élevé. Chaque logiciel se trouve dans son bac à sable (sandbox en anglais). Les problèmes
évoqués précédemment sont donc résolus, mais d’autres apparaissent :

- le poids d’une machine virtuelle est tout d’abord très important. Une machine virtuelle est une
machine et, même avec un système d’exploitation minimal, un système d’exploitation moderne
consommera difficilement moins de quelques Go de mémoire. La distribution de ce type de package
demandera une bande passante réseau conséquente ;

- la machine virtuelle embarque trop d’éléments. Elle ne laisse pas le choix à l’exploitant (selon la
manière dont elle aura été configurée) de choisir librement ses caractéristiques, comme le type de
stockage, le nombre de CPU utilisés, la configuration réseau. Évidemment, les solutions de gestion
d’environnements virtualisés (par exemple, vCenter de VMWare) offrent des solutions, mais celles-ci
ont presque toujours des impacts sur le logiciel. Ce dernier ne peut pas être conçu sans savoir comment
il va être exécuté.

L’architecture qui offre le bon compromis est celle à base de conteneurs.

Une architecture à base de conteneurs offre une solution de compromis. Comme cela a été dit plus haut,
le conteneur offre l’isolation permettant à un développeur d’embarquer l’ensemble des dépendances
logicielles dont il a besoin (y compris les dépendances de niveau OS). De plus, un conteneur s’appuie
sur le noyau (kernel) du système d’exploitation hôte. Il est donc très léger et démarre presque aussi vite

31
que le processus qu’il encapsule. Le nombre de conteneurs qu’un même hôte peut exécuter est donc
nettement plus élevé que son équivalent en machines virtuelles.

5.3 LXC et LXD

LXC, contraction de l’anglais Linux Containers est un système de virtualisation, utilisant l'isolation comme
méthode de cloisonnement au niveau du système d'exploitation. Il est utilisé pour faire fonctionner des
environnements Linux isolés les uns des autres dans des conteneurs partageant le même noyau et une plus
ou moins grande partie du système hôte. Le conteneur apporte une virtualisation de l'environnement
d'exécution (processeur, mémoire vive, réseau, système de fichier…) et non pas de la machine. Pour cette
raison, on parle de « conteneur » et non de « machine virtuelle ».

5.4 Docker

Docker est une solution open source de conteneurs Linux qui s’appuie elle-même sur d’autres
composants eux aussi ouverts. Ces briques de base sont en fait communes à tous les types de conteneurs
Linux. Initialement, Docker utilisait notamment LXC (Linux Containers) comme implémentation (on
parle de driver), mais a ensuite développé sa propre bibliothèque de bas niveau nommée libcontainer
pour enfin migrer vers runC, le standard de l’OCI (Open Container Initiative). Ce composant encapsule
les fonctionnalités fondamentales, proches du noyau du système d’exploitation, dont la combinaison
permet la virtualisation de niveau OS. Aujourd’hui le moteur Docker est construit au-dessus de
containerd qui lui-même intègre runC. Pas d’inquiétude néanmoins, la maîtrise de cet empilement de
projets et de composants n’est pas fondamentalement utile pour tirer parti de Docker.

5.5 Travaux Pratiques (voir fiche de TD sur la plateforme)

TP 1 : Administration de LXD

TP 2 : Administration de Docker (docker et gns3)

32

Vous aimerez peut-être aussi