Przełączanie Przełączanie pakietów między portami jest operacją prostą. Każdy przełącznik (a także most) buduje i utrzymuję tablicę przełączania zwaną także tablicą MAC lub tablicą mostowania. Firma Cisco nazywa tą tablicę CAM (Content Addressable Memory) natomiast Repotec używa terminu ARL. Bez względu na formalną nazwę zadaniem tablicy jest przechowywanie adresów fizycznych urządzeń przyłączonych do poszczególnych portów przełącznika. Przełączanie na poziomie ramek – switching polega na realizacji 3 zadań: przekazywaniu ramek między portami, filtrowaniu ramek, - aktualizacji tablicy przełączanie na podstawia odbieranych ramek.
Algorytm działania przełącznika Odebranie i zinterpretowanie sygnału jako ciąg zer i jedynek. 2. Odnalezienie w strukturze ramki adresu fizycznego odbiorcy Sprawdzenie w tablicy przełączania adresu portu wyjściowego jeśli adres odbiorcy jest identyczny z adresem przypisanym do portu z którego ramka nadeszła, należy ramkę usunąć (filtrowanie) jeśli MAC adres odbiorcy ramki nie jest skojarzony z portem, z którego ramką została odebrana, ramka jest przekazywana na port docelowy jeśli ramka ma adres rozgłoszeniowy to kopia ramki przekazywana jest na wszystkie porty prócz portu, z którego ramka została odebrana. d. jeśli adres ramki odbiorczej nie zostanie znaleziony w tablicy przełączanej, ramkę należy przesłać na wszystkie porty prócz tego z którego ramka nadeszła (flooding czyli zalewanie). 4. Generowanie ramki przez port wyjściowy
2.3. Projektowanie sieci z nadmiarowością Projektując sieci komputerowe należy brać pod uwagę możliwość wystąpienia awarii. Z tego powodu konieczne jest stosowanie połączeń nadmiarowych, które będą przenosiły ruch w przypadku uszkodzenia łączy podstawowych. Duże sieci LAN dzieli się na 3 warstwy: dostępu, dystrybucji, rdzenia. Każda z nich realizuje dodatkowe funkcje związane z bezpieczeństwem oraz optymalizacją wydajności. Przykładowy projekt sieci LAN przedstawiony jest na Rys.2.
Może się zdarzyć, że przełączniki zostaną fizycznie połączone pętlę, jak ma to miejsce na Rys.3. Nawet w najmniejszych strukturach pojawiają się problemy: − sztormów rozgłoszeniowych, − wielokrotnej transmisji, − niestabilności wpisów tablicy przełączania.
Poniżej opisana zostanie typowa sytuacja powstania niestabilności sieci na skutek powstania pętli mostowej. Stacja_x wysyła ramkę unicast przeznaczoną do stacji_y. Przełącznik SW1 pierwotnie nie zna położenia stacji_y, zatem wysyła ramkę przez porty wyjściowe 1_1 i 1_2. Przełącznik SW2 odbiera ramkę i przesyła ją do stacji_y przypisując położenie stacji_x do portu 2_1, ponieważ na tym porcie pojawiła się pierwszy raz ramka od stacji_x. Nie jest istotne, czy stacja podłączona jest bezpośrednio czy przez inne przełączniki. Przełącznik SW3 także obiera ramkę wysłaną przez SW1 i przesyła na inne porty, także na 3_2. Ta sama ramką trafia ponownie do SW2, tym razem na port 2_2. SW2 aktualizuje położenie stacji x, przypisując ją do portu 2_2. Odpowiedź od stacji_y kierowana jest przez port 2_2 na port 3_2. Przełącznik SW3 zapamiętuje położenie stacji_y i kojarzy ją z portem 3_2. Dalej odpowiedź kierowana jest do SW1 następnie do stacji_x. Widać zatem, że przekazanie pojedynczej ramki odbyło się dwiema drogami, co zwiększa ruch w sieci i prowadzi do niestabilności wpisów w tablicach przełączania.
2.4. Protokół Spanning Tree Protocol – STP Rozwiązaniem problemu pętli mostowych jest wprowadzenie protokołu STP (802.3D) - opierającego się na algorytmie drzewa rozpinającego – STA (Spanning - Tree Algorithm). Uruchomienie protokołu STP w sieci lokalnej eliminującego szkodliwy wpływ pętli mostowych przy równoczesnym stosowaniu połączeń nadmiarowych. Działanie STA polega na wyznaczeniu grafu o najtańszych ścieżkach. Wszystkie krawędzie grafu mają swój początek w korzeniu (root). Porty nie należące do wyznaczonego drzewa są blokowane. Blokowanie to ma charakter dynamiczny i może zostać usunięte w przypadku uszkodzenia łącza podstawowego, należącego do drzewa rozpinającego. Zagadnienie sprowadza się do trzech etapów: wyboru korzenia drzewa, wyznaczenia gałęzi drzewa, monitorowania sprawności łączy tego drzewa.
2.4.1. Komunikacja między przełącznikami Przełączniki z aktywnym protokołem STP wysyłają komunikaty nazywane jednostkami BPDU (Bridge Protocol Data Unit) umożliwiające pozostałym przełącznikom lokalne budowanie drzewa rozpinającego. Jednostki BPDU są odbierane nawet na zablokowanych portach. Zapewnia to możliwość wyliczenia nowego drzewa rozpinającego w przypadku awarii urządzenia lub ścieżki aktywnej. Rozróżnia się kilka rodzajów struktur BPDU: Struktury BPDU przenoszą informacje, dzięki którym przełączniki mogą wykonywać określone zadania: − wybrać jeden przełącznik główny, który będzie pełnił rolę korzenia drzewa rozpinającego. − obliczyć najkrótszą ścieżkę od danego przełącznika do przełącznika głównego. − w każdym segmencie sieci LAN wyznaczyć przełącznik, który w topologii będzie najbliżej przełącznika głównego. Przełącznik ten jest nazywany przełącznikiem wyznaczonym (designated switch). Przełącznik wyznaczony obsługuje całą komunikację między daną siecią LAN a przełącznikiem głównym. − wybrać jeden ze swoich portów jako port główny (dla każdego przełącznika oprócz przełącznika głównego). Jest to interfejs, przez który prowadzi najlepszą ścieżkę do przełącznika głównego. − wybrać porty, które są częściami drzewa opinającego. Te porty noszą nazwę portów wyznaczonych (designated ports). Porty inne niż porty wyznaczone są blokowane.
2.4.2. Wybór przełącznika głównego (root) Pierwszą decyzją, którą muszą podjąć wszystkie przełączniki w sieci, jest identyfikacja przełącznika głównego. Od lokalizacji przełącznika głównego w sieci zależy przepływ danych w tej sieci. Po włączeniu przełącznika korzysta on z algorytmu STP, aby znaleźć przełącznik główny. Wysyłane są jednostki BPDU z identyfikatorem mostu BID oraz identyfikatorem roota. Identyfikator mostu złożony jest suma trzech składników: − priorytet przełącznika (domyślnie 32768), − system ID, czyli numer VLAN-u, domyślnie 1, − MAC adres przełącznika. Domyślnie jednostki BPDU są wysyłane co dwie sekundy.
Kiedy przełącznik jest uruchamiany po raz pierwszy, zakłada on, że jest on przełącznikiem głównym, czyli rootem i w polach identyfikator mostu/przełącznika oraz identyfikator roota wysyła własny BID. Każdy przełącznik otrzymuje od sąsiada wartości BID. Porównując warości BID, przełącznik ustala czy w danym segmencie on jest wyznaczonym czy też przełącznik sąsiedni. Przełącznik wyznaczony dla danego segmentu sieci to taki, który jako jedyny może przesłać ramki do i od tego segmentu. Administrator sieci może ustawić dla priorytetu przełącznika wartość mniejszą niż domyślna, aby jego identyfikator BID był niższy. Metodę tę można stosować tylko w przypadkach, gdy przepływ ruchu w sieci jest dobrze znany.
2.4.3. Stany portów przełącznika Rozprowadzanie informacji o protokole w całej sieci przełączanej wymaga czasu. Zmiany topologii w jednej części sieci nie są od razu znane w pozostałych częściach sieci. Istnieje opóźnienie propagacji. Przełącznik nie powinien od razu zmieniać stanu portu z nieaktywnego na aktywny, ponieważ może to być przyczyną utworzenia pętli. Każdy port w przełączniku używającym protokołu STP może się znajdować w jednym z pięciu stanów, Rys. 5
W stanie blokowania (blocking) porty mogą jedynie odbierać jednostki BPDU. Odrzucane są ramki danych i nie są zapamiętywane żadne adresy. Wychodzenie z tego stanu może trwać do 20 sekund. Ze stanu blokowania porty przechodzą do stanu nasłuchiwania (listening). W tym stanie przełączniki ustalają, czy istnieją inne ścieżki do przełącznika głównego. Ścieżka, która nie jest ścieżką o najniższym koszcie prowadzącą do przełącznika głównego, przechodzi z powrotem do stanu blokowania. Okres nasłuchiwania jest nazywany opóźnieniem przesyłania i może trwać do 15 sekund. W stanie nasłuchiwania nie są przesyłane dane i nie są zapamiętywane adresy MAC. Jednostki BPDU są nadal przetwarzane. Ze stanu nasłuchiwania porty przechodzą do stanu zapamiętywania (learning). W tym stanie dane nie są przekazywane, ale adresy MAC są odbierane i zapamiętywane. Stan zapamiętywania może trwać do 15 sekund i jest również nazywany opóźnieniem przesyłania. Jednostki BPDU są nadal przetwarzane. Ze stanu zapamiętywania porty przechodzą do stanu przekazywania (forwarding). W tym stanie dane użytkowe są przekazywane, a adresy MAC są w dalszym ciągu zapamiętywane. Jednostki BPDU są nadal przetwarzane. Port może się znajdować w stanie wyłączenia (disabled). Stan wyłączenia może wystąpić, gdy port zostanie wyłączony przez administratora lub ulegnie awarii. Czasy podane dla każdego stanu są wartościami domyślnymi. Wartości te zostały obliczone przy założeniu, że w każdej gałęzi drzewa rozpinającego występuje najwyżej siedem przełączników, licząc od przełącznika głównego.
W Cisco IOS konfiguracja STP zwracane są w następującej postaci.
2.4.4. Koszty łącz Koszt ścieżki wyznaczany jest jako skumulowany koszt łączy składowych wg. następującej zasady.
2.4.5. Ponowne obliczanie drzewa Sieć przełączana osiąga zbieżność, gdy wszystkie porty przełączników i mostów są albo w stanie przekazywania, albo w stanie blokowania. Porty w stanie przekazywania wysyłają i odbierają ruch danych oraz jednostki BPDU. Porty zablokowane odbierają tylko jednostki BPDU. Kiedy topologia sieci ulega zmianie, przełączniki przeprowadzają ponowne obliczenie drzewa rozpinającego, zakłócając ruch w sieci. Osiągnięcie zbieżności nowej topologii drzewa rozpinającego zgodnej ze standardem IEEE 802.1d może zająć do 50 sekund. Na czas osiągnięcia zbieżności składa się czas przebywania w stanie blokowania (do 20 sekund), opóźnienie przesyłania w stanie nasłuchiwania (15 sekund) i opóźnienie przesyłania w stanie zapamiętywania (15 sekund). Drobne niedoskonałości protokołu niwelują protokoły: − RSTP (Rapid Spanning Tree Protocol, IEEE 802.1w) zapewnia krótszy czas przywracania sprawności połączeń po awarii, − MSTP (ang. Multiple Spanning Tree Protocol, IEEE 802.1s) umożliwia równoważenie obciążenia i zwiększa odporność sieci na błędy dzięki zapewnieniu wielu ścieżek przekazywania ruchu danych.
2.4.6. Szybki protokół STP - (ang. Rapid Spanning-Tree Protocol) Szybki protokół STP jest zdefiniowany przez standard IEEE 802.1w sieci LAN. W standardzie i w protokole zostały wprowadzone nowe funkcje: − uporządkowanie ról i stanów portów, − definicja zestawu typów łączy, które mogą szybko przejść do stanu przekazywania, − zezwolenie przełącznikom na wysyłanie własnych jednostek BPDU po osiągnięciu zbieżności sieci, zamiast przekazywania jednostek BPDU wysyłanych przez przełącznik główny. Określenie stanu portu jako "blokujący" zostało zmienione na "odrzucający„ (discarding). Porty odrzucające pełnią rolę portów alternatywnych. Port odrzucający może stać się portem wyznaczonym, gdy port wyznaczony w tym segmencie ulegnie awarii. Nowo zdefiniowane typy łączy to łącze punkt-punkt (point-to-point), łącze brzegowe (edge-type) i łącze współdzielone (shared). Te zmiany umożliwiają szybkie wykrycie awarii łączy w sieciach przełączanych. Łącza typu punkt-punkt i brzegowe mogą natychmiast przejść do stanu przekazywania. Dzięki tym zmianom czas osiągania zbieżności sieci powinien wynosić najwyżej 15 sekund. Szybki protokół STP (IEEE 802.1w) wyprze w końcu protokół drzewa rozpinającego (IEEE 802.1d).
2.5. Agregacja portów Wraz z rozwojem sieci LAN konieczne jest łączenie ze sobą przełączników zgodnie z Rys.2. Zwykle do łączenia przełączników stosuje się porty o przepływności o rząd większej. W przeciwnym przypadku pojedyncze łącze o przepływności równej przepływności udostępnianej pojedynczemu użytkownikowi, może stanowić tzw. wąskie gardło (bottle neck) czyli przekrój sieci, w którym może wstąpić brak pasma. Rozwiązaniem problemu jest funkcjonalność agregacji portów (IEEE 802.3ad), która pozwala na łączenie przełączników większą liczbą łączy. Gdyby nie mechanizm agregacji, przełącznik uznałby drugi i kolejne łącza jako nadmiarowe i protokół STP wprowadziłby porty w stan blokowania. Agregacja portów umożliwia logiczne grupowanie łączy między przełącznikami. Porty zagregowane określane są w dokumentacji Cisco Ether Channel natomiast firma Repotec promuje nazwę Truk czyli pień. To określenie występuję także w nomenklaturze Cisco, jednak w zupełnie innym znaczeniu, w połączeniu z sieciami VLAN. Terminem trunk oznacza się port lub połączenie przenoszące ramki z różnych VLANów. Wcześniej port ten nazywał się po prostu portem tagowanym (od znaczników, tags, dodawanych do każdej ramki, aby wskazać przynależność do VLANu)
2.6. Mirroring portów W myśl naczelnej zasady pracy przełączników: ramki z adresem unicast przekazywane są tylko do portu odbiorcy, ramki brodcast przekazywane do wszystkich portów prócz portu źródłowego. Często zachodzi potrzeba, aby administrator monitorował ruch od/do wybranego użytkownika lub portu w celu wykrycia problemu z siecią. Proste przełączniki pracujące w trybie store-and-forward, nie posiadają możliwości inspekcji ruchu na poziomie warstwy 2. Bardziej zaawansowane przełączniki potrafią kopiować ramki kierowane do/z wskazanych portów na inny port, np. port administratora celem dokonania programu za pomocą specjalizowanego oprogramowania. Funkcjonalność nazywa się mirorowaniem portów.