Changes between Version 44 and Version 45 of WikiStart


Ignore:
Timestamp:
Mar 7, 2014, 8:48:12 PM (11 years ago)
Author:
walter
Comment:

edit 10.03.1 tested working, zal nog met wpad en 12.09 testen

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v44 v45  
    2525De 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?
    2626
    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 (lokaa) en buiten wijde buitende wereld LAN-WAN terminologie begrijpen, porten forwarden, packages installeren, dan gaan we als tweede fase kijken hoe we Wireless-Leiden node achtige unctionaliteiten 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?
     27De 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?
    2828
    2929De stijl opzet is voornamelijk hele lange "tekst geschreven" blokken wat je zeker niet direct of stipt als sturend of stappenplan moet opvatten, maar enkel als begeleiding in terminologie en mindset iets waardoor je gerust heen kan skimmen opzoek naar de essentie (als die er is). Daadwerkende instruerende stappen zijn beknopt in "codestijl geschreven" blokken opgemaakt het enige waar je je daar van bewust moet zijn (of die bewustwording moet nog even ontstaan) is dat sommige commando's voer je uit in de shell van "client pc/laptop" en sommige in die van de openwrt shell die draait op "de soekris zelf"! Als niet ingewijd persoon kan dit zeer verwarrend overkomen, ik zal trachten de twee shells iedere keer aan tegeven waar je nou eigenlijk bezig bent.
     
    121121De openwrt images gebruiken "grub" als bootloader (wel de oude legacy versie), je zal grub weinig of wellicht nooit zien of hoeven aan te passen, mits OpenWRT tenminste kan booten (opstarten). Zo niet dan is het relatief makkelijk om in een enkel configuratie bestand "menu.lst" voor grub of het OS(openwrt of memtest86 payload) specifieke opties/parameters te wijzigen of toe tevoegen zodat deze wel kan booten.
    122122
    123 De OpenWRT x86 generieke images bestaan uit twee partities, de eerste is een bootpartitie met ext2 of ext4 filesystem dat direct op je client pc/laptop via de filebrowser is te benaderen wanneer je deze naar de CF-card heb geschreven. Vanaf daar kan je het grub configuratie bestand "/boot/grub/menu.lst" bijwerken (wellicht met sudo rechten).
    124 
    125 Het volgende probleem kan zich helaas voor doen met soekris bootende van de x86 generieke openwrt images van de openwrt website! Wanneer de soekris boot(opstart) onafhankelijk zonder seriele PC connectie (zoals je hem in het veld tegenkomt) en de comBIOS optie ConMute=Enabled ontbreekt, is de kans groot dat de soekris hangt tijdens de boot cyclus voor/op het grub-bootloader keuze menu. Hij wacht daar op een bevestiging om door te gaan met normal booten of recovery booten...
    126 
    127 Gelukkig is voor een soekrisboard dat niet aan de comBIOS voorwaarde kan/wil voldoen toch een oplossing om een generieke x86 image van de openwrt website te kunnen gebruiken! 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 zonder PC met serial-console! Voor de CF gebaseerde systemen (Soekris 4501/4521/4801) is deze grub optie op de CF-kaart zo te veranderen en kun je in enkele minuten al aan de slag volgende commando's. '' CF-kaartloze systemen zoals de 4826 met OnboardFlash(Solderd) kun je niet door eventjes de grub bootloader opties te tweaken direct voorzien van openwrt, maar zal via serial-console in comBIOS een PXE netwerk boot moeten doen. Zie PXE/tftp ''
     123De OpenWRT x86 generieke images bestaan uit twee partities, de eerste is een bootpartitie met ext2 of ext4 filesystem dat direct op je client pc/laptop via de filebrowser is te benaderen wanneer je deze naar de CF-card heb geschreven en de kaart na het schrijven herplaatst. Vanaf de client machine kan je het grub configuratie bestand "/boot/grub/menu.lst" bijwerken (wellicht met sudo rechten). Natuurlijk is het grub configuratie bestand ook vanuit openwrt zelf draaiende op de soekris te veranderen wanneer, wel dien je hiervoor de boot partitie te mounten!
     124
     125Het volgende probleem kan zich helaas voor doen met een soekris bootende van de x86 generieke openwrt images van de openwrt website! Wanneer de soekris boot(opstart) onafhankelijk zonder seriele PC connectie (zoals je hem in het veld tegenkomt) en de comBIOS optie ConMute=Enabled ontbreekt, is de kans groot dat de soekris hangt tijdens de boot cyclus voor/op het grub-bootloader keuze menu. Hij wacht daar op een bevestiging om door te gaan met normal booten of recovery booten... Kortom je denkt dat je openwrt image die je net op de CF-card heb geschreven niet goed is en het niet doet op de soekris.
     126
     127Gelukkig is voor een soekrisboard dat niet aan de comBIOS voorwaarde kan/wil voldoen toch een oplossing om een generieke x86 image van de openwrt website te kunnen gebruiken! 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 zonder PC met serial-console! Voor de CF gebaseerde systemen (Soekris 4501/4521/4801) is deze grub optie op de CF-kaart zo te veranderen en kun je in enkele minuten al aan de slag met hieronder volgende commando's. '' CF-kaartloze systemen zoals de 4826 met OnboardFlash(Solderd) kun je niet door eventjes de grub bootloader opties te tweaken direct voorzien van openwrt, maar zal via serial-console in comBIOS een PXE netwerk boot moeten doen. Zie PXE/tftp ''
    128128
    129129{{{
    130130#download openwrt image to your client pc/laptop which has a CF card-reader
    131 wget http://downloads.openwrt.org/attitude_adjustment/12.09/x86/generic/openwrt-x86-generic-combined-squashfs.img
    132 
    133 #warning dd will overwrite anything and can destroy data in a inrecoverable fashion on your own PC!!!
     131wget http://downloads.openwrt.org/backfire/10.03.1/x86_generic/openwrt-x86-generic-combined-squashfs.img
     132
     133#warning dd will overwrite anything and can destroy data in a inrecoverable fashion on your own client PC!!!
    134134#write bootable image directly to CF-CARD
    135135sudo# dd if=openwrt-x86-generic-combined-squashfs.img of=/dev/sdX
     
    153153}}}
    154154
    155 ==== Memtest86 ====
    156 Aangezien de oude soekris boarden een dubieus karakter hebben is het uitsluiten van onbetrouwbaar vastgesoldeerd ram geheugen het minste wat je kan doen dus memtest86+ draaien. Opmerking de soekris 4501 en 4526 (de oudere 486based boarden) werken niet met de laatste versie van memtest86+, zodra memtest86+ start herstart deze de hele computer. Versies die wel werken zijn 2.00-4.10 en kun je direct in binary laden van [http://www.memtest.org/download/ memtest86+ old binaries].
     155==== kernel parameters ====
     156Hier een voorbeeld van een toegevoegde kernel parameter "irqpoll" aan de bestaande grub configuratie van de gebruikte openwrt 10.03.1 backfire image. Dit verhelpt het freezen van het systeem wanneer een pcmcia/cardbus device dat veroorzaakt. Dit type freezes is makkelijk te herkennen aangezien het systeem weer verder functioneerd als de kaart er word uitgetrokken, echter kun je dit niet altijd doen in het veld en is de kernel parameter "irqpoll" de oplossing. De hierboven beschreven commando's zouden tot het volgende "menu.lst" voorbeeld hebben geleid.
     157
     158/boot/grub/menu.lst
     159{{{
     160serial --unit=0 --speed=38400 --word=8 --parity=no --stop=1
     161terminal --timeout=2 serial
     162
     163default 0
     164timeout 5
     165
     166title   OpenWrt
     167root    (hd0,0)
     168kernel  /boot/vmlinuz block2mtd.block2mtd=/dev/sda2,65536,rootfs root=/dev/mtdblock0 rootfstype=squashfs rootwait console=ttyS0,38400n8 noinitrd reboot=bios irqpoll
     169boot
     170
     171title   OpenWrt (failsafe)
     172root    (hd0,0)
     173kernel  /boot/vmlinuz failsafe=true block2mtd.block2mtd=/dev/sda2,65536,rootfs root=/dev/mtdblock0 rootfstype=squashfs rootwait console=ttyS0,38400n8 noinitrd reboot=bios irqpoll
     174boot
     175}}}
     176
     177'' Let Op: OpenWRT 12.09 werkt niet/goed met deze optie! ''
     178
     179==== memtest86+ ====
     180Aangezien de oude soekris boarden een dubieus karakter hebben is het uitsluiten van onbetrouwbaar vastgesoldeerd ram geheugen het minste wat je kan doen dus memtest86+ (plus) draaien. Opmerking de soekris 4501 en 4526 (de oudere 486based boarden) werken niet met de laatste versie van memtest86+, zodra memtest86+ start herstart deze de hele computer. Versies die wel werken zijn 2.00-4.10 en kun je direct in binary laden van [http://www.memtest.org/download/ memtest86+ old binaries].
    157181
    158182Voeg de volgende optie toe aan het grub config bestand /boot/grub/menu.lst en kopier de juiste memtest86 binaries in de map /boot/ op de CF-CARD je kan daarna eenvoudig de soekris op brak ram geheugen laten testen, als je dit kiest vanuit het bootloader menu de eerst volgende keer dat je hem start!
     
    173197
    174198=== PXE BOOT client===
    175 Voor het installeren/images van openwrt op soekris boarden zonder CF-kaart moet naast een werkende serial console verbinding met comBIOS, een pxe tftp+dhcp/bootpserver worden opgezet en er een ethernet link tussen de soekris als pxe client en pxe server aanwezig zijn. Via serial interface tussen PC en Soekris kan de soerkis vanuit comBIOS geinstrueerd worden om via PXE netwerk boot op te starten. Wanneer de toetsen CTRL + P tijdens de comBIOS bootstrap worden ingetoetst (snel genoeg binnen 5 seconden) kun je met het commando "show" de huidige PXE bootvoorwaarden aanwezig zijn:PCIROMS=Enabled en PXEBoot=Enabled. Wanneer dat niet zo is corrigeer deze, reboot en keer terug via CTRP + P. Je kan nu via "boot F0" de soekris naar een PXE boot forceren. Zie hoofdstuk aan het eind om "PXE-BOOT server" op te zetten.
     199Voor het installeren/images van openwrt op soekris boarden zonder CF-kaart moet naast een werkende serial console verbinding met comBIOS, een pxe tftp+dhcp/bootpserver worden opgezet en er een ethernet link tussen de soekris als pxe client en pxe server aanwezig zijn. Via serial interface tussen PC en Soekris kan de soerkis vanuit comBIOS geinstrueerd worden om via PXE netwerk boot op te starten. Wanneer de toetsen CTRL + P tijdens de comBIOS bootstrap worden ingetoetst (snel genoeg binnen 5 seconden) kun je met het commando "show" de huidige PXE bootvoorwaarden aanwezig zijn:PCIROMS=Enabled en PXEBoot=Enabled. Wanneer dat niet zo is corrigeer deze, reboot en keer terug via CTRP + P. Je kan nu via "boot F0" de soekris naar een PXE boot forceren. Zie hoofdstuk aan het eind om "PXE BOOT server" op te zetten.
    176200
    177201== OpenWRT ==
     
    186210Deze laatste heeft de voorkeur omdat die het meest consistent is en het makkelijker is om naar textbestanden te verwijzen in mappen dan knopjes in een webinterface, de webinterface word namelijk nogal gerestyled of is traag op apparaten met 16MB ram.
    187211
    188 === Firstboot ===
    189 Een generieke openwrt image is via serial-console of netwerk(ethernet) te bereiken op 192.168.1.1, stel je client pc/notebook in op dhcp verkrijgbaar ip-adres of op een static ip address om de openwrt router te benaderen.
     212=== firstboot ===
     213Dit is een begrip voor de uitgangssituatie van de openwrt image als deze de eerste keer start en bepaalde configuratie en routines blijvend opzet. In het geval van een "squashfs" gekozen image is altijd weer terug te keren naar dit stadium. Voor andere gevallen geld dat niet en moet je in het ergste geval opnieuw een image naar je CF-card schrijven om opnieuw te beginnen.
     214
     215Na het eerste keer opstarten van de openwrt image is de soekris via serial-console of netwerk (eth0 dichts bij de voeding) 192.168.1.1 te bereiken, stel je client pc/notebook in op dhcp verkrijgbaar ip-adres of op een static ip address om de openwrt router te benaderen.
    190216
    191217{{{
     
    204230reboot;exit
    205231
    206 #login again, but with ssh or minicom
     232#login again, but only possible with ssh or minicom
    207233ssh root@192.168.1.1
    208234
    209 #backup original config files
    210 cp -r /etc/config /etc/config.ori
    211 }}}
    212 
    213 ==== Shell / CLI ====
    214 Wanneer je in de openwrt router bent ingelogd via SSH, moet je je daar langzaam thuisvoelen in de shell omgeving. Dit lijkt op voor de leken op MSDOS, maar dan on steroids. Wanneer je je in de shell kan verplaatsen kun je je gaan richten op bepaalde configuratie bestanden en services binnen openwrt. Een korte introductie van de shell kan nog volgen wellicht plaatsen we dat onder algemeen omdat het veel overeenkomsten met shell van bsd en andere posix georienteerde OS's heeft...
     235}}}
     236
     237==== shell / cli ====
     238Wanneer je in de openwrt router bent ingelogd via SSH, moet je je daar langzaam thuisvoelen in de shell omgeving. Dit lijkt voor de leken op MSDOS, maar dan on steroids. Wanneer je je in de shell kan verplaatsen kun je je gaan richten op bepaalde configuratie bestanden en services binnen openwrt. Een korte introductie van de shell kan nog volgen wellicht plaatsen we dat onder algemeen omdat het veel overeenkomsten met shell van bsd en andere posix georienteerde OS's heeft...
    215239
    216240De volgende stap is tekst bestandjes editen met het programma "vi" wanneer je dat handigheidje doorkrijgt kun je daadwerkelijk je router gaan configureren.
    217241
    218 === Router + NAT ===
    219 Om OpenWRT als basis router te laten fungeren moet er naast een locale lan interface een wan interface opgegeven worden. Dit doe je door ....
     242=== router + nat ===
     243Standaard 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 ....
    220246
    221247{{{
     
    413439
    414440#install packages
    415 opkg install fdisk usbutils kmod-usb-storage pcmciautils pciutils kmod-hostap-cs kmod-pcmcia-core kmod-pcmcia-yenta ipcalc iperf nmap tcpdump nano luci-app-olsr nodogsplash tinyproxy openvpn wpad wget tar kmod-macvlan
     441opkg install fdisk usbutils kmod-usb-storage pcmciautils pciutils kmod-hostap-cs kmod-pcmcia-core kmod-pcmcia-yenta ipcalc iperf nmap tcpdump nano luci-app-olsr nodogsplash tinyproxy openvpn hostapd wget tar kmod-macvlan
    416442}}}
    417443
     
    419445
    420446{{{
    421 #enable pcmcia services on boot
    422 /etc/init.d/pcmcia enable
    423 /etc/init.d/pcmcia_socket enable
    424 
    425 #quick and dirty delay network initialization after pcmcia
    426 rm /etc/init.d/S40network
    427 ln -s /etc/init.d/network S43network
    428 #mv /etc/rc.d/S20network /etc/rc.d/S43network #12.09 aaa only?
     447#manualy enable pcmcia services on boot
     448ln -s /etc/init.d/pcmcia /etc/rc.d/S35pcmcia
     449ln -s /etc/init.d/pcmcia_socket /etc/rc.d/S36pcmcia_socket
     450
     451#quick and dirty delay network initialization after pcmcia delay 10s
     452nano /etc/init.d/network
     453
     454#add the command "sleep 10" without the quoutes above the line with START=...
    429455}}}
    430456