Académique Documents
Professionnel Documents
Culture Documents
SDN
OPENFLOW
Nicolas ROHART
nicolas.rohart@outlook.fr
RÉFÉRENCES
• Sofware Defined Network, A Comprehensive Approach, Paul
Göransson
• SDN: Software Defined Networks, Thomas D. Nadeau and Ken Gray,
O’REILLY
• Foundations of modern networking: SDN, NFV, QoE, IoT, and Cloud,
William Stallings. Addison-Wesley Professional, 2015
• Network Functions Virtualization with a touch of SDN, Rajendra
Chayapathi. Addison-Wesley, 2017
1
13/01/2023
INTRODUCTION SDN
DATA CENTER
LEGACY
2
13/01/2023
PLANES SNMP
Statistics, Status
MANAGEMENT Plane
CONTROL Plane
Unknown Packets
Configuration
Control Packets
Program
Forwarding Table Forwarding Table
Data in
DATA Plane
Data out
3
13/01/2023
L2 CONTRÔLE
• {master:1}
L3 CONTRÔLE
• RIP
• OSPF / IS-IS
4
13/01/2023
SATURATION
10
10
CONTRÔLEUR CENTRALISÉ
11
11
5
13/01/2023
CHANGEMENT DE PARADIGME
12
MIGRATION SUR LE HW
SOFTWARE
CONTROLE
CONTROLE CONTROLE CONTROLE
TEMPS
~1990 ~1995 ~2000 ~2005
13
13
6
13/01/2023
COST
• Augmentation des coûts de développement
• Environnement bloqué par les vendeurs
• Complexité et résistance aux changements
• Augmentation des coûts de gestion du réseau
14
14
15
15
7
13/01/2023
GENÈSE DU SDN
16
SNMP
• Supervision
• Management
• Temps réel
• MIB -> OID
17
17
8
13/01/2023
RADIUS
• AAA
• Reconfigurer le réseau -> précurseur
• Manque de confiance de la part de l’IT
18
18
AUTOMATISATION
• USE :
• APIs
• CLI
• SNMP
• ANSIBLE & PYTHON
• Terraform
19
19
9
13/01/2023
APPARTÉ : CI/CD
20
20
APPARTÉ : CI/CD
21
21
10
13/01/2023
22
22
23
23
11
13/01/2023
24
24
25
25
12
13/01/2023
26
26
27
27
13
13/01/2023
28
28
29
29
14
13/01/2023
SDN
30
ONF
• Deutsche Telecom
• Facebook
• Google
• Microsoft
• Verizon
• Yahoo!
31
31
15
13/01/2023
SDN
32
32
FLOW TABLES
• Évaluer les paquets
• Prise de décision:
• Forward
• Drop
• Flood
33
33
16
13/01/2023
API OpenFlow
Abstraction Layer
Flow Table
SW
Packet Processing
34
34
API OpenFlow
Abstraction Layer
Flow Table
HW L3 Fwd L2 Fwd
TCAMs CAMs
35
35
17
13/01/2023
CAM
36
36
TCAM
37
37
18
13/01/2023
CONTROLLER MODULES
Learning
GUI Router Others …
switch
Northbound Python
API REST API Java API
API
Modules Device
Disco & Topo Mgr Topo Stats Flows
Southband
API OpenFlow, BGP, OF-Config, …
39
39
CONTROLLER INTERFACES
Other context
NetFlow IDS BGP
Application
Events Methods
Controller
Northbound Python
API REST API Java API
API
40
40
19
13/01/2023
SCALABILITÉ
41
41
SDN DESIGN
42
42
20
13/01/2023
43
43
GOOGLE INNOVATIONS
44
44
21
13/01/2023
GOOGLE ET LE SDN
46
46
47
47
22
13/01/2023
48
48
49
49
23
13/01/2023
50
50
B4 WAN
51
51
24
13/01/2023
53
53
54
54
25
13/01/2023
55
55
56
56
26
13/01/2023
57
57
PROBLÈMES
• Manque de recul (de moins en moins vrai)
• Équipements hétérogènes
• Variété des applications
• Prioriser les flux
58
58
27
13/01/2023
59
59
60
60
28
13/01/2023
61
61
62
62
29
13/01/2023
63
63
CONSÉQUENCES
• Perte des protocoles « propriétaires »
• Infrastructures existantes « traditionnelles » :
• Cohabitation nécessaire
• Transition compliquée
• 2 types de switch OpenFlow :
• Switch OpenFlow-only
• Switch hybrides
64
64
30
13/01/2023
OPENFLOW
65
VUE GÉNÉRALE
• Modèle SDN
• Communication Switch <-> Controller
• Intelligence déportée (Controller)
• Connexion TLS/TCP
• TLS préféré
• Port réservé par l’IANA : 6653
• Enregistrement : Switch -> Controller
66
66
31
13/01/2023
SWITCH OPENFLOW
67
67
68
68
32
13/01/2023
FLOW TABLES
69
69
OPENFLOW PIPELINE
70
70
33
13/01/2023
71
71
MATCH FIELDS
• Champs obligatoires :
• IN_PORT
• ETH_[SRC|DST]
• ETH_TYPE
• IP_PROTO
• IPV[4|6]_[SRC|DST]
• PORT_[TCP|UDP]_[SRC|DST]
• Champs optionnels :
• VLAN_VID
• MPLS_LABEL, …
72
72
34
13/01/2023
ENTRÉES
73
73
ENTRY MATCHING
74
74
35
13/01/2023
TRAITEMENT
DES PAQUETS
75
75
INSTRUCTION SETS
Instruction
76
76
36
13/01/2023
77
77
ACTIONS
Action
78
78
37
13/01/2023
INSTRUCTION VS ACTION
• Les instructions sont exécutées lorsqu’un paquet match une entrée
dans la flow table
• Une instruction peut consister à ajouter une action à un ensemble
d’actions pour un paquet donné
• L’ensemble des actions sont exécutées à la fin du pipeline (sauf si
Apply-Action)
79
79
ACTION : GROUP
80
80
38
13/01/2023
ACTION : GROUP
81
81
TERMINOLOGIE
• Flow Entry
• Champs comparés au paquet pour correspondance
• Actions
• Opération déterminant l’action sur un paquet
• Action Bucket
• Liste/groupe d’actions
82
82
39
13/01/2023
TERMINOLOGIE
• Action List
• Action ou liste d’action de l’instruction Apply-Actions
• Actions appliquées immédiatement
• Action Set
• Action ou liste d’action de l’instruction Write-Actions
• Action appliquée en fin de pipeline
83
83
TERMINOLOGIE
• Instruction Set
• Détermine le type de comportement et de traitement à appliquer au trafic
• Group
• Liste d’action buckets
• Action buckets sélectionné individuellement pour chaque paquet
• Datapath
• Chemin emprunté par les paquets
• Déterminé dynamiquement en fonction du trafic
84
84
40
13/01/2023
TERMINOLOGIE
• Metadata
• Données transportées entre flow tables
• Permet de garder les informations (tags,…) dans le pipeline
• Meter
• Métrique permettant de contrôler les flux de données
• Exemple : bloquer le trafic au-delà d’une certaine limite
• Counters
• Compteurs
• Exemple : nombre de paquets, quantité de données (octets émis/reçus)
85
85
CONNEXION SW - CO
86
86
41
13/01/2023
CONNEXION SW - CO
87
87
CONNEXION SW - CO
88
88
42
13/01/2023
CONNEXION SW - CO
89
89
MESSAGES : CONTROLLER-TO-SWITCH
Message
90
90
43
13/01/2023
MESSAGES : ASYNCHRONOUS
• Packet-In
• Paquet de données envoyé par le SW au contrôleur
• Le contrôleur y répond après traitement
• Flow-Removed
• Information envoyée lors de la suppression d’une Flow Entry
• Sur expiration du flux ou en réponse à une demande expresse du contrôleur
• Port-Status
• Information envoyée lors du changement de conf d’un port
• Exemples : port désactivé par un utilisateur, lien tombé, …
91
91
MESSAGES : SYMETRIC
• Hello
• Échange lors de l’établissement de la connexion
• Echo request / Echo reply
• Vérifie l’état de la connexion, stats (latence,…)
• Error
• Remontée d’erreur indiquant qu’une instruction/requête est tombée en
erreur
• Experimenter
• Utilisé pour des fonctions expérimentales (future version d’OF)
92
92
44
13/01/2023
LIMITES ?
• Évolution rapide
• Deep Packet Inspection
• DDoS
93
93
TP : MININET
94
94
45
13/01/2023
NETCONF / YANG
95
ORIGINE
SNMP
Expérience
CLI
Opérateurs
Best
besoin
Practice
NETCONF
YANG
96
96
46
13/01/2023
EXIGENCE OPÉRATEUR
Exigence
Network as a whole Conf du service et réseau dans son ensemble, et pas par équipement (rollback)
Minimize the change Une transaction = liste de changements, pas une séquence
97
97
ARCHITECTURE BASIQUE
99
99
47
13/01/2023
100
100
NETCONF : MODÉLISATION
101
101
48
13/01/2023
EXEMPLE DE MESSAGE
102
102
VUE GÉNÉRALE
103
103
49
13/01/2023
DATASTORES
104
104
OPÉRATIONS COMMUNES
105
105
50
13/01/2023
YANG
• Yet Another Next Generation
• Caractéristiques :
• Modélisation :
• Des données de configuration
• Des données d’état des éléments du réseau
• Structure en arbre
• Définition de données et des types
• Instanciation du modèle en XML et JSON
106
106
107
107
51
13/01/2023
108
108
109
109
52
13/01/2023
110
110
COMPARAISON
111
111
53
13/01/2023
Intent-Based Networking
112
112
IBN
1.Intent: Network performance goal
2.Policy: Aims that indicate successful goal achievement
3.Profile: A stored policy implementation
4.Activation: Running a profile to change switch settings
5.Analytics: Goal achievement tracking
6.Adjustments: Maintenance of performance goals
7.Assurance: Confirmation of successful goal achievement
113
54
13/01/2023
IBN
114
114
IBN
115
115
55
13/01/2023
CONCLUSION
116
56