Speedport W 501V hinter Router betreiben

Der Speedport W501V wird von der Telekom als Hardware zu DSL Anschlüssen verteilt. Der Router unterstützt von Haus aus ADSL2, WLAN und VOIP. Aber nur wenn man ihm am DSL Anschluß selber betreibt. Will man einen vorhandenen eigenen Router, wie zum Beispiel einen FreeBSD oder Linux Router nutzen funktioniert das Teil nicht mehr: Die Telekom hat das Ding ohne Ende zugedongelt damit jeder Dummy damit klar kommt was zu Lasten des Funktionsumfang ging. Aber mit ein wenig Bastelei geht es trotzdem. Vorweg: Durch die Modifikation an der Firmwäre des Gerätes verliert man die Garantie: Wenn man das Teil verpfriemelt kann man es nicht mehr reklamieren. Auch wenn die Änderungen harmlos sind, sollte man sich das im Hinterkopf behalten. Ich übernehme keine Garantie für Vollständigkeit oder Funktion der Anleitung.

Was braucht man:

  • Den Speedport W 501V vom Rosa Riesen
  • Einen Router den man als Internetrouter benutzt
  • Ein vorhandenes Netzwerk mit freiem Platz am Hub oder Switch
  • Einen Telnetclient, hier tut es das von Windows
  • Grundkenntnisse im Umgang mit Linux
  • Grundkenntnisse mit dem nvi

Unserem Beispiel sind folgende Gegebenheiten zugrunde gelegt:

  • Router: 192.168.9.1
  • Nameserver: 192.168.9.2
  • Speedport: 192.168.9.254

Im Inneren werkelt eigentlich eine OEM Version der AVMFritzbox FON 7050. Diese hat ein Linux als Betriebssystem. Der ARM Prozessor werkelt mit 200MHz. Beim starten des Routers wird die Datei “debug.cfg” unter /var/flash aufgerufen, diesen Umstand machen wir uns später zu Nutze um die vorgenommenen Änderungen fest abzuspeichern.

Aber als erstes müssen wir Zugriff auf das Teil bekommen. Das geht nicht mit dem Webinterface, wir brauchen eine Rootshell. Dazu laden wir uns hier die Datei “starttelnet.image” ein.(Anmerkung: Es dürfte da jedoch in letzter Zeit Probleme geben, es sollte somit dringend mal bestätigt werden, dass der link und die Installation so noch funktioniert). Die Datei simuliert ein Firmware Update, verändert jedoch nichts am Router sondern startet lediglich den telnetd auf der Box. Wir gehen also auf die HTML Konfigurationsoberfläche, dort zu “Laden & Sichern” und dort klicken wir auf den Menüpunkt “Firmwareupdate”. Mit “Durchsuchen” laden wir unser Image und klicken anschließend auf “OK”. Die Box wird versuchen das Update durchzuführen und melden das es fehlgeschlagen ist, mit der Begründung: Kein Fehler. Achtung: Nach dem Firmwareupdate verlangt die Box nach einem Neustart, unter Umständen reagiert auch das Webinterface nicht mehr. Diesen Neustart führen wir nicht durch, da sonst der Telnetd wieder beendet wird

Nun wird es Zeit das wir uns mit dem Telnetd in Verbindung setzen. Wir starten eine Eingabeaufforderung und verbinden uns mit der Box:

telnet 192.168.9.254 Fritz!Box web password:**

BusyBox v1.00-pre3 (2005.10.17-07:40+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands.

Tatsächlich meldet sich eine Fritz!Box ;) Das Passwort ist übrigens das normale Kennwort das ihr über das Webinterface vergeben habt. Dann folgen einge Logeinträge und Konfigurationseinstellungen und wir sind drin. Als erstes wollen wir sicherstellen das der telnetd bei jedem hochfahren der Box gestart wird. Dazu geben wir ein:

echo “/usr/sbin/telnetd -l /sbin/ar7login“ » /var/flash/debug.cfg

Das nächste Problem ist das Routing: Die Box hat ihre default Route auf dem DSL Interface. Dieses wollen wir jedoch nicht mehr nutzen. Leider lässt sich der default Gateway nicht über das Webinterface umbiegen, so daß wir das manuell tun müssen. Hierzu müssen wir wissen welches die IP des Routers ist an dem die Box angeschlossen sein wird. In unserem Fall ist das die 192.168.9.1, daher geben wir ein:

echo „route add default gw 192.168.9.1“ » /var/flash/debug.cfg

Um die Box beim hochfahren beim SIP Anbieter zu registrieren geben wir folgendes ein:

echo „voipd -R“ » /var/flash/debug.cfg

Wenn der Router nicht am DSL hängt blinkt die DSL Lampe um das zu melden. Das kann auf die Dauer recht nervig sein. Mit diesem Befehl schalten wir das aus:

echo „echo 8,2>/var/led“ » /var/flash/debug.cfg

Und zu guter Letzt noch den DNS. Wenn wir einen eigenen Router haben, möchten wir vielleicht nicht den eingespeicherten der Box nutzen sondern den DNS den wir eingerichtet haben. Um das zu bewerkstelligen müssen wir beim Hochfahren die vorhandene /etc/resolv.conf überschreiben und mit der IP des eigenen DNS füttern. Für Leute die keinen eigenen DNS haben ist dieser Schritt nicht notwendig. Um beim hochfahren die IP des eigenen DNS in /etc/resolv.conf zu schreiben geben wir folgendes ein:

echo „echo nameserver 192.168.9.2 > /etc/resolv.conf“ » /var/flash/debug.cfg

Nun wird es Zeit für einen Neustart:

/sbin/reboot

Gebt der Box ein oder zwei Minuten, solange braucht das Teil um hochzufahren.

Wir loggen uns wieder mit Telnet ein. Um zu sehen ob unsere Änderungen erfolgreich waren schauen wir uns die Routingtabelle der Box an, dies machen wir mit dem Befehl “route”.

route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.9.0 * 255.255.255.0 U 0 0 0 lan default 192.168.9.1 0.0.0.0 UG 0 0 0 lan

Probleme mit Codecs

Einige Leute berichten von Problemen mit den Codecs wenn diese ausgeschaltet sind. Um sicherzugehen schalten wir diese ein. Dazu müssen wir die Datei voip.cfg unter /var/flash bearbeiten. Das tun wir mit dem integrierten Texteditor “nvi” Zur Bedienung vom nvi gibt es einiges anzumerken: Sie ist etwas gewöhnungbedürftig. Wer schon vorher mit dem vi unter Linux oder UNIX gearbeitet hat dürfte keine Probleme bekommen. Für alle anderen einige grundlegende Hinweise:

Die Bewegung erfolgt mit den Cursortasten und den Bildlauftasten. Das Zeichen unter dem Cursor kann man mit “x” löschen. Der nvi kennt zwei Betriebsmodi: Den Befehlsmodus und den Eingabemodus. Nach dem Start befindet man sich im Befehlsmodus. Mann kann dann mit den Cursortasten scrollen und, wie erwähnt, mit “x” einzelne Zeichen löschen. Möchte man die Datei die man geöffnet hat bearbeiten, muß man in den Eingabemodus wechseln. Dies tut man mit der [einfg]-Taste. Danach meldet nvi das es sich im “Insert” Modus befindet. Nun kann man an der Cursortaste Zeichen in die Datei einfügen. Möchte man stattdessen Zeichen überschreiben, wechselt man durch nochmaligen Druck auf die [einfg]-Taste in den “Replace”-Modus. Um den Eingabemodus zu verlassen und zurück zum Befehlsmodus wechseln drückt man [ESC].

Um den nvi zu verlassen ohne zu speichern wechselt man in den Befehlsmodus und drückt nacheinander : !q [ENTER] Mit : bekommt man eine Eingabezeile, !q sagt dem nvi das man sofort, ohne zu speichern beenden möchte. Um zu speichern drückt man : w [ENTER], um nvi zu verlassen und die Datei zu speichern : wq [ENTER].

Wir erstellen eine Sicherheitskopie und öffnen sie mit “nvi”:

cp /var/flash/voip.cfg /var/tmp/voip.cfg nvi /var/tmp/voip.cfg

Nun scrollen wir bis wir die Zeile “use_audiocodecs” finden und ersetzen das “no” durch ein “yes”: vorher:

      use_audiocodecs = no;
      audiocodecs = "PCMA", "PCMU", "G726-32";
      verbose = no;
      sip_prio = 0;
      rtp_prio = 0;
      dyn_codecs = no;
      prio_low_codec = no;

Nachher:

      use_audiocodecs = yes;
      audiocodecs = "PCMA", "PCMU", "G726-32";
      verbose = no;
      sip_prio = 0;
      rtp_prio = 0;
      dyn_codecs = no;
      prio_low_codec = no;

Registrierungsintervall

Um die Box anzuweisen die Verbindung mit dem SIP Provider zu halten wenn sie sich registriert hat, scrollen wir noch einmal nach oben bis zur Zeile

      sipping_enabled = no;
      sipping_interval = 280s;

Diese Werte ändern wir in:

      sipping_enabled = yes;
      sipping_interval = 1800s;

Wir überprüfen nocheinmal alle Eingaben, verlassen dann nvi mit : wq und kopieren die Sicherungsdatei zurück:

cp /var/tmp/voip.cfg /var/flash/voip.cfg

Nun müssen wir noch den voipd neu starten und das wars.

voipd -s voipd

Registrierungsverluste umgehen

Einige im Forum und ich haben festgestellt, dass Registrierungsverluste nach einiger Zeit auftauchen können. Um dies zu umgehen, sollte man noch folgendes tun:

nvi /var/flash/debug.cfg

Eintrag „voipd -R“ einfernen

Folgendes hinzufügen:

while true do voipd -R sleep 1600 done

Firewall konfigurieren

Wer als Router eine Fritzbox benutzt braucht an keine Firewall zu denken.

Wer einen normalen Router verwendet sollte folgendes beachten: Der Box reicht es nicht wenn sie NAT bekommt, sie benötigt nat mit statischen Ports. Und natürlich Portforwarding auf den jeweiligen SIP Ports die sie benutzt. Im einzelnen sind das diese, sowohl tcp als auch udp.

  • 3478
  • 3479
  • 5060-5062
  • 5070-5072
  • 7077-7098
  • 30000-30005
 
router/speedportw501v-mod.txt · Zuletzt geändert: 2008/09/01 12:41 von jpascher
 
Impressum
Recent changes RSS feed Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki