SÉANCE 11 OPENFLOW - Programmabilité des Réseaux - 2024-2025 PDF

Document Details

Uploaded by Deleted User

Université Moulay Ismaïl

2024

H. Hantouti

Tags

OpenFlow SDN Programmabilité des réseaux Réseaux

Summary

Ce document présente un cours sur la programmabilité des réseaux, axé sur le protocole OpenFlow et l'architecture SDN. Il explique les différents composants et concepts clés de ces technologies.

Full Transcript

Matière: programmable des réseaux Programmabilité des réseaux: Introduction à SDN Filiere: IA Année universitaire: 2024-2025 Professeur: H. Hantouti 1 Openflow 2 Architecture d'SDN...

Matière: programmable des réseaux Programmabilité des réseaux: Introduction à SDN Filiere: IA Année universitaire: 2024-2025 Professeur: H. Hantouti 1 Openflow 2 Architecture d'SDN 3 Introduction OpenFlow est une norme ouverte pour un protocole de communication qui permet au plan de contrôle de se détacher et d’interagir avec le plan de transfert de plusieurs périphériques à partir d’un point central, en découplant les rôles pour une fonctionnalité et une programmabilité supérieures. 4 Motivation : reseau traditionnel ► Chacun des périphériques réseau a son propre plan de contrôle individualisé pour des fonctions cérébrales telles que l’itinéraire ou l’apprentissage MAC. ► Chaque périphérique réseau possède également son propre plan de données pour le transfert des paquets. Le défi est que chaque appareil a sa propre perspective du réseau. ► la seule façon de voir cette perspective est de vous connecter à cet appareil via une interface de ligne de commande et d’émettre des commandes ou des configurations. ► La même chose s’applique à d’autres périphériques tels que les pare-feu, les équilibreurs de charge, pas seulement les routeurs et les commutateurs. 5 Motivation : reseau traditionnel ► Un plan de contrôle est le cerveau des opérations. Il s’exécute généralement dans le logiciel et construit les tables nécessaires au transfert, telles que les tables RIB(routing information base) ou MAC. ► Ces deux plans (et généralement un plan de gestion supplémentaire pour des éléments tels que SSH, SNMP, etc.) s’exécutent traditionnellement sur chaque périphérique réseau d’un réseau. 6 Composants d'un commutateur OpenFlow 7 Composants d'un commutateur OpenFlow « Un commutateur logique OpenFlow se compose: d’une ou plusieurs tables de flux et d’une table de groupe, qui effectuent des recherches et des transferts de paquets, un ou plusieurs canaux OpenFlow vers un contrôleur externe (Figure 1). Le commutateur communique avec le contrôleur et le contrôleur gère le commutateur via le protocole de commutateur OpenFlow. 8 Source: spécification OpenFlow Tables de Flux ► À l’aide du protocole de commutation OpenFlow, le contrôleur peut ajouter, mettre à jour et supprimer des entrées de flux dans les tables de flux, à la fois de manière réactive (en réponse aux paquets) et proactive. 9 Tables de Flux ► Les entrées de flux réactives sont créées lorsque le contrôleur apprend dynamiquement où se trouvent les périphériques dans la topologie et doit mettre à jour les tables de flux sur ces périphériques pour créer une connectivité de bout en bout. ► puisque les commutateurs dans un environnement OpenFlow pur sont simplement des redirecteurs de trafic, toute logique rationnelle doit d’abord être dictée et programmée par le contrôleur. ► si un hôte sur le commutateur A a besoin de parler à un commutateur hôte B, des messages seront envoyés au contrôleur pour savoir comment accéder à cet hôte. ► Le contrôleur apprendra les tables d’adresses MAC hôtes des commutateurs et comment ils se connectent, en programmant la logique dans les tables de 10flux de chaque commutateur. Tables de Flux ► Les entrées de flux proactives sont programmées avant l’arrivée du trafic. ► Si l’on sait déjà que deux périphériques doivent ou ne doivent pas communiquer, le contrôleur peut programmer ces entrées de flux sur les points de terminaison OpenFlow à l’avance. 11 Tables de Flux : composants Chaque dispositif OpenFlow possède une table de flux avec des entrées de flux comme le montre l'image ci-dessous. L'entrée de flux est composée de 3 champs : Champs de correspondance (Match) : il est utilisé pour définir la condition de correspondance à un flux exact. instructions: définit l'action à appliquer à un flux spécifique. Compteurs : ils sont utilisés pour compter les occurrences de la règle à des fins de gestion. 12 Source: lien Tables de Flux : pipeline ► Il existe plusieurs tables de flux, il est donc important de noter que la correspondance commence à la première table de flux et peut se poursuivre vers des tables de flux supplémentaires du pipeline. ► Le paquet commencera d’abord dans la table 0 et vérifiera ces entrées en fonction de la priorité. ► La priorité la plus élevée correspondra en premier (p. ex. 200, puis 100, puis 1). ► Si le flux doit continuer vers une autre table, l’instruction goto indique au paquet d’accéder à la table spécifiée dans les instructions. ► Ce traitement du pipeline se fera en deux étapes, le traitement des entrées et le traitement de la sortie 13 Tables de Flux : pipeline ► Ce traitement du pipeline se fera en deux étapes, le traitement des entrées et le traitement de la sortie ► Si une entrée correspondante est trouvée, les instructions associées à l’entrée de flux spécifique sont exécutées. Si aucune correspondance n’est trouvée dans une table de flux, le résultat dépend de la configuration de l’entrée de flux Table-miss. 14 Tables de Flux : Entree 15 Tables de Flux : Sortie 16 Les Ports Openflow ► « Les ports OpenFlow sont les interfaces réseau permettant de transmettre des paquets entre le traitement OpenFlow et le reste du réseau. Les commutateurs OpenFlow se connectent logiquement les uns aux autres via leurs ports OpenFlow... » ► Il existe trois types de ports qu’un commutateur OpenFlow doit prendre en charge : ► les ports physiques, ► les ports logiques ▪ et les ports réservés. 17 Les Ports physiques ► Les ports physiques sont des ports définis par le commutateur qui correspondent à une interface matérielle sur le commutateur. ► Il s'agit d'un mappage un-à-un des ports physiques OpenFlow aux interfaces Ethernet définies par le matériel sur le commutateur. 18 Les Ports logiques ► un port logique est une abstraction qui représente un point d'entrée ou de sortie de trafic au sein d'un commutateur géré par OpenFlow. ► Ces ports logiques peuvent correspondre à : o Des ports physiques: Les ports Ethernet classiques auxquels vous pouvez connecter un câble. o Des interfaces virtuelles: Des interfaces créées par logiciel, comme des tunnels (GRE, VXLAN) ou des agrégats de liens. o Des interfaces de loopback: Utilisées pour la configuration et le dépannage. 19 Les Ports reserves ► Les ports réservés OpenFlow spécifient des actions de transfert génériques telles que l’envoi au contrôleur, l’inondation ou le transfert à l’aide de méthodes non-OpenFlow, telles que le traitement de commutation « normal ». Quelque ports réservés: ► ALL: Représente tous les ports. ► CONTROLLER: Représente le canal OpenFlow utilisé pour la communication entre le commutateur et le contrôleur. ► TABLE: Représente la table de flux actuelle. ► IN_PORT: Représente le port d'entrée du paquet. ► ANY: Peut être utilisé comme port de sortie pour n'importe quelle action. ► UNSET: Indique qu'aucun port de sortie n'a été spécifié. ► LOCAL: Représente une action locale sur le commutateur (par exemple, une comptabilité). ► NORMAL: Représente le processus de forwarding normal, c'est-à-dire le traitement d'un paquet en fonction des règles de flux associées à son port d'entrée. ► FLOOD: Synonyme de "ALL", utilisé pour inonder un paquet sur tous les ports. 20 Types de commutateurs OpenFlow ► Il existe deux types de commutateurs OpenFlow : OpenFlow uniquement et OpenFlow hybride. ► Les commutateurs OpenFlow uniquement sont des « commutateurs stupides » n’ayant qu’un plan de données/transfert et aucun moyen de prendre des décisions locales. Tous les paquets sont traités par le pipeline OpenFlow et ne peuvent pas être traités autrement. ► Les commutateurs hybrides OpenFlow prennent en charge à la fois le fonctionnement OpenFlow et le fonctionnement normal de la commutation Ethernet. 21 Types de commutateurs OpenFlow ► un commutateur hybride avec la moitié de ses ports utilisant le routage et la commutation traditionelle, tandis que l’autre moitié est configurée pour OpenFlow. ► La moitié OpenFlow serait gérée par un contrôleur OpenFlow et l’autre moitié par le plan de contrôle du commutateur local. ► Le trafic de passage entre ces pipelines nécessiterait l’utilisation d’un port réservé NORMAL ou FLOOD. 22 Messages OpenFlow ► OpenFlow prend en charge 3 types de messages, chacun avec sa propre configuration de sous-types : ► Contrôleur à commutateur ► Asynchrone (commutateur-controleur) ► Symétrique 23 Messages OpenFlow : controleur-commutateur Messages du contrôleur au commutateur et initiés par le contrôleur et utilisés pour gérer ou inspecter directement le commutateur. Ces messages sont les suivants : ► Features (Fonctionnalités) – Le contrôleur interroge le commutateur sur ses capacités et reçoit des informations sur les tables de flux disponibles, les ports, etc. ► Configuration – définir et interroger les paramètres de configuration generales. ► Modify-State – également appelé 'flow mod', utilisé pour ajouter, supprimer et modifier des entrées de flux/groupe ► Read-States – obtenir des statistiques ► Packet Outs – le contrôleur envoie un message au commutateur,paquet spécifique vers un port particulier du commutateur.exemple: Envoi de paquets individuels pour tester la connectivité, injecter du trafic ou déclencher des actions spécifiquesou bien pour la création de flux: 24 Messages OpenFlow : Asynchrones Les messages asynchrones sont initiés par le commutateur et utilisés pour mettre à jour le contrôleur des événements réseau et des modifications de l’état du commutateur. Ces messages sont les suivants : ► Packet-in – transférer le contrôle d’un paquet au contrôleur ► Flow-Removed – informe le contrôleur que le flux a été supprimé ► Port-status (etat du port) – informez le contrôleur que le commutateur est tombé en panne ► Error – notifier le contrôleur des problèmes 25 Messages OpenFlow : Symetriques Les messages symétriques sont initiés soit par le commutateur, soit par le contrôleur et envoyés sans sollicitation. Ces messages sont les suivants : Hello– messages d’introduction ou de persistance de connexion échangés entre le commutateur et le contrôleur Echo - envoyé à partir d’un commutateur ou d’un contrôleur, ceux-ci vérifient la vivacité de la connexion et sont utilisés pour mesurer la latence ou la bande passante Experimenter – un moyen standard pour les commutateurs OpenFlow d’offrir des fonctionnalités supplémentaires dans l’espace de type de message OpenFlow. 26 Initiation du canal OpenFlow ► Le protocole OpenFlow fonctionne sur le protocole TCP. Le protocole standard est TCP 6633 pour OF V1.0 et 6653 pour OF V1.3+. ► Il doit y avoir une connectivité IP entre le contrôleur et les commutateurs pour établir une connexion OF. ► Le canal OF n'est formé qu'après une poignée de main tripartite TCP réussie. ► Le commutateur envoie un paquet "HELLO" pour se présenter au contrôleur et commencer la communication sur le canal OF. ► Le commutateur envoie également des informations telles que la version la plus élevée de OF qu'il supporte. ► Le contrôleur répond au message "HELLO" avec la version la plus élevée de OF qu'il supporte. Ensuite, le commutateur négocie le niveau le plus élevé de la version OpenFlow qu'ils supportent tous les deux. 27 Initiation du canal OpenFlow ► Une fois la version négociée, le contrôleur envoie un message "FEATURE_REQUEST". ► Ce message demande essentiellement au commutateur ses capacités OF supportées, comme le nombre de tables de flux supportées, les actions supportées, etc. ► Le commutateur lui répond par un message "FEATURE_REPLY" indiquant toutes ses capacités ainsi que son identifiant unique ou Datapath ID (DPID). ► On dit que le canal OpenFlow est établi avec succès entre le commutateur et le contrôleur. ► La connexion entre le contrôleur et le commutateur est essentielle car c'est le seul moyen pour un commutateur de communiquer avec un contrôleur. 28 29 Source: https://www.google.com/imgres?q=messages%20openflow&imgurl=https%3A%2F%2Fipcisco.com%2Fwp-content%2Fuploads%2FOpen-Flow- Séquence de connexion OpenFlow Le commutateur peut initier la connexion au port IP et au port de transport par défaut du contrôleur. Connexion TCP ou TLS établie Les deux envoient un OFPT_HELLO avec un champ de version renseigné Les deux calculent la version négociée à utiliser Si cela ne peut être convenu, un message OFPT_ERROR est envoyé Si chacun prend en charge la version, le contrôleur envoie une OFPT_FEATURES-REQUEST pour collecter l’ID Datapath du commutateur, ainsi que les capacités du commutateur. 30 Fonctionnement ► Le contrôleur installe des règles dans les tables de flux du commutateur. ► Un paquet arrive sur le commutateur. ► Le moteur de correspondance cherche une règle correspondante dans les tables de flux. ► Si une correspondance est trouvée, le moteur d'action exécute les actions spécifiées dans la règle. ► Si aucune correspondance n'est trouvée, le paquet peut être traité selon une action par défaut (par exemple, être inondé sur tous les ports) ou être envoyé au contrôleur pour une décision). 31

Use Quizgecko on...
Browser
Browser