Mówiąc o adresach MAC w ramce sieciowej na pierwszą myśl przychodzi ramka ethernetowa, a w niej adresy source i destination. W zasadzie to wszystko czego potrzebujemy w celu jej poprawnego zaadresowania. Zatem co takiego szczególnego jest w sieci Wi-Fi, że w ramce mamy miejsce na aż 4 adresy MAC?
Topologie w świecie Wi-Fi
Zacznijmy od form i rodzajów powiązań, które możemy spotkać w sieci Wi-Fi.
Nie są to wszystkie możliwości, wybrałem tylko takie, których zrozumienie jest niezwykle istotne w celu sprawnego przejścia do tematu adresacji w dalszej części artykułu.
Basic Service Set
Podstawową topologią w sieci Wi-Fi jest BSS, czyli Basic Service Set, do którego należą Access Point oraz klienci bezprzewodowi. Stacje klienckie wchodzą w skład BSS wtedy, gdy są w stanie komunikować się z Access Pointem po warstwie drugiej modelu ISO/OSI, a także jednocześnie posiadają status associated (połączony z Access Pointem). Poniższy rysunek przedstawia BSS złożony z jednego Access Pointa oraz trzech stacji klienckich.
„Czy wiesz że…?”
W standardowym rozwiązaniu ruch pomiędzy dwiema stacjami klienckimi należącymi do tego samego BSS musi zawsze przejść przez Access Pointa, który w takim rozwiązaniu pełni rolę pośrednika. Organizacja Wi-Fi Alliance opracowała technologię Wi-Fi Direct, dzięki której komunikacja pomiędzy dwoma klientami może odbyć się bezpośrednio, tym samym omijając Access Pointa.
Basic Service Set Identifier
Ściśle powiązany z BSS jest BSSID, czyli Basic Service Set Identifier. Jest to identyfikator pozwalający w sposób jednoznaczny rozpoznać dany BSS na poziomie warstwy drugiej modelu ISO/OSI.
W praktyce jest to po prostu adres MAC konkretnej sieci bezprzewodowej, na konkretnym radiu, na konkretnym Access Poincie. Dzięki temu klient jest w stanie rozróżnić np. dwie sieci bezprzewodowe o tej samej nazwie, które rozgłaszane są przez dwa różne Access Pointy.
Distribution System
Standard IEEE 802.11 definiuje także pojęcie Distribution System (DS), którego zadaniem jest zapewnienie łączności przewodowej danemu BSS. W praktyce oznacza to po prostu sieć LAN, całą infrastrukturę kablową i Switche, dzięki którym pojedynczy BSS lub wiele odrębnych BSS mogą otrzymać połączenie kablowe z pozostałą częścią sieci. We współczesnych wdrożeniach w zasadzie jedynym spotykanym rozwiązaniem dla utworzenia DS jest użycie standardu IEEE 802.3 Ethernet. Poniższy rysunek przedstawia Distribution System łączący dwa odrębne BSS.
Wireless Distribution System
WDS, czyli Wireless Distribution System jest bezpośrednio związany z pojęciem DS. Jedyną różnicą jest to, że w tym przypadku BSS jako „wyjście na świat” używa połączenia bezprzewodowego zamiast przewodowego. WDS spotkamy zatem we wdrożeniach sieci typu Mesh, a także w przypadku repeaterów Wi-Fi i mostów Wi-Fi.
Poniższy rysunek przedstawia ułamek wdrożenia sieci typu Mesh. W tym przypadku Access Pointy komunikują się między sobą przy użyciu częstotliwości 5 GHz, i właśnie to połączenie to dla nich WDS. Warto dodać, że w tym przykładzie dla klientów Wi-Fi przeznaczona jest tylko częstotliwość 2.4 GHz.
Independent Basic Service Set
Kiedyś, gdy nie posiadałem jeszcze domowego Routera Wi-Fi, chcąc połączyć co najmniej dwa laptopy rozpoczynałem długą i usłaną problemami zabawę w celu utworzenia połączenia ad hoc. Jest to nazwa używana zamiennie z IBSS, czyli Independent Basic Service Set, dla określenia połączeń bezprzewodowych bezpośrednio pomiędzy stacjami klienckimi, w sieci nie posiadającej Access Pointa. Poniższy rysunek przedstawia sieć IBSS złożoną z czterech urządzeń.
Co z tymi czterema adresami?
No właśnie, o co tu chodzi? W sieci Ethernet wystarczą tylko dwa adresy, wspomniane już source i destination, w celu przesłania ramki pomiędzy dwoma urządzeniami w tej samej domenie rozgłoszeniowej. Sytuacja mocno komplikuje się w sieci bezprzewodowej, gdzie zwyczajnie mamy więcej możliwych przypadków, które należy prawidłowo obsłużyć.
Zacznijmy jednak od podstawowej informacji, czyli od budowy ramki Wi-Fi. Standard IEEE 802.11 definiuje ją w taki sposób, jak jest to przedstawione na poniższym rysunku.
W tym momencie skupię się wyłącznie na elementach bezpośrednio dotyczących adresacji. Przede wszystkim należy zajrzeć do środka pola Frame Control, które składa się z 16 bitów, tak jak przedstawiono na poniższym rysunku.
Uwagę należy zwrócić na dwa pola – To DS i From DS, czyli po prostu To Distribution System i From Distribution System. Są to dwie flagi, których ustawienie wpływa na użycie poszczególnych pól z adresami MAC. Oba pola przenoszą tylko jeden bit danych, mamy zatem cztery możliwe kombinacje:
Zanim wyjaśnię o co chodzi w danej kombinacji musimy przyjrzeć się bliżej skrótom, które pojawiły się w powyższej tabeli:
- Source Address (SA) – adres MAC oryginalnej stacji nadawczej, czyli takiej, z której faktycznie dana ramka została wysłana. SA może pochodzić zarówno od stacji bezprzewodowej, jak i od urządzenia podłączonego do sieci kablem.
- Destination Address (DA) – adres MAC końcowej stacji odbiorczej, czyli takiej, do której faktycznie adresowana jest dana ramka. DA może pochodzić zarówno od stacji bezprzewodowej, jak i od urządzenia podłączonego do sieci kablem.
- Transmitter Address (TA) – adres MAC radia na urządzeniu posiadającym kartę bezprzewodową (może to być Access Point, ale także klient bezprzewodowy), które wysyła ramkę do medium bezprzewodowego.
- Receiver Address (RA) – adres MAC radia na urządzeniu posiadającym kartę bezprzewodową (może to być Access Point, ale także klient bezprzewodowy), które odbiera ramkę z medium bezprzewodowego.
- Basic Service Set Identifier (BSSID) – adres MAC radia na Access Poincie.
Ustawienie flag To DS i From DS wpływa bezpośrednio na użycie czterech pól adresowych z adresami MAC, każde o długości 6 bajtów. Przyjrzyjmy się wszystkim możliwym kombinacjom.
UWAGA! W każdym poniższym przykładzie rozpatrujemy adresację ramki wyłącznie na połączeniu bezprzewodowym.
To DS = 0, From DS = 0
W tym przypadku ramka ani nie pochodzi z Distribution System, ani nie zmierza w jego kierunku. Są dwie możliwości wystąpienia takiej sytuacji. Pierwsza z nich to ramki typu Management oraz Control. Poniższy rysunek przedstawia adresację ramki Association Response, która została wysłana przez Access Pointa w kierunku bezprzewodowej stacji klienckiej. RA jest jednakowe z DA i oznacza adres MAC klienta, TA jest jednakowe z SA i oznacza adres MAC radia na Access Poincie, a BSSID to dodatkowa informacja, w tym przypadku to również adres MAC radia na Access Poincie. Pole Address 4 nie jest używane w tej kombinacji.
Druga możliwość to komunikacja wewnątrz IBSS. W tym przypadku RA jest jednakowe z DA i oznacza adres MAC klienta-odbiorcy, TA jest jednakowe z SA i oznacza adres MAC klienta-nadawcy, a BSSID to wirtualny adres danego IBSS, wygenerowany automatycznie przez pierwszą stację do niego podłączoną. Pole Address 4 ponownie nie jest używane.
To DS = 0, From DS = 1
W tej kombinacji mamy do czynienia z ramką danych, która pochodzi z Distribution System (np. urządzenie podłączone po kablu do sieci), a jej adresatem jest bezprzewodowa stacja kliencka. W tym przypadku RA jest jednakowe z DA i oznacza adres MAC klienta bezprzewodowego, TA jest jednakowe z BSSID i oznacza adres MAC radia na Access Poincie, a SA oznacza adres MAC urządzenia podłączonego do sieci po kablu. Pole Address 4 nie jest używane w tej kombinacji.
To DS = 1, From DS = 0
W tym przypadku ramka danych została wysłana przez klienta bezprzewodowego w kierunku stacji podłączonej do sieci po kablu. RA jest jednakowe z BSSID i oznacza adres MAC radia na Access Poincie, TA jest jednakowe z SA i oznacza adres MAC klienta bezprzewodowego, a DA oznacza adres MAC urządzenia podłączonego do sieci po kablu. Pole Address 4 nie jest używane w tej kombinacji.
To DS = 1, From DS = 1
Jest to jedyna konfiguracja, w której wykorzystywane jest pole Address 4. Taką sytuację możemy zaobserwować wtedy, gdy w sieci pojawia się WDS, czyli wspomniany wcześniej Wireless Distribution System. Poniższy rysunek przedstawia przykład, w którym jedna stacja kablowa wysyła ramkę do drugiej stacji kablowej, a pomiędzy nimi jest WDS. W tym przypadku SA to adres MAC stacji kablowej, z której pochodzi oryginalna ramka, TA to adres MAC radia na Access Poincie wysyłającym ramkę bezprzewodową, RA to adres MAC radia na Access Poincie odbierającym ramkę bezprzewodową, a DA to adres MAC stacji kablowej, do której adresowana jest oryginalna wiadomość.
Ilość scenariuszy komunikacji w sieciach bezprzewodowych jest zdecydowanie większa niż ma to miejsce w sieciach Ethernet. W związku z tym zasadne jest istnienie aż czterech adresów MAC w ramce IEEE 802.11. Znajomość znaczenia poszczególnych pól w ramce, a także konsekwencji ustawienia danej flagi, to wymagana wiedza podczas zaawansowanej inwestygacji problemów sieciowych, zwłaszcza w sieciach Wi-Fi.