Auch VLANs lassen sich mit Open vSwitch realisieren. Hierfür bietet Open vSwitch zwei verschiedene Möglichkeiten an. Zunächst ist jeder Open vSwitch VLAN-fähig. Fügt der Admin einen Port zum virtuellen Switch hinzu, so handelt es sich immer um einen VLAN-Trunk-Port, der alle VLANs getaggt transportiert. Um einen Access-Port zu erzeugen, der ein VLAN nativ und ohne Tags transportiert, kann der Admin den folgenden Befehl nutzen:
ovs-vsctl add-port extern0 vnet1 tag=1
Mit »brctl
«
kann der Admin nicht direkt einen derartigen Port erzeugen. Hierzu muss er einen Umweg über eine Fake-Bridge gehen. Open vSwitch unterstützt Fake-Bridges, die man dann einzelnen VLANs zuordnet. Jeder Port an einer Fake-Bridge ist dann ein Access-Port in dem VLAN.
Hierzu erzeugt der Admin zunächst die Fake-Bridge. Diese legt er immer als Tochter-Bridge einer übergeordneten Bridge an. In dem Beispiel dieses Artikels wäre das:
# ovs-vsctl add-br VLAN1 extern0 1
Die neue Fake-Bridge hat nun den Namen VLAN1 und transportiert das VLAN mit dem Tag 1. Diese muss der Administrator noch aktivieren und kann dabei gleichzeitig auch eine IP-Adresse vergeben.
# ifconfig VLAN1 192.168.1.1 up
Jeder Port, der nun an dieser Bridge erzeugt wird, ist ein Access-Port in dem VLAN 1. Damit kann nun auch wieder der Befehl »brctl
«
genutzt werden.
Open vSwitch bietet darüber hinaus noch viele weitere Funktionen. So kann er GRE-Tunnel zwischen mehrere Systemen aufbauen und darüber auch ein VLAN-Trunking durchführen. Damit ist es auch möglich, virtuelle Maschinen auf andere Rechner zu verschieben, die sich nicht im selben lokalen Netz befinden. Die Kommunikation erfolgt dann über den GRE-Tunnel.
Außerdem kann Open vSwitch Ports aggregieren. Die Linux-Kernel-Entwickler sprechen hier von Bündelung, Cisco nennt diese Funktion Etherchannel. Damit kann der Admin mehrere physische Ports als einen logischen Port zusammenfassen und diese zur Lastverteilung und Hochverfügbarkeit nutzen.
Open vSwitch ist ein sehr interessantes Projekt, das im Moment in erster Linie unter seiner fehlenden Bekanntheit und der geringen Dokumentation leidet. Hoffentlich werden die Distributionen dieses Projekt aufnehmen und in ihre Werkzeuge, zum Beispiel Libvirt nativ integrieren. Dann ist auch die Nutzung des Bridge-Kompatibilitäts-Daemon nicht mehr erforderlich. (ofr)
Infos