Link Aggregation Control Protocol (LACP) (IEEE 802.1AX-2008, wcześniej IEEE 802.3ad), to mechanizm umożliwiający scalenie interfejsów sieciowych w jedno, logiczne połączenie. W linuxie Link Agregation odbywa się z użyciem modułu bonding.ko, dlatego też często stosuje się nazewnictwo bondingu w kontekście linuxa, a pamiętajmy, Tomato to linux
Korzyści z Link Aggregation w porównaniu z tradycyjnym połączeniem za pośrednictwem pojedynczego kabla:
- większa prędkość połączenia
- większa niezawodność
Niezawodność jest dość oczywista. W przypadku uszkodzenia jednego linku (awaria karty sieciowej, uszkodzenie kabla, nieumyślne wypięcie kabla sieciowego) spada jedynie prędkość linku, natomiast komunikacja nadal odbywa się bez przeszkód.
Co do większej prędkości to należy się tu małe dopowiedzenie. Jeżeli mamy 2 komputery ze skonfigurowanym LAG na 2Gbps, to prędkość przesyłu między tymi dwoma komputerami nadal wyniesie maksymalnie 1Gbps. Link Aggregation nie potrafi wykorzystać wielu interfejsów między dwoma końcówkami. Co więcej nie pomoże w tym przypadku MultiChannel SMB3.0 zaimplementowany w Windows 8 i wyżej. Link Aggregation stosuje się wszędzie tam, gdzie wielu użytkowników ma jednoczesny dostęp do zasobów (np. do NAS`a). Przykładem niech będzie serwer, który pełni funkcję serwera plików. Jeżeli skonfigurujemy na nim Link Aggregation z 4-ch sieciówek, uzyskując tym samym LAG o prędkości 4Gbps i podłączy się do niego czterech klientów, każdy z linkiem 1Gbps to każdy z nich będzie w stanie wysycić max swojego linku, czyli 1Gbps (oczywiście pod warunkiem, że wydajność maszyny - dysków - na to pozwoli). W ten sposób wysycimy całe 4Gbps LAG na serwerze.
Konfiguracja
Niniejszy tutorial opisuje konfigurację Link Aggregation między Tomato a Netgear ReadyNAS Pro4, który to posiada dwa porty gigabitowe. Zalecana wersja Tomato to v138 lub wyżej. Minimalna to v137, gdyż w niej finalnie został zmodyfikowany skrypt do bindingu. Wspomnę również, że póki co bonding zaimplementowany jest tylko w Tomato ARM. Do obrazów Mipsel funkcja bondingu pojawi się od Tomato v139.
Tomato
Potrzebujemy wydzielić dwa porty routera jako dwa niezależne interfejsy. W tym celu udajemy się do Advanced -> VLAN.
Jak widać na powyższym obrazku. Porty 3 i 4 zostały wypięte z głównego VLANu (br0), dodane zostały nowe, kolejne VLANy o ID 3 i 4 (akurat tak się złożyło). Do każdego VLANu został wpięty jeden port. Oba VLANy nie zostały przyporządkowane do żadnego bridge`a.
Oczywiście konfiguracja VLANów u Was może wygląda nieco inaczej. Wszystko zależy od tego czy poczyniliście wcześniej jakieś modyfikacje w VLANach, np. przy konfiguracji dualWAN lub sieci gościnnej. Ważne by wydzielić dwa VLANy pod bonding. U mnie przykładowo wygląda to tak:
Jak widać, pomimo mocno rozbudowanej konfiguracji VLANy (u mnie akurat 5 i 6) są skonfigurowane analogicznie jak na pierwszym, wzorcowym obrazku.
Wracamy do meritum. Po ustawieniu VLANów, klikamy SAVE i następuje restart routera. W tym momencie musimy upewnić się, że nie jesteśmy podpięci kablem do wydzielonych portów, gdyż stracimy dostęp do routera. Pamiętajmy, by być wpiętym do portów sparowanych z br0 lub po WiFi.
Gdy router się uruchomi przechodzimy do Administration -> Scripts -> INIT i dopisujemy linijkę:
Cytat
linkagg vlan3 vlan4 br0
Gdzie vlan3 i vlan4 to wydzielone przez nas vlany (porty) pod bonding, zaś br0 to bridge do którego chcemy wpiąć nowoutworzony LAG.
Po zapisaniu zmian restartujemy router.
Efekt możemy obejrzeć w konsoli wydając komendy:
Pierwsza z nich (ifconfig bond0) powinna pokazać nam nowy interfejs bond0:
Druga zaś (brctl show), iż interfejs bond0 został pomyślnie wpięty do br0:
Istnieje również komenda "linkagg -s", która zwraca status utworzonego linku oraz ewentualne błędy:
Na tym kończymy konfigurację routera i przechodzimy do konfiguracji NASa
ReadyNAS Pro4 z oprogramowaniem OS 6.6.1
Tutaj nie ma żadnej filozofii. Niezależnie od posiadanego NAS`a opis bondingu będzie bardzo zbliżony. Przechodzimy do zakładki z konfiguracją połączeń. W moim przypadku jest to zakładka "Sieć".
Na aktywnym połączeniu wybieramy "Nowe powiązanie", po czym w nowym oknie wybieramy drugi interfejs (eth1), typ zespołu LACP na warstwie mieszanej 3+4, ponieważ taki tym powiązania tworzy skrypt linkagg w tomato.
Po zapisaniu zmian ujrzymy jeden interfejs bond0
Dla porównania tak wygląda bonding w Synology (zdjęcie kolegi @mosfit)
Na koniec spinamy NAS i router drugim kablem sieciowym.
Dla zaawansowanych
Skrypt linkagg został przygotowany tak by obsługiwał tylko jeden LAG, tylko dla dwóch portów i w trybie LACP w warstwie 3+4. Skrypt linkagg jest odpowiednikiem wydania poniższych komend (dla vlan5 i vlan6):
Cytat
modprobe bonding
# Setting mode to 802.3ad
echo 802.3ad > /sys/class/net/bond0/bonding/mode
# Setting LACP rate to fast
echo fast > /sys/class/net/bond0/bonding/lacp_rate
# Setting MII monitoring interval to 50
echo 50 > /sys/class/net/bond0/bonding/miimon
# Setting xmit hash policy to layer3+4
echo 1 > /sys/class/net/bond0/bonding/xmit_hash_policy
ip link set bond0 up
echo +vlan5 > /sys/class/net/bond0/bonding/slaves
echo +vlan6 > /sys/class/net/bond0/bonding/slaves
brctl addif br0 bond0
Jeżeli ktoś chce stworzyć inny typ linku agregacyjnego np. round-robin, stworzyć drugi interfejs LAG lub utworzyć jeden mega link 4Gbps między routerem a switchem zarządzalnym, wystarczy że odpowiednio zmodyfikuje powyższe komendy i wklei poprawione do skryptu INIT.
Pozdrawiam
Edytowany przez shibby dnia 10-04-2017 13:31
Proxmox VE:i7-7700T, 32GB RAM, 3x2TB SSD, 1x1TB SSD, 512GB NVMe, Mellanox ConnectX-3 dual SFP+ VM Router:OpenWRT 22.03.4 VM NAS:Synology DS920+ VM VPS:Debian, WWW, Home Assistant VM Backup:Proxmox Backup Server Switch:Netgear MS510TXPP Switch:Ubiquiti USW-Flex-mini - szt. 2 Wi-Fi:Ubiquiti U6-Lite - szt. 2
Powiedzcie mi tylko jeszcze jak to się ma hardwareowo, poleci to na każdym routerku czy musi mieć zaimplementowane 802.3ad ? Prosto z mostu - zadziała na RT-N16 ?
Asus RT-N16 / Tomato Tenda N60 / Tomato Cisco RV082
HomeSerwer: HP G7 N54L | 2x WD RED 2TB | Synology DSM 6.0.2 | TimeMachine + PLEX + CouchPotato + SickRage + inne
Bond Status: bond0 UP
Bridge to WAN Status: Member of br0
Slave 1 Status: vlan=vlan4 Link=UP Port=2
Slave 2 Status: vlan=vlan5 Link=UP Port=3
0t
1t
2t
0
--- Bond Errors ---
Orange 300/50 Mb/s + ONT Terminal HPE MS gen8 Proxmox 7.0-11 VMs: Router OPNsense 23.X-amd64 and OMV HPE MicroServer gen8: Xeon E3-1265Lv2, 16GB (2x KTH-PL316E/8G), HP 331T, 4x4TB WD RED Asus RT-AC68U AccessPoint
· Łącznie użytkowników: 24,116 · Najnowszy użytkownik: Ja
Czat
Musisz się zalogować, aby opublikować wiadomość.
tamtosiamto
25-05-2023 12:17
hehe, no walsnie dlatego pytam, bo tez czytalem o samonadpisujacym sie dysku z pendrakiem w srodku
Adooni
25-05-2023 11:09
wiekszosc tych dyskow to sciema np w srodku zwykly pendrive, albo w firmware ustawiona wieksza pojemosci itp. na dysku sie nie oszczedza dane sa drozsze od zlota.
tamtosiamto
24-05-2023 10:56
Kupowaliscie kiedys dyski ssd na ali? Cany maja atrakcyjne, ale troche sie boje
ciul90
27-04-2023 23:07
WNR3500Lv2
Router wstał po wyłączeniu wtyczki zasialania i ponownym podłączeniu. Flash o dziwo przeszedł pomyślnie. Na wszelki wypadek jeszcze raz wyczyściłem nvram
hermes-80
27-04-2023 22:29
a co za ruter i soft?
ciul90
27-04-2023 22:28
Poczekam jeszcze 10 minut xD. NVRAM czyściłem przed, zaznaczylem czyszcenia po. Pingi nie dochodzą, Led zasilania się świeci.
hermes-80
27-04-2023 22:24
no raczej tyle to nie trwa
ciul90
27-04-2023 22:22
Od pół godziny robi mi się upgrade z tomato by shibby na fresh tomato. To zawsze tyle trwało czy uwaliłem router? XD
tamtosiamto
22-04-2023 13:08
Trafilem i7 3770 za 150zl, odpadl problem z xeonem i3 2130 slabo juz ciagnie, idzie na emeryture
Adooni
17-04-2023 11:01
tylko nie kupuj do tego pamiecy ECC gdyz procek obsluguje a plyta normalna juz nie.