LACP bonding probléma

Sziasztok,

Két gigabites hálókártyát (eth0 és eth1) próbálok összehozni LACP-vel Debian 11 alatt úgy, hogy meglegyen a 2Gbit/s-es sebesség.
Azonban hiába megy mindkét hálókártya, sebességtesztben csak 1Gbit/s van.
Ezen kívül a dmesgben egy erre vonatkozó warning ezzel boldogít:

bond0: Warning: No 802.3ad response from the link partner for any adapters in the bond

Eddig ezzel a két switchel próbáltam és ugyanaz a jelenség:
- Mikrotik CRS328-24P-4S+RM
- Zyxel GS2210-48

/etc/network/interfaces erre vonatkozó része:

auto bond0
iface bond0 inet static
    address 172.22.0.100
    netmask 255.255.255.252
    gateway 172.22.0.1
    dns-nameservers 172.22.0.1
    slaves eth0 eth1
    bond-mode 802.3ad
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200

Köszönöm az ötleteket!

Hozzászólások

Szerkesztve: 2021. 11. 11., cs – 12:44

A warning azt jelenti,m hogy nem sikerült összehozni a switch-el az LACP-t.

Nyilván ehhez a switch-nek is tudnia kell ezt a módot (a leírásaik szerint tudják), és várhatóan az érintett portokat is ennek megfelelően kell configurálni.

 

De még ha össze is jön, ha csak egy tcp session-t használsz, akkor nem fog 1 Gb-nél többet mutatni.

Csak úgy éred el a 2 Gbit-et, ha több kapcsolat is párhuzamosan megy.

ha több kapcsolat is párhuzamosan megy.

fixme, de ez szükséges, de nem elégséges feltétel. Emlékeim szerint a balance method is konfigurálandó, ez lehet IP vagy MAC alapján, de adott cím csomagjai azonos linken fognak közlekedni.
Azaz nem elég, hogy több kapcsolat, de több gép (v több ipcím) esetleg propietary protokol is kell hozzá.

A Mikortik-en én azért Active-ba tenném a portokat.

Egyébként a

cat /proc/net/bonding/bond0

mit mutat?

A networkingben az két slave portot felhúztad?

auto eth0
iface eth0 inet manual

auto eth1
iface eth1 inet manual

 

Van/volt valami bug/összevisszaság a Debian 11-ben a bond-al,de mintha már javították volna valamelyik csomagban:

https://www.claudiokuenzler.com/blog/1121/debian-11-bullseye-problem-bo…

/etc/network/interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
    bond-master bond0

auto eth1
iface eth1 inet manual
    bond-master bond0

auto bond0
iface bond0 inet static
    address 172.22.0.100
    netmask 255.255.255.252
    gateway 172.22.0.1
    dns-nameservers 172.22.0.1
    slaves eth0 eth1
    bond-mode 802.3ad

---

root@nas0:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v5.15.1

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

802.3ad info
LACP active: on
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: b6:5f:75:b9:ca:af
Active Aggregator Info:
    Aggregator ID: 2
    Number of ports: 2
    Actor Key: 9
    Partner Key: 2
    Partner Mac Address: cc:2d:e0:a0:39:50

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:5f:67:0a:b7:10
Slave queue ID: 0
Aggregator ID: 2
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: b6:5f:75:b9:ca:af
    port key: 9
    port priority: 255
    port number: 1
    port state: 61
details partner lacp pdu:
    system priority: 32768
    system mac address: cc:2d:e0:a0:39:50
    oper key: 2
    port priority: 32768
    port number: 24
    port state: 57

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 54:04:a6:94:f4:3d
Slave queue ID: 0
Aggregator ID: 2
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: b6:5f:75:b9:ca:af
    port key: 9
    port priority: 255
    port number: 2
    port state: 61
details partner lacp pdu:
    system priority: 32768
    system mac address: cc:2d:e0:a0:39:50
    oper key: 2
    port priority: 32768
    port number: 23
    port state: 57

Ez pedig jónak tűnik. A Warning a dmesg-ben az rögtön a bond felhúzása után az nem probléma.

De ahogy fentebb többen is írták sima layer2 hashing-el nem biztos hogy el tudsz érni 1Gbps-nél nagyobb sebességet.

Főleg ha nem a LAN-on kommunikál egymással több gép hanem minden a gateway felé megy.

 

Az

xmit_hash_policy=layer2+3

-re állítsd át legalább.

namost, ha van egy bond interface-d, annak van 1db mac címe és -gondolom- egy 1db ipcíme.
Melyik hashing eljárás alapján várod (el), hogy mindkét porton kapjál adatot??

Fordítva tudna működni azaz a fenti "bonded" gép a server, akár 4x1G -vel, és a rá csatlakozó gépEK ki tudnák hajtani a vonalakat külön-külön.

 

ezzel kapcsolatos kérdés: ha nem tcp hanem udp (mondjuk nfs) akkor ugye a serveren is meg a kliensen is lehet több nfs processz.

Ezek elvileg több porton figyelnek, ergo ha tudok ipcim+port alapján megkülönböztetni (talán ez a layer4) akkor mehet akár 2 gép között is a 2Gbit (ebben a speciális esetben nyilván).

Nekem is lesz hasonló projektem a karácsonyi szünetben, majd beszámolok az eredményről.

Gábriel Ákos

Elengedtem az LACP-t, de maradt a két hálókártya két különböző IP címmel ugyanazon a hálózaton. A gépek egyik része az egyik IP-re csatlakozik, másik része pedig a másikra. A probléma ezzel az, hogy amíg ez 10+ éve normálisan működött, az most eléggé bizonytalan lett. Pontosabban először ez még jól ment, azonban ma azt vettem észre, hogy mindkét IP-t érintő forgalom csak az első hálókártyán megy át míg a másik hálókártya kihasználatlanul áll.

Ne ketot probalj hanem 10 -et.

A veletlen muve hogy kulon utakon jar -e,
ha legalabb egy mashol megy ..

A masik dolog egyszer voltam olyan helyzetben hogy az osszes MAC cimem paros volt,
ezert L2 cim alajan hasheles nem ment.

 

Amit nem lehet megirni assemblyben, azt nem lehet megirni.

Ha már 10+ évvel ezelőtt jól működött de manapság már nem,  nem lehet h.  ebbe a strong/weak host model váltásba futottál bele? Igaz ez a váltás windows-nál volt Vista idejében, linux mindig is weak host elvet követett

https://en.m.wikipedia.org/wiki/Host_model

https://docs.microsoft.com/en-us/previous-versions/technet-magazine/cc1…

ha ket halokartya de ugyanaz a ip route+rule-al tudod megoldani, nalam igy van. (nalam kulon halok vannak, de ami eth2-on jon be, az ott is megy ki):

auto eth2
iface eth2 inet static
        address 192.168.200.18
        netmask 255.255.255.0
        post-up ip route add 192.168.200.0/24 dev eth2 src 192.168.200.18 table from_ether_one
        post-up ip route add default via 192.168.200.1 dev eth2 table from_ether_one
        post-up ip rule add from 192.168.200.18/32 table from_ether_one
        post-down ip rule del from 192.168.200.18/32 table from_ether_one

A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

de maradt a két hálókártya két különböző IP címmel ugyanazon a hálózaton

uhm. Ezt vajon hol tanítják?

Ne értsd félre, nem személyeskedésnek számon, de már mástól is hallotam ilyen ötleteket...

de ezek a gyakorlatban nem működnek, nem is javasoltak, és szerintem 10 évvel ezelőtt sem volt az.

 

Nem tudom végülis mit szeretné lelérni, de ez így csak káoszt eredményez.

Ha azt, hogy 2 db 1Gbs interface -ből 2Gbs-t hozzál ki, azt csak bizonyos - és nagyon limitált - körülmények között lehetséges.

Úgy általában simán csak nem lehetséges.

Egy adott adatstream nem lesz 2 Gbps.
Ha van egy gerinced és bondingolsz, akkor a több src és több dst fogja statisztikailag kihasználni az ilyen módon felnövelt vonalakat.

Közben sikerült megcsinálni LACP-vel a 2 Gbitet:
- A switchen firmware-t kellett frissíteni.
- A /etc/network/interfaces-ben ez lett végül beállítva: bond-xmit-hash-policy layer3+4
- A legtöbb gép 1 Gbiten van, így nem gond ha csak több szállal lesz meg a 2 Gbit.
Jelenleg 2 különböző géppel megy a másolás összesen 2Gbittel (egyik Samba-val csatlakozik, a másik NFS-sel)

Szerkesztve: 2021. 12. 08., sze – 12:07

Link-Aggregation megoldható:
1., switch assisted: LACP ( pl.: switch-switch, switch-host - között)
2., host only: STATIC LAG ( máskor MLAG-nak hívják: attól függ hogy ugyanabba a switch-be megy több link vagy több különböző switch-be megy több link - azt fogja össze ) ( pl.: switch-router, switch-host, router-host, router-router - között )

Mindkét esetben bond0 logikai interface lesz, 1., opciónál a switchen külön kell konfigurálni, a 2., opciónal a HOST-on kell csak konfigurálni, bizonyos esetekben pedig csak a 2., opció jöhet szóba - pl.: switch-port és router-port egyszerre kell használni ugyanazon linken, ilyenkor kell egy fizikai visszakötés a kettő között de redundánsan.