WRT54G/GS-WLAN-Router-Firmwares

(Stand: 19.07.2005)

Die Herstellerfirmware des Linksys WRT54G-Routers bietet eine Basisfunktionialität. Es gibt jedoch eine Reihe von Weiterentwicklungen der Open Source-Firmware, die diesen preisgünstigen Router beträchtlich erweitern. Sveasoft und das Dresdener DD-WRT Projekt von Sebastian Gottschall haben viele Verbesserungen implementiert. Mit den Firmwares von OpenWRT.org und Freefunk.net habe ich noch keine Erfahrungen. Bei der Vielzahl verschiedener Firmwares beschränke ich mich hier auf die Versionen, die bei mir für die Internetanbindung schon im Einsatz waren bzw. sind.
Achtung: mit dem Einspielen dieser Firmwares verliert man die Linksys-Herstellergarantie. Vor dem Flashen sollte man den Router auf die Hersteller-Defaults zurücksetzen, dabei verliert man die zuvor getroffenen Einstellungen (neuere Firmwares bieten ein Backup als Downloaddatei). Eine Anleitung zum Flashen des WRT54G findet man bei freifunk.net. Sollte es Probleme gegeben haben und der Router ist nicht mehr ansprechbar, findet man hier, hier und hier nützliche Hinweise zum Wiederbeleben des Routers.

Features der eingesetzten Sveasoft/DD-WRT-Firmware

Folgende Features sind für mich besonders wichtig und nützlich:
Sveasoft Alchemy-pre5.2.2 v2.09.1.8sv (26.08.2004 installiert)
Ein "Backup" der Routereinstellungen in Form von gespeicherten Administrationsbildschirmseiten ist möglich z. B. mit GNU-wget 1.8.2 von Hrvoje Niksic:
wget  -r  --convert-links  --html-extension  --proxy=off  --http-user=""  --http-passwd=<Admin-PW>  http://<Router-IP>
Es lädt einfach alle Seiten des Web-Administrationsfrontends auf den Rechner runter. Dieses Verfahren funktioniert auch mit den folgenden Firmwares einwandfrei, dabei wird dann auch die Parameter-Backupdatei runtergeladen.

Sveasoft Alchemy-pre5.3 v2.04.4.8sv (02.10.2004 installiert)
Unterstützt nun ein Backup der Geräteinstellungen mittels download- und restorebarer Datei. Auf der Status/Wireless-Seite kann man nun mit dem Survey-Button auf einfache Art alle gescannten Netze anzeigen lassen, dies trennt jedoch anders als "wl scan, wl scanresults" in der Telnet-Session eine laufende Verbindung und auch eine evtl. laufende Telnet-Sitzung. Die Abfrage der Routerparameter mittels SNMP und damit der Einsatz von MRTG funktioniert damit auch. Meine Konfigurationseinstellungen mit Stand Alchemy pre5.3 finden sich hier.

Sveasoft Alchemy-6.0-RC1.w42 v2.04.4.8sv (17.12.2004 installiert)
Scheint realistischere Angaben über die CPU-Last an die SNMP-Schnittstelle zu liefern, auf jeden Fall ist die angezeigte CPU-Last seit Installation der 6.0 deutlich höher.
Sveasoft listet u. a. folgende Features für die Alchemy-Firmware 6.0 auf: PPTP VPN Server, 2-Weg-Bandbreiten Management (incl. P2P, VoIP, IM), SSH Client & Server, Telnet, Startup-, Firewall-, und Shutdown Skripte, WDS Repeater Modus, Client Modus (unterstützt mehrere angeschlossene Rechner), Adhoc-Modus, OSPF-Routing, RIP2-Routing, Antennenleistung regelbar bis 251 mW, Antennenauswahl (rechts, links, automatisch), statische DHCP-Adreßzuordnung, DynDNS Unterstützung (DynDNS.org, TZO.com, ZoneEdit.com), WLAN MAC-Adressencloning, VLAN support (hardware only), WPA over WDS, WPA/TKIP mit AES, P2P-Blocking/Bandbreiten Management (Gnutella, Kazaa, ...), Port Triggerung, Wake-On-Lan, Übertragung von Ntop Statistiken und Syslog-Meldungen an Client-Rechner, SNMP, Konfigurations-Backup and -Restore, automatischer Reset nach Firmware-Update, Status-Bildschirm und SNMP-Meldungen mit System Uptime und CPU-Lastdurchschnitt, Statusanzeige von WLAN-Clients und WDS, AcessPoint-Scananzeige, Unterstützung von NTP-Zeitservern.

Sveasoft Alchemy-6.0-RC5a v3.01.3.8sv (05.01.2005 installiert)
Verschiedene Bugfixes und Verbesserungen in der Firewall. Download der GPL-Code Firmware bei Sveasoft (Voraussetzung: 20 US$-Supportaccount) oder einem der "TheIndividual"-Mirrors (kostenlos).

Sveasoft Alchemy-6.0-RC4a FBN Edition (DD-WRT V.16 (?)) (24.01.2005 installiert)
Die von dem Deutschen "BrainSlayer" erweiterte Firmware "DD-WRT", die offenbar für den Förderverein Bürgernetz Dresden e. V. entstand.
Die Firmware zeigt eine umfangreiche Statusseite des Routers an, beinhaltet einen Samba-Client zum Mappen von Windows-Shares. Sie kann automatisiert Scripte von den Samba-Shares starten und besitzt einen WRT-radauth-basierten Radius Server u. Client, den man allerdings nur im AP-Modus und nicht im Client-Modus nutzen kann. An die normalen Administrationsseiten kommt man über den "Admin Link" unten rechts.

Alchemy-6.0-RC5a FBN-Edition #19 (auch: DD-WRT V.19) (27.01.2005 installiert)
Die Statusseite ist nun abschaltbar und es sind mehr Firewall-Optionen freigeschaltet. Das Backup/Restore der Einstellungen funktioniert wieder. Der Scan nach APs von der WLAN-Statusseite funktioniert in dieser Version nicht, wohl aber im Nachfolger #20. Die Version unterstützt den Rflow Collector, eine Software zum Anzeigen des Traffics der angeschlossenen WRT-Clients.

Alchemy-6.0-RC5a FBN-Edition #20 (auch: DD-WRT V.20) (08.02.2005 installiert)
Die Access Point-Survey auf der Seite Status/Wireless funktioniert noch immer nicht (Absturz des Webinterfaces), die Site Survey in der Telnet-Sitzung mit wl scan; wl scanresults ist aber für mich ausreichend. Auf der Seite Security/Firewall sind noch Filteroptionen für Multicast, Internet NAT Redirection und Ident (Port 113) dazugekommen.

Hier die Statusseite, die man mit der Option Administration "Info on Start" aktivieren kann. Sie wird ohne Paßwort direkt auf Startseite des Router (also etwa: http://192.168.1.1/ bzw. als http://192.168.1.1/Info.htm) angezeigt. Unten rechts der Verweis auf das DD-WRT Projekt:
Screenshot der DD-WRT-Statusseite

Die Optionen auf der Firewallseite:
Firewall-Optionen des Linksys WRT54G mit DD-WRT-Firmware


DD-WRT #21c (05.03.2005 installiert)
Die Änderungen sind äußerlich kaum sichtbar: Aus markenschutzrechtlichen Gründen sind die Verweise auf Sveasoft aus dem Webinterface entfernt worden. Die Firmware wurde weiter modularisiert, besitzt nun ein LZMA basiertes SquashFS Dateisystem (die Firmware ist nun kleiner) und KAID Unterstützung für die XBOX. Die Site-Survey im Webinterface liefert immer noch kein Ergebnis, aber auch keinen Absturz.
Ausschnitt der Optionen auf dem Administrationsbildschirm:
DD-WRT #21c Administrationsbildschirm

Sveasoft Alchemy-6.0-RC7a (noch nicht installiert), im LinksysInfo.org-Forum gibt es aber bereits einen Download-Link für registrierte User zur Sveasoft Alchemy 1.0-Firmware (Talisman) incl. den Quellen.

Ausblick:
DD-WRT #22+
Mit Chillispot (damit kann der Router im AP-Modus eine Anmeldeseite anzeigen, die eine Art lokale Hotspots mit Autorisierung ermöglicht), einem beschreibbaren Dateisystem wie bei OpenWrt und Kompatibilität zu OpenWrt, so daß man OpenWrt-Module, die keine Konfiguration mittels Web-Interface benötigen, direkt übernehmen kann.
Das Changelog von #22 prefinal 4: kaid mac config fixed, chillispot startup fixed, wireless advanced helpfile updated, wireless advanced fixed, Wireless short/long preamble selection added, wireless access option added in wireless advanced menu, chillispot dhcp interface selection (LAN, WAN, LAN + WLAN), chillispot additional configuration added, client leases stored to jffs2 added (if enabled), multilanguage support for German, Spanish, French, Italian, web server improved, several web bugs fixed, the jffs2-filesystem is working now, firmware splittet in 2 versions: basic = does not contain dropbear, chillispot, samba and kaid and full = all features of the common firmware.
Die Firmware ist modular in einzelne Module gegliedert, die man je nach Bedarf runterladen und im Router installieren kann. Ähnliches plant auch Sveasoft für die kommende Talisman-Firmware.

Scannen von Access Points

Um nach Access Points zu scannen, kann man folgendes Script in einer Telnet-Sitzung starten:
while [ 1 ]; do wl scan; sleep 3; wl scanresults; sleep 10; done

Antennen ausrichten

Um die Antennen Richtung Access Point genau auszurichten, kann man sich die Signalstärke seines AP kontinuierlich ausgeben lassen. Man startet eine Telnet-Sitzung zum Router und fügt das folgende Script mit Cut & Paste ein:
while [ 1 ]; do CH=`wl channel|grep target|cut -c16-`; MAC=`wl assoclist|cut -d' ' -f2`; RA=`wl rate|cut -d' ' -f3`;RSSI=`wl rssi|cut -d' ' -f3`;
NOISE=`wl noise|cut -d' ' -f3`;let SNR="$RSSI- $NOISE";echo "MAC=$MAC Kanal $CH: Rate=$RA RSSI=$RSSI Noise=$NOISE SNR=$SNR"; sleep 1; done
Das Script führt in einer Endlosschleife nacheinander die Befehle wl channel, wl assoclist, wl rate, wl rssi, wl noise aus, formatiert das Ergebnis mittels grep und cut zu der Ausgabezeile und wartet dann 1 s bis zur nächsten Wiederholung. Das Ergebnis sieht dann beispielsweise so aus (knapp eine Zeile pro Sekunde):
MAC=00:0B:6B:32:A7:83 Kanal 10: Rate=11 RSSI=-63 Noise=-91 SNR=28
MAC=00:0B:6B:32:A7:83 Kanal 10: Rate=11 RSSI=-64 Noise=-91 SNR=27
MAC=00:0B:6B:32:A7:83 Kanal 10: Rate=11 RSSI=-64 Noise=-90 SNR=26
MAC=00:0B:6B:32:A7:83 Kanal 10: Rate=11 RSSI=-63 Noise=-91 SNR=28
MAC=00:0B:6B:32:A7:83 Kanal 10: Rate=11 RSSI=-63 Noise=-92 SNR=29
...
MAC-Adresse des Access Points, Kanalnummer, Übertragungsrate in Mbps, Signalstärke in dB, Noise in dB, Signalrauschabstand in dB (dieser sollte mindestens 10 dB betragen).
Man kann sich auch die SSID anstelle der MAC-Adresse ausgeben lassen:
SSID="www.Free42.de IntraPark ruc-2" Ch 10: Rate=11 RSSI=-63 Noise=-90 SNR=27
SSID="www.Free42.de IntraPark ruc-2" Ch 10: Rate=11 RSSI=-64 Noise=-91 SNR=27
SSID="www.Free42.de IntraPark ruc-2" Ch 10: Rate=11 RSSI=-63 Noise=-90 SNR=27
SSID="www.Free42.de IntraPark ruc-2" Ch 10: Rate=11 RSSI=-62 Noise=-91 SNR=29
SSID="www.Free42.de IntraPark ruc-2" Ch 10: Rate=11 RSSI=-63 Noise=-91 SNR=28
mit diesem Script:
while [ 1 ]; do CH=`wl channel|grep target|cut -c16-`; SID=`wl ssid|cut -c15-`; RA=`wl rate|cut -d' ' -f3`;RSSI=`wl rssi|cut -d' ' -f3`;
NOISE=`wl noise|cut -d' ' -f3`;let SNR="$RSSI- $NOISE";echo "SSID=$SID Ch $CH: Rate=$RA RSSI=$RSSI Noise=$NOISE SNR=$SNR"; sleep 1; done

Traffic-Shaping

Manchmal möchte man den Verkehr auf bestimmten Ports (z. B. FTP Port 21 oder P2P-Ports) drosseln, damit diese zwar laufen, aber noch ausreichend Bandbreite für andere Zwecke übrig bleibt. Da der WRT54G unter Linux läuft, kann man auch Standard-Linux Traffic Shaping-Tools wie tc (traffic control) einsetzen. Leider ist die Bedienung mit den vielen Parametern sehr kryptisch. Das Samba-Share-Laufwerk der DD-WRT-Firmware kann dabei das Laden des Shell-Skripts vereinfachen. Im Berliner Quake-Forum fand ich folgendes Beispiel, welches Port 1234 auf 8 kbit/s begrenzt und einen guten Eindruck der tc-Parameter gibt:
tc qdisc add dev eth0 root handle 1: cbq avpkt 1000 bandwidth 10mbit
tc class add dev eth0 parent 1: classid 1:1 cbq rate 8kbit allot 1500 prio 5 bounded isolated
tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip sport 1234 0xffff flowid 1:1
tc qdisc add dev eth0 parent 1:1 sfq perturb 10
Weiterführende Links:

Firmware-Links

Zur Homepage
Zurück zur WLAN-Seite

Auswahlmenü: (JavaScript aktivieren!)