LACP Probleme

Stueckchen

Experte
Thread Starter
Mitglied seit
29.03.2017
Beiträge
437
Habe bei mir etwas Probleme mit LACP.
Wollte die Bandbreite zwischen meinem VM-Server (Proxmox) und meinem LAN bzw. Backupserver (Debian) erhöhen. Das LACP einen einzelnen Stream nicht Beschleunigt und das es wirklich 2*1G statt 1*2G sind ist mir klar. Aber wenn das Backup läuft und man gleichzeitig noch was auf dem VM-Server macht sollten ja insgesammt mehr als ~115mb/s durchsatz drinnen sein, sind es aber nicht. Bei 112mb/s ist Schluss.
Vll kann mir jemand hier helfen den Fehler zu finden.

Das Ganze sollte so ausschauen:
<Server>==LACP==<UniFi-Switch>==LACP==<Backup>


Der Server hat eine Fujitsu Dualport Karte bekommen (I350-AM2).
Mein Backupserver hat zwei Nic's Realtek und Intel.
Mein PC hätte auch noch 2 Intel Nic's und habe da auch das Teaming ohne erfolg getestet.
Unifi-Switch ist nur ein 8-Port, aber laut CLI und GUI hat das Aggregieren hier auch geklappt.

Iperf gibt folgendes aus:
Code:
iperf3 -c 192.168.0.199 -P3 -R
Connecting to host 192.168.0.199, port 5201
Reverse mode, remote host 192.168.0.199 is sending
[  4] local 192.168.0.250 port 43008 connected to 192.168.0.199 port 5201
[  6] local 192.168.0.250 port 43010 connected to 192.168.0.199 port 5201
[  8] local 192.168.0.250 port 43012 connected to 192.168.0.199 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec  45.5 MBytes   382 Mbits/sec
[  6]   0.00-1.00   sec  44.2 MBytes   371 Mbits/sec
[  8]   0.00-1.00   sec  22.9 MBytes   192 Mbits/sec
[SUM]   0.00-1.00   sec   113 MBytes   945 Mbits/sec

Server
Code:
root@majestix:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: 00:19:99:e2:eb:46
Active Aggregator Info:
        Aggregator ID: 1
        Number of ports: 2
        Actor Key: 9
        Partner Key: 68
        Partner Mac Address: f0:9f:c2:1d:07:d8

Slave Interface: enp1s0f0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:19:99:e2:eb:46
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
    system priority: 65535
    system mac address: 00:19:99:e2:eb:46
    port key: 9
    port priority: 255
    port number: 1
    port state: 61
details partner lacp pdu:
    system priority: 32768
    system mac address: f0:9f:c2:1d:07:d8
    oper key: 68
    port priority: 128
    port number: 5
    port state: 61

Slave Interface: enp1s0f1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:19:99:e2:eb:47
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
    system priority: 65535
    system mac address: 00:19:99:e2:eb:46
    port key: 9
    port priority: 255
    port number: 2
    port state: 61
details partner lacp pdu:
    system priority: 32768
    system mac address: f0:9f:c2:1d:07:d8
    oper key: 68
    port priority: 128
    port number: 6
    port state: 61

Backup
Code:
root@h340:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: d0:50:99:71:20:70
Active Aggregator Info:
        Aggregator ID: 1
        Number of ports: 2
        Actor Key: 9
        Partner Key: 67
        Partner Mac Address: f0:9f:c2:1d:07:d8

Slave Interface: enp3s0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: d0:50:99:71:20:70
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
    system priority: 65535
    system mac address: d0:50:99:71:20:70
    port key: 9
    port priority: 255
    port number: 1
    port state: 61
details partner lacp pdu:
    system priority: 32768
    system mac address: f0:9f:c2:1d:07:d8
    oper key: 67
    port priority: 128
    port number: 4
    port state: 61

Slave Interface: enp1s0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:1b:21:63:27:f4
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
    system priority: 65535
    system mac address: d0:50:99:71:20:70
    port key: 9
    port priority: 255
    port number: 2
    port state: 61
details partner lacp pdu:
    system priority: 32768
    system mac address: f0:9f:c2:1d:07:d8
    oper key: 67
    port priority: 128
    port number: 3
    port state: 61
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
LACP folgt einer Policy. Diese Policy beschreibt, nach welchem Schema verteilt wird. Und bis auf (möglicherweise) adaptives Trunking kümmert sich keine Policy um die tatsächliche Auslastung des jeweiligen Links. Es wird (je nach Verfahren mehr oder weniger willkürlich abwechselnd) auf die beiden Leitungen verteilt.
Mal ein recht simples Beispiel: du startest eine Verbindung mit hoher Auslastung (ETH1), dann kommt ein DNS request oder Ping, der geht auf ETH2, deine nachfolgende Verbindung mit hoher Auslastung geht dann wieder auf ETH1 und Du siehst keinen Mehrdurchsatz. Das wäre jetzt ein Beispiel für round robin.

Du verwendest Layer 2+3. D.h. du müsstest den Berechnungsalgorithmus deines systems für diese policy hernehmen und könntest damit dann prüfen, ob/wieso nur einer der beiden Links verwendet wird.
Außerdem kommt in deinem Beispiel (zweimal LACP) hinzu, dass du das für beide Bondings machen musst. Denn ein SingleLink reicht ja schon, dass du nur noch die einfache Bandbreite hast.

LACP ist relativ komplex und der effektive Gewinn eher gering, da nicht dauerhaft. Wenn höhere Bandbreiten gewünscht sind, würde ich ein Upgrade auf 10GBit empfehlen. Wenn die Geräte beieinander stehen, ist die Investition überschaubar (z.b. 2x gebrauchte Mellanox Connect, zwei SFP+ DACs, ein günstiger SFP+ Switch). Sollte mit 200-300€ getan sein.

- - - Updated - - -

Um noch vereinfacht auf Dein Beispiel einzugehen. Meist wird die Verteilung anhand von Modulos vorgenommen. Bei Deinem Beispiel unterscheiden sich praktisch nur die Quellports 43008, 43010, 43012). Du hast zwei Links, also wird Mod 2 gerechnet. Nachdem alle Quellports gerade Zahlen sind, gibt mod2 immer 0 als Ergebnis, d.h. es wird immer der erste Link verwendet.

Ich bin kein Experte für LACP und das war eine vereinfachte Darstellung, aber ich denke, sie zeigt dennoch die Probleme von LACP Policies auf.
 
Zuletzt bearbeitet:
Danke schon mal für die kleine policy Erläuterung.

Grade doch nochmal einen kleinen Test gemacht. Am Backupserver scheint es zu Funktionieren: Iperf vom Router und vom Server zum Backup klappt 940Mbit + 740Mbit. Vom Router und Backup zum Server 450Mbit je https://www.hardwareluxx.de/community/images/smilies/graemlins/confused.gif
Also weis ich schon mal wo der Fehler ist, nur noch nicht was für einer.

Vll sieht jemand hier einen Fehler:
Die Netzkonfiguration des Servers:
cat /etc/network/interfaces
# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage part of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!

auto lo
iface lo inet loopback

iface eno1 inet manual

auto enp1s0f0
iface enp1s0f0 inet manual

auto enp1s0f1
iface enp1s0f1 inet manual

auto bond0
iface bond0 inet manual
slaves enp1s0f0 enp1s0f1
bond_miimon 100
bond_mode 802.3ad
bond_xmit_hash_policy layer2+3

auto vmbr0
iface vmbr0 inet static
address 192.168.0.250
netmask 255.255.255.0
gateway 192.168.0.100
bridge_ports bond0
bridge_stp off
bridge_fd 0


@martingo Ja das mit 10G habe ich mir auch überlegt. Aber mir würde beim Netzwerk alles aus einer Hand und Zentral gesteuert schon gefallen, daher auch Unifi Switch+AP+USG (noch fehlt) nur leider sind die Switches mit 10G echt teuer. Verstehe auch nicht warum es da kein 16 Port mit 2*SFP+ gibt, weil das 48Port Switch ist halt echt zu groß und laut und das 16*10G Switch mir zu teuer. Vll muss ich wirklich mal Microtik anschauen, auch wenn ich an den AP's und der Oberfläche erstmal etwas zweifel.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh