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)

Zusammenspiel mit dem Rest der Welt

VirtualBox und VMware bieten HostOnly-Interfaces. Diese tauchen auch auf dem Host auf (sichtbar mit ifconfig) und können mit dem add-port-Kommando einfach ihrem Switch zugewiesen werden. Dabei ist darauf zu achten, dass jeder Host sein eigenes Interface bekommt, da sonst innerhalb eines HostOnly-Interfaces die Hosts wieder wie an einem Hub hängen.

Xen besitzt ein vif-openvswitch-Skript, das Open vSwitch statt Linux Bridges verwendet. In der "xl.conf" muss dieses als "vif.default.script" eingetragen werden, ebenso wenn der Default-Switch nicht "xenbr0" heißt. Ansonsten ist die Konfiguration in den vif-Definitionen analog zu der mit Linux Bridges. Dass der Switch existiert, ist Aufgabe von ovs-vswitchd, der laufen muss, bevor der erste Xen-Gast startet.

KVM verwendet Tap Interfaces, die eingebunden werden können, aber auch hier ist auf die Reihenfolge zu achten. Der Administrator kann den Start des KVM-Gasts mit Skripten für das Netzwerkinterface verbinden, die beim Hochfahren und Herunterfahren aufgerufen werden. Die Option "-net" unterstützt die Subparameter "script=" und "down-script=", die mit Komma getrennt angefügt werden. Die Skripte enthalten dann die Aufrufe von ovs-vsctl, um den Port zum Switch hinzuzufügen oder beim Herunterfahren zu entfernen.

Wird Libvirt zur Verwaltung der VMs verwendet, ist das Ganze einfacher. Libvirt unterstützt seit Version 0.9.11 Open vSwitch. In der XML-Konfiguration eines Gasts muss der Interface-Typ "bridge" lauten. Der folgende XML-Block gibt die Parameter für den Port an:

<interface type="bridge">
    <source bridge="linux-switch'"/>
    <virtualport type="openvswitch"/>
    ...Rest der Parameter <interface>

Moderne Hardware-Switche erlauben es, VXLAN-Tunnel zu terminieren. Dies findet unter dem Stichwort "Hardware VTEP" (Virtual Tunnel End Point) statt. So ist es dann möglich, dass der Switch in Silizium die Umsetzung von VXLAN mit VNI 1000 auf VLAN 1000 für unvirtualisierte Systeme umsetzt, auch wenn einige Chipsätze da noch kleine Macken haben.

Sicherheitsaspekte und Extrafunktionen

Open vSwitch legt für jeden angelegten Switch ein Interface an. Werden diesen Interfaces IP-Adressen zugeordnet, können die angeschlossenen Gäste über diese Interfaces routen, sofern das IP-Forwarding aktiv ist. Ist dies nicht gewünscht, sollte auf die Konfiguration des Forwardings auf dem Host geachtet werden. Es ist auch möglich über »/proc/sys/net/ipv4/conf/interfacename/ forwarding« explizit einzelne Interfaces auszuschließen. Dies ist an sich kein Sicherheitsrisiko, fordert aber vom Administrator Aufmerksamkeit bei der Konfiguration. Open vSwitch funktioniert also auch als Layer-3-Switch beziehungsweise als Router, wenn gewünscht. Auch lässt sich mit IPTables-Regeln explizit Verkehr zwischen einzelnen Ports unterbinden.

Der Befehl ovs-vsctl kann auch QoS-Parameter mittels Linux-HTB setzen. Es wäre zwar möglich, diese Parameter einfach auf die eingebundenen Interfaces zu setzen, durch die Konfiguration über Open vSwitch werden die Parameter aber gleich beim Start der Open vSwitch-Dienste richtig gesetzt.

Auf eine Besonderheit stießen wir, als wir versuchten zwei Switche miteinander zu verbinden. Einfach ein TAP-Interface an zwei vswitche zu hängen, funktioniert nicht. Stattdessen muss ein "Patch'"erzeugt werden. Um die Switche switch0 und switch1 miteinander zu verbinden, verwendet der Admin folgende Kommandos:

# ovs-vsctl -- add-port switch0 patch0 -- set interface patch0 type=patch options:peer=patch1
# ovs-vsctl -- add-port switch1 patch1 -- set interface patch1 type=patch options:peer=patch0

Die zugefügten Interfaces müssen nicht "patchX" heißen, aber es macht die Konfiguration besser lesbar.

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