Der ADMIN 05/13 wirft einen Blick auf die frei verfügbaren Cloud-Frameworks von Eucalyptus über OpenNebula bis OpenStack. Gute Aussichten für skalierbare ... (mehr)

Load Balancing als Dienst

Auch hierfür bietet Floodlight bereits eine rudimentäre Lösung. Die Floodlight-Load-Balancer-Applikation ist eine einfache Anwendung zur Verteilung von UDP-, TCP- oder ICMP-Flows auf verschiedene Server. Dabei übernimmt nicht eine eigenständige Netzwerkkomponente die Aufgabe der Lastverteilung, sondern das gesamte Netzwerk. De facto ist jeder Switch des Netzes daran beteiligt.

Steuern lässt sich der Floodlight-Load-Balancer über eine REST-API, welche an die OpenStack-Quantum-Load-Balancer-as-a-Service-API (LBaaS) angelehnt ist. So lassen sich virtuelle IP-Adressen für den Load Balancer erstellen und an diese Adressen gerichtete Flows automatisch an reale Server im Netz umleiten. Einmal konfiguriert, übernehmen die OpenFlow-Switche automatisch einen Großteil der Arbeit.

Wie viele andere Floodlight-Applikationen befindet sich der Load Balancer derzeit noch in der Entwicklung und bietet bisher nur eine Basis-Funktionalität. So findet die Verteilung der Flows nach einem Round-Robin-Verfahren statt und berücksichtigt weder die Last des Servers noch etwa das tatsächliche Datenaufkommen. Dennoch lässt sich bereits mit den vorhandenen Komponenten ein einfacher, aber leistungsfähiger Server-Load-Balancer realisieren. Durch die Open-Source-Quellen lässt sich die bestehende Software auch einfach den eigenen Bedürfnissen anpassen.

Mehr Sicherheit

Stateless Firewall: Auch im Bereich Sicherheit lassen sich mit SDN und OpenFlow neue Wege beschreiten und traditionelle Verfahren vereinfachen. Die kongruente Installation von Access Control Lists (ACLs) auf einer Vielzahl Switche eines Netzes etwa erweist sich bis heute als aufwendiges Unterfangen. Selbst in professionellen Systemen ergeben sich immer wieder Diskrepanzen zwischen Anforderung, Dokumentation und der eigentlichen Konfiguration. Wünschenswert ist ein System, das ACLs automatisch auf allen Netzwerkkomponenten durchsetzt. Auch hier bietet Floodlight eine elegante und standardisierte Lösung für das Problem.

Die Floodlight-Stateless-Firewall-Applikation ist ein reaktives Floodlight-Modul, das netzwerkweite ACL-Konfigurationen für alle OpenFlow-Switche zentral vorhält. Die Firewall-Regeln (ALLOW oder DENY) lassen sich für beliebige OpenFlow-Matches relativ komfortabel durch eine REST-API konfigurieren und nach Prioritäten sortieren.

Jedes Packet-In-Ereignis, das durch das erste Paket eines neuen Flows erzeugt wird, wird anschließend mit der Menge der existierenden Firewall-Regeln verglichen, bis entweder die Menge leer ist oder eine passende Regel gefunden wurde. Im zweiten Fall bestimmt die höchstpriorisierte Regel, ob das Paket weitergeleitet oder der Flow blockiert wird. Wird keine Regel gefunden oder besagt die Regel, dass der Flow erlaubt ist, passiert das Packet-In-Ereignis die Firewall und wird von nachfolgenden Floodlight-Modulen, wie beispielsweise dem bereits erwähnten Learning-Switch-Modul, regulär verarbeitet und weitergeleitet. Findet sich dagegen eine Regel, die den Flow blockiert, installiert die Firewall eine OpenFlow-Regel auf dem OpenFlow-Eingangsswitch zum Verwerfen aller weiteren Pakete desselben Flows.

Die Floodlight-Firewall erlaubt somit zentral konfigurierte, netzwerkweite ACL-Regeln, die automatisch auf alle (oder ausgewählte) Switche durchgesetzt werden. Das folgende, einfache Beispiel verdeutlicht die Konfigurationsmöglichkeiten. Die Regeln erlauben Verbindungen in das Subnetz 192.168.1.0/24 ausschließlich zu TCP-Port 80.

Protokoll | Ziel-IP | Ziel-Port | Action | Priorität
----------+---------+------------+-------+
---------
TCP | 192.168.1.0/24 | 80 | ALLOW | 1 TCP | 192.168.1.0/24 | * | DENY | 2
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023