14 | | Het doel van dit project is voor de Soekris-boarden en bijbehorende hardware, startklare images / uitgangssituaties te maken/beschrijven zodat snel, makkelijk en uitgebreid geexperimenteerd kan worden juist door linux-nieuwkomers en enthousiastelingen met het bouwen van een W.L. achtig community netwerk (from scratch). |
15 | | |
16 | | Met de openwrt-packetmanager is met hetzelfde gemak als op een linux-desktop een uitgebreide router/server/node/netwerk te bouwen door (bijna ;-) iedereen! Met de grote hoeveelheid beschikbare hardware-configuraties is er een wens om een onafhankelijk testnetwerk te bouwen, zodat met OLSR / MESH / etc / routing protocolen geexperimenteerd kan worden. |
17 | | |
18 | | De keuze voor openwrt+soekris als uitgangssituatie voor deze howto is omdat dit stapsgewijs en toegankelijk, het binnen W.L. netwerk gebruikte cruciale basis component "freebsd+alixboard" te benaderen en beschikbaar maakt! Het W.L. netwerk bestaat in een oog aanschouw uit een zo'n 4 bouwstenen die je op enkele onderdelen na kant en klaar kan kopen/gratis zijn, maar nog wel op juiste wijze geconfigureerd moeten worden: |
| 14 | == doel == |
| 15 | Het doel van dit project is voor de Soekris-boarden en bijbehorende hardware, startklare images / uitgangssituaties te maken/beschrijven zodat snel, makkelijk en uitgebreid geexperimenteerd kan worden juist door (linux)nieuwkomers en enthousiastelingen met het bouwen van een W.L. achtig community netwerk (from scratch). |
| 16 | |
| 17 | Door de modulaire bouw van "openwrt" i.c.m. de packetmanager "opkg" is met hetzelfde gemak als op een linux-desktop een uitgebreide router/server/node/netwerk te bouwen door (bijna ;-) iedereen in een zeer korte tijd! Met de grote hoeveelheid beschikbare hardware-configuraties kan direct de flexibiliteit van openwrt ingezien en benut worden! |
| 18 | |
| 19 | === reden === |
| 20 | De keuze voor openwrt+soekris als uitgangssituatie voor deze howto is omdat dit stapsgewijs en toegankelijk, het binnen W.L. netwerk gebruikte cruciale basis component "freebsd+alixboard" te benaderen en beschikbaar maakt in een kort tijdbestek! Je kan in een uur al een werkende config en inzicht hebben, i.t.t het opzetten van een freebsd installatie met nodefactory en het compileren van benodigde tools (iets wat vanaf het wireless leiden netwerk zelf helaas onmogelijk is van scratch). |
| 21 | |
| 22 | Het W.L. netwerk bestaat in een oog aanschouw uit zo'n 4 bouwstenen die je op enkele onderdelen na kant en klaar kan kopen/gratis zijn, maar nog wel op juiste wijze moet configureren: |
25 | | De eerste bouwsteen lijkt bijna een grap, maar mag niet onderschat worden het is wellicht wel aardig om een keer uit de boekhouding het aantal ingekochte meters utp kabel voor draadloze verbindingen in beeld te brengen, dit tegenover de draadloze afstanden die overbrugt zijn! De tweede bouwsteen ubnt nano bridges, apparatuur dat Linux gebasseerd is, makkelijk is te configureren/resetten en zonder al te veel knowhow door velen opgepikt kan worden. De derde bouwesteen is deels gekoppeld aan de vierde, maar mag je qua functionaliteit nog steeds zien als een maakbaar/vervangbaar kastje. De vierde, tevens laatste bouwsteen is eigenlijk de kern van de netwerk functionaliteit namelijk routing en wie krijgt welk ip en hoe loopt de routing als node x uitvalt? |
26 | | |
27 | | De opzet van deze pagina is vooral de derde bouwsteen en mogelijk de vierdere bouwsteen inzichtelijk te maken. Dit door eerst hard- en software inregelen om openwrt uberhaupt ;-) operatief te krijgen op een soekris board en functionerend als een eenvoudige huis-tuin-en-keuken router/accesspoint. Wanneer inzichtelijk/duidelijk is hoe je het apparaat kunt benaderen en inregelen via netwerk/serial-console cli (telnet/ssh) of gui (webinterface), hostname, tijd inregelen en interfaces ingesteld kunnen worden (bedraad en draadloos), binnen (lokaal netwerk) en buiten (wijde wereld netwerk) LAN-WAN terminologie begrijpen, porten forwarden, packages installeren, dan gaan we als tweede fase kijken hoe we Wireless-Leiden node achtige functionaliteiten kunnen inbrengen zoals captiveportal en proxy. Vervolgens meerdere van deze losstaande soekris Wireless Leiden routers onderling met elkaar kunnen laten communiceren zoals nodes op een Wireless-Leiden-netwerk kortom het concept routing. Dit uitbouwen zodat je de uplink/gateway verbindingen van het ene soekrisboard kunt delen met een ander soekrisboard dat zelf niet een directe uplink aan zijn wan-interface heeft. Nadat er inzicht in static routing is wil ik dynamisch routing met behulp van een routing-protocol uitzoeken, vervolgens iets met dns-implementatie en uiteindelijk ipv6,beheer/monitoring? |
| 29 | De eerste bouwsteen lijkt bijna een grap, maar mag niet onderschat worden het is wellicht wel aardig om een keer uit de boekhouding het aantal ingekochte meters utp kabel voor draadloze verbindingen in beeld te brengen, dit tegenover de draadloze afstanden die overbrugt zijn! De tweede bouwsteen "ubnt nano bridges", apparatuur dat Linux gebasseerd is, makkelijk is te configureren/resetten en zonder al te veel knowhow door velen opgepikt kan worden. De derde bouwsteen is deels gekoppeld/verweven aan de vierde, maar mag je qua functionaliteit nog steeds zien als een maakbaar/vervangbaar/los kastje. De vierde, tevens laatste bouwsteen is eigenlijk de kern van de netwerk functionaliteit namelijk "routing en ipplan" wie krijgt welk ip en hoe loopt de routing als node x uitvalt? |
| 30 | |
| 31 | === aanpak === |
| 32 | De opzet van deze pagina is vooral de derde bouwsteen en mogelijk de vierdere bouwsteen inzichtelijk te maken. Dit door eerst hard- en software inregelen om openwrt uberhaupt ;-) operatief te krijgen op een soekris board en functionerend als een eenvoudige huis-tuin-en-keuken router/accesspoint. Wanneer inzichtelijk/duidelijk is hoe je het apparaat kunt benaderen en inregelen via netwerk/serial-console cli (telnet/ssh) of gui (webinterface), hostname, tijd inregelen en interfaces ingesteld kunnen worden (bedraad en draadloos), binnen (lokaal netwerk) en buiten (wijde wereld netwerk) LAN-WAN terminologie begrijpen, porten forwarden, packages installeren, dan gaan we als tweede fase kijken hoe we Wireless-Leiden node achtige functionaliteiten kunnen inbrengen zoals captiveportal en proxy. Vervolgens meerdere van deze losstaande soekris Wireless Leiden achtige routers onderling met elkaar kunnen laten communiceren zoals nodes op een Wireless-Leiden-netwerk dat met elkaar doen kortom het concept routing. Dit uitbouwen zodat je de proxy/uplink/gateway verbindingen van het ene soekrisboard kunt delen met een ander soekrisboard dat zelf niet een directe uplink aan zijn wan-interface heeft. Nadat er inzicht in static routing is wil ik dynamisch routing met behulp van een routing-protocol uitzoeken, vervolgens iets met dns-implementatie en uiteindelijk ipv6,beheer/monitoring? |
243 | | Standaard bevat een openwrt image een "lan" zone en zit in ons geval op de "eth0" interface, dit kan worden aangeduid als lokaal of intern netwerk en de zone werking zorgt voor de juiste firewall en routing instellingen. Op deze lan zone draait eveneens een DHCP server en deze deeld ip-addressen uit in de 192.168.1.X range, via deze interface heb je in eerste instantie(zonder serial-console) de eerste keer ingelogd. |
244 | | |
245 | | van een extern of "wan" netwerk als basis router te laten fungeren moet er naast een locale lan interface een wan interface opgegeven worden. Dit doe je door .... |
| 247 | Standaard bevat een openwrt image een "lan" zone en zit in ons geval op de "eth0" interface, dit kan worden aangeduid als lokaal of intern netwerk en de zone werking zorgt voor de juiste firewall en routing instellingen. Op deze "lan" zone draait eveneens een DHCP server en deze deeld ip-addressen uit in de 192.168.1.X range, via deze interface heb je in eerste instantie(zonder serial-console) de eerste keer ingelogd. In de configuratie bestanden "dhcp" en "network" in de map /etc/config kun je instellingen van deze interface terugvinden en bijwerken. De zone werking voor firewall en routing kun je in "firewall" terugvinden. Omdat we met tekstbestanden werken is het handig als deze fout of kwijt raken een backup te hebben, dat kan eenvoudig. Login op de router via ssh(als je dat nog niet was). |
| 248 | |
| 249 | backup /etc/config bestanden |
| 250 | {{{ |
| 251 | mkdir /etc/backup.config |
| 252 | cp -r /etc/config/* /etc/backup.config/ |
| 253 | }}} |
| 254 | |
| 255 | Kijk eens naar de instellingen van het "netwerk" configuratie bestand /etc/config/network en zoek naar herkenbare settings. |
| 256 | |
| 257 | {{{ |
| 258 | cat /etc/config/network #toont de inhoud van het configuratie tekst bestand in de shell |
| 259 | |
| 260 | # Copyright (C) 2006 OpenWrt.org |
| 261 | |
| 262 | config interface loopback |
| 263 | option ifname lo |
| 264 | option proto static |
| 265 | option ipaddr 127.0.0.1 |
| 266 | option netmask 255.0.0.0 |
| 267 | |
| 268 | config interface lan |
| 269 | option ifname eth0 |
| 270 | option type bridge |
| 271 | option proto static |
| 272 | option ipaddr 192.168.1.1 |
| 273 | option netmask 255.255.255.0 |
| 274 | }}} |
| 275 | |
| 276 | Als de functionaleit van een eenvoudige router met lokaal "lan" zone en een "wan" zone naar internet wil maken moeten we deze zelf aanmaken. Omdat we specifiek wan zone aangeven zijn hiervoor al de juiste firewall/routing oftewel beveilings voorkeuren voor aangemaakt en hoeven we nog niet direct verder te kijken naar het "firewall" config bestand. |
253 | | |
254 | | #connect the soekris via wan interface |
255 | | #directly to the local router with internet! |
| 290 | }}} |
| 291 | |
| 292 | Nu zou je een minimale werkende router met nat hebben als je de soekris aan je thuis netwerk hangt en deze via de wan interface met dhcp een ip kan verkrijgen van je eigen internet adsl/kabel modemrouter. Wanneer dat wel zo is, maar de openwrt router gebruikt dezelfde iprange/subnet 192.168.1.1/24 als je thuis router dan werkt de de openwrt nog niet naar behoren omdat die dan niet weet naar welk route die het verkeer moet doorzetten, dit kun je dat het makkelijkst in openwrt aanpassen! '' Let Op: Bedenk dan wel dat als je het ip adres van de router aanpast je de router ook via een andere adres moet benaderen voor ssh/webinterface! |
| 293 | |
| 294 | /etc/config/network |
| 295 | {{{ |
| 296 | config interface lan |
| 297 | option ifname eth0 |
| 298 | option type bridge |
| 299 | option proto static |
| 300 | option ipaddr 192.168.45.1 #Change from 192.168.1.1 to 10.3.2.1 or 172.16.6.1 or other private ranges! |
| 301 | option netmask 255.255.255.0 |
| 302 | |
| 303 | #to make new settings active restart network interfaces! |
| 304 | /etc/init.d/network restart |
270 | | Naast dat er legio aan firmware versies / combinaties zijn voor deze kaarten is van eerste belang om te weten dat de pcmcia versie 16bit is en daarom het pakket "pcmciautils" nodig heeft om op moderene distributies probleemloos herkent te worden. Als tweede is er een legio aan drivers voor deze kaarten beschikbaar, waaronder "prism", "hermes", "intersil", "orinoco", "wi" met tenslotte de "hostap-pci/cs" deze laatste is het meest stabiel en feature rijk. Verwarrend is wel de naam "hostap" aangezien dit naast driver ook de service is die op vele routers het opzetten van een AP + WPA aanstuurt. Als derde zullen de meeste van deze antieke kaartjes uit de kast van W.L. wel een firmware update nodig hebben. Minstens station firmware 1.5.6/1.6.3 om uberhaupt goed aangestuurd te worden door hostap en verder schijnt 1.7.4 en 1.8.2 het stabielst getest te zijn en nodig voor WPA2 CCMP modi. Tenslotte word de kaart in de meeste distributies in AP modus / master / infrastructure gestart en zal daarom niet met andere AP's kunnen connecten totdat je de modus van de kaart omzet naar "iwconfig wlan0 mode managed". |
271 | | |
272 | | De benodigde firmware is beschikbaar in twee vormen namelijk een AP/master en client/station firmware. Beide bestanden zijn vereist om tegelijk en betrouwbaar te kunnen flashen. De AP firmware is 1.1.1 de STA firmware is 1.8.2. details om te flashen via windows xp volgen nog, een oude linksys driver en het programma winflash 0.7 is voldoende. Inmiddels is gebleken dat deze kaartjes met de "hostap-pci/hostap-cs" niet alleen instaat zijn WPA TKIP in station/client mode maar zelfs WPA2 CCMP in AP/master/infrastructure modus. |
| 332 | Door de historie zijn er legio aan firmware versies / combinaties voor deze kaarten en andere vereisten maar is van eerste belang om te weten dat de pcmcia versie 16bit is en daarom het pakket "pcmciautils" nodig heeft om op moderene distributies(debian/ubuntu/openwrt) probleemloos herkent te worden. Als tweede is er een legio aan drivers voor deze kaarten beschikbaar, waaronder "prism", "hermes", "intersil", "orinoco", "wi" met tenslotte de "hostap-pci/cs" deze laatste is het meest stabiel en feature rijk en word standard in debian/ubuntu geladen wanneer pcmciautils de kaart benaderbaar gemaakt heeft. Verwarrend is wel de naam "hostap" aangezien dit naast driver ook de service is die op vele routers het opzetten van een AP (AccessPoint) + WPA (wireless protected access) modus opzet. Als derde zullen de meeste van deze antieke kaartjes uit de kast van W.L. wel een firmware update nodig hebben. Minstens station firmware 1.5.6/1.6.3 om uberhaupt goed aangestuurd te worden door hostap en verder schijnt 1.7.4 en 1.8.2 het stabielst getest te zijn en nodig voor WPA2 CCMP modi. Tenslotte word de kaart in de meeste distributies (debian/ubuntu) in AP modus / master / infrastructure gestart dat is handig in het geval van openwrt, aangezien wij een accesspoint met deze kaart willen maken. Echter als je als client/station met andere AP's wil kunnen connecten(als laptopgebruiker) dan moet je de modus van de kaart omzetten naar managed via het commando "sudo iwconfig wlan0 mode managed". |
279 | | |
280 | | Wanneer in Openwrt na installatie de wifi kaarten niet direct in de webinterface van luci herkent worden, moet je ze zelf even in het volgende configuratie bestand zetten en zorgen dat de macadressen van de kaarten 0/1 overeen komen met die van de config. Zie "ifconfig -a" voor de macadressen voor juiste kaart. |
281 | | |
282 | | *Tevens als het goed is zou het commando "wifi detect > /etc/config/wireless" (pas wanneer alle drivers pcmcia hostap etc) aanwezig zijn, een default wireless bestand kunnen aanmaken om de interfaces op te configureren. In backfire 10.03.1 met 2x prism op de cardbus en 1x mini-pci ath5k doet wifi detect het niet en genereerd een error voor het prism2 gedeelte "unknown operand", met 1x prism kaart geneerd die wel werkende code. Het probleem zit hem denk ik in dat de detectie de kaart generiek aanstuurt zonder mac address en met een verkeerde udev radio/wlan0/1/2 /vertaling aansturing. Probleem ligt he, in de pci bus, hij maakt gebruikt van een soort remapping/redirect en schrijft niet direct naar de kaartzelf maar naar een vertaal locatie... De ar71xx met pci bus heeft hier ook last van staat een patch op grieks forum... Met cat /proc/net/wireless en ifcondig -a is te zien welke interfaces je handmatig kan overtypen. Zo niet neem het volgende voorbeeld voor deze oude wifi kaarten en pas de mac adressen aan, let op dat ifconfig -a de macaddressen met dashes - laat zien maar he wireless config bestand. PS backfire gebruikt wlan0 als naam en atitude adjustment gebruikt radio0 |
| 339 | * hostapd |
| 340 | |
| 341 | Wanneer in Openwrt aan de eerste 3 voorwaarden is voldaan en na installatie van de hierboven genoemde kernel modules, kan het zijn dat de wifi kaarten niet direct in "/etc/config/wireless" te vinden zijn of in de webinterface van luci herkent worden. |
| 342 | |
| 343 | De reden hiervoor is dat het commando "wifi detect > /etc/config/wireless" dat normaliter een wireless configuratie template voor je aanmaakt in het geval van meerdere prism2 gebasseerde kaarten niet of half werkt. Dit komt weer omdat wanneer er meer dan een pcmcia/cardbus prism2 gebasseerd wifi kaartje gebruikt word, de pci bus remapping die voor de eerste pcmcia kaart gebruikt word, ook voor de tweede word gebruikt en hij daardoor de tweede niet kan vinden omdat die dan opnieuw de eerste kaart vind (jip&janneke taal) [http://www.openwrt.gr/viewtopic.php?f=14&t=406 patch griekse openwrt.org website](patch helaas enkel voor de ar71xx architectuur i.p.v. x86 in ons geval). In backfire 10.03.1 met 2x prism2 op de pcmcia/cardbus en 1x mini-pci ath5k doet het commando "wifi detect > /etc/config/wireless" het niet goed en genereerd de volgende error voor het prism2 gedeelte "prims2 unknown operand", echter met 1x prism kaart genereerd die wel werkende code en de atheros wifi kaart vind dan ook terug in het configuratie bestand. |
| 344 | |
| 345 | Je zal ze zelf de juiste interfaces in het configuratie bestand "/etc/config/wireless" kunnen/moeten zetten en zorgen dat de macadressen van de kaarten wlan/radio 0/1/2 overeen komen met die van de output van "ifconfig -a" of "cat /proc/net/wireless". Zie "ifconfig -a" voor de macadressen voor juiste kaart en merk op dat de kaart zowel genoemd word met een "wifi0" interface waarbij de macaddressen met dashes "-" beschreven worden en als "wlan0/radio0" interface waarbij de mac addressen met colon beschreven worden ":". |
| 346 | '' Let Op:backfire 10.03.1 gebruikt "wlan0" en attitude adjustment 12.09 gebruikt "radio0" voor de interface! '' |