AirCA8-PRO
Obsah
OpenWRT pro AirCA8-Pro
Tento návod je jakožto instalovat, konfigurovat a provozovat projekt OpenWRT na zařízení s atheros čipem jako je AirCA8-Pro, Ovislink 5000AP, apod.
Proč OpenWRT?
- Lepší ovládání výkonu zařízení.
- Odstraní problém s více IP z jedné MAC adresy (více IP, např. interní a veřejná na jednom počítači).
- Staví zařízení na jinou úroveň, lze na něm poté provozovat cokoli na co jsou zkompilované balíčky, grafy, web server, dhcp server, scripty a mnoho dalšího.
Instalace
- 1. Stáhnu image OpenWRT pro AirCA8-Pro.
- 2. Přihlásím se na webové rozhraní AirCAy a upgraduju firmware, system tools > firmware upgrade, pomocí browse najdu image z předchzího kroku
- 3. stisknu upgradu, čekám než se firmware do zařízení nahraje, během nahrávání v žádném případě AirCAu neodpojuji od napájení!. Pokud v tomto kroku zařízení zahlásí, že je soubor chybný, je třeba ještě následující:
- Přihlásit se telnetem na konzoli zařízení (AP: telnet 192.168.1.1 CLIENT: telnet 192.168.1.2)
- Zadat příkaz "z_debug signature disable"
- Potvrdit následujici dotaz napsáním "Yes"
- Pokud se objeví "Signature check is now DISABLED!!!" je vše ok
- Vrátit se k bodu 2 a postup opakovat
- 4. Nastavím si IP na počítači aby tylo ze sítě 192.168.1.0/24 třeba 192.168.1.11 maska 255.255.255.0, zařízení je defaultně na 192.168.1.1 maska 255.255.255.0
- 5. Přihlásím se telnetem (start>spustit>telnet 192.168.1.1) k AirCAe a změním heslo pro uživatele root
root@OpenWrt:~# passwd root Changing password for root New password: sem_napisu_svoje_tajne_heslo(znaky_se_nezobrazuji) Bad password: too weak Retype password: sem_napisu_svoje_tajne_heslo_znovu(znaky_se_nezobrazuji) Password for root changed by root root@OpenWrt:~# reboot root@OpenWrt:~#
Po tomto kroku se přístup přes telnet zablokuje a zařízení bude přístupně jen přes ssh pod loginem root a zvoleným heslem
Konfigurace
- 1. Přihlásím se do zařízení po ssh, IP je stále 192.168.1.1 (ve Win přes putty).
login as: root root@10.107.136.12's password: BusyBox v1.4.1 (2007-03-05 12:08:30 CET) Built-in shell (ash) Enter 'help' for a list of built-in commands. _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M KAMIKAZE (bleeding edge, r83) ------------------- * 10 oz Vodka Shake well with ice and strain * 10 oz Triple sec mixture into 10 shot glasses. * 10 oz lime juice Salute! --------------------------------------------------- root@OpenWrt:~#
- 2. Edituji soubor /etc/config/network programem vi, zde se nastavuje ip LAN a WAN části zařízení
root@OpenWrt:~# vi /etc/config/network.
- 3. Stisknutím klávesy insert se přepnu do editačního modu, v levém dolním rohu okna by mělo zobrazit místo "-" písmeno "I" jako Insert.
- 4. Po položkách se pohybuji šipkami, znaky mažu vždy klávesou backspace, nikoli deletem, víceznakové odsazení je tabulátorem.
- 5. Na příslušné místo zapíši IP, masku, bránu a DNS:
# Copyright (C) 2006 OpenWrt.org 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 proto static option ipaddr 192.168.1.1 #IP adresa LAN casti zarizeni option netmask 255.255.255.0 #maska LAN casti zarizeni config interface wan option ifname ath0 option proto static option ipaddr 10.107.xxx.xxx #IP adresa WAN casti zarizeni za x dosadit konkretni cisla option netmask 255.255.255.xxx #maska WAN casti zarizeni za x dosadit konkretni cisla option gateway 10.107.xxx.xxx #brana za x dosadit konkretni cisla option dns 10.107.4.100 #dns server(polozka nemusi byt pritomna)
Pozor! pokud zde napíšete něco chybně, může se stát, že zařízení nedostane žádnou IP a potom se do něj nepůjde dostat!
- 6. Editaci ukončím stiskem klávesy Esc (znak vlevo dole se opět změní na "-"), pro uložení a ukončení napíšu :x (dvojtečka, x) a enter, pokud nechci změny ukládat napíšu :q! (dvojtečka, q, vykřičník), tyto řídící znaky se vypisují vlevo dole kde je "-".
- 7. Edituji soubor /etc/config/wireless programem vi, zde se nastavuje konfigurace WAN části zařízení, mod ve kterém pracuje (5 nebo 2,4GHz) a ssid APčka.
root@OpenWrt:~# vi /etc/config/wireless
config wifi-device wifi0 option type atheros option mode 11a #zarizeni pracuje v pasmu 5GHz, dalsi pripustne option jsou 11b a 11g (2,4GHz) config wifi-iface option device wifi0 option network wan option mode sta option ssid AP.hkfree.org #zde je ssid nazev vaseho AP, ssid AP je k videni pri scanovani, viz kapitola ... option hidden 0 option encryption none
- 8. Abychom mohli fungovat na frekvenčních rozsazích použitelných v České republice, musíme ještě přidat konfigurační položku do /etc/modules.d/50-madwifi:
root@OpenWrt:~# vi /etc/modules.d/50-madwifi
- 9. Naposlední řádek souboru přidáme: "ath_ahb countrycode=616" bez uvozovek, 616 je kod pro CR.
wlan wlan_scan_ap wlan_scan_sta ath_hal ath_rate_sample wlan_acl wlan_ccmp wlan_tkip wlan_wep wlan_xauth ath_ahb countrycode=616
Scanování
Scanováním zjistíme jaké sítě (APčka) jsou v dosahu naší antény:
root@OpenWrt:~# iwlist ath0 scan ath0 Scan completed : Cell 01 - Address: 00:0B:6B:2A:D8:BA ESSID:"yzop5g.hkfree.org" Mode:Master Frequency:5.58 GHz (Channel 116) Quality=35/94 Signal level=-60 dBm Noise level=-95 dBm Encryption key:off Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s 36 Mb/s; 48 Mb/s; 54 Mb/s Extra:bcn_int=100 Cell 02 - Address: 00:0B:6B:87:17:70 ... Cell 23 - Address: 00:0B:6B:81:CA:56 ESSID:"bngal03" Mode:Master Frequency:5.24 GHz (Channel 48) Quality=12/94 Signal level=-83 dBm Noise level=-95 dBm Mode:Master root@OpenWrt:~#
Zde zjistíme hlavně essid AP (ESSID:"yzop5g.hkfree.org") a s jakou silou signálu ho chytáme (Quality=35/94 Signal level=-60 dBm), výpis není nijak seřazený.
Výpis konfigurace
IP, MAC adresy
K tomuto slouží příkaz ifconfig, interface ath0 pro wifi část, eth0 pro lan část:
root@OpenWrt:~# ifconfig ath0 ath0 Link encap:Ethernet HWaddr 00:0B:6B:xx:xx:xx (MAC Adresa) inet addr:89.248.xxx.xxx Bcast:89.255.255.255 Mask:255.255.240.0 (IP, broadcast, maska) UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:55306492 errors:0 dropped:0 overruns:0 frame:0 TX packets:31211052 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1000653166 (954.2 MiB) TX bytes:2036911216 (1.8 GiB)
root@OpenWrt:~# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0B:6B:xx:xx:xx (MAC Adresa) inet addr:192.168.xxx.xxx Bcast:192.168.xxx.xxx Mask:255.255.255.0 (IP, broadcast, maska) UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:30707210 errors:0 dropped:0 overruns:0 frame:0 TX packets:52894929 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2030795826 (1.8 GiB) TX bytes:0 (0.0 B)
wifi
K tomuto slouží příkaz iwconfig, interface ath0 pro wifi:
root@OpenWrt:~# iwconfig ath0 ath0 IEEE 802.11a ESSID:"yzop5g.hkfree.org" (mod, essid) Mode:Managed Frequency:5.58 GHz Access Point: 00:0B:6B:xx:xx:xx (frekvence AP, MAC AP) pokud je místo hexadecimálního kodu "Not-Associated" zarizeni neni spojeno s AP! Bit Rate:36 Mb/s Tx-Power=14 dBm Sensitivity=0/3 (rate, vystupni vykon zarizeni) Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=34/94 Signal level=-61 dBm Noise level=-95 dBm (sila signalu AP) Rx invalid nwid:13244919 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Změna výstupního výkonu
Pokud potřebujeme omezit výstupní výkon wifi karty z továrních 14dbm použijeme paramert příkazu iwconfig:
root@OpenWrt:~# iwconfig ath0 txpower 10 (změní výstupní výkon karty na 10dbm)
Propojení LAN a wifi části
NAT
Použití NATu vždy konzultujte se svým spávcem!
V adresáři /etc/init.d/ vytvoříme script, který budeme spouštět při zaždém spuštění zařízení:
root@OpenWrt:~# vi /etc/init.d/srcnat
Jeho obsahem bude:
#!/bin/sh /etc/rc.common START=45 start() { # Nastaveni NATu iptables -t nat -A POSTROUTING -o ath0 -j SNAT --to IP_adresa_wifi_casti_AirCAy } stop() {}
Poté vytvoříme na soubor se scriptem symbolický odkaz v adresáři /etc/rc.d/:
root@OpenWrt:/tmp# cd /etc/rc.d/ root@OpenWrt:/etc/rc.d# ln -s /etc/init.d/srcnat S60srcnat root@OpenWrt:/etc/rc.d# ls -l ... lrwxrwxrwx 1 root root 18 Jul 10 23:55 S60srcnat -> /etc/init.d/srcnat root@OpenWrt:/etc/rc.d#
Bridge
- 1. Před nastavením bridge musí být nainstalován balíček "bridge", viz instalace balíčků.
- 2. Vytvořím bridge, pojmenuji ho "br0":
root@OpenWrt:~# brctl addbr br0
- 3. Nastavím bridgi IP adresu:
root@OpenWrt:~# ifconfig br0 10.107.xxx.xxx netmask 255.255.255.xxx
- 4. Přidám do bridge interfacy, které chci mít spojené, tedy ath0 a eth0:
root@OpenWrt:~# brctl addif br0 ath0 root@OpenWrt:~# brctl addif br0 eth0
- 5. přihlásím se k AirCAe na IP bridge, teč by se mělo jít dostat na stejnou adresu jak po ethernetu tak po wifi.
- 6. Zruším interfacům jejich adresy:
root@OpenWrt:~# ifconfig ath0 0.0.0.0 root@OpenWrt:~# ifconfig eth0 0.0.0.0
- 7. celý postup si vložim do scriptu, který budu spouštět po startu zařízení, podrobněji viz nat:
root@OpenWrt:~# vi /etc/init.d/bridge
Obsah scriptu:
- !/bin/sh /etc/rc.common
START=45 start() {
root@OpenWrt:~# brctl addbr br0 root@OpenWrt:~# ifconfig br0 10.107.xxx.xxx netmask 255.255.255.xxx root@OpenWrt:~# brctl addif br0 ath0 root@OpenWrt:~# brctl addif br0 eth0 root@OpenWrt:~# ifconfig ath0 0.0.0.0 root@OpenWrt:~# ifconfig eth0 0.0.0.0 }
stop() {} Poté vytvořím na soubor se scriptem symbolický odkaz v adresáři /etc/rc.d/: root@OpenWrt:/tmp# cd /etc/rc.d/ root@OpenWrt:/etc/rc.d# ln -s /etc/init.d/srcnat S60srcnat root@OpenWrt:/etc/rc.d# ls -l ... lrwxrwxrwx 1 root root 18 Jul 10 23:55 S60srcnat -> /etc/init.d/srcnat root@OpenWrt:/etc/rc.d#
Routování
Pokud chceme IP rozsahy routovat použijeme příkaz route, toto pošle veškerý provoz na bránu s IP 10.107.xxx.xxx:
root@OpenWrt:~# route add 0.0.0.0 netmask 0.0.0.0 gw 10.107.xxx.xxx
Obsah routovací tabulky dostaneme následovně:
root@OpenWrt:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.107.xxx.1 255.255.255.255 UGH 0 0 0 eth0 10.107.xxx.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 10.107.xxx.1 0.0.0.0 UG 0 0 0 eth0
Balíčky
Balíčky zkompilované pro MIPS architekturu AirCAy najdeme zde: Packages
Instalace balíčků
- 1. Pro jistotu zjistím zda mám na zařízení dostatek paměti, zajímá mě hodnota u /dev/root (flash paměť):
root@OpenWrt:~# df -h Filesystem Size Used Available Use% Mounted on /dev/root 3.1M 2.9M 256.0k 92% / none 14.9M 376.0k 14.6M 2% /tmp root@OpenWrt:~#
Ještě tam trochu místa je (256kB)
- 2. Stáhnu balíček který chci instalovat, ukládám ho do adresáře /tmp který je přimountovaný k RAM paměti AirCAy, kapacita je cca 14.9MB, ovšem po rebootu její obsah zmizí! (pro ukázku balíček br2684ctl).
root@OpenWrt:~# cd /tmp root@OpenWrt:~# wget http://openwrt.dlabac.net/snapshots/atheros/packages/br2684ctl_2.4.1-1_mips.ipk Connecting to openwrt.dlabac.net [213.192.30.98:80] br2684ctl_2.4.1-1_mi 100% |**********************************************************************************************************| 4869 --:--:-- ETA root@OpenWrt:~#
- 3a. OpenWRT používá balíčkovací systém ipk, zvolím tedy parametr install a název staženého balíčku, více o možnostech viz manuálová stránka ipkg (ipkg --help).
root@OpenWrt:~# ipkg install br2684ctl_2.4.1-1_mips.ipk Installing br2684ctl (2.4.1-1) to root... Installing linux-atm (2.4.1-1) to root... Downloading http://openwrt.dlabac.net/snapshots/atheros/packages/./linux-atm_2.4.1-1_mips.ipk Configuring br2684ctl Configuring linux-atm Done. root@OpenWrt:~#
- 3b. Pokud znám název balíčku, nemusím ani provádět bod 2. ipkg si balíček stáhne sám:
root@OpenWrt:~# ipkg install br2684ctl Installing br2684ctl (2.4.1-1) to root... Downloading http://openwrt.dlabac.net/snapshots/atheros/packages/./br2684ctl_2.4.1-1_mips.ipk Configuring br2684ctl Done. root@OpenWrt:~#
Některé balíčky jsou závislé na určitých knihovnách, ty se většinou pomocí závislostí stáhnou sami.
Odinstalace Balíčků
- Vyberu balíček, který chci odebrat (např. kvůli úspoře místa), použiji parametr remove a jméno balíčku, nikoli název souboru s balíčkem.
root@OpenWrt:~# ipkg remove br2684ctl Removing package br2684ctl from root... Done. root@OpenWrt:~#
Při odstraňování pozor abyste nesmazali něco co je potřeba pro správný chod systému! Můžete se dostat do situace kdy pomůže pouze sériový kabel.
Další užitečné parametry ipkg
- list - vypíše všechny dostupné balíčky, seznam se bere z web adresy zapsané v /etc/ipkg.conf:
root@OpenWrt:~# cat /etc/ipkg.conf src snapshots http://openwrt.dlabac.net/snapshots/atheros/packages dest root / dest ram /tmp root@OpenWrt:~#
- list_installed - vypíše všechny balíčky, které jsou v zařízení již nainstalované
- info - informace o balíčku:
root@OpenWrt:~# ipkg info bridge Package: bridge Version: 1.0.6-1 Status: unknown ok not-installed Section: net Architecture: mips maintainer: OpenWrt Developers Team <openwrt-devel@openwrt.org> MD5Sum: 93d49f6772d16acd981ede010fc5466b Size: 9725 Filename: ./bridge_1.0.6-1_mips.ipk Source: package/bridge Description: Ethernet bridging configuration utility Manage ethernet bridging: a way to connect networks together to form a larger network. Done. root@OpenWrt:~#
- download - stáhne daný balíček do současného adresáře, píše se jméno balíčku nikoli název souboru s balíčkem, to samé jako wget cesta_k_balíčku z předchozí části o instalaci
Nahrání firmware z OpenWRT
Pokud chci do zařízení vrátit např. původní firmware, nebo jiný OpenWRT, postupuji následovně:
- 1. Ověřím, že mám nainstalovaný balíček s názvem "flash" (ipkg info flash - status musí být "install..."), pokud nemám nainstaluji si ho podle návodu instalace balíčků
- 2. Stáhnu si pomocí wget firmware někde ze sítě, např. wget http://openwrt.dlabac.net/Original_FW/CA8-4-AP-FW-v1_08e05.bin
- 3. Flashnu nový firmware (flash jmeno_souboru_s_firmware), celý postup:
root@OpenWrt:~# ipkg info flash ... Status: install ok installed ... Done. root@OpenWrt:~# cd /tmp root@OpenWrt:~# wget http://openwrt.dlabac.net/Original_FW/CA8-4-AP-FW-v1_08e05.bin Connecting to openwrt.dlabac.net [213.192.30.98:80] CA8-4-AP-FW-v1_08e05 100% |*******************************************************| 2080 KB 00:00:00 ETA root@OpenWrt:~# flash CA8-4-AP-FW-v1_08e05.bin
- 4. Čekám až se zařízení přeflashuje a restartuje (2-3min.)
Špatné nahrání firmware
Občas se stane, že se firmware nahraje špatně i když vše proběhne v pořádku. Při každém startu si zařízení samo zjišťuje zda je daný firmware validní pomocí hash kontroly, pokud není, pokusí se firmware nahrát z tftp serveru. Postup jak toto umožnit:
- 1. Zařízení odpojím od napájení.
- 2. na počítači si zařídím tftp server, pod win např. SolarWinds tftp server (tato verze odzkoušena, funguje), návod na Solarwinds: Tftp#SolarWinds_tftp_server.
- 3. Stáhnu si firmware, který chci do zařízení nechat nahrát.
- 4. Soubor s firmware přejmenuji na "zImage" bez uvozovek (pozor na velká/malá písmena!) a vložím ho do kořene tftp.
- 5. Na počítači nastavím IP 192.168.1.254, maska 255.255.255.0, AriCA ve stavu čekajícím na fw je na IP 192.168.1.1.
- 6. Propojím AirCAu s počítačem ethernetovým kabelem (jedno který port) a AirCAu připojím k napájení.
- 7. Čekám zda AirCA přijme soubor s imagem firmware, pokud ne, je ještě možnost oživení pomocí seriového kabelu, viz dále.
Seriový kabel
Pokud se stalo to, že AirCA z nějakého důvodu nefunguje a postup z předchozí kapitoly nepomáhá, je třeba AirCAu připojit seriovým rozhraním Seriová konzole, pokud rozhraní nemáte můžete kontaktovat autora návodu: Uživatel:Locutus.
- 1. Připravím si vše do takového stavu jak je popsáno v kapitole Špatné nahrání firmware.
- 2. Nakonfiguruji si Hyperterminál nebo Minicon na následující hodnoty: přenosová rychlost 115200 baudů, 8 datových bitů, žádná parita a 1 stop bit.
- 3. Propojím AirCAu a Počítač seriovou konzolí.
- 4. Připojím AirCAu k napájení, asi po 2s by měla vypsat toto:
============================================ WNEWEB AR2312 Boot Loader Interface V1.00e00 2005-05-27 (zImage) ============================================ Please choose the operation: 1: Load system code to SDRAM via TFTP. 2: Load system code then write to Flash via TFTP. 3: Boot system code via Flash. 4: Load calibration data then write to Flash via XModem.
- 5. Mám cca 3s abych vybral možnost za 2.
- 6. AirCA by si měla stáhnou firmware z tftp, flashnout se a restartovat se.