Vous êtes sur la page 1sur 9

M204 : Découvrir les enjeux de la technologie SDN

Les limites des réseaux traditionnels

1. Évolutivité limitée : Les réseaux traditionnels peuvent avoir des difficultés à s'adapter à des changements
imprévus, tels qu'une augmentation du trafic réseau ou une demande croissante de nouvelles fonctionnalités.
2. Complexité de la configuration : La configuration des réseaux traditionnels peut être très complexe et
nécessite une expertise technique importante pour être correctement mise en place et maintenue.
3. Sécurité insuffisante : Les réseaux traditionnels peuvent être vulnérables aux attaques, car ils ne peuvent pas
résister à des menaces de sécurité avancées telles que les attaques par déni de service distribué (DDoS) ou les
attaques de phishing.
4. Coût élevé : Les réseaux traditionnels peuvent être coûteux à mettre en place et à maintenir, en particulier
pour les entreprises qui ont besoin de fonctionnalités avancées telles que la redondance et la haute
disponibilité.
5. Limitations géographiques : Les réseaux traditionnels peuvent être limités géographiquement, ce qui
signifie que les entreprises qui ont des bureaux dans différentes régions du monde peuvent rencontrer des
problèmes de connectivité.
6. Incompatibilité avec les nouvelles technologies : Les réseaux traditionnels ne peuvent pas prendre en
charge les nouvelles technologies telles que l'Internet des objets (IoT) et la virtualisation, ce qui peut entraîner
des problèmes de performances et de compatibilité.
Cloud computing et virtualisation

Cloud computing et virtualisation sont deux technologies étroitement liées et souvent utilisées ensemble pour
offrir des solutions d'infrastructure informatique flexibles et évolutives.
La virtualisation : est la technologie qui permet de créer des machines virtuelles (VM) ou des environnements
isolés à partir d'un seul serveur physique. Les VM sont des systèmes d'exploitation et des applications qui
fonctionnent de manière autonome, comme s'ils étaient installés sur une machine physique distincte. La
virtualisation permet donc de maximiser l'utilisation des ressources informatiques et de réduire les coûts en
évitant l'achat de matériel supplémentaire.

Le cloud computing : est une méthode pour fournir des ressources informatiques à la demande via Internet.
Les utilisateurs peuvent accéder à des ressources informatiques, telles que des serveurs, des applications, du
stockage de données, etc., à partir d'un fournisseur de services en ligne plutôt que de les posséder et de les
gérer localement. Les fournisseurs de services de cloud computing utilisent souvent la virtualisation pour offrir
ces ressources, car elle permet de créer des environnements isolés pour chaque utilisateur.
En résumé, la virtualisation est une technologie qui permet de maximiser l'utilisation des ressources
informatiques locales, tandis que le cloud computing permet d'accéder à des ressources informatiques à
la demande à partir de fournisseurs de services en ligne. La virtualisation est souvent utilisée dans le
cloud computing pour créer des environnements isolés pour chaque utilisateur.
Services cloud
Les services cloud, également connus sous le nom de services de cloud computing, sont des services
informatiques hébergés sur des serveurs distants et accessibles via Internet. Voici quelques exemples de services
cloud courants :
1. Infrastructure as a Service (IaaS) : Ce modèle permet aux utilisateurs d'accéder à des applications via
Internet sans avoir à les installer localement sur leur ordinateur.
2. Platform as a Service (PaaS) : Ce modèle fournit une plateforme de développement qui permet aux
développeurs de créer, tester et déployer des applications via Internet.
3. Software as a Service (SaaS) : Ce modèle fournit une infrastructure informatique (serveurs, stockage, réseau,
etc.) via Internet. Les utilisateurs peuvent déployer leurs propres applications et gérer leur propre
environnement informatique.
Modèles de cloud
Les quatre principaux modèles cloud sont les suivants:
Clouds publics - Des applications et des services basés sur le cloud accessible par le grand public.
Clouds privés - Des applications et des services basés sur le cloud sont destinés à une entreprise ou à une
entité spécifique, par exemple une administration.
Clouds hybrides - Un cloud hybride est constitué de deux ou plusieurs nuages (exemple : partie privée, partie
publique), où chaque partie reste un objet distinct, mais où les deux sont reliés par une architecture unique.
Clouds communautaires - L'infrastructure cloud est déployée à l'usage exclusif d'une communauté, d'un
ensemble d'entreprises ou d'organisation ayant des intérêts communs. Cette infrastructure peut être gérée par
un tiers, une ou plusieurs entreprises/organisations de la communauté.
Cloud et centre de données
Un centre de données, (data center) est une installation physique où des entreprises ou des organisations
stockent, traitent et gèrent des données numériques. Ces centres sont souvent utilisés pour stocker des données
importantes, telles que des informations financières, des fichiers de données clients ou des archives numériques.
Les centres de données sont équipés de serveurs, de systèmes de stockage de données, de logiciels de
gestion de données, de systèmes de refroidissement et de sécurités pour protéger les données stockées. Ils
peuvent être gérés par l'entreprise elle-même ou externalisés à des fournisseurs de services de centre de
données.
Cloud ?
Le cloud, ou nuage en français, est un terme utilisé pour décrire l'utilisation de ressources informatiques à
distance, accessibles via internet, plutôt que d'utiliser des ressources locales.

Le cloud permet aux entreprises et aux individus d'accéder à des ressources informatiques à la demande, sans
avoir besoin d'investir dans des infrastructures et des équipements coûteux.

Le cloud est devenu de plus en plus populaire en raison de ses avantages en matière de coût, de flexibilité et de
facilité d'accès aux ressources informatiques. Il est utilisé dans de nombreux secteurs, tels que les services
financiers, la santé, les médias, l'éducation et les services gouvernementaux.
Avantages de la virtualisation
La virtualisation est une technique qui permet de créer des machines virtuelles (VM) qui fonctionnent comme
des ordinateurs autonomes sur un seul serveur physique. Utilisation efficace des ressources : La virtualisation
permet d'utiliser plus efficacement les ressources matérielles, car plusieurs machines virtuelles peuvent
fonctionner sur un seul serveur physique.

1. Flexibilité : Les machines virtuelles peuvent être créées, modifiées et supprimées rapidement et facilement. Il
est également possible de déplacer les machines virtuelles entre différents serveurs physiques, ce qui permet
de réaliser des opérations de maintenance sans interruption de service.
2. Réduction des coûts : La virtualisation permet de réduire les coûts d'acquisition et de maintenance du
matériel informatique en permettant de consolider plusieurs machines physiques sur un seul serveur.
3. Sécurité : La virtualisation permet de renforcer la sécurité des données en isolant les machines virtuelles les
unes des autres. En cas de violation de sécurité sur l'une des machines virtuelles, les autres machines
virtuelles ne sont pas affectées.
4. Gestion simplifiée : La virtualisation permet de gérer l'ensemble des machines virtuelles à partir d'une seule
console de gestion, ce qui simplifie considérablement la gestion des infrastructures informatiques.
5. Évolutivité : La virtualisation permet d'ajouter facilement des ressources supplémentaires à une machine
virtuelle, ce qui permet de faire évoluer rapidement les infrastructures informatiques en fonction des besoins
de l'entreprise.
6. Test et développement : La virtualisation permet de créer rapidement des environnements de test et de
développement pour les logiciels, ce qui permet de réduire les coûts et les délais de développement.
Couches d'abstraction
Un système informatique se compose des couches d'abstraction suivantes : services, système d'exploitation,
micrologiciels et matériel.
• À chaque couche d'abstraction, un code de programmation sert d'interface entre les couches inférieures et
supérieures.
• Un hyperviseur est installé entre le firmware et le système d'exploitation. L'hyperviseur peut prendre en charge
plusieurs instances de système d'exploitation.
Concepts de virtualisation

Infrastructure As a Code
Présenter la IAC et API
La IAC (Interface d'Administration et de Contrôle) et l'API (Interface de Programmation d'Applications)
sont des éléments clés des réseaux SDN (Software-Defined Networks).

L'IAC est une interface qui permet aux administrateurs réseau de contrôler et de surveiller les réseaux SDN. Elle
fournit une vue d'ensemble du réseau et permet aux administrateurs de définir les politiques de sécurité, les flux
de trafic et les règles de routage.

L'API est une interface de programmation qui permet aux développeurs de créer des applications pour contrôler
les réseaux SDN. Elle permet aux développeurs de créer des applications personnalisées qui peuvent interagir
avec le réseau SDN pour contrôler le trafic, surveiller l'état du réseau et effectuer des tâches administratives.
L'API est également utilisée pour intégrer des outils tiers dans le réseau SDN.

Exemples de la IAC et API des réseaux SDN


IAC :
• OpenDaylight : une plateforme de contrôle réseau open source qui fournit une IAC pour la gestion de réseau
SDN.
• Cisco APIC : une plateforme de contrôle de réseau SDN qui fournit une IAC pour la configuration et la gestion
de l'infrastructure de réseau.
API :
• OpenFlow : une API standard pour les réseaux SDN qui permet aux développeurs de contrôler le trafic du
réseau en utilisant des instructions de flux.
• RESTCONF : une API basée sur REST (Representational State Transfer) pour les réseaux SDN qui permet aux
développeurs de contrôler les réseaux à distance en utilisant des requêtes HTTP.
• NETCONF : une API XML basée sur les normes pour les réseaux SDN qui permet aux développeurs de
configurer et de gérer les réseaux à distance en utilisant des messages XML.
Format de données (JSON, YAML, XML)

• Notation d'objet JavaScript (JSON)


• Langage de balisage extensible (XML) (Extensible Markup Language)
• YAML n'est pas un langage de balisage (YAML)

Présentation de la technologie SDN

❖ SDN (Software-Defined Networking) est une nouvelle architecture de réseau qui comprenait différentes
technologies de réseau pour construire des réseaux flexibles, évolutifs, agiles et faciles à gérer.
❖ SDN découple le réseau en deux plans en tant que plan de contrôle et plan de données. Cela fournit un
contrôle central du réseau et une meilleure expérience de transfert.
❖ SDN apporte une capacité de programmabilité aux réseaux.

Terminologie SDN

SDN : Réseau défini par logiciel. C'est un nouveau réseau architecture qui comprenait différentes technologies de réseau
pour construire des réseaux flexibles, évolutifs, agiles et faciles à gérer. SDN fait ce travail en séparant les plans de
contrôle et de transfert:
Plan de transfert : La couche inférieure du SDN qui est pleine de périphériques de transfert physiques ou virtuels. Plan de
données.
Plan de contrôle : La couche intermédiaire du SDN qui comprend le système d'exploitation réseau et le contrôleur SDN.
Plan d'application : la couche supérieure du SDN qui comprend les applications.
Interface vers le sud : L'interface entre le contrôleur et les périphériques de transmission du plan de données.
Northbound Interface : L'interface entre le contrôleur et le plan d'application.
API : Interface Programmable d'Application. Fournit une interaction entre les systèmes et les logiciels.
Commutateur de transfert : commutateur de transfert SDN utilisé dans le plan de données
Contrôleur : Le mécanisme de contrôle central du réseau SDN qui contrôle le plan de transfert.
NFV : Virtualisation des Fonctions Réseaux. Virtualisation des différents équipements réseau physiques qualifiés avec
leurs homologues
Flow : Séquence de paquet entre la source et la destination
Règles de flux : actions définies pour le flux

Le SDN et le réseautage traditionnel

Le plan de contrôle et le plan de données sont intégrés verticalement dans les équipements réseau traditionnels.
Contrairement dans un réseau SDN les deux plans sont séparés. Ce découplage des plans de contrôle et de données
fournira une gestion centralisée. Avec SDN, la gestion plus efficace et flexible du réseau, la transmission sera également
très efficace.

Le SDN vs NFV

Le SDN est une approche pour la conception, la gestion et l'optimisation des réseaux informatiques. Dans un réseau SDN,
la logique de contrôle du réseau est séparée du matériel de réseau. Cela permet aux administrateurs réseau de gérer le
réseau de manière centralisée, via une interface de programmation, plutôt que de configurer chaque équipement de
manière indépendante.

la technologie NFV est une approche qui consiste à virtualiser les fonctions réseau (telles que les pare-feu, les routeurs
et les commutateurs) pour les exécuter sur des serveurs standards plutôt que sur des équipements dédiés. Le but du NFV
est de simplifier la gestion des fonctions réseau en les virtualisant et en les consolidant sur une infrastructure commune.

La principale différence entre le SDN et le NFV réside dans leur approche. Le SDN se concentre sur la séparation de la
logique de contrôle du réseau et du matériel, tandis que le NFV se concentre sur la virtualisation des fonctions réseau.
Toutefois, ces deux approches sont souvent utilisées ensemble pour offrir une plus grande flexibilité et une gestion plus
efficace des réseaux informatiques.
Etudier le protocole et les contrôleurs OpenFlow
Présentation du protocole OpenFlow

OpenFlow est un protocole de communication utilisé dans les réseaux définis par logiciel (SDN) pour gérer le flux de
données entre les commutateurs de réseau et les contrôleurs SDN. Il permet aux contrôleurs de réseau d'avoir un
contrôle centralisé sur la gestion des flux de données dans le réseau en utilisant des commutateurs de réseau
compatibles avec OpenFlow.

Les commutateurs envoient des messages OpenFlow au contrôleur pour signaler les événements qui se produisent dans
le réseau, tels que l'ajout d'un nouvel hôte ou la modification de la topologie du réseau.

Le contrôleur SDN utilise ces messages pour programmer les tables de flux dans les commutateurs de réseau pour diriger
le trafic vers la destination souhaitée. Les tables de flux sont des règles de traitement de paquets configurées dans les
commutateurs pour contrôler le flux de données dans le réseau.

Exemples des contrôleurs SDN :


1. OpenDaylight: il s'agit d'un contrôleur SDN open source et modulaire qui prend en charge plusieurs protocoles SDN,
notamment OpenFlow et NETCONF.
2. ONOS: un autre contrôleur SDN open source et hautement évolutif, ONOS prend également en charge plusieurs
protocoles SDN, notamment OpenFlow et P4.
3. Ryu: un contrôleur SDN open source écrit en Python, Ryu prend en charge OpenFlow et est largement utilisé pour les
applications de réseau programmable.
4. Floodlight: un autre contrôleur SDN open source qui prend en charge OpenFlow et qui est utilisé pour la mise en
œuvre de réseaux programmables.
5. POX: un contrôleur SDN open source écrit en Python qui prend en charge OpenFlow et est souvent utilisé pour
l'éducation et la recherche dans le domaine de la programmation réseau.

Assurer la sécurité des réseaux SDN

Disponibilité OpenFlow : (Fast Failure Recovery)

OpenFlow prend en charge la récupération rapide en cas de défaillance (Fast Failure Recovery) pour minimiser
les perturbations du réseau en cas de perte de connectivité. Cette fonctionnalité permet aux commutateurs de
détecter rapidement les défaillances des liaisons et de rétablir le trafic sur des chemins alternatifs.

L’interface Northbound : L'interface Northbound (NBI) est une interface de programmation de haut niveau
utilisée pour interagir avec les fonctionnalités de contrôle de réseau SDN via des applications.

L’interface Southbound : L'interface Southbound (SBI) est l'interface de communication entre les contrôleurs
SDN et les équipements de réseau sous-jacents tels que les commutateurs et les routeurs.

Sécurité des interfaces INB et ISB : quelques mesures de sécurité pour protéger l'interface INB et ISB :

1. Authentification : Les équipements réseau doivent être authentifiés avant de pouvoir communiquer avec les
contrôleurs SDN. Cela peut être réalisé en utilisant des mécanismes d'authentification tels que les certificats,
les mots de passe, les jetons d'authentification, etc.
2. Autorisation : Les équipements réseau doivent être autorisés pour communiquer avec des contrôleurs
spécifiques SDN. Cela peut être réalisé en utilisant des mécanismes d'autorisation basés sur les rôles.
3. Chiffrement : Les communications entre les équipements réseau et les contrôleurs SDN doivent être chiffrées
pour protéger les données sensibles.
4. Surveillance : Les activités de l'interface SBI doivent être surveillées pour détecter toute activité suspecte.
5. Filtrage des entrées : Les entrées des équipements réseau doivent être filtrées pour éviter les attaques
d'injection de code et d'autres types d'attaques.
6. Contrôle d'accès : Les contrôleurs SDN doivent limiter l'accès des équipements réseau à certaines ressources
sensibles.

TRAVAUX PRATIQUES

1- Télécharger Virtualbox : https://www.virtualbox.org/wiki/Downloads


2- Mise en place de l’environnement de travail
1. Tout d’abord, télécharger l’image Mininet version 2.3.0 et décompressez- le
• https://github.com/mininet/mininet/releases/ Pour se connecter à l’interface Mininet, utiliser le couple login /
mot de passe : mininet/mininet
3. Créez une nouvelle Machine Virtuelle avec VirtualBox, que vous pouvez appeler, par exemple, Mininet.
Indiquez comme type d’OS Linux et en version, choisissez Ubuntu 64 bits.
4. On lance une connexion SSH de la machine ubuntu-VM via Terminal pour se connecter à la VM Mininet en
entrant le login et le mot de passe

Ubunto-virtualbox $ ssh –x Mininet @ adresse_IP_mininet

Mininet fournit une interface en ligne de commande qui peut être utilisée pour voir l'état du réseau et faire des
tests dessus.
mininet> nodes → Affiche les nœuds dans le réseau. h correspond à un host, s a un switch et c a un contrôleur.

mininet> net → Affiche la topologie du réseau. Quelle machine est connectée à quel host et le nom de l'interface
réseau de connexion.

mininet> dump → Affiche les adresses IP de chaque machine ainsi que le nom de la carte réseau.

mininet> h1 ping h2 → Demande à l'hôte h1 d'effectuer un ping sur l'hôte h2.

mininet> h1 ifconfig -a → Effectue et affiche les résultats de la commande ifconfig sur la machine souhaitée.

mininet> pingall → Permet de tester la connectivité du réseau. Toutes les machines vont se ping entre elles.

mininet> link s1 h1 down → Enlève le lien réseau entre s1 et h1.

mininet> link s1 h1 up → Remet le lien réseau entre s1 et h1.

mininet> xterm h1 → Ouvre une fenêtre en ligne de commande sur l'hôte h1.

Installer le Contrôleur ODL

OpenDaylight (ODL) est une plate-forme collaborative et open source pour accélérer l’adoption et l’innovation
de la mise en réseau logiciel (SDN) et de la visualisation des fonctions réseaux (NFV). ODL est un logiciel basé
sur Java et pris en charge par l’industrie, géré par le consortium Linux Foundation avec près de 50 entreprises
membres, dont Brocade, Cisco, Citrix, Dell, Ericsson, HP, IBM, Juniper, Microsoft et Red Hat. La mission
d’ODL est de créer une communauté collaborative qui partage et contribue au succès et à l’adoption du SDN.

OpenDaylight est écrit en Java. La version fixe est karaf. Pour lancer le contrôleur, il suffit de se déplacer dans le
répertoire karaf et de taper : sudo . /bin/karaf

Simuler un réseau LAN

Pour construire notre réseau, vous pouvez utiliser la commande suivante pour lancer ceci :

$ sudo mn --topo linear,2 --mac --controller=remote,ip=192.168.56.107,port=6633 --switch


ovs,protocols=OpenFlow13

2.3.1. La ligne de commande Mininet :


Grâce à la commande mn et la multitude d’options offertes par l’émulateur, il est possible de
réaliser maintes formes de topologies et de réseaux virtuels :

- L’option -- topo permet de créer 3 types de topologies de base : tree (Arbre), linear (linéaire)
et single (topologie centralisée d’un seul switch).

- Pour connecter notre topologie à un contrôleur l’option adéquate est -- Controller, dans
l’exemple d’un contrôleur distant on ajoute =remote,ip=192.168.1.10 .

- D’autres options sont disponibles sur Mininet pour n’en citer que certaines : -- switch offre la
possibilité de choisir le modèle de switch parmi ceux supportés par l’émulateur, et --mac qui
simplifie l’adresse mac des nœuds réseau en les faisant correspondre à leur identifiant
(exemple :HWaddr 00 :00 :00 :00 :00 :01 ). L’option –x ouvre un terminal xterm pour chaque
élément du réseau généré, et -- link tc pour pouvoir personnaliser la bande passante et la
latence des liaisons. Chapitre 2 : Design et implémentation d’une solution SD

Vous aimerez peut-être aussi