Cours connexes :
- Cloud & Edge Computing - S9 - SDN pour Cloud/Edge
- Interconnexion Reseau - S8 - Fondamentaux reseaux
Emerging Network Technologies - Semestre 9
Annee academique : 2024-2025
Categorie : Reseaux emergents et programmabilite reseau
Enseignant : S. Abdellatif
PART A - Presentation Generale
Vue d'ensemble
Le cours "Emerging Network Technologies", dispense par S. Abdellatif a l'INSA Toulouse, explore les avancees majeures dans le domaine des technologies reseau. Il se concentre sur trois piliers fondamentaux des reseaux modernes : le Software-Defined Networking (SDN), la Network Functions Virtualization (NFV) et le protocole LISP (Locator/ID Separation Protocol). Ces technologies constituent la base de la transformation des infrastructures reseau traditionnelles vers des architectures programmables, flexibles et virtualisees.
Ce cours est particulierement pertinent dans le contexte actuel ou les reseaux traditionnels, bases sur des equipements proprietaires avec des plans de controle et de donnees integres, montrent leurs limites face aux exigences de scalabilite, d'agilite et d'automatisation des environnements cloud, IoT et 5G.
Objectifs pedagogiques :
- Comprendre la separation du plan de controle et du plan de donnees (paradigme SDN)
- Maitriser le protocole OpenFlow et son role dans l'architecture SDN
- Configurer et administrer Open vSwitch (OVS) pour la commutation virtuelle
- Deployer et programmer des controleurs SDN (Ryu, OpenDaylight, ONOS)
- Comprendre les principes de la NFV et l'architecture MANO
- Apprehender le protocole LISP et la separation identifiant/localisateur
- Developper des applications de controle reseau en mode reactif et proactif
- Concevoir des topologies SDN et gerer les problemes de boucles reseau
Position dans le cursus
Ce module s'appuie sur les bases acquises precedemment :
- Reseau (S5) : modele OSI, Ethernet, IP, TCP/UDP
- Interconnexion Reseau (S8) : routage (OSPF, BGP), VLANs, commutation, QoS
- Architecture Materielle (S6) : couche physique, signaux
Il prepare a :
- Cloud et Edge Computing (S9) : virtualisation, orchestration, Kubernetes
- IoT (S9) : protocoles specifiques, contraintes reseaux embarques
- Carriere professionnelle : ingenieur reseau, architecte SDN/NFV, DevOps reseau
Organisation du module
| Element | Volume | Description |
|---|---|---|
| Cours magistraux | ~10h | Theorie SDN, NFV, LISP, architectures |
| Travaux pratiques | ~12h | Configuration OVS, OpenFlow, controleurs Ryu |
| Projet/Rapport | - | Rapport SDN & NFV |
PART B - Experience et Contexte
Environnement et contexte
Durant ce cours, j'ai travaille dans un environnement de laboratoire equipe de materiel professionnel pour l'experimentation SDN/OpenFlow. L'infrastructure comprenait :
- 4 commutateurs Pica8 compatibles OpenFlow, equipes de 48 ports Gigabit Ethernet chacun
- 12 PCs equipes de multiples cartes Ethernet, servant de routeurs et/ou de machines Linux
- Cables Ethernet (paires torsadees non blindees avec connecteurs RJ45), croises et droits
- Reseau de gestion separe du reseau de donnees (mode "out-of-band")
Ce contexte permettait une immersion complete dans les architectures SDN reelles, loin des simulations simplifiees. La manipulation d'equipements physiques Pica8 avec Open vSwitch a donne une dimension concrete aux concepts theoriques. Le deploiement progressif, depuis un simple pont OVS jusqu'a une topologie maillees multi-commutateurs avec controleur centralise, a permis de comprendre chaque brique de l'architecture SDN.
Outils utilises
| Outil | Role | Utilisation |
|---|---|---|
| Open vSwitch (OVS) | Commutateur virtuel | Creation de ponts logiques, gestion des flux |
| Ryu | Controleur SDN | Programmation d'applications de controle reseau |
| ovs-vsctl | CLI d'administration OVS | Configuration des ponts et ports |
| ovs-ofctl | CLI OpenFlow pour OVS | Installation/suppression de regles de flux |
| Pica8 picOS | Systeme d'exploitation des commutateurs | Mode OVS/OpenFlow |
| Wireshark | Analyseur de paquets | Observation des echanges OpenFlow |
| Python | Programmation | Developpement d'applications controleur Ryu |
Mon role
Dans ce cours, j'etais responsable de :
- Comprendre les principes du SDN, de la NFV et du protocole OpenFlow
- Configurer des instances OVS sur les commutateurs Pica8
- Installer manuellement des regles OpenFlow pour controler le comportement du reseau
- Attacher et configurer un controleur Ryu pour le management centralise
- Deployer des topologies reseau complexes (maillees) et gerer les problemes de boucles
- Analyser le comportement reactif et proactif du controleur
- Rediger un rapport technique sur SDN et NFV
PART C - Aspects Techniques Detailles
1. Software-Defined Networking (SDN) - Principes fondamentaux
Le SDN represente un changement de paradigme fondamental dans l'architecture des reseaux. Dans les reseaux traditionnels, chaque equipement (routeur, commutateur) integre a la fois le plan de controle (decisions de routage, protocoles) et le plan de donnees (acheminement effectif des paquets). Cette architecture distribuee presente plusieurs limitations : complexite de gestion, manque de vision globale, difficulte d'evolution, et dependance aux equipements proprietaires.
Architecture SDN a trois couches :
Le SDN repose sur une architecture en trois couches distinctes :
| Couche | Nom | Role | Exemples |
|---|---|---|---|
| Couche Application | Application Plane | Applications de controle reseau | Firewall, Load Balancer, QoS Manager |
| Couche Controle | Control Plane | Decisions de routage, vision globale | Ryu, OpenDaylight, ONOS, Floodlight |
| Couche Infrastructure | Data Plane | Acheminement des paquets selon les regles | Open vSwitch, commutateurs OpenFlow |
Interfaces de communication :
- Southbound API (ex: OpenFlow) : interface entre le controleur et les equipements reseau. Permet au controleur de programmer les tables de flux des commutateurs.
- Northbound API (ex: REST API) : interface entre le controleur et les applications. Permet aux applications de demander des services reseau au controleur.
- Eastbound/Westbound : communication entre controleurs distribues pour la scalabilite.
Avantages du SDN :
- Programmabilite : le reseau peut etre programme et automatise via des APIs
- Vision globale : le controleur centralise a une vue complete de la topologie
- Agilite : modification rapide du comportement reseau sans reconfigurer chaque equipement
- Independance materielle : separation entre le logiciel de controle et le materiel
- Innovation acceleree : possibilite de deployer de nouveaux services reseau en logiciel
2. Protocole OpenFlow
OpenFlow est le protocole standard de la Southbound API du SDN. Il definit la communication entre le controleur SDN et les commutateurs OpenFlow, permettant au controleur de programmer directement les tables de flux des equipements reseau.
Principes de fonctionnement :
Un commutateur OpenFlow possede une ou plusieurs tables de flux (flow tables). Chaque entree dans une table de flux contient :
| Champ | Description |
|---|---|
| Match fields | Criteres de correspondance (port entree, adresses MAC/IP, ports TCP/UDP, VLAN, etc.) |
| Priority | Priorite de la regle (regles avec priorite plus elevee evaluees en premier) |
| Counters | Compteurs de paquets et d'octets correspondants |
| Instructions/Actions | Actions a effectuer (forward, drop, modifier en-tete, envoyer au controleur) |
| Timeouts | Duree de validite de la regle (idle timeout, hard timeout) |
| Cookie | Identifiant opaque defini par le controleur |
Processus de traitement d'un paquet :
- Un paquet arrive sur un port du commutateur
- Le commutateur compare les champs du paquet aux entrees de la table de flux
- Si une correspondance est trouvee : executer les actions associees
- Si aucune correspondance : envoyer un message Packet-In au controleur
- Le controleur analyse le paquet et repond avec un Packet-Out ou installe une nouvelle regle via Flow-Mod
Messages OpenFlow principaux :
| Message | Direction | Description |
|---|---|---|
| Packet-In | Switch → Controleur | Notification d'un paquet sans correspondance |
| Packet-Out | Controleur → Switch | Instruction de traitement pour un paquet |
| Flow-Mod | Controleur → Switch | Ajout/modification/suppression d'une regle de flux |
| Hello | Bidirectionnel | Etablissement de la connexion OpenFlow |
| Features-Request/Reply | Bidirectionnel | Decouverte des capacites du commutateur |
| Stats-Request/Reply | Bidirectionnel | Consultation des statistiques |
Versions OpenFlow : 1.0 (basique, une seule table), 1.3 (tables multiples, groupes, metres), 1.4, 1.5 (dernieres evolutions).
3. Open vSwitch (OVS) - Commutation virtuelle
Open vSwitch est un commutateur virtuel multi-couches concu pour permettre l'automatisation reseau par extensions programmables. Il supporte les protocoles de gestion standard (OpenFlow, sFlow, SPAN, LACP, 802.1Q) et est largement deploye dans les environnements de virtualisation et de cloud computing.
Architecture OVS :
- ovsdb-server : serveur de base de donnees de configuration
- ovs-vswitchd : daemon principal du commutateur, gere les tables de flux
- ovs-vsctl : outil CLI pour la configuration (ponts, ports, controleurs)
- ovs-ofctl : outil CLI pour la gestion des flux OpenFlow
Configuration initiale d'un pont OVS :
Creation d'une instance de pont logique et attachement des ports physiques :
# Redemarrage des processus OVS
sudo service picos restart
# Verification des processus
ps -A # verifier ovsdb-server et ovs-vswitchd
# Creation d'un pont OVS
admin@picOS-OVS$ ovs-vsctl add-br br0 -- set bridge br0 datapath_type=pica8
# Attachement des ports physiques au pont
admin@picOS-OVS$ ovs-vsctl add-port br0 ge-1/1/10 -- set interface ge-1/1/10 type=pica8
admin@picOS-OVS$ ovs-vsctl add-port br0 ge-1/1/13 -- set interface ge-1/1/13 type=pica8
admin@picOS-OVS$ ovs-vsctl add-port br0 ge-1/1/16 -- set interface ge-1/1/16 type=pica8
# Verification de la configuration
admin@picOS-OVS$ ovs-vsctl show
admin@picOS-OVS$ ovs-ofctl show br0
admin@picOS-OVS$ ovs-ofctl dump-ports br0
Comportement par defaut :
Sans regle explicite, le pont OVS ne sait pas comment acheminer les paquets. On peut ajouter une regle par defaut qui transforme le commutateur en switch L2 classique :
admin@picOS-OVS$ ovs-ofctl add-flow br0 ,action=normal
4. Installation manuelle de regles OpenFlow
L'installation manuelle de regles OpenFlow permet de comprendre finement le mecanisme de programmation du plan de donnees. Plusieurs niveaux de granularite sont possibles.
Niveau 1 - Regles basees sur le port d'entree :
Regles simples redirigeant le trafic d'un port vers d'autres ports, sans distinction de contenu :
# Suppression de toutes les regles existantes
admin@picOS-OVS$ ovs-ofctl del-flows br0
# Regles de redirection basees sur les ports d'entree
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=10,actions=output:13,16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=13,actions=output:10,16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,actions=output:10,13
Niveau 2 - Regles avec filtrage IP (granularite fine) :
Pour un controle plus precis, on filtre par adresse IP de destination, avec gestion separee de l'ARP :
admin@picOS-OVS$ ovs-ofctl del-flows br0
# Regles ARP pour la resolution d'adresses
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=10,arp,actions=output:13,16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=13,arp,actions=output:10,16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,arp,actions=output:10,13
# Regles IP avec filtrage par destination
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=10,ip,nw_dst=128.0.0.4,actions=output:13
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=10,ip,nw_dst=128.0.0.5,actions=output:16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=13,ip,nw_dst=128.0.0.3,actions=output:10
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=13,ip,nw_dst=128.0.0.5,actions=output:16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,ip,nw_dst=128.0.0.3,actions=output:10
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,ip,nw_dst=128.0.0.4,actions=output:13
Niveau 3 - Regles applicatives (filtrage protocolaire) :
Pour un controle au niveau applicatif, on filtre sur les protocoles de transport et les ports :
# Autoriser le trafic UDP CoAP (port 5683) entre la Gateway et les devices
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,udp,tp_dst=5683,actions=output:10,13
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=10,udp,tp_dst=5683,actions=output:16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=13,udp,tp_dst=5683,actions=output:16
# Autoriser les sessions SSH (port 22) de la Gateway vers les devices
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,tcp,tp_dst=22,actions=output:10,13
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=10,tcp,tp_src=22,actions=output:16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=13,tcp,tp_src=22,actions=output:16
Cette progression illustre la puissance d'OpenFlow : depuis le simple routage par port jusqu'au controle fin des flux applicatifs, le reseau devient entierement programmable.
5. Attachement du controleur et controle SDN
L'attachement d'un controleur OpenFlow (ici Ryu) permet de passer d'un reseau statiquement configure a un reseau dynamiquement controle.
Mode out-of-band :
Le trafic OpenFlow entre le controleur et les commutateurs est transporte par un reseau different de celui utilise pour les donnees utilisateur. Cela garantit que le canal de controle reste disponible meme en cas de congestion du reseau de donnees.
# Configuration de l'interface du controleur sur le reseau de gestion
ifconfig eth1 192.168.0.42
# Declaration du controleur pour le pont br0
admin@picOS-OVS$ ovs-vsctl set-controller br0 tcp:192.168.0.42:6633
# Demarrage du controleur Ryu en mode verbose
controleur# ryu-manager --verbose
# Verification de la connexion
admin@picOS-OVS$ ovs-vsctl show
admin@picOS-OVS$ ovs-ofctl snoop br0
admin@picOS-OVS$ ovs-ofctl dump-flows br0
Fonctionnement du controleur :
Sans application lancee, le controleur recoit les evenements Packet-In mais ne propose aucun traitement. Les paquets sont donc perdus car aucune regle n'est installee dans les tables de flux.
6. Programmation reseau reactive et proactive
Deux approches fondamentales pour la programmation de controleurs SDN :
Mode reactif :
Le controleur reagit aux evenements reseau en temps reel. Lorsqu'un paquet arrive sans correspondance dans la table de flux, un Packet-In est envoye au controleur qui decide alors de l'action a entreprendre et installe eventuellement une regle pour les paquets similaires futurs.
L'application simple_switch_14 illustre ce mode :
# Lancement de l'application simple_switch
controleur# ryu-manager --verbose simple_switch_14.py
# Verification des regles installees apres un ping
admin@picOS-OVS$ ovs-ofctl dump-flows br0
Le comportement de simple_switch_14 :
- Reception d'un Packet-In pour un paquet dont le destinataire est inconnu
- L'application demande au commutateur de diffuser le paquet sur tous les ports (flood)
- Lorsque le destinataire repond, l'application apprend sa localisation (adresse MAC associee a un port)
- Une regle est ajoutee dans la table de flux pour diriger les futurs paquets directement
Mode proactif :
Le controleur pre-configure les regles de flux avant l'arrivee du trafic, en anticipant les schemas de trafic attendus. Ce mode offre de meilleures performances (pas de latence Packet-In) mais necessite une connaissance prealable de la topologie et des flux.
# Exemple de regle proactive pour un flux specifique
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,ip,nw_dst=128.0.0.4,actions=output:13
| Critere | Mode reactif | Mode proactif |
|---|---|---|
| Latence | Premier paquet retarde (Packet-In) | Aucune latence supplementaire |
| Flexibilite | Tres flexible, s'adapte dynamiquement | Necessite connaissance prealable |
| Charge controleur | Elevee (traite chaque nouveau flux) | Faible (configuration initiale) |
| Tolerance aux pannes | Dependant du controleur | Flux continues meme si controleur down |
| Cas d'usage | Reseaux dynamiques, apprentissage | Trafic previsible, performance critique |
7. Topologie maillee et prevention des boucles
L'exercice final du TP consistait a deployer une topologie partiellement maillee avec 4 commutateurs Pica8 interconnectes. Chaque commutateur hebergeait une instance de pont OVS, connectee a une machine terminale et a deux autres ponts sur d'autres commutateurs.
Problematique des boucles :
Lorsque tous les liens sont actifs dans une topologie maillee, des boucles de couche 2 se forment. L'application simple_switch, qui utilise le flooding pour les adresses inconnues, provoque une amplification infinie des trames broadcast (tempete de broadcast). Cela rend le reseau inutilisable.
Solutions :
La solution consiste a utiliser une application de controle integrant la gestion des boucles, similaire au Spanning Tree Protocol (STP) mais implementee au niveau du controleur SDN. Dans le repertoire de Ryu, des applications plus avancees comme simple_switch_stp integrent la detection et la prevention des boucles en bloquant les ports redondants.
Cette situation illustre un avantage majeur du SDN : au lieu de s'appuyer sur des protocoles distribues comme STP (convergence lente, configuration complexe), le controleur centralise peut calculer un arbre couvrant optimal grace a sa vision globale de la topologie.
8. Controleurs SDN - Ecosysteme
Plusieurs controleurs SDN sont disponibles, chacun avec ses specificites :
| Controleur | Langage | Licence | Caracteristiques |
|---|---|---|---|
| Ryu | Python | Apache 2.0 | Leger, pedagogique, extensible, facile a programmer |
| OpenDaylight (ODL) | Java | Eclipse Public | Tres complet, modulaire, support industriel (Linux Foundation) |
| ONOS | Java | Apache 2.0 | Haute disponibilite, oriente operateurs telecom |
| Floodlight | Java | Apache 2.0 | Developpe par Big Switch Networks, performant |
| POX | Python | Apache 2.0 | Predecessor de Ryu, utilise en recherche |
Ryu en detail :
Ryu est un framework de controleur SDN base sur composants, ecrit en Python. Il fournit des APIs bien definies pour creer des applications de gestion reseau. Il supporte differentes versions d'OpenFlow (1.0 a 1.5) et offre une bibliotheque riche pour le parsing de paquets, la manipulation de flux, et l'interaction avec les commutateurs.
9. Network Functions Virtualization (NFV)
La NFV est une approche architecturale qui consiste a virtualiser les fonctions reseau traditionnellement realisees par des equipements materiels dedies (appliances proprietaires). Au lieu de deployer un pare-feu physique, un load balancer materiel ou un systeme IDS dedie, ces fonctions sont implementees en logiciel et executees sur des serveurs standards (COTS - Commercial Off-The-Shelf).
Problematique des reseaux traditionnels :
- Chaque fonction reseau necessite un equipement dedie et couteux
- Scalabilite limitee (achat de nouveau materiel pour augmenter la capacite)
- Cycle de deploiement long (commande, installation, configuration)
- Innovation freinee par les cycles produit des equipementiers
- Dependance aux solutions proprietaires (vendor lock-in)
Fonctions Reseau Virtualisees (VNF) :
Les VNFs sont les implementations logicielles des fonctions reseau :
| Fonction traditionnelle | VNF equivalente |
|---|---|
| Pare-feu materiel | vFirewall |
| Load Balancer physique | vLoad Balancer |
| Routeur physique | vRouter |
| IDS/IPS materiel | vIDS/vIPS |
| WAN Optimizer | vWAN Optimizer |
| DPI appliance | vDPI |
Cycle de vie des VNFs :
- Instantiation : deploiement de la VNF sur l'infrastructure virtuelle
- Configuration : parametrage initial de la fonction
- Scaling : mise a l'echelle (scale-up/scale-down, scale-in/scale-out)
- Monitoring : supervision des performances et de la sante
- Update/Upgrade : mise a jour du logiciel sans interruption
- Termination : arret et liberation des ressources
Avantages de la NFV :
- Reduction des couts : utilisation de serveurs standards (COTS)
- Agilite : deploiement et mise a l'echelle en minutes au lieu de semaines
- Flexibilite : fonctions deployees la ou necessaire, quand necessaire
- Innovation : cycle de developpement logiciel rapide
- Multi-vendor : independance vis-a-vis des equipementiers
10. Architecture MANO (Management and Orchestration)
L'architecture MANO, definie par l'ETSI (European Telecommunications Standards Institute), est le cadre de reference pour la gestion et l'orchestration des environnements NFV.
Composants principaux de l'architecture MANO :
| Composant | Role |
|---|---|
| NFV Orchestrator (NFVO) | Orchestration globale des services reseau, gestion du cycle de vie des Network Services |
| VNF Manager (VNFM) | Gestion du cycle de vie des VNFs individuelles (instantiation, scaling, termination) |
| Virtualized Infrastructure Manager (VIM) | Gestion de l'infrastructure virtuelle (compute, storage, network) - ex: OpenStack |
| NFV Infrastructure (NFVI) | Ressources physiques et virtuelles (serveurs, stockage, reseau) |
| Element Management System (EMS) | Gestion fonctionnelle des VNFs (configuration specifique a la fonction) |
| OSS/BSS | Systemes de support operationnel et commercial |
Service Chaining (chaine de services) :
Le Service Chaining consiste a connecter sequentiellement plusieurs VNFs pour creer un service reseau complet. Par exemple, le trafic d'un utilisateur peut traverser successivement :
- vFirewall (filtrage)
- vDPI (inspection approfondie)
- vLoad Balancer (repartition de charge)
- Application serveur
Le SDN facilite grandement le Service Chaining en permettant de programmer dynamiquement le chemin des flux a travers les differentes VNFs.
11. Protocole LISP (Locator/ID Separation Protocol)
LISP est un protocole reseau qui separe l'identifiant d'un hote de sa localisation dans le reseau. Dans l'architecture IP traditionnelle, l'adresse IP joue un double role : elle identifie l'hote ET indique sa localisation topologique. Cette ambiguite pose des problemes pour la mobilite, le multi-homing et la scalabilite des tables de routage.
Concepts fondamentaux :
| Concept | Description |
|---|---|
| EID (Endpoint Identifier) | Identifiant de l'hote (adresse IP de l'hote, stable) |
| RLOC (Routing Locator) | Localisateur dans le reseau (adresse IP du routeur de bordure) |
| ITR (Ingress Tunnel Router) | Routeur d'entree qui encapsule les paquets |
| ETR (Egress Tunnel Router) | Routeur de sortie qui desencapsule les paquets |
| Map-Server | Serveur de correspondance EID → RLOC |
| Map-Resolver | Serveur qui resout les requetes de mapping |
Fonctionnement :
- Un hote source envoie un paquet vers un EID destination
- L'ITR interroge le systeme de mapping pour obtenir le RLOC associe a l'EID destination
- L'ITR encapsule le paquet original dans un nouveau paquet IP avec le RLOC comme destination
- Le paquet traverse le reseau de coeur en utilisant les RLOC
- L'ETR desencapsule le paquet et le delivre a l'hote destination
Avantages de LISP :
- Reduction des tables de routage : seuls les RLOC sont annonces dans le coeur du reseau
- Mobilite : un hote peut changer de localisation (RLOC) sans changer son identite (EID)
- Multi-homing : un EID peut etre associe a plusieurs RLOC pour la redondance
- Ingenierie de trafic : selection du meilleur RLOC selon les metriques
12. Programmabilite reseau et API
La programmabilite est au coeur de la transformation des reseaux modernes. Le SDN et la NFV convergent pour creer des reseaux entierement automatisables et programmables.
Niveaux de programmabilite :
- Configuration automatisee : scripts et outils (Ansible, Puppet, Chef) pour deployer des configurations
- Controleurs SDN : programmation du comportement reseau via applications Python/Java
- APIs REST : interfaces standardisees pour interagir avec les controleurs et les VNFs
- Intent-Based Networking : expression de l'intention (politique de haut niveau) traduite automatiquement en configuration
Convergence SDN + NFV :
SDN et NFV sont complementaires :
- Le SDN fournit la programmabilite du reseau (plan de donnees)
- La NFV fournit la virtualisation des fonctions (plan de services)
- Ensemble, ils permettent de creer des infrastructures reseau entierement logicielles, agiles et automatisees
Cette convergence est au coeur des architectures reseau 5G, ou le network slicing repose sur la capacite a creer des tranches de reseau virtuelles avec des VNFs specifiques, interconnectees par un plan de donnees SDN.
PART D - Analyse et Reflexion
Competences acquises
Comprehension du paradigme SDN :
Maitrise de la separation plan de controle / plan de donnees, du protocole OpenFlow et de l'architecture a trois couches. Capacite a expliquer les avantages et les limites du SDN par rapport aux reseaux traditionnels.
Configuration Open vSwitch :
Competence pratique dans la creation de ponts logiques, l'attachement de ports physiques et la gestion d'instances OVS sur des equipements Pica8 reels.
Programmation de regles OpenFlow :
Capacite a installer des regles de flux a differents niveaux de granularite : port d'entree, adresses IP, protocoles de transport, ports applicatifs. Comprehension de l'impact de la granularite sur la precision du controle et les performances.
Deploiement de controleurs SDN :
Experience avec le controleur Ryu, depuis le lancement en mode verbose jusqu'a l'execution d'applications de controle (simple_switch_14). Comprehension du fonctionnement reactif et proactif.
Gestion de topologies complexes :
Experience du deploiement de topologies maillees multi-commutateurs et comprehension des problemes de boucles et de leurs solutions dans un contexte SDN.
Comprehension NFV et MANO :
Connaissance de l'architecture de virtualisation des fonctions reseau, du cycle de vie des VNFs et du cadre MANO pour l'orchestration.
Auto-evaluation
J'ai trouve le cours "Emerging Network Technologies" tres engageant et formateur, bien que certains aspects aient ete un peu complexes pour moi en tant qu'etudiant specialise en Electronique Automatique par rapport a ceux de l'option Reseau. Malgre cela, j'ai ete activement implique dans la simulation de topologies et le test de divers aspects, ce qui m'a fourni une comprehension pratique de la facon dont ces technologies transforment la gestion des reseaux.
Le travail sur les equipements Pica8 reels a ete la partie la plus enrichissante. Manipuler des commutateurs physiques, installer des regles OpenFlow et observer leur effet immediat sur la connectivite donne une dimension concrete que les simulations ne peuvent pas offrir.
Le principal defi a ete la comprehension de la topologie maillee et la gestion des boucles. Voir le reseau devenir instable avec l'ajout d'un seul lien physique m'a fait comprendre l'importance critique de la prevention des boucles et la puissance du controleur SDN pour resoudre ce probleme de maniere centralisee.
Comme je suis egalement le Master REOC, j'avais deja travaille sur SDN et Ryu dans un contexte plus exploratoire. Ce cours a solidifie mes competences avec une approche plus structuree et progressive. En REOC, nous avions mene notre propre recherche et projet, ce qui offrait une experience plus pratique mais moins guidee.
Perspectives professionnelles
Les technologies emergentes vues dans ce cours sont au coeur de la transformation des infrastructures reseau :
- Operateurs telecom : deploiement 5G avec network slicing (SDN + NFV)
- Cloud providers : reseaux virtuels (VPC) et SDN pour multi-tenancy
- Entreprises : SD-WAN pour connecter les sites distants avec agilite
- Data centers : automatisation des reseaux de datacenter avec SDN
- IoT : gestion intelligente des flux IoT via controleurs SDN
Documents de Cours
Chapitre 1 - Introduction aux reseaux emergents Chapter 1 - Introduction to emerging networks
Cours introductif : problematiques des reseaux traditionnels, evolution vers SDN et NFV, enjeux de la programmabilite reseau. Introductory lecture: traditional network issues, evolution toward SDN and NFV, network programmability challenges.
Chapitre 2 - Software-Defined Networking (SDN) Chapter 2 - Software-Defined Networking (SDN)
Cours approfondi sur le SDN : architecture, protocole OpenFlow, controleurs, programmation reactive et proactive. In-depth lecture on SDN: architecture, OpenFlow protocol, controllers, reactive and proactive programming.
Chapitre 3 - Introduction a LISP Chapter 3 - Introduction to LISP
Cours sur le protocole LISP : separation identifiant/localisateur, architecture ITR/ETR, systeme de mapping EID-RLOC. Lecture on the LISP protocol: identifier/locator separation, ITR/ETR architecture, EID-RLOC mapping system.
Rapports et Projets
Rapport SDN & NFV SDN & NFV Report
Rapport de projet - SDN et NFV Project report - SDN and NFV
Rapport technique detaillant les travaux pratiques sur le Software-Defined Networking et la Network Functions Virtualization. Technical report detailing the lab work on Software-Defined Networking and Network Functions Virtualization.
Sujet de TP - Emerging Network Lab Subject - Emerging Network
Sujet du TP couvrant la configuration OVS, les regles OpenFlow, l'attachement du controleur Ryu et le deploiement de topologies maillees. Lab subject covering OVS configuration, OpenFlow rules, Ryu controller attachment and mesh topology deployment.
Cours suivi en 2024-2025 a l'INSA Toulouse, Departement Genie Electrique et Informatique.
Related courses:
- Cloud & Edge Computing - S9 - SDN for Cloud/Edge
- Network Interconnection - S8 - Network fundamentals
Emerging Network Technologies - Semester 9
Academic year: 2024-2025
Category: Emerging networks and network programmability
Instructor: S. Abdellatif
PART A - General Presentation
Overview
The "Emerging Network Technologies" course, taught by S. Abdellatif at INSA Toulouse, explores major advances in network technologies. It focuses on three fundamental pillars of modern networks: Software-Defined Networking (SDN), Network Functions Virtualization (NFV) and the LISP (Locator/ID Separation Protocol). These technologies form the foundation for transforming traditional network infrastructures into programmable, flexible and virtualized architectures.
This course is particularly relevant in the current context where traditional networks, based on proprietary equipment with integrated control and data planes, show their limitations when facing scalability, agility and automation requirements of cloud, IoT and 5G environments.
Learning objectives:
- Understand the separation of the control plane and the data plane (SDN paradigm)
- Master the OpenFlow protocol and its role in SDN architecture
- Configure and administer Open vSwitch (OVS) for virtual switching
- Deploy and program SDN controllers (Ryu, OpenDaylight, ONOS)
- Understand the principles of NFV and the MANO architecture
- Comprehend the LISP protocol and the identifier/locator separation
- Develop network control applications in reactive and proactive modes
- Design SDN topologies and manage network loop problems
Position in the curriculum
This module builds on previously acquired foundations:
- Networking (S5): OSI model, Ethernet, IP, TCP/UDP
- Network Interconnection (S8): routing (OSPF, BGP), VLANs, switching, QoS
- Hardware Architecture (S6): physical layer, signals
It prepares for:
- Cloud and Edge Computing (S9): virtualization, orchestration, Kubernetes
- IoT (S9): specific protocols, embedded network constraints
- Professional career: network engineer, SDN/NFV architect, network DevOps
Module organization
| Element | Volume | Description |
|---|---|---|
| Lectures | ~10h | SDN, NFV, LISP theory, architectures |
| Lab sessions | ~12h | OVS configuration, OpenFlow, Ryu controllers |
| Project/Report | - | SDN & NFV report |
PART B - Experience and Context
Environment and context
During this course, I worked in a laboratory environment equipped with professional hardware for SDN/OpenFlow experimentation. The infrastructure included:
- 4 Pica8 switches compatible with OpenFlow, equipped with 48 Gigabit Ethernet ports each
- 12 PCs equipped with multiple Ethernet cards, serving as routers and/or Linux machines
- Ethernet cables (unshielded twisted pairs with RJ45 connectors), crossover and straight-through
- Management network separate from the data network (out-of-band mode)
This context allowed complete immersion in real SDN architectures, far from simplified simulations. Handling physical Pica8 equipment with Open vSwitch gave a concrete dimension to theoretical concepts. The progressive deployment, from a simple OVS bridge to a multi-switch mesh topology with a centralized controller, made it possible to understand each building block of the SDN architecture.
Tools used
| Tool | Role | Usage |
|---|---|---|
| Open vSwitch (OVS) | Virtual switch | Creation of logical bridges, flow management |
| Ryu | SDN controller | Programming network control applications |
| ovs-vsctl | OVS administration CLI | Bridge and port configuration |
| ovs-ofctl | OpenFlow CLI for OVS | Installation/deletion of flow rules |
| Pica8 picOS | Switch operating system | OVS/OpenFlow mode |
| Wireshark | Packet analyzer | Observation of OpenFlow exchanges |
| Python | Programming | Development of Ryu controller applications |
My role
In this course, I was responsible for:
- Understanding the principles of SDN, NFV and the OpenFlow protocol
- Configuring OVS instances on the Pica8 switches
- Manually installing OpenFlow rules to control network behavior
- Attaching and configuring a Ryu controller for centralized management
- Deploying complex network topologies (mesh) and managing loop problems
- Analyzing the reactive and proactive behavior of the controller
- Writing a technical report on SDN and NFV
PART C - Detailed Technical Aspects
1. Software-Defined Networking (SDN) - Fundamental principles
SDN represents a fundamental paradigm shift in network architecture. In traditional networks, each device (router, switch) integrates both the control plane (routing decisions, protocols) and the data plane (actual packet forwarding). This distributed architecture has several limitations: management complexity, lack of global vision, difficulty of evolution, and dependency on proprietary equipment.
Three-layer SDN architecture:
SDN is based on an architecture with three distinct layers:
| Layer | Name | Role | Examples |
|---|---|---|---|
| Application Layer | Application Plane | Network control applications | Firewall, Load Balancer, QoS Manager |
| Control Layer | Control Plane | Routing decisions, global vision | Ryu, OpenDaylight, ONOS, Floodlight |
| Infrastructure Layer | Data Plane | Packet forwarding according to rules | Open vSwitch, OpenFlow switches |
Communication interfaces:
- Southbound API (e.g., OpenFlow): interface between the controller and network devices. Allows the controller to program the flow tables of switches.
- Northbound API (e.g., REST API): interface between the controller and applications. Allows applications to request network services from the controller.
- Eastbound/Westbound: communication between distributed controllers for scalability.
SDN advantages:
- Programmability: the network can be programmed and automated via APIs
- Global vision: the centralized controller has a complete view of the topology
- Agility: rapid modification of network behavior without reconfiguring each device
- Hardware independence: separation between control software and hardware
- Accelerated innovation: ability to deploy new network services in software
2. OpenFlow protocol
OpenFlow is the standard protocol for the SDN Southbound API. It defines the communication between the SDN controller and OpenFlow switches, allowing the controller to directly program the flow tables of network devices.
Operating principles:
An OpenFlow switch has one or more flow tables. Each entry in a flow table contains:
| Field | Description |
|---|---|
| Match fields | Matching criteria (input port, MAC/IP addresses, TCP/UDP ports, VLAN, etc.) |
| Priority | Rule priority (higher priority rules evaluated first) |
| Counters | Matching packet and byte counters |
| Instructions/Actions | Actions to perform (forward, drop, modify header, send to controller) |
| Timeouts | Rule validity duration (idle timeout, hard timeout) |
| Cookie | Opaque identifier defined by the controller |
Packet processing workflow:
- A packet arrives on a switch port
- The switch compares packet fields against flow table entries
- If a match is found: execute the associated actions
- If no match: send a Packet-In message to the controller
- The controller analyzes the packet and responds with a Packet-Out or installs a new rule via Flow-Mod
Main OpenFlow messages:
| Message | Direction | Description |
|---|---|---|
| Packet-In | Switch → Controller | Notification of a packet with no match |
| Packet-Out | Controller → Switch | Processing instruction for a packet |
| Flow-Mod | Controller → Switch | Addition/modification/deletion of a flow rule |
| Hello | Bidirectional | OpenFlow connection establishment |
| Features-Request/Reply | Bidirectional | Discovery of switch capabilities |
| Stats-Request/Reply | Bidirectional | Statistics consultation |
OpenFlow versions: 1.0 (basic, single table), 1.3 (multiple tables, groups, meters), 1.4, 1.5 (latest evolutions).
3. Open vSwitch (OVS) - Virtual switching
Open vSwitch is a multilayer virtual switch designed to enable network automation through programmable extensions. It supports standard management protocols (OpenFlow, sFlow, SPAN, LACP, 802.1Q) and is widely deployed in virtualization and cloud computing environments.
OVS architecture:
- ovsdb-server: configuration database server
- ovs-vswitchd: main switch daemon, manages flow tables
- ovs-vsctl: CLI tool for configuration (bridges, ports, controllers)
- ovs-ofctl: CLI tool for OpenFlow flow management
Initial OVS bridge configuration:
Creation of a logical bridge instance and attachment of physical ports:
# Redemarrage des processus OVS
sudo service picos restart
# Verification des processus
ps -A # verifier ovsdb-server et ovs-vswitchd
# Creation d'un pont OVS
admin@picOS-OVS$ ovs-vsctl add-br br0 -- set bridge br0 datapath_type=pica8
# Attachement des ports physiques au pont
admin@picOS-OVS$ ovs-vsctl add-port br0 ge-1/1/10 -- set interface ge-1/1/10 type=pica8
admin@picOS-OVS$ ovs-vsctl add-port br0 ge-1/1/13 -- set interface ge-1/1/13 type=pica8
admin@picOS-OVS$ ovs-vsctl add-port br0 ge-1/1/16 -- set interface ge-1/1/16 type=pica8
# Verification de la configuration
admin@picOS-OVS$ ovs-vsctl show
admin@picOS-OVS$ ovs-ofctl show br0
admin@picOS-OVS$ ovs-ofctl dump-ports br0
Default behavior:
Without explicit rules, the OVS bridge does not know how to forward packets. A default rule can be added that transforms the switch into a classic L2 switch:
admin@picOS-OVS$ ovs-ofctl add-flow br0 ,action=normal
4. Manual installation of OpenFlow rules
Manual installation of OpenFlow rules allows a fine understanding of the data plane programming mechanism. Several levels of granularity are possible.
Level 1 - Rules based on input port:
Simple rules redirecting traffic from one port to other ports, without content distinction:
# Suppression de toutes les regles existantes
admin@picOS-OVS$ ovs-ofctl del-flows br0
# Regles de redirection basees sur les ports d'entree
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=10,actions=output:13,16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=13,actions=output:10,16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,actions=output:10,13
Level 2 - Rules with IP filtering (fine granularity):
For more precise control, filtering is done by destination IP address, with separate ARP handling:
admin@picOS-OVS$ ovs-ofctl del-flows br0
# Regles ARP pour la resolution d'adresses
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=10,arp,actions=output:13,16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=13,arp,actions=output:10,16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,arp,actions=output:10,13
# Regles IP avec filtrage par destination
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=10,ip,nw_dst=128.0.0.4,actions=output:13
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=10,ip,nw_dst=128.0.0.5,actions=output:16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=13,ip,nw_dst=128.0.0.3,actions=output:10
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=13,ip,nw_dst=128.0.0.5,actions=output:16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,ip,nw_dst=128.0.0.3,actions=output:10
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,ip,nw_dst=128.0.0.4,actions=output:13
Level 3 - Application-level rules (protocol filtering):
For application-level control, filtering is done on transport protocols and ports:
# Autoriser le trafic UDP CoAP (port 5683) entre la Gateway et les devices
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,udp,tp_dst=5683,actions=output:10,13
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=10,udp,tp_dst=5683,actions=output:16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=13,udp,tp_dst=5683,actions=output:16
# Autoriser les sessions SSH (port 22) de la Gateway vers les devices
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,tcp,tp_dst=22,actions=output:10,13
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=10,tcp,tp_src=22,actions=output:16
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=13,tcp,tp_src=22,actions=output:16
This progression illustrates the power of OpenFlow: from simple port-based routing to fine-grained application flow control, the network becomes fully programmable.
5. Controller attachment and SDN control
Attaching an OpenFlow controller (here Ryu) allows transitioning from a statically configured network to a dynamically controlled network.
Out-of-band mode:
OpenFlow traffic between the controller and switches is transported by a different network from the one used for user data. This ensures that the control channel remains available even in case of data network congestion.
# Configuration de l'interface du controleur sur le reseau de gestion
ifconfig eth1 192.168.0.42
# Declaration du controleur pour le pont br0
admin@picOS-OVS$ ovs-vsctl set-controller br0 tcp:192.168.0.42:6633
# Demarrage du controleur Ryu en mode verbose
controleur# ryu-manager --verbose
# Verification de la connexion
admin@picOS-OVS$ ovs-vsctl show
admin@picOS-OVS$ ovs-ofctl snoop br0
admin@picOS-OVS$ ovs-ofctl dump-flows br0
Controller operation:
Without a running application, the controller receives Packet-In events but does not provide any processing. Packets are therefore lost because no rules are installed in the flow tables.
6. Reactive and proactive network programming
Two fundamental approaches for SDN controller programming:
Reactive mode:
The controller reacts to network events in real time. When a packet arrives without a match in the flow table, a Packet-In is sent to the controller which then decides the action to take and possibly installs a rule for similar future packets.
The simple_switch_14 application illustrates this mode:
# Lancement de l'application simple_switch
controleur# ryu-manager --verbose simple_switch_14.py
# Verification des regles installees apres un ping
admin@picOS-OVS$ ovs-ofctl dump-flows br0
The behavior of simple_switch_14:
- Reception of a Packet-In for a packet whose destination is unknown
- The application asks the switch to broadcast the packet on all ports (flood)
- When the destination responds, the application learns its location (MAC address associated with a port)
- A rule is added to the flow table to direct future packets directly
Proactive mode:
The controller pre-configures flow rules before traffic arrives, anticipating expected traffic patterns. This mode offers better performance (no Packet-In latency) but requires prior knowledge of the topology and flows.
# Exemple de regle proactive pour un flux specifique
admin@picOS-OVS$ ovs-ofctl add-flow br0 in_port=16,ip,nw_dst=128.0.0.4,actions=output:13
| Criterion | Reactive mode | Proactive mode |
|---|---|---|
| Latency | First packet delayed (Packet-In) | No additional latency |
| Flexibility | Very flexible, adapts dynamically | Requires prior knowledge |
| Controller load | High (processes each new flow) | Low (initial configuration) |
| Fault tolerance | Dependent on controller | Flows continue even if controller is down |
| Use cases | Dynamic networks, learning | Predictable traffic, critical performance |
7. Mesh topology and loop prevention
The final lab exercise consisted of deploying a partially meshed topology with 4 interconnected Pica8 switches. Each switch hosted an OVS bridge instance, connected to a terminal machine and to two other bridges on other switches.
Loop problem:
When all links are active in a mesh topology, Layer 2 loops form. The simple_switch application, which uses flooding for unknown addresses, causes infinite amplification of broadcast frames (broadcast storm). This renders the network unusable.
Solutions:
The solution is to use a control application that integrates loop management, similar to the Spanning Tree Protocol (STP) but implemented at the SDN controller level. In the Ryu directory, more advanced applications such as simple_switch_stp integrate loop detection and prevention by blocking redundant ports.
This situation illustrates a major advantage of SDN: instead of relying on distributed protocols like STP (slow convergence, complex configuration), the centralized controller can compute an optimal spanning tree thanks to its global view of the topology.
8. SDN controllers - Ecosystem
Several SDN controllers are available, each with its own specificities:
| Controller | Language | License | Characteristics |
|---|---|---|---|
| Ryu | Python | Apache 2.0 | Lightweight, educational, extensible, easy to program |
| OpenDaylight (ODL) | Java | Eclipse Public | Very comprehensive, modular, industrial support (Linux Foundation) |
| ONOS | Java | Apache 2.0 | High availability, telecom operator-oriented |
| Floodlight | Java | Apache 2.0 | Developed by Big Switch Networks, performant |
| POX | Python | Apache 2.0 | Predecessor of Ryu, used in research |
Ryu in detail:
Ryu is a component-based SDN controller framework, written in Python. It provides well-defined APIs for creating network management applications. It supports different OpenFlow versions (1.0 to 1.5) and offers a rich library for packet parsing, flow manipulation, and switch interaction.
9. Network Functions Virtualization (NFV)
NFV is an architectural approach that consists of virtualizing network functions traditionally performed by dedicated hardware appliances (proprietary appliances). Instead of deploying a physical firewall, a hardware load balancer or a dedicated IDS system, these functions are implemented in software and run on standard servers (COTS - Commercial Off-The-Shelf).
Traditional network issues:
- Each network function requires a dedicated and expensive device
- Limited scalability (purchasing new hardware to increase capacity)
- Long deployment cycle (ordering, installation, configuration)
- Innovation slowed by equipment vendor product cycles
- Dependency on proprietary solutions (vendor lock-in)
Virtualized Network Functions (VNF):
VNFs are software implementations of network functions:
| Traditional function | Equivalent VNF |
|---|---|
| Hardware firewall | vFirewall |
| Physical load balancer | vLoad Balancer |
| Physical router | vRouter |
| Hardware IDS/IPS | vIDS/vIPS |
| WAN Optimizer | vWAN Optimizer |
| DPI appliance | vDPI |
VNF lifecycle:
- Instantiation: deployment of the VNF on the virtual infrastructure
- Configuration: initial function parameterization
- Scaling: scaling (scale-up/scale-down, scale-in/scale-out)
- Monitoring: performance and health supervision
- Update/Upgrade: software update without interruption
- Termination: shutdown and resource release
NFV advantages:
- Cost reduction: use of standard servers (COTS)
- Agility: deployment and scaling in minutes instead of weeks
- Flexibility: functions deployed where needed, when needed
- Innovation: rapid software development cycle
- Multi-vendor: independence from equipment vendors
10. MANO Architecture (Management and Orchestration)
The MANO architecture, defined by ETSI (European Telecommunications Standards Institute), is the reference framework for the management and orchestration of NFV environments.
Main MANO architecture components:
| Component | Role |
|---|---|
| NFV Orchestrator (NFVO) | Global orchestration of network services, Network Services lifecycle management |
| VNF Manager (VNFM) | Individual VNF lifecycle management (instantiation, scaling, termination) |
| Virtualized Infrastructure Manager (VIM) | Virtual infrastructure management (compute, storage, network) - e.g., OpenStack |
| NFV Infrastructure (NFVI) | Physical and virtual resources (servers, storage, network) |
| Element Management System (EMS) | Functional VNF management (function-specific configuration) |
| OSS/BSS | Operational and business support systems |
Service Chaining:
Service Chaining consists of sequentially connecting multiple VNFs to create a complete network service. For example, a user's traffic may successively pass through:
- vFirewall (filtering)
- vDPI (deep inspection)
- vLoad Balancer (load distribution)
- Application server
SDN greatly facilitates Service Chaining by allowing dynamic programming of flow paths through the various VNFs.
11. LISP Protocol (Locator/ID Separation Protocol)
LISP is a network protocol that separates a host's identifier from its location in the network. In traditional IP architecture, the IP address plays a dual role: it identifies the host AND indicates its topological location. This ambiguity causes problems for mobility, multi-homing and routing table scalability.
Fundamental concepts:
| Concept | Description |
|---|---|
| EID (Endpoint Identifier) | Host identifier (host IP address, stable) |
| RLOC (Routing Locator) | Network locator (border router IP address) |
| ITR (Ingress Tunnel Router) | Ingress router that encapsulates packets |
| ETR (Egress Tunnel Router) | Egress router that decapsulates packets |
| Map-Server | EID → RLOC mapping server |
| Map-Resolver | Server that resolves mapping requests |
Operation:
- A source host sends a packet to a destination EID
- The ITR queries the mapping system to obtain the RLOC associated with the destination EID
- The ITR encapsulates the original packet in a new IP packet with the RLOC as destination
- The packet traverses the core network using RLOCs
- The ETR decapsulates the packet and delivers it to the destination host
LISP advantages:
- Routing table reduction: only RLOCs are advertised in the core network
- Mobility: a host can change its location (RLOC) without changing its identity (EID)
- Multi-homing: an EID can be associated with multiple RLOCs for redundancy
- Traffic engineering: selection of the best RLOC according to metrics
12. Network programmability and APIs
Programmability is at the heart of the transformation of modern networks. SDN and NFV converge to create fully automatable and programmable networks.
Programmability levels:
- Automated configuration: scripts and tools (Ansible, Puppet, Chef) for deploying configurations
- SDN controllers: programming network behavior via Python/Java applications
- REST APIs: standardized interfaces for interacting with controllers and VNFs
- Intent-Based Networking: expression of intent (high-level policy) automatically translated into configuration
SDN + NFV convergence:
SDN and NFV are complementary:
- SDN provides network programmability (data plane)
- NFV provides function virtualization (service plane)
- Together, they enable the creation of fully software-defined, agile and automated network infrastructures
This convergence is at the heart of 5G network architectures, where network slicing relies on the ability to create virtual network slices with specific VNFs, interconnected by an SDN data plane.
PART D - Analysis and Reflection
Skills acquired
Understanding of the SDN paradigm:
Mastery of the control plane / data plane separation, the OpenFlow protocol and the three-layer architecture. Ability to explain the advantages and limitations of SDN compared to traditional networks.
Open vSwitch configuration:
Practical competency in creating logical bridges, attaching physical ports and managing OVS instances on real Pica8 equipment.
OpenFlow rule programming:
Ability to install flow rules at different levels of granularity: input port, IP addresses, transport protocols, application ports. Understanding of the impact of granularity on control precision and performance.
SDN controller deployment:
Experience with the Ryu controller, from verbose mode launch to running control applications (simple_switch_14). Understanding of reactive and proactive operation.
Complex topology management:
Experience deploying multi-switch mesh topologies and understanding loop problems and their solutions in an SDN context.
NFV and MANO understanding:
Knowledge of the network function virtualization architecture, VNF lifecycle and the MANO framework for orchestration.
Self-assessment
I found the "Emerging Network Technologies" course very engaging and educational, although some aspects were a bit complex for me as a student specializing in Electronics and Automation compared to those in the Network option. Despite this, I was actively involved in simulating topologies and testing various aspects, which provided me with a practical understanding of how these technologies are transforming network management.
Working on real Pica8 equipment was the most enriching part. Handling physical switches, installing OpenFlow rules and observing their immediate effect on connectivity provides a concrete dimension that simulations cannot offer.
The main challenge was understanding the mesh topology and loop management. Seeing the network become unstable with the addition of a single physical link made me understand the critical importance of loop prevention and the power of the SDN controller to solve this problem in a centralized manner.
As I am also enrolled in the Master REOC, I had already worked on SDN and Ryu in a more exploratory context. This course solidified my skills with a more structured and progressive approach. In REOC, we had conducted our own research and project, which offered a more hands-on but less guided experience.
Professional perspectives
The emerging technologies covered in this course are at the heart of network infrastructure transformation:
- Telecom operators: 5G deployment with network slicing (SDN + NFV)
- Cloud providers: virtual networks (VPC) and SDN for multi-tenancy
- Enterprises: SD-WAN to connect remote sites with agility
- Data centers: datacenter network automation with SDN
- IoT: intelligent IoT flow management via SDN controllers
Course Documents
Chapitre 1 - Introduction aux reseaux emergents Chapter 1 - Introduction to emerging networks
Cours introductif : problematiques des reseaux traditionnels, evolution vers SDN et NFV, enjeux de la programmabilite reseau. Introductory lecture: traditional network issues, evolution toward SDN and NFV, network programmability challenges.
Chapitre 2 - Software-Defined Networking (SDN) Chapter 2 - Software-Defined Networking (SDN)
Cours approfondi sur le SDN : architecture, protocole OpenFlow, controleurs, programmation reactive et proactive. In-depth lecture on SDN: architecture, OpenFlow protocol, controllers, reactive and proactive programming.
Chapitre 3 - Introduction a LISP Chapter 3 - Introduction to LISP
Cours sur le protocole LISP : separation identifiant/localisateur, architecture ITR/ETR, systeme de mapping EID-RLOC. Lecture on the LISP protocol: identifier/locator separation, ITR/ETR architecture, EID-RLOC mapping system.
Reports and Projects
Rapport SDN & NFV SDN & NFV Report
Rapport de projet - SDN et NFV Project report - SDN and NFV
Rapport technique detaillant les travaux pratiques sur le Software-Defined Networking et la Network Functions Virtualization. Technical report detailing the lab work on Software-Defined Networking and Network Functions Virtualization.
Sujet de TP - Emerging Network Lab Subject - Emerging Network
Sujet du TP couvrant la configuration OVS, les regles OpenFlow, l'attachement du controleur Ryu et le deploiement de topologies maillees. Lab subject covering OVS configuration, OpenFlow rules, Ryu controller attachment and mesh topology deployment.
Course taken in 2024-2025 at INSA Toulouse, Department of Electrical and Computer Engineering.