802.11s(wireless mesh)

From EIK wiki

802.11s on IEEE 802.11 täienduse visand mesh võrgule defineerimaks, kuidas traadita seadmed peaks omavahel ühenduma, et tekkiks WLAN mesh võrk, mida saaks kasutada staatilise topoloogia ning ad-hoc võrgu jaoks.

Kirjeldus

802.11s laiendab IEEE 802.11 MAC (Media Access Control) standardit, defineerides arhitektuuri ja protokolli, mis lubavad nii broadcasti/multicasti kui ka unicast andmeedastust.

Ka hostid 1 kuni 4 saavad ligipääsu internetti Wikipedia

Traadita mesh võrk (imelik oleks tegelt "traadita võrkvõrk" kirjutada), kasutatakse ka lühendit WMN, on nagu tavaline traadita võrk kuid kasutab mesh topoloogiat. Need võrgud on justkui erilised ad-hoc võrgud, kuna pole keskset ühendust haldavat seadet (nagu näiteks AP) ja seadmed ühenduvad üksteise külge otse ning ka liiklus saadetakse vajadusel läbi teiste sõlmede(seadmete). 802.11s kohta võib mõelda kui Wireless Distribution System (WDS) laiendust, kuid tegelikkuses on asi palju keerulisem.

Kasutus

802.11s kavandit toetavad juba mitmed tooted. Näiteks "One Laptop per Child" projekt kasutab seda OLPC XO sülearvutite ning OLPC XS kooliserveri võrgu jaoks. Ka alates 2.6.26 Linux kernelist on 802.11s kavand kasutusel osana mac80211 kihis.

Eelised

Hind

802.11 raadioseadmed on muutunud üpriski odavaks, kuid need on siiski võrgu kõige kallimad osad. Kuna meshis töötab iga sõlmpunkt (arvuti, seade) nii kliendi kui repiiterina, saab raadioseadmetelt kokku hoida (küll mitte ei saa neid kõiki ära kaotada).

Lihtsus

Kui on olemas seade, milles on mesh võrgu jaoks vajaminev tarkvara ning mis kasutab standartseid traadita protokolle, nagu 802.11b/g, siis on setup lihtne. Kuna teekonnad (routes) konfigureeritakse dünaamiliselt, siis põhimõtteliselt piisab vaid, kui see seade olemasolevasse võrku panna.

Stabiilsus

Mesh topoloogia ja ad-hoc ruutingu olemus lubab pidevalt muutuvates tingimustes suuremat veakindlust, näiteks ei mõjuta seda üksikute seadmete väljakukkumine.

FreeBSD WifiMesh

Alates FreeBSD 8.0 on toetatud 802.11s visand.

Kuidas seada üles mesh võrk

  • Vali võrgu jaoks kasutatav kanal. Näites on kasutusel kanal 36 (standardist a).
  • Määra meshi identifikaator (see on nagu SSID). Kasutatud on "freebsd-mesh". Tegelikult on meshid SSID'st erinev, mesh võrgu beacon freimis on SSID string alati tühi!

Igas meshi sõlmes tuleb sisestada käsud:

# ifconfig wlan0 create wlandev ath0 wlanmode mesh channel 36 meshid freebsd-mesh
# ifconfig wlan0 10.0.0.x/yy

kus x on hosti ip osa ning yy subnet maski bittide arv.

See peaks andma:

wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 00:0b:6b:2d:dc:d8
        inet 10.0.1.101 netmask 0xffffff00 broadcast 10.0.1.255
        media: IEEE 802.11 Wireless Ethernet autoselect mode 11a <mesh>
        status: running
        meshid mymesh channel 36 (5180 Mhz 11a) bssid 00:0b:6b:2d:dc:d8
        regdomain ETSI country PT ecm authmode OPEN privacy OFF txpower 17
        mcastrate 6 mgmtrate 6 scanvalid 60 wme burst bintval 1000 meshttl 31
        meshpeering meshforward meshmetric AIRTIME meshpath HWMP
        hwmprootmode DISABLED hwmpmaxhops 31

Kui kõik on tehtud nii nagu peab, saab võrgus olevaid naaber mesh sõlmesid (naabriga on otseühendus) näha käsuga ifconfig wlan0 list sta .

$ ifconfig wlan0 list sta
ADDR              CHAN LOCAL  PEER   STATE RATE RSSI IDLE  TXSEQ  RXSEQ
00:0b:6b:2d:dc:d8   36     0     0    IDLE   0M 18.5   15      1    192
00:0b:6b:2d:db:ac   36  9827  a5b3   ESTAB   6M 14.0    0      2  28752 WME MESHCONF
00:0b:6b:2d:dd:17   36  afdb  ab30   ESTAB   6M 19.0    0      5  25024 WME MESHCONF
00:0b:6b:87:1c:f0   36  1904  825c   ESTAB   6M  6.0    0     30    192 WME MESHCONF

Esimesel real on kirjas enda masina liides. STATE veerg on kõige tähtsam. Et mesh sõlm oleks kätesaadav, peab ta rajama ühenduse teise sõlmega. Kui STATE all on midagi muud peale ESTAB , siis pole ühendust loodud. RATE näitab aga vahetatud pakettide arvu.

Kui vahetada pakette teiste sõlmedega, täidetakse ka ruutingu tabel ära. Näites on kasutatud täht topoloogiat, st kõik paketid läbivad keskset sõlme:

$ ifconfig wlan0 list mesh
DEST              NEXT HOP          HOPS METRIC LIFETIME   MSEQ FLAGS
00:0b:6b:2d:dd:17 00:0b:6b:2d:dc:d8    1   2842     5000      0    V
00:0b:6b:2d:dc:d8 00:0b:6b:2d:dc:d8    0      0     5000      0    V
00:0b:6b:2d:db:ac 00:0b:6b:2d:dc:d8    1    347     5000      0    V
  • Mesh võrku on võimalik ka traadiga võrku sillata. bridge(4) man lehel on selle kohta mitmeid näiteid.

GNU/Linux ja Mobile Mesh

Mobile Mesh on avatud lähtekoodiga Linuxi põhine programmide ning protokollide kogum mis pakub mobiilse ad-hoc võrgu võimalust. Järgnevas näites on eeldatud, et kasutatavates seadmetes on vähemalt 2.2.x kerneliversioon.

  • Esiteks tuleb panna kaart ad-hoc reziimi ning SSID'ks panna näiteks mobilemesh .
  • Tiri alla ka Mobile Mesh tarball.

Kaustas, kus on tarball, sisesta root kasutaja alt:

tar -xvf <your_downloaded_mobilemesh>
 cd <your_mobilemesh_directory>

Järgi ./INSTALL juhiseid.

Kui kõik tehtud, tuleb seadistada mmrp (Mobile Mesh Routing Protocol). Muuta tuleb faili /etc/mobilemesh/mmrp.conf. Kindlasti tuleb üle kontrollida ka liidese nimi, tüüpiliselt nt wlan0, eth0 jne:

ifconfig wlan0 10.XXX.XXX.XXX netmask 255.255.255.255 
broadcast 10.255.255.255

kus IP aadress (10.XXX.XXX.XXX) on vabal valikul kuid ei tohi olla duplikaat (sama mõne naabriga).

 mmdiscover -i eth1 -z &
 mmrp \x{2013}z &

Sellega peaks asi jonksus olema. Kuid enne testimist tuleks eemaldada vaikimisi routing. See kindlustab, et Mobile Mesh domineerib routingu tabeli üle.

 route del -net w.x.y.z netmask 255......0

Nüüd tuleks seda kõike korrata kõikide kasutatavate hostide peal. Ja ongi kõik!

Lüüsi seadmine välisvõrku

Nüüd kui on seatud mõned mesh seadmed, on aeg panna üks nendest tööle kui lüüs internetti, et kõik võrgus olevad seadmed saaksid interneti ligipääsu. Oletades, et ühel masinal on teine liides, kas siis traadita või traadiga, millel on juurdepääs internetile: /etc/mobilemesh/mmrp.conf tuleb defineerida meshi väline võrk:

external <ip address> <netmask> <metric>

kus <ip address> ja <netmask> määravad ära aadressid, millele antud seadmel on ligipääs ning mis on väljaspool mesh võrku.

external 0.0.0.0 255.255.255.0 7

Märkuseks: sellega öeldakse, et on väline võrk 0.0.0.0, aga mitte lüüs.

Nüüd tuleb ka mmrp le restart teha. Ja jällegi on kõik valmis!

Kasutatud kirjandus

http://wiki.freebsd.org/WifiMesh
http://en.wikipedia.org/wiki/IEEE_802.11s
http://www.oreillynet.com/pub/a/wireless/2004/01/22/wirelessmesh.html
http://www.mitre.org/work/tech_transfer/mobilemesh/

Koostaja

Artikli koostas Madis Vellamäe, D21.