LACP zwischen Netgear ProSafe GSM7248V2 und Linux-Server

LACP zwischen Netgear ProSafe GSM7248V2 und Linux-Server

Ich versuche, einen Linux-Server mit zwei 1-Gbit/s-Netzwerkkarten mit einem Switch Netgear ProSafe GSM7248V2 über Bonding zu verbinden, genauer gesagt im 802.3ad-Modus. Die Ergebnisse sind sehr verwirrend. Ich wäre für jeden Hinweis dankbar, was ich als nächstes versuchen könnte.

Auf der Serverseite ist dies meine /etc/network/interfaces:

auto bond0
iface bond0 inet static
        address 192.168.1.15/24
        gateway 192.168.1.254
        dns-nameservers 8.8.8.8
        dns-search my-domain.org
        bond-slaves eno1 eno2
        bond-mode 4
        bond-miimon 100
        bond-lacp-rate 1
        bond-xmit_hash_policy layer3+4
        hwaddress aa:bb:cc:dd:ee:ff

Die Konfiguration des Switches ist wie folgt:

(GSM7248V2) #show port-channel 3/2          


Local Interface................................ 3/2
Channel Name................................... fubarlg
Link State..................................... Up
Admin Mode..................................... Enabled
Type........................................... Dynamic
Load Balance Option............................ 6
(Src/Dest IP and TCP/UDP Port fields)

Mbr    Device/       Port      Port
Ports  Timeout       Speed     Active
------ ------------- --------- -------
0/7    actor/long    Auto      True   
       partner/long  
0/8    actor/long    Auto      True   
       partner/long  

(GSM7248V2) #show lacp actor 0/7    

         Sys    Admin   Port      Admin
 Intf  Priority  Key  Priority    State  
------ -------- ----- -------- ----------- 
0/7    1        55    128      ACT|AGG|LTO 

(GSM7248V2) #show lacp actor 0/8

         Sys    Admin   Port      Admin
 Intf  Priority  Key  Priority    State  
------ -------- ----- -------- ----------- 
0/8    1        55    128      ACT|AGG|LTO 

(GSM7248V2) #show lacp partner 0/7 

       Sys      System       Admin Prt Prt     Admin
 Intf  Pri       ID          Key   Pri Id      State
------ --- ----------------- ----- --- ----- ----------- 
0/7    0   00:00:00:00:00:00 0     0   0     ACT|AGG|LTO 

(GSM7248V2) #show lacp partner 0/8

       Sys      System       Admin Prt Prt     Admin
 Intf  Pri       ID          Key   Pri Id      State
------ --- ----------------- ----- --- ----- ----------- 
0/8    0   00:00:00:00:00:00 0     0   0     ACT|AGG|LTO 

Ich glaube, dass xmit „layer3+4“ am besten mit dem Load Balance Type 6 des Switches kompatibel ist. Das erste Überraschende ist, dass der Switch die MAC-Adresse des LACP-Partners nicht sieht.

Auf der Serverseite ist dies der Inhalt von /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: layer3+4 (1)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: ac:1f:6b:dc:2e:88
Active Aggregator Info:
    Aggregator ID: 15
    Number of ports: 2
    Actor Key: 9
    Partner Key: 55
    Partner Mac Address: a0:21:b7:9d:83:6a

Slave Interface: eno1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: ac:1f:6b:dc:2e:88
Slave queue ID: 0
Aggregator ID: 15
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: ac:1f:6b:dc:2e:88
    port key: 9
    port priority: 255
    port number: 1
    port state: 63
details partner lacp pdu:
    system priority: 1
    system mac address: a0:21:b7:9d:83:6a
    oper key: 55
    port priority: 128
    port number: 8
    port state: 61

Slave Interface: eno2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: ac:1f:6b:dc:2e:89
Slave queue ID: 0
Aggregator ID: 15
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: ac:1f:6b:dc:2e:88
    port key: 9
    port priority: 255
    port number: 2
    port state: 63
details partner lacp pdu:
    system priority: 1
    system mac address: a0:21:b7:9d:83:6a
    oper key: 55
    port priority: 128
    port number: 7
    port state: 61

Wenn ich das richtig verstehe, bedeutet das, dass der Linux-Bonding-Treiber alle Aggregatordetails (Schlüssel, Portnummern, Systempriorität, Portpriorität usw.) korrekt ermittelt hat. Trotzdem erhalte ich nach einem Neustart des Netzwerkdienstes Folgendes in dmesg:

[Dec14 20:40] bond0: Releasing backup interface eno1
[  +0.000004] bond0: first active interface up!
[  +0.090621] bond0: Removing an active aggregator
[  +0.000004] bond0: Releasing backup interface eno2
[  +0.118446] bond0: Enslaving eno1 as a backup interface with a down link
[  +0.027888] bond0: Enslaving eno2 as a backup interface with a down link
[  +0.008805] IPv6: ADDRCONF(NETDEV_UP): bond0: link is not ready
[  +3.546823] igb 0000:04:00.0 eno1: igb: eno1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[  +0.160003] igb 0000:05:00.0 eno2: igb: eno2 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[  +0.035608] bond0: link status definitely up for interface eno1, 1000 Mbps full duplex
[  +0.000004] bond0: Warning: No 802.3ad response from the link partner for any adapters in the bond
[  +0.000008] bond0: first active interface up!
[  +0.000166] IPv6: ADDRCONF(NETDEV_CHANGE): bond0: link becomes ready
[  +0.103821] bond0: link status definitely up for interface eno2, 1000 Mbps full duplex

Beide Schnittstellen sind aktiv, die Netzwerkverbindung scheint ganz normal zu sein, ich erhalte lediglich diese seltsame Warnung, dass kein 802.3ad-kompatibler Partner vorhanden ist.

Wenn ich außerdem versuche, zwei große Binärdateien (je 10 GB) von zwei verschiedenen Maschinen, die mit demselben Switch verbunden sind und jeweils mit 1 Gbit/s verbunden sind, gleichzeitig zu kopieren, liegt der Gesamtdurchsatz der Bond0-Schnittstelle auf dem Server deutlich unter 1 Gbit/s, obwohl ich eher etwas näher an 2 Gbit/s erwarten würde (die Lesegeschwindigkeit usw. ist hier kein begrenzender Faktor, alles SSDs, gut zwischengespeichert usw.). Wenn ich dieselben Dateien nacheinander von denselben Maschinen kopiere, erreiche ich problemlos Durchsätze nahe 1 Gbit/s.

Hast du bitte eine Idee, was hier falsch sein könnte? Bezüglich der Diagnose erscheint die verwirrende Warnung in dmesg (kein 802.3ad-kompatibler Partner) und im sh-lacp-Output des Switches (keine MAC des Partners, obwohl der reguläre Port-Record die korrekte MAC-Adresse der angeschlossenen Netzwerkkarte anzeigt). Bezüglich der Netzwerkleistung kann ich keine Aggregation über zwei verschiedene Verbindungen erkennen. Ich wäre für jeden Hinweis sehr dankbar.

Antwort1

Der Switch ist auf longLACP-Timeout konfiguriert – eine LACPDU alle 30 Sekunden.

Das Linux-System ist so konfiguriert bond-lacp-rate 1: .

Ich kann nicht herausfinden, was dies in Debian tatsächlich bewirkt, aber wenn es die lacp_rate=1Moduloption an Bonding übergibt (Referenz), dann ist dies das schnelle Timeout – eine LACPDU alle 1 Sekunde.

Diese Nichtübereinstimmung zwischen langsamer/schneller LACP-Rate ist eine Fehlkonfiguration.

In der gesamten Beispieldokumentation, die ich finden kann, steht, dass Debian dies akzeptiert, bond-lacp-rate slowwas das Problem hoffentlich für Sie behebt.

Sie können die bond-lacp-rateZeile wahrscheinlich auch aus Ihrer Konfigurationsdatei entfernen, da die Standardeinstellung eine langsame Rate ist, und dann das Bonding-Modul entladen oder einen Neustart durchführen, um die Anwendung vorzunehmen.

Testen Sie den Durchsatz nicht mit nur zwei Streams. Die layer3+4Richtlinie garantiert nicht, dass zwei beliebige Streams jeweils eine separate Netzwerkkarte erhalten, sondern nur, dass der Datenverkehr bei einer ausreichenden Anzahl von Streams einigermaßen ausgeglichen sein sollte.

Testen Sie beispielsweise mit 16 oder 32 gleichzeitigen iperf3 TCP-Streams. Der Gesamtdurchsatz aller Streams sollte bei etwa 2 Gbit/s liegen.

verwandte Informationen