Jak funkcjonuje roaming Wi-Fi?
Roaming to jeden z bardziej złożonych aspektów funkcjonowania wszystkich sieci bezprzewodowych - i Wi-Fi nie jest tu wyjątkiem. Podobnie jak w sieci telefonii komórkowej tak i w sieci Wi-Fi roaming polega na przełączaniu się klientów pomiędzy różnymi punktami dostępowymi. Obsługa protokołów roamingu często nie jest zaimplementowana po stronie AP - tak jest w przypadku tańszych rozwiązań. Zdarza się też, że roaming jest zaimplementowany wadliwie, co prowadzi do trudnych do zdiagnozowania problemów z siecią. W związku z rosnącą mobilnością klientów Wi-fi sprawna osługa roamingu staje coraz istotniejsza, dlatego też poświęcamy jej niniejszy artykuł.
Kiedy w praktyce mamy do czynienia z roamingiem? Typowy przypadek związany jest z mobilnością klientów - użytkownicy smartfonów, tabletów i innych urządzeń przenośnych przemieszczają się w zasięgu swojej sieci Wi-Fi. Wymaga to "logowania się" ich urządzeń do różnych AP - tak aby zapewniona była należyta moc sygnału. Tak więc, sprawna obsługa roamingu jest kluczem do efektywnej mobilności w sieciach Wi-Fi. Roaming to nie tylko obsługa mobilnych użytkowników, mamy z nim do czynienia w środowiskach przemysłowych oraz w logistyce. W zastosowaniach przemysłowych, np. w przypadku hal montażowych urządzenia zaopatrzone w nadajniki Wi-Fi przemieszczają się po dużym obszarze wchodząc w zasięg różnych punktów dostępowych. W logistyce bezprzewodowe czytniki kodów - naręczne czy też zaintegrowane z systemami transportowymi - przemieszczają sie po dużym obszarze obsługiwanym przez wiele AP. Kolejnym przykładem zastosowań, w których zachodzi roaming jest służba zdrowia, w ktorej wykorzystuje się coraz częściej tzw. tagi wi-fi zintegrowane z różnorodnym sprzętem medycznym.
Roaming nie musi się zawsze wiązać z mobilnością - przełączenie klienta między różnymi AP może być realizowane w celu zmniejszenia liczby użytkowników połączonych do danego punktu dostepowego.
Realizacja roamingu
Podstawowa zasada realizacji roamingu w sieci Wi-Fi jest następująca - o przełączeniu się między AP decyduje klient. Standard 802.11 nie określa na podstawie jakich danych i kiedy podejmowana jest przez klienta decyzja o zmianie AP. Roaming jest więc z założenia tą częścią oprogramowania klienckiego, o implementacji której decyduje producent oprogramowania, a nie standard. Najważniejszym czynnikiem wpływającym na decyzję o zmianie AP jest oczywiście RSSI (siła sygnału), mogą też być brane pod uwagę inne miary związane z jakością łącza, np. stosunek sygnału do szumu i aktualna stopa błędów. Rysunek 1 pokazuje schematycznie roaming klienta między punktmai dostepowymi - użytkownik przemieszczając się ze swoim terminalem Wi-Fi wychodzi z zasięgu AP1. (Na rysunku symbolicznie zaznaczono granice -72dBm siły sygnału - typowo uznawaną za graniczny poziom mocy, poniżej którego można rozważyć poszukiwanie nowego AP). Użytkownik wchodzi w zasięg AP2 - celem roamingu jest maksymalnie szybkie i niezauważalne dla osoby korzystającej z usług sieci przełaczenie się na nowy AP.
Rysunek 1 - roaming między AP1 i AP2, granica -72dBm dobrana jest przykładowo.
Przełączanie klientów między AP - protokoły 802.11r i 802.11k
Przełączenie się klienta pomiędzy AP jest operacją złożoną i dość kosztowną czasowo. Bez dodatkowego "wspomagania" przebiega nastepująco:
- skanowanie: klient wybiera nowy AP z listy potencjalnie dostępnych. Skanowanie może mieć charakter pasywny - tj. decyzja podejmowana jest wyłącznie na podstawie "obserwowanych" fizycznych parametrów sygnału AP lub aktywny, w którym klient "odpytuje" AP starając się wybrać optymalny,
- autoryzacja 802.11 klienta do nowego AP,
- reasocjacja klienta z nowym AP.
W przypadku gdy stosowana jest autoryzacja WPA2 Enterprise, tj. z wykorzystaniem protokołu 802.1x (co często ma miejsce w sieciach korporacyjnych oraz przemysłowych) konieczna jest "reautoryzacja" klienta z nowym AP, co przebiega w trzech kolejnych krokach:
- negocjacja klucza master (PMK) protokołu 802.1x
- generowanie kluczy sesji (PTK) w ramach protokołu 802.11i, wymagająca wymiany 4 komunikatów i skutkująca uzyskaniem klucza enkrypcji dla transmitowanych danych
- ustalenie parametrów QoS w celu odbudowy strumieni QoS (mechanizm służy obsłudze gwarantowanego pasma i jest stosowany np. w transmisji VoIP i danych czasu rzeczywistego)
Jak wynika z powyższego, tak zrealizowany roaming jest dość kosztowny czasowo, zwłaszcza w drugiej fazie związanej z autoryzacją - wymaga przeprowadzenia długotrwałych operacji kryptograficznych oraz "sięgnięcia" do zewnętrznego serwera autoryzacyjnego RADIUS. Przykładowo - dodatkowe opóźnienie rzędu 50 ms w transmisji VoIP jest już wyraźnie odczuwalne dla użytkownika.
Protokół 802.11r służy do przyśpieszenia obsługi roamingu. Pozwala na zmniejszenie liczby wymienianych w ramach negocjacji danych poprzez połączenie komunikatów ustalenia PTK i parametrów QoS z wcześniej przesyłanymi komunikatami reasocjacji (piggyback). Jednocześnie stosuje się cachowanie klucza serwera, co skraca początkową fazę obsługi 802.1x i eliminuje konieczność sięgania do zewnętrznych serwerów autoryzacji. Należy wyraźnie zaznaczyć, że protokół 802.11r służy do wspomagania roamingu, tak więc jego implementacja nie jest obowiązkowa, ale przyczynia się do znacznego zwiększenia komfortu pracy użytkowników.
Drugim protokołem wspomagajacym roaming jest 802.11k. Służy on do optymalizacji wyboru AP przez klienta. Jak wspomieliśmy wcześniej klient może wybierać nowy AP posługując się postrzeganą przez siebie siłą sygnału pochodzącego od dostępnych AP. W danym momencie sygnał od jednego AP będzie najsilniejszy i ten właśnie punkt dostępowy zostanie wybrany. Jednak nie zawsze takie rozwiazanie jest optymalne z punktu widzenia sieci jako całości. Może ono prowadzić do znacznego przeciążenia niektórych AP, co z kolei będzie skutkowało zwolnieniem transmisji, a w skrajnych przypadkach niedostępnością sieci - sygnał pochodzący od AP może być silny, ale przy b. dużej liczbie podłączonych klientów AP nie będzie w stanie ich obsłużyć, zarówno z powodu ograniczonych zasobów CPU/RAM jaki z powodu dostępnej przepustowości pasma radiowego. Protokół 802.11k pozwala klientowi wybrać optymalny AP z dostępnych, w zarysie funkcjonuje następująco:
- AP uzyskuje informację od klienta, że ten zamierza przełączyć się na inny AP,
- AP informuje klienta o gotowości do przełączenia,
- klient prosi AP o listę nowych AP,
- AP przekazuje klientowi "raport" optymalnych AP do przełączenia,
- klient przełącza się na optymalny (wg. uzyskanego raportu) AP docelowy
Protokoły 802.11k oraz 802.11v obejmują także mechanizmy raportowania do AP szczegółowych parametrów takich: jak SNR (stosunek sygnału do szumu), siły sygnału, poziomu szumu na dostępnych kanałach i dostępnych szybkości transmisji. Informacje te przekazywane są do kontrolera sieci WLAN, przez który wykorzystywane są do optymalizacji alokacji klientów. 802.11k pozwala też na optymalizację mocy nadajnika klienta.
Inne aspekty roamingu
Roaming wymaga też dodatkowej obsługi na poziomie łącza danych. Załóżmy, że klient prowadzi aktywną transmisję TCP (np. pobiera plik poprzez FTP lub HTTP). Podczas zmiany AP może okazać się, że na "starym" AP pozostały zbuforowane pakiety danych przeznaczone dla klienta, który już przełączył się na "nowy" AP. Taka sytuacja musi być identyfikowana i obsłużona - typowo na poziomie kontrolera sieci Wi-Fi.
Do tej pory opisywaliśmy problemy i rozwiązania występujace na poziomie L2, tj. warstwy kanałowej. Zakładaliśmy, że wszystkie AP znajdują się w tej samej pod-sieci, tak więc adres IP klienta nie ulegał zmianie podczas roamingu W niektórych przypadkach jednak AP przypisane są do różnych sieci - w takiem przypadku roaming musi być obsługiwany w L3. Rozwiązaniem problemu jest tu tunelowanie ruchu analogiczne do tego, które stosowane jest w rozwiązaniach VPN - adres IP klienta pozostaje cały czas bez zmian, nieależnie od tego jakiej adresacji używa AP do którego klient jest podłączony.
Podsumowanie
Roaming w sieciach Wi-Fi decyduje o mobilności użytkownikow, składa się jednak na niego wiele złożonych technicznie rozwiązań, co w eksploatacji sieci może prowadzić do trudnych do zidentyfikowania i naprawienia problemów. Jeśli w naszej sieci wymagany jest roaming, warto zwrócić uwagę czy stosowany sprzęt kliencki oraz infrastruktura Wi-Fi spełniają następujace wymagania:
- Obsługa protokołów wspomagania roamingu, tj. 802.11r, 802.11k, 802.11v po stronie urządzeń klienckich jak i AP Wi-Fi; tańsze - nisko budżetowe - systemy często nie implementuja w.w. standardów, lub implementują je w sposób błędny lub niekomplenty. Niektórzy producenci sprzętu Wi-Fi stosują własne mechanizmy wspomagnia roamingu, które mogą być efektywne w małej skali, zawodza jednak gdy liczba klientów oraz AP wzrasta.
- Jeśli stosujemy uwierzytelnianie 802.1x warto przeprowadzić testy roamingu badając czasy przełączenia.
- Planując rozlokowanie AP w sieci planujemy nie tylko pod katem "pokrycia" (siły sygnału) ale także pod kątem pojemności sieci. Zapewnijmy odpowiednią redundancję - w szczególnosci zaleca się, aby w każdym punkcie krytycznym dla zasięgu Wi-Fi co najmniej 2 AP zapewniały odpowiednią dla wydajnej transmisji siłę sygnału.