IT-Administrator startet mit einem Blick in die Zukunft in das neue Jahr. So dreht sich der Heftschwerpunkt der Januar-Ausgabe um das Thema 'Future Networks'. ... (mehr)

Steuerung über OpenFlow

Ein Einsatzbereich, in dem Open vSwitch neben Virtualisierungsumgebungen sehr verbreitet ist, ist die Software-defined Networking-Forschung. Das wohl führende Protokoll in diesem Bereich, mit dem ein Controller die angeschlossenen Netzwerkgeräte steuert, ist OpenFlow, und es wird von Open vSwitch unterstützt. Die Tatsache, dass sich der Forscher hier sehr schnell auch komplexere Umgebungen zusammenbauen kann, ohne ein Netzwerkkabel in die Hand zu nehmen, macht es für Forschung und Entwicklung in diesem Bereich sehr attraktiv.

Die Testumgebung Mininet [2] baut mit Linux Name Spaces komplexe Umgebungen, die sich an einen OpenFlow-Controller wie OpenDaylight oder Floodlight anschließen lassen, um ihn mit echtem Verkehr zwischen verschiedenen IP-Adressen zu versorgen. Der Admin ordnet einem vswitch einen OF-Controller mit dem Kommando »ovs-ctl set-controller switch0 Protokoll:Host:Port« zu. Dabei ist das Protokoll entweder "tcp" für eine unverschlüsselte und ungesicherte Verbindung, "unix" für einen Unix Domain-Socket auf demselben Host oder "ssl" für eine gesicherte Verbindung. Im letzteren Fall müssen aber erst Zertifikate und Private Key konfiguriert werden.

Danach sollte der Switch im OpenFlow-Controller auftauchen und neue Flows, die durch das Lernen des Switches angelegt werden, auch in der Flow-Tabelle erscheinen. Da Open vSwitch aber "schon immer" OpenFlow unterstützt hat, geht noch mehr. Mit dem Kommandozeilenwerkzeug ovs-ofctl lassen sich die Flow-Tabellen anschauen und manipulieren. »ovs-ofctl show switch0« zeigt OpenFlow-Informationen über den Switch, »ovs-ofctl dump tables switch0« zeigt die Flow-Tabllen, »ovs-ofctl dump-flows switch0« deren Inhalt. Mit dem Kommandos "add-flow", "del-flow" und "mod-flow" können Flows auch ohne OpenFlow-Controller angelegt, gelöscht und modifiziert werden. Ein Beispiel, um alle TCP-Pakete zwischen den Hosts 192.168.1.1 und 192.168.1.2 zu verwerfen:

# ovs-ofctl add-flow switch0 "table=0,ip,nw_proto=6,nw_src=192.168.1.1,nw_dst=192.168.1.2,actions=drop"

Statt Verwerfen sind zum Beispiel auch Address oder Port Translation, VLAN Manipulation oder Weiterleiten an eine Gruppe möglich. Der volle Funktionsumfang von OpenFlow sprengt allerdings den Rahmen dieses Artikels.

Netzwerk-Monitoring

Jeder Admin möchte auch wissen, wie es um sein Netzwerk steht. Er will aber lieber vorher erfahren, wann es eng wird, und nicht erst durch Anrufe am Helpdesk darauf aufmerksam werden. Dafür gibt es eine Reihe von Netzwerkprotokollen, das älteste ist sicherlich SNMP. NetFlow, sFlow und IPFIX sind Protokolle, um Flow-Daten an einen Collector zu exportieren, sodass dieser sie auswerten und aufbereiten kann. Ein Flow ist dabei eine Kommunikationbeziehung der Art "IP A redet mit IP B auf Port X TCP" oder "MAC-Adresse A redet mit MAC-Adresse B IP". Dabei wird Anzahl und Größe der Pakete mitgezählt, sodass sich daraus die Auslastung ableiten lässt. Ein bekannter quelloffener Collector für die gesammelten Daten ist ntop. Im Beispiel konfiguriert der Administrator einen NetFlow Collector auf dem Switch switch0:

# ovs-vsctl -- set Bridge switch0 netflow=@nf -- --id=@nf create NetFlow targets=\"172.16.1.1:2055\" active-timeout=30

Das aktiviert NetFlow auf dem Switch switch0 und schickt die Flow-Daten an einen Collector auf der IP-Adresse 172.16.1.1 und dem Standard Netflow Port 2055. Ersetzt der Admin "netflow" durch "ipfix", passiert das Ganze mit IPFIX statt NetFlow, dabei sollte aber der Zielport angepasst werden. Bei sFlow ist die Syntax ein klein wenig anders. Hier heisst der Aufruf:

# ovs-vsctl -- --id=@sflow create sflow agent=eth0 target=\"172.16.1.1:6343\" header=128 sampling=64 polling=10 -- set bridge switch0 sflow=@sflow

Der Teil "agent=interfacename" zeigt an, von welchem Interface die Flowdaten geschickt werden sollen. Folgendes Kommando deaktiviert das Senden der Flow-Daten:

# ovs-vsctl clear Bridge linux-switch0 netflow

Bei diesem Vorgang werden die anderen Protokolle analog mit sflow beziehungsweise ipfix deaktiviert.

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