Vous êtes sur la page 1sur 56

13/01/2023

VIRTUALISATION DES RÉSEAUX


Partie 2

SDN

OPENFLOW

NETCONF & YANG

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

LA VIE D’UN PAQUET

3
13/01/2023

L2 CONTRÔLE
• {master:1}

• admin@STKOAUBSIDWUP01> show ethernet-switching table

• Ethernet-switching table: 533 entries, 519 learned, 0 persistent entries


• VLAN MAC address Type Age Interfaces
• ILSPI_AUAR1 * Flood - All-members
• ILSPI_AUAR1 00:00:5e:00:01:0a Learn 0 ae10.0
• ILSPI_AUAR1 00:10:db:ff:10:01 Learn 0 ae0.0
• ILSPI_AUAR1 2c:b6:93:27:5a:00 Learn 0 ae10.0

• ILSPI_AUAR1 2c:b6:93:27:60:00 Learn 0 ae0.0


• ILSPI_AUAR1 40:b4:f0:d0:48:01 Learn 0 ge-1/0/0.0
• ILSPI_AUPR1 * Flood - All-members
• ILSPI_AUPR1 00:00:5e:00:01:1c Learn 0 ae10.0
• ILSPI_AUPR1 00:00:5e:00:01:2c Learn 0 ae10.0
• ILSPI_AUPR1 00:50:56:90:43:18 Learn 44 ae0.0
• ILSPI_AUPR1 00:50:56:90:43:1b Learn 42 ae0.0

L3 CONTRÔLE
• RIP

• OSPF / IS-IS

• IGP / EGP => BGP

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

L2 FORWARD, ROUTING, QoS, ACLs QoS, ACLs


ROUTING, QoS, ACLs
HARDWARE

QoS, ACLs ROUTING ROUTING

L2 FORWARD L2 FORWARD L2 FORWARD

PHYSICAL PHYSICAL PHYSICAL PHYSICAL

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

LES BESOINS DES DC


• Automatisation
• Scalabilité
• Multi-Path
• Multi-Tenancy
• Virtualisation / Programmable

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

PROBLÈME AVEC LE RE-ROUTAGE


2 1
20
3
A D 30
30 40 40
C E 120 F
80
10 5
B
40
4

22

22

PROBLÈME AVEC LE RE-ROUTAGE


2 1
20
3
A D 30
30 40 40
C E 120 F
80
10 5
B
40
4

23

23

11
13/01/2023

PROBLÈME AVEC LE RE-ROUTAGE


2 1
20
3
A D 30
30 40 40
C E 120
FAIL F
80
10 5
B
40
4

24

24

PROBLÈME AVEC LE RE-ROUTAGE


2 1
20
3
A D 30
30 40 40
C E 120
FAIL F
80
10 5
B
40
4

25

25

12
13/01/2023

PROBLÈME AVEC LE RE-ROUTAGE


2 1
20
3
A D 30
30 40 40
C E 120
FAIL F
80
10 5
B
40
4

26

26

QU’EST CE QUE LE SDN?

27

27

13
13/01/2023

PROBLÈME AVEC LE RE-ROUTAGE


2 1
20
3
A D 30
30 40 40
C E 120
FAIL F
80
10 5
B
40
4 Centralisation de
l’ingénierie du trafic

28

28

PROBLÈME AVEC LE RE-ROUTAGE


2 1
20
3
A D 30
10 40 40
C E 120
FAIL F
80
10 5
B
40
4 Centralisation de
l’ingénierie du trafic

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

SDN SOFTWARE SWITCH


Vers le Controller

API OpenFlow

Abstraction Layer

Flow Table

SW
Packet Processing

34

34

HARDWARE SDN DEVICE


Vers le Controller

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

MIGRATION VERS UN RÉSEAU SDN

43

43

GOOGLE INNOVATIONS

44

44

21
13/01/2023

GOOGLE ET LE SDN

46

46

DÉPLOIEMENT SDN MIXTE

47

47

22
13/01/2023

DÉPLOIEMENT SDN MIXTE

48

48

DÉPLOIEMENT SDN MIXTE

49

49

23
13/01/2023

DÉPLOIEMENT SDN MIXTE

50

50

B4 WAN

51

51

24
13/01/2023

INTEGRATING ROUTING WITH


OPENFLOW CONTROL

53

53

DÉPLOIEMENT SDN MIXTE

54

54

25
13/01/2023

DÉPLOIEMENT SDN MIXTE

55

55

DÉPLOIEMENT SDN MIXTE

56

56

26
13/01/2023

MULIPATH WAN FORWARDING

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

CONTROLLER SDN : JUNIPER


• Rachat de Contrail en 2012
• Contrôleur compatible avec OpenFlow
• BGP sur les routeurs
• XMPP (Extensible Messaging and Presence Protocol) pour contrôler
les switches virtuels
• Utilisation de MPLS niveaux 2 & 3

59

59

CONTROLLER SDN : JUNIPER

60

60

28
13/01/2023

CONTROLLER SDN : VMWARE


• Vmware NSX
• Acquisition de Nicira (NVP) en 2012
• Livraison de NSX en 2013, intégré à la
solution vSphere
• Solution logicielle de virtualisation de
réseau par overlay
• API Northbound et Southbound
propriétaire

61

61

CONTROLLER SDN : OPEN-SOURCE


• NOX
• Premier contrôleur Open Source utilisant OpenFlow
• Créé par Nicira
• Développé en C++
• POX
• Jeune frère de NOX
• Plateforme pour le développement et prototypage
• Écrit en Python

62

62

29
13/01/2023

CONTROLLER SDN : OPENDAYLIGHT


• Objectif : fournir une plateforme Open Source
• Accélérer les concepts du SDN
• Créer une base solide pour les déploiements NFV
• 3 couches :
• Network Apps & Orchestration : logiques métier et réseau
• Controller Platform : middleware
• Physical & Virtual Network Devices : matériel

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

MODE « REACTIVE » / « PROACTIVE »

68

68

32
13/01/2023

FLOW TABLES

69

69

OPENFLOW PIPELINE

70

70

33
13/01/2023

PAQUET DANS LE PIPELINE

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

Write-Actions Applique les actions en fin de pipeline uniquement

Apply-Actions Applique les actions immédiatement

Goto-Table Transfert le paquet à une autre Flow Table

Clear-Actions Retire toute les actions planifiées

Write-Metadata Écrit les métadonnées sur le paquet

Meter Dirige un paquet vers une métrique (définition de seuil)

Table-Miss Actions à appliquer par défaut (aucun autre match)

76

76

36
13/01/2023

MATCHING AND INSTRUCTION


EXECUTION IN A FLOW TABLE

77

77

ACTIONS
Action

Output * Transmet le paquet sur le port spécifié

Set-Queue Définit des files d’attentes (QoS basique)

Drop * Implicite (aucune action Output ou Group)

Group * Applique les actions du groupe au paquet

Push/Pop-Tag Ajoute/Retire un tag VLAN/MPLS

Set-Field Modifie les headers d’un paquet (exemple : VLAN)

Change-TTL Modifie le TTL

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

Features Demande au Switch ses capacités basiques et son identité

Configuration Demande ou configure les paramètres de conf du SW

Modify-State Ajoute/modifie/Supprime des Group, Flow Tables, Flow Entries ou ports

Read-State Récupère des informations du Switch (stats, config, capacités)

Packet-In Paquet reçu d’un switch, nécessité de traitement avant renvoi

Barrier Permet de s’assurer de l’ordre d’exécution des instructions par le SW

Role-Request Demande ou défni son rôle avec le SW (master/slave/equal)

Asynchronous-Conf Définit ce que le contrôleur accepte de recevoir via messages asynchrones

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

Ease of use Solution simple pour manager n’importe quel réseau

Distinction Séparer la conf des statistiques et pas de sortie en binaire

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

Check configuration Permettre de voir les évolutions de configuration (version)

Standard Standardiser les Data Models

Distribution vs Activation Appliquer plusieurs opérations puis commit

97

97

ARCHITECTURE BASIQUE

99

99

47
13/01/2023

ÉCHANGE DES CAPACITÉS


<?xml version="1.0" encoding="UTF-8"?>
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<capabilities>
<capability>urn:ietf:params:netconf:base:1.0</capability>
<capability>urn:ietf:params:netconf:capability:writable-running:1.0</capability>
<capability>urn:ietf:params:netconf:capability:candidate:1.0</capability>
<capability>urn:ietf:params:netconf:capability:confirmed-commit:1.0</capability>
<capability>urn:ietf:params:netconf:capability:rollback-on-error:1.0</capability>
<capability>urn:ietf:params:netconf:capability:validate:1.0</capability>
</capabilities>
<session-id>1227</session-id>
</hello>

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

NETCONF & YANG

107

107

51
13/01/2023

YANG : STRUCTURE GÉNÉRALE

108

108

YANG : STRUCTURE GÉNÉRALE

109

109

52
13/01/2023

YANG : STRUCTURE GÉNÉRALE

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

Vous aimerez peut-être aussi