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.
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!


