UBNT Bullet2
Die Ubiquiti Bullet2 ist ein Wetterfester Router, der direkt oder über Winkelstecker an Antennen mit N-Buchse angeschlossen werden kann. Dadurch werden Antennenkabel überflüssig, was sich positiv auf die Empfangsempfindlichkeit auswirkt. Die Stromversorgung erfolgt über PoE (4,5+; 7,8- am RJ54). Wichtig ist, nicht mehr als 24 Volt in die Bullet zu schicken, da sie es dir wirklich übel nehmen :-). Weiters verfügt der Router über 6 LEDs, die Stromversorgung und LAN-Aktivität anzeigen. Im Originalbetriebssystem AirOS zeigen die restlichen LEDS die Empfangsleistung an, das aber bei OpenWRT leider nicht funktioniert. Da es für AirOS zwar ein olsrd-Paket gibt, der WLAN-Treiber aber nicht Ad-Hoc-Modus-fähig ist, installieren wir OpenWRT-Backfire Vienna.
Inhaltsverzeichnis
OpenWRT Installation
Für unsere Community ist es ratsam, 0xFF-Backfire Vienna zu verwenden, da hier alle nötigen Freifunk-Pakete bereits inkludiert sind, und einige Basiskonfigurationen bereits eingebaut wurden. Das aktuelle Paket (derzeit noch ein Release Candidate) findest du auf ftp://oe1xrw.ozw.wien.funkfeuer.at/contrib/atheros/openwrt-atheros-ubnt2-squashfs.bin
flashen aus AirOS
Ist am Router noch das originale AirOS installiert, kann das Image bequem mit Webinterface geflasht werden.
flashen mit TFTP
Ist dies nicht der Fall, kann man das Image auch per TFTP hochladen.
Dazu hält man beim "Power-up" die Reset-Taste (kleine Taste neben dem LAN-Port) solange, bis jeweils 2 LEDs abwechselnd zu blinken beginnen und lädt mittels TFTP-Client das oben erwähnte Image hoch.
> tftp 192.168.1.20 > bin > put <IMAGE-NAME> > exit
flashen mit tftpd32
Für alle, die mit der Kommandozeile ein wenig auf Kriegsfuß sind, gehts auch über tftpd32: http://tftpd32.jounin.net/tftpd32_download.html)
Nach der Installation das Programm starten und folgende Grundkonfigurationen vornehmen:
Folder TFTP-Client anwählen und folgende Einstellungen machen: Host = IP-deines Bullets. Das ist nach dem Reset IMMER 192.168.1.20, egal was vorher installiert war. LOCAL FILE = Pfad/Firmware, wo du das openwrt-atheros-ubnt2-squashfs.bin hinkopiert hast.
Nun beim "Power-up" die Reset-Taste (kleine Taste neben dem LAN-Port) solange halten, bis jeweils 2 LEDs abwechselnd zu blinken beginnen und danach am TFTP32 den PUT-Button klicken. Du siehst nun, wie das File hochgeladen wird und bekommst eine "success-Meldung" Dann dauert´s noch ca 2Min bis das Image vollständig geflashed und Bullet sich rebootet hat. Bitte um Geduld und Strom NICHT ausschalten!
Nach dem flashen
Dein Bullet hat nun die IP 192.168.1.1 und ist über http oder telnet erreichbar. Via telnet kannst du mit dem befehl "passwd" ein Passwort für den root-user setzen, um SSH zu aktivieren. Leichter gehts aber über http.
Konfiguration für einen 0xFF-Endknoten mit einer Bullet
Die folgende Netzwerk Konfiguration kann man entweder über das Luci User Interface des Routers oder einfacher unter anderem mit folgenden Programm (winscp) vornehmen:
http://winscp.net/eng/download.php
Es wird in den folgenden Einstellungen angenommen, dass der Router NATen soll, also ein 0xFF-Endknoten ist, der auf der Lan-Seite einen PC hat. Es ist natürlich auch möglich einen Knoten auf mehrere Bullets zu erweitern (sie laufen dann über einen Switch) oder auch eine Bullet an einen Linksys Router zu hängen. OpenWRT bridged das Ethernet und WIFI Interface standardmaessig, diese Standardkonfiguration wird veraendert um auf dem Wireless Interface die oeffentliche IP zu konfigurieren. Auf dem Ethernet Interface wird eine private IP Adresse konfiguriert.
Die relevanten Files fuer die Netzwerkkonfiguration sind:
- /etc/config/network
- /etc/config/wirless
- /etc/config/olrsd
- /etc/config/firewall
NETWORK + WIRELESS Konfiguration
/etc/config/network
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 'type' 'bridge' option 'proto' 'static' option 'ipaddr' '192.168.1.1' option 'netmask' '255.255.255.0' #hier wird die IP Adresse eingetragen die man im Reedemer zugewiesen bekommen hat. Für die Netzmaske gilt: im Addressbereich 193.238.15x.x: 255.255.252.0 <- Achtung im Addressbereich 78.41.11x.x: 255.255.255.0 <- Achtung config 'interface' 'air0' option 'proto' 'static' option 'dns' '193.238.157.5 193.238.157.16 193.238.156.225 208.67.220.220' option 'ipaddr' '193.238.159.XXX' option 'netmask' '255.255.25X.0'
/etc/config/wireless
config 'wifi-device' 'wifi0' option 'type' 'atheros' option 'disabled' '0' #hier wird der Channel eingestellt option 'channel' '10' option 'diversity' '0' option 'txantenna' '1' option 'rxantenna' '1' option 'country' '40' option 'outdoor' '1' option 'txpower' '8' option 'distance' '10000' config 'wifi-iface' option 'device' 'wifi0' option 'encryption' 'none' option 'mode' 'adhoc' #hier wird die entsprechende ssid + bssid eingestellt option 'ssid' 'v10.freiesnetz.www.funkfeuer.at' option 'bssid' '52:51:E5:D5:5A:43' option 'network' 'air0'
Die richtigen Werte fuer ssid/bssid entnimmt man am besten dieser Seite: Kanalwahl
In der Standardkonfiguration sind nur die Kanäle 1-11 aktiviert. Möchte man die Kanäle 12 oder 13 verwenden, ist der CountryCode auf "Österreich" zu stellen. Dazu ändert man in der Datei /etc/modules.d/50-madwifi die Zeile mit ath_ahb auf:
/etc/modules.d/50-madwifi
ath_ahb countrycode=40
OLSR Konfiguration
Das Konfigurationsfile fuer olsr heisst in OpenWRT: /etc/config/olsrd und es hat die uebliche UCI schreibweise, die sich von einer Standard olsr Konfigurationsdatei zwar syntaktisch unterscheidet aber die selben Konfigurationsparameter aufweisst. Die hier angegebenen Werte fuer Timer und Intervale sind von Empfehlungen auf der Funkfeuer Mailingliste uebernommen worden. Falls eine Parameter in der folgenden Liste vermisst wird so wurde dieser nicht explizit gesetzt da sein Standardwert bereits ok ist.
/etc/config/olsrd
config 'olsrd' option 'IpVersion' '4' option 'FIBMetric' 'flat' option 'LinkQualityLevel' '2' option 'LinkQualityAlgorithm' 'etx_ff' option 'OlsrPort' '698' option 'Willingness' '3' option 'NatThreshold' '1.0' config 'LoadPlugin' option 'library' 'olsrd_arprefresh.so.0.1' option 'ignore' '1' config 'LoadPlugin' option 'library' 'olsrd_dyn_gw.so.0.5' option 'ignore' '1' config 'LoadPlugin' option 'library' 'olsrd_httpinfo.so.0.1' option 'port' '1978' list 'Net' '0.0.0.0 0.0.0.0' option 'ignore' '1' config 'LoadPlugin' option 'library' 'olsrd_nameservice.so.0.3' option 'ignore' '1' config 'LoadPlugin' option 'library' 'olsrd_txtinfo.so.0.1' option 'accept' '0.0.0.0' option 'ignore' '0' config 'Interface' option 'ignore' '0' option 'interface' 'air0' option 'Mode' 'mesh' option 'Ip4Broadcast' '255.255.255.255' config 'InterfaceDefaults' option 'Mode' 'mesh' option 'Ip4Broadcast' '255.255.255.255' option 'HelloInterval' '5.0' option 'HelloValidityTime' '125.0' option 'TcInterval' '2.0' option 'TcValidityTime' '500.0' option 'MidInterval' '25.0' option 'MidValidityTime' '500.0' option 'HnaInterval' '25.0' option 'HnaValidityTime' '500.0'
Firewall-Settings
Nun darf man nicht auf die Firewall-Settings vergessen. Derzeit ist der Originalzustand, dass sich die OLSR-Partner nicht verbinden weil auf air0 input auf zurückweisen steht.
/etc/config/firewall
config 'defaults' option 'drop_invalid' '1' option 'input' 'ACCEPT' option 'output' 'ACCEPT' option 'forward' 'ACCEPT' option 'syn_flood' '1' config 'zone' option 'name' 'lan' option 'input' 'ACCEPT' option 'output' 'ACCEPT' option 'network' 'lan' option 'forward' 'ACCEPT' config 'zone' option 'name' 'wan' option 'network' 'air0' option 'input' 'ACCEPT' option 'output' 'ACCEPT' option 'forward' 'ACCEPT' option 'masq' '1' option 'mtu_fix' '1' config 'rule' option 'src' 'wan' option 'proto' 'udp' option 'dest_port' '68' option 'target' 'ACCEPT' option 'family' 'ipv4' config 'rule' option 'src' 'wan' option 'proto' 'icmp' option 'icmp_type' 'echo-request' option 'target' 'ACCEPT' config 'include' option 'path' '/etc/firewall.user' config 'forwarding' option 'dest' 'lan' option 'src' 'wan' config 'forwarding' option 'dest' 'wan' option 'src' 'lan'
DHCP DNS Option
Wenn man moechte, dass Clients, DNS Requests direkt an den DNS Server schicken, kann der DHCP Server so eingerichtet werden, dass er dies den Clients als Option mitgibt.
/etc/config/dhcp
config 'dnsmasq' option 'domainneeded' '1' option 'boguspriv' '1' option 'localise_queries' '1' option 'rebind_protection' '1' option 'rebind_localhost' '1' option 'local' '/lan/' option 'domain' 'lan' option 'expandhosts' '1' option 'authoritative' '1' option 'readethers' '1' option 'leasefile' '/tmp/dhcp.leases' option 'resolvfile' '/tmp/resolv.conf.auto' list 'server' '193.238.157.5' list 'server' '193.238.157.16' config 'dhcp' 'lan' option 'interface' 'lan' option 'start' '100' option 'limit' '150' option 'leasetime' '12h' config 'dhcp' 'wan' option 'interface' 'wan' option 'ignore' '1' config 'dhcp' option 'interface' 'air0' option 'ignore' '0' option 'start' '100' option 'limit' '150' option 'leasetime' '12h'
Sicherung der Konfiguration
Läuft der Router einmal, ist es sehr ratsam eine Sicherungsdatei der Konfiguration anzulegen. Man macht das über das UI unter: Administration -> System -> Sichern/wiederherstellen -> Sicherung erstellen
Bekannte Probleme
Der Router hat keine drahtlos Schnittstelle mehr, klickt man auf olsr kommt folgende Zeile:
"Es konnte keine Verbindung zum OLSR-Daemon hergestellt werden! Stellen Sie sicher das OLSRd läuft und das "txtinfo" Plugin auf Port 2006 geladen und "127.0.0.1" als Accept-Host gesetzt ist"
Ich konnte das Problem nur folgendermaßen lösen:
Schritt1: Im UI auf Administration -> System -> Sichern/wiederherstellen -> Grundsicherung wiederherstellen
Schritt2: aus dem Sicherungsarchiv die Sicherungsdatei wiederherstellen
Anmerkung/Tipp
Die Aussparung im Schraubverschluss an der Unterseite ist zwar genau so gross dass ein RJ45 Stecker durchpasst, trotzdem sollte man bei gekauften (bereits gekrimpten) Kabeln darauf achten dass diese keinen Klippschutz haben. Dieser kann beim Durchfuehren des Kabels bzw. beim zuschrauben zu Problemen fuehren und muss dann evt. mit einem Messer vorsichtig entfernt werden.
Hardware Pics
- http://www.flickr.com/photos/mattw/3103755054/sizes/l/
- http://www.flickr.com/photos/mattw/3103756610/sizes/l/
(gruene platine = Bullet2, weisse platine = Bullet5)
(hier siehst Du, das Bullet2 und Picostation2 baugleich sind bis auf den Antennenanschluss)