[SOLVED] Sporadischer Verbindungsabbruch bei VLAN/LACP

AST

Well-Known Member
Nov 28, 2018
113
8
58
Sehr geehrte Kolleginnen und Kollegen,

aktuell habe ich einen Demoaufbau im semiproduktiven Einsatz um Probleme zu erkennen und einzudämmen, bevor ich damit an 500 User gehe. Aktuell benutzt das Unternehmen garkeine logisch getrennten Systeme. Setups in diesem Umfang hatte ich zuvor mit vmWare gelöst, allerdings gefällt mir das HA und CEPH Konzept um Längen mehr. PROXMOX als Einzelsserver betreibe ich schon viele Jahre.

Bedauerlicherweise habe ich ein Problem gefunden und muss das PROXMOX zuschreiben. Ob das ein Bug ist oder mein Unvermögen gibt es zu klären.

Zur Sache:
Betrieben werden drei Hosts im HA und mit CEPH. Sporadisch, von 3x am Tag (selten) bis alle 2-4 Tage, reißt die Verbindung zum Terminalserver (WIN2012R2) für ~10min ab. (EDIT: Es sind auch alle anderen VMs vom Abriss betroffen) In der Netzwerkinfrastruktur wird LACP und vLAN verwendet, aktuell noch mit nonstacked Switchen, dies kommt später. Die UTM (Sophos) sowie die Switches (dlink, management), konnte ich durch Tauscherei und Ersatzgeräten anderer Hersteller ausschließen.
Tatsächlich sind auch alle Punkte im Netzwerk erreichbar, bis auf die in PROXMOX befindlichen VMs. Die webgui von Proxmox ist auch erreichbar, allerdings ist die Leitung auch nicht getaggt.

Liegt das Problem am LACP, vLAN oder falscher Handhabung meinerseits?

Vielen Dank für die Unterstützung!

Gruß, Patrick
 

Attachments

  • interfaces conf.txt
    3 KB · Views: 18
Last edited:
Hallo Patrick,

das hatte ich auch und bis fast verzweifelt bis ich eins probiert habe:

VM runterfahren virtuelle Netzwerkkarte löschen und/oder nur eine neue MAC-Adresse vergeben.
Windows findet dann eine neue Netzwerkkarte bei der natürlich wieder die feste IP gesetzt werden muss.

Danach war seit 2 Monaten bei mir Ruhe.

Grüße
 
Hallo,

warum nimmst du nicht:
https://pve.proxmox.com/wiki/Open_vSwitch
Nehme ich von Anfang an und bisher ohne Probleme.

Beispiel mit lacp und Netze bond0 mit vlan 50, 60 und bond1 mit vlan 70, 80:
Code:
auto lo
iface lo inet loopback

iface ens4f0 inet manual

iface ens4f1 inet manual

iface ens3 inet manual

iface ens3d1 inet manual


allow-vmbr0 bond0
iface bond0 inet manual
        ovs_bonds enp6s0f0 enp6s0f1
        ovs_type OVSBond
        ovs_bridge vmbr0
        ovs_options bond_mode=balance-tcp lacp=active other_config:lacp-time=fast
        pre-up (ip link set mtu 9000 dev ens3d1 && ip link set mtu 9000 dev ens3 && /sbin/ethtool -C ens3 adaptive-rx off rx-usecs 0 tx-frames 64 && /sbin/ethtool -C ens3d1 adaptive-rx off rx-usecs 0 tx-frames 64)
        mtu 9000

auto bond1
iface bond1 inet manual
        ovs_bonds eno2 eno3
        ovs_type OVSBond
        ovs_bridge vmbr0
        ovs_options bond_mode=balance-tcp lacp=active other_config:lacp-time=fast
       pre-up (ip link set mtu 9000 dev ens3d1 && ip link set mtu 9000 dev ens3 && /sbin/ethtool -C ens3 adaptive-rx off rx-usecs 0 tx-frames 64 && /sbin/ethtool -C ens3d1 adaptive-rx off rx-usecs 0 tx-frames 64)
        mtu 9000

auto vmbr0
iface vmbr0 inet manual
        ovs_type OVSBridge
        ovs_ports bond0 verwaltung lan
        mtu 9000

allow-vmbr0 
iface verwaltung inet static
        address  10.10.10.10
        netmask  255.255.255.0
        ovs_type OVSIntPort
        ovs_bridge vmbr0
        ovs_options tag=50
        mtu 9000

allow-vmbr0 
iface lan inet static
        address  10.18.12.250
        netmask  255.255.255.0
        ovs_type OVSIntPort
        ovs_bridge vmbr0
        ovs_options tag=60
        mtu 9000

auto vmbr1
iface vmbr1 inet manual
        ovs_type OVSBridge
        ovs_ports bond0 system wlan
        mtu 9000

allow-vmbr1 
iface system inet static
        address  10.18.0.110
        netmask  255.255.255.0
        ovs_type OVSIntPort
        ovs_bridge vmbr0
        ovs_options tag=70
        mtu 9000

allow-vmbr1 
iface wlan inet static
        address  10.18.14.250
        netmask  255.255.255.0
        ovs_type OVSIntPort
        ovs_bridge vmbr0
        ovs_options tag=80
        mtu 9000

...usw.

Grüße
 
Hallo,

warum nimmst du nicht:
https://pve.proxmox.com/wiki/Open_vSwitch
Nehme ich von Anfang an und bisher ohne Probleme.

Beispiel mit lacp und Netze bond0 mit vlan 50, 60 und bond1 mit vlan 70, 80:
Code:
auto lo
iface lo inet loopback

iface ens4f0 inet manual

iface ens4f1 inet manual

iface ens3 inet manual

iface ens3d1 inet manual


allow-vmbr0 bond0
iface bond0 inet manual
        ovs_bonds enp6s0f0 enp6s0f1
        ovs_type OVSBond
        ovs_bridge vmbr0
        ovs_options bond_mode=balance-tcp lacp=active other_config:lacp-time=fast
        pre-up (ip link set mtu 9000 dev ens3d1 && ip link set mtu 9000 dev ens3 && /sbin/ethtool -C ens3 adaptive-rx off rx-usecs 0 tx-frames 64 && /sbin/ethtool -C ens3d1 adaptive-rx off rx-usecs 0 tx-frames 64)
        mtu 9000

auto bond1
iface bond1 inet manual
        ovs_bonds eno2 eno3
        ovs_type OVSBond
        ovs_bridge vmbr0
        ovs_options bond_mode=balance-tcp lacp=active other_config:lacp-time=fast
       pre-up (ip link set mtu 9000 dev ens3d1 && ip link set mtu 9000 dev ens3 && /sbin/ethtool -C ens3 adaptive-rx off rx-usecs 0 tx-frames 64 && /sbin/ethtool -C ens3d1 adaptive-rx off rx-usecs 0 tx-frames 64)
        mtu 9000

auto vmbr0
iface vmbr0 inet manual
        ovs_type OVSBridge
        ovs_ports bond0 verwaltung lan
        mtu 9000

allow-vmbr0
iface verwaltung inet static
        address  10.10.10.10
        netmask  255.255.255.0
        ovs_type OVSIntPort
        ovs_bridge vmbr0
        ovs_options tag=50
        mtu 9000

allow-vmbr0
iface lan inet static
        address  10.18.12.250
        netmask  255.255.255.0
        ovs_type OVSIntPort
        ovs_bridge vmbr0
        ovs_options tag=60
        mtu 9000

auto vmbr1
iface vmbr1 inet manual
        ovs_type OVSBridge
        ovs_ports bond0 system wlan
        mtu 9000

allow-vmbr1
iface system inet static
        address  10.18.0.110
        netmask  255.255.255.0
        ovs_type OVSIntPort
        ovs_bridge vmbr0
        ovs_options tag=70
        mtu 9000

allow-vmbr1
iface wlan inet static
        address  10.18.14.250
        netmask  255.255.255.0
        ovs_type OVSIntPort
        ovs_bridge vmbr0
        ovs_options tag=80
        mtu 9000

...usw.

Grüße

Dankeschön für Deine Beispielconfig... warum funktioniert bei mir der Wert
tx-frames 64
nicht?
 
Vielleicht weil ich in der Zeile per copy & paste meine Netzwerkkarten noch drin habe:

Code:
pre-up (ip link set mtu 9000 dev ens3d1 && ip link set mtu 9000 dev ens3 && /sbin/ethtool -C ens3 adaptive-rx off rx-usecs 0 tx-frames 64 && /sbin/ethtool -C ens3d1 adaptive-rx off rx-usecs 0 tx-frames 64)

Siehe ens3d1 und ens3.
Müsstest du auf deine Netzwerkkarten anpassen, so meine Vermutung?
 
ganz so unversiert bin ich dann auch nicht ;)

Hatte ich natürlich nur tx-frames setzt sich immerwieder auf 0 zurück. Alle anderen Einstellungen scheinen zu gehen.

Gibt es da eine Tuning-Hilfe welche Settings machbar und nützlich sind?

Danke.
 
Hallo,

Adaptive TX:eek:ff ?

Ich habe das vor einem Jahr gesetzt. Auch nur für 40 GB Ethernetkarte für den Parameter MTU 9000.
Leider findet ich keine ausführlichen Erklärungen.
Einzig:
tx-frames This is the number of frames to queue up before raising an TX interrupt.
Quelle: https://www.ibm.com/support/knowledgecenter/en/SSQPD3_2.6.0/com.ibm.wllm.doc/usingethtoolrates.html

Hier einmal meine Ausgabe:
root@prox1a:~# ethtool -c ens3
Coalesce parameters for ens3:
Adaptive RX: off TX: off
stats-block-usecs: 0
sample-interval: 0
pkt-rate-low: 400000
pkt-rate-high: 450000

rx-usecs: 0
rx-frames: 44
rx-usecs-irq: 0
rx-frames-irq: 0

tx-usecs: 16
tx-frames: 64
tx-usecs-irq: 0
tx-frames-irq: 256

rx-usecs-low: 0
rx-frame-low: 0
tx-usecs-low: 0
tx-frame-low: 0

rx-usecs-high: 128
rx-frame-high: 0
tx-usecs-high: 0
tx-frame-high: 0


Vielleicht den Parameter "adaptive-tx off" mit hineinnehmen?
Ich habe mellanox-Karten. Kannst ja mal deine Netzwerkkarte schreiben.
 
Last edited:
Kannst du deine Lösung einmal posten, hilft auch anderen!

gern...hier meine /etc/network/interfaces

Code:
allow-vmbr0 bond0
iface bond0 inet manual
    ovs_type OVSBond
    ovs_bridge vmbr0
    ovs_options bond_mode=balance-slb
    ovs_bonds eno1 eno2
    pre-up (/sbin/ethtool -C eno1 adaptive-rx off rx-usecs 5 adaptive-tx off tx-usecs 10 && /sbin/ethtool -C eno2 adaptive-rx off rx-usecs 5 adaptive-tx off tx-usecs 10)

nur der relevante part...habe intel 10gbe karten ohne mtu 9000
 
Danke für deine Antwort.

nur der relevante part...habe intel 10gbe karten ohne mtu 9000
Warum ohne hohen MTU Wert? Kein Zugriff auf die Switche? Ich mußte den MTU Wert immer direkt in die Datei interfaces schreiben.
Für die Karten im Bond mit den Netzen ceph und migration macht ein hoher MTU Sinn.
Tipp: Ein migrations-Netz ohne Verschlüsselung ist wesentlich schneller und in einem separaten Netz/vlan auch kein Problem.

Code:
ovs_options bond_mode=balance-slb
Hat ja Nachteile, weil beim Empfang und Senden in einer Sitzung nur ein Netzwerkinterface des Servers benutzt wird. Wobei auf alle Netzwerkkarten gesendet wird und diese Pakete verworfen werden müssen.
Warum nicht lacp, kein Zugriff auf die Switche?

Dies stellt keine Wertung dar, nur Fragen die ich mir als Admin stelle.
 
Last edited:
alles gut...produktiv wird natürlich lacp verwendet...mtu 9000 habe ich deshalb nicht, weil sich auf dem bond auch "normale" clients verbinden wollen...dankeschön für deine hilfe...woher kommst du vielleicht können wir ja zusammen arbeiten?
 
Kein Problem, wenn wieder eine Frage ist, schreib einfach in mein Profil. Dann lasse ich dir meine Mail-Adresse zukommen.
 
Ich mache hier weiter da der andere Thread nicht direct was damit zu tun hat.
Das Problem mit den IP-Adressen hätte gerne erklärt: Welche IP Adressen sollten zu viel sein?

Brauchst du am PVE host für jedes Netzwerk (bridge) zugriff?
Also z.B. verbindest du dich vom PVE host (nicht den VM's) in das #CAMERA net?

Der Punkt ist PVE braucht nur eine IP wenn das Netzwerk routed/NAT ist oder du vom host in das Netzwerk zugreifen must.

Okay, also eine normale Bridge auf den Bond setzen und den VLAN Tag per VM mitgeben? Was ist hier anders?

Du machst in deiner alten Konfig für jede vmbr eine eigens VLAN bond device was Performance technisch nicht sehr gut ist.
Du kannst so was hier machen.
Die VLAN's werden in der VM config am vnic gesetzt.

PHP:
auto lo
iface lo inet loopback

auto eno1
iface eno1 inet static
        address  10.18.0.100
        netmask  255.255.255.0
        gateway  10.18.0.1

iface eno2 inet manual

iface eno3 inet manual

auto bond0
iface bond0 inet manual
    bond-slaves eno2 eno3
    bond-miimon 100
    bond-mode 802.3ad
    bond-xmit-hash-policy layer2

auto vmbr0
iface vmbr0 inet manual
    bridge-ports bond0
    bridge-stp off
    bridge-fd 0
    bridge-vlan-aware yes
    bridge-vids 2-4094

Ein loop dürfte nicht entstanden sein.
Doch du hast

PHP:
auto eno1
iface eno1 inet static
        address  10.18.0.100
        netmask  255.255.255.0
        gateway  10.18.0.1
....
auto bond1
iface bond1 inet static
        address  10.18.0.110
        netmask  255.255.255.0
        bond-slaves eno2 eno3
        bond-miimon 100
        bond-mode 802.3ad
        bond-xmit-hash-policy layer2
#BACKBONE
auto vmbr0
iface vmbr0 inet static
        address  10.18.0.250
        netmask  255.255.255.0
        bridge-ports bond1.1000
        bridge-stp off
        bridge-fd 0
...
Du kannst nicht ohne das Routing manuell anzupassen 3 Interfaces in das gleiche subnets setzen.
 
Jetzt wo wir so darüber sprechen fällt mir das auch auf ... ist ja schon peinlich.
Ich habe nun ein "ip-loses" bond und eine "ip-lose" bridge eingesetzt und den VLAN Tag in der VM gesetzt.
 
Guten Abend,

das Aufräumen hat nichts gebracht, das Verhalten ist wieder genau so da wie vorher --> Regelmäßiger Abriss der Verbindung für 5-10min, dann wieder von alleine wieder online.
 

Attachments

  • proxmox_uplink_failure.png
    proxmox_uplink_failure.png
    18.7 KB · Views: 9
  • proxmox_uplink_failure_2.png
    proxmox_uplink_failure_2.png
    14.1 KB · Views: 9
Hat du mal mit tcpdump dir die interfaces angeschaut?
 
Ja aber es reicht ja auch wenn es weg ist.
Es währe nämlich sehr interessant ob überhaupt noch was am tap<VMID>p<nicport> ankommt.
 

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!