KVM - VM's - VLAN durchreichen
-
Das Thema ist etwas OT, bitte ggf. löschen und eine kurze Nachricht an mich.
Ich hab im Forum gelesen das hier einige Proxmox einsetzen, ich habe mich für die klassische Variante mit Debian KVM/libvirt und virt-manager entschieden.
Vielleicht kennt sich trotzdem jemand damit aus oder hat eine Idee.Wie kann ich ein tagged VLAN vom KVM Host auf die VM durchreichen ohne das eine Kommunikation zwischen VM und Host möglich ist (soll alles über die pfSense laufen)?
Seither kenne ich das nur über Bridges, also nach diesem Aufbau:
eth1.10 -> br1.10 -> VM auf die br1.10 hängen
eth1.20 -> br1.20 -> VM auf die br1.20 hängen
usw.Soweit ich das verstehe fällt der Mode passthrough raus, weil der nur eth1 komplett durchreichen könnte.
Damit bräuchte ich für jede VM eine eigene NIC und könnte dann die VLANs über den Switch verteilen.Geht das nicht einfacher?
Hat da jemand eine Idee? -
@slu said in KVM - VM's - VLAN durchreichen:
Wie kann ich ein tagged VLAN vom KVM Host auf die VM durchreichen ohne das eine Kommunikation zwischen VM und Host möglich ist (soll alles über die pfSense laufen)?
So dass der Host auf der Leitung (in dem VLAN) keine IP hat.
Wenn du die NIC nicht selbst an die VM durchreichen kann, ist der Host natürlich in die Paketvermittlung involviert, aber eben nur so wie ein Switch. Wenn der Host keine IP auf der Leitung oder dem VLAN hat, kann einen daran angeschlossene VM auch nicht mit ihm sprechen.@slu said in KVM - VM's - VLAN durchreichen:
Geht das nicht einfacher?
Warum einfacher? Ist doch nicht kompliziert. Oder verstehe ich was falsch.
Ziel ist es, dass die VMs vom VLAN nichts mitbekommen und darauf auch keinen Einfluss nehmen können und dass zwischen Host und VMs keine Kommunikation möglich ist.
Dazu muss den VMs ein virtueller Switch vorgeschaltet werden, der einerseits die von der VM kommenden Pakete mit dem richtigen VLAN tagged und umgekehrt die Tags aus Paketen, die zur VM gehen, entfernt, so wie das auch in der Hardware gemacht wird.
Diese Schritte benötigen natürlich eine gewisse virtuelle Geräte und Konfiguration. Ich denke, das ist eh das, was du für den Aufbau mit Bridges dargestellt hast, oder?Bridges sind eben erforderlich, um die VMs anzubinden.
Bei mir sieht das bspw. auf einem Host so aus:
Auf einer Bridges im VLAN hängt dann der Host selbst.
Was stört dich an dieser Konfiguration?
-
@viragomann said in KVM - VM's - VLAN durchreichen:
Warum einfacher? Ist doch nicht kompliziert. Oder verstehe ich was falsch.
Ziel ist es, dass die VMs vom VLAN nichts mitbekommen und darauf auch keinen Einfluss nehmen können und dass zwischen Host und VMs keine Kommunikation möglich ist.
Ja Du hast mich vollkommen richtig verstanden, genau das möchte ich machen. Die VM soll auf keinen Fall ins LAN bzw. an den KVM Host kommen.
Was stört dich an dieser Konfiguration?
Ich war mir einfach unsicher ob ich das so richtig gemacht habe, im Moment sieht das so aus:
# VLAN Trunk pfSense auto eth1 iface eth1 inet manual # VLAN VM1 auto br1.10 iface br1.10 inet manual bridge_ports eth1.10 bridge_stp off bridge_maxwait 0 bridge_fd 0 # VLAN VM2 auto br1.20 iface br1.20 inet manual bridge_ports eth1.20 bridge_stp off bridge_maxwait 0 bridge_fd 0
Der Host kennt damit das Interface, es steht aber auf inet manual. Wenn ich dich richtig verstanden habe sollte das so ausreichen oder habe ich was vergessen?
In jedem Fall danke fürs lesen und grübeln.
-
@slu
Das muss sich jemand anders ansehen, mit Debian bin ich nicht vertraut.
Ich habe das auf OpenSUSE konfiguriert, da gibt es bspw. die Option "VLAN_ID", die mir hier völlig fehlt. Weiß nicht, ob das ".<VLAN-ID>" reicht. -
@viragomann said in KVM - VM's - VLAN durchreichen:
Weiß nicht, ob das ".<VLAN-ID>" reicht.
Ja das reicht, die Bridge funktioniert so und der Gast wird dann wiederrum an die Bridge br1.10 bzw. br1.20 gehängt (hab ich getestet)
Vom Aufbau habe ich das so richtig verstanden?
Alles was KVM Host ist steht auf "manual"? -
Ja, die Bridge hängt quasi am VLAN und an ihr werden die VMs angebunden. Damit ist dem Gast das VLAN aufgezwungen.
-
@slu said in KVM - VM's - VLAN durchreichen:
Das Thema ist etwas OT, bitte ggf. löschen und eine kurze Nachricht an mich.
Nö dafür ist ja genau der "Allgemeine" Schauplatz gedacht, wenn es mal etwas mehr OT wird und nur noch am Rande um pfSense geht :)
Ah ist KVM direkt. Ich hab hier auch deshalb (und weil ich auch mal faul bin und es für die Arbeit brauche) Proxmox aufgesetzt. Dort kann man direkt auf der Bridge sagen, dass sie VLANs unterstützten soll. Dann wird direkt beim Container oder der VM nur noch die VLAN ID gesetzt und die Kiste kommt im entsprechenden VLAN hoch. Ich kann ja gern mal auf Konsolen Seite schauen, wie das konfiguriert wurde - aber genau das wollte ich erreichen, damit ich nicht für jedes VLAN das ich anlege, auf jedem Proxmox dann extra noch ein Interface und eine extra Bridge anlegen muss. Das wäre nervig geworden.
-
@JeGr said in KVM - VM's - VLAN durchreichen:
Ich kann ja gern mal auf Konsolen Seite schauen, wie das konfiguriert wurde - aber genau das wollte ich erreichen, damit ich nicht für jedes VLAN das ich anlege, auf jedem Proxmox dann extra noch ein Interface und eine extra Bridge anlegen muss. Das wäre nervig geworden.
Das würde mich interessieren, wäre super wenn Du mal nachschauen kannst.
-
@JeGr
konntest Du schon nachschauen? -
@slu
Ich kann dir mal die Konfiguration meiner Proxmox Installation zeigen. Weiß aber nicht, ob dir das auch hilft, denn Proxmox verwendet nicht libvirt und die Sache sieht etwas anders aus.iface enp3s4f0 inet manual iface enp3s4f1 inet manual auto vmbr0 iface vmbr0 inet static address 10.61.41.20 netmask 255.255.255.240 gateway 10.61.41.17 bridge-ports enp3s4f0 bridge-stp off bridge-fd 0 bridge-vlan-aware yes bridge-vids 2-4094
Hier ist nur das f0 Interface verwendet in der Bridge vmbr0. Diese hat eine IP für den Host und eben die Option "bridge-vlan-aware yes" gesetzt, damit kann man dann bei jeder VM direkt eine beliebige VLAN-ID angeben. Der Netzwerkanschluss wird damit also zum Trunk gemacht und Proxmox kümmert sich um das un-/tagging.
In der VM-Konfiguration sieht das dann so aus:
net0: virtio=<MAC>,bridge=vmbr0,tag=410
Das ist die simplere "VLAN awareness" Methode, das Netzwerk zu konfigurieren und so wie ich Jens' Post verstanden habe, verwendet er ebenfalls diese.
Proxmox unterstützt aber auch die traditionelle Methode, die dir wohl eher helfen würde. Dafür gibt es hier Beispiele: https://pve.proxmox.com/wiki/Network_Configuration#_vlan_802_1q -
@viragomann said in KVM - VM's - VLAN durchreichen:
10.61.41.20
Das ist ja interessant, 10.61.41.20 ist dein Proxmox Server, richtig?
Die ganzen Gäste laufen dann auch über vmbr0 -> enp3s4f0 -> pfSense haben aber noch das VLAN getagged, richtig?
Das wäre dann ähnlich wie mein Setup, nur das ich für jedes VLAN ein Bridge machen muss.
-
@slu said in KVM - VM's - VLAN durchreichen:
Das ist ja interessant, 10.61.41.20 ist dein Proxmox Server, richtig?
Genau, die Bridge hat eben eine IP zugewiesen, weil sich Proxmox und Gäste eine NIC teilen.
Das wäre in deinem Fall nicht erforderlich.Die Gast-VMs bekommen von Proxmox einen virtuellen Netzwerkadapter, auf dem dann eine VLAN-ID angegeben wird / werden kann. Mit VLAN tagged der virtuelle Nertzwerkadapter dann die Pakete vom Gast und untagged Paket zum Gast.
Heißt, der Gast kennt selbst das VLAN nicht, hat damit nichts zu tun.
Auf der pfSense wird dieses VLAN auf dem jeweiligen Interface, das mit der Bridge verbunden ist, eingerichtet. Diese pfSense ist bei mir nicht virtualisiert. Falls sie virtualisiert ist, macht es natürlich Sinn, das VLAN direkt am Host auf die gleiche Weise wie bei den anderen Gästen einzurichten, so dass die pfSense intern ein "normales" Interfaces ohne VLANs hat.@slu said in KVM - VM's - VLAN durchreichen:
Das wäre dann ähnlich wie mein Setup, nur das ich für jedes VLAN ein Bridge machen muss.
Sehe ich auch so.