O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Software Defined Networking

Book Description

Software Defined Networking (SDN) stellt einen ziemlichen Paradigmenwechsel im Netzwerkumfeld da. Heutige Netzwerke werden nach wie vor relativ statisch konfiguriert. Es gibt dynamische Routingprotokolle die dafür geschaffen wurden, Ausfälle zu erkennen und den Verkehr dann über andere Wege zu leiten. Den richtigen Lösungsweg zu finden, stellt sich aber teilweilse sehr komplex dar.

Außerdem werden die Geräte (Router, Switche, Firewalls) in der Regel einzeln konfiguriert. Einen neuen Datenpfad zu schaffen, erfordert daher von den Administratoren viele einzelne Arbeitsschritte, ein Fehler in einem dieser Schritte (z.B. ein Tippfehler in einer IP-Adresse) und der ganze Pfad funktioniert nicht.

Netzwerkgeräte haben in der Regel eine sogenannte Control Plane, welche die Steuerung übernimmt (welche Daten sollen wo lang fließen) und die Data Plane in welcher (häufig mit Hardwarebeschleunigung) aufgrund der Regeln der Control Plane die eigentlichen Daten fließen. Jedes Netzwerkgerät besitzt in der Regel eine eigene Control Plane und muss deswegen einzeln konfiguriert werden.

Die Idee hinter SDN ist nun, die Control Plane zu zentralisieren. Erst Konzepte stammen so etwa aus dem Jahr 2005 aus den USA. Ein zentraler Controller kann wesentlich „intelligentere“ Entscheidungen treffen, da er den Zustand des Gesamtnetzwerkes kennt. Über ein Steuerprotokoll kann er dann den Geräten Anweisungen geben, welche Pakete über welchen Pfad weiterzuleiten sind.

Damit sind wesentlich komplexere Entscheidungen möglich und auch das schnelle Umleiten von Verkehr ist möglich.

Das momentan marktführende Protokoll heißt OpenFlow und und wird von der Open Networking Foundation weiterentwickelt. Das wirklich interessante dabei ist, das in den neueren OpenFlow Versionen die Trennung der ISO-Schichten 2 – 4 eigentlich aufgeweicht wird und auch dies dazu beiträgt, dass durch komplexere Entscheidungen möglich sind.

Die Controller erlauben es, eigene Programme über ein Programmier-Interface einzuklinken und damit kann sich der Netzwerkadministrator vom statischen Netzwerk der Vergangenheit verabschieden und das Netzwerk wirklich programmieren.

Das Buch soll nach einer Einführung in die Theorie, die sich aber auf ein Kapitel SDN allgemein (viele Hersteller verkaufen unter SDN nur eine leicht flexiblere Konfigurierbarkeit Ihrer Komponenten) und einem Kapitel, welches den OpenFlow Standard erklärt (in seinen verschiedenen Versionen) dem Leser das Thema praktisch näherbringen. Dazu wird gezeigt, wie nur durch das „einschieben“ von Flows Regeln auf OpenFlow fähige Geräte gebracht werden können. Ein Kapitel wird sich mit den Möglichkeiten bzw. Limitierungen tatsächlich OpenFlow fähiger Geräte beschäftigen. Und schließlich führen wir in die APIs der beiden Controller Floodlight und OpenDayLight ein, damit der Leser danach seine eigenen Ideen mit diesen APIs umsetzen kann, um das eigene Netzwerk zu Programmieren.

Table of Contents

  1. Cover
  2. Titelseite
  3. Impressum
  4. Widmung
  5. Inhalt
  6. Abbildungsverzeichnis
  7. Vorwort
  8. 1 SDN-Theorie
    1. 1.1 Netzwerk Abstrakt
    2. 1.2 Routing-Protokolle
    3. 1.3 Configuration Management
      1. 1.3.1 SNMP
      2. 1.3.2 NETCONF
    4. 1.4 Overlay-Netzwerke
      1. 1.4.1 Overlay mit GRE
      2. 1.4.2 Overlay mit VXLAN
      3. 1.4.3 MPLS
    5. 1.5 Open vSwitch Database (OVSDB)
  9. 2 OpenFlow
    1. 2.1 Die Struktur
      1. 2.1.1 Ports
      2. 2.1.2 Switch-Typen
      3. 2.1.3 Anmerkungen zum Protokoll
      4. 2.1.4 Flows und Flow-Tabellen
        1. 2.1.4.1 Matches
        2. 2.1.4.2 Counter
        3. 2.1.4.3 Instructions
        4. 2.1.4.4 Actions Sets und Action Lists
        5. 2.1.4.5 Actions
        6. 2.1.4.6 Groups
        7. 2.1.4.7 Meters
        8. 2.1.4.8 Queues
    2. 2.2 OpenFlow 1.0
    3. 2.3 OpenFlow 1.4 und 1.5
    4. 2.4 Flow Kochbuch
      1. 2.4.1 Layer 2
      2. 2.4.2 Routing
      3. 2.4.3 Firewalling
      4. 2.4.4 Address Translation
    5. 2.5 Fazit
  10. 3 OpenFlow-Implementierungen
    1. 3.1 Open vSwitch
      1. 3.1.1 Grundkonfiguration
      2. 3.1.2 STP
      3. 3.1.3 VLANs
      4. 3.1.4 Bonding/LAG
      5. 3.1.5 Overlay-Netze
      6. 3.1.6 „Interne Verkabelung“
      7. 3.1.7 Verschiedenes
      8. 3.1.8 OpenFlow
      9. 3.1.9 Mininet
    2. 3.2 PicOS
    3. 3.3 Juniper
    4. 3.4 Arista
    5. 3.5 Zodiac FX
  11. 4 Project Floodlight
    1. 4.1 Die Installation
    2. 4.2 Die grafische Weboberfläche
    3. 4.3 REST APIs von FloodLight
      1. 4.3.1 Static Flow Pusher
        1. 4.3.1.1 Matches
      2. 4.3.2 Instruktionen und Aktionen
        1. 4.3.2.1 Aktionen
      3. 4.3.3 Groups und Meters
    4. 4.4 Eigene Module entwickeln
      1. 4.4.1 Die Entwicklungsumgebung
      2. 4.4.2 Hello World in Floodlight
      3. 4.4.3 Die zweite Applikation
        1. 4.4.3.1 Das REST API
      4. 4.4.4 Pakete Lesen und Schreiben
        1. 4.4.4.1 Pakete Empfangen
        2. 4.4.4.2 Pakete Senden
        3. 4.4.4.3 Pakete manipulieren und weiterschicken
      5. 4.4.5 Gruppen und Meters
        1. 4.4.5.1 Gruppen
        2. 4.4.5.2 Meters
  12. 5 OpenDaylight
    1. 5.1 Architektur
    2. 5.2 Installation
    3. 5.3 REST-API
      1. 5.3.1 Flows für OpenFlow verwalten
        1. 5.3.1.1 Das Datenmodell
        2. 5.3.1.2 Filter / Matches
        3. 5.3.1.3 Instruktionen und Aktionen
        4. 5.3.1.4 Gruppen
        5. 5.3.1.5 Meters
      2. 5.3.2 BGP- und BGP-FlowSpec steuern
        1. 5.3.2.1 Einfügen und Löschen einer IPv4-Route
        2. 5.3.2.2 Einfügen und Löschen einer FlowSpec-Route
    4. 5.4 Eigene Applikationen in OpenDaylight integrieren
      1. 5.4.1 Hello World in OpenDaylight
      2. 5.4.2 Die zweite Applikation
        1. 5.4.2.1 Vorbereitende Arbeiten
        2. 5.4.2.2 Nodes
        3. 5.4.2.3 Flowverwaltung
        4. 5.4.2.4 Ein RPC für die Firewall-Regeln
        5. 5.4.2.5 MDSAL Data Store
      3. 5.4.3 Pakete lesen und schreiben
        1. 5.4.3.1 Pakete empfangen
        2. 5.4.3.2 Pakete einfügen
        3. 5.4.3.3 Pakete manipulieren und weiterschicken
        4. 5.4.3.4 Abschlussbemerkungen zur Applikationsentwicklung
  13. A Filter und Aktionen bei Open vSwitch
    1. A.1 Matches
    2. A.2 Actions und Instructions
  14. B Vollständige Klassendefinitionen
    1. B.1 globalfirewall
    2. B.2 FlowManagement
    3. B.3 packetMagic erweiterte Version
    4. B.4 PacketMagicRestletRoutable erweiterte Version
    5. B.5 packetMagic. java finale Version
  15. C Glossar
  16. Literatur
  17. Stichwortverzeichnis