DD-WRT Doku (DE)

From DD-WRT Wiki

Jump to: navigation, search

ENGLISH TRANSLATION

Contents



Achtung: Diese Wiki wurde schon lange nicht mehr aktualisiert. Viele Artikel behandeln DD-WRT Versionen die nicht mehr aktuell sind (DD-WRT Version 22pre5) und Probelem die so nicht mehr existieren.

Die Community hat wahrscheinlich kein Interesse mehr an einer Deutschen-Wiki.

Attention: This Wiki is out of date!

it seems that the german community is not longer interested in this german-wiki.


[edit] Projektbeschreibung

Dieses Projekt beschäftigt sich mit der Dokumentation von DD-WRT, einer freien Firmwaremodifikation, die haupsächlich für den WRT54G(GS) von Linksys gedacht ist. Wie jedes Media-Wiki lebt auch dieses vom Mitmachen. Jeder darf, und soll Artikel verfassen, editieren und diskutieren.
Viel Spaß!

[edit] Was ist DD-WRT?

Das Interface der aktuellen DD-WRT v23/v24 Versionen
Das Interface der aktuellen DD-WRT v23/v24 Versionen

DD-WRT ist eine freie Firmware für die Router Linksys WRT54G und Linksys WRT54GS. In der Version V23SP1 vom 16.05.2006 werden auch das Gerät Asus WL-500 Deluxe und verschiedene Router von Allnet, Buffalo, Belkin, Motorola, Siemens (Gigaset SE505), Ravo und Askey unterstützt. Mit der Version V24 werden neue Geräte, auf dem 802.11N-Draft Standard basierend, unterstützt. Siehe dazu auch die offizielle Hardware-Support-Liste.

DD-WRT basiert auf einem minimalen Linux und Code, der von Linksys unter der Software Lizenz GPL veröffentlicht wurde.

Zunächst erweiterte die Firma Sveasoft die veröffentlichen Quelltexte um neue Funktionen. Als Sveasoft jedoch 20 Dollar für den Zugriff auf die Supportforen ihrer Firmware und den Downloadbereich verlangte, gründeten die Dresdner Sebastian Gottschall ("BrainSlayer", BS) und Matthias Engel ("mateng") auf Basis dieser Software das DD-WRT-Projekt. Seither erschienen weiterentwickelte Versionen der Firmware auf der Homepage von DD-WRT. Mit der Version 23 schließlich orientierte sich Brainslayer stärker an openwrt, einer modular angelegten Firmware, die bis vor kurzem kein Webinterface hatte und bei Geschwindigkeit, Stabilität und Funktionalität Vorteile gegenüber Sveasoft als Firmwarebasis versprach. Zwischen den beiden Projekten werden nach Brainslayers Angaben Ideen ausgetauscht, so dass beide von einander profitieren.

DD-WRT bietet einen deutlich größeren Funktionsumfang als die Original Firmware von Linksys. Es sind auch einige versteckte Optionen freigeschaltet. Desweiteren kommen noch einige Zusatzfunktionen hinzu, wie etwa das Einbinden von Samba-Freigaben, WDS, RADIUS-Authentifizierung.

[edit] Unterstützte Geräte

Modell Version Prozessor Flash RAM USB
Avila Gateworks GW2347 - XSCALE IXP 425 266 MHz 8 MB 32 MB keine
Avila Gateworks GW2348-2 - XSCALE IXP 425 266 MHz 8 MB 32 MB keine
Avila Gateworks GW2348-4 - XSCALE IXP 425 533 MHz 16 MB 64 MB keine
Linksys WRT54G 2.0, 2.2, 3.0, 3.1 Broadcom 4712 200 MHz 4 MB 16 MB keine
Linksys WRT54G 4.0 Broadcom 5352 200 MHz 4 MB 16 MB keine
Linksys WRT54GL 1.0, 1.1 Broadcom 5352 200 MHz 4 MB 16 MB keine
Linksys WRT54GS 1.0 Broadcom 5352 200 MHz 8 MB 32 MB keine
Linksys WRT54GS 1.1 Broadcom 4712 200 MHz 8 MB 32 MB keine
Linksys WRT54GS 4.0 Broadcom 5352 200 MHz 4 MB 16 MB keine
LaFonera Atheros AR5315 183 MHz 4 MB 16 MB keine
ASUS WL-500g  ??? Broadcom 4710 125 MHz 4 MB 16 MB 1x v1.1
ASUS WL-500g Deluxe ab dem 2005-11-01 Release von v23beta2 Broadcom 5365 200 MHz 4 MB 32 MB 2x v2.0
ASUS WL-500g Premium Broadcom 4704 266 MHz 8 MB 32 MB 2x v2.0
Siemens SE 505 V1 Broadcom 4710 125 MHz 4 MB 16 MB keine
Siemens SE 505 V2 Broadcom 4712 200 MHz 4 MB 8 MB keine (USB-Mod)
Siemens SX550/SX550i - Broadcom 4710 125 MHz 4 MB 16 MB keine
Motorola WR850G V1 Broadcom 4710 125 MHz 4 MB 16 MB keine
Motorola WR850G V2 Broadcom 4712 200 MHz 4 MB 16 MB keine
Motorola WR850G V3 Broadcom 4712 200 MHz 4 MB 16 MB keine
Buffalo WBR2G54S Broadcom 4712 200 MHz 4 MB 16 MB keine
Buffalo WHR-G54S Broadcom 5352 200 Mhz 4 MB 16 MB keine
Buffalo WHR-HP-G54 Broadcom 5352 200 Mhz 4 MB 16 MB keine
  • Linksys WRT54G v1.0, v1.1, v2.0, v2.2, v3.0, v3.1, v4.0, v5.0, v5.1, v6.0 (ab v5.0 nur Micro)
    • NICHT v7.0
  • Linksys WRT54GL v1.0, v1.1 (ab dem 2005-11-24-Release von v23beta2)
  • Linksys WRT54GS v1.0, v1.1, v2.0, v2.1, v3.0, v4.0, v5.0, v5.1, v6.0 (ab v5.0 nur Micro)
  • Asus WL-500G Deluxe (ab dem 2005-11-01 Release von v23beta2)
  • Asus WL-500g Premium
  • Siemens SE505 (Link zum Forum)
  • Motorola WR850G (ab dem 2005-11-07 Release von v23beta2)
  • Buffalo WBR2G54S
  • Buffalo WHR-G54S
  • Buffalo WHR-HP-G54

Hardware-Support-Liste

[edit] Komplette Featureliste

  • Hotspot-Portal (Sputnik Agent, Chillispot)
  • PPTP-VPN-Server
  • 2-Wege-Bandbreiten-Management (inkl. P2P, VoIP, IM)
  • SSH-Client und -Server (Dropbear)
  • Telnet
  • Startup-, Firewall-, und Shutdown-Skripte
  • WDS-Repeater-Modus
  • Client-Modus (unterstützt mehrere angebundene Geräte)
  • Ad-Hoc-Modus
  • OSPF-Routing
  • RIP2-Routing
  • Power-Boost-Funktion (bis 251 mW Sendeleistung)
  • Antennenauswahl
  • Statische DHCP-Adresszuweisung
  • Zusätzliche DDNS-Unterstützung
  • Wireless MAC-Adressen duplizieren
  • VLAN-Unterstützung (WAN-Port als normalen LAN-Port)
  • WPA über WDS
  • WPA/TKIP mit AES
  • WPA2-Unterstützung
  • Client-Modus WPA
  • Client-Isolation-Modus
  • P2P Blocking & Bandbreiten-Management (Gnutella, Kazaa, etc.)
  • Port Triggering
  • Port Forwarding (30 Einträge möglich)
  • Wake-on-Lan
  • Remote Syslog
  • Remote Ntop-Statistik
  • XBOX-Kaid-Unterstützung
  • SNMP
  • IPv6-Unterstützung
  • Sicheres Backup und Restore
  • Reset bei Firmware-Upgrade
  • Status-Anzeige für Wireless Clients und WDS mit Systembetriebszeit, Prozessorlast u. a.
  • Site Survey
  • Remote NTP-Server
  • Webserver
  • QoS
  • FTP-Server
  • 12 verschiedene Sprachen
  • Unterstützt auch die neuen WRT54G V3, V3.1, V4 und WRT54GS V2.1, V3, V4 Modelle
  • und vieles mehr ...

[edit] Die verschiedenen Pakete

(Achtung dieser Artikel ist nicht mehr aktuell)

Aktuelle Version 23 SP1 vom 16.05.2006 (Changelog) wurden die Pakete folgendermaßen aufgeteilt:

  • dd-wrt.v23_sp1_micro - beinhaltet nicht: Chillispot, NoCat, RFlow, Kaid, Samba Client, SNMP, IPv6, MMC/SD Card Support, SSH, PPTP/PPTP Client, UPnP, HTTPS Support für Web Management, OpenVPN, SIPatH. Die Datei ist kleiner als 2MB. Sie ist bestimmt für Router mit weniger als 2MB Flash Speicher. (z.B. Linksys WRT54G version 5). Jeder Router sollte in der Lage sein, diese Firmwareversion verwenden, so auch die Routerversionen vor WRT54G v5. für Geräte die wenig Speicher und Flash Platz haben. Es wird jetzt auch WRT54G/GS v5 unterstüzt. Für weitergehene Informationen zum Flashen von WRT54G/GS v5 Geräten bitte die Vxworkskiller Seite besuchen.
  • dd-wrt.v23_sp1_mini - beinhaltet nicht: chillispot, nocat, rflow, kaid, samba client, SNMP, IPv6, MMC/SD Card Support, und HTTPS support für web management. Es beinhaltet fast alles was man braucht, lässt aber noch genug flash Platz für Anpassungen mit jffs.
  • dd-wrt.v23_sp1_std - beinhaltet nicht: OpenVPN, SIPatH. Es beinhaltet fast alles was man für die professionelle Nutzung braucht inklusive snmp, hotspot features wie chillispot und sputnik (tm).
  • dd-wrt.v23_sp1_voip - beinhaltet nicht: Kaid, MMC/SD Card Supp., OpenVPN - beinhaltet zusätzlich SIP Gateway Routing system für managing SIP capable Geräte in einem privaten Netzwerk.
  • dd-wrt.v23_sp1_vpn - beinhaltet nicht: Kaid, RADVD, SIPatH. - beinhaltet einen voll featured openvpn client für Netzwerke mit hohen Sicherheitsanforderungen.


Micro Mini Standard VOIP VPN
Chillispot X X X
HTTPS Support for Web Management X X X
IPv6 X X X
kaid X
MMC/SD Card Support X X
NoCat X X X
OpenVPN X
PPTP/PPTP Client X X X X
RADVD X X X X
RFlow X X X
Samba Client X X X
SIPatH X
SSH X X X X
UPnP X X X X

[edit] Unterschiede zwischen den 6 verschiedenen Dateien

Dateiname Beschreibung
dd-wrt.v23_<type>_asus.trx Web interface version zum flashen. Siehe auch Flash_Your_Asus_WL-500G_Deluxe
dd-wrt.v23_<type>_generic.bin Generic version zum flashen über das web interface auf allen unterstützten Geräten (inclusive Linksys WRT54G/GL/GS) und zum flashen von Siemens_SE505 mit boot wait tftp on 192.168.2.1
dd-wrt.v23_<type>_wrt54g.bin tftp versions für WRT54G. You CAN use this to flash via web interface but do so only AFTER you have done so using the mini version. These versions were just made specifically for TFTPing to those routers. (v5/v6 note: Since the WRT54G/GS v5-v6 uses a modified WAP54Gv3 once made 'linux ready', it will not accept these standard WRT54G/GS firmwares. You must use the 'generic' build for TFTPing to these units).
dd-wrt.v23_<type>_wrt54gs.bin tftp versions for WRT54GS. You CAN use this to flash via web interface but do so only AFTER you have done so using the mini version. These versions were just made specifically for TFTPing to those routers.
dd-wrt.v23_<type>_wrt54gsv4.bin tftp versions for WRTGSv4. You CAN use this to flash via web interface but do so only AFTER you have done so using the mini version. These versions were just made specifically for TFTPing to those routers.
dd-wrt.v23_<type>_wrtsl54gs.bin tftp versions for WRTSL54GS. You CAN use this to flash via web interface but do so only AFTER you have done so using the mini version. These versions were just made specifically for TFTPing to those routers.
dd-wrt.v23_<type>_moto.trx For initial Flash_Your_Motorola_WR850G (Micro and Mini builds ONLY)

[edit] Betrieb als Access-Point

Als erstes sollte ich einen Computer haben. Als nächstes sollte schon ein Internetanschluss vorhanden sein. Dieser sollte am Besten als DSL-Flatrate vorhanden sein. Wenn diese Voraussetzungen gegeben sind, sollte ich mir einen Linksys WRT54G/GS/L der richtigen Hardwareversion (s. u.) anschaffen. Diesen bekomme ich im gut sortierten IT-Fachhandel.

[edit] Betrieb als Client

Bei Nutzung des WRT54G im Client-Modus brauche ich neben einer Alternativ-Firmware wie DD-WRT oder Alchemy, die den Client-Modus unterstützt, einen Internetprovider, der in meiner Nähe (möglichst mit Sichtkontakt!) einen Access Point (AP) betreibt und dessen Zugangsdaten (Login bzw. Freischaltung meiner MAC-Adressen am AP). Außerdem empfiehlt es sich die 2-dB-Stabantennen gegen leistungsstärkere Antennen, z. B. BiQuad-Antennen, zu tauschen und diese Antennen außerhalb des Hauses anzubringen.
Leistungsstärker heißt: Antennen mit einem höheren dB/dBi-Wert, also statt mit nur 2 dB, besser mit 12 dB. Das wird durch eine stärkere Richtwirkung der Abstrahlung erreicht: also statt kugel- oder diskusförmiger Abstrahlung (Beispiel: Glühbirne) bei der Stabantenne, eine mehr keulenförmige Abstrahlung (Beispiel: Taschenlampe). Die Antenne muß zum WRT54G einen RP-TNC-Stecker haben (Gewinde innen mit Kelch). Diese werden bei Ebay bereits ab 1,99 Euro das Stück angeboten.

Drahtlos angebundene Computer sind am WRT54G im Client-Modus leider nicht zu betreiben - man braucht dann einen zweiten Access Point bzw. muß die PCs per LAN-Kabel an den vier LAN-Ports anbinden!

[edit] Richtig Flashen

Nach dem Einspielen einer neuen Firmware arbeitet die neue Firmware erst einmal mit den Einstellwerten, die in der vorhergehenden Firmware eingestellt waren. Ungünstige Einstellungen können dazu führen, dass das Gerät bereits beim Booten der neuen Firmware abstürzt und auf keinerlei Eingaben reagiert.

Von einer Firmwareversion, die als Up- bzw. Downgrade für eine bestimmte Firmware angeboten wird, darf man minimal erwarten, dass das nicht passiert, wenn die Einstellwerte der Ausgangsfirmware vor dem Flashen auf die Standardwerte zurückgesetzt werden. Allerdings darf man nicht erwarten, dass die neue Firmware mit den Standard-Einstellwerten der alten Firmware fehlerfrei arbeitet. Es wird lediglich sichergestellt, dass die neue Firmware soweit funktioniert, dass sich die Standardwerte für die neue Firmware setzen lassen.

[edit] Der Hard-Reset oder 30/30/30-Reset

Um Fehlern beim Flashen vorzubeugen, sollte die alte Firmware vor dem Flashen und die neue Firmware nach dem Flashen auf ihre Standardwerte gesetzt werden. Dazu muss der Hard- oder auch 30/30/30-Reset vor und nach jedem Firmware-Upgrade / Downgrade durchgeführt werden! Er bewirkt das Löschen der Einstellungen im NVRAM und setzt die DD-WRT-Firmware auf Standard-Werte zurück.

1. Das Gerät ist eingeschaltet (am Strom angestöpselt), nun drückt und hält man die Reset-Taste auf der Rückseite für 30 Sekunden.

2. Ohne Loslassen der Reset-Taste, trennt man das Gerät vom Strom und hält die Reset-Taste für weitere 30 Sekunden.

3. Ohne Loslassen der Reset-Taste, das Gerät wieder in Betrieb nehmen und erst nach weiteren 30 Sekunden die Reset-Taste loslassen.

[edit] Hinweis Asus-Geräte

Bei Asus-Geräten ist zu beachten, dass der normale 30/30/30-Reset das Gerät nach dem 3. Schritt in den Recovery-Mode wechselt. Daher muss der Router nach den 30 Sekunden des 3. Schrittes nochmals vom Strom getrennt werden und nach ein paar Sekunden wieder angeschlossen werden damit er normal startet.

[edit] Hinweis WRT54

Beim WRT54 kann es passieren, dass nach dem 3. Schritt die Power-Leuchte durchgängig blinkt. Einfach nochmals für 5 Sekunden vom Strom trennen und wieder anstöpseln. Dann sollte der Router normal starten und leuchten.

[edit] Umgang mit Backupkonfigurationen

Aus den oben genannten Gründen sollten sie eine Backupkonfigurationen nur in die gleiche Firmwareversion zurückspielen, mit der die Backupkonfiguration erstellt wurde. Verwenden Sie keine gespeicherten Backupkonfigurationen, wenn Sie ein anderes Firmware-Build nutzen (verschiedene svn Build-Nummern).

[edit] Grundlagen

Wer es noch nicht weiß: Die Linksys-Router können eine andere Firmware aufgespielt bekommen, die weitere ungeahnte und zum Teil vielleicht auch unnötige Einstellungsmöglichkeiten bieten. Jedoch erweist sich dieses Aufspielen einer anderen Firmware öfter als fehlerhaft. Den derzeitigen Fehlerberichten zufolge funktioniert dann der Router vorerst nicht mehr, jedoch gibt es in so einem Fall auch Lösungen, 2, 3.

Doch um diesem "falschen" Flashen vorzubeugen, diene diese Anleitung. (da dieses Wiki aber noch im Aufbau ist, so sei beachtet, dass diese Art und Weise "richtig" zu flashen nur EINE Möglichkeit von vielen ist. Wer sich also strikt an diese Anleitung hält und trotzdem Probleme bekommt, kann diesen Beitrag selbst ändern, dem Editor dieses Beitrages eine Rüge geben oder sonstwas gemäß der Vernunft tun)
Übrigens sind die Links zum Teil wie "http://routerip/Management.asp" notiert, für "routerip" sollte hier die eigene Router-IP eingegeben werden. In der Regel 192.168.1.1; bzw. nach Schritt 4 sowieso.

[edit] Vorgehensweise

1. Sich zum einen die gewünschte DD-WRT-Firmware herunterladen und entpacken, so dass die *.bin-Datei im Ordner des PCs liegt. Diese gibts zur Zeit hier: DD-WRT

1b. DD-WRT Version 22pre5 gibt es in drei Versionen: generic, basic und full. "Generic" ist, wie der Name schon sagt, eine generische Version auch für andere Router, die mit ähnlichen Chipsätzen ausgestattet sind und auf denen DD-WRT auch läuft (z. B. Asus WL500g Deluxe). "Basic" ist die normale Standardversion und "full" eine erweiterte Version die zusätzlich Dropbear, Chillispot, Samba und kaid enthält. Wer die nicht braucht, ist mit der Basic-Version gut bedient. Zusätzlich sind noch jeweils für den WRT54g oder WRT54gs angepasste Basic- und Full-Versionen erhältlich. Infos. Desweiteren sei angemerkt, dass Prefinal-Versionen teilweise noch kleinere Bugs (Funktionsfehler) aufweisen können, daher werden sie immer vorerst zu Testzwecken herausgegeben. Gleichzeitig enthalten sie aber auch die meisten Verbesserungen und viele alte behobene Fehler. Unversierte Benutzer sollten also nach persönlichen Bedürfnissen abwägen, welche Version für sie in Frage kommt.

2. Als nächstes sicher gehen, dass kein anderer PC per WLAN oder auch LAN auf den Router zugreift, außer der, welcher die Firmware aufspielen soll. Dieser "Flash-PC" sollte per LAN - also verkabelt - an den Router angeschlossen sein! Es soll zwar Benutzer geben, die per WLAN flashen und es klappt, aber von dieser Methode wird dringlichst abgeraten! Also alle Kabel - auch am WAN-Port! - außer dem des Stromanschlusses abziehen und nach Möglichkeit alle WLAN-User informieren, sie sollen mal ihr WLAN abschalten und auch keine Verbindunsversuche starten (die Verbindung wird ja sowieso gleich gekappt (in Schritt 3)

3. Jetzt kann, wenn erwünscht, noch von den Einstellungen ein Backup gemacht werden und zwar unter Administration/Backup und dort unter "HERE (gilt nur für DD-WRT-Versionen)" die Datei auf dem Rechner gespeichert werden. Aber: Auch wenn es bei manchen funktioniert: Es wird davon abgeraten, dieses Einstellungen-Backup für die neue Firmware zu benutzen! Es sollte alles neu eingestellt werden! Das Backup dient also nur dazu bei der Wiederherstellung der noch in diesem Schritt genutzen Firmware, sich das zum Teil mühselige Einstellen zu ersparen.

3b. Wer schon eine andere "3rd Party Firmware" wie etwa DD-WRT installiert hat, sollte noch "boot-wait" einschalten. Bei DD-WRT-Firmware unter: administration/management

4. Nun muss ein "Factory-Reset" durchgeführt werden. Bei manchen geht es auch ohne, aber wir wollen ja "richtig" flashen. Der Reset ist ganz einfach: An der Rückseite des Routers den "Resetknopf" mit einem spitzen Werkzeug (ein Bleistift tuts auch, aber aufpassen, dass nichts von der Mine abbricht und im Gerät bleibt, besser einen Kugelschreiber nehmen) für etwa 30 Sekunden lang gedrückt halten und danach loslassen; dass etwas passiert, sieht man am Blinken der LEDs an der Vorderseite des Routers. Infolgedessen auf der Setup-Hauptseite prüfen, ob auch alle Einstellungen auf Default-Werten sind, also die eigenen Einstellungen verworfen wurden. Andernfalls den Reset-Vorgang nochmals durchführen. !!! Sollte nach Loslassen die DMZ-LED konstant 5 Sekunden an - 5 Sekunden aus blinken, so muss der Router einmal kurz vom Stromnetz genommen und wieder angesteckt werden. Fängt sich der Router immer noch nicht, dann nochmals die Reset-Taste, aber nur kurz, drücken. Wenn auch danach die DMZ-LED blinkt, nochmals einen "Factory Reset" probieren. Andernfalls stimmt da etwas nicht und das Forum hilft da bestimmt weiter. (Solche Fälle sind mir aber nicht bekannt)

5. Jetzt kann die Firmware geflasht werden auf der Administration/Firmware Upgrade-Seite. Die *.bin-Datei von 1. auswählen, auf den Upgrade-Button klicken und warten - richtig lange warten mitunter. Wer abbricht und den Stromstecker zieht, ist selbst schuld, denn dann kann es sein, dass das Gerät nicht ohne Mühe wieder zum Laufen gebracht werden kann. DD-WRT Versionen haben mitunter noch eine Option, vor dem Flashen auszuwählen, ob "Reset after flashing to:" ausgeführt werden soll. Hier empfiehlt es sich, auf "Firmware Defaults" zu stellen.

5b. Sollte wie unter 4. die DMZ-LED blinken, so auch wie in 4. beschrieben vorgehen. Das Upgrade sollte komplett sein, wenn entweder eine Bestätigung "upgrade complete" oder ähnliches erscheint, oder die Power- und die Lan-Port-LED leuchten und euch nichts komisch vorkommt. Ein kurzes Trennen vom Stromnetz kann mitunter schon kleinere Problemchen lösen ...

6. Jetzt können alle Einstellungen vorgenommen werden. User/Passw. für die Weboberfläche des Routers ist: root/admin.

Wenn es nach dem Flashen Probleme gab. so hilft derzeit im Forum auf Englisch eventuell dieser Beitrag. Eine Anleitung hier im Wiki ist im Aufbau.

[edit] Besonderheiten beim Flashen von...

[edit] WRT54G v2.2

Es scheint beim Flashen via TFTP nötig zu sein, die vergebene ip-adresse zu missachten und tftp auf die 192.168.1.1 zu setzen:

$ ifconfig eth1
eth1      Protokoll:Ethernet  Hardware Adresse 00:04:61:4C:45:05
          inet Adresse:192.168.1.20  Bcast:192.168.1.255  Maske:255.255.255.0
...

Bei Erfolg sieht der ganze Vorgang dann so aus:

$ tftp
tftp> mode binary
tftp> status
Not connected.
Mode: octet Verbose: off Tracing: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
tftp> put dd-wrt.v23_mini_wrt54g.bin
No target machine specified.
tftp> connect 192.168.1.1
tftp> put dd-wrt.v23_mini_wrt54g.bin
Sent 2417664 bytes in 4.3 seconds
tftp>

(ab dem put-befehl dürfte es um die 5sec dauern) Der Put-Befehl führte bei einigen Geräten auch schon vor dem Erlöschen der vier LAN_LEDs zum Erfolg der sich in kurzzeitigem sehr schnellen Blinken der LED #1 zeigte.

[edit] WRT54G/S v4.0 WRT54GL

Nur die DD-WRT Versionen v23 und höher unterstützen diese Router Version. Desweiteren kann aufgrund einer Limitierung der Original Linksys Firmware (lässt nur ein Update mit einer Firmware bis zu 3MByte zu) für dieses Gerät zunächst nur eine v23 mini Version aufgespielt werden (siehe generelle Anleitung oben). Sobald diese jedoch erfolgreich eingespielt wurde besteht diese Begrenzung nicht mehr und man kann beliebig zu anderen Firmware Versionen wie v23 basic oder voip (nicht v2X oder v1X sonst ist der Linksys v4.0 kaputt) wechseln.

[edit] WRT54GS

ACHTUNG bei TFTP-Uploads: WRT54 "GS" - Modelle können NUR am Port 1 per TFTP geflasht werden. Bei einigen Hardware-Revisionen ist der Port 1 am Switch der 4. Slot.

[edit] WRT54G v5 - v6

Sehen hierzu Vxworkskiller_de

[edit] Buffalo WHR-G54S,WHR-HP-G54 und WHR-G125

Bitte für die Buffalo Router WHR-G54S und WHR-HP-G54 nur die DD-WRT v23 SP1 und höher verwenden. Frühere Versionen unterstützen diese beiden Geräte nicht. Der Buffalo Router WHR-G125 wird ab DD-WRT v24 unterstützt .

Die Standard-IP-Adresse der Buffalo-Router lautet 192.168.11.1 mit Benutzernamen root ohne Passwort. Nach dem Flashen lautet die Standard-IP-Adresse 192.168.1.1 mit Benutzernamen root und Passwort admin. Dies gilt es am Ende des Flashens zu beachten. Die heruntergeladene Binärdatei der DD-WRT Firmware befindet sich im Pfad "LW:\Dokumente und Einstellungen\%Benutzername%\", wobei LW meist das Laufwerk C: ist und Benutzername stellvertretend für den aktuellen Benutzer ist.

Anmerkungen vor dem Flashen

  • Haben Sie einmal auf die DD-WRT Firmware gewechselt, können Sie die normale Firmware von Buffalo nicht mehr einspielen. Weitere Informationen findet man unter http://forum.bsr-clan.de/viewtopic.php?t=8184&highlight=whrg54s+back+firmware.
  • Die von der Buffalo-Firmware verwendete LED in Form eine Brücke, wenn der WHR-G54S oder der WHR-HP-G54 als Bridge arbeitet - der Schiebeschalter auf der Unterseite - steht mit der DD-WRT Firmware nicht mehr zur Verfügung und ist nur während des Bootprozesses kurz in Betrieb.
  • Es ist nicht nötig, die zweistufige Flashprozedur ähnlich des WRT54G durchzuführen. Die Buffalo Router akzeptieren das komplette Image in einem Rutsch.
  • Innerhalb der DD-WRT Firmware kann die Weboberfläche zum Upgraden/Downgraden zwischen den DD-WRT Versionen verwendet werden. Vorsicht: unterhalb der DD-WRT Version v23 SP1 ist der Support für die Buffalo Router noch nicht enthalten.

Flashen auf die DD-WRT Firmware

  1. Um unnötigen Problemen aus dem Weg zu gehen, sollte man vor dem Flashen den Router in die Werkseinstellungen zurücksetzen. Auf der Unterseite befindet sich der INIT-Knopf. Dieser muss bei angeschaltetem Router gedrückt gehalten werden, bis auf der Frontblende die rote LED erscheint. In Ausnahmefällen muss er bis zu 30 Sekunden gedrückt gehalten werden, bis der komplette Reset-to-Default durchgelaufen ist.
  2. Den Stromstecker am Router abziehen.
  3. Da der Router beim Starten auf der IP-Adresse 192.168.11.1 steht, muss derjenige PC, von dem aus geflasht werden soll, eine statische IP-Adresse aus dem 192.168.11.0/24 Netzwerk haben. Dies kann die IP-Adresse 192.168.11.2 mit Subnetzmaske 255.255.255.0 sein. Für Windows XP sollte dieser Screenshot (in englischer Sprache) weiterhelfen. Zuerst über Start -> Einstellungen -> Systemsteuerung die Netzwerkverbindungen öffnen. Dort mit der rechten Maustaste die LAN-Verbindung auswählen und im Kontextmenü "Eigenschaften" anklicken. "Internetprotokoll (TCP/IP)" doppelklicken. Die Einstellungen wie im Screenshot gezeigt vornehmen. Keine Einträge bei Standardgateway und DNS-Serveradressen vornehmen, diese sind hier nicht notwendig. OK übernimmt die Einstellungen. Image:LAN_Properties.jpg

Unter Windows Vista muss zunächst noch das Programm TFTP.EXE aus dem Verzeichnis %WINDIR%\winsxs\x86_microsoft-windows-t..-deployment-package_31bf3856ad364e35_6.0.6000.16386_none_5c96ddb586a46863 in das Verzeichnis %WINDIR%\system32 kopiert werden. Bei älteren Windows-Versionen ist das nicht notwendig.

  1. Nun wird das Senden der Firmware vorbereiten. Über Start -> Ausführen... in die Zeile "Öffnen:" cmd eintragen und ENTER drücken. Die Kommandozeile öffnet sich. Das TFTP-Kommando ist hier einzugeben; jetzt noch NICHT die ENTER-Taste drücken, das kommt später erst: tftp -i 192.168.11.1 PUT (Dateiname; also generic.bin, mini.bin usw.) Hier noch nicht ENTER drücken.
  2. Den Stromstecker wieder in den Router einstecken. Die LEDs der Switchports fangen an, zu leuchten.
  3. Im Kommandozeilenfenster in dem Augenblick, wenn die Switch-Port LEDs nicht mehr leuchten, jetzt ENTER drücken. War der Flashvorgang erfolgreich, kommt eine Meldung über die übertragene Datenmenge. War das Flashen nicht erfolgreich, kommt ein Timeout. Wiederholen Sie bitte die letzten beide Schritte (Strom raus, Strom rein, TFTP mit ENTER starten).
  4. Nach dem erfolgreichen Flashen muss man nun 1-2 Minuten warten, da erst jetzt der eigentliche Flashvorgang im Inneren des Routers beginnt.
  5. Der Router bootet nach erfolgreichem Flashen durch und steht dann unter der IP-Adresse 192.168.1.1 zur Verfügung. Sollte dies nicht der Fall sein, ziehen Sie bitte den Stromstecker ab und stecken Sie in erneut ein (der so genannte Powercycle im Englischen).
  6. Setzen Sie die manuell vergebene, statische IP-Adresse zurück auf "IP-Adresse automatisch beziehen" UND setzen Sie die Auswahl bei "DNS-Server automatisch beziehen", um eine DHCP-IP-Adresse vom Router zu erhalten. Oder wechseln Sie in das 192.168.1.0/24 Netzwerk.
  7. Die Weboberfläche des Routers öffnet sich über http://192.168.1.1 mit Benutzernamen root und Passwort admin.

TFTP Anweisungen für Linux

tftp
tftp> binary
tftp> connect 192.168.11.1
tftp> status
Connected to 192.168.11.1.
Mode: octet Verbose: off Tracing: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
tftp> put /path/to/dd-wrt.v23_mini_generic.bin

Ein alternatives tftp Kommando für Linux (bitte entweder das Eine oder das Andere, aber nicht beide):

tftp 192.168.11.1 -m binary -c put dd-wrt.v23_generic.bin
  1. Bis zur letzten Zeile eintippen (ohne Enter zu drücken!),
  2. den Router einschalten und warten, bis die Switch-Port LEDs ausgehen und
  3. jetzt <ENTER> drücken.
  • Die 'status' Ausgabe ist etwas missverständlich formuliert. Der Router muss einmal vom Strom genommen und wieder angesteckt werden nach dem Flashen.

Problembehebung

  • Sollten Probleme auftreten, könnte das NVRAM gelöscht werden müssen. Öffnen Sie dazu eine Telnet-Session auf den Router und führen Sie eine (oder beide?) dieser Optionen durch:
  • Option 1 :
mtd erase nvram
cd /tmp
wget http://openwrt.inf.fh-brs.de/~nbd/nvram-clean.sh
chmod a+x /tmp/nvram-clean.sh
/tmp/nvram-clean.sh
nvram commit
  • Suchen Sie im Forum nach Postings, die den Suchbegriff "WHR-G54S" und Ihr Problem enthalten; Englischkenntnisse sind Pflicht.
    • Wenn Ihr Router zerschossen ist, suchen Sie im Forum forums nach "WHR-G54S bricked". Es gibt ausreichend Hilfe in diesen Threads, Sie müssen es nicht auf eigenen Wegen versuchen.

[edit] Buffalo WHR-HP-G54 - ändern der Boardflags

  • Telnet auf den Router
  • folgendes Kommando eingeben
nvram show | grep boardflags 
boardflags=0x1758

~ #
  • erscheint 0x1758, ändern in 0x2758
  • dazu dieses Kommando benutzen:
nvram set boardflags=0x2758 
nvram commit 
reboot 
  • Diese Einstellung aktiviert ein Feature auf der Empfangsseite des High Power Routers. Die Empfangsempfindichkeit steigt extrem an.
  • Dieses Feature wird nicht zusammen mit dem GUI Backup gespeichert. Es muss nach jedem Reset-to-Default neu eingestellt werden.

[edit] Wiederbeleben

Verschiedene Methoden zum Wiederbeleben eines kaputt geflashten WRT findet ihr hier:
Wiki Sektion Wiederbeleben

[edit] Das Web-Interface

Das aktuelle Standard-Interface von DD-WRT v23/v24
Das aktuelle Standard-Interface von DD-WRT v23/v24

DD-WRT hebt sich gegenüber anderen Projekten wie zum Beispiel OpenWRT dadurch heraus, dass es eine GUI besitzt, die eine einfache Konfiguration der manigfaltigen Optionen erlaubt. So lassen sich alle Standardfunktionen von DD-WRT leicht über das Webinterface erreichen, ohne auf die Konsole zurückgreifen zu müssen (was natürlich weiterhin möglich ist). Auch wenn sich noch immer nicht alles über das web interface machen lässt, ist die komplett redesignte Variante für die DD-WRT Versionen v23/v24 ein weiterer Schritt in diese Richtung. Es unterstützt sowohl mehrere Sprachen als auch verschiedene Designs.


Man kann sich durch die verschiedenen Interfaces der verschiedenen Versionen unter folgenden Links durchklicken:

Alchemy 5a: (fast identisch mit dem Interface der DD-WRT-v22-Version):
http://www.0711-stuttgart.de/192.168.1.23
(Auch wenn es nicht mehr taufrisch ist, kann man durchaus Parallelen zwischen den Benutzeroberflächen ziehen.)

DD-WRT V22finalR2: (Sorry wegen des Popups, der Webspace ist dafür kostenlos)
http://www.informatione.gmxhome.de/DDWRT/Standard/V22R2/index.html
(dort dann unten rechts "GUI Setup" auswählen)

Version DD-WRT V23final: (Sorry wegen des Popups, der Webspace ist dafür kostenlos)
http://www.informatione.gmxhome.de/DDWRT/Standard/V23final/index.html

Version DD-WRT V24betaVPN: (Sorry wegen des Popups, der Webspace ist dafür kostenlos)
http://www.informatione.gmxhome.de/DDWRT/Standard/V24BetaVPN/index.html

Bei diesen Versionen kann man direkt auf die Links klicken. Die Passwortabfrage ist beim Original natürlich vorhanden.


[edit] Beschreibung der einzelnen Einstellungen

Hier findet man eine Beschreibung der einzelnen Einstellungen

[edit] Konfigurationsbeispiele

[edit] WRT54G im Client-Modus

Wiki-Beitrag

Hier außerhalb des wiki eine Musterkonfiguration (leider noch auf Basis Alchemy pre5.3) für den Betrieb des WRT54G im Client-Modus an einem Access-Point.

[edit] WRT54GL als Repeater Bridge

Mit dieser Konfiguration wird ein WRT54GL zu einer WLAN-Bridge, die ein WLAN-Signal eines beliebigen Routers weiterverteilt. Es muß nur der WRT54GL konfiguriert werden. Vom ersten Router benötigt man nur IP,SSID und gegebenfalls den Key für die Verschlüsselung. Ich habe festgestellt, dass die Firmware V24 auf WRT54GL wohl nicht funktioniert, mit der V24 beta funktioniert es aber wunderbar. Im folgenden wird der WRT54GL als zweiter Router bezeichnet. Des weiteren gehe ich davon aus, das der erste Router die IP 192.168.2.1 hat. Ich habe die Beschreibung aus dem englischen DDWRT-Wiki.

  1. Führe einen Reset des zweiten Routers durch
  2. Verbinde deinen Rechner via Kabel oder Wlan mit dem Router und logge Dich ein.
  3. Öffne den Wireless -> Basic Settings Tab
    • Wireless Mode : Repeater Bridge
    • Wireless Network Mode : Passend zum ersten Router
    • Wireless Network Name(SSID) : Passend zum ersten Router
    • Wireless Channel : Passend zum ersten Router
    • Wireless SSID Broadcast : Enable
    • Network Configuration : Bridged
    • Save Settings
  4. Virtual Interfaces Section
    • Add*[Bemerkung] kann unter Umständen zu Problemen führen. Sollte der Repeater Router den ersten Router nicht finden, diesen Schritt rückgängig machen. War z. B. so an meinem dlink DIR-600 ki
    • Wireless Network Name(SSID) : Anders als der erste Router*[Bemerkung] - being a bridged setup and all DHCP is being done by the host AP - it is possible to use the same SSID as the Host AP for this Virtual SSID name. This will allow roaming hand-offs between the 2 units. redhawk Confirmed --ChuckMcB 00:34, 31 March 2008 (CEST)
    • Wireless SSID Broadcast : Enable
    • AP Isolation : Disable
    • Network Configuration : Bridged
    • Save Settings
  5. Öffne denSetup -> Basic Setup Tab
    • Connection Type will be: Disabled
    • Set STP for Disabled (Enabled sometimes can cause connection problems) redhawk
    • IP Address : 192.168.2.2 (Wenn die IP vom ersten Router 192.168.2.1 ist)
    • Mask : 255.255.255.0
    • Gateway: 192.168.2.1 (Wenn die IP vom ersten Router 192.168.2.1 ist)
    • Assign WAN Port to Switch : Häckchen oder nicht ->egal
    • Save Settings
  6. Öffne den Security -> Firewall Tab
    • Alle Häckchen wegmachen
    • Disable SP1 firewall
    • Save Settings
  7. Öffne den Administration Tab
    • APPLY Settings
  8. Dann noch bitte unter "Setup"-> "Netzwerke" bei Punkt "DHCPD" einen multiblen DHCP Server hinzufügen!*APPLY Settings
  9. Am Client noch DHCP einstellen, so hat es bei mir funktioniert! Viel Erfolg! Mfg!

Nun solltest Du in der Lage sein, kabellose und kabelgebunden Clients, an den neu konfigurierten zweiten Router anzuschließen. Diese erhalten ihre IP-Adressen vom ersten Router und sollten in der Lage sein eine Internetverbindung über den ersten Router aufzubauen.turol 23:59, 11 June 2008 (CEST)

[edit] Verschlüsselung des Virtuellen Interfaces

Solltet ihr den Wunsch verspüren das Virtuelle Interface verschlüsseln zu wollen, müsst ihr darauf achten das das Virtuelle und das Physische Interface absolut identische Verschlüsselungs-Einstellungen haben, auch die Passwörter müssen identisch sein!

[edit] WRT an einer FritzBox (o.a.) für ein Nachbarschaftsnetz

Hier ein extra Wiki-Beitrag

[edit] DD-WRT Router als WDS einrichten um ein Netz mit mehreren Routern aufzubauen, an denen sich Clients anmelden können

Mit Hilfe von WDS (Wireless Distribution Service) kann ein Netzerk von mehreren (WLAN) Routern eingerichtet werden, die alle unter der gleichen SSID erscheinen und somit ein "großes" Netz darstellen. Es handelt sich hier nicht um die "Bridging"-Funktion, es ist hier im Gegensatz dazu möglich, daß sich WLAN Clients am gesamten Netz anmelden können und die Router nicht nur (wie eben beim Bridging) eine direkte Verbindung zum überwinden größerer Distanzen herstellen sollen. Das WLAN Netzwerk kann so nahezu beliebig erweitert werden, wobei der Anwender nicht mehrkt, in welchem der angeschlossenen Router er sich befindet (ausser er möchte es wissen).

Ich habe Informationen gesammelt, um dieses Vorhaben mit Linksys WRT54x Routern und DD-WRT zu realisieren, ich weiß nicht, ob dies auch mit anderen Routern und DD-WRT funktioniert.


[edit] Vorbereitungen

Im Vorfeld ist ein

DD-WRT-Router als Internet-Router, der eben mit dem Internet verbunden ist und eine beleibige Zahl von

DD-WRT-Routern als WDS-Router zu bestimmen, die das WLAN-Netz des Internet Routers erweitern. Diese Unterscheidung ist wichtig, da es verschiedene Einstellungen für den einen Internet-Router und die vielzahl WDS-Routern gibt.

Falls notwendig, könnt Ihr die Konfiguration Eures DD-WRT Routers absichern, um diesen Zustand später wieder zu erreichen (Administration -> Backup). Ich werde im übrigen die englischen Navigationspunkte verwenden, daß Ihr ggf. diese Anleitung mit anderen aus dem Internet verwenden könnt.

Ich sehe es weiterhin als ideal an, wenn Ihr Eure Router (ja, alle!) auf die Werkseinstellungen zurücksetzt (Administration -> Factory Default - Klick auf "yes" - und "Save Settings"). Jeder Router ist jetzt unter der TCP/IP (im Browser eingeben) 192.168.1.1 und den Zugangsdaten root/admin erreichbar.

WICHTIG: Nur der Hauptrouter darf mittels Netzwerkkabel mit dem internen Netz verbunden sein. Die anderen Router nehmen untereinander per WLAN zueinander Verbindung auf.

[edit] Einstellungen in DD-WRT

[edit] I. Folgende Daten sind im Vorfeld zu notieren

1. (Wireless -> WDS) Die MAC Adressen Eurer Router auf, die Ihr am Beginn dieser Seite findet. Verwendet unbedingt die MAC Adressen, wie Ihr sie auf der "WDS" Seite ablesen könnt, denn diese Adresse kann von der, die Ihr auf der Rückseite oder auf der Packung Eures Routers findet abweichen!

2. (Status -> Router -- Internet) am Router, der (tatsächlich aber testweise) mit dem Internet verbunden ist nortiert Ihr die ISP-DNS 1-3.


[edit] II. Für alle Router (Den einen Internet- und die Vielzahl von WDS- Routern) gleich

1. (Setup -> Basic Setup) Hier wird jedem Router eine andere TCP/IP Adresse zugewiesen. Also z.B. 192.168.1.1, 192.168.1.2, 192.168.1.3 usw.. Weiterhin wird dem Router unter Router name ein eindeutiger Name zugewiesen, z.B. WDS-1, WDS-2, WDS-3..usw.

2. (Setup -> Basic Setup -- Network Address Server Settings (DHCP) -- Start IP Address) Es ist notwendig festzulegen, ab welcher TCP/IP Adresse jeder Router über DHCP die Adressen an die Clients vergibt. So könnt Ihr feststellen, über welchen Router im gesamten Netz ein Client angemeldet ist. Ich habe bspw. dem Router mit der TCP/IP 192.168.1.1 eingetragen, daß er mit 192.168.1.100 beginnt. Der mit 192.168.1.2 mit 192.168.1.200, bitte beachten bis max *.254... verstanden? Dieser Schritt ist zudem wichtig, daß in Eurem Netzt keine TCP/IP Adressen doppelt vergeben werden.

3. (Wireless -> Wireless Security -> Security Mode -> Disabled) Deaktiviert das WLAN Kennwort Eurer Router. Wenn alles funktioniert könnt (und solltet) Ihr es später aktivieren.

4. (Wireless -> Basic Settings) Hier gibt es einiges einzustellen. Bei allen Routern muss AP mode angewählt werden und es muss der gleiche channel für alle Router gewählt werden. Dann wird für alle Router ein SSID (WLAN Name) gewählt.

5. (Wireless -> WDS) Von dieser Seite habt Ihr bereits die MAC Adressen abgeschrieben. Jetzt tragt Ihr in die vorgegebene Liste darunter die MAC Adressen aller anderen Router (die Ihr bereits notiert habt) und wählt unter "Type" LAN. Als Namen habe ich den Namen des Routers, wie unter (Setup -> Basic Setup -- Router name) - siehe Schritt 1 - festgelegt, verwendet. Lasst die Pfoten von Lazy WDS und WDS subnet bzw. lasst die auf Disabled.

[edit] III. Für den Internet-Router

Hier gilt es nur zu testen, ob der Router auch die Internetverbindung herstellt, dazu muss regelmäßig unter (Setup -> Basic Setup -> Internet Setup -> Internet Connection Type ->) DHCP gewählt sein, aber dass hängt von Eurem Internet bzw. DSL- oder Kabelmodem ab. Probiert es einfach mit DHCP. Probiert an dieser Stelle, ob Ihr euch an diesem Router anmelden könnt und ob das Internet verfügbar ist. --> Auf Eurem Laptop (wenn Ihr leider keinen Apple haben solltet) muss DHCP aktiviert sein.

[edit] IV. Für alle anderen (WDS) Router

1. (Setup -> Basic Setup -> Internet Setup -> Internet Connection Type -> Disable)

2. (Setup -> Basic Setup -> Network Setup -> Router IP -> Gateway) Hier die oben unter II. 1. festgelegte TCP/IP Adresse des Internet-Routers eingeben.

3. (Setup -> Basic Setup -- Network Address Server Settings (DHCP) -- Static DNS 1,2,3) Hier die unter I. 2. notierte ISP DNS eintragen.

4. (Security -> Firewall -> Firewall Protection -> Disable)

[edit] V. Testen

Schaltet die Router alle an und gönnt ihnen einige Zeit um die WDS Verbindungen aufzubauen. Die neuren Linksys WRT54x quittieren diese Vorgang mit der orangenen LED an der Vorderseite. Zur Kontrolle könnt Ihr auch die einzelnen Router (über die unter II. 1. festgelegten) TCP/IP Adressen pingen. Weiterhin sehr Ihr auf der Statusseite der Router (die Ihr natürlich auch über die in II. 1. festgelegte TCP/IP erreicht), ob sich die WDS Router gegenseitig "finden".

Jetzt wird es zeit unter (Administration -> Router Management) ein Passwort für das DD-WRT Administrationsprogramm zu vergeben (anstatt: root/admin).

[edit] Linux inside

Bekanntlich ist die DD-WRT-Firmware ein Mini-Linux, d. h. neben allem was man mit der Web-Oberfläche mittels Browser einstellen kann gibts auch noch eine Linux-Shell mit noch mehr Möglichkeiten und Befehlen. Zugriff darauf bekommt man (auch unter Windows) nachdem man unter administration -> management enabled, mittels telnet oder SSH, also z. B. in die Eingabeaufforderung

telnet 192.168.1.1 (richtige IP-Adresse des Routers einsetzen)

eingeben. Login/Passwort sind standardmäßig root/admin oder je nachdem was man sonst vorher eingestellt hat. Für SSH muss man unter Windows ein SSH-Programm verwenden, z. B. Putty, Terraterm usw. nach dem gleichen Muster.


Momentan läuft die Firmware mit Kernel 2.4.20. Das kann man sich in einer Telnet-Sitzung ausgeben lassen mit dem Befehl 'cat /proc/version'.

Linux version 2.4.20 (root@colinux) (gcc version 3.3.5) #766 Thu Jun 23 16:30:31 UTC 2005

Unter der Shell befindet sich auch noch eine komplette Verzeichnisstruktur mit einzelnen Ordner und Dateien.

[edit] Wichtige Linuxbefehle der Shell

Grundsätzlich gibt die Eingabe von 'help' die eingebauten, also von der Shell selbst bereitgestellten Befehle aus, zusätzlich kann man sich noch mittels zweimaligen Drückens der Tab-Taste eine Vielzahl weiterer Befehle ausgeben lassen.

[edit] Traffic control (traffic shaping) mit tc

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 gab es folgendes Beispiel, welches Port 1234 auf 8 kBit/s begrenzt und einen 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:

[edit] selber compilieren

DD-WRT compilieren

[edit] Skript-Schnipsel

Eine kleine Sammlung von nützlichen Shell-Skripten

[edit] Antennen ausrichten

[edit] Client-Modus

Um die Antennen Richtung Access-Point genau auszurichten, kann man sich die Signalstärke seines AP kontinuierlich ausgeben lassen. RSSI sollte möglichst hoch sein (-63 dB ist besser als -86 dB), Noise möglichst gering (-91 dB ist besser als -81 dB), die Differenz zwischen beiden (Signal-Noise-Ratio (SNR)) sollte mindestens 10 dB betragen.

Man startet eine Telnet-Sitzung zum Router und fügt das folgende Skript mit Copy & 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 Skript führt in einer Endlosschleife nacheinander die Befehle wl channel, wl assoclist, wl rate, wl rssi, wl noise aus, formatiert das Ergebnis mittel grep und cut zu der Ausgabezeile und wartet dann 1 s bis zur nächsten Wiederholung. Da die Formatierungsbefehle auf die Firmware abgestimmt sind, funktioniert das Skript nicht mit x-beliebigen Firmwares (hier getestet mit DD-WRT#22pre5). 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

Anstelle der MAC kann man sich auch die SSID ausgeben lassen, mit folgendem Skript:

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
SSID="SiROTTER" Ch 10: Rate=11 RSSI=-63 Noise=-90 SNR=27
SSID="SiROTTER" Ch 10: Rate=11 RSSI=-64 Noise=-91 SNR=27
SSID="SiROTTER" Ch 10: Rate=11 RSSI=-63 Noise=-90 SNR=27
SSID="SiROTTER" Ch 10: Rate=11 RSSI=-62 Noise=-91 SNR=29
SSID="SiROTTER" Ch 10: Rate=11 RSSI=-63 Noise=-91 SNR=28

[edit] AP-Modus

Um das Skript im AP-Modus zu nutzen, um die Antenne Richtung Client auszurichten, muß man beim "wl rssi"-Befehl die MAC-Adresse eines Clients angeben und den Befehl "wl assoclist" und die MAC-Ausgabe entfernen.

while [ 1 ];
do MAC=00:0B:6B:32:A7:83;
CH=`wl channel|grep target|cut -c16-`;
RA=`wl rate|cut -d' ' -f3`;
RSSI=`wl rssi $MAC|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

Wenn die MAC-Adresse eines bekannten Clienten bei 00:0B:6B:32:A7:83 eingesetzt wird, ergibt sich folgendes:

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

das 2. Beispiel umgeschrieben, auch wieder mit einer bekannten MAC-Adresse eines Clienten (hier: 00:0B:6B:32:A7:83)

while [ 1 ]; 
do MAC=00:0B:6B:32:A7:83;
CH=`wl channel|grep target|cut -c16-`; 
SID=`wl ssid|cut -c15-`; 
RA=`wl rate|cut -d' ' -f3`;
RSSI=`wl rssi $MAC|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
SSID="SiROTTER" Ch 10: Rate=11 RSSI=-63 Noise=-90 SNR=27
SSID="SiROTTER" Ch 10: Rate=11 RSSI=-64 Noise=-91 SNR=27
SSID="SiROTTER" Ch 10: Rate=11 RSSI=-63 Noise=-90 SNR=27
SSID="SiROTTER" Ch 10: Rate=11 RSSI=-62 Noise=-91 SNR=29
SSID="SiROTTER" Ch 10: Rate=11 RSSI=-63 Noise=-91 SNR=28

Getestet im WDS-Betrieb mit:

2 x WRT54GSv4

2 x WRT45GL

[edit] Software installieren mit ipkg

IPKG ist eine Debian-ähnliche Paketarchitektur, die die Installation von Software sehr vereinfacht.

[edit] Port-Knocking

Dieser Abschnitt stellt ein kleines How-To zur Installation und Konfiguration des OpenWRT-Paketes knockd dar. Der Autor erhebt keinen Anspruch auf Vollständigkeit oder Perfektion, aber da es sich sowieso um ein Wiki handelt lasst eurer Kritik freien Lauf und ändert was ihr für nötig haltet ;-) by Age_M

[edit] Was ist Port-Knocking?

Port-Knocking hat, wie der Name bereits impliziert, etwas mit Klopfzeichen zu tun. Die meisten kennen sicherlich den berühmten Ausruf "Sesam, öffne dich!" aus 'Ali Baba und die 40 Räuber', mit dem sich Ali Baba den Zutritt zur Höhle der 40 Räuber verschafft hat. Ähnlich funktioniert auch das Port-Knocking, allerdings nicht durch Sprache, sondern durch eine vorher definierte Sequenz aus TCP- und UDP-Paketen. Ein Daemon, der 'knockd', überwacht den eingehenden Netzwerkverkehr einer Schnittstelle und überprüft diesen auf die in der Konfigurationsdatei festgelegten Sequenzen. Wird eine Sequenz erkannt, zum Beispiel ein TCP-Paket auf Port 6666, dann ein UDP-Paket auf Port 4444 und schließlich wieder ein TCP-Paket auf Port 6666, so wird der in der Konfigurationsdatei festgelegte Befehl ausgeführt. Die Befehle sind dabei vom Benutzer frei wählbar.

[edit] Wozu braucht man Port-Knocking?

Port-Knocking kann in vielerlei Hinsicht eingesetzt werden. Eine Anwendungsmöglichkeit ist zum Beispiel die Abwehr von Portscans. Da Portscanner häufig einen Port nach dem anderen durchprobieren, können diese erkannt und wirksam durch das dynamische Anpassen der Firewallkonfiguration oder durch eine Trennung der Internetverbindung vereitelt werden. Eine weitere Anwendungsmöglichkeit ist die Fernadministration. Der Systemadministrator ist mit Port-Knocking in der Lage einzelne Befehle oder Skripte auszuführen ohne das ein direkter Zugriff auf den Host benötigt wird. Am häufigsten jedoch wird Port-Knocking dazu verwendet, Dienste wie zum Beispiel SSH, HTTP oder FTP zu verstecken und so das Angriffsrisiko zu minimieren. Dafür wird ebenso wie bei der Abwehr von Portscans das dynamische Anpassen der Firewallkonfiguration verwendet.

[edit] Voraussetzungen

-WRT54G/GS oder DD-WRT-kompatibles Gerät (Autor verwendet: WRT54GS_v1.1)
-DD-WRT_Firmware (Autor verwendet: DD-WRT_v23_alpha_VoIP_2005-08-22)
-JFFS muss aktiviert sein und noch über mindestens 700 kB Speicher verfügen

Bei dd-wrt-v23-sp2 vom 30.08.06 scheint es Probleme bei der Aktivierung von jffs2 per Web-GUI zu geben. Die manuelle Variante über eine ssh-Konsole funktioniert allerdings. Jffs hilft weiter.

[edit] Installation der benötigten Pakete

Zunächst muss eine Remote-Shell via SSH oder Telnet auf dem Router geöffnet und die Paketdatenbank von 'ipkg' aktualisiert werden. Dies geht mit dem Befehl:

~# ipkg update

Das benötigte Paket 'knockd' findet man über den OpenWRT-Package-Tracker. Alternativer Download über: http://voidmain.is-a-geek.net/files/ipkg/. Installiert wird es mit dem Befehl:

~# ipkg install http://openwrt.alphacore.net/knockd_0.4_mipsel.ipk

Nach der installation von 'knockd' fehlt nun noch das Paket 'libpcap' welches mit dem Befehl

~# ipkg install libpcap

installiert wird. Alle installierten Dateien liegen nun unterhalb von /jffs/ und die Konfigurationsdatei 'knockd.conf' befindet sich in /jffs/etc/. Als nächstes sollte die Funktion von 'knockd' mit dem Befehl

~# knockd --help

überprüft werden. Sollte es hierbei zu der Fehlermeldung "knockd: can't load library 'libpcap.so.0.8'" kommen, müssen lediglich die Pfade für die Librarys erneut exportiert werden. Dies geht mit dem Befehl:

~# export LD_LIBRARY_PATH=/lib:/usr/lib:/jffs/usr/lib

Sollte einen neuere Version von libpcap.so installiert sein, so hilft ein symbolischer Link darauf:

ln -s libpcap.so.0.9 libpcap.so.0.8

Dies sollte natürlich im entsprechenden Verzeichnis /jffs/usr/lib ausgeführt werden. Nun sollte eine erneute Funktionsüberprüfung von knockd zum Erfolg führen.

[edit] Startskripte erstellen

Zunächst sei gesagt, das die ersten zwei Schritte nicht zwingend notwendig, jedoch der Übersichtlichkeit dienlich sind.

[edit] Erstellen eines Ordners für Skripte

In diesem Fall /jffs/scripts.

~# mkdir /jffs/scripts

[edit] Erstellen eines allgemeinen Startup-Skripts

Dieses kann wiederum weitere Skripte starten.

~# echo "#!/bin/sh" > /jffs/scripts/startup.sh
~# echo "# Insert startup-scripts here" >> /jffs/scripts/startup.sh

[edit] Erstellen eines Skriptes für den Start von knockd

Als nächstes wird das Skript für den Start von knockd erstellt.

~# echo "#!/bin/sh" > /jffs/scripts/start_knockd.sh
~# echo "export LD_LIBRARY_PATH=/lib:/usr/lib:/jffs/usr/lib" >> /jffs/scripts/start_knockd.sh
~# echo "knockd -d -i ppp0 -c /jffs/etc/knockd.conf" >> /jffs/scripts/start_knockd.sh

Die Verwendung des Parameters '-i' ist von der zu verwendenden Schnittstelle abhängig. Bei einer DSL-Verbindung mit PPPoE lautet diese Schnittstelle 'ppp0'. Wird der Parameter weggeleassen, wird die Schnittstelle 'eth0' verwendet.
Da die Skripte bisher nur reguläre Dateien sind, müssen diese noch ausführbar gemacht werden.

~# chmod 755 /jffs/scripts/*

[edit] Automatischen Start einrichten

Damit 'knockd' automatisch beim Bootvorgang des Routers ausgeführt wird, muss die variable rc_startup des NVRAM noch überarbeitet werden. Wenn die Schritte 5.1 und 5.2 übersprungen wurden lautet der Befehl:

~# nvram set rc_startup="/jffs/scripts/start_knockd.sh"
~# nvram commit

Bei der Verwendung des allgemeinen Startskriptes müssen folgende Befehle verwendet werden:

~# nvram set rc_startup="/jffs/scripts/startup.sh"
~# nvram commit
~# echo "/jffs/scripts/start_knockd &" >> /jffs/scripts/startup.sh


Sollte das Script beim Start nicht ausgeführt werden, muss vorher eine kleine Pause eingelegt werden (evtl. ist das jffs-Dateisystem noch nicht gemountet):

~# nvram set rc_startup="sleep 30; /jffs/scripts/startup.sh"
~# nvram commit

[edit] knockd.conf anpassen

Das Anpassen der knockd.conf ist schnell erledigt. Hierfür verwendet man am besten den Editor 'vi', da dieser Bestandteil der DD-WRT-Firmware ist. Also:

~# vi /jffs/etc/knockd.conf

Unter [options] braucht man lediglich die vorhandenen Optionen löschen und folgendes eintragen:

[options]
 UseSyslog

Damit ist die allgemeine Konfiguration des Dienstes abgeschlossen, jedoch fehlen nun noch die Anwendungen.

[edit] Anwendungsbeispiele

Da es sich hier um ein Wiki handelt, hoffe ich, das jeder, der interessante Anwendungsbeispiele für das Port-Knocking findet, diese hier mit kurzer Beschreibung aufführt. Informationen zur Konfiguration der Anwendungsmöglichkeiten gibts HIER. Viel Spass beim "Klopfen" ;)

Beispiel 1: Hiermit könnt ihr den SSH-Port zum Router öffnen. Der Verbindungsaufbau zum Port 22 wird nur für die IP-Adresse des anklopfenden Host (dafür ist die Variable %IP% zuständig) akzeptiert und nach 30 Sekunden. wieder verweigert. Da SSH allerdings das verbindungsorientierte Protokoll TCP verwendet, wird die bereits aufgebaute Verbindung nicht geschlossen, es können lediglich keine weiteren Verbindungen aufgebaut werden.

[opencloseSSH]
 sequence = 33333:udp,22222:tcp,33333:udp
 seq_timeout = 5
 tcpflags = SYN
 start_command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
 cmd_timeout = 30
 stop_command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT


Beispiel 2: Im Prinzip das gleiche wie Beispiel 1, aber anstelle des SSH-Ports wird der HTTPS-Port geöffnet.

[opencloseWEB]
 sequence = 44444:udp,33333:tcp,44444:udp
 seq_timeout = 5
 tcpflags = SYN
 start_command = /usr/sbin/iptables -A INPUT -s %IP% -p tcp --dport 443 -j ACCEPT
 cmd_timeout = 30
 stop_command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 443 -j ACCEPT


Beispiel 3: Im Prinzip auch das gleiche wie Beispiel 1, diesmal wird allerdings der SSH-Port auf einen Rechner im Lan geleitet. (die beiden iptables-Befehle in start_command und stop_command gehören bei der Konfiguration natürlich in eine Zeile)

[opencloseSSH]
 sequence = 33333:udp,22222:tcp,33333:udp
 seq_timeout = 5
 tcpflags = SYN
 start_command = /usr/sbin/iptables -t nat -I PREROUTING 4 -s %IP% -p tcp --dport 22 -j DNAT --to 192.168.1.xx:22; _
                 /usr/sbin/iptables -I FORWARD 10 -p tcp -m tcp -s %IP% --dport 22 -j ACCEPT
 cmd_timeout = 30
 stop_command = /usr/sbin/iptables -t nat -D PREROUTING -s %IP% -p tcp --dport 22 -j DNAT --to 192.168.1.xx:22; _
                /usr/sbin/iptables -D FORWARD -p tcp -m tcp -s %IP% --dport 22 -j ACCEPT


Hinweis zu beiden Beispielen:

/usr/sbin/iptables -A ...

setzt eine Filterregel ans Ende der iptables. Wenn zuvor eine DROP-Regel für den eingefügten Dienst steht, so geht diese nachgelagerte ACCEPT-Regel verloren! Um dies zu umgehen sollten die Befehle mit

/usr/sbin/iptables -I ...

an den Anfang der iptables eingefügt werden.

[edit] Die Client-Tools

Die Verwendung von 'knockd' alleine reicht natürlich nicht aus. Die Client-Seite muss ja schließlich irgendwie anklopfen können. HIER bekommt man die nötigen Tools um erfolgreich Klopfzeichen senden zu können. Wer wie der Autor 'Gentoo-Linux' auf der Clientseite verwendet, kann einfach

emerge knock

verwenden, um das benötigte Paket zu installieren. Um anschliessend eine Verbindung aufbauen zu können braucht man einfach nur folgende Befehle ausführen

knock <router-wan-ip> -u 44444
knock <router-wan-ip> 33333
knock <router-wan-ip> -u 44444

um die Sequenz von Beispiel 2 zu generieren. Der Parameter '-u' generiert dabei UDP-Pakete, wenn dieser weggelassen wird, werden TCP-Pakete generiert. Ein erfolgreiches Anklopfen stellt sich im Router-Log folgendermaßen dar:

knockd: 70.240.222.241 (p642CFCF4.dip.t-dialin.net): opencloseWEB: Stage 1
knockd: 70.240.222.241 (p642CFCF4.dip.t-dialin.net): opencloseWEB: Stage 2
knockd: 70.240.252.241 (p642CFCF4.dip.t-dialin.net): opencloseWEB: Stage 3
knockd: 70.240.222.241 (p642CFCF4.dip.t-dialin.net): opencloseWEB: OPEN SESAME


Zumindest für die Windows-Version des knock-clients funktioniert auch die folgende Semantik:

knock <router-wan-ip> 44444:udp 33333:tcp 44444:udp

[edit] Quellen

http://wrt-wiki.bsr-clan.de/index.php?title=Knockd
http://www.zeroflux.org/cgi-bin/cvstrac.cgi/knock/wiki
http://www.portknocking.org/

[edit] Bootvorgang

Viele interessante Details zum Bootvorgang eines WRT54G v2.2

[edit] Hardware

Autopsy: Linksys WRT54G/GS Hardware Versions Under the Knife (auf englisch) gibt ein detaillierten Überblick über die Hardware und das Innenleben der einzelnen Versionen der WRT54G und GS Router einschließlich Bilder.

[edit] Modifikationen

[edit] Dual Serial Port

Einbau eines Dual-Serial-Ports in Linksys WRT54G/WRT54GS. Es gibt verschiedene Realisierungen des Vorhabens:

[edit] SD-Card Reader

Den Router mit einem SD-Card Reader ausstatten:

Ab der V23 SP1 von DD-WRT ist kein zusätzliches manuelles Aktivieren des MMC-Treibers notwendig. Einfach unter Administration - Management - MMC/SD Card Support - Enable MMC Device

http://cascade.dyndns.org/~datagarbage/dd-wrt-enable-mmc.png

[edit] JTAG-Adapter

Anleitung für einen JTAG-Adapter zum Wiederbeleben eines kaputt geflashten WRT.

[edit] WRT350N Serial Port

The pinout of the serial is the same as for most linksys stuff... The wrt54g-series have it that way, or if the have two of them they are just doubled up...

You will still need a level shifter from TTL Level to PC-Port-Serial, but that is common for such devices. Look around for information about adding a serial port to an WRT54G, it is exactly the same stuff you need... Image:WRT350N-Serial.jpg If you get it then open serial connection and press Ctrl+C during bootup, you will end up in CFE. there you will have to

nvram set boot_wait=on 
nvram commit 

and see if it gets pingable again during boot (only for 3secconds, so like always, connect it to a switch, ensure your pc has got 192.168.1.X as ip and do a constant ping [normal in most *nix systems, -t for windoze]) if it is then try uploading firmware the normal tftp-way. If it ends up in some errors in the serial console about the flash not being verified than try

flash -noheader : flash1.trx 

and tftp imidiatly after typing it...

Worked for me.

[edit] WRT350N-Antennen Mod

Anleitung für einen Antennen-Mod an einem Linksys WRT350N. Achtung dies ist kein Anfänger-Mod. Beim öffnen des Gerätes verliert ihre eure Garantie. Ich übernehme keine Haftung oder sonstige Gewährleistungen für defekte Geräte. Ihr macht diesen Mod auf eigene Verantwortung.


Wie öffne ich einen Linksys WRT350N?

Anleitung: How to open a WRT350N


Allgemeine Informationen:

Forum-Thread

Fotos


Was bringt der Mod:

Größere Antennen bringen längere Reichweite und ein besseres Signal.

Achtung bitte beachten Sie die maximale Sendeleistung von 100 mW, dies ist in Deutschland die erlaubte Obergrenze für nicht anmeldepflichtige Funk-Hardware im 2,4-GHz-Frequenzband.


Wie es am Ende aussehen sollte:

Image:WRT350N_ANTENNA_MOD_IMG_0930.JPG Image:WRT350N_ANTENNA_MOD_DSC00025_thumb.JPG Image:WRT350N_ANTENNA_MOD_DSC00028_thumb.JPG Image:WRT350N_ANTENNA_MOD_IMG_0933.JPG

Was wird benötigt?

Schraubenzieher, Lötkolben, 2x passende Pigtails.

Ich hab ein U.FL auf --> RP-SMA (männlich) Pigtail benutzt. Das U.FL Ende des Pigtails wurde abgeschnitten/abisoliert der U.FL Stecker ist wertlos uns interessiert nur der "Draht" und das andere RP-SMA Ende.

Die Idee ein Pigtail zu finden welches ihr direkt auf die Platine anstecken könnt, könnt ihr euch gleich wieder aus dem Kopf schlagen. Es handelt sich zwar um einen Hirose MS-156NB Anschluss (danke an adisor19), aber dieser ist nicht geeignet um dort ein Pigtail anzuschließen.

Image:WRT350N_ANTENNA_MOD_Hirose_MS-156NB.JPG

Deswegen brauchen wir einen Lötkolben. Hier seht ihr die Anschlüsse, an den rot markierten Punkten setzen wir an :)

Image:WRT350N_ANTENNA_MOD_3_WRT350N_Antenna_Connectors_2.JPG

Beim rauslöten des alten Pigtails bitte aufpassen, eine Halterung zwischen welcher das Pigtail am Lötpunkt liegt hält das Pigtail fest/es umklammert. Einzige Möglichkeit ist das Pigtail nach hinten raus zu ziehen, nachdem wir den gesamten Punkt erwärmt haben.

Image:WRT350N_ANTENNA_MOD_Halterung.JPG

Jetzt nur noch die Pigtails hinlöten. Bitte aufpassen das der Isolator (Gummi), zwischen Hauptader in der Mitte, und dem Geflecht außen rum noch sauber isoliert.

Image:WRT350N_ANTENNA_MOD_Soldering.JPG


Und so in der Art solltet ihr des dann machen....

Image:WRT350N_ANTENNA_MOD_9_WRT350N_Antenna_Soldering.JPG

Achtung - Hinweise zum obigen Bild: So in der Art sollte es besser nicht aussehen da ihr evtl. zu hohe Verluste wegen mangelnder Schirmung habt. Ich werde demnächst neue Fotos posten, in denen diese Problem ausgemerzt wurde.

Das RP-SMA-Ende könnt ihr dann wie ich mit Power-Knete befestigen. Ansonsten Heißkleber, dass bleibt aber euch überlassen. Der Rest sollte klar sein, wieder alles schön zusammenbauen und Spaß haben.

[edit] Version herausfinden

Die ersten vier Stellen der Seriennummer (zu finden auf der Unterseite des Routers) repräsentieren die Hardware-Version:

CDF0 = WRT54G v1.0
CDF1 = WRT54G v1.0
CDF2 = WRT54G v1.1
CDF3 = WRT54G v1.1
CDF5 = WRT54G v2.0
CDF7 = WRT54G v2.2
CDF8 = WRT54G v3.0
CDF9 = WRT54G v3.1
CDFA = WRT54G v4.0
CDFB = WRT54G v5.0
CDFC = WRT54G v5.1
CDFB = WRT54G v5.2
CDFD = WRT54G v6.0
CDFE = WRT54G v7.0 (Atheros AR2317 Chipset) Nicht DD-WRT kompatibel
CDFK = WRT54G v7.2
CDFF = WRT54G v8.0
MDF0 = WRT54G v8.1
CDFJ = WRT54G v8.2

CGN0 = WRT54GS v1.0
CGN1 = WRT54GS v1.0
CGN2 = WRT54GS v1.1
CGN3 = WRT54GS v2.0
CGN4 = WRT54GS v2.1
CGN5 = WRT54GS v3.0
CGN6 = WRT54GS v4.0
CGN7 = WRT54GS v5.0
CGN8 = WRT54GS v5.1
CGN9 = WRT54GS v6.0
CGNA = WRT54GS v7.0
CGNB = WRT54GS v7.0
CGNC = WRT54GS v7.0
CGNE = WRT54GS v7.2

CL7A = WRT54GL v1.0
CL7B = WRT54GL v1.1
CL7C = WRT54GL v1.1
CF7C = WRT54GL v1.1

[edit] Informationen über Hardware

Infos über die Hardware erhaltet ihr auf folgenden Seiten:

[edit] NVRAM

NVRAM steht für non volatile random access memory (nichtflüchtiger Speicher) und ist sozusagen der Konfigurationsspeicher des WRT. Hier werden sämtliche Parameter und gesetzte Optionen gespeichert. Die Shell stellt dazu den Befehl nvram bereit. Mit
nvram show
kann man sich den gesamten Inhalt auflisten. Mittels grep kann man die Ausgabe auf die Variablen einzelner Bereiche eingrenzen und übersichtlicher darstellen, z.B.
nvram show | grep jffs2
. Mit nvram get und nvram set kann man Parameter auslesen bzw. ändern. nvram commit führt die Anderungen dann aus.
erase nvram

Mit erase kann man NVRAM Löschen

[edit] Overclocking der CPU

Mit folgendem Befehl wird die CPU übertaktet (hier auf 240 MHz):

nvram set clkfreq=240
nvram commit
reboot

Um die aktuelle MHz-Einstellung zu erhalten folgenden Befehl eingeben:

nvram get clkfreq

oder

cat /proc/cpuinfo

Übertakten ist insbesondere eine Lösung, wenn es bei Netzwerklast zwischen WLAN<=>LAN plötzlich zu Reboots, WLAN-Disconnects usw. kommt. Betroffen sind besonders die Modelle WRT54G v2.2, v3 und GS v.1, v2.0 bei denen meistens nach ein paar Sekunden, einer halben Stunde oder auch mehreren Stunden bei durchgängiger Last (~30 kB/s) diese Probleme auftreten.

[edit] JFFS2

Journaling Dateisystem
Journaled File System (JFS)
Journaling Flash File System (mtd-jffs-HOWTO).

[edit] Erweiterungen

[edit] USB Support

Installation:

Für die Unterstützung von USB müssen folgenden Pakete installiert werden :

ipkg install kmod-usb-uhci // für USB 1.1
ipkg install kmod-usb-core
ipkg install kmod-usb2
ipkg install kmod-usb-storage //für USB-Massenspeicher

Bei DD-WRT v23 oder niedriger muss noch eine kleinigkeit in die NVRAM Variable rc_startup geschrieben werden. Dies führt beim Start alle *.startup Scripte unter /jffs/etc/config/ aus.

In einer Shell auf dem Router:

> ~ # nvram set rc_startup="
> for I in `/bin/ls /jffs/etc/config/*.startup`
> do
>    sh $I &
> done
> "
> ~ # nvram commit
>

Über das Webinterface

for I in `/bin/ls /jffs/etc/config/*.startup`
  do
    sh $I &
done


Dies ist das Script mit dem die für USB nötiegen Kernel Module beim ausführen geladen werden. Einfach den Text auschneiden und in /jffs/etc/config/usb.startup ablegen.

#!/bin/sh
insmod /jffs/lib/modules/2.4.30/usbcore.o
insmod /jffs/lib/modules/2.4.30/ehci-hcd.o
insmod /jffs/lib/modules/2.4.30/scsi_mod.o
insmod /jffs/lib/modules/2.4.30/usb-storage.o
# Für USB 1.1 Support die Raute (#) vor der nächsten Zeile entfernen
#insmod /jffs/lib/modules/2.4.30/uhci.o
insmod /jffs/lib/modules/2.4.30/sd_mod.o

das Script ausführbar machen

chmod +x /jffs/etc/config/usb.startup

Auf einem Asus WL-500gPremium sollte es bei eingabe von dem Komando dmesg nun so aussehen:

SCSI subsystem driver Revision: 1.00
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
uhci.c: USB Universal Host Controller Interface driver v1.1
PCI: Enabling device 01:03.0 (0000 -> 0001)
uhci.c: USB UHCI at I/O 0x100, IRQ 2
usb.c: new USB bus registered, assigned bus number 2
hub.c: USB hub found
hub.c: 2 ports detected
PCI: Enabling device 01:03.1 (0000 -> 0001)
uhci.c: USB UHCI at I/O 0x120, IRQ 2
usb.c: new USB bus registered, assigned bus number 3
hub.c: USB hub found
hub.c: 2 ports detected


Je nachdem, welches Dateisystem auf dem Datenträger eingesetzt wird, müssen noch die Filesystem (FAT/EXT/XFS) Module installiert werden:

ipkg install kmod-vfat
ipkg install kmod-ext2
ipkg install kmod-ext3
ipkg install kmod-xfs

Damit diese Module beim Neustart mitgeladen werden, muss der folgende Text noch an /jffs/etc/config/usb.startup angehängt werden.

# FAT
insmod /jffs/lib/modules/2.4.30/fat.o
insmod /jffs/lib/modules/2.4.30/vfat.o
# XFS
insmod /jffs/lib/modules/2.4.30/xfs.o
# EXT
insmod /jffs/lib/modules/2.4.30/jbd.o
insmod /jffs/lib/modules/2.4.30/ext2.o
insmod /jffs/lib/modules/2.4.30/ext3.o

Die Partitionen der ersten USB Platte sind nun über /dev/scsi/host0/bus0/target0/lun0/part1 bis partN erreichbar.

[edit] Installation eines Samba Servers

Wenn man einen Router mit schneller CPU, genug Speicher und funktionierenden USB 2.0 Ports (wie den ASUS WL-500P) sein eigen nennt, möchte man sicher die vorzüge der Windows Datei Freigabe nutzen. Um dies zu tun muss man Samba installieren.

ipkg install samba

nach einigem ruminstallieren ist alles fertig für einen ersten Test. Leider bricht /jffs/etc/init.d/samba start mit diesem Fehler ab:

nmbd: can't resolve symbol 'fopen64'
smbd: can't resolve symbol 'stat64'

Durch eine Installation von uclibc_0.9.28-6_mipsel.ipk lässt sich dies beheben. Ein nettes Howto hierzu leider in Englisch http://www.dd-wrt.com/wiki/index.php/Optware

Zum Abschluss braucht noch die smb.conf einige Anpassungen (/jffs/etc/samba/smb.conf).

[edit] FTP-Server

Lösung 1

von: Helmutoh

Um einen FTP-Server auf dem Router laufen zu lassen sind die folgenden Schritte notwendig:

Zunächst sollte sichergestellt sein, dass genügend Speicherplatz im JFFS-Verzeichnis vorhanden ist, um die notwendigen Pakete zu installieren. Sollte dies nicht der Fall sein (vor allem wenn man auch noch Daten per FTP irgendwo speichern möchte) empfiehlt sich das Einbinden einer SMB-Windows-Freigabe oder gar der Einbau einer SD-Karte. Um diese Erklärung einfach zu halten verwende ich bei allen Pfadangaben hier nur den zur SD-Karte. Zudem zeige ich die Installation der Zusatzpakete auch auf der SD-Karte.

Vorbereitungen:

Da die Pakete nicht im Standard-JFFS installiert werden benötigen wir die entsprechenden Verzeichnisse (wer im JFFS genügend Platz hat, braucht diesen Schritt natürlich nicht!):

  mkdir /mmc/jffs
  mkdir /mmc/jffs/tmp
  mkdir /mmc/jffs/tmp/ipkg

Schritt 1:

Installation des vsftpd-Server Packages von downloads.openwrt.org

  ipkg -d /mmc/jffs install http://URL_2_vsftpd

Achtung hier bitte jeweils die URL der aktuellsten Version des vsftpd-Paketes einsetzen! Bei der Installation mit ipkg ggf. die Warnmeldungen ignorieren!

Schritt 2:

Installation der zusätzlichen Library

Da der FTP-Server leider nicht mit den Standard-Libs in DD-WRT startet benötigen wir ein zusätzliches Paket (uclibc):

  ipkg -d /mmc/jffs install http://URL_2_uclibc

Auch hier wieder die Version beachten und richtige URL zum uclibc-Paket einsetzen!

Schritt 3:

Start-Skript für den FTP-Server

Zum Start des FTP-Server gehört nun ein Start-Skript, welches kurzzeitig die Lib aktiviert und den Server damit startet.

  export LD_PRELOAD='/mmc/jffs/lib/libuClibc-0.9.27.so'
  /mmc/jffs/usr/sbin/vsftpd /mmc/jffs/etc/vsftpd.conf
  unset LD_PRELOAD
  env > /dev/null

In der zweiten Zeile wird der FTP-Server mit seiner Config-Datei gestartet. Hier sollte unbedingt festgelegt werden, welcher USER was darf! Die Optionen dieser Config finden sich am besten hier: vsftpd manpage.

Dieses Skript an beliebiger Stelle speichern (hier: /mmc/progs/ftpserver/start).

Schritt 4:

Das erstellte Start-Skript kann nun nach erfolgreichem Test auch im Startup-Bereich des Router eingetragen werden:

Im Bereich Administration - Diagnostics der Router-Konfiguration

  cd /mmc/progs/ftpserver
  ./start

mit Save Startup abspeichern.

Schritt 5:

Soll der FTP-Server nun auch noch im WAN (Internet) sichtbar sein, so muss der Port 21 für passive FTP-Verbindungen noch in der Firewall geöffnet werden:

Im Bereich Administration - Diagnostics

  /usr/sbin/iptables -I INPUT 1 -p tcp --dport 21 -j logaccept

mit Save Firewall abspeichern.


Lösung 2 von: moscito

vorweg erstmal ein dickes DANKE für die infos aus dem forum.

mein gerät ist ein (WRT54GL) mit DD-WRT v23_sp2 und sp3, habe es mit beiden versionen gemacht. ich selber habe mit der Lösung 1 nichts erreicht.

Vorbereitung: MMC in das /jffs mounten

    mount -o bind /mmc /jffs
    mount -o bind /mmcopt/opt /opt

Pakete installieren: erstmal den Paketmanager "frisch" machen.

   ipkg update
   ipkg install vsftpd
   ipkg install uclibc

das startscript erstellen

   cd /mmc

mit touch ftpstartup wir die datei erzeugt mit vi ftpstartup editiert man die datei

die taste i bringt dich in den schreibmodus mit ESC wir der beendet und dann gehts mit :wq wieder raus. verlassen ohne zu speichern geht mit :q bzw :q!

Einfach die sachen zwischen den " " mit vi eintippen. zweite möglichkeit wäre ohne vi auf der console

    echo  "sleep 60" >> /mmc/ftpstartup
    echo  "mount -o bind /mmc /jffs" >> /mmc/ftpstartup
    echo  "mount -o bind /mmcopt/opt /opt" >> /mmc/ftpstartup
    echo  "echo  "nobody:Passwort:0:0:User,,,:/mmc:/bin/sh" >> /tmp/etc/passwd" >> /mmc/ftpstartup
    echo  "export LD_PRELOAD='/mmc/jffs/lib/libuClibc-0.9.27.so'" >> /mmc/ftpstartup
    echo  "/mmc/jffs/usr/sbin/vsftpd /mmc/jffs/etc/vsftpd.conf" >> /mmc/ftpstartup
    echo  "unset LD_PRELOAD" >> /mmc/ftpstartup
    echo  "env > /dev/null" >> /mmc/ftpstartup

Nun starte den ftp server mit

  ./ftpstartup

wenn das script automatisch starten soll dann in der GUI des DD-WRT "Administration"----"Diagnose" aufsuchen und die folgenden 2 zeilen eintragen und speichern als startup


  cd /mmc
  ./ftpstartup


mit ps sollte vsftp in der prozessliste zu sehen sein.

soll der ftp aus dem www erreichbar sein dann bitte den schritt 5 dieser wiki nutzen. drann denken das es nicht ganz ungefählich ist den root für ftp frei zu geben. also bitte immer fein die backups machen......vorher :)

[edit] RFlow Collector

Mit diesem Programm kann man die Aktivität des Routers überwachen. Es gibt Auskunft über verbundene Clients und zeigt auch die Empfangsstärke an.

[edit] Trouble Shooting

Der WRT54-g(s)(L) macht kaum Probleme

[edit] Ich möchte mitmachen

Ganz einfach: Den "edit"-Button drücken, editieren, speichern und uns erfreuen. ;)

[edit] Alphabetischer Index

Hier sind alle projektbezogenen Artikel alphabetisch gelistet. DD-WRT Doku(DE) Index

Anpassen der Ports des Switches auf Halbduplex und Einstellung von Geschwindigkeiten.