Tussen twee switches ligt één kabel en die zit vol. De reflex is een tweede kabel ernaast en LACP eroverheen. Soms is dat het goede antwoord. Vaker is het een oplossing voor een probleem dat anders in elkaar zit dan het lijkt.
Wat een bond wel en niet doet
Een bond verdeelt verkeer over zijn leden aan de hand van een hash. De tool zet bij 802.3ad en balance-xor transmit-hash-policy=layer-2-and-3: de keuze valt op basis van de MAC- en IP-adressen van afzender en ontvanger. Dat betekent:
- Eén gesprek blijft op één kabel. Een bestandskopie van de ene server naar de andere heeft één bron en één bestemming, dus één hash, dus één link. Twee keer 1 Gbit/s wordt daar geen 2 Gbit/s, maar 1 Gbit/s.
- Veel gesprekken verdelen wel. Vijftig werkplekken naar vijftig bestemmingen vullen beide kabels redelijk gelijkmatig.
- Het verdeelt niet slim. De hash weet niets van belasting. Landen de twee zwaarste stromen toevallig op dezelfde link, dan blijft dat zo.
- Bonding gebeurt in de CPU, niet in de switch-chip. Op een apparaat dat normaal op wire speed switcht, kost een bond dus doorvoer in plaats van dat het die oplevert.
Een eerlijker vraag is vaak: kan er één snellere kabel liggen? Twee koperpoorten vervangen door één SFP+ van 10 Gbit/s is eenvoudiger, sneller en minder om uit te leggen. Zie Meerdere gebouwen met glasvezel.
Wanneer het wel helpt
- Redundantie. Kies dan niet 802.3ad maar active-backup: één kabel actief, één wachtend. Simpel, voorspelbaar, en de hash doet niet mee.
- Veel gelijktijdige stromen over een uplink tussen twee switches, bijvoorbeeld een switch vol werkplekken naar de kern.
- Naar een server met twee netwerkkaarten die zelf ook LACP spreekt.
En de tegenhanger: voor pure redundantie tussen switches doet RSTP hetzelfde met minder onderdelen. Die tweede kabel is dan een reservepad dat vanzelf inspringt.
Een bond in de tool
Bonding staat in het onderdeel Bridge en poorten, per apparaat. Klik de switch aan in de site, scroll naar Bonding en LACP en voeg een bond toe:
| Veld | Waarde | Wat het doet |
|---|---|---|
| Naam | bond1 | De interfacenaam waar de rest naar verwijst |
| Modus | 802.3ad of active-backup | 802.3ad onderhandelt met de overkant, active-backup niet |
| Poorten | bijv. ether23 en ether24 | Deze poorten worden uit de bridge gehaald |
| In de bridge | aan | De bond zelf wordt bridge-poort in plaats van de losse kabels |
Bij 802.3ad zet het script ook transmit-hash-policy=layer-2-and-3 en lacp-rate=1sec. De poorten die je als lid kiest verdwijnen automatisch uit de lijst bridge-poorten; dat hoef je niet zelf te doen. Een poort kan geen bond-lid en noodpoort tegelijk zijn, en dat is een fout in de controles.
Doe dit op beide apparaten. Een bond met 802.3ad tegen een kant die geen LACP praat, is geen bond maar een lus.
De beperking die je moet weten
De tool kan van een bond geen VLAN-trunk maken. De poorttoewijzing in het onderdeel VLANs biedt alleen fysieke poorten aan, dus een bond kun je daar niet op trunk zetten. Staat de bond wel in de bridge terwijl VLANs aan staan, dan komt hij in het script terecht als untagged access-poort op de eerste VLAN uit de tabel, met frame-types=admit-only-untagged-and-priority-tagged. Alle getagde frames die erop binnenkomen worden dan weggegooid.
Dat is precies verkeerd voor een uplink tussen twee switches, want daar moeten juist alle VLANs overheen. Je repareert het met de hand, direct na het plakken van het script, op beide apparaten:
/interface bridge port
set [find interface=bond1] frame-types=admit-only-vlan-tagged ingress-filtering=yes
/interface bridge vlan
set [find vlan-ids=10] tagged=bridge,bond1 untagged=""
set [find vlan-ids=20] tagged=bridge,bond1
set [find vlan-ids=99] tagged=bridge,bond1
De eerste regel maakt van de bond een trunk. Daarna voeg je hem per VLAN toe aan de tagged-lijst, en haal je hem bij de eerste VLAN uit de untagged-lijst, waar de generator hem had neergezet. Staan er op die eerste VLAN ook gewone access-poorten, vul die dan in bij untagged= in plaats van leeg te laten. Controleer het resultaat met /interface bridge vlan print.
Zet deze regels op het overdrachtsblad. Ze staan niet in het gegenereerde script, dus ze gaan verloren zodra iemand opnieuw genereert en plakt.
Het bord en de bond
Op het netwerkbord teken je kabels, geen bonds. Teken je twee kabels tussen dezelfde twee apparaten, dan gebeurt er iets anders dan je bedoelt: beide poorten worden trunk, en de controle meldt dat de tweede kabel een lus maakt en dat RSTP een van de paden blokkeert. Het werkt, maar sneller wordt het niet.
De praktische werkwijze: teken één kabel op het bord, zodat de trunks en de poortopmerkingen kloppen, en maak de bond in het onderdeel Bridge en poorten van beide apparaten. De tweede fysieke kabel prik je er in het veld bij.
Waar je verder op let
- Dezelfde MTU aan beide kanten. De tool vergelijkt de MTU per kabel en per aaneengesloten netwerk en meldt het verschil met de exacte poortnamen. Bij een bond geldt dat voor alle leden.
- Dezelfde snelheid per lid. Een bond van een 1G- en een 2,5G-poort is een bond die zich als twee keer 1G gedraagt, met verrassingen.
- Meet voordat je bouwt. Is de link echt vol, of is de klacht iets anders? Zie Controles over snelheid en Bekabeld verkeer is traag.
Verder lezen: Bonding en LACP, Switches in een ring en MTU en jumbo frames.