Auteur Sujet: OpenWRT 22.03 - problème LACP [résolu]  (Lu 568 fois)

0 Membres et 1 Invité sur ce sujet

Fuli10

  • Abonné Free fibre
  • *
  • Messages: 1 006
  • Conflans Sainte Honorine (78)
OpenWRT 22.03 - problème LACP [résolu]
« le: 05 décembre 2022 à 14:38:38 »
Hello,
J'ai vu qu'il est désormais possible de créer une interface bonding via LUCI. J'ai testé cela mais le problème c'est que cela devient une interface à part entière avec son IP, et qui ne peut pas être intégré dans le bridge du LAN.
En fait j'utilise un script (depuis openwrt 19.xx) qui fait le bonding au début de la vie. J'obtiens une interface bond0 que j'intègre dans mon bridge LAN.
Cette solution fonctionnait avec openwrt 19.xx.
Depuis, j'ai eu un problème de place sur mon switch et le bonding tournait qu'avec 1 seul port depuis quelques années (passage à openwrt 21.x invisible).

Aujourd'hui j'ai pu récupérer un peu de place sur le switch et j'ai retenté le bonding avec la configuration sous openwrt 22.03 (et le script qui date de oWRT 19). Sauf que depuis j'ai constaté des ralentissements et pertes de paquets. J'ai regardé le status du bonding sur le routeur et en fait le bonding n'est pas détecté par le routeur => ne fonctionne pas. Je débranche un des câbles du bonding => tout fonctionne. Donc quelques part le bonding ne fonctionne plus.

Le problème c'est que dans ma configuration, j'ai 2 ports physiques pour le LAN, et des ports virtuelles (ainsi qu'un tunnel GRE). Je bridge le tout pour n'en faire qu'un seul et unique port LAN et ça marche très bien, sauf le LACP/bonding.
Les 2 ports physiques sont reliés à un switch netgear qui supporte l’agrégation de ports.
Quand je dump le port physique, je vois bien les paquets LACP (et aussi LLDP):

14:03:44.939580 LLDP, length 46
   0x0000:  0180 c200 000e 0802 8e8b 1d6f 88cc 0207
   0x0010:  0408 028e 8b1d 6d04 0307 6736 0602 0078
   0x0020:  1014 0501 c0a8 0025 0200 0000 0d08 6272
   0x0030:  6f61 6463 6f6d 0000 0000 0000
14:03:50.381771 LACPv1, length 110
   0x0000:  0180 c200 0002 0802 8e8b 1d6f 8809 0101
   0x0010:  0114 8000 0802 8e8b 1d6d 000e 0080 0006
   0x0020:  4500 0000 0214 0000 0000 0000 0000 0000
   0x0030:  0000 0000 0d00 0000 0310 0000 0000 0000
   0x0040:  0000 0000 0000 0000 0000 0000 0000 0000
   0x0050:  0000 0000 0000 0000 0000 0000 0000 0000
   0x0060:  0000 0000 0000 0000 0000 0000 0000 0000
   0x0070:  0000 0000 0000 0000 0000 0000


Par contre au niveau du bridge br-lan, je ne vois rien. Cela semble normal, LACP n'est pas censé passer à travers le bridge.
Par contre je m'attendrais à ce que la stack bonding réponde un truc aux requêtes LACPv1 pour dire que le bonding est UP. Sauf que... je ne vois rien sortir du port réseau.
Pire: le compteur "Link Failure Count" ne bouge pas alors que je débranche/rebranche les ports.

# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v5.10.146

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0

Slave Interface: eth3
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 74:d4:35:5e:cd:12
Slave queue ID: 0

Slave Interface: eth4
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 74:d4:35:5e:cd:14
Slave queue ID: 0
~# ethtool eth3
...
   Link detected: no

Même eth3 n'est pas branché...

Pourquoi ? Pourquoi tant de haine ? Comment déboguer ça ?

Pas que c'est un besoin vital, mais ce serait quand même cool que le LACP me permette d'exploiter 1Gbps par IP. J'utilise la règle:

ip link add bond0 type bond mode 802.3ad xmit_hash_policy layer2+3
« Modifié: 07 décembre 2022 à 14:09:40 par Fuli10 »

Fuli10

  • Abonné Free fibre
  • *
  • Messages: 1 006
  • Conflans Sainte Honorine (78)
OpenWRT 22.03 - problème LACP
« Réponse #1 le: 07 décembre 2022 à 13:25:36 »
Je me répond à moi même.
En me relisant j'ai vu ça:
Bonding Mode: load balancing (round-robin)
Et pourtant vu ailleurs sur le net, je devrais avoir:
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2+3 (2)

Une recherche rapide me rappel que j'avais oublié d'installer le package 'ip-full' qui permet justement de balancer tout les bons paramètres. Maintenant ça marche le LAG est détecté au niveau du switch, tout va bien.
Voilà voilà....

blarglibloup

  • Invité
OpenWRT 22.03 - problème LACP [résolu]
« Réponse #2 le: 07 décembre 2022 à 14:39:41 »
la gestion du bonding dans luci est complètement foireuse, il vaut mieux gérer ça à la mano (ou proposer un patch pour améliorer le truc :)