Video tutorijal konfiguriranja RouterStationa možete skinuti na adresi:
http://wiki.wifi.hr/downloads/RouterStation_Configuration_no_sound.avi.
RS u videu je konfiguriran kao ruter s 3 dedicated (BBL) wireless linka (Atheros ABG kartice) u SuperA modu.
Postavljen je bridge između eth0 i eth1 LAN kartica.
Za rutanje se koristi OSPF.
Nadam se da nisam žurio previše te da dovoljno prati ovaj tutorijal na wikiju. Nisam pogodio sve opcije iz prve, no nadam se da je dovoljno jasno da se sve skuži. Uživajte.
Veličina: 231 MB
Trajanje: 42 min
Format: XviD
Rezolucija: 1680 x 1050
| Processor Specs | Atheros MIPS 24K, 680MHz |
|---|---|
| Memory Information | 64MB SDRAM, 16MB Flash |
| Networking Interface | 3X 10/100 BASE-TX (Cat. 5, RJ-45) Ethernet Interface |
| PCI Support | 3X 32-bit mini-PCI |
| Approvals | FCC,CE |
| RoHS Compliance | YES |
| Power Supply | Up to 24V, sold separately |
| Power Method | Passive Power over Ethernet (pairs 4,5+; 7,8 return) |
| Operating Temperature | -30C to +75C |
| Weight | 0.21 kg |
RouterStation dolazi s predinstaliranim OpenWRT-om verzije 8.09 te je odmah spreman za rad. Nadogradnja OS-a se vrši instalacijom dodatnih paketa iz repozitorija. Mogu se koristiti postojeći OpenWRT repozitoriji na Internetu ili se repozitorij može postaviti na lokalni web poslužitelj. Paketi se iz OpenWRT repozitorija (ili bilo kojeg drugog, naravno) mogu HTTP-om kopirati na lokalni poslužitelj. Ukoliko željeni paketi ne postoje, potrebno ih je ”iskompajlirati” i postaviti u repozitorij. Kako kompajlirati nove pakete nećemo ovdje objašnjavati, sve potrebno se može naći na OpenWRT stranicama.
RouterStation dolazi s OpenWRT-om koji već posjeduje sve pakete koji nama za potrebe wirelessa trebaju, osim jednoga: servis za dinamičko rutanje (Quagga, Zebra, OSPF, BGP, RIP…). Taj paket je potrebno ručno skompajlirati i postaviti u repozitorij.
Potreban je HTTP poslužitelj. Arhivu s potrebnim paketima možete skinuti na adresi http://wiki.wifi.hr/downloads/RS-packages.zip.
U primjeru se koristi lokalno postavljen poslužitelj na adresi http://10.14.21.10/
Na poslužitelj je potrebno postaviti direktorij koji sadrži repozitorij s pripremljenim paketima za OpenWRT verziju instaliranu na RouterStationu.
Na poslužitelju smo kreirali direktorij “openwrt” na adresi http://10.14.21.10/openwrt/ te smo u njega skinuli RS-packages.zip paket. Nakon što ga otpakiramo (Linux: tar; Windows: WinRAR), na adresi http://10.14.21.10/openwrt/rs/ imamo postavljen naš repozitorij.
Dakle, konačna adresa koju ćemo koristiti za instaliranje paketa je:
Konfiguracija packet managera OpenWRTa se nalazi u datoteci /etc/opkg.conf
vi /etc/opkg.conf
Otvara se datoteka koja pokazuje na repozitorij.
Može se vidjeti link na OpenWRT repozitorij na Internetu koji je onemogućen (#) te link na lokalni ”sizif” repozitorij.
Ispod toga su opcije odredišne lokacije te datotečnog sustava.
#src/gz snapshots http://downloads.openwrt.org/snapshots/ar71xx/packages src/gz sizif http://10.14.21.10/openwrt/rs dest root / dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /jffs
Nakon svakog pokretanja RS-a, prije nego želimo povući neki paket potrebno je osvježiti listu repozitorija.
Lista se ne zapisuje na disk već se pohranjuje u RAM te se gubi nakon reboota.
opkg update
Za potrebe wirelessa i rutanja dohvatit ćemo si neke pakete (nisu svi nužni za ono što nam treba):
opkg install quagga-ospfd
Kako paket QUAGGA-OSPFD ovisi o drugim paketima, OPKG će automatski instalirati i njih.
quagga-ospfd => quagga-libospf => quagga-libzebra => quagga
Riječ je o Quagga servisu Stable verzije 0.98.6.
opkg install nano
opkg install ntpclient
Konfiguracija RS-a se vrši tekstualnim uređivanjem skripti. Na raspolaganju je VI, mnogima ne toliko omiljen tekstualni editor. Oni koji ne žele naučiti raditi u VI-u, mogu si instalirati NANO (ako ga imate u svom repozitoriju).
opkg update; opkg install nano;
Ostali mogu slobodno koristiti VI.
Ulogiramo se u RouterStation i editiramo datoteku /etc/hosts. Koristim “nano” jer sam se s njim “sprijateljio” ukoliko ga nemate možete i VI koristiti.
root@test:~# nano /etc/hosts;
Upišemo IP i pripadni naziv na mreži…
127.0.0.1 localhost 10.11.12.1 test test.wifihr
NAPOMENA : korištene IP adrese su izmišljene i služe samo kao primjer!!! Vi koristite adresne prostore koje imate. Ukoliko nemate, prije nego postavite svoj adresni prostor, provjerite da li je prostor slobodan kako ne bi došlo do preklapanja s drugim wireless mrežama u Hrvatskoj. Adresni prostori su nabrojani ovdje. Ukoliko još niste unijeli svoj adresni prostor na listu, preporučam da to učinite kako bi nam svima bilo lakše voditi evidenciju o iskorištenim i slobodnim adresnim prostorima.
Ovdje unosimo adrese DNS poslužitelja koje će naš Routerstation koristiti.
root@test:~# nano /etc/resolv.conf;
Kod mene je trenutno upisan samo jedan.
nameserver 10.14.21.11
root@test:~# nano /etc/config/network;
Znak '#' na počeku linije označava da se ta linija ne uzima u obzir kod pokretanja (linija je zakomentirana).
config 'interface' 'loopback'
option 'ifname' 'lo'
option 'proto' 'static'
option 'ipaddr' '127.0.0.1'
option 'netmask' '255.0.0.0'
config 'interface' 'lan'
option 'ifname' 'eth0'
# option 'ifname' 'eth0 eth1'
# option 'type' 'bridge'
option 'proto' 'static'
option 'ipaddr' '10.11.12.1'
option 'netmask' '255.255.255.0'
option 'dns' '10.14.21.11'
# option 'gateway' '10.14.59.1'
config 'interface' 'wifi0'
option 'ifname' 'ath0'
root@test:~# nano /etc/config/wireless;
Ovdje ću navesti primjer postavlajanja jedne wifi0 kartice koja će u mom slučaju raditi u AP modu. Sintaxa je dosta intuitivna i nije ju problem razumijeti u shvatiti logiku uz mala objašnjena. Radi se o ATHEROS adapteru koji je postavljen na kanal 160 (5.8GHz). Udaljenost do druge strane je oko 2.2km i unosi se u metrima, dakle, 2200. Radi se o 11a modu (802.11a). Vrijednost '0' u opciji predstavlja DISABLED (isključeno): option hidden 0; dok vijednost '1' predstavlje ENABLED (uključeno): option bgscan 1.
Svatko tko se ikada susreo s konfiguriranjem wifi uređaja (kofiguracija AP-a preko web sučelja, wireless kartice iz Windowsa, wireless kartice iz WinBOX-a, itd.), može istu logiku primjeniti i ovdje. Razlika je što ovdje nema grafičkog sučelja, padajućih izbornika, menija i sl., već je postavke potrebno ručno upisati u skriptu.
############################
# Ath0
############################
config wifi-device wifi0
option type atheros
option channel 160
option distance 2200
option agmode 11a
option diversity 0
# REMOVE THIS LINE TO ENABLE WIFI:
option disabled 0
config wifi-iface
option device wifi0
# option network lan
option mode ap
option ssid wifihrTEST
option encryption none
option key 1234567890
# option txpower 17
option bgscan 1
option hidden 0
option isolate 0
option wds 0
Ukoliko imate još koji adapter uključen u RouterStation njega ćete podesiti na isti način kao i ovaj u primjeru, samo ćete ma mjestima gdje ste imali wifi0 staviti wifi1 ili wifi2 ako se radi o trećem adapteru te ath1 odnosno ath2 respektivno.
root@test:~# nano /etc/config/system;
Postavimo ime RouterStationu i vremensku zonu. Ovo s vrmenskom zonom samo prekopirajte. Postoje 2 načina prikaza koja su ekvivalnetna (ovdje je korišten kraći zapis).
config system
option hostname test
option timezone CET-1CEST,M3.5.0,M10.5.0/3
root@test:~# nano /etc/config/ntpclient;
Ovdje nisam ništa mjenjao.
config ntpserver
option hostname '0.openwrt.pool.ntp.org'
option port '123'
config ntpserver
option hostname '1.openwrt.pool.ntp.org'
option port '123'
config ntpserver
option hostname '2.openwrt.pool.ntp.org'
option port '123'
config ntpserver
option hostname '3.openwrt.pool.ntp.org'
option port '123'
config ntpdrift
option freq '0'
config ntpclient
option interval 600
#option count 10
Dobro je provjeriti radi li sve ovo što smo upisivali vezano uz vrijeme. Koristimo dobru staru linux naredbu date.
root@test:~# date Tue Dec 29 22:23:12 CET 2009 root@test:~#
Ako je datum i sat koji vam naredba date vrati ispravan, onda ste uspješno sve konfigurirali. Vaš RouterStation je sinkroniziran.
Postavimo servis za dinamičko rutanje…
root@test:~# nano /etc/quagga/zebra.conf;
Ovako izgleda kofiguracijska datoteka. Kako se radi o jednom wifi linku konfiguriran je samo jedan wifi adapter. Ukoliko imate više linkova, istom logikom ispod ath0 dodajete ath1 te njegovu IP adresu i subnet kojem pripada. Datoteka završava sa linijom line vty. “Password” postavite po želji, ovdje je radi preglednosti postavljen “lozinka”. Pošto RS koristi NAND (on-board memoriju) i nema baš preveliku količinu RAM-a, isključit ćemo logiranje (log file /dev/null).
NAPOMENA: Znak '!' na početku reda označava komentar (neaktivno).
hostname test.wifihr password lozinka enable password lozinka !log file /var/log/zebra/zebra.log log file /dev/null ! interface lo ! interface eth0 description LocalNet1-test-Lan ip address 10.11.12.1/24 multicast ! interface ath0 description Link-wifilink ip address 10.11.254.2/30 multicast ! ! line vty
Postavimo OSPF protokol za dinamičko rutanje…
root@test:~# nano /etc/quagga/ospfd.conf;
Slično kao i kod “zebre” i ovdje se koristi lozinka, logiranje je isključeno.
hostname test.wifihr password lozinka enable password lozinka !log file /var/log/quagga/ospfd.log log file /dev/null ! interface lo ! interface eth0 description Local-test ip ospf authentication ip ospf authentication-key lozinka ip ospf cost 1 ip ospf priority 2 ! interface ath0 description Link-wifilink ip ospf authentication ip ospf authentication-key lozinka ip ospf cost 2 ip ospf priority 2 ! ! router ospf ospf router-id 10.11.12.1 ! redistribute static network 10.11.12.0/24 area 0.0.0.0 network 10.11.254.0/30 area 0.0.0.0 ! line vty !
U direktoriju /etc/init.d/ nalaze se skripte za pokretanje i zaustavljanje servisa te postavljanje automatskog pokretanja prilikom podizanja sistema.
Raspoložive su skripte za servise:
Syntax: ./quagga [command]
Available commands:
start Start the service
stop Stop the service
restart Restart the service
reload Reload configuration files (or restart if that fails)
enable Enable service autostart
disable Disable service autostart
Provjerimo da li je servis valjan, pokušamo ga pokrenuti:
/etc/init.d/quagga start
Ako je sve u redu, postavimo željene servise za automatsko pokretanje:
/etc/init.d/dnsmasq disable /etc/init.d/firewall disable /etc/init.d/httpd disable /etc/init.d/ntpclientd enable /etc/init.d/qos disable /etc/init.d/quagga enable
reboot
Na kraju jedan reboot i čekamo da se RS restarta.
Nakon reboota pogledamo što sve radi.
root@Ferka2:/# ps -A
PID USER VSZ STAT COMMAND
1 root 1960 S init
2 root 0 SW< [kthreadd]
3 root 0 SW< [ksoftirqd/0]
4 root 0 SW< [watchdog/0]
5 root 0 SW< [events/0]
6 root 0 SW< [khelper]
44 root 0 SW< [kblockd/0]
72 root 0 SW [pdflush]
73 root 0 SW [pdflush]
74 root 0 SW< [kswapd0]
75 root 0 SW< [aio/0]
97 root 0 SW< [mtdblockd]
100 root 0 SW< [ar71xx-spi]
290 root 0 SWN [jffs2_gcd_mtd3]
304 root 1960 S logger -s -p 6 -t sysinit
305 root 1960 S init
315 root 1972 S syslogd -C16
317 root 1956 S klogd
329 root 1136 S /sbin/hotplug2 --override --persistent --max-children
556 root 0 SW< [khubd]
651 root 0 SW< [bond0]
1549 root 1972 S crond -c /etc/crontabs
1573 root 1944 S /usr/sbin/dropbear -p 22
1639 root 1952 S watchdog -t 5 /dev/watchdog
2336 quagga 2480 S /usr/sbin/zebra -d
2341 quagga 3164 R /usr/sbin/ospfd -d
2346 root 2144 S /usr/sbin/watchquagga -d -z -T 60 -R /usr/sbin/quagga
20349 root 2000 S /usr/sbin/dropbear -p 22
20350 root 1972 R -ash
20360 root 1388 S /usr/sbin/ntpclient -l -h pool.ntp.org -c 1 -s
20366 root 1960 R ps -A
ifconfig iwconfig iwlist route ps -A dmesg top
Ako se dogodi da vam RouterStation više ne reagira preko ethernet ulaza, a nemate Serial kabel onda nema druge nego flash-anje RouterStationa (RS u daljnjem tekstu).
Prvo na PC-u pokrenemo ping 192.168.1.20 -t. Onda ćemo dovesti RS u failsafe mod. To radimo tako da izvadimo LAN kabel iz PoE interface-a te stisnemo Reset tipku (odmah do PoE interface-a). Ponovo spojimo LAN kabel u PoE LAN port pa se RS ponovo počinje paliti. Reset tipku držimo dok se RS ne pojavi na pingu.
Kad RS proradi možemo se spojiti premo TFTP-a i podignuti .bin file za flashanje. BIN datoteku možete skinuti sa ove web strance: http://downloads.openwrt.org/snapshots/trunk/ar71xx/ Moguće je koristiti:
openwrt-ar71xx-ubnt-rs-jffs2-factory.bin
openwrt-ar71xx-ubnt-rs-jffs2-sysupgrade.bin
openwrt-ar71xx-ubnt-rs-jffs2.bin
openwrt-ar71xx-ubnt-rs-squashfs-factory.bin
openwrt-ar71xx-ubnt-rs-squashfs-sysupgrade.bin
openwrt-ar71xx-ubnt-rs-squashfs.bin
Preporuča se openwrt-ar71xx-ubnt-rs-jffs2-factory.bin TFTP radi samo na Win Xp (nisam uspio preko Win 7). Naredba za dizanje file-a je: tftp -i 192.168.1.20 PUT <image-jffs2-factory.bin>
Nakon toga RS-u treba dati 5-10 minuta da se odradi flashanje. Drugi LAN kabel postavite u eth1 na RS-u jer eth0 više nema postavljenu IP adresu nego je to sad eth1 i to sa IP adresom 192.168.1.1. LAN kabel koji je bio u eth0 (PoE port) i dalje mora ostati spojen radi napajanja RS-a! Sad treba postaviti ping 192.168.1.1 -t na PC-u. Kad se RS konačno pojavi možemo se spajati preko telneta kako bi postavili lozinku za root usera na RS-u jer po defaultu nije postavljena te se ne možemo spojiti preko SSH. Postavljanje lozinke se radi pomoću naredbe passwd
Nakon toga se može spajati na RS kako ste i do sad to obavljali preko SSH i postaviti nove konfiguracijske datoteke pomoću winscp programa, ali to već spada u jednu drugu priču
Pozdrav svima, nadam se da će nekome dobro doći ovaj tutorial.
Za potrebe testiranja 802.11n linka, upgrejdo sam RS. Ukratko kako to ide…
Ištekam RS iz struje. Pritisnem i držim stisnut RESET gumb. Uštekam RS u struju. Nakon što LEDice prestanu žmirkati, pustim RESET gumb. Odem u Windowse na kompu koji je spojen LANom na RS, pokrenem TFTP kako bih prenio datoteku s kompa na RS.
Start → Run → cmd
Navigiram u folder gdje se nalazi BIN datoteka za RS i pokrenem naredbu:
tftp -i 192.168.1.20 PUT openwrt-ar71xx-ubnt-rs-squashfs-factory.bin
Nakon kraćeg vremena RS se reboota s novim firmwareom.
By default je 1. LAN port (eth0) konfiguriran kao “wan” s DHCP dodjelom adrese. By default je 2. LAN port (eth1) konfiguriran kao “lan” s statičnom adresom 192.168.1.1
Ja sam se spojio preko konzole (UART - USB kabel od starog Siemens mobitela prepravio i iskoristio) i promjenio /etc/config/network datoteku tako da su mi i eth0 i eth1 u bridgeu za LAN. Stavio sam si odma svoj IP koji mi je trebao: 10.14.21.30. Nakon toga sam ga rebootao.
Moguće je spojiti komp na eth1 port te se spojiti na RS, ako nemate konzolni kabel.
Prvo je potrebno spojiti se TELNETom na RS i definirati PASSWORD za ROOT account.
Start → run → cmd
telnet 10.14.21.30
… spojim se na RS:
root@OpenWRT:~# passwd Changing password for root New password: Bad password: too short Retype password: Password for root changed by root root@OpenWRT:~#
… Sada se TELNET zatvorio i od sada se može spajati samo na SSH (port 22).
Sad kad imam SSH krenem instalirati potrebne pakete. Iz Windowsa pokrenem WinSCP i stavim ga u SCP mode te kopiram s kompa potrebne .IPK pakete. Jednog po jednog instaliram naredbom…
opkg install PACKAGE_NAME
Lista potrebnih paketa…
libncurses - 5.7-2 nano - 2.2.3-1 kmod-crypto-core - 2.6.32.10-1 kmod-crypto-arc4 - 2.6.32.10-1 kmod-crypto-aes - 2.6.32.10-1 wireless-tools - 29-4 iw - 0.9.19-1 kmod-cfg80211 - 2.6.32.10+2010-03-24-5 kmod-mac80211 - 2.6.32.10+2010-03-24-5 kmod-ath - 2.6.32.10+2010-03-24-5 kmod-ath9k - 2.6.32.10+2010-03-24-5 kmod-madwifi - 2.6.32.10+r3314-4 librt - 0.9.30.1-42 ntpclient - 2007_365-4 netperf - 2.4.5-1 quagga - 0.98.6-5 quagga-libospf - 0.98.6-5 quagga-libzebra - 0.98.6-5 quagga-ospfd - 0.98.6-5
Ako mislite koristiti WPA enkripciju potrebno je kao i ostale pakete skinuti i prebaciti na RS sljedeči paket:
opkg install wpad_20100309-1_ar71xx.ipk
Nakon što sam to instalirao, sa kompa povučem backupirane skripte, svaki na svoju lokaciju: hosts network ntpclientd opkg.conf ospfd.conf root system wireless zebra.conf
Napravim “CHMOD 755 ntpclientd” skripte… Napravim Enable/Disable željenih procesa u /etc/init.d/ direktoriju…
./ntpclientd enable ./quagga enable ./dnsmasq disable ./firewall disable
… To je to … REBOOT … i stvar radi.
Web Interface (Luci) je na http://10.14.21.30/
Sa prvim sam se malo namučio, no drugog sam flešao i skonfao za cca 10 min.
Nadam se da će biti vremena da malo uredim text. Ako se nekom da, plz neka uredi.
PozZ, B.F.
Od vađenja iz vrećice, do konfiguracije servisa…
[ za ponoviti ovaj postupak potrebna je konzolna veza na RS (koristio sam stari USB→UART kabel od Siemens mobitela) ]
[ za ovaj postupak NIJE potrebna veza na konzolu; konzola je tu samo radi vizualne provjere (da se dobije dojam što RS radi dok mi po njemu prčkamo) ]
Konfiguracija RS-a kao router s 3 linka - video
Potrebni OpenWRT image, pripadajući paketi te Predlošci skripti za editiranje:
@ 2.12.2010.
PozZ, B.F.
— by R. Res & B. Franc @ WiFiHR