Hetzner - DokuWiki

KVM

Achtung: Verwendung dieser Anleitung erfolgt auf eigene Gefahr. Der Autor haftet nicht für etwaige Schäden!


In dieser Anleitung beschreibe ich eine Möglichkeit der Virtualisierung auf einem Hetzner root-Server mittels KVM. Die Gäste verwenden nur IP-Adressen aus dem zusätzlichem Subnetz, wobei eine Adresse als Gateway fungiert.

Kvm.png

Ich verwende in dieser Anleitung bewusst keine Konfigurationsdateien, da sich diese von Distribution zu Distribution unterscheiden. Wenn man jedoch einmal verstanden hat, wie es funktioniert, dürfte das Erstellen der entsprechenden Dateien kein Problem mehr sein.

Wichtig: Schaltet vorher eure IP Tables Firewall aus. Falls diese falsch konfiguriert ist, wird unser kleines, virtuelles Netz nicht funktionieren.

Inhaltsverzeichnis

Voraussetzungen

Programme

Für unser Setup benötigen wir folgende Programme. In Klammern steht das Gentoo Paket welches das Programm beinhaltet

  • kvm (app-emulation/kvm)
  • brctl (net-misc/bridge-utils)
  • tunctl (sys-apps/usermode-utilities)
  • route (sys-apps/net-tools)

Kernel Konfiguration

Nur als Information falls man sich selbst einen Kernel kompilliert - ist sonst bereits im Standardkernel von z.B. Debian enthalten.

Device Drivers  --->
  [*] Network device support  --->
     <M>   Universal TUN/TAP device driver support
Networking options  --->
  <*> 802.1d Ethernet Bridging
  <*> 802.1Q VLAN Support
[*] Virtualization  --->
  <M>   Kernel-based Virtual Machine (KVM) support
  <M>     KVM for AMD processors support
  <M>     KVM for Intel processors support

Evtl. sind noch weitere Optionen nötig, welche ich aber bereits aktiviert hatte. Das obige ist auf jeden Fall wichtig.

Basis Setup

Module laden

modprobe tun
modprobe kvm-amd
modprobe kvm-intel

Forwarding anschalten

echo 1 > /proc/sys/net/ipv4/ip_forward

Netzwerk Konfiguration

Hinweise zu den IP-Adressen:

Haupt-IP

hhh.hhh.hhh.hhh

Zusatz-IPs

zzz.zzz.zzz.zz1 Gast1
zzz.zzz.zzz.zz2 Gast2
zzz.zzz.zzz.zz3 Gast3
zzz.zzz.zzz.zz4 Gast4
zzz.zzz.zzz.zz5 Gast5
zzz.zzz.zzz.zz6 Gateway

Jeder KVM Gast erhält eine eigene virtuelle Netzwerkkarte welche in einer Bridge zusammen gefasst werden. Diese Bridge dient als Gateway.

Als erstes legen wir die Bridge an. Da diese später als Gateway fungiert, erhält sie eine eigene IP-Adresse. Wir nehmen hierfür die letzte IP aus dem zusätzlichem Subnet (zzz.zzz.zzz.zz6).

brctl addbr br0
ifconfig br0 zzz.zzz.zzz.zz6 netmask 255.255.255.248 up

Als nächstes legen wir die virtuellen Netzwerkkarten an, fügen diese der Bridge hinzu und versetzen sie anschließend in den promiscuous mode

tunctl -b -u root -t qtap0
brctl addif br0 qtap0
ifconfig qtap0 up 0.0.0.0 promisc

Für weitere Gäste müssen diese drei Schritte wiederholt werden. Bitte jedoch qtap0 immer erhöhen, sprich qtap1, qtap2 usw.

Als nächstes legen wir die Routen für die Gäste an.

route add -host zzz.zzz.zzz.zz1 dev br0

Wieder gilt: für mehrere Gäste muss dieser Schritt wiederholt werden. IP jeweils anpassen.

Das war im Grunde schon die ganze Magie. Jetzt können wir unseren ersten Gast starten. Wichtig ist hier die Angabe der Netzwerk-Schalter.

kvm -hda /var/kvm/gast1.img \
       -net nic -net tap,ifname=qtap0,script=no

Hinweis Sollten man beabsichtigen mehr als eine VM gleichzeitig laufen zu lassen, ist es zu empfehlen, jede VM mit einer unterschiedlichen MAC Adresse zu starten. Anonsten kann das den Netzwerkverkehr der VMs massic stören. Die Option zum setzen der MAC lautet:

-net nic,macaddr=52:54:00:12:34:57

Nachdem der Gast gestartet ist, richten wir dort das Netzwerk ein. Auf Gast1 könnte das so aussehen:

ifconfig eth0 zzz.zzz.zzz.zz1 netmask 255.255.255.248 up
route add default gw zzz.zzz.zzz.zz6

Nun können wir:

  • 1.uns selbst anpingen
    • ping zzz.zzz.zzz.zz1
  • 2.die bridge anpingen
    • ping zzz.zzz.zzz.zz6
  • 3.den host anpingen
    • ping hhh.hhh.hhh.hhh
  • 4.hetzner.de anpingen
    • ping 213.133.107.227

Als letzten Schritt richten wir noch die drei Standard Nameserver von Hetzner auf dem Gast ein.

nano -w /etc/resolv.conf
nameserver 213.133.98.98
nameserver 213.133.99.99
nameserver 213.133.100.100

Nun sollte auch die Namesauflösung funktionieren und einem ping hetzner.de nichts mehr im Wege stehen.

Have fun!



© 2017. Hetzner Online GmbH. Alle Rechte vorbehalten.