Anleitung zum flashen eines DIR-300 (Atheros) mit Kamikaze Open-WRT

Das Einrichten eines DIR-300 für das Freifunk Netz besteht im wesentlichen aus zwei Schritten. Als erstes muss der Router von den Fesseln der alten Firmware befreit werden (!!Garantieverlust!!). Alina Friedrichsen von den Berliner Freifunkern hat dazu ein schönes Script incl. Makefile gebaut. Mit diesem Script ist es auch möglich, den DIR-300 wieder mit der ursprünglichen Firmware zu flashen. (Hebt das den Garantieverlust eigentlich wieder auf?? :-)

Ich habe das ganze unter ubuntu auf einem Netbook gemacht. Es sollte aber auch von einem beliebigen anderen Rechner mit installiertem Linux oder von einer LiveCD funktionieren. Desweiteren sollte eine Internetverbindung bestehen, da sich die Scripte files aus dem Netz holen.

Hinweis für andere Freifunk-Communities: Es ist auf alle Fälle zu empfehlen das Ihr Euer Community Profil im LuCI Trac anmeldet. Das könnte dann so aussehen.

Schritt 1: Flashen der Kamikaze-Firmware

Um die Firmware auf den Router zu bekommen, muss auf dem Rechner ein TFTP Server laufen. Wenn nicht schon vorhanden muss er noch installiert werden.

sudo apt-get install tftpd-hpa

Um das Flashscript von Alina zu installieren müsst ihr folgendes tun

cd /tmp
wget http://x-alina.freifunk-potsdam.de/downloads/dir300-flash/dir300-flash-1.0.0.tar.gz
tar xvzf dir300-flash-1.0.0.tar.gz 
cd dir300-flash
sudo make install

Weiter geht es mit dem laden der für Freifunk angepassten Kamikaze Flashfiles. Ich habe die Links vom Freifunk Halle und Leipzig eingefügt, falls mal einer der Server nicht erreichbar ist.

cd /usr/local/share/dir300-flash/
sudo wget http://firmware.leipzig.freifunk.net/kamikaze/atheros/openwrt-atheros-root.squashfs

und

sudo wget http://firmware.leipzig.freifunk.net/kamikaze/atheros/openwrt-atheros-vmlinux.lzma


Jetzt beginnt das Flashen.

Das Netzwerkkabel wird am LAN Anschluss des DIR-300 und am LAN Anschluss des Rechner angeschlossen

sudo dir300-flash

Wenn das Script läuft den DIR einschalten (Stromstecker rein) Ist das Script durch, bootet der DIR-300 das ganze dauert eine ganze Weile... Geduld er ist nicht der Schnellste ;-) Der DIR ist jetzt unter 192.168.1.1 per telnet und web zu erreichen.

Schritt 2: Konfiguration über das Webinterface

Nach dem flashen ist der DIR unter 192.168.1.1 per Browser und telnet zu erreichen. Broswer starten und 192.168.1.1 aufrufen. Anmeldung erfolgt mit klick <Administration> User ist root und PW bleibt leer / oder admin?

Als erstes unter

  • <System>
    • <Passwort ändern> das PW ändern

Man kann sich aber auch per Telnet einloggen (ohne PW) dann dort mit <passwd> das PW wechseln. Dadurch wird Telnet abgeschaltet und ssh aktiviert.


Für den Freifunk Potsdam reicht folgendes um einen DIR300 ans Netz zu bekommen.

  • <Freifunk>
    • <Freifunkassistent>
      • <WLAN-Gerät> wifi0
      • <Freifunkzugang einrichten> KLICK
      • <Freifunk Community> Freifunk Potsdam (10.22.0.0/16)
      • <Mesh IP Adresse> IP eingeben die Ihr vorher hier reserviert habt.
      • <WLAN-DHCP> KLICK
      • <OLSR einrichten> KLICK
      • <Eigenen Internetzugang freigeben> KLICK (wenn ja)


  • <Netzwerk>
    • <Schnittstellen>
      • <WIFI0>
        • <Aliase> hier steht eine IP (104....) diese ist gegen die Mesh IP auszutauschen


Jetzt mesht der DIR300 und verteilt IP Adressen auf der wifi0 Schnittstelle. Nun wenden wir uns der "Feinjustierung" zu:


  • <Freifunk>
    • <Kontakt> bitte alles Notwendige eintragen, das man Euch im Fehlerfall erreichen kann. Durch die angegebenen Breiten und Längengrade kann man Euren AP dann auf einer Karte sehen. Die Daten bekommt Ihr hier
  • <System>
    • <System> hier bitte noch den Namen des AP eintragen zBsp: "4-224-DIR300-Bernd"
    • <Zeitzone> anpassen.

Die Paketverwaltung solltet Ihr nicht per Webinterface anfassen, bei mir stürzt der DIR300 immer gnadenlos ab wenn ich die Seite aufrufe :-(

Das war es dann auch schon.


Noch zur Sicherheit ein

reboot

Schritt 3 (optional): DHCP über ein Managed-Interface

Der DIR-300 kann - wie alle Atheros-Geräte - mehrere virtuelle Interfaces mit einer "Antenne" erzeugen. Man kann also ein ad-hoc Interface fürs Mesh aufsetzen und ein Managed-Interface als Zugangsmöglichkeit für Clients.

Das Beispiel geht von der Node-IP 10.22.6.224 aus. Achtung: wenn man im Freifunk-Assistenten "<WLAN-DHCP>" angekreuzt hat, muss man diese Option wieder rückgängig machen. In den config-Files wird diese Option als "wifi0dhcp" umgesetzt.

Zunächst braucht man ein weiteres WLAN-Interface. In /etc/config/wireless wird ein weiteres WLAN "Freifunk Potsdam 6.224" eingefügt:

config 'wifi-iface'
	option 'device' 'wifi0'
	option 'ssid' 'Freifunk Potsdam 6.224'
	option 'network' 'wifiap'
	option 'mode' 'ap'
	option 'encryption' 'none'

Die letzten beiden Ziffern in der ESSID sollten mit der IP des Nodes übereinstimmen. Das erleichtert die Fehlersuche mit technisch nicht erfahrenen Anwendern.

Dann muss unter /etc/config/network das neue Interace "wifiap" definiert werden und mit einer IP-Adresse versehen werden:

config 'interface' 'wifiap'
       option 'proto' 'static' 
       option 'ipaddr' '192.168.10.1'
       option 'netmask' '255.255.255.0'

Der bereits vorhandene Abschnitt "wifi0" sollte überprüft werden, die Syntax für Konfiguration der DNS-Server hat sich geändert. So sollte es aussehen:

config 'interface' 'wifi0'
       list 'dns' '88.198.178.18'
       list 'dns' '141.54.1.1'
       list 'dns' '212.204.49.83'
       list 'dns' '208.67.220.220'
       list 'dns' '208.67.222.222'
       option 'netmask' '255.255.0.0'
       option 'ipaddr' '10.22.6.224'
       option 'proto' 'static'

Jetzt kann in /etc/config/dhcp der DHCP-Server für das neue Interface konfiguriert werden:

config 'dhcp' 'wifiap'
       option 'interface' 'wifiap'
       option 'start' '100'
       option 'limit' '30'
       option 'leasetime' '12h'
       option 'netmask' '255.255.255.0'
       option force 1

Zu guter Letzt muss die Firewall den Verkehr maskieren und durchlassen. /etc/config/firewall:

config 'zone'
       option 'name' 'wifiap'
       option 'network' 'wifiap'
       option 'input' 'ACCEPT'
       option 'output' 'ACCEPT'
       option 'forward' 'ACCEPT'