Agregacja portów LAN - scenariusze
Podstawowe informacje
Link Aggregation według IEEE 802.1AX-2008 (wcześniej IEEE 802.3ad) opisuje równoległe łączenie kilku połączeń (kabli) sieciowych. Korzyści Link Aggregation w porównaniu z tradycyjnym połączeniem za pośrednictwem pojedynczego kabla:
- większa prędkość połączenia
- większa niezawodność
Link Aggregation pozwala na podział ramek Ethernet na wszystkie dostępne fizyczne połączenia jednego LAG. W ten sposób możliwa prędkość połączenia przekracza przepustowość jednego fizycznego połączenia.
Dla dystrybucji (Frame Distributor) nie są jednakże zdefiniowane przez standard IEEE żadne konkretne algorytmy. Jedynie wymagane jest:
- kolejność ramek określonej transmisji danych nie może być zmieniona
- ramki nie mogą być powielone
Przy statycznym Link Aggregation wszystkie parametry konfiguracji są raz konfigurowane na obu komponentach jednego LAG.
Protokół Link Aggregation Control Protocol (LACP) pozwala poza tym na wymianę informacji odnośnie do Link Aggregation pomiędzy członkami jednej Link Aggregation. Informacje te zawarte są w LACPDUs (Link Aggregation Control Protocol Data Units).
W LACP każdy poszczególny port może zostać skonfigurowany jako aktywny LACP lub pasywny LACP:
- pasywny LACP: port standardowo nie przekazuje LACPDUs. Jedynie jeżeli druga strona ma skonfigurowany aktywny LACP port ten przekazuje LACPDUs (preference not to speak unless spoken to),
- aktywny LACP: port ten przekazuje LACPDUs - niezależnie czy strona przeciwna ma skonfigurowany pasywny LACP lub nie (a preference to speak regardless).
LACP zapewnia w przeciwieństwie do statycznego Link Aggregation następujące korzyści:
- awaria jednego fizycznego połączenia zostaje rozpoznana nawet w przypadku, kiedy przebiega ono przez konwerter mediów i przez co status połączenia pozostaje na porcie switcha Up. W tym przypadku informacja LACPDUs na tym połączeniu nie jest dostępna i dlatego jest ono usuwane z tego LAG. Zapobiega to utracie pakietów,
- oba urządzenia mogą nawzajem potwierdzić konfigurację LAG. W przypadku statycznego Link Aggregation błędy konfiguracji i okablowania nie są tak szybko rozpoznawane.
Scenariusz 1: FreeBSD i switch CISCO (LACP)
Ten przykład przedstawia połączenie dwóch interfejsów na komputerze z systemem FreeBSD do switcha, jako jednego linku z równoważeniem obciążenia (load balancing) i możliwością pracy awaryjnej (failover).
Na switchu Cisco przypisujemy FastEthernet0/1 i FastEthernet0/2 do jednej grupy channel-group 1:
interface FastEthernet0/1
channel-group 1 mode active
channel-protocol lacp
!
interface FastEthernet0/2
channel-group 1 mode active
channel-protocol lacp
We FreeBSD tworzymy interfejs lagg używając fizycznych interfejsów sieciowych fxp0 i fxp1:
# ifconfig fxp0 up
# ifconfig fxp1 up
# ifconfig lagg0 create
# ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp1 10.0.1.3/24
Status interfejsu możemy zobaczyć poprzez komendę:
# ifconfig lagg0
Porty oznaczone jako ACTIVE są częścią aktywnej grupy zagregowanych portów, która została wynegocjowane ze switchem:
lagg0: flags=8843 <UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
media: Ethernet autoselect
status: active
laggproto lacp
laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
Scenariusz 2: FreeBSD i switch CISCO (Failover)
Tryb Failover może zostać użyty w konfiguracji, w której transmisja zostanie przełączona na port zapasowy, po tym gdy zostanie utracony link na głównym interfejsie. W celu konfiguracji takiego trybu pracy podnosimy fizyczne interfejsy fxp0 i fxp1, a następnie tworzymy interfejs lagg:
# ifconfig fxp0 up
# ifconfig fxp1 up
# ifconfig lagg0 create
# ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp1 10.0.0.15/24
Interfejs lagg powinien teraz wyglądać tak:
# ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
inet 10.0.0.15 netmask 0xffffff00 broadcast 10.0.0.255
media: Ethernet autoselect
status: active
laggproto failover
laggport: fxp1 flags=0<>
laggport: fxp0 flags=5<MASTER,ACTIVE>
Scenariusz 3: FreeBSD Failover pomiędzy LAN i WLAN
Niektórzy użytkownicy mogą chcieć zdefiniować połączenie bezprzewodowe jako zapasowe, gdy połączenie kablowe nie jest dostępne. Jest to możliwe z użyciem jednego adresu IP z pomocą agregacji portów.
W tym ustawieniu nadpisujemy adres MAC karty bezprzewodowej, aby zgadzał się z MAC adresem interfejsu lagg, który jest dziedziczony po interfejsie przewodowym.
W poniższym przykładzie, interfejs przewodowy, bge0 jest głównym, a bezprzewodowy wlan0, jest zapasowym. Interfejs wlan0 został utworzony z karty bezprzewodowej iwn0. Pierwszym krokiem jest sprawdzenie MAC adresu karty przewodowej:
# ifconfig bge0
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=19b<RXCSUM,TXCSUM,VLAN_MTU, VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
ether 00:21:70:da:ae:37
inet6 fe80::221:70ff:feda:ae37%bge0 prefixlen 64 scopeid 0x2
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
Zmieniamy adres MAC karty bezprzewodowej:
# ifconfig iwn0 ether 00:21:70:da:ae:37
Podnosimy interfejs bezprzewodowy, bez ustawiania na nim adresu IP:
# ifconfig wlan0 create wlandev iwn0 ssid my_router up
Teraz podnosimy interfejs bge0. Tworzymy interfejs lagg z bge0 jako głównym i wlan0 jako zapasowym:
# ifconfig bge0 up
# ifconfig lagg0 create
# ifconfig lagg0 up laggproto failover laggport bge0 laggport wlan0
Interfejs powinien teraz wyglądać tak:
# ifconfig lagg0 lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8<VLAN_MTU> ether 00:21:70:da:ae:37 media: Ethernet autoselect status: active laggproto failover laggport: wlan0 flags=0<> laggport: bge0 flags=5<MASTER,ACTIVE>
Ostatecznie, uruchamiamy klienta DHCP aby pobrać adres IP z sieci:
Scenariusz 4: Switche TP-LINK
Poniżej zaprezentujemy możliwość agregacji portów na switchach TP-LINK, metodą statycznej konfiguracji, oraz poprzez LACP.
Z menu "Switching" wybieramy pozycję LAG. Pojawi się tablica z bieżącą konfiguracją agregacji portów, oraz z wyborem metody hashowania - pozostawiamy metodę opartą o MAC adresy źródłowe i doceloweg pakietów:
Aby włączyć statyczną agregację przechodzimy do zakładki "Static LAG", gdzie można zaznaczyć porty wchodzące w skład grupy, w przykładzie poniżej LAG1:
Po skonfigurowaniu interfejsów 2 i 3 jako należących do grupy LAG1 uzyskujemy taki efekt w tablicy LAG:
Ciekawszą możliwością jest LACP (dynamiczne tworzenie grup LAG). Włączamy LACP dla portów 2 i 3 na switchu numer 1 (192.168.0.1). Opcja "Admin Key" musi być taka sama dla portów, które chcemy mieć w obrębie jednej grupy LAG:
To samo robimy na switchu numer 2 (192.168.0.2) - nie łączymy jeszcze portów obu switchy ze sobą, aby uniknąć pętli i sztormów broadcastowych (STP jest wyłączone):
Po ustawieniu obu switchy możemy fizycznie połączyć interfejsy. W efekcie, po wynegocjowaniu agregacji portów przez LACP uzyskujemy taki obraz tablicy LAG:
Porty 2 i 3 zostały przypisane do grupy LAG1, dysponujemy teraz maks. przepustowością 2Gb/s pomiędzy switchami:
Należy pamiętać, że pojedyncza transmisja (z mac adresu 1 do mac adresu 2) pomiędzy grupami portów LAG może maksymalnie osiągnąć prędkość pojedynczego portu wchodzącego w skład grupy LAG.
|