Techniki łączenia przełączników

Ethernet/FastEthernet/GigabitEthernet

Łukasz Bromirski

Historia zmian
Zmiana v0.64 20/01/2004 12:25:56 Wprowadzono uwagi przekazane przez Piotra Sikorskiego, PiotrekN i Roberta Gomułkę.
Zmiana v0.63 18/12/2003 10:47:19 Kosmetyka

W artykule omówiono techniki łączenia przełączników - łączenie port-port, tworzenie agregacji, stakowanie i łączenie w klastry. Poruszono podstawowe zagadnienia konfiguracji agregacji portów w oparciu o przełączniki Cisco Catalyst oraz rozwiązania programowe w systemach Linux i BSD.


Spis treści
Co to jest przełącznik Ethernetowy i jak działa?
Różne techniki łączenia przełączników
Załącznik 1: Konfiguracje agregacji portów
Dodatkowe materiały

Co to jest przełącznik Ethernetowy i jak działa?

Przełączniki Ethernetowe, to urządzenia pracujące w warstwie drugiej modelu OSI, czyli w warstwie łącza danych. Co prawda nowoczesne konstrukcje potrafią korzystać z informacji zawartych w warstwach wyższych (jest to głównie funkcjonalność związana z routingiem, zagadnieniami jakości usług i bezpieczeństwem), ale na użytek tego artykułu założymy, że funkcjonalność przełączników ogranicza się tylko do warstwy drugiej (L2) modelu OSI.


Różnice pomiędzy koncentratorami a przełącznikami

Kluczowe różnice pomiędzy stosowanymi wcześniej i obecnie wychodzącymi z użycia koncentratorami a przełącznikami, to przede wszystkim:

  1. Ograniczenie domeny kolizyjnej w przełączniku do pojedynczego portu.

    Dla koncentratorów, domena kolizyjna rozciąga się na wszystkie porty urządzenia, lub wszystkie porty wielu połączonych koncentratorów (w nowszych koncentratorach port uplink funkcjonował jak bridge, dzieląc domenę kolizyjną, ale i tak nie poprawia to znacząco charakterystyk pracy tych urządzeń w dużych instalacjach). Biorąc pod uwagę, że we wszystkich rodzajach sieci Ethernet stosuje się mechanizm CSMA/CD, w sieci zbudowanej w oparciu o koncentratory na raz może nadawać tylko jedna stacja. Dzięki ciągłemu konkurowaniu o dostęp do współdzielonego nośnika, realnie obserwujemy "jednoczesną" pracę wszystkich stacji, ale przepustowość w takiej sieci jest daleka od teoretycznej przepustowości nośnika. Co więcej, w sieciach budowanych w oparciu o koncentratory bardzo często zdarza się, że stacje silniejsze sprzętowo są w stanie częściej wysyłać dane niż stare, wolne komputery.

    Dla przełącznika domena kolizyjna zostaje zmniejszona do pojedynczego portu, co efektywnie oznacza, że każdy port może niezależnie odbierać i nadawać dane do użytkownika (a użytkownik "do sieci") z wcześniej ustaloną prędkością i trybem dupleksu. Dodatkowo, nowoczesne przełączniki budowane są w architekturze nieblokującej, co w praktyce oznacza, że naprawdę każdy port może teoretycznie pracować z maksymalną prędkością, a przełącznik zapewni wymianę danych. Starsze urządzenia miały albo niewystarczającą wydajność aby obsłużyć pełne wymagane pasmo, albo zbyt mało pamięci by zbuforować na odpowiednio długi czas dane. Część z nich jest nadal produkowana i sprzedawana!

  2. Przełączniki, w jednej obudowie integrują zwykle wiele różnych typów mediów pracujących z różnymi prędkościami.

    Jest to cecha praktycznie nieosiągalną na koncentratorach (poza bardzo specyficznymi rozwiązaniami). W standardowych przełącznikach dostępowych (przeznaczonych do agregacji użytkowników), najwięcej jest zwykle portów 10/100 lub 10/100/1000 RJ-45 do połączeń zwykłą skrętką, ale oprócz tego oferuje się zwykle jeden lub dwa zabudowane porty Gigabitowe, lub moduły GBIC/SFP do podłączenia wymiennych modułów 1000BaseT/BaseSX/BaseLX/BaseZX zwiększających elastyczność przełącznika. Coraz częściej użytkownik otrzymuje nawet 4 porty na moduły GBIC, lub dwa zabudowane porty 10/100/1000 i dwa porty GBIC, które jeśli zostaną wyposażone w moduły blokują skojarzony z nimi port 10/100/1000.

  3. Koncentratory nie oferują żadnych mechanizmów zapewniania jakości usług (ang. QoS, Quality of Service).

    Przełączniki, w zależności od stopnia skomplikowania, oferują prioretyzację pakietów (np. wg. standardu 802.1p), klasyfikację i reklasyfikację na podstawie zestawu kryteriów, ograniczanie zajmowanego przez dany rodzaj ramek/pakietów pasma, czy również ograniczanie dostępnego pasma per port lub per VLAN. Taki zestaw funkcjonalności stanowi wielką zaletę w sieci, w której pracuje wiele różnych usług i aplikacji a użytkownik jest w stanie świadomie określić politykę kontroli ruchu - gwarantowanie pasma, prioretyzację określonego ruchu itp.

  4. Koncentratory nie oferują żadnych mechanizmów zapewniania bezpieczeństwa w sieci.

    Każda stacja podłączona do koncentratora otrzymuje transmisje do innych stacji i jest w stanie efektywnie, bez żadnych specjalnych zabiegów podsłuchać cały przebieg np. logowania się z innej stacji do uwierzytelnianej usługi.

    Przełączniki domyślnie uczą się, do którego portu wysyłać dane adresowane dla konkretnego adresu MAC, co już wymaga od atakującego podjęcia jakiegoś rodzaju aktywnego działania (wprowadzenia w błąd przełącznika, lub przełącznika i atakowanej stacji), by przechwytywać ruch nie adresowany bezpośrednio do nich. Co więcej, większość obecnie produkowanych przełączników oferuje możliwość ograniczenia ilości źródłowych adresów MAC pojawiających się na konkretnym porcie do arbitralnej wartości. Taki mechanizm zapobiega atakowi, w którym stacja generuje mnóstwo losowych źródłowych adresów MAC, starając się przepełnić pamięć przełącznika i zamienić go efektywnie w koncentrator. Atak taki umożliwiają popularne aplikacje dsniff i ettercap. Jeszczcze bardziej zaawansowane konstrukcje pozwalają na filtrowanie ruchu na podstawie danych z nagłówka IP czy nawet warstwy czwartej - portów TCP/UDP.

    Niezależnie od możliwości filtrowania ruchu wg. określonych kryteriów, na przełącznikach istnieje możliwość podziału sieci LAN w warstwie drugiej na osobne VLANy (ang. VLAN, Virtual LAN), które w większości przypadków skutecznie blokują komunikację pomiędzy dwoma różnymi stacjami w dwóch różnych VLANach. Dalszy podział, w ramach pojedynczego VLANu zapewnia koncepcja Private VLANu, która oddziela komunikację w warstwie drugiej pomiędzy stacjami w tym samym VLANie. W takiej konfiguracji stacje nawet w tym samym VLANie mogą komunikować się jedynie z wyznaczonym routerem, i każdy rodzaj komunikacji stacja-stacja musi odbywać się za jego pośrednictwem. Ostatnim krzykiem mody, jeśli chodzi o bezpieczeństwo na przełącznikach, stał się ratyfikowany niedawno protokół 802.1X. Stacja podłączona do portu pracującego w trybie 802.1X musi najpierw przejść zakończone sukcesem uwierzytelnienie, zanim będzie mogła wysłać i odebrać jakiekolwiek inne ramki do/z sieci poza ramkami protokołu EAP.

  5. Przełaczniki mogą być łączone ze sobą więcej niż jednym łączem fizycznym, pod warunkiem, że obsługują protokół agregacji połączeń lub/i protokół Spanning Tree.

    Próba połączenia koncentratorów dwoma równoległymi fizycznymi połączeniami doprowadzi do pętli w warstwie drugiej i paraliżującego sieć lokalną sztormu ramek. Ratyfikowany przez IEEE standard 802.3ad w połączeniu z protokołem LACP (ang. Link Aggregation Control Protocol) umożliwia w przypadku zastosowania przełączników, równoległe połączenie do ośmiu fizycznych łącz, tworzących jedno łącze logiczne. W prosty sposób udostępnia to pasmo dla ruchu przełącznik-przełącznik, będące sumą przepustowości pojedynczych łącz fizycznych.

Notatka: Przełączniki chronią sieć przed powstaniem pętli w warstwie drugiej za pomocą protokołu Spanning Tree (IEEE 802.1D). W wyniku jego działania, zablokowane zostają redundantne połączenia tak, by topologia sieci nie zawierała żadnej pętli. Czas konwergencji sieci, w której działa tradycyjny protokół Spanning Tree wynosi około 45 sekund od momentu awarii. Ratyfikowana niedawno ulepszona wersja tego protokołu, nazwana Rapid Spanning Tree (IEEE 802.1w) oferuje czas konwergencji zbliżony do 2-3 sekund.

Proszę jednak pamiętać, że nie wszystkie przełączniki obsługują protokół Spanning Tree, a najmniejsze z tych, które protokół obsługują, wspierają zwykle tylko tradycyjne Spanning Tree i w dodatku bardzo często należy tą obsługę włączyć ręcznie!

Biorąc pod uwagę powyższe porównanie przełączników z koncentratorami, i niezaprzeczalną wyższość tych pierwszych nad drugimi, należy wspomnieć jeszcze o czynniku ekonomicznym - przełączniki o równej koncentratorom ilości portów w większości wypadków już obecnie są tańsze niż koncentratory!


Różne techniki łączenia przełączników

Na etapie projektowania sieci LAN, musimy podjąć decyzję jakie urządzenia i o jakiej gęstości portów zastosujemy. Współczesne przełączniki dostosowane do montażu w szafach 19", oferowane są w wykonaniu zwykle z 12, 24 lub 48 portami różnych typów (przełaczniki nieprzystosowane do montażu w szafach 19" bardzo rzadko są zarządzalne i obsługują protokół Spanning Tree, wobec czego pominiemy je w poniższych rozważaniach).

Zwykle podczas doboru sprzętu do konkretnej instalacji, musimy w naszych rozważaniach uwzględnić, że:

  1. praktycznie nigdy nie zdarza się, aby urządzenie posiadało dokładnie tyle portów ile potrzebujemy, a nawet jeśli, to

  2. sieci raczej się rozrastają niż maleją

Biorąc to pod uwagę, należy zawsze myśleć o doborze sprzętu w ten sposób, aby dodanie kolejnych paru stacji nie spowodowało konieczności poniesienia dużych wydatków, lub wymagało kompletnego przeprojektowania sieci zarówno w warstwie logicznej jak i fizycznej.

Mając zatem do podłączenia "na dzień dzisiejszy" 10 stacji, wybierzmy urządzenie 24-portowe, a 35 stacji - dwa połączone przełączniki 24-portowe, lub jeden 48-portowy.

Wybór sposobu połączenia wielu przełączników istotnie wpływa zarówno na późniejszą funkcjonalność sieci, jak i na sposób jej wykonania.

Rozważając topologie połączeń, założymy, że do naszej dyspozycji są przełączniki - o koncentratorach naprawdę proszę już zapomnieć. Ich zastosowanie w nowych instalacjach nie jest uzasadnione w żaden sposób - przełączniki są wydajniejsze, generalnie tańsze i oferują nieporównywalnie większą funkcjonalność.

Notatka: Użyte na rysunkach ikony, pochodzą z programu Microsoft Visio, oraz ze stron Cisco, ale użyto ich jedynie dla wygody prezentacji połączeń - artykuł opisuje ogólne zasady działające na wszystkich przełącznikach funkcjonujących zgodnie z przyjętymi ogólnie zasadami i odpowiednimi standardami (chyba, że wprost zaznaczono inaczej).


Połączenie port-port

Najprostszym w realizacji połączeniem dwóch przełączników jest połączenie pary urządzeń port-port. Jeśli przełącznik obsługuje automatyczną negocjację MDI/MDIX na porcie, do połączenia portów możemy użyć dowolnego kabla krosowego. Jeśli przełącznik nie obsługuje tej negocjacji, dwa przełączniki łączymy patchcordem skrosowanym.

Notatka: Notatka: Na rysunku pokazano połączenie przełączników portami 10/100. Z punktu widzenia topologii sieci nie ma żadnego znaczenia, czy łączymy przełączniki portami przeznaczonymi do agregacji stacji, czy uplinkami. Jedyną różnicą pozostaje przepustowość portu - i dlatego właśnie do połączeń pomiędzy przełącznikami używa się dedykowanych portów o większej przepustowości. W starych przełącznikach 10BaseX uplinki wykonane były zwykle w technologii 100BaseX, w obecnie używanych przełącznikach 100BaseX czy nawet 10/100/1000BaseX stosuje się uplinki gigabit-ethernetowe lub w rozwiązaniach szkieletowych - 10GbE.

Wady takiego połączenia, to:

  1. Relatywnie niewielka wydajność.

    Dla stacji podłączonych do przełącznika A, pasmo dostępne w ruchu do i z stacji podłączonych do przełącznika B ograniczone jest do prędkości pracy tego pojedynczego portu. Dla sytuacji z dwoma przełącznikami, nie wygląda to źle, ale jeśli połączymy je w "łańcuszek", bardzo trudno przewidzieć pasmo dostępne dla stacji podłączonych do "zewnętrznych" przełączników (o tym za moment)

  2. Mała skalowalność.

    Ilość przełączników połączonych w "łańcuszek" istotnie zależy od możliwości każdego z przełączników. O ile obecnie stosuje się wbudowane bufory po 8192 lub 16384 adresy MAC na całe urządzenie, to starsze urządzenia często miały ograniczenia dotyczące ilości adresów MAC "widzianych" na pojedynczym porcie. Co więcej, dodawanie kolejnych przełączników "w łańcuszek" będzie obniżało dostępne pasmo dla ruchu, który musi zostać przeniesiony pomiędzy stacjami podłączonymi do różnych przełączników.

  3. Brak redundantności.

    Jeśli przełącznik nie obsługuje protokołu Spanning Tree, nie możemy ani utworzyć pętli w takiej sieci, ani połączyć żadnej pary przełączników więcej niż jednym połączeniem. W przypadku awarii portu lub kabla krosowego, musimy interweniować osobiście, aby przywrócić łączność pomiędzy przełącznikami.

Natomiast zaletami będą niewątpliwie:

  1. Niski koszt realizacji.

    Połączenie dwóch przełączników to koszt jednego kabla krosowego, trzech przełączników - dwóch kabli krosowych itd.

  2. Szybka rozbudowa sieci.

    Wykonanie połączenia nie wymaga zwykle żadnej rekonfiguracji portów, a zatem może być wykonane przez praktycznie dowolną osobę.

Poniżej przedstawiono topologię "łańcuszka", przy połączeniu port-port wielu przełączników.

Logicznie powyższą topologię przedstawić można w ten sposób:

Stacja podłączona do przełącznika A, wysyłając dane do stacji podłączonej do przełącznika C musi pokonać dwa połączenia - z przełącznika A do B, i z B do C. Jeśli sieć pracuje, tj. do przełączników podłączono inne stacje, istnieje duża szansa, że przełączniki będą musiały buforować ramki do przesłania przez uplinki, ponieważ będą one przeładowane ruchem.

Przy budowie sieci, w której możemy skorzystać tylko z pojedynczych połączeń pomiędzy przełącznikami, warto zastanowić się, czy możliwe będzie umieszczenie na poszczególnych przełącznikach stacji, które będą wymieniały ze sobą najwięcej ruchu - tak, by nie musiał on podróżować po wysyconych uplinkach i powodować ewentualnie zatorów. To samo dotyczy serwerów - jeśli nawet "dostęp do Internetu" znajduje się np. w lokalizacji przełącznika B, to być może serwer plików używany jest głównie przez użytkowników podłączonych do przełącznika A.


Połączenie przęłaczników agregacją portów

Wspomniałem już wcześniej o pewnym ograniczeniu w tworzeniu wielu redundantnych połączeń pomiędzy parą przełączników. Urządzenia "bronią się" w tym momencie przed powstaniem pętli w warstwie drugiej za pomocą protokołu Spanning Tree, blokując do czasu zmiany topologii sieci (zwykle w wyniku awarii, lub celowego działania) wszystkie nadmiarowe połączenia.

Aby obejść ten problem i wykorzystać potencjalną możliwość stworzenia połączenia o większej przepustowości niż oferowana przez pojedyńczy port, stworzono ideę agregacji portów fizycznych w jedno połączenie logiczne. W tym momencie, dla protokołu Spanning Tree cała agregacja (składająca się np. z 4 fizycznych portów 10/100FE czy GE) tworzy jedno połączenie. Dla użytkowników oznacza to możliwość skorzystania z sumy przepustowości poszczególnych portów fizycznych.

Z reguły, aby konfiguracja agregacji na parze przełączników przebiegła pomyślnie, należy na obu urządzeniach:

  • wybrać do agregacji taką samą ilość i typ portów (pod względem typu medium, skonfigurowanej prędkości i trybu pracy - pół lub pełnego dupleksu);

  • wybrać nie więcej niż 8 portów (w standardzie 802.3ad mowa o maksymalnie ośmiu portach tego samego typu); w niektórych implementacjach, w szczególności w przełącznikach prostszych, często producent dodatkowo ogranicza liczbę portów biorących udział w agregacji - do 2 lub 4;

  • jeśli posiadamy dwa przełaczniki różnych producentów, należy skonfigurować na obu ten sam standard agregacji (praktycznie spotyka się tylko Ciscowy (Giga|Fast)EtherChannel oraz IEEE 802.3ad) i ewentualnie odpowiedni protokół kontroli tak utworzonej agregacji (znowu firmowy Cisco PAgP lub IEEE LACP);

  • w produktach niektórych producentów tak stworzoną agregację należy jeszcze wprost uaktywnić;



Topologia sieci z agregacjami pomiędzy przełącznikami może wyglądać w ten sposób:

Jeśli wszystko przebiegło poprawnie, pomiędzy przełącznikami stworzone zostanie pojedyńcze logiczne połączenie, o przepustowości będącej sumą przepustowości pojedynczych fizycznych połączeń. Innymi słowy, łącząc np. po dwa fizyczne porty GigabitEthernet na przełączniku, tworzymy agregację o przepustowości 2Gbit/s, a osiem portów 100BaseTX - o przepustowości 800Mbit/s.

Dodatkową zaletą agregacji portów jest fakt, że obecnie większość przełączników pozwala stworzyć wiele agregacji jednocześnie. Pozwala to elastycznie, wydajnie i ekonomicznie rozbudowywać sieć o nowe lokacje zdalne.

Notatka: Należy jednak pamiętać o pewnym ograniczeniu, wynikającym z konstrukcji przełączników i samego protokołu IEEE 802.3ad. Otóż w przeważającej większości konstrukcji, transmisja danych pomiędzy daną parą urządzeń identyfikowaną przez adresy MAC, odbywa się zawsze tym samym fizycznie łączem, niezależnie od ilości i istnienia innych łącz w agregacji. Dopiero zastosowanie większych przełączników, nierzadko potrafiących również prowadzić routing, umożliwia wybór algorytmu rozkładania ramek pomiędzy łącza fizyczne w agregacji.

Takie ograniczenie dla sieci z dużą ilością stacji nie stanowi zwykle problemu (proszę jednak pamiętać, że transmisja dla danej pary stacji nie przekroczy w tej sytuacji przepustowości pojedynczego portu fizycznego!). Jeśli jednak budujemy specjalną agregację np. 8 portów GigabitEthernet dla transmisji pomiędzy dwoma stacjami - należy rozejrzeć się za przełącznikiem potrafiącym wykonać rozłożenie ruchu pomiędzy połączeniami efektywniej.

Notatka: Do niedawna wiele firm używało w różnych związkach znaczeniowych terminu trunk. Np. w terminologii 3COM do momentu pojawienia się przełączników 7700, trunk był właśnie połączeniem agregacyjnym wielu fizycznych portów, a port skonfigurowany do przenosznia wielu VLANów nazywano po prostu portem tagowanym (od znaczników, ang. tags, dodawanych do każdej ramki by wskazać jej przynależność do VLANu).

Obecnie osiągnięto pewien konsensus co do nazewnictwa i terminem trunk określa się połączenie logiczne lub fizyczne, przenoszące więcej niż jeden VLAN. Natomiast Agregacja portów to właśnie albo oznaczenie portów skonfigurowanych wg. standardu 802.3ad albo wg. firmowego standardu producenta (np. Cisco EtherChannel).


Stakowanie/łączenie w stos

Problemy z możliwością rozbudowy sieci opartej o przełączniki były doskonale znane producentom i bardzo szybko pojawiło się rozwiązanie, które nie zajmując cennych portów, pozwala połączyć przełączniki magistralą o dużej przepustowości. Ponieważ nigdy nie doszło do próby standaryzacji takich rozwiązań (a same połącznia tego typu ściśle związane są z architekturą przełącznika), są one specyficzne nie tylko dla danego producenta, ale zwykle też dla danej rodziny czy nawet modelu przełaczników.

Termin stakowanie pochodzi od angielskiego słowa stacking i oznacza po prostu układanie jednego urządzenia na drugim (czasami stosuje się w języku polskim również sformuowanie "połączyć w stos").

Niezależnie od zestakowania przełączników ze sobą, zwykle dostępne pozostają wszystkie porty z "panelu czołowego" przełącznika, co oznacza że nadal możemy agregować np. gigabitowymi uplinkami połączenia z odległych lokalizacji. W rozwiązaniach niektórych producentów możliwe jest nawet, by pojedyncza agregacja fizycznie składała się z portów na różnych członkach stosu - wpływa to znakomicie na niezawodność takiej sieci.

Stakowanie przyniosło następujące zalety:

  • połączenie przełączników w stos nie powoduje utraty jednego lub większej ilości portów przeznaczanych normalnie na podłączenie stacji

  • połączenie w stos odbywa się w większości konstrukcji przez bezpośrednie połączenie szyn danych przełączników, co oznacza że przepustowość takiego połączenia jest wyższa niż zwykłego połączenia za pomocą pojedynczych portów

  • z punktu widzenia zarządzania większą siecią, stakowanie oszczędza nam zasoby - np. jeśli do tej pory każdy przełącznik otrzymał swój adres IP aby można nim było zdalnie zarządzań przez interfejs WWW czy Telnet/SSH, po połączeniu w stos czterech jednostek wystarczy jeden adres zamiast 4.



Stakowanie realizowane jest fizycznie, jako włożenie specjalnej karty (np. karta Matrix firmy 3COM), lub po prostu połączenie specjalnymi kablami zabudowanych na stałe z tyłu urządzenia portów przeznaczonych do stakowania (porty StackWise na przełącznikach Cisco Catalyst 3750).

Stare rozwiązania oferowały przepustowości przekraczające zwykle 100Mbit/s, ale rzadko przekraczające 1Gbit/s (np. moduł Matrix firmy 3COM dla przełączników 3300 to połączenie do 4 przełączników szyną o przepustowości 500Mbit/s, a moduł stakujący do rodziny 4400 to połączenie szyną 4Gbit/s). Nowe rozwiązania, stworzone już po upowszechnieniu się Ethernetu gigabitowego, oferują odpowiednio większą przepustowość. Rozwiązanie StackWise stosowane na przełącznikach Catalyst 3750 oferuje wspólną szynę 16Gbit/s (32Gbit/s full-dupleks) dla do 9 urządzeń.

Ostrzeżenie

Należy jednak jasno podkreślić, że technologie łączenia w stos każdego producenta znacznie się różnią i praktycznie niemożliwe jest zrealizowanie stosu na dwóch urządzeniach różnych producentów (a nawet na dwóch urządzeniach tego samego producenta ale różnych modeli/technologii).


Klastry przełączników

Dodatkowym rodzajem połączenia przełączników, nie wpływającym jednak na możliwości zapewnienia dodatkowej przepustowości pomiędzy fizycznymi urządzeniami, jest łączenie w klastry.

Podobnie jak stakowanie, łączenie w klastry to również rozwiązania firmowe wielu różnych firm (Cisco, 3COM, Allied Telesyn itp.), które ma na celu ułatwienie zarządzania grupą przełączników fizycznie rozproszonych (przyjęło się bowiem, z uwagi na ograniczenia elektroniki, że stos realizuje się okablowaniem relatywnie krótkim - od 10-15cm do 1,5 metra - bardzo rzadko dłuższym).


Załącznik 1: Konfiguracje agregacji portów

W tej sekcji pokażę przykładową konfigurację agregacji portów, pomiędzy dwoma przełącznikami, oraz pomiędzy przełącznikiem a routerem na komputerze PC z systemem Linux i BSD.


Agregacja portów: Cisco Catalyst do Cisco Catalyst

Nasza konfiguracja składa się z dwóch przełączników: CatA i CatB. Oba przełączniki to Cisco Catalyst model 2950T-24, czyli posiadające 24 porty 10/100 oraz dwa porty 10/100/1000. Zakładam w tym momencie minimalną znajomość Cisco IOS i że przełącznik został już zainstalowany i działa.

Na CatA konfigurujemy:

CatA> enable
CatA# conf t
CatA(config)# interface GigabitEthernet 0/1
CatA(config-if)# description Agregacja do CatB
CatA(config-if)# channel-group 1 mode active
CatA(config-if)# exit
CatA(config)# interface GigabitEthernet 0/2
CatA(config-if)# description Agregacja do CatB
CatA(config-if)# channel-group 1 mode active
CatA(config-if)# exit

Na CatB:

CatB> enable
CatB# conf t
CatB(config)# interface GigabitEthernet 0/1
CatB(config-if)# description Agregacja do CatA
CatB(config-if)# channel-group 1 mode active
CatB(config-if)# exit
CatB(config)# interface GigabitEthernet 0/2
CatB(config-if)# description Agregacja do CatA
CatB(config-if)# channel-group 1 mode active
CatB(config-if)# exit

Wydanie tych poleceń spowoduje stworzenie logicznego interfejsu `port-channel 1'. Jego statystyki wyglądają dla mojej konfiguracji w ten sposób:

CatA# show interfaces port-channel 1
Port-channel1 is up, line protocol is up (connected)
  Hardware is EtherChannel, address is 000d.656d.caef (bia 000d.656d.caef)
  Description: Agregacja do CatA
  MTU 1500 bytes, BW 2000000 Kbit, DLY 10 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Unknown duplex, Unknown Speed, media type is unknown media type
  output flow-control is unsupported, input flow-control is unsupported
  Members in this channel: Gi0/1 Gi0/2
[...]
  5 minute input rate 1349000 bits/sec, 365 packets/sec
  5 minute output rate 1429000 bits/sec, 397 packets/sec
     985810805 packets input, 828309745394 bytes, 0 no buffer
[...]
     915843524 packets output, 329473316319 bytes, 0 underruns
[...]

Agregacja portów: Allied Telesyn AT-8724XL do AT-8724XL

Nasza konfiguracja składa się z dwóch przełączników: AtiA i AtiB. Oba przełączniki to modele 8274XL, czyli posiadające 24 porty 10/100 oraz dwa sloty na moduły uplink. Do utworzenia agregacji użyjemy czterech ostatnich portów 10/100, czyli portów o numerach 21,22,23 i 24, konfigurując agregację portów w ramach standardu 802.3ad.

Na AtiA:

AtiA> create switch trunk=tr1 port=21-24

Na AtiB:

AtiB> create switch trunk=tr1 port=21-24

Wydanie tych poleceń spowoduje stworzenie agregacji zgodnej ze standardem 802.3ad. Jej stan można sprawdzić poleceniem `show switch trunk':

AtiA> show switch trunk

Switch trunk groups
------------------------------------------------------------
Trunk group name ............... tr1
Speed .......................... 100Mbps
Selection criterion ............ Destination MAC address
Ports .......................... 21,22,23,24
------------------------------------------------------------

Agregacja portów: FreeBSD do Cisco Catalyst

Nasza konfiguracja składa się z przełączników Cisco Catalyst 2950T-24 oraz komputera z zainstalowanym systemem FreeBSD w wersji 4.9 i przynajmniej dwoma kartami sieciowymi.


Po stronie FreeBSD

Najpierw upewniamy się, że nasz kernel obsługuje infrastrukturę Netgraph. W konfiguracji aktualnie pracującego jądra powinna znaleźć się linijka:

options     NETGRAPH

Jeśli tak jest, potrzebne moduły załadują się automatycznie. Wystarczy załadować podstawowy, odpowiedzialny za obsługą Ethernetu:

freebsd# kldload /modules/ng_ether.ko
freebsd# kldstat

Id Refs Address    Size     Name
 1    5 0xc0100000 1cdfdc   kernel
 2    1 0xc32a7000 3000     ng_ether.ko
 3    3 0xc32ab000 9000     netgraph.ko

W moim przykładzie używam dwóch kart sieciowych: fxp0 i fxp1. Jeśli chodzi o agregację połączeń z przełącznikiem Cisco, ważne jest aby obie karty ustawione były w ten sam tryb prędkości i pół/pełnego dupleksu - inaczej mogą pojawić się problemy.

Naszą "główną" sieciówką będzie fxp0 - to jej przypiszemy adres IP i to jej adres MAC będzie widziany przez przełącznik i inne urządzenia sieciowe.

Upewnijmy się, że oba interfejsy zostały podniesione - możesz podłączyć je do przełącznika:

freebsd# ifconfig fxp0 up
freebsd# ifconfig fxp1 up

Zakotwiczymy teraz moduł ng_one2many odpowiedzialny za konfigurację agregacji do karty sieciowej fxp0:

freebsd# ngctl mkpeer fxp0: one2many upper one

Teraz pozostaje kolejno dodać oba interfejsy do agregacji:

freebsd# ngctl connect fxp0: fxp0:upper lower many0
freebsd# ngctl connect fxp1: fxp0:upper lower many1

...poinstruować drugą kartę sieciową by odbierała cały ruch z sieci i nie poprawiała adresu źródłowego w wysyłanych ramkach na swój:

freebsd# ngctl msg fxp1: setpromisc 1
freebsd# ngctl msg fxp1: setautosrc 0

...i na koniec uruchomić agregację z punktu widzenia systemu:

freebsd# ngctl msg fxp0:upper setconfig \
           "{ xmitAlg=1 failAlg=1 enabledLinks=[ 1 1 ] }"
freebsd# ifconfig fxp0 192.168.0.10 netmask 255.255.255.0
freebsd# route add default 192.168.0.1

Polecenie ifconfig nie pokazuje nic dziwnego - oba interfejsy mają różne adresy MAC, i tylko fxp0 ma przypisany adres IP:

freebsd# ifconfig
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.0.10 netmask 0xffffff00 broadcast 192.168.0.255
    ether 00:02:b3:65:92:e2
    media: Ethernet autoselect (100baseTX <full-duplex>)
    status: active
fxp1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    ether 00:02:b3:41:95:ca
    media: Ethernet autoselect (100baseTX <full-duplex>)
    status: active

Również tablica routingu wskazuje na domyślną bramkę przez interfejs fxp0:

freebsd# netstat -nr

Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.0.1        UGSc        0      238   fxp0
127.0.0.1          127.0.0.1          UH          0        0    lo0
192.168.0          link#1             UC          2        0   fxp0
192.168.0.1        00:21:54:32:22:ac  UHLW        1        0   fxp0    950

Aby zauważyć różnicę w stosunku do jednej karty sieciowej, musisz teraz skonfigurować przełącznik.


Po stronie przełącznika Cisco Catalyst

Czekają nas tak naprawdę tylko dwie czynności - konfiguracja interfejsów mających wziąć udział w agregacji i sprawdzenie, czy wszystko działa.

Dla potrzeb tego testu wybrałem interfejsy FastEthernet 0/15 i FastEthernet 0/16. Podłączyłem do nich karty sieciowe FreeBSD i skonfigurowałem interfejsy w ten sposób:

cat2950t> enable
cat2950t# conf t
cat2950t(config)# interface range FastEthernet 0/15 - 16
cat2950t(config-if)# channel-group 1 mode on
cat2950t(config-if)# [CTRL+Z]

Wynikowa konfiguracja obu interfejsów wygląda w ten sposób:

cat2950t# show running-config interface FastEthernet 0/15

interface FastEthernet0/15
 no ip address
 no cdp enable
 channel-group 1 mode on

cat2950t# show running-config interface FastEthernet 0/16
 
interface FastEthernet0/16
 no ip address
 no cdp enable
 channel-group 1 mode on

Po dodaniu agregacji nr. 1, przełącznik automatycznie stworzył logiczny interfejs port-channel 1, który zbierać będzie wszelkie statystyki dotyczące ruchu. Rzućmy zatem na niego okiem po zainicjowaniu jakiegoś ruchu z FreeBSD do sieci:

c2950t# sh interfaces port-channel 1
Port-channel1 is up, line protocol is up (connected)
  Hardware is EtherChannel, address is 000c.308f.2287 (bia 000c.308f.2287)
  MTU 1500 bytes, BW 200000 Kbit, DLY 1000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Full-duplex, 100Mb/s
  input flow-control is off, output flow-control is off
  Members in this channel: Fa0/15 Fa0/16
[...]
  5 minute input rate 1000 bits/sec, 1 packets/sec
  5 minute output rate 1000 bits/sec, 2 packets/sec
     120 packets input, 7680 bytes, 0 no buffer
[...]
     263 packets output, 17862 bytes, 0 underruns

Najważniejsze linijki to: stan up/up, oraz linijka zawierająca członków agregacji - w naszym przypadku widać prawidłowo oba interfejsy Fa0/15 i Fa0/16. Przy okazji widać pewien skromny ruch, który już przez agregację przeszedł (120 pakietów do sieci i 263 pakiety z niej do FreeBSD)

Warto w tym momencie jeszcze zauważyć, że obie karty widziane są z punktu widzenia przełącznika tylko pod adresem MAC pierwszej karty fxp0. Można to sprawdzić w ten sposób:

c2950t# show mac-address-table | incl Po1
   1    0002.b365.92e2    DYNAMIC     Po1

Dodatkowe materiały

Ogólne:

Informacje specyficzne dla Cisco:

Informacje specyficzne dla Allied Telesyn:

Konfiguracja trunków na przełącznikach 8700XL

http://www.alliedtelesyn.co.nz/documentation/at8700/261/pdf/swi-rp.pdf