Nested Virtualization unter KVM

  • Hallo Zusammen,


    Ich überlege gerade ob Ich mir die Mühen machen soll auf die KVM-Lösung zu migrieren.
    Nun frage Ich mich gerade, ob es bei Netcup unter KVM die Möglichkeit gibt weitere virtualisierte Ebenen zu erzeugen?


    Wäre aus meiner Sicht sehr interessant, wenn man mit einem größeren VServer für Testzwecke u.ä. selber kleinere virtuelle Server zur Verfügung stellen könnte (genügend IPv6-Adressen hätte man ja).


    Hat das schon jemand getestet oder eine offizielle Aussage dazu gefunden?


    Gruß
    Tobias

  • So Testweise einfach mal optimistisch einen KVM-Server bestellt.

    Code
    INFO: Your CPU does not support KVM extensions


    Code
    KVM acceleration can NOT be used


    Denke dann werde Ich nun noch bisschen was rumprobieren und dann erstmal wieder kündigen :/
    Schade eigentlich...

  • VirtualBox sollte gehen. Ohne AMD-V oder Intel VT funktionieren aber nur 32bit-Gäste.


    Mir ist spontan noch eingefallen, dass auch VMware ESX 3.5 noch unterstützt werden sollte, das läuft bei mir auch auf Dual Opteron 270 (die noch kein AMD-V haben) ohne Probleme.

  • Also Ich bringe Euch hier gerne nochmal auf einen neuen Stand.
    OpenVZ oder LXC funktionieren beide super.


    Ich habe daher auch mal testweise ein Mini-Netzwerk an VMs erstellt und war eigentlich sehr zufrieden, wie das ganze abgelaufen ist.


    Nun aber zum Problem. Da man für KVM ja ein ganzen IPv6-Subnetz mitbekommt war natürlich die Überlegung jeder VM eine eigene externe v6-IP zu geben nicht all zu weit entfernt.
    Leider ist das aber nicht so einfach, wie Ich mir das ganze vorgestellt hatte.
    Ich kann mich leider nur Wort für Wort dem folgenden Kollegen anschließen: Warum man bei Hetzner kein IPv6 nutzen möchte... « Knuts Blog
    Ist zwar ein anderer Anbieter, aber die Probleme sind die selben: NAT (IPv4) => kein Problem; externe IP (IPv6) => Problem.


    Normalerweise wäre der Aufbau aus meiner Sicht verdammt einfach, wenn man mit einer einfachen Network-Bridge und IP-Forwarding die dahinterliegenden VMs mit in das Netzwerk einbinden könnte. Ein größeres Router-Setup (wie es ja im verlinkten Artikel beschrieben ist) war eigentlich nicht mein Ziel.
    Mit meinem aktuellen Setup (nur die Bridge) ist eine Kommunikation zwischen Host<>Gast und Gast<>Gast zwar möglich (komplett auf IPv6), aber das kann ja nur das halbe Ziel sein!


    Hat hier jmd vielleicht eine gescheite Idee, oder hat vielleicht sogar mein Zielbild sogar schon umgesetzt bekommen?

  • Kurz eine Erklärung warum jeder Anbieter IP-Adressen an eine MAC binden sollte: Aus Gründen der Sicherheit. Andernfalls könnte sich ein unberechtigter dritter Kunde dem Kunden eine IP-Adresse "klauen". Was das für Folgen haben kann, sollte bekannt sein.


    Wenn wir diese Sicherheit anders gewährleisten können, sind wir für Anregungen offen.


    Vielen Dank!

  • Kurz eine Erklärung warum jeder Anbieter IP-Adressen an eine MAC binden sollte: Aus Gründen der Sicherheit. Andernfalls könnte sich ein unberechtigter dritter Kunde dem Kunden eine IP-Adresse "klauen". Was das für Folgen haben kann, sollte bekannt sein.


    Wenn wir diese Sicherheit anders gewährleisten können, sind wir für Anregungen offen.


    Vielen Dank!

    Natürlich verstehe Ich die Sicherheitsbedenken an dieser Stelle.
    Allerdings fehlt mir aktuell einfach jegliche Dokumentation bezüglicher der v6-Subnetze.
    Sind diese wirklich konkret an die MAC gebunden? Gibt es hier vielleicht auch eine Dokumentation, wie man sich die Verwendung der Subnetze aus Sicht von Netcup vorstellt?
    Ich meine niemand wird damit rechnen, dass hier jemand mehrere Millionen IP auf nur einem System nutzen möchte :)


    Eine Möglichkeit wäre ja z.B. die Möglichkeit zu schaffen im CCP kleinere Subnetze (z.B. \128er Teile des \64) an andere MACs binden zu können (für VMs).
    Ich möchte einfach mal unterstellen, dass man sich hier sicherlich schon mal Gedanken gemacht hat und man diese Gedanken vielleicht ja im Wiki oder hier im Forum mal dokumentieren könnte.


    Ich würde mich über jeden Hinweis freuen, der mir ein "Try and Error-Verfahren" ersparen kann :)

  • So dann will Ich einfach mal meinen letzten Versuch hier offenbaren.
    Vielleicht habe Ich ja einfach nen Knoten im Kopf und seh den Wald vor lauter Bäumen nicht mehr:


    Konfig Host:[Blockierte Grafik: http://img600.imageshack.us/img600/3949/hostku.jpg]


    Konfig-Gast
    [Blockierte Grafik: http://img27.imageshack.us/img27/3154/gastxk.jpg]


    Alle grün übermalten Netzwerksegmente sind natürlich identisch.


    Wenn jemand meinen Fehler erkennt wäre Ich über jeden Hinweis froh.


    Die VM wird natürlich an vbr0 angebunden und net.ipv6.conf.all.forwarding=1 gesetzt.


    Vielen Dank schonmal einfach so im voraus :)

  • Danke für den Hinweis,
    das werde Ich mir auf jeden Fall mal ansehen.
    Leider bin Ich wohl bis zum Ende der Woche erstmal geschäftlich Unterwegs und werde daher wohl erst nächste Woche dazu kommen :/


    Ansonsten habe Ich bei meinen Recherchen immer wieder die Lösung gefunden sich vom Hoster ein 2tes Subnetz geben zu lassen, welches dann über eine IP und nicht über die MAC geroutet wird.
    Aber Ich denke mit einem /64 sollte man allemal auskommen und auch ein Setup mit virtuellen Maschinen muss man hier ja wohl einigermaßen komfortabel eingerichtet bekommen.


    Ich melde mich auf jeden Fall nach dem Versuch wieder...

  • Das mit dem zweiten Subnetz hatte ich auch schon gefunden, die Anleitung behauptet, genau dieses Problem umgehen zu können.


    Mach das, vielen Dank!


    Gruß,
    -Pit

  • Kleines Update:


    Also sowohl das Aufsetzen der LXC-Virtualisierung, als auch die IP-Zuweisung habe Ich nun soweit hinbekommen.
    Der Zugriff von den Gast-Systemen auf das Internet über IPV6 ist eingerichtet und funktioniert.


    Was nun noch fehlt, das ist der Zugriff aus dem Internet auf die Clients.
    Leider verstehe Ich aktuell nicht warum das nicht funktioniert.
    Ich gehe einfach mal davon aus, dass Netcup die Anfragen schon korrekt an mein Host-System sendet, aber warum dieser dann die Anfrage nicht auf die interne Bridge weiterleitet, obwohl die Route (meiner Meinung nach) korrekt angelegt ist.


    Ich scheinen hier noch irgendwas zu übersehen, aber Ich finde aktuell nicht was,.


    Hier nochmal die eingerichteten Routen:
    [Blockierte Grafik: http://img16.imageshack.us/img16/4544/route6.png]


    0:2::1 = Netcup-Gateway
    1000::1 = Host-Ethernet
    2000.:1 = Host-Virtual-Bridge
    2000::11 = Gast1 (sollte aus meiner sicht durch 2a03:4000:xxx:xxx:2000::/80 abgedeckt sein, korrekt?


    Wo is der Gedankenfehler?
    Danach stelle Ich gerne die Gesamtkonfig einmal als Beispiel zur Verfügung,.

  • So auch hier nochmal das letzte Update...
    Es fehlten hier noch die Neighborhood proxys für die internen IPs.
    Aktuell finde Ich keine Möglichkeit ohne jede IP der Gäste konkret im Host bekannt zu geben.


    Ist für mich hier aber kein Beinbruch.


    => Fazit: LXC mit Public-IPv6-IPs läuft einwandfrei.
    Ich werde nun beginnen mal auf einem kleinen Server Mailserver, meine paar Webseiten und SVN-Server in je einer VM zur Verfügung zu stellen.
    Bisschen spielen soll ja schließlich erlaubt sein :)

  • Hallo Firestorm87.


    Freut mich, dass jetzt alles bei dir funktioniert. Du meintest in deinem vorigen Post, du würdest die Gesamtkonfig zur Verfügung stellen. Könntest du das noch machen, wenn es nicht zu viel Arbeit ist? Interessiert hier sicher nicht nur mich :).


    Viele Grüße und viel Spaß beim Spielen :D,
    - Pit

  • Die Konfig stell Ich gerne einmal dar:


    Insgesamt handelt es sich hier um eine Lösung die auf der Virtualisierung LXC basiert.
    Für die Installation von LXC gibt es genügend Tutorials, daher beschränke Ich mich hier mal auf die Netzwerk-Konfiguration...


    Vorabinfo:
    Generell lassen sich die Gäste wunderbar per IPv6-Only installieren, aber da es noch diverse Anwendungsfälle gibt die sich aktuell noch nicht per IPv6-Only durchführen lassen habe Ich mich dazu entschieden neben dem Public-IPv6-Netz zusätzlich noch ein IPv4-Nat-Netz zu etablieren.
    IPv6-Zugriffe sind also komplett durchgeroutet. Bei den IPv4-Zugriffen werden die jeweiligen benötigten Ports vom Host per Nat an den Gast weitergeleitet


    Host:
    Änderungen an /etc/sysctl.conf

    Code
    net.ipv4.ip_forward=1
    net.ipv6.conf.all.forwarding=1
    net.ipv6.conf.default.forwarding=1
    net.ipv6.conf.all.proxy_ndp=1
    net.ipv6.conf.default.proxy_ndp=1


    /etc/network/interfaces


    /etc/resolv.conf

    Code
    nameserver 46.38.225.225
    nameserver 78.47.47.47
    nameserver 46.38.252.252
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    nameserver 2001:4860:4860::8888 # Google-DNS, da Netcup keine reinen IPv6-Nameserver anbietet
    nameserver 2001:4860:4860::8844
    search mydomain.de


    Gast:


    LXC-Config-Datei ohne die Angabe von Hardwareadresse und IP-Adresse anlegen.
    Das verhindert, dass LXC per DHCP die Konfiguration am Gast durchführen möchte.


    /etc/network/interfaces


    Die /etc/resolv.conf wird in den Gästen analog der des Hostes angelegt.


    Sollte es insgesamt noch Fragen geben, so gerne her damit.