Cours connexes :


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

ElementVolumeDescription
Cours magistraux~10hTheorie SDN, NFV, LISP, architectures
Travaux pratiques~12hConfiguration 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

OutilRoleUtilisation
Open vSwitch (OVS)Commutateur virtuelCreation de ponts logiques, gestion des flux
RyuControleur SDNProgrammation d'applications de controle reseau
ovs-vsctlCLI d'administration OVSConfiguration des ponts et ports
ovs-ofctlCLI OpenFlow pour OVSInstallation/suppression de regles de flux
Pica8 picOSSysteme d'exploitation des commutateursMode OVS/OpenFlow
WiresharkAnalyseur de paquetsObservation des echanges OpenFlow
PythonProgrammationDeveloppement 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 :

CoucheNomRoleExemples
Couche ApplicationApplication PlaneApplications de controle reseauFirewall, Load Balancer, QoS Manager
Couche ControleControl PlaneDecisions de routage, vision globaleRyu, OpenDaylight, ONOS, Floodlight
Couche InfrastructureData PlaneAcheminement des paquets selon les reglesOpen 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 :

ChampDescription
Match fieldsCriteres de correspondance (port entree, adresses MAC/IP, ports TCP/UDP, VLAN, etc.)
PriorityPriorite de la regle (regles avec priorite plus elevee evaluees en premier)
CountersCompteurs de paquets et d'octets correspondants
Instructions/ActionsActions a effectuer (forward, drop, modifier en-tete, envoyer au controleur)
TimeoutsDuree de validite de la regle (idle timeout, hard timeout)
CookieIdentifiant opaque defini par le controleur

Processus de traitement d'un paquet :

  1. Un paquet arrive sur un port du commutateur
  2. Le commutateur compare les champs du paquet aux entrees de la table de flux
  3. Si une correspondance est trouvee : executer les actions associees
  4. Si aucune correspondance : envoyer un message Packet-In au controleur
  5. Le controleur analyse le paquet et repond avec un Packet-Out ou installe une nouvelle regle via Flow-Mod

Messages OpenFlow principaux :

MessageDirectionDescription
Packet-InSwitch → ControleurNotification d'un paquet sans correspondance
Packet-OutControleur → SwitchInstruction de traitement pour un paquet
Flow-ModControleur → SwitchAjout/modification/suppression d'une regle de flux
HelloBidirectionnelEtablissement de la connexion OpenFlow
Features-Request/ReplyBidirectionnelDecouverte des capacites du commutateur
Stats-Request/ReplyBidirectionnelConsultation 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 :

  1. Reception d'un Packet-In pour un paquet dont le destinataire est inconnu
  2. L'application demande au commutateur de diffuser le paquet sur tous les ports (flood)
  3. Lorsque le destinataire repond, l'application apprend sa localisation (adresse MAC associee a un port)
  4. 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
CritereMode reactifMode proactif
LatencePremier paquet retarde (Packet-In)Aucune latence supplementaire
FlexibiliteTres flexible, s'adapte dynamiquementNecessite connaissance prealable
Charge controleurElevee (traite chaque nouveau flux)Faible (configuration initiale)
Tolerance aux pannesDependant du controleurFlux continues meme si controleur down
Cas d'usageReseaux dynamiques, apprentissageTrafic 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 :

ControleurLangageLicenceCaracteristiques
RyuPythonApache 2.0Leger, pedagogique, extensible, facile a programmer
OpenDaylight (ODL)JavaEclipse PublicTres complet, modulaire, support industriel (Linux Foundation)
ONOSJavaApache 2.0Haute disponibilite, oriente operateurs telecom
FloodlightJavaApache 2.0Developpe par Big Switch Networks, performant
POXPythonApache 2.0Predecessor 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 traditionnelleVNF equivalente
Pare-feu materielvFirewall
Load Balancer physiquevLoad Balancer
Routeur physiquevRouter
IDS/IPS materielvIDS/vIPS
WAN OptimizervWAN Optimizer
DPI appliancevDPI

Cycle de vie des VNFs :

  1. Instantiation : deploiement de la VNF sur l'infrastructure virtuelle
  2. Configuration : parametrage initial de la fonction
  3. Scaling : mise a l'echelle (scale-up/scale-down, scale-in/scale-out)
  4. Monitoring : supervision des performances et de la sante
  5. Update/Upgrade : mise a jour du logiciel sans interruption
  6. 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 :

ComposantRole
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/BSSSystemes 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 :

  1. vFirewall (filtrage)
  2. vDPI (inspection approfondie)
  3. vLoad Balancer (repartition de charge)
  4. 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 :

ConceptDescription
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-ServerServeur de correspondance EID → RLOC
Map-ResolverServeur qui resout les requetes de mapping

Fonctionnement :

  1. Un hote source envoie un paquet vers un EID destination
  2. L'ITR interroge le systeme de mapping pour obtenir le RLOC associe a l'EID destination
  3. L'ITR encapsule le paquet original dans un nouveau paquet IP avec le RLOC comme destination
  4. Le paquet traverse le reseau de coeur en utilisant les RLOC
  5. 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.

Telecharger le chapitre 1 Download chapter 1

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.

Telecharger le chapitre 2 - SDN Download chapter 2 - SDN

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.

Telecharger le chapitre 3 - LISP Download chapter 3 - LISP


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.

Ouvrir le rapport complet Open the full report

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.

Ouvrir le sujet de TP Open the lab subject


Cours suivi en 2024-2025 a l'INSA Toulouse, Departement Genie Electrique et Informatique.

Related courses:


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

ElementVolumeDescription
Lectures~10hSDN, NFV, LISP theory, architectures
Lab sessions~12hOVS 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

ToolRoleUsage
Open vSwitch (OVS)Virtual switchCreation of logical bridges, flow management
RyuSDN controllerProgramming network control applications
ovs-vsctlOVS administration CLIBridge and port configuration
ovs-ofctlOpenFlow CLI for OVSInstallation/deletion of flow rules
Pica8 picOSSwitch operating systemOVS/OpenFlow mode
WiresharkPacket analyzerObservation of OpenFlow exchanges
PythonProgrammingDevelopment 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:

LayerNameRoleExamples
Application LayerApplication PlaneNetwork control applicationsFirewall, Load Balancer, QoS Manager
Control LayerControl PlaneRouting decisions, global visionRyu, OpenDaylight, ONOS, Floodlight
Infrastructure LayerData PlanePacket forwarding according to rulesOpen 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:

FieldDescription
Match fieldsMatching criteria (input port, MAC/IP addresses, TCP/UDP ports, VLAN, etc.)
PriorityRule priority (higher priority rules evaluated first)
CountersMatching packet and byte counters
Instructions/ActionsActions to perform (forward, drop, modify header, send to controller)
TimeoutsRule validity duration (idle timeout, hard timeout)
CookieOpaque identifier defined by the controller

Packet processing workflow:

  1. A packet arrives on a switch port
  2. The switch compares packet fields against flow table entries
  3. If a match is found: execute the associated actions
  4. If no match: send a Packet-In message to the controller
  5. The controller analyzes the packet and responds with a Packet-Out or installs a new rule via Flow-Mod

Main OpenFlow messages:

MessageDirectionDescription
Packet-InSwitch → ControllerNotification of a packet with no match
Packet-OutController → SwitchProcessing instruction for a packet
Flow-ModController → SwitchAddition/modification/deletion of a flow rule
HelloBidirectionalOpenFlow connection establishment
Features-Request/ReplyBidirectionalDiscovery of switch capabilities
Stats-Request/ReplyBidirectionalStatistics 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:

  1. Reception of a Packet-In for a packet whose destination is unknown
  2. The application asks the switch to broadcast the packet on all ports (flood)
  3. When the destination responds, the application learns its location (MAC address associated with a port)
  4. 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
CriterionReactive modeProactive mode
LatencyFirst packet delayed (Packet-In)No additional latency
FlexibilityVery flexible, adapts dynamicallyRequires prior knowledge
Controller loadHigh (processes each new flow)Low (initial configuration)
Fault toleranceDependent on controllerFlows continue even if controller is down
Use casesDynamic networks, learningPredictable 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:

ControllerLanguageLicenseCharacteristics
RyuPythonApache 2.0Lightweight, educational, extensible, easy to program
OpenDaylight (ODL)JavaEclipse PublicVery comprehensive, modular, industrial support (Linux Foundation)
ONOSJavaApache 2.0High availability, telecom operator-oriented
FloodlightJavaApache 2.0Developed by Big Switch Networks, performant
POXPythonApache 2.0Predecessor 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 functionEquivalent VNF
Hardware firewallvFirewall
Physical load balancervLoad Balancer
Physical routervRouter
Hardware IDS/IPSvIDS/vIPS
WAN OptimizervWAN Optimizer
DPI appliancevDPI

VNF lifecycle:

  1. Instantiation: deployment of the VNF on the virtual infrastructure
  2. Configuration: initial function parameterization
  3. Scaling: scaling (scale-up/scale-down, scale-in/scale-out)
  4. Monitoring: performance and health supervision
  5. Update/Upgrade: software update without interruption
  6. 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:

ComponentRole
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/BSSOperational 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:

  1. vFirewall (filtering)
  2. vDPI (deep inspection)
  3. vLoad Balancer (load distribution)
  4. 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:

ConceptDescription
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-ServerEID → RLOC mapping server
Map-ResolverServer that resolves mapping requests

Operation:

  1. A source host sends a packet to a destination EID
  2. The ITR queries the mapping system to obtain the RLOC associated with the destination EID
  3. The ITR encapsulates the original packet in a new IP packet with the RLOC as destination
  4. The packet traverses the core network using RLOCs
  5. 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.

Telecharger le chapitre 1 Download chapter 1

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.

Telecharger le chapitre 2 - SDN Download chapter 2 - SDN

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.

Telecharger le chapitre 3 - LISP Download chapter 3 - LISP


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.

Ouvrir le rapport complet Open the full report

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.

Ouvrir le sujet de TP Open the lab subject


Course taken in 2024-2025 at INSA Toulouse, Department of Electrical and Computer Engineering.