Introduction au Software Defined Networking

@srevereault

Architecte infrastructures chez

Sommaire

  • Pourquoi SDN ?
  • Concepts
  • Technologies et acteurs
  • Cas d'utilisation et démos
  • Conclusion

Sommaire

  • Pourquoi SDN ?
  • Concepts
  • Technologies et acteurs
  • Cas d'utilisation et démos
  • Conclusion

Pourquoi SDN ?

Complexité d'administration

  • Diversité des équipements réseaux
  • Diversité des interfaces d'administration
  • Interfaces propriétaires, langages spécifiques
  • Interventions multiples (source d'erreurs)

Pourquoi SDN ?

Complexification des infrastructures

  • Evolution du trafic
  • Evolution des cas d'usage
  • Impacts de l'automatisation
  • Sécurité

Pourquoi SDN ?

"Vendor lock-in"

  • Protocole propriétaires
  • Solutions d'administration centralisées coûteuses
  • Peu d'interopérabilité
  • Développements spécifiques

Pourquoi SDN ?

Une réponse à ces différents problèmes

Software-defined networking (SDN) is an approach to computer networking that allows network administrators to manage network services through abstraction of lower-level functionality.

Source : http://en.wikipedia.org/wiki/Software-defined_networking

Sommaire

  • Pourquoi SDN ?
  • Concepts
  • Technologies et acteurs
  • Cas d'utilisation et démos
  • Conclusion

Concepts - Les différents "plans"

  • Data (ou Forwarding) Plane : acheminement des paquets
  • Control Plane : règles de traitement des paquets
  • Management Plane, Application Plane

Concepts - SDN Controller

An SDN Controller in a software-defined network (SDN) is the “brains” of the network. It is the strategic control point in the SDN network, relaying information to the switches/routers ‘below’ (via southbound APIs) and the applications and business logic ‘above’ (via northbound APIs).

Source : https://www.sdxcentral.com/resources/sdn/sdn-controllers/

Concepts - Architecture

Source : https://www.sdxcentral.com/resources/sdn/inside-sdn-architecture/

Concepts - Interfaces

Northbound / Southbound Interfaces

Concepts - OpenFlow

  • Protocole de communication entre le contrôleur et les équipements
  • => Implémentation principale de la Southbound interface
  • Nécessite des équipements compatibles OpenFlow

Concepts - Flow Table

Une entrée de flux d’une Flow Table comporte 3 champs :

  • Un en-tête de paquet (règle) qui définit le flux.
  • Une action qui définit le traitement des paquets.
  • Des statistiques qui gardent la trace du nombre de paquets et d’octets pour chaque flux.

Concepts - Flow Table

Source : http://fr.slideshare.net/openflow/openflow-tutorial

Sommaire

  • Pourquoi SDN ?
  • Concepts
  • Technologies et acteurs
  • Cas d'utilisation et démos
  • Conclusion

Technos et acteurs

Open Networking Foundation

  • Fondation indépendante ("user-driven")...
  • La plupart des grands acteurs du réseau en sont membres (Cisco, IBM, HP, Nokia, ...)
  • Publie le standard OpenFlow

Technos et acteurs

Acteurs historiques

  • Officiellement, tout le monde adhère à l'approche SDN...
  • ... et publie son offre SDN (contrôleur, équipements, applications, ...)
  • Avec plus ou moins de respect de l'esprit initial SDN

Technos et acteurs

Monde Open Source

  • Open vSwitch : switch virtuel Open Source compatible OpenFlow
  • OpenStack Neutron : brique SDN implémentant les concepts de Network Functions Virtualization
  • Docker : acquisition de Socket Plane, intégration (libNetwork). Solution SDN basée sur Open vSwitch
  • Nombreux contrôleurs SDN (voir slide suivant)

Technos et acteurs

Contrôleurs et frameworks SDN Open Source

Technos et acteurs

Contrôleurs et solutions SDN propriétaires

Sommaire

  • Pourquoi SDN ?
  • Concepts
  • Technologies et acteurs
  • Cas d'utilisation et démos
  • Conclusion

Cas d'usage

Mon premier réseau SDN

Mininet : émulateur de réseau sous Linux

  • Utilise les Linux Bridges ou Open vSwitch
  • Contrôleur SDN intégré, possibilité d'utiliser un contrôleur externe
  • Utilisation native d'OpenFlow

Cas d'usage

Illustration du principe SDN

Source : https://s3f.iti.illinois.edu/usrman/openflow.html

Cas d'usage

Visualisation du réseau

Source : http://www.opendaylight.org/project/technical-overview

Cas d'usage

Règles de flux simples

Source : http://fr.slideshare.net/openflow/openflow-tutorial

Cas d'usage

Utilisation de la northbound interface


import httplib2
import json
import pprint

h = httplib2.Http(".cache")
h.add_credentials('admin', 'admin')

resp, content = h.request('http://127.0.0.1:8080/controller/nb/v2/topology/default/', "GET")
topology = json.loads(content)

print "Topologie : "
pprint.pprint(topology)

resp, content = h.request('http://127.0.0.1:8080/controller/nb/v2/statistics/default/flow', "GET")
statistics = json.loads(content)

print "--------------------------------"
print "Statistiques : "
pprint.pprint(statistics)
						

Sommaire

  • Pourquoi SDN ?
  • Concepts
  • Technologies et acteurs
  • Cas d'utilisation et démos
  • Conclusion

Conclusion

"La dernière frontière"

Une réponse aux besoins d'administration et d'automatisation de la couche réseau

Conclusion

Mais détournement des constructeurs

Les grands ont un intérêt limité à l'inter-opérabilité

  • Contrôleurs SDN propriétaires
  • Conservation des protocoles historiques
  • Voire création de protocoles "alternatifs"

Conclusion

Des détracteurs

SDN = ...

  • Still Does Nothing
  • Still Don't (k)Now
  • Seeing Dollars Now

Conclusion

Monde "software", écosystème Open Source

  • Commutateurs virtuels, plateformes Cloud
  • Plateformes x86, ARM
  • Switchs Open Source

Questions ?