AirCA8-PRO: Porovnání verzí

Z HKfree wiki
Skočit na navigaci Skočit na vyhledávání
Řádek 198: Řádek 198:
 
  START=45
 
  START=45
 
  start() {
 
  start() {
         root@OpenWrt:~# brctl addbr br0
+
         brctl addbr br0
         root@OpenWrt:~# ifconfig br0 10.107.xxx.xxx netmask 255.255.255.xxx
+
         ifconfig br0 10.107.xxx.xxx netmask 255.255.255.xxx
         root@OpenWrt:~# brctl addif br0 ath0
+
         brctl addif br0 ath0
         root@OpenWrt:~# brctl addif br0 eth0
+
         brctl addif br0 eth0
         root@OpenWrt:~# ifconfig ath0 0.0.0.0
+
         ifconfig ath0 0.0.0.0
         root@OpenWrt:~# ifconfig eth0 0.0.0.0
+
         ifconfig eth0 0.0.0.0
 
         }
 
         }
 
  stop() {}
 
  stop() {}

Verze z 15. 7. 2008, 15:48

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 AirCA8-PRO#Scanov.C3.A1n.C3.AD
       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() {
       brctl addbr br0
       ifconfig br0 10.107.xxx.xxx netmask 255.255.255.xxx
       brctl addif br0 ath0
       brctl addif br0 eth0
       ifconfig ath0 0.0.0.0
       ifconfig eth0 0.0.0.0
       }
stop() {}
  • 8. 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/bridge S60bridge
root@OpenWrt:/etc/rc.d# ls -l
...
lrwxrwxrwx    1 root     root           18 Jul 10 23:55 S60bridge -> /etc/init.d/bridge
root@OpenWrt:/etc/rc.d#
  • 9. Bridge je hotov, podrobný soupis nastavení:
root@OpenWrt:~# brctl showstp br0
br0
 bridge id              8000.000b6b3f02d5
 ...
eth0 (2)
 port id                8002                    state                forwarding
 designated root        8000.000b6b3f02d5       path cost                100
 designated bridge      8000.000b6b3f02d5       message age timer          0.00
 designated port        8002                    forward delay timer        0.00
 designated cost           0                    hold timer                 0.55
 flags

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.