LINUX I NJEGOVA PODRŠKA ZA WLAN

Dana siječanj 12th, 2012, objavljeno u: Wireless osnove od strane Komentari isključeni za LINUX I NJEGOVA PODRŠKA ZA WLAN

Linux je jedan od rijetkih sistema koji je doživeo veliki uspeh i popularnost kao alternativa skupim i nedovoljno stabilnim sistemima. Kod Linux-ovog jezgra (kernel) je dostupan (open source) i izdat pod  opštom javnom licencom koja se označava kao GPL (General Public License). Naziv “Linux” se odnosi samo na kernel (core) operativnog sistema. Kernel predstavlja softver koji upravlja pristupom korisničkih programa hardverskim i softverskim resursima. Sami programi koji se koriste na linux sistemima su proizvod GNU (GNU is Not Unix) i drugih nezavisnih open source projekata. Zajedno sa Linux kernelom ti programi čine GNU/Linux operativni sistem. Postojanje više različitih kolekcija Linux kernela i programskih alata (najčešće GNU) rezultovalo je nastankom velikog broja različitih operativnih sistema koji se nazivaju GNU/Linux Distribucije. Primeri Linux distribucija su: Red Hat Linux, SuSE, Mandrake, Debian GNU/Linux, Knoppix, Slackware itd… GNU/Linux je multitasking, višekorisnički 32-bitni operativni sistem, prvobitno zamišljen samo za Intel x86 arhitekturu. Iskoristivši besplatno dostupan izvorni kod, veliki broj programera odlučio je da prilagodi Linux i ostalim arhitekturama. Sada Linux radi na Motorolinim 68×00 procesorima, PowerPC i DEC Alpha procesorima i Sun-ovim Sparc procesorima. Razlikuju se stabilne i razvojne verzije Linux kernela. Aktuelna stabilna verzija kernela je 2.6. Nova izdanja stabilnih verzija pojavljuju se zbog ispravljenih grešaka (bug-ova) ali glavni algoritam i struktura podataka ostaju nepromenjeni.
Moderni operativni sistemi smanjuju direktnu interakciju sa hardverskim komponentama. Struktura Linux  kernela je monolitna tj. jezgro je integrisano u jedinstven program koji se izvršava u kernel modu. Međutim, mikrokernel arhitektura je osnov razvoja savremenih operativnih sistema, iako su takvi operativni sistemi generalno sporiji od monolitnih. S druge strane mikrokernel operativni sistemi zahtjevaju vrlo mali skup funkcija od samog kernela što im daje određene prednosti nad monolitnim.
Da bi mu se smanjila veličina, bez degradacije performansi, kernel Linuxa se sastoji od modula. Modul je objektni fajl čiji kod može biti priključen kernelu u vreme izvršavanja (runtime). Izborom potrebnih modula korisnik utiče na veličinu Linux kernela. Modul, za razliku od eksternih objekata mikrokernel operativnih sistema, ne radi kao poseban proces već se izvršava u kernel modu, kao bilo koja druga statički vezana funkcija kernela.
Kao posledica osobine otvorenosti GNU/Linux operativnih  sistema, drajveri i softverski alati koji pružaju podršku novim tehnologijama i raznom hardveru su  javno dostupni i brzo se razvijaju. Svakako da nije izostala ni podrška za WLAN.
Problem pri instaliranju WLAN interfejsa na GNU/Linux  predstavlja obezbeđivanje odgovarajućeg drajvera. Drajver je program koji omogućava komunikaciju između uređaja i kernela. Broj WLAN uređaja za koje postoji Linux drajver je jako velik. Neki od njih omogućavaju korišćenje WLAN kartice u AP modu (master mod). Ovaj mod pruža mogućnost postavljanja velikog broja parametara koji su neophodni da bi radio komunikacija bila moguća (frekvencija, mrežni ID, enkripcijski ključ, ESSID, …). U okviru open source projekta, koji je osnovao Jean Tourrilhes, razvijen je skup programskih alata (WT -Wireless Tools) koji omogućuju konfigurisanje pomenutih parametara WLAN interfejsa. WT omogućava korišćenje generičkog API-a (WE – Wireless Extensions) upotrebom tekstualnog interfejsa. WE je generički API koji omogućava korisniku da upravlja WLAN interfejsom i dio je istog projekta. Taj alat podržava sve tipove LAN mreža (pod uslovom da ga driver WLAN interfejsa podržava). Parametri se mogu menjati bez restartovanja drajvera odnosno linux kernela.
Većina GNU/Linux distribucija poseduje ugrađenu podršku za nabrojane alate kao deo standardnih paketa.

REALIZACIJA BEŽIČNE PRISTUPNE TAČKE

GNU/Linux operativni sistem prepoznaje WLAN karticu kao ostale I/O uređaje. Za pravljenje AP potrebno je odabrati WLAN karticu koja podržava rad u AP modu (master mod). Većina WLAN kartica koje omogućuju takav način rada imaju Intersil Prism chipsetu. U konkretnom primeru je korišćena PCI Zyxel Zyair G-300 kartica sa PRISM GT chipsetom (dostupna i na našem tržištu) koja podržava 802.11g i 802.11b standarde. Odgovarajući drajver je napisan i objavljen od strane Intersil-a pod GPL licencom, a sada se razvija kao open source projekat pod nazivom Prism54. Podrška za PRISM GT chipset uključena je i u sam kernel počev od verzije 2.6. Moguće je konfigurisati karticu korištenjem i ranijih verzija kernela (2.4 i 2.2) uz odgovarajuće modifikacije i kompajliranje.
Pored drajvera, za korišćenje kartice u AP modu potrebno je instalirati i odgovarajući osnovni set instrukcija (firmware) koji podržava master mod. Prilikom  inicijalizacije drajver učitava firmware u RAM memoriju kartice i na taj način “preuzima” punu kontrolu nad WLAN interfejsom. U konkrenom slučaju firmware nosi naziv “isl3890” i dostupan je na Internetu.
Korištena je Slackware 10.0 Linux distribuciju sa verzijom 2.4.26 kernela. Ova distribucija ima dve bitne prednosti: jednostavnost i stabilnost. Slackware se može instalirati sa unapred definisanim paketom alata za konfigurisanje kartice (WE i WT). Poslije startovanja WLAN interfejsa, kartica se pomoću WT alata (iwconfig) stavlja u master režim rada i definiše mu se ESSID (dva neophodna parametra) i sistem postaje AP. Nakon toga možemo podesiti dodatne servise (DHCP, IP bridge, firewall, NAT, …) i klijenti mogu pristupati AP-u i koristiti njegove usluge. Na slici je prikazana osnovna konfiguracija praktično realizovanog AP-a:

Rezultati

Za praktičnu realizaciju AP prikazanog u radu korišten je  Pentium I računar (200MHz Intel procesor, 64MB RAM, HD 2GB) i Zyxel Zyair G-300 WLAN kartica. Pored navedenog hardvera korišten je open source softver (operativni sistem GNU/Linux Slackware 10.0 sa 2.4.26 verzijom Linux kernela).
Kreirana pristupna tačka omogućava protok do 54Mbit/s (802.11g i 802.11b) iako su, zavisno od tipa klijentske kartice i  kvaliteta radio linka, moguće i brzine od 1, 2, 5.5, 11, 6, 9, 12, 18, 24, 36, 48 Mbit/s. U ovom slučaju nije korišćena nikakva metoda zaštite sistema sa stanovišta autentikacije i enkripcije. Testirano je ponašanje AP pri istovremenom pristupu 25 klijentske stanice. Rezultati su pokazali da broj stanica nije bitnije opteretio hardverske resurse sistema ali je izazvao pad brzine protoka podataka što je i bilo očekivano obzirom da sve stanice koriste iste radio resurse.
Navedeni AP se može dalje nadograđivati dodavanjem novih servisa koji su ugrađeni u GNU/Linux operativne sisteme. Dodavanjem DHCP (Dynamic Host Configuration Protocol) funkcije obezbjedili smo dinamičku dodelu IP adresa klijentskim stanicama što olakšava administraciju mreže. Pomoću dodatnog LAN interfejsa i uz aktiviranje odgovarajućih servisa koje obezbeđuje operativni sistem, AP se može konfigurisati tako da radi kao bežični ruter ili bridž (zavisno od toga šta se želi postići), što je bitno u slučaju da želimo povezati WLAN sa nekom drugom mrežom. Za dalji razvoj potrebno je obratiti pažnju na sigurnost i zaštitu sistema (autentikacija i enkripcija), koja u ovom primjeru nije implementirana.