Spis treści

WLAN

Materiały

Lista historycznych materiałów opisujących sieci bezprzewodowe ad-hoc:
http://www.cs.put.poznan.pl/mkalewski/files/adhoc.pdf
http://www.cs.put.poznan.pl/ddwornikowski/sieci/sieci2/adhoc.html

Lista dodatkowych materiałów opisujących sieci bezprzewodowe:
https://technet.microsoft.com/en-us/library/cc757419%28v=ws.10%29.aspx
https://www.cisco.com/c/en/us/td/docs/wireless/controller/8-5/Enterprise-Mobility-8-5-Design-Guide/Enterprise_Mobility_8-5_Deployment_Guide/wlanrf.html

Laboratoria 1

Ćwiczenia / treści z pierwszych laboratoriów:

Podstawowe pojęcia

Urządzenia w sieci:

Pasmo i standardy określające możliwe prędkości działania sieci

marka rok wyd. 2.4GHz 5GHz 6GHz kodowanie
sz. kan.max band. sz. kan.max band. sz. kan.max band.
802.11 1997 22 2Mbps DSSS/FHSS
802.11b 1999 22 11Mbps DSSS
802.11a 20 54Mbps OFDM
802.11g 2003 20 54Mbps
802.11nWi-Fi 4 (2006),
2009
HT20 72.2Mbps HT20 72.2Mbps
HT40 150Mbps HT40 150Mbps
802.11acWi-Fi 5 wave 1:
2013,

wave 2:
2016
VHT20 86.7Mbps
VHT40 200Mbps
VHT80 433.3Mbps
VHT160 866.7Mbps
802.11axWi-Fi 6,
Wi-Fi 6E
2019,
2020
HE20 143.4Mbps HE20 143.4Mbps HE20 143.4Mbps OFDM/OFDMA
HE40 286.8Mbps HE40 286.8Mbps HE40 286.8Mbps
HE80 600.5Mbps HE80 600.5Mbps
HE160 1201Mbps HE160 1201Mbps
802.11ac i 802.11ax potrafią też używać dwóch kanałów 80MHz naraz (80+80) z przepustowością identyczną jak dla 160MHz
Podane prędkości to maksymalne teoretyczne prędkości dla jednego strumienia przestrzennego
802.11ax z ODFMA ma niższe prędkości teoretyczne
802.11ax bez wsparcia dla pasma 6GHz to Wi-Fi 6, a ze wsparciem to Wi-Fi 6E

Plan kanałów dla sieci bezprzewodowych:
        https://en.wikipedia.org/wiki/List_of_WLAN_channels

OFDM / OFDMA

OFDM polega na podziale pasma na wiele częstotliwości nośnych (subcarriers) i nadawaniu danych jako kolejnych symboli – krótkich, oddzielonych przerwami okresów (np. 3.2 µs) w których sygnał jest generowany przez dodanie każdej nośnej o odpowiednio zmienionej amplitudzie i fazie (modulacja).
Po stronie odbiorcy wykorzystuje się FFT do przetworzenia sygnału z powrotem na wartości amplitud i fazę dla kolejnych częstotliwości, czyli odczytuje się nadany symbol.
Do zminimalizowania błędów w transmisji do przesyłanych danych dodaje się dodatkowe bity które pozwalają na wykrycie błędów i korekcję sygnału (kodowanie).

Do standardu 802.11ac wszystkie częstotliwości nośne symbolu były kierowane do jednego odbiorcy.
W standardzie 802.11ax wprowadzono możliwość wykorzystania OFDMA – część nośnych może by przeznaczona dla jednego odbiorcy, a pozostałe dla innych. Pozwala to jednocześnie nadawać dane do kilku urządzeń naraz i znacznie usprawnia pracę wielu urządzeń w sieci (i działa dużo lepiej niż MU-MIMO).

Anteny

Rodzaje anten: [1]

Jednoczesne użycie wielu anten:

Teoretyczna prędkość sieci

Sieci bezprzewodowe (poza 802.11b) wykorzystują OFDM (lub OFDMA) - dzielą kanał na podnośne (ang. subcarriers) i na każdej wybierają, w zależności od jakości sygnału i poziomu sygnału i szumu, modulację i kodowanie podnośnych. Teoretyczna prędkość sieci zależy od ustalonej:

  • szerokości kanału, czyli ilości podnośnych (20MHz - 48(a,g) lub 52(n), 40MHz - 108 (n,ac), 80MHz - 234 (ac), ax - 4× gęściej)
  • ilości użytych niezależnych transmisji (różnymi parami anten) (ang. spatial streams)
  • czasu na jeden symbol, stałego dla standardu (np. 3.2µs+0.8/0.4µs (n,ac), 12.8µs+0.8/1.6/3.2µs(ax))

oraz zmiennej:

Modulacje i kodowania (MCS) są pogrupowane w pary (i numerowane)

Przykładowo dla dwóch kanałów 20 MHz i 802.11n (do transmisji danych używa się 52 podnośnych), dla nadawania symbol przez 3.2 µs i 0.4µs przerwy między symbolami, używanej modulacji 64-QAM (czyli: 6 bitów na symbol) i kodowania 3/4 (czyli: z każdych kolejnych 4 przesłanych bitów powstają 3 bity danych, nadmiar służy wykrywaniu i korekcji błędów), teoretyczna prędkość to: 2 * 52 * 1/3.6µs * 6b * 3/4 = 130 Mb/s

Przykładowe tabele prędkości: https://mcsindex.net/

Typy sieci i ich identyfikatory

Typy sieci bezprzewodowych i identyfikatory sieci bezprzewodowych

Ilustracja BSS/ESS

802.11…

https://en.wikipedia.org/wiki/IEEE_802.11#Standards_and_amendments
http://www.cs.put.poznan.pl/ddwornikowski/sieci/sieci2/adhoc.html

Paczki narzędzi do WLAN pod Linuksem

Network Manager i rfkill

W wielu dystrybucjach Linuksa domyślnie karty sieciowe obsługuje NetworkManager (NM).
Komenda nmcli radio all off nakaże NM wyłączenie kart i nie konfigurowanie ich.
W OpenSUSE nmcli nie przerywa działania wpa_supplicanta uruchomionego przez NM; dlatego należy wykonać pkill wpa_supplicant

NM poza wyłączeniem interfejsu, próbuje wyłączyć kartę (dla lepszego zarządzania energią możliwe jest często odłączenie karty).
Do włączenia tak wyłączonej karty służy program rfkill [1]), dokładniej komenda rfkill unblock wifi

Podstawowe komendy

Wyświetlanie informacji i skanowanie

Zmiana pasma / kanału

Zmiana trybu pracy:

Zmiana SSID / BSSID

Komenda iw ma odrębne polecenia do tworzenia sieci ad-hoc, mesh i dołączania do sieci w trybie infrastruktury:

Tworzenie / dołączanie się do sieci ad-hoc

iw wspiera tworzenie sieci IBSS z wykorzystaniem 802.11n/ac/ax, np:
iw <if> ibss join <essid> <freq> HT40- używa kanału 40MHz zajmującego częstotliwości freq i freq-20
iw <if> ibss join <essid> <control_freq> <width> <center_freq> używa kanału szerokości width ze środkiem na częstotliwości center_freq i używa control_freq m. inn. do rozgłaszania sieci

Przykłady (używające tego samego kanału 40MHz):
iw <if> ibss join <essid> 2432 HT40-
iw <if> ibss join <essid> 2432 40 2422

Uwaga: sterowniki kart w 1.6.16 mają problem ze sobą w trybie IBSS, żeby pracowały z pełną prędkością wykonaj:
tc qdisc add dev wlan0 root cake

Do testów prędkości możesz użyć programów netperf/iperf3 znanych z SK1

Monitorowanie sieci

W salach laboratoryjnych zalecaną metodą jest stworzenie nowego interfejsu pracującego w trybie monitor komendą:
iw wlan0 interface add mon0 type monitor
Uwaga: kartom intela w laboratorium "zdarza się" zerwać bieżące połączenie przy dodawaniu wirtualnego interfejsu.

Sposoby na otrzymanie urządzenia pracującego prawidłowo w trybie monitor:

  • korzystając z aircracka:
    • airmon-ng start <if> [channel]
  • korzystając z iw:
    • dodać nowy interfejs w trybie monitor:
      iw [dev/phy] <if> interface add <newif> type monitor, np:
      iw wlan0 interface add mon0 type monitor
    • można ustawić flagi konfigurujące jakich ramek ma nie ignorować monitor (uwaga, wsparcie zależy od sterowników), np:
      iw dev mon0 set monitor fcsfail control otherbss
  • korzystając z wireless-tools (uwaga: wireless-tools nie mają niezależnej od sterowników metody na dodanie drugiego interfejsu sieciowego):
    • wyłączyć interface, np:
      ifconfig <if> down
    • ustawić pracę karty sieciowej jako monitor:
      iwconfig <if> mode monitor
    • włączyć interface, np:
      ifconfig <if> up
  • przy niektórych sterownikach działa tryb promiscuous – tryb w którym przekazywane są do systemu operacyjnego wszystkich ramek (domyślnie karta sieciowa przekazuje tylko ramki kierowane do siebie, nie wszystkie które otrzyma):
    ip l set dev <if> promisc on lub ifconfig <if> promisc
    wyłączenie powyższego – ifconfig <if> -promisc lub ip l set dev <if> promisc off

Przykładowe wyniki komend

iw dev / iw [dev] <if> info

iw phy

zmiana tryby pracy i kanału / częstotliwości

iw <if> scan

inny, przydługi wynik komendy 'iw <if> scan' dla 2 sieci 802.11ax

konfiguracja sieci ad-hoc

Laboratoria 2

Ćwiczenia / treści z drugich laboratoriów (stacjonarnych):

Ćwiczenia / treści z drugich laboratoriów (zdalnych):

Sieci bezprzewodowe w CISCO

Link do materiałów o poruszaniu się w konsoli CISCO z poprzedniego semestru: cisco_wstep
Przypomnienie: komenda do obsługi portu szeregowego: picocom /dev/ttyS0 (wyjście: ctrl+a ctrl+q)

Uwaga: domyślne hasło do trybu uprzywilejowanego (enable) na AP używanych na zajęciach to Cisco

Na początku sprawdź komendą show startup-config wykonaną w trybie uprzywilejowanym czy na urządzeniu nie ma starej konfiguracji. Jeśli jest - wykonaj erase startup-config, a następnie reload.

Komendy CISCO przydatne do obsługi sieci bezprzewodowych, część 1:

Przykładowa konfiguracja sieci o nazwie ''jakasNazwaSieci'' bez zabezpieczeń:

Przykładowa konfiguracja sieci o nazwie ''innaNazwaSieci'' z zabezpieczeniami WPA-PSK z hasłem (kluczem) ''somePreSharedKey'':

Komendy CISCO przydatne do obsługi sieci bezprzewodowych, część 2 - wiele sieci z jednego interfejsu:

  • tryb konfiguracji ((config) #):
    • dot11 ssid nazwa_sieci ((config-ssid) #):
      • mbssid guest-mode - ustawienie rozgłaszania sieci; bez tego sieć nie pojawia się w wynikach skanowania 4)
      • vlan numer_vlanu - ustawia numer vlanu z którego będą przychodzić dane na interfejsie bezprzewodowym; pozwala to rozróżnić dane z różnych sieci na tym samym interfejsie; (pomysł cisco - częstszy pomysł to osobne wirtualne interfejsy na każdą rozgłaszaną sieć)
    • interface Dot11Radio numer_karty ((config-if) #):
      • mbssid - zmienia działanie interfejsu tak, by akceptował wiele komend ssid naraz
      • encryption vlan numer_vlanu mode ciphers metodySzyfrowania - ustawia jak dane której sieci (identyfikowana przez vlan!) mją być szyfrowane, np:
        encryption vlan 50 mode ciphers aes-ccm - nakazuje sieci skonfigurowanej jako vlan 50 użycie WPA
      • ssid nazwa_sieci - dodaje kolejną sieć do interfejsu; musi być wpisane po mbssid
    • interface Dot11Radio numer_karty.numer_vlanu - konfiguruje subintefejs odpowiedzialny za vlan numer_vlanu, np:
      interface Dot11Radio0.60 - vlan 60 na interfejsie Dot11Radio0
      Prompt ((config-subif) #):
      • encapsulation dot1Q numer_vlanu [native] - wymagane, by dało się używać ssidu skonfigurowanego jako vlan numer_vlanu, np.
        encapsulation dot1Q 60 - pozwala włączyć na interfejsie ssid używający vlan 60, a pakiety z pasujących sieci będą pojawiać się na tym subinterfejsie
        encapsulation dot1Q 1 native - jak wyżej, plus vlan 1 jest traktowany specjalnie: dokumentacja cisco
      • bridge-group numer_mostka - dodaje subinterfejs do mostka; patrz niżej
    • interface FastEthernetnumer_karty.numer_vlanu - konfiguruje vlan na połączeniu ethernetowym, np:
      interface FastEthernet0.60 - vlan 60 na interfejsie FastEthernet0
      Prompt ((config-subif) #):
      • encapsulation dot1Q numer_vlan - pakuje / rozpakowuje dane do podanego vlanu
      • bridge-group numer_mostka - dodaje subinterfejs do mostka
        połączenie mostkiem np. Dot11Radio0.60 i FastEthernet0.60 przekaże pakiety z sieci bezprzewodowej dla której ustawiono vlan 60 jako vlan 60 po kablu ethernetowym

Przykładowa konfiguracja kilku sieci:

Zabezpieczenia sieci bezprzewodowych

Zabezpieczenia sieci bezprzewodowych:

WEP, WPA{,2,3} dobrze opisuje artykuł: https://www.nastykusieci.pl/wpa3/ i https://www.cyberbajt.pl/raport/377/0/378/

Łączenie do AP w Linuksie

Sieci niezabezpieczone

Do sieci niezabezpieczonych, lub zabezpieczonych słabo (z WEP), wystarczy komena iwconfig / iw:

Sieci zabezpieczone - wpa_supplicant

Do sieci zabezpieczonych z użyciem WPA potrzeba użyć właściwego programu – w Linuksie np. wpa_supplicant.

Suplikant [sjp] (klient) w uwierzytelnianiu EAPOL (IEEE_802.1X) to strona która prosi o dostęp.
Stąd nazwa programu wpa_supplicant.

wpa_supplicant jest wykorzystywany w Linuksie przez praktycznie wszystkie programy zarządzające siecią (NetworkManager, wicd). Poza głównym programem (wpa_supplicant), dostarczane jest CLI oraz GUI do zarządzania.

Typowe użycie samego wpa_supplicanta (foreground):
wpa_supplicant -c config_file -i iface [-d]
Przykladowe użycie:
wpa_supplicant -i wlan0 -c wpa_supplicant.conf

Najprostszy plik konfiguracyjny dla WPA-PSK / WPA2-PSK ma postać:

  network={
    ssid="ssid"
    psk="pass"
  }

Plik pozwalający na użycie wpa_cli i przykład dla sieci bez zabezpieczeń:

Użycie wpa_cli:

Więcej w man wpa_supplicant i man wpa_supplicant.conf

Sieci zabezpieczone - iwd

Trwają prace nad nową, lepiej zorganizowaną obsługą bezpieczeństwa sieci bezprzewodowych w Linuksie: iwd (iNet Wireless Daemon).
Szczegóły: https://iwd.wiki.kernel.org/

Labolatoria 3

Zadania, ramki, działanie

Zadania w WLAN, poza tymi które znacie z LAN, to:

Wielodostęp:

Ramka 802.11 [1] (źródło: http://www.willhackforsushi.com/papers/80211_Pocket_Reference_Guide.pdf) [2] [3]:

Typy ramek:

Przykładowe ramki (zarejestrowane z AP): sample_wlan_frames.pcap

Mikrotik

Podłączenie do Mikrotika: urządzenia w domyślnej konfiguracji mają adres 192.168.88.1/24 na interfejsie eth0. Do zarządzania na zajęciach proponuję wykorzystać interfejs webowy (http://192.168.88.1/).

Dokumentacja: https://help.mikrotik.com/docs/display/ROS/Wireless+Interface

Przykładowe zrzuty ekranu

Tworzenie AP

Mostkowanie interfejsów

Ustawianie profilu bezpieczeństwa:

Wiele sieci naraz

Most bezprzewodowy

WDS

Ekstra

  • Padło pytanie: jak dwie sieci ad-hoc różniące się tylko BSSID (cell id) łączą się?
    W skrócie: urządzenia należące do sieci ad-hoc pamiętają od jak dawna sieć istnieje i wysyłają to w ramkach beacon; jeśli stacja widzi drugą, starszą sieć ad-hoc (na tym samym kanale i z tym samym ESSID), to przepina się do niej. [1]
    Dlaczego w labach tak się nie dzieje? Też jestem ciekaw, podlinkowany artykuł sugeruje problemy karty / sterowników.
  • Modulacja wykorzystywana w sieciach bezprzewodowych: ODFM (łączona z MIMO, MIMO-OFDM), w 808.11ax - OFDMA, dawniej we wlanach: DSSS, w bluetooth: FHSS. Warto spojrzeć na widma różnych sygnałów w paśmie sieci bezprzewodowej; porównując moc bluetooth/wlan, proszę pamiętać o klasach bluetooth.

1) Formalnie AP to urządzenie które zapewnia dostęp stacjom z tego samego BSS do systemu dystrybucji (DS). Medium systemu dystrybucji nie jest określone w standardzie 802.11
2) Uwaga: formalnie BSS to każda grupa mogących się bezpośrednio komunikować stacji, ale zwykle to określenie stosuje się do infrastructure BSS
3) Komenda show ip interfaces brief też wyświetla stan interfejsów, ale tylko dla interfejsów na których może działać protokół IP; show interfaces description pokaże wszystkie interfejsy
4) ustawienie guest-mode jest ignorowane jeśli karta rozgłasza wiele sieci
5) domyślnie szuka gniazda do komunikacji z wpa_supplicant w katalogu /var/run/wpa_supplicant