14 | | Het doel van dit project is voor de Soekris-boarden en bijbehorende hardware, start klare images / uitgangssituaties te maken/beschrijven zodat snel, makkelijk en uitgebreid geexperimenteerd kan worden juist door linux nieuwkomers en enthousiastelingen. Met de openwrt packetmanager is met bijna hetzelfde gemak als op een linux desktop een uitgebreide router/server/node te bouwen door (bijna ;-) iedereen! Met de grote hoeveelheid beschikbare hardware configuraties is de wens om een onafhankelijk test netwerk te bouwen zodat met OLSR / MESH etc geexperimenteerd kan worden. |
15 | | |
16 | | De opzet van deze pagina is 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 duidelijk is hoe je het apparaat kan inregelen webinterface/ssh een naam kan geven tijd inregelen en interfaces ingesteld kunnen worden bedraad en draadloos, binnen en buiten wereld WAN-LAN concept begrijpen, porten forwarden packages installeren gaan we kijken hoe we een zelfstandige WirelessLeiden node kunnen realiseren met captive portal en proxy. Vervolgens meerdere van deze los staande soekris Wireless Leiden routers onderling met elkaar kunnen laten communiceren zoals nodes op een WirelessLeiden netwerk kortom het concept routing. Dit uitbouwen zodat je de uplink/gateway verbindingen van het ene soekris board kan delen met een andere soekris board die zelf niet direct uplink aan zijn wan interface heeft. Nadat er inzicht in static routing is wil ik dynamisch routing met behulp van een routing protocol uitzoeken, dns implementatie en uiteindelijk ipv6. |
| 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 de openwrt-packetmanager is met bijna hetzelfde gemak als op een linux-desktop een uitgebreide router/server/node te bouwen door (bijna ;-) iedereen! Met de grote hoeveelheid beschikbare hardware-configuraties is de wens om een onafhankelijk testnetwerk te bouwen, zodat met OLSR / MESH etc geexperimenteerd kan worden. |
| 15 | |
| 16 | De opzet van deze pagina is 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 duidelijk is hoe je het apparaat kunt inregelen, webinterface/ssh een naam kunt geven, tijd inregelen en interfaces ingesteld kunnen worden (bedraad en draadloos), binnen en buiten wereld WAN-LAN concept begrijpen, porten forwarden, packages installeren, dan gaan we kijken hoe we een zelfstandige Wireless-Leiden-node kunnen realiseren met captive portal 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, dns-implementatie en uiteindelijk ipv6. |
21 | | Zowel kant en klare x86 images van openwrt uit de serie[http://downloads.openwrt.org/backfire/10.03.1/x86_generic/ backfire 10.03.1] als [http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/ attitude adjustment 12.09] functioneren op de soekris 4501, 4521, 4801 en 4826. De gewenste type images zijn "combined-squashfs" images en "combined-extN" images, hierin "combined" zit namelijk zowel de boot partitie met kernel en root partitie. Op sommige embedded systemen is het mogelijk direct de kernel en het rootfs te uploaden omdat er dan een bootloader in het systeem zelf zit die deze kan opstarten. De soekris boarden gedragen zich netals x86 systemen die gewoon via een MBR bootstrap op een ide disk een bootsector willen laden die weer naar de bootloader verwijst "grub" en dat laatste de kernel. Het eerste type "squashfs" zal grotendeels in het ram de wijzigingen doorvoeren en alleen enkele wijzigingen gecomprimeerd naar de disk terug schrijven via JFFS2, voordeel hiervan is dat deze versie de geheugenkaart spaard "wear level protection" en tevens een failsafe "factory reset" mogelijk maakt. Prima optie voor experimenteren! De tweede optie "extN" schrijft alles direct op de geheugenkaart/disk, werkt sneller en laat meer ram over, echter een simpele failsafe restore/reset is dan tevens niet mogelijk. |
22 | | |
23 | | Houd er overigens wel rekening mee dat de standaard openwrt images alleen booten op een Soekris board als deze de juiste comBIOS optie ConMute=Enabled aan heeft of direct een actieve serial console verbinding met een draaiende PC heeft tijdens het booten van openwrt op de soekris(sic), onafhankelijk zonder seriele PC connectie is de kans groot dat hij hangt tijdens de boot cyclus op de grub bootloader en wacht op bevestiging om door te gaan met booten... Dit terwijl je verwacht dat het board zonder inmenging en zelfstandig kan opstarten. Echter wanneer op de eerste partitie van de CF-kaart/image uit de bootloader config file "/boot/grub/menu.cfg" de optie "console" verwijdert word, boot de Soekris probleemloos onafhankelijk zonder PC met serial console en hoef je niet direct comBIOS in! Voor de CF gebasseerde systemen Soekris 4501/4521/4801 is die grub optie op de CF-kaart zo te veranderen en kun je in enkele minuten al aan de slag. Een andere definitieve oplossing voor systemen zonder CF kaart zoals de Soekris 4826 alsnog systemen met CF-kaart is via seriele console de comBIOS optie ConMute op Enabled zetten, echter voor de CF-kaart-loze systemen zoals de 4826 moet je zowieso via serial comBIOS in om deze met PXE boot op te starten en vanuit een live sessie een openwrt-image naar het onboard flashgeheugen te schrijven, maar dan heb je ook wat ;-) |
| 21 | Zowel kant en klare x86 images van openwrt uit de serie[http://downloads.openwrt.org/backfire/10.03.1/x86_generic/ backfire 10.03.1] als [http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/ attitude adjustment 12.09] functioneren op de soekris 4501, 4521, 4801 en 4826. De gewenste type images zijn "combined-squashfs" images en "combined-extN" images, hierin "combined" zit namelijk zowel de boot partitie met kernel en root partitie. Op sommige embedded systemen is het mogelijk direct de kernel en het rootfs te uploaden omdat er dan een bootloader in het systeem zelf zit die deze kan opstarten. De soekris boarden gedragen zich net als x86-systemen die gewoon via een MBR-bootstrap op een IDE-disk een bootsector willen laden die weer naar de bootloader verwijst "grub" en dat laatste de kernel. Het eerste type "squashfs" zal grotendeels in het RAM de wijzigingen doorvoeren en alleen enkele wijzigingen gecomprimeerd naar de disk terugschrijven via JFFS2. Het voordeel hiervan is, dat deze versie de geheugenkaart spaart ("wear level protection") en tevens een failsafe "factory reset" mogelijk maakt. Prima optie voor experimenteren! De tweede optie "extN" schrijft alles direct op de geheugenkaart/disk, werkt sneller en laat meer ram over, echter een simpele failsafe restore/reset is dan niet mogelijk. |
| 22 | |
| 23 | Houdt er overigens wel rekening mee dat de standaard openwrt-images alleen booten op een Soekris board als deze de juiste comBIOS optie ConMute=Enabled aan heeft of direct een actieve serial-console-verbinding met een draaiende PC heeft tijdens het booten van openwrt op de soekris (sic). Onafhankelijk, zonder seriele PC connectie, is de kans groot dat hij hangt tijdens de boot cyclus op de grub-bootloader en wacht op bevestiging om door te gaan met booten... Dit terwijl je verwacht dat het board zonder inmenging en zelfstandig kan opstarten. Echter wanneer op de eerste partitie van de CF-kaart/image uit de bootloader config file "/boot/grub/menu.cfg" de optie "console" verwijderd wordt, boot de Soekris probleemloos onafhankelijk, dus zonder PC met serial console en hoef je niet direct comBIOS in! Voor de CF gebaseerde systemen (Soekris 4501/4521/4801) is die grub optie op de CF-kaart zo te veranderen en kun je in enkele minuten al aan de slag. Een andere definitieve oplossing voor systemen zonder CF-kaart, zoals de Soekris 4826, alsook systemen met CF-kaart, is via de seriele console de comBIOS optie ConMute op Enabled zetten, echter voor de CF-kaartloze systemen zoals de 4826 moet je sowieso via serial de comBIOS in om deze met PXE boot op te starten en vanuit een live sessie een openwrt-image naar het onboard flashgeheugen te schrijven, maar dan heb je ook wat ;-) |
26 | | Omdat de Soekris machines niet over een VGA en toetsenbord aansluiting beschikken en dat voor de meeste mensen een normale manier is om een computer in te regelen is een serial console de enige manier om de bootcyclus met BIOS te beinvloeden op de soekris, vooral handig voor uitgebreid recoveren van systemen zonder CF-Kaart. Later kan via een netwerk console telnet/ssh wanneer openwrt zelf al actief is deze verder ingeregeld worden waardoor de seriele verbinding niet nodig is. De kant en klare x86 images van openwrt hebben standaard hun serial console werkend op 38400, zowel in de bootloader modus (grub) als de kernelbootlog en uiteindelijke systeem console. Dit i.t.t. tot de standaard Soekris comBIOS serial speed die vaak 19200 of zelfs 9600 is. Om tijdens de hele bootcyclus/bootstrap vanaf de soekris comBIOS, bootloader grub, kernel/boot tot aan de console van openwrt zelf een werkend beeld en keyboard aansturing te hebben is het van belang dat al deze fases op dezelfde serial settings staan, bij een pc wil je immers ook niet dat in bepaalde fases van het booten het beeld verdwijnt of de keyboard input niet werkt. In het geval van de soekris met verkeerde instellingen verdwijnt het beeld meestal niet maar word onleesbaar en is verdere keyboard interactie in een bepaalde fase uitgesloten. |
27 | | |
28 | | Om serial in te loggen op de soekris zullen we eerst "minicom" installeren en configureren op de client PC waarmee we de soekris inregelen. Dit zal waarschijnlijk meerdere keren moeten om iedere afwijkende fase van het booten tot het os te kunnen bereiken. Handig is om eenmalig de serial snelheid in de comBIOS van de soekris gelijk te zetten naar die van de bootloader/bootconsole en definitieve terminal. *Goedkope usb-serial dongles werken niet altijd lekker met hoge com snelheden! |
| 26 | Omdat de Soekris machines niet over een VGA en toetsenbord aansluiting beschikken en dat voor de meeste mensen een normale manier is om een computer in te regelen is een seriele console de enige manier om de bootcyclus met BIOS te beinvloeden op de soekris, vooral handig voor uitgebreid recoveren van systemen zonder CF-Kaart. Later kan via een netwerk console telnet/ssh wanneer openwrt zelf al actief is deze verder ingeregeld worden waardoor de seriele verbinding niet nodig is. De kant en klare x86 images van openwrt hebben standaard hun seriele console werkend op 38400, zowel in de bootloader modus (grub) als de kernelbootlog en uiteindelijke systeemconsole. Dit i.t.t. tot de standaard Soekris comBIOS seriele snelheid die vaak 19200 of zelfs 9600 baud is. Om tijdens de hele bootcyclus/bootstrap vanaf de soekris comBIOS, bootloader grub, kernel/boot tot aan de console van openwrt zelf een werkend beeld en toetsenbord aansturing te hebben is het van belang dat al deze fasen op dezelfde seriele settings staan, bij een pc wil je immers ook niet dat in bepaalde fasen van het opstarten het beeld verdwijnt of de toetsenbord invoer niet werkt. In het geval van de soekris met verkeerde instellingen verdwijnt het beeld meestal niet maar wordt onleesbaar en is verdere toetsenbord-interactie in een bepaalde fase uitgesloten. |
| 27 | |
| 28 | Om serieel in te loggen op de soekris zullen we eerst "minicom" installeren en configureren op de client-PC waarmee we de soekris inregelen. Dit zal waarschijnlijk meerdere keren moeten om iedere afwijkende fase van het booten tot het os te kunnen bereiken. Handig is om eenmalig de seriele snelheid in de comBIOS van de soekris gelijk te zetten naar die van de bootloader/bootconsole en definitieve terminal. |
| 29 | |
| 30 | '' Let op: Goedkope usb-serial dongles werken niet altijd lekker met hoge com snelheden!'' |
461 | | Het aansluiten/inloggen van een laptop/tablet/desktop op de wifi van je adsl modemrouter van de internet provider leverd bij de meeste direct een werkende internet verbinding op dit werkt als volgt. Via de client apparatuur zoals een tablet kies je een SSID/hotspotnaam en vult mogelijk een wachtwoord in, vervolgens zal de wirelessnetwerk kaart via een dhcp verzoek (meestal een lokaal private) ip adress opvragen aan de dhcp server op de modem router zelf. Deze antwoord en geeft naast een private lokaal ip adres(iets in de trend van 192.168.1.15 of 10.1.1.15 )direct in dit bericht het "gateway" en de "dns server" adres mee. Met alleen het ip adres kan je tablet alleen met apparaten binnen dat zelfde interne lokale ip netwerk (subnet) binnen de modemrouter communiceren. Door het bekent maken van de gateway aan de tablet kunnen adressen buiten de lokale ip range 192.168.1.x achterhaald worden die zich op het netwerk voor de modemrouter bevinden namelijk het internet. De dns server zorgt ervoor dat in de webbrowser alle adresnamen van websites achterhaald kunnen worden. De modemrouter bij de meeste mensen thuis vertaald dus continue interne private ip adressen naar zijn eigen publieke ip adres waarmee die met het grote netwerk van het internet kan communiceren. Dit heet NAT en moet gebeuren omdat de router aan de internet zijde van de adslmodemrouter bij de i.s.p. niet weet welke interne private ipadressen erachter je router zitten en ook al zou die het weten dan kan het goed mogelijk zijn dat de adslmodem router van je buren bijvoorbeeld ook dezelfde interne private ip als jij gebruikt. De router aan de isp zijde zou dan niet weten of die informatie voor 192.168.1.15 naar jouw tablet achter jouw router moet plaatsen of naar de desktop computer van de buren die toevallig hetzelfde interne ip adres gebruikt. Daarom dus NAT Network Address Translation. |
462 | | |
463 | | Een node van wireless leiden kan je op vergelijkbare wijze zien, maar toch zijn er dingen anders. Binnen wireless leiden kunnen gebruikers lokaal andere gebruikers op andere plaatsen direct bereiken integenstelling tot thuis met NAT waar je vanaf het internet eigenlijk alleen de modemrouter kan benaderen en niet direct de apparaten er achter. Je kan dus binnen een node met de apparaten op hetzelfde AP communiceren maar ook tussen nodes met apparaten die op een andere plaats weer als client zitten op het AP van die node. |
| 463 | Het aansluiten/inloggen van een laptop/tablet/desktop op de wifi van je adsl-modemrouter van de internetprovider levert bij de meeste direct een werkende internetverbinding op. Dit werkt als volgt. Via de client apparatuur, zoals een tablet, kies je een SSID/hotspotnaam en vul je mogelijk een wachtwoord in, vervolgens zal de wirelessnetwerkkaart via een dhcp-verzoek (meestal een lokaal private) ip-adress opvragen aan de dhcp-server op de modemrouter zelf. Deze antwoordt en geeft naast een private lokaal ip-adres (iets in de trant van 192.168.1.15 of 10.1.1.15 )direct in dit bericht het "gateway" en de "dns server" adres mee. Met alleen het ip adres kan je tablet alleen met apparaten binnen dat zelfde interne lokale ip netwerk (subnet) binnen de modemrouter communiceren. Door het bekent maken van de gateway aan de tablet kunnen adressen buiten de lokale ip range 192.168.1.x achterhaald worden die zich op het netwerk voor de modemrouter bevinden namelijk het internet. De dns server zorgt ervoor dat in de webbrowser alle adresnamen van websites achterhaald kunnen worden. De modemrouter bij de meeste mensen thuis vertaald dus continue interne private ip adressen naar zijn eigen publieke ip adres waarmee die met het grote netwerk van het internet kan communiceren. Dit heet NAT en moet gebeuren omdat de router aan de internetzijde van de adslmodemrouter bij de i.s.p. niet weet welke interne private ipadressen erachter je router zitten en ook al zou die het weten dan kan het goed mogelijk zijn dat de adslmodem router van je buren bijvoorbeeld ook dezelfde interne private ip als jij gebruikt. De router aan de isp zijde zou dan niet weten of die informatie voor 192.168.1.15 naar jouw tablet achter jouw router moet plaatsen of naar de desktop computer van de buren die toevallig hetzelfde interne ip adres gebruikt. Daarom dus NAT Network Address Translation. |
| 464 | |
| 465 | Een node van wireless leiden kan je op vergelijkbare wijze zien, maar toch zijn er dingen anders. Binnen wireless leiden kunnen gebruikers lokaal andere gebruikers op andere plaatsen direct bereiken integenstelling tot thuis met NAT waar je vanaf het internet eigenlijk alleen de modemrouter kunt benaderen en niet direct de apparaten er achter. Je kunt dus binnen een node met de apparaten op hetzelfde AP communiceren maar ook tussen nodes met apparaten die op een andere plaats weer als client zitten op het AP van die node. |