Auteur Sujet: Freebox Pop / Mikrotik : Agrégation de liens  (Lu 1986 fois)

0 Membres et 1 Invité sur ce sujet

guiguir68

  • Abonné Free fibre
  • *
  • Messages: 1
Freebox Pop / Mikrotik : Agrégation de liens
« le: 06 avril 2023 à 22:44:32 »
Bonsoir à tous !

Je tente de connecter ma Freebox Pop à un routeur Mikrotik RB5009UG.
Pour ne pas perdre trop de débit, j'essaye de faire une agrégation de liens en connectant tous les ports de la Freebox au Mikrotik (2.5Gb + 1Gb + 1Gb).

A ce stade, je n'arrive pas à faire fonctionner pleinement mon bonding sur l'ensemble des ports. Seulement un seul port est utilisé à la fois. Donc pas de moyen d'utiliser la bande passante max...

Voici la config :

/interface bridge
add name=bridge1
/interface bonding
add mode=802.3ad name=bonding1 slaves=sfp=sfpplus1,ether2,ether3
/ip pool
add name=dhcp_pool0 ranges=192.168.88.2-192.168.88.254
/ip dhcp-server
add address-pool=dhcp_pool0 interface=bridge1 name=dhcp1
/interface bridge port
add bridge=bridge1 interface=ether1
/ip address
add address=192.168.88.1/24 interface=bridge1 network=192.168.88.0
/ip dhcp-client
add interface=bonding1
/ip dhcp-server network
add address=192.168.88.0/24 gateway=192.168.88.1
/ip firewall nat
add action=masquerade chain=srcnat

Quand je tente de faire un speedtest, depuis mon PC branché à ether1, je plafonne à 1Gb.
Durant le test, je vois que seule l'interface ether2 est utilisée. Les autres restent à 0.

Est ce que quelqu'un s'est déjà penché sur la question ? Vous avez des pistes ?

Merci !

buddy

  • Expert
  • Abonné Free fibre
  • *
  • Messages: 15 163
  • Alpes Maritimes (06)
Freebox Pop / Mikrotik : Agrégation de liens
« Réponse #1 le: 06 avril 2023 à 23:41:34 »
Bonjour,

il me semble que pour faire du bonding, il faut que les 2 côtés de la connexion le supporte et je ne pense pas que la freebox pop le supporte.
Après, il est possible sur plusieurs téléchargements en installant une sorte de load balancing d'en faire passer 1 par une carte réseau, un 2eme par la 2eme et un 3eme par la 3eme carte réseau, mais est-ce réellement utilise de s'embêter autant ?? (ça ne fonctionnera que lors de 3 téléchargements simultanés minimum..)

zoc

  • Abonné Orange Fibre
  • *
  • Messages: 4 289
  • Antibes (06) / Mercury (73)
Freebox Pop / Mikrotik : Agrégation de liens
« Réponse #2 le: 07 avril 2023 à 09:10:56 »
Et en pratique, même avec les 2 cotés compatibles, chaque connection TCP passe toujours par un seul lien physique. Répartir une connexion TCP sur plusieurs liens physiques augmente grandement les chances de recevoir les paquets dans le désordre, et même si TCP le gère, ça impacte forcément le débit et va à l'encontre du but intial recherché.

Donc pour que le bonding soit efficace, il faut à la fois que les 2 équipements soient compatibles et des téléchargements "multi thread". C'est d'ailleurs pour cette raison qu'on a inventé le SMB multichannel, parce que le bonding seul n'aggrège pas vraiment...

kfc

  • Abonné Free fibre
  • *
  • Messages: 21
  • Paris (75)
Freebox Pop / Mikrotik : Agrégation de liens
« Réponse #3 le: 12 avril 2023 à 23:51:21 »
je vais faire une suggestion un peu loufoque mais bon..
1. configure ton mikrotik pour sortir les ports wan du bridge (ports wan = vers la freebox)
2. configure un client DHCP par port pour que chacun aie une IP dans le subnet d'interco entre ton mikrotik et la FB, avec duplication des regles masquerade, routes par default multiples, etc, etc
3. configure du routage ECMP pour load balancer les flux sortants, les flux entrant seront forcement sur le liens qui porte l'IP de NAT configurée dans la freebox.
4. branche tes client derrière le Mikrotik (en double NAT donc)

Il y a surement des points d'attention que je néglige..

=> https://wiki.mikrotik.com/wiki/ECMP_load_balancing_with_masquerade  / https://wiki.mikrotik.com/wiki/Load_Balancing


EDIT j'ai fait le test sans equipement intermédiaire , simplement avec plusieurs NIC sur la FB et ça a l'air de marcher.
speedtest.net me donne 1833.86 Mbps download, pas de souci à l'usage puisque tout fini par être NAT avec mon IP publique au final.
iperf3 a l'air de bind son ip source manuellement donc ne s'y prête pas, mais il y a peut etre une astuce..

J'ai mis net.ipv6.fib_multipath_hash_policy / net.ipv4.fib_multipath_hash_policy à '1' pour hash sur le L4 . Je bricole aussi avec '3'

# ip r
default proto static
nexthop via 192.168.1.254 dev enp0s20f0u3 weight 1 <= ethernet 1G natif
nexthop via 192.168.1.254 dev eno1 weight 1  <= ethernet 1G via USB
nexthop via 192.168.1.254 dev wlp0s20f3 weight 1 dead linkdown  <= wifi 6 désactivé pour l'instant
default via 192.168.1.254 dev enp0s20f0u3 proto dhcp src 192.168.1.172 metric 100
default via 192.168.1.254 dev eno1 proto dhcp src 192.168.1.199 metric 101
192.168.1.0/24 dev enp0s20f0u3 proto kernel scope link src 192.168.1.172 metric 100
192.168.1.0/24 dev eno1 proto kernel scope link src 192.168.1.199 metric 101

J'ai un NIC 2.5G USB en attente de livraison.
« Modifié: 16 avril 2023 à 21:29:28 par kfc »

kfc

  • Abonné Free fibre
  • *
  • Messages: 21
  • Paris (75)
Freebox Pop / Mikrotik : Agrégation de liens
« Réponse #4 le: 28 avril 2023 à 19:33:04 »
Après avoir (enfin) recu mon adapter ethernet 2.5G usb, voila ce que ça donne : 4.6 Gb/s soit 90% des 5G théoriques

$ iperf3 -4 -c paris.testdebit.info -p 9220 -R --cport 2025 -P12
[  5] local 192.168.1.199 port 2025 connected to 89.84.1.194 port 9220
[  7] local 192.168.1.64 port 2026 connected to 89.84.1.194 port 9220
[  9] local 192.168.1.49 port 2027 connected to 89.84.1.194 port 9220
[ 11] local 192.168.1.172 port 2028 connected to 89.84.1.194 port 9220
[ 13] local 192.168.1.64 port 2029 connected to 89.84.1.194 port 9220
[ 15] local 192.168.1.49 port 2030 connected to 89.84.1.194 port 9220
[ 17] local 192.168.1.64 port 2031 connected to 89.84.1.194 port 9220
[ 19] local 192.168.1.64 port 2032 connected to 89.84.1.194 port 9220
[ 21] local 192.168.1.199 port 2033 connected to 89.84.1.194 port 9220
[ 23] local 192.168.1.172 port 2034 connected to 89.84.1.194 port 9220
[ 25] local 192.168.1.199 port 2035 connected to 89.84.1.194 port 9220
[ 27] local 192.168.1.64 port 2036 connected to 89.84.1.194 port 9220
[...]
[SUM]   0.00-10.00  sec  5.44 GBytes  4.67 Gbits/sec  125714             sender
[SUM]   0.00-10.00  sec  5.37 GBytes  4.61 Gbits/sec                receiver

# ip r
default proto static
nexthop via 192.168.1.254 dev enp0s20f0u3 weight 1
nexthop via 192.168.1.254 dev eno1 weight 1
nexthop via 192.168.1.254 dev wlp0s20f3 weight 1
nexthop via 192.168.1.254 dev enp0s20f0u4 weight 1

Notez les 4 IP clientes différentes, il y a 1G natif + 1G usb + 2.5G usb + ~1.2G wifi .ax intel natif  chacune avec son IP
Je devrais pouvoir me rapprocher encore des 5G en jouant sur les weight en proportion des linkspeed (par ex 10 sur les 1G et 25 sur le 2.5G) mais à 90% du max théorique, le concept fonctionne.

les adapteurs USB sont des realtek tous les deux, sur des ports USB isolés (bien sur)
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 10000M
    |__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
    |__ Port 3: Dev 3, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
    |__ Port 4: Dev 5, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
celui 2.5G a plusieurs variantes plus ou moins performantes (voir https://www.cnx-software.com/2022/02/20/fixing-performance-issues-with-realtek-rtl8156b-2-5gbe-usb-dongle-in-ubuntu/ ) . Le mien est un US2GA30 de chez StarTech à 65€, pas le moins cher sur Amazon mais visiblement un des bons chipsets.

Pour les flux entrants, j'aurai voulu 'couper' internet 0/0 en 4 /2 et configurer la redirection d'un quart des IP sur chaque IP locale mais FreeboxOS ne me laisse pas faire .. je trouverai bien une alternative.
« Modifié: 28 avril 2023 à 19:58:14 par kfc »