• Nie Znaleziono Wyników

Konfiguracja i pomiary w sieci WLAN na przykładzie systemu operacyjnego Linux

N/A
N/A
Protected

Academic year: 2021

Share "Konfiguracja i pomiary w sieci WLAN na przykładzie systemu operacyjnego Linux"

Copied!
8
0
0

Pełen tekst

(1)

P OZNA N U N IV ER S IT Y O F T EC HN O LO G Y A C A DE M IC J O UR N A LS

No 54 Electrical Engineering 2007

Adam Pieprzycki*

Konfiguracja i pomiary w sieci WLAN na przykładzie

systemu operacyjnego Linux

Celem artykułu jest analiza możliwości wykorzystania systemu operacyjnego GNU/Linux do uzyskiwania informacji o parametrach fizycznych łącza bezprzewodowego w sieciach WLAN (802.11).

Zagadnienia tutaj omawiane dotyczą programistycznego sposób uzyskiwania informacji o wybranych parametrach fizycznych połączenia. Przedstawione zostały także podstawowe (inżynierskie) informacje dotyczące planowania sieci 802.11 – ich zasięgu, a także wiadomości dotyczące konfiguracji sieci. Uwaga została skupiona na sieciach 802.11b, ale część informacji jest wspólna dla innych standardów [1]. Wszystkie zaprezentowane przykłady zostały uruchomiane w dystrybucji Knoppix, chociaż poruszana tematyka dotyczy ogólnie systemów Linux-owych.

Słowa kluczowe: wlan,warstwa fizyczna, uzyskiwanie parametrów łącza.

1. Wprowadzenie

Motywacją przeprowadzania pomiarów w sieciach bezprzewodowych jest określenie zasięgu i jakość dostępu w sieciach WLAN. Jest to istotne podczas zestawiania połączeń do sieci (np. dla nowych użytkowników), określania możliwośći używania sieci na określonym obszarze lub innych rozważań propagacyjnych.

Podłączenie do komputera PC karty bezprzewodowej (np. PCMCIA) wymaga zainstalowania odpowiedniego sterownika Linux-owego. Poleceniem modconf można uruchomić konfigurację modułów i wybrać te odpowiedzialne za sprzęt bezprzewodowy. Jeżeli mamy karę, która wymaga innego sterownika należy go zainstalować. Istnieje kilka popularnych sterowników Linux-owych (np. wlan-ng, HostAP, Madwifi, Orinoco) działających z określonym typem chipsetu, a najmniej problemów z konfiguracją pod Linuxem sprawiają karty oparte na chipsetach: Atheros, Hermes czy Prism 2/2.5.

Uzyskiwanie informacji i konfiguracja interfejsu bezprzewodowego odbywa się programem iwconfig pochodzącym z pakietu wireless-tools [2], który został napisany przez Jeana Tourrilhes'a, a najnowsza to wersja numer 29 i beta 30. Narzędzia wchodzące w skład pakietu są standardowym elementem każdego systemu operacyjnego GNU/Linux.

2007

Poznańskie Warsztaty Telekomunikacyjne Poznań 6 - 7 grudnia 2007 POZNAN UNIVERSITY OF TECHNOLOGY ACADEMIC JOURNALS

(2)

Samo używanie polecenia iwconfig może sprowadzać się do ustawień interfejsu bezprzewodowego, jak i uzyskiwania informacji o parametrach połaczenia.

Rysunek 1 Działanie iwconfig – interfejs eth1

Oprócz iwconfig w pakiecie wireless-tools znajdują się programy: iwevent – wyświetlanie komunikatów generowanych przez sterownik (też do zmiany ustawień karty), iwgetid – służące do pobierania adresów i nazw ESSID, iwlist – które umożliwia pobranie dokładnych informacji z wybranego interfejsu( także skanowanie sieci), iwpriv – za jego pomocą można konfigurować prywatne parametry interfejsu i opcjonalnych (prywatnych) parametrów interfejsu, iwspy - narzędzie służące do wyszukiwania szczegółów dotyczących sieci.

Innym narzędziem służącym do znajdowania sieci bezprzewodowych jest AP Radar. Program umożliwia także łączenie się z wykrytymi punktami dostępowymi (ang. Access Point).

2. KONFIGURACJA SIECI BEZPRZEWODOWEJ

Najczęściej, konfiguracja karty bezprzewodowej sprowadza się do wydania odpowidnich poleceń:

iwlist wlan0 scanning - dostępność sieci bezprzewodowej

ifconfig wlan0 up //gdy tryb Ad hoc to ifconfig wlan0 192.168.1.1 up iwconfig wlan0 essid nazwa_AP _identyfikator SSID

iwconfig wlan0 key klucz_szesnastkowo

iwconfig wlan0 mode Ad-Hoc //tryb Ad-Hoc, Managed, Master iwpriv wlan0 authmode 2 (1 - open, 2 - shared)

ifconfig wlan0 adres_ip netmask maska_podsieci route add default gateway adres_bramy

dhclient wlan0 - gdy używany jest serwer DHCP lub wpis serwera dhcp w pliku /etc/resolv.conf

(3)

W zależności o typu sterownika (i chipsetu) nazwa interfejsu może być inna np.: eth0 (1), ath0(1), wlan0(1) i inne.

W zależności od typu karty i użytego sterownika, to samo polecenie (iwconfig) może generować różne informacje.

3. PARAMETRY ŁĄCZA FIZYCZNEGO WLAN

Parametry i bilans łącza bezprzewodowego WLAN są analogiczne innych sposobów komunikacji bezprzewodowej. Z inżynierskiego punktu widzenia, należy tak dobrać parametry urządzeń (zazwyczaj odbiornika i anten), aby przez większość czasu uzyskać wymagany poziom sygnału. Poziom sygnału na wejściu odbiornika z uwzględnieniem marginesu na zaniki [6] (RSL_FM w dBm – ang. Receive Signal Level – Fade Margin) możemy obliczyć jako:

RSL_FM [dBm]= poziom sygnał na zaciskach nadajnika [dBm] - starty sygnału w przewodzie i w złączach [dB] + zysk anteny nadawczej [dBi] - starty sygnału (w wolnej przestrzeni)[dB] + zysk anteny odbiorczej [dBi] - starty sygnału w przewodzie i w złączach odbiornika [dB] – margines na zaniki [dB] (1)

Wartości podanych parametrów zależą od parametrów technicznych sprzętu, odległości pomiędzy nadajnikiem i odbiornikiem (straty sygnału zgodnie z przyjętym modelem propagacyjnym) oraz z założonymi czy rzeczywistymi zanikami sygnału. Szacunkowo można przyjąć, że w paśmie 2.4 GHz na dystansie 1 km tłumienie wynosi 100.4 dB. Warto też pamiętać, że dwukrotny przyrost odległości pomiędzy nadajnikiem a odbiornikiem powoduje wzrost tłumienia sygnału o 6 dB.

Ważnym zagadnieniem, którego nie będziemy tu poruszać, jest wysokość umiejscowienia anten (strefa Fresnela, krzywizna ziemi, przeszkody itp.).

Informacje o parametrach połączenia można także bezpośrednio uzyskać ze standardowego interfejsu jądra systemu czyli edytując plik /proc/net/wireless [3] (Rys. 3). Informacje te są wykorzystywane przez standardowe narzędzia bezprzewodowe oraz inne dodatkowe programy monitorujące wydajność połączenia np. Wavemon.

(4)

Jakość łącza – Quality podawana jest jako jakość połączenia – link, szumów – noise, oraz level – jako suma jakości łącza i szumów. Należy zauważyć że wartości te w różny sposób są obliczane. Wartość jakości połączenia (ang. Quality link) z /proc/net/wireless jest analogiczna z mocą sygnału (ang. Signal Strenght) linux-owego programu

KwiFiMenager (Rys. 2).

Po stronie routera (Linksys także posiada system operacyjny Linux) możemy dowiadywać się co do stanu połączenia (Rys.4) wykorzystując wywołania dostępne w pakiecie wl.

Rysunek 3 Uzyskiwanie informacji z routera Linksys

4. OBLICZANIE ZASIĘGU ŁĄCZA BEZPRZEWODOWEGO

Sprzęt: Punkt dostępowy (AP) Linksys wrt54gl v1.1,który posiada chipset radiowy: Broadcom BCM2050KML, używa procesora Broadcom BCM5352EKPB 200 MHz [9]. AP posiada dwie odkręcane anteny ze złączem R-TNC (żeńskim) o zysku 2dBi oraz moc nadajnika na poziomie18 dBm (64mW). Używając sprzętu z alternatywnym firmwearem (np. HyperWRT) istnieje możliwość podwyższenia mocy AP ponad dopuszczalny (100 mW) poziom aż do 251 mW. Po drugiej stronie testowano laptop z kartą bezprzewodową „PCMCIA Cabletron Systems” na chipsecie Hermes I, która posiada złącze MC (mccard) pozwalające na dodanie anteny zewnętrznej – jednakże takowej nie zastosowano. Czułość karty PCMCIA dla poszczególnych przepływności wynos kolejno dla 1,2,5.5i 11 Mbit/s: -93, -90, -87 i –84 dBm.

Dla połączenia z przepływnością 11 Mbit/s zgodnie ze wzorem (1) mamy:

RSL_FM [dBm]= 18 [dBm] (moc nadawnia) + 2[dBi] (zysk anteny)- starty sygnału (w wolnej przestrzeni)[dB] + zysk anteny odbiorczej [dBi] - starty sygnału w przewodzie i w złączach odbiornika [dB] – 10 [dB] (szumy)>-84 dBm (2)

W wolnej przestrzeni dla częstotliwość 2.4 GHz, można przyjąć że tłumienie wynosi: L[dB] = 100.4 + 20log10 (d), gdzie d – odległość w [km] (3)

Z prostych obliczeń wynika, że w zastosowanym sprzęcie, można zestawić połączenie na odległość 478.6 [m].

(5)

W drugą stronę mamy następujące parametry: przy mocy nadawania 15 dBm (32 mW) [10] i czułość [7] AP (Linksys) dla 802.11b i transmisji: 1Mbit/s – 91 dBm, dla 11 Mbit/s wynosi -80dBm [15], a dla transmisji 54 Mbit/s (802.11g/OFDM) wynosi –65 dBm. Analogiczne rozważania bazujące na prostym modelu propagacyjnym doprowadzają nas do następujących odległości między AP a kartą bezprzewodową: przepływności 1 Mbit/s 759.6 [m], a przy 11 Mbit/s 213.8 [m].

Różnice w możliwych „osiągach” wynikają z maksymalnej mocy nadawania i progu czułości odbiornika po jednej i drugiej stronie toru komunikacyjnego. W użytym sprzęcie, to właśnie mniejsze wartości odległości będą tymi parametrami konstrukcyjnymi.

Należy zauważyć, że czułość urządzenia zależy od oferowanej przepływności (parametr podawany przez producenta danego urządzenia). Gdybyśmy chcieli zestawić połączenie na większą odległość np. 2 km musielibyśmy użyć anten [7] o większym zysku energetycznym. Parametry anten (np. zysk energetyczny) wynika z typu używanych anten i bezpośrednio z bilansu mocy w danym połączeniu.

W przypadku używanej karty PCMCIA, antenę można podłączyć do gniazda MC. Od strony AP też nie jest to trudna sprawa, ponieważ urządzenie wyposażone jest w dwa złącza R-TNC. Dodatkową antenę można przykręcić w miejsce dowolnej odkręconej z AP.

5. UZYSKIWANIE PARAMETRÓW ŁĄCZA FIZYCZNEGO

Bazując na znajomości pliku źródłowego iwconfig.c można napisać przykładowy program, który w pętli nieskończonej co 1 s będzie wypisywać interesujące – z punktu widzenia analizy warstwy fizycznej parametry połączenia. Prosty program (wifi.c) ma za zadanie bieżące informowanie o parametrach dotyczących: jakości łącza, mocy sygnału, mocy szumów, przepływności i częstotliwości. W programie tym wykorzystywane są funkcje zadeklarowane w iwlib.h.

Kod programu: wifi.c

#include "iwlib.h" /* Naglowek */ #include <unistd.h>

// inne elementy

int main(int argc, char ** argv) {

int skfd; /* niskopoziomowy deskryptor giazda*/ int goterr = 0;

/* utworzenie połczenia do jądra */ if((skfd = iw_sockets_open()) < 0) {

perror("socket"); exit(-1); }

(6)

char buffer[128]; char buff[1024];

iw_enum_handler fn= &print_info; struct ifconf ifc;

struct ifreq *ifr; int i; char *args[]={NULL}; int count=0; ifc.ifc_len=sizeof(buff); ifc.ifc_buf=buff; while(1) { if(ioctl(skfd,SIOCGIFCONF,&ifc)<0) { fprintf(stderr,"siocgifconf %s\n",strerror(errno)); return 1; } ifr=ifc.ifc_req;

for(i=ifc.ifc_len / sizeof(struct ifreq);--i >=0;ifr++) {

char *ifname=ifr->ifr_name; struct wireless_info info;

struct wireless_info *infop;

int rc; rc = get_info(skfd, ifname,&info); if(rc==0) { infop=&info; if((infop)->has_stats) {

printf("%d/%d %d %d ", >stats.qual)->qual, >range)->max_qual.qual, (&infop->stats.qual)->level - 0x100, (&infop->stats.qual)->noise - 0x100); } if(infop->b.has_freq) { double freq=infop->b.freq; int channel=-1;

if(infop->has_range && (freq< KILO)) { channel=iw_channel_to_freq((int)freq,&freq,&infop->range); } char vbuf[10]; iw_print_freq_value(vbuf,sizeof(vbuf),freq); printf(" %s ",vbuf); } if(infop->has_bitrate) {

iw_print_bitrate(buffer, sizeof(buffer), infop->bitrate.value); printf(" bitrate%c%s \n",(infop->bitrate.fixed ? '=' : ':'), buffer); } } } sleep(1); } /* Zamkniecie gniazda */

(7)

iw_sockets_close(skfd); return(goterr); }

Do skompilowania kodu można użyć dołączonego (lub zmodyfikowanego) Makefile. Jeżeli nie chcemy używać programu make, możemy skompilować program w poniższy (przykładowy) sposób:

gcc –c wifi.c

gcc –shared –o libiw.so.28 –Wl, -soname,libiw.so.28 –lm –lc iwlib.so gcc –o wlan wifi.o libiw.so.28 –lm

Rysunek 4 Działanie zamieszczonego programu (wifi.c) oraz KwiFiMenager W przedstawionym programie wykorzystano funkcje iw_sockets_open() – otwarcie gniazda oraz ioctl() – funkcja [8] o kontrolowania zachowania różnych urządzeń, może być używana do zmieniania atrybutów gniazd, pobierania listy interfejsów itd. W przykładzie uruchomiona jest z opcją: SIOCGIFCONF – która pobiera listę interfejsów sieciowych obecnych w systemie.

W systemie Linux dużą popularności zyskał program Kismet [5], który oferuje duże możliwości jeśli chodzi o wykrywanie sieci wlan. Nie bez znaczenia jest licencja GPL na której Kismet jest wydany – mamy wgląd w cały kod programu. Program ten umożliwia uzyskiwanie wielu informacji o wykrytych sieciach. Umożliwia on także podsłuchiwanie ruchu w sieci standardów: 802.11b, 802.11a oraz 802.11g. Oprócz możliwości analizy sieci w warstwie 2 (łącza danych), program też podaje wskaźnik poziomu mocy odbieranego sygnału radiowego RSSI. – ang. Received Signal Strength Indication. Wskaźnik ten (RSSI) jest odniesiony do miejsca pomiaru więc jest także : Relative Signal Strength Indicator.

(8)

Wartości RSSI zależą od używanego sprzętu, a zakres wartości jest mocno zróżnicowany. Czasami producenci sprzętu podają swój sposób przeliczania RSSI na dBm [4], lub podają swój sposób obliczania siły sygnału np. (4) – gdzie noise jest to zmierzony szum.

mocsygnalu = ((rssi[x] - noise[x])⋅1.5) + ((rssi[x] +90)⋅1.5) (4)

Rysunek 5 Jednoczesna działanie przedstawionego programu (wifi.c) oraz Kismet 6.

Podsumowanie

System operacyjny Linux dobrze nadaje się do przeprowadzania podstawowych pomiarów w sieci WLAN. W tym celu możemy używać dostępne programy, modyfikować już istniejące lub pisać swoje. Tak jak w innych systemach operacyjnych, w Linux-ie możemy skutecznie przeprowadzać pomiary parametrów (fizycznych) zestawionych połączeń bezprzewodowych. Przy braku bardziej profesjonalnych narzędzi, metody i takie narzędzia pomiarowe mogą być wstępem (przyczynkiem) do bardziej dokładnych rozważań propagacyjnych dla częstotliwości dla których pracują omawiane sieci WLAN (2.4 GHz).

REFERENCES

[1] A. Pieprzycki „Przegląd aktualnych standardów sieci WLAN” Biuletyn SEP 26 czerwiec 2006 [2] http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html [3] http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.Extensions. html [4] http://www.wildpackets.com/elements/whitepapers/Converting_Signal_Strength.pdf [5] http://www.kismetwireless.net/

[6] P. Roshan, J. Leary “Bezprzewodowe sieci LAN 802.11 Podstawy” Mikom 2004 [7] Anonim „Internet Agresja i Ochrona” Wydanie II Robomatic 2003

[8] http://www.linuxpl.org/LPG/node91.html

[9] http://www.openlinksys.info/readarticle.php?article_id=22 [10] http://www.voxtechnologies.com/enterasys_files/pdf/4062_01.pdf [11] http://caia.swin.edu.au/reports/030403A/CAIA-TR-030403A.pdf

Cytaty

Powiązane dokumenty

GNU Lesser GPL, GNU Library GPL, Modified BSD License, Perl Artistic License, Apache License, LaTeX Project Public License, Python Software Foundation License, PHP License,

Magdalena Kuich (Uniwersystet Warszawski) LINUX OS Warszawa, 18 października 2020 1 / 17... Organizacja zajęć -

Widok ekranu rejestracji przebiegu poziomu indukcji pola magnetycznego w funkcji częstotliwości spalinowego zespołu trakcyjnego: punkt pomiarowy P1, postój, wysokość 0,9 m,

Na stacji roboczej Linux, używając programu ftp lub Midnight Commander połącz się z serwerem.. Wykonaj

Na serwerze zainstaluj oprogramowanie apache2. Przeprowadź test działania serwera. Wykonaj zrzut ekranu przedstawiający status serwera WWW oraz zrzut dowodzący działania serwera.

Wykonaj zrzut ekranu przedstawiający konfigurację sieci stacji roboczej i dołącz go do karty pracy. Dokumentacja wykonania zadania –

Prywatny adres źródłowy komputera z sieci lokalnej w wysyłanych danych zamieniany jest na routerze na adres publiczny i dopiero wtedy przekazywany do Internetu. Odpowiedzi przychodzą

Skrypt ładowania systemu specyfikuje jaki program ma być użyty do ładowania systemu i jakie jego opcje mają być aktywne.. [virtual=x86,bios