[SOLVED] Cluster mit VLAN

MarcelW

Member
Feb 10, 2019
69
3
8
34
Hallo zusammen,

folgendes Szenario:
Ich habe zwei Nodes welche im VLAN 10 liegen und dort auch deren WAN ist.

Ich möchte gerne aus den Nodes einen Cluster aufbauen.
Jetzt sollen auf dem Cluster diverse VMs laufen, die wiederum eigene VLANs (auf Basis der Kommunikation über VLAN 10) zur Kommunikation untereinander verwenden sollen.

Wie kann ich das konfigurationstechnisch am besten lösen?
Habt ihr eine Idee?

Grüße
 
Schau dir QinQ, auch bekannt als 801.1.ad, an.

Ohne die genaue Situation zu kennen kann man wenig dazu sagen, aber ob das die richtige Lösung ist ist fraglich.
Vor allem wenn alles über ein Interface gehen soll. Für die Clusterkommunikation (corosync) ist ein eigenes phsyisches Netz die beste Variante.
 
Unsere Dokumentation [0].

Bezüglich des Netzwerks gilt, dass wie schon erwähnt, corosync ein eigenes Netz möchte. Dies weil eine niedrige Latenz dafür sehr wichtig ist. Als Faustregel <5ms.
Andere Dienste wie Storage oder auch Nutzverkehr der VMs kann das Netzwerk saturieren und zu höhere Latenz führen die wiederum zu einem instabilen Cluster führen kann.

[0]: https://pve.proxmox.com/pve-docs/pve-admin-guide.html
 
Also aktuell habe ich folgende Situation:

ich habe zwei VMs: opnsense und eine windows10 VM
Die Windows10 VM hat ein Netzwerkdevice was im VLAN20 läuft vmbr1 (=vmbr1.20)
opnsense hat aktuell drei Netzwerkdevices (vmbr1, vmbr1.10, vmbr1.20)

Bei der Windows10 VM ist folgende IP-Konfiguration drin:
IPv4: 192.168.20.2/24
Gateway: 192.168.20.1 (= opnsense VM)

Im OPNsense habe ich für die VLAN20 Schnittstelle / Firewall eine Regel angelegt, damit alles durchgelassen wird.

Wenn ich auf die Windows10 VM connecte funktioniert das surfen über das Gateway auch problemlos. (Zustand: opnsense und win10 vm auf der selben Node). Ich kann über 192.168.20.1 auch die WebGUI von meinem Gateway (=opnsense) aufrufen.

Migriere ich jetzt die win10 vm weg von opnsense auf die 2. Node, funktioniert das Internet nur noch teilweise, bestimmte Seiten gehen nicht mehr.
Ich kann beispielsweise die WebGUI meines Gateways (=opnsense) nicht mehr aufrufen, ein Ping darauf antwortet aber.
Weiß jemand, was ich meine und kann das nachvollziehen?

Noch eine Anmerkung:
All die Seiten die ich nicht erreichen kann, kann ich über die win10 VM aber trotzdem pingen und erhalte die richtigen IP-Adressen.
 
Last edited:
Ah okay, also sind die zwei Proxmox VE Nodes nicht von sich aus schon in einem VLAN? Dann hat sich dass QinQ erledigt.

Das Verhalten klingt ein wenig seltsam.

Ist die Netzwerkkonfiguration auf beiden PVE Nodes gleich? Sprich existiert jeweile ein vmbr1.20 und vmbr1.10? Sind am Switch auf den jeweiligen Ports die VLANs 10 und 20 getaggt konfiguriert?

Evtl. auch einfach mal die /etc/network/interfaces von beiden PVE nodes posten. Sollten public IP Adressen drin sein diese unkenntlich machen.
 
Hallo aaron,

also ich habe vom Provider zwei VLANs bekommen.
VLAN 121 für WAN mit meinen zugewiesenen IP-Adressen und VLAN 122 für das Ceph vom RZ.

interfaces - node1:
Code:
auto lo
iface lo inet loopback

iface eno1 inet manual

iface eno1.121 inet manual

auto eno1.122
iface eno1.122 inet static
        address  xxx.xxx.xxx.210
        netmask  255.255.255.248
        up ip route add yyy.yyy.yyy.0/24 via xxx.xxx.xxx.209
## VLAN 122 - Ceph

iface eno2 inet manual

auto vmbr1
iface vmbr1 inet static
        address  xxx.xxx.xxx.195
        netmask  27
        gateway  xxx.xxx.xxx.193
        bridge-ports eno1.121
        bridge-stp off
        bridge-fd 0
        bridge-vlan-aware yes
        bridge-vids 2-4094
## VLAN 121 - Internet/WAN

auto vmbr0
iface vmbr0 inet manual
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0

auto vmbr1.10
iface vmbr1.10 inet static
        address  192.168.10.10
        netmask  24
        mtu 1400
## PVE Management Network

auto vmbr1.20
iface vmbr1.20 inet manual

interfaces - node2:
Code:
auto lo
iface lo inet loopback

iface eno1 inet manual

iface eno1.121 inet manual

auto eno1.122
iface eno1.122 inet static
        address  xxx.xxx.xxx.211
        netmask  255.255.255.248
        up ip route add yyy.yyy.yyy.0/24 via xxx.xxx.xxx.209
## VLAN 122 - Ceph

iface eno2 inet manual

auto vmbr1
iface vmbr1 inet static
        address  xxx.xxx.xxx.196
        netmask  27
        gateway  xxx.xxx.xxx.193
        bridge-ports eno1.121
        bridge-stp off
        bridge-fd 0
        bridge-vlan-aware yes
        bridge-vids 2-4094
## VLAN 121 - Internet/WAN

auto vmbr0
iface vmbr0 inet manual
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0

auto vmbr1.10
iface vmbr1.10 inet static
        address  192.168.10.20
        netmask  24
        mtu 1400
## PVE Management Network

auto vmbr1.20
iface vmbr1.20 inet manual

Kurz zur Erklärung: die Connection vmbr1.10 (für Corosync in diesem Beispiel) funktioniert einwandfrei.

Ich habe auf beiden Nodes mal einen tcpdump auf vmbr1.20 laufen gelassen.
Wenn opnsense und win10 auf einer gemeinsamen Node laufen, ist auf der anderen Node auch kein Traffic auf vmbr1.20 zu verzeichnen (logisch).
Wenn die beiden auf unterschiedlichen Nodes laufen, sehe ich bei beiden tcpdumps auch Traffic durchgehen der "zu einander" passt.

Trotzdem gehen dann einige Internetseiten auf meiner win10 VM nicht :(
 
Die configs helfen definitiv um die Situation zu verstehen / nachzuvollziehen. Interessantes Setup und du machst eh schon QinQ. Vlan in Vlan.

Wie sind die VMs konfiguriert (config file)? Die vmbr1.10 und vmbr1.20 werden im GUI ja nicht als Bridges erkannt und zur Auswahl angeboten.

Geht nur das Webinterface der GW VM nicht mehr und Webseiten im großen weiten Internet schon? Das würde auf ein Routingproblem hindeuten.

Grundsätzlich glaube ich, dass du hier ein wenig ein zu kompliziertes und Fehleranfälliges Setup baust.

Ein großes Problem ist, dass du nur ein physisches Interface hast. Soweit ich erkenne soll hier alles drüber laufen. Ist geplant auch noch Ceph als Client zu einer Ceph Installation des Providers zu verwenden?

Das wird früher oder später zu Problemen führen da der VM oder Storage Traffic die Leitung dicht machen wird und dann vor allem der Clustertraffic (corosync) zusammenbricht.
 
Hi aaron,

ja - interessantes Setup - da hast du recht.
Für opnsense vm habe ich drei NICs angelegt:
1. vmbr1 ohne VLAN Tag (=WAN nach außen)
2. vmbr1 mit Tag 10
3. vmbr1 mit Tag 20
Für die Win10 VM habe ich ein NIC angelegt:
1. vmbr1 mit Tag 20.

Wenn win10 und opnsense auf unterschiedlichen Nodes liegen, gehen diverse Seiten nicht, was aber immer geht ist z. B. Google.
Was bspw. nicht ging war web.de.

Ja ich nutze aktuell nur ein physisches Netz, es ist aber mit 10 Gbit angebunden und sollte vorerst reichen beides zu bedienen.
Sollte dies nicht ausreichen, kann ich jederzeit ein zweites physisches Netz aufbauen und die Verbindungen splitten.

Grüße
 
Das dürfte jetzt wohl etwas schwierig werden zu debuggen. Gedroppte Pakete könnten der Grund sein.
ip -statistics address zeigt einem schöne Statistiken unter Linux an. (Evtl. mal einen Linux Gast aufsetzten)

Wie man unter Windows sowas sieht weißt ich ad hoc nicht.

Manuell gesetzte MTUs können auch Probleme machen. Wenn es keinen expliziten Grund dafür gibt würde ich die auch mal aus der Config nehmen und schauen ob es besser wird.
 
Hi,

aber die MTU habe ich ja nur auf den Cluster VLAN. Nicht auf dem 20er.

Werde heute Abend mal einen Linux Gast aufsetzen und probieren.
Melde mich dann.
 
Das dürfte jetzt wohl etwas schwierig werden zu debuggen. Gedroppte Pakete könnten der Grund sein.
ip -statistics address zeigt einem schöne Statistiken unter Linux an. (Evtl. mal einen Linux Gast aufsetzten)

Wie man unter Windows sowas sieht weißt ich ad hoc nicht.

Manuell gesetzte MTUs können auch Probleme machen. Wenn es keinen expliziten Grund dafür gibt würde ich die auch mal aus der Config nehmen und schauen ob es besser wird.

Habe nun einen Linux Gast (Debian) aufgesetzt, ist im VLAN20 drin.
Wie soll ich deiner Meinung nach nun hier vorgehen?
 
Also ich habe es auf einem Linux Gast nachgestellt.
Das Ergebnis ist auch hier das selbe.

Bei den IP Statistiken habe ich auf RX Seite 12 gedroppte Pakete - also nicht die Welt vermutlich.
Nochmal zur Info: Traceroute und Ping funktionieren immer weiterhin, ich verstehe es also wirklich nicht mehr was es sein könnte.
 
Also, ich habe testweise die MTU am Gateway (opnsense) und der VM (Linux Gast) auf 1400 gestellt.
Damit klappt alles wie gewünscht.

Kann man mit QinQ evtl. nur eine kleinere MTU nutzen?
 
Kann man mit QinQ evtl. nur eine kleinere MTU nutzen?
Ohne die Infrastruktur die die Server verbindet zu kennen ist das schwer zu sagen. Es kann aber gut möglich sein, dass dem so ist. Der zweite VLAN header im Paket braucht ja auch Platz.
 
Hmm, versuche gerade über ifupdown2 das mit vlan-protocol 802.1ad zu setzen, klappt aber dann garnicht.

Die Interface kommt zwar up aber ist dann nicht zu erreichen.

Ich frage mal beim Provider nach.
 
Ohne die Infrastruktur die die Server verbindet zu kennen ist das schwer zu sagen. Es kann aber gut möglich sein, dass dem so ist. Der zweite VLAN header im Paket braucht ja auch Platz.

Also nach mehreren Versuchen ist es nun tatsächlich so:
Setze ich die MTU auf 1496 (lasse 4 Bytes für den extra VLAN Header also weg) klappt alles korrekt.

Ich habe jetzt bei meinem Provider nachgefragt, ob diese die MTU am Switch um 4 Byte erhöhen können, so dass ich den Standard von 1500 verwenden kann.

Danke dir bei meiner Ursachenforschung! Das hat mir sehr gut geholfen!
 
  • Like
Reactions: aaron

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!