Häufig möchte der Admin die Bandbreite einzelner virtueller Gäste kontrollieren und einschränken. Dies ist insbesondere der Fall, wenn unterschiedliche Kunden in einer virtuellen Umgebung bedient werden. Entsprechend den ausgehandelten Service Level Agreements erhalten dann die unterschiedlichen Gäste die bezahlte Leistung.
Open vSwitch kann recht einfach die maximale Sendeleistung einzelner Gäste beschränken. Um dies zu testen, sollte zunächst der normale Durchsatz gemessen werden. Hierzu startet der Admin auf einem System Iperf als Server und auf einem virtuellen Gast Iperf als Client (Listing 3).
Listing 3
Performance-Messung
Nun kann der Admin die Sendeleistung beschränken. Der Befehl erwartet die Sendeleistung in Kbit/s. Neben der reinen Sendeleistung sollte auch der Burst angegeben werden, der etwa ein Zehntel der Sendeleistung betragen sollte. Die Schnittstelle »vnet0
«
ist in diesem Beispiel der Switchport, an dem der virtuelle Gast angeschlossen ist.
# ovs-vsctl set Interface vnet0 ingress_policing_rate=1000 # ovs-vsctl set Interface vnet0 ingress_policing_burst=100
Das Ergebnis kann direkt mit Iperf wieder getestet werden. Der Versuch zeigt, dass die Beschränkung funktioniert (Abbildung 2).
Kennt sich der Admin mit dem »tc
«
-Kommando und dem Class-Based-QoS von Linux mit unterschiedlichen Queuing Disciplines aus, kann er auch diese mit Open vSwitch verwenden. Die Manpage liefert hierzu weitere Beispiele.
Um ein Intrusion Detection System zu betreiben, benötigt man einen Mirror-Port auf dem Switch. Auch diesen stellt Open vSwitch zur Verfügung. Hierzu muss der Admin zunächst den Mirror-Port erzeugen und anschließend zum richtigen Switch hinzufügen. Um einen Mirror-Port zu erzeugen, der den Verkehr sämtlicher anderer Ports empfängt und auf »vnet0
«
spiegelt, verwendet man den folgenden Befehl:
ovs-vsctl create mirror name=mirror select_all=1 output_port=e46e7d4a-2316-407f-ab11-4d248cd8fa94
Der Befehl »ovs-vsctl list port vnet0
«
ermittelt die dazu benötigte ID des Output-Ports. Nun muss der Admin den entstandenen Mirror Port zur Bridge hinzufügen:
# ovs-vsctl add bridge extern0 mirrors 716462a4-8aac-4b9c-aa20-a0844d86f9ef