KVM (konfigurace sítě)
Nastavení sítě lze realizovat u QEMU několika způsoby. QEMU samo o sobě obsahuje DHCP server, takže lze v případě nutnosti spuštěný virtuální stroj připojit do sítě přes NAT, aniž by bylo třeba cokoliv složitě nastavovat.
Pro přímé připojení virtuálního stroje k internetu je možno použít:
- nastavení přes TUN/TAP
- nastavení přes bridge
- VDE
Použití VDE (Virtual Distributed Etherenet) mi přišlo jako nejflexibilnější, protože nevyžaduje žádné složité zásahy do stávající síťové infrastruktury hostitelského stroje a také není problém aktivovat identické zapojení na cílovém stroji při migraci.
- Virtuální switch
- je aplikace, která zajišťuje komunikaci mezi sokety virtuálních zásuvek a chová se jako skutečný switch.
- Virtuální zásuvka
- je ekvivalentem fyzického portu na fyzickém switchi. V praxi je to aplikace, která má na jednom konci, v adresáři zastupujícím virtuální switch, vytvořený soket, skrz kterým pak probíhá komunikace v rámci virtuálního switche a na druhém stdin a stdout. Virtuální patch kabely mezi virtuálními zásuvkami se tedy tvoří pomocí obousměrné roury - dpipe.
Virtuální zásuvky
Ve standardní instalaci balíku vde2 jsou k dispozici tři utility pro vytvoření virtuální zásuvky.
- vde_plug
- se používá při spojování přes virtuální dráty - stdin a stdout
- vde_pcapplug
- se používá pro připojení virtuálního portu switche k síťovému interface na úrovni IP (TUN)
- vde_plug2tap
- se používá pro připojení virtuálního portu switche k síťovému interface na úrovni ethernetu (TAP)
Virtuální zásuvky si mohou tvořit také samy aplikace, pokud podporují vde, jako např. QEMU. |
Při tvorbě virtuální zásuvky se specifikuje adresář virtuálního switche, ve kterém se má příslušný soket vytvořit. Umístění tohoto adresáře lze změnit při spouštění virtálního switche příkazem vde_switch, nastavením parametru -s
(resp. -sock
). Pokud při spouštění nebylo uvedeno jinak, je výchozí adresář virtuálního switche - /tmp/vde.ctl
.
U každé zásuvky lze nastavit práva a tím ji podle potřeby zpřístupnit v rámci systému i neprivilegovanému uživateli.
Vytvoření virtuálního switche..
vde_switch -d -s /tmp/dalsi_soket
|
Propojení zařízení eth0 s virtuálním switchem..
sudo vde_pcapplug -m 660 -g kvm -s /tmp/sham_sw eth0
|
Spojování virtuálních zásuvek
Spojení s procesem zásuvky 1 ve virtuálním switchi B se provede následovně přes obousměrnou rouru dpipe:
dpipe <plugA> = <plugB>
- plugA
- je výstup procesu který realizuje zásuvku 1 ve switch A
- plugB
- je výstup procesu který realizuje zásuvku číslo 1 ve switchi B
Viz příklad reálného použití:
stroj:~# dpipe vde_plug /tmp/paterni_soket = vde_plug /tmp/virtualni_soket
|
Řízení virtuálního switche
Při spuštění virtuálního switche se v něm vytvoří soket - ctl
. Skrz něj probíhá řízení switche. Totiž, pokud není uveden parametr -d
, kterým se spustí virtuální switch na pozadí, spustí se na aktuální konzoli ovládací shell, skrz který lze switch řídit.
Management konzole lze provádět prostřednictvím unixového soketu parametrem -M na která se lze připojit aplikací unixterm