»Home
»Info
»FAQ
|
DokumentationAnalog Telefon AdapterDie Funktion analog Telefon Adapter ermöglicht es, die VoIP-Telefonfunktion mit einem analogen Endgerät zu nutzen, auch wenn der Router nicht per ADSL mit dem Internet verbunden ist. So kann der Router als "Telefon" verwendet werden wenn er im LAN nur mit Ethernet oder WLAN angebunden ist. Um den Router als analog Telefon Adapter zu nutzen sind folgende Parameter zu beachten:
Bis Version 0.2.xzu 1:
zu 2:
zu 3:
Beispielkonfiguration für Sipgate.deIm folgenden Screenshot ist eine Sipgate Beispielkonfiguration abgebildet: Zu beachten ist bei Sipgate, das der Benutzername gleich die Rufnummer ist.
Ab Version 0.3Ab BS Version 0.3 ist die Telefon- respektive VoIP-Konfiguration nicht mehr zweigeteilt und es sind auch einige Optionen mehr verfügbar. BeispielkonfigurationenSipgate
Carpo
SIPphone.com
T-Online
Steuern verschiedener Funktionen per TelefonAb BS Version 0.2.1 kann der Router auch per Telefon gesteuert und konfiguriert werden. Es sind einige Standardfunktionen vorgegeben. Diese sind der folgenden Tabelle zu entnehmen. Grundsätzlich beginnen Steuercodes mit "\#". Wurde der komplette Steuercode eingegeben, dauert es einige Sekunden bis der Router den Wahlvorgang als abgeschlossen ansieht. Um dies zu Beschleunigen kann der Steuercode mit "\#" beendet werden. Am Telefon ist anschließend "kein Anschluß unter dieser Nummer" zu hören. Nachdem der Hörer aufgelegt wird, beginnt der Router mit der Auswertung des Steuercodes und führt die entsprechende Aktion aus. Es ist auch möglich eigene Steuercodes zu definieren und Aktionen daran zu binden - dazu mehr im Howto.
Die folgende Tabelle enthält alle vordefinierten Steuercodes. Das Symbol bedeutet den Hörer abnehmen (Freizeichen wird vorausgesetz), das Symbol bedeutet auflegen. Für Funktionen die auch bei der "Fritz!Box Fon" möglich sind, werden die selben Steuercodes (\#96*... oder \#99...) verwendet. BS-spezifische Codes beginnen mit \#77*.
AnrufmonitorAb BS Version 0.2.1 ist das Monitoring von Telefonanrufen über das Netzwerk möglich. Der Anrufmonitor ist für alle Diejenigen interessant, die über eingehende Anrufe via TV (siehe Bild), PC, Instant Messenger oder E-Mail benachrichtigt werden möchten. Der Anrufmonitor kann über das Web-Interface BS-Extras→Additional functions→Call monitor oder per Telefon ein- und abgeschaltet werden. Um den Anrufmonitor per Telefon einzuschalten ist der Steuercode \#96*4* einzugeben (siehe oben). Zum Abschalten muss \#96*5* eingegeben werden. FunktionsweiseDer Anrufmonitor überwacht ständig die Telefonfunktion des Routers. Um eingehende Rufe zu signalisieren, läuft auf dem Router ein Server auf TCP-Port 1012 (standard). Eingehende Rufe werden allen Clients, die mit dem Server verbunden sind, mit einer einfachen textbasierten Nachricht signalisiert. Die Nachricht enthält unter anderem Datum und Uhrzeit (lokale Zeit des Routers), das Schlüsselwort "RING", die Rufnummer des Rufenden und die Information ob der Ruf über PSTN oder SIP eingeht. Links zu Client-Programmen
Plugins für das Web-InterfaceAb BS Version 0.3 können zusätzliche Plugins für des Web-Interface installiert werden. Jedes Plugin ist ein CGI-Skript. Ein CGI-Skript ist hier ein Shell-Skript, das dynamisch oder statisch HTML-Code erzeugt und Daten entgegennehmen, verarbeiten und ausgeben kann. Plugins besitzen die Dateierweiterung .cgi und müssen unter /opt/webs gespeichert werden. Plugins müssen ausführbar sein! Am Beispiel des Web-Shell Plugins wird der Aufbau eines Plugins erläutert. Das Web-Shell Plugin ermöglicht es, Shell-Befehle über ein Eingabefeld im Web-Interface auszuführen und die Ausgabe des Befehls wird angezeigt (siehe hier). Aufbau eines PluginsName und BeschreibungDas Plugin beginnt mit #!/bin/sh, damit es von der Shell ausgeführt wird. Hinter #NAME: wird der Name des Plugins angegeben. Dieser wird auf der Plugin-Web-Seite angezeigt. Ist im Plugin kein Name angeben, wird der Dateiname angezeigt. Mit #DESCRIPTION: wird die Beschreibung des Plugis angegeben. Diese wird auf der Plugins-Seite auf der rechten Seite angezeigt, wenn die Maus über den Link zum Plugin bewegt wird. Die Beschreibung kann auch HTML-Tags beinhalten. #!/bin/sh #NAME: Web-Shell #DESCRIPTION: Execute a shell command via the web interface. Parameter auswertenUm Parameter für das Plugin zugänglich zu machen, wird das Skript /webs/cgi-bin/login.cgi benötigt. Dieses stellt jeden Parameter als Shell-Variable bereit. . /webs/cgi-bin/login.cgi HTML-Code ausgebenMit CGI-Skripten können beliebige Inhalte generiert und ausgegeben werden. Wie die Daten interpretiert werden sollen, wird mit dem Content-type angegeben. Für HTML ist text/html definiert, für JPEG-Dateien wird image/jpeg verwendet, für SVG nutzt man image/svg+xml usw. Der Content-type ist Teil des HTTP-Headers. Mit CGI-Skripten können also einige HTTP-Header-Felder an den Web-Browser übertragen werden. Der HTTP-Header endet mit einer leeren Zeile (zwei mal carriage return und new line - \r\n\r\n). Content-type: text/html Connection: close Danach kann HTML-Code ausgeben werden, oder falls ein anderer Content-type verwendet wird die jeweis entsprechenden Daten. <html> <head> [...] HTML-Code oder auch andere Daten können auf verschiedene Weise erzeugt und ausgegeben werden. Bei statischen Inhalten eignen sich Here-Dokumente: cat << EOF_HTML [...] HTML-Code [...] EOF_HTML Für einzelne Zeilen ist der echo-Befehl kürzer. echo '<pre style="margin:15px;">' Verwenden des BS StylesWenn im HTML-Dokument folgendes Style Sheet eingefügt wird, kann die Optik des Plugins an die des BS Web-Interfaces angepasst werden. <LINK rel="stylesheet" href="../../style.css" type="text/css"> <!--[if IE]><style type="text/css">@import url(../../ie.css);</style><![endif]--> Als Vorlage für die Verwendung der CSS-Regeln und Klassen kann jedes Skript aus /webs/cgi-bin/ oder das Web-Shell Plugin verwendet werden. Verwenden der BS JavaScript-FunktionenDas BS Web-Interface nutzt JavaScript-Funktionen für die Hinweise auf der rechten Seite, zum prüfen einiger Eingabefelder zum ein- und ausblenden von Formularfeldern oder HTML-Elementen und für die Back-, Save-, usw. Buttons. <SCRIPT language="JavaScript" src="../../js_fade.txt" type="text/JavaScript"></SCRIPT> <SCRIPT language="JavaScript" src="../../js_menu.txt" type="text/JavaScript"></SCRIPT> Beispiel-PluginsDas Web-Shell Plugin ist gut als Vorlage für eigene Plugins geeignet. Es enthält alle relevanten Teile die ein Plugin enthalten muss. Es zeigt auch, wie Eingaben verarbeitet werden können und wie dynamisch HTML-Code generiert wird. #!/bin/sh #NAME: Web-Shell #DESCRIPTION: Execute a shell command via the web interface. HOME="../plugin.cgi" . /webs/cgi-bin/login.cgi if [ "$action" = "3" ]; then cmd=`echo $cmd|sed -e 's/+/ /g'|sed -e 's/%/\\\x/g'|sed -e 's/[\]x0[dD][\]x0[aA]//g'` cmd_html=`echo -e $cmd " "|sed -e 's/\"/\"/g'` fi cat << EOF_HTML Content-type: text/html Connection: close <html> <head> <SCRIPT language="JavaScript" src="../../js_fade.txt" type="text/JavaScript"></SCRIPT> <SCRIPT language="JavaScript" src="../../js_menu.txt" type="text/JavaScript"></SCRIPT> <LINK rel="stylesheet" href="../../style.css" type="text/css"> <!--[if IE]><style type="text/css">@import url(../../ie.css);</style><![endif]--> <SCRIPT type="text/JavaScript"> function enter(event) { if (event) { if(navigator.appName=="Netscape" && event.which == 13) subm(3); else if(event.keyCode==13) subm(3); } else return true; } </SCRIPT> </HEAD> <BODY onload="document.getElementById('cmd').focus();"> <DIV id=c_border> <DIV id=c_pfad>Plugins / Web-Shell</DIV> <DIV id=c_titel>Web-Shell</DIV> EOF_HTML if [ "$action" = "3" ]; then echo '<pre style="margin:15px;">' echo -e "Web-Shell> " $cmd eval `echo -e $cmd 2>&1` echo '</pre>' fi cat << EOF_HTML <form id="xform" name="xform" method="post"> <input id="action" type="hidden" name="action" value="0"> <DIV id=c_std> <table border="0" cellpaddig="0" cellspacing="2"> <tr onmouseover="i_showElem(1);" onmouseout="i_showElem(0);" > <td width="80">Command:</td> <td><input id="cmd" name="cmd" size="70" type="text" onkeypress="return enter(event);" value=" EOF_HTML echo $cmd_html cat << EOF_HTML "></td> </tr></table></DIV> </form> <DIV id=c_leer></DIV> <DIV id=c_foot></DIV> </DIV> <DIV id=c_verzoeg1></DIV> <DIV id=c_verzoeg2></DIV> </DIV> <DIV id=t_Frame> <DIV id=t_but1 onclick='window.location.href="$HOME";' onmouseover=rahmen(1,1) onmouseout=rahmen(0,1)>Back <<</DIV> <DIV id=t_but4 onclick="subm(3);" onmouseover=rahmen(1,4) onmouseout=rahmen(0,4)>Run <<</DIV> </DIV> <DIV id=i_Frame> <DIV id=i_content> <h2>Web-Shell</h2> <p>Execute a shell command.</p> </DIV> <DIV id=i_content1> <h2>Web-Shell</h2> <p><b>Command</b></p> <p>Enter the command to execute.</p> </DIV> </BODY></HTML> EOF_HTML a=0 NVRAM ToolDas NVRAM Tool ist das zentrale Programm zum Speichern und Auslesen der Routerkonfiguration. Es ist seit der ersten BS-Version im Image enthalten und wurde seitdem mehrmals verändert und erweitert. FunktionsweiseDas Tool verwaltet im Wesentlichen eine sogenannte NVRAM-table. Dies ist eine binäre Datenstruktur in der die zu speichernden Werte strukturiert im Flash Speicher des Routers abgelegt werden. Der NVRAM selbst ist ein 32kB großer Speicherbereich am Ende des Flashspeichers des Routers. Soll ein neuer Wert hinzugefügt werden, prüft das Tool zunächst ob der Parametername bereits vorhanden ist. Falls ja, wird der vorhandene Wert durch den neuen ersetzt und ggf. die gesamte Tabelle gedehnt bzw. geschrumpft. Ab BS-Version 0.2.0 verwendet das Tool sogenannten shared memory. Dies ist ein Segment im schnellen Hauptspeicher (RAM) des Routers, in welches alle Werte zunächst zwischengespeichert werden. Erst durch ein nvram commit schreibt das Tool alle Werte aus dem shared memory in den Flash. Der Grund für diese Verfahrensweise ist der Geschwindigkeitsvorteil des shared memory. Da das Schreiben in den Flash im Vergleich dazu sehr lange dauert, macht es Sinn zunächst eine Reihe von Werten zu sammeln und anschließend erst permanent im Flash zu speichern. Ab BS-Version 0.3.0 kann die NVRAM-table komprimiert werden. Dazu wird der shared memory zunächst auf ein Vielfaches des eigentlichen NVRAM vergrössert. Dies ist notwendig da die Daten im shared memory unkomprimiert gehalten und erst bei einem nvram commit komprimiert und in den NVRAM geschrieben werden. Beim Hinzufügen oder Ändern eines Werts prüft das Tool zunächst ob die "neue" komprimierte NVRAM-table inklusive des Hinzugefügten überhaupt in den NVRAM passen würde und weist dies ggf. mit einer Fehlermeldung zurück. Bedienung
TechnischesFolgendes Schema zeigt den Aufbau der NVRAM-table: Zur Verdeutlichung soll das Schlüssel-Wert-Paar test=BILLgates in eine leere NVRAM-table gespeichert werden. Danach haben die in der Abbildung gezeigten Felder folgende Werte:
Reset ButtonDer Reset Button wird durch das Programm reset_button überwacht (ab BS Version 0.3.2). Gestartet wird es durch das Startscript reset_button.sh. FunktionsweiseWird der Reset Button gedrückt, zählt das Programm die Sekunden, bis der Reset Button wieder losgelassen wird. Das Zählen wird durch das kurze Aufleuchten der roten Power LED signalisiert. Nachdem der Reset Button losgelassen wurde, wird ein Handler-Skript gerufen, diesem wird die Anzahl der "gedrückten" Sekunden übergeben. Im Standardfall wird das Skript /usr/bin/button_handler.sh aufgerufen. Die Funktionen des Standard-Handlers sind in der folgenden Tabelle dargestellt. Reset-Button Funktionen
NVRAM Parameter
HTTP-ProxyFunktionsweiseSeit BS Version 0.1 ist ein HTTP/1.0,SSL Proxy-Server namens stproxy enthalten. Ein Proxy (dt. Stellvertreter) ist ganz allgemein ein Server-Programm, welches die von einem Client gestellten Anfragen (Requests) stellvertretend für diesen zum eigentlichen Zielserver weiterleitet. Im Normalfall wird ein Proxy verwendet um die Sicherheit zu erhöhen. Statt beispielsweise pauschal den TCP-Port 80 (HTTP) an einer Firewall zu öffnen, verwenden Administratoren gerne einen HTTP-Proxy, da dieser sicherstellt, das auch wirklich nur gültige HTTP-Requests versendet werden und nicht etwa ein anderes Protokoll über diesen Port getunnelt wird. AnwendungsbeispielIm BS-Image ist der stproxy vor allem für die Nutzung des heimischen Anschlußes zum Surfen gedacht. Angenommen man hat auf der Arbeit einen Rechner der zwar eine Internetverbindung hat, die Firmenfirewall aber lediglich E-Mail-Verkehr gestattet. Dies bedeutet es werden mit großer Wahrscheinlichkeit die TCP-Ports 25 (SMTP) und 110 (POP) durchgelassen und alle anderen Verbindungen geblockt. Nun braucht man lediglich am heimischen DSL-Anschluß den stproxy auf z.B. Port 25 einstellen und gibt dem Browser auf der Arbeit als HTTP-Proxy seinen heimischen DNS-Namen, z.B. myproxy.dyndns.org:25. Sollte der dortige Browser eine solche Einstellung verbieten, dann einfach einen portablen Firefox auf dem USB-Stick mitgenommen. KonfigurationDer stproxy kann über das Webinterface aktiviert und konfiguriert werden. Folgende Parameter können dort festgelegt werden: -HTTP-Proxy On/Off, 'stproxy' beim Hochfahren starten an/aus, Standard=aus -Firewall proxy-port close/open, Proxy-Port über das WAN-Interface erreichbar nein/ja, Standard=nein -Firewall admin-port close/open, Proxy Management Interface über WAN erreichbar nein/ja, Standard=nein -Proxy-port, TCP Port Nummer für Proxy-Dienst, Standard=8080 -Admin-port, TCP Port Nummer für Management-Interface, Standard=6767 -DNS-server, IP-Adresse des DNS-Servers den 'stproxy' nutzen soll, Standard=127.0.0.1 Weiterhin besitzt der stproxy ein eigenes Webinterface (siehe Admin-port), welches zur Nutzerkonfiguration dient. Dort können entsprechende Nutzer und Passwörter konfiguriert werden die den Proxy nutzen dürfen. Der vorkonfigurierte Standard-Nutzer ist: -Nutzername: stproxy -Passwort: stproxy -Rechte: Admin -zulässiger IP-Bereich: 0.0.0.0, also von überall ipt-SIP ModulAllgemeinDas ipt-SIP-Modul ist ein iptables Firewall Modul, welches bei Bedarf dazu eingesetzt werden kann den Inhalt von SIP-Paketen zu manipulieren. Dies kann dann notwendig sein, wenn ein SIP-Server nicht mit dem im BS-Image enthaltenen VOIP-Client vodsl kommunizieren kann oder will. Dies tritt beispielsweise dann auf, wenn einer der beiden Kommunikationspartner SIP-Header/-Body Attribute verwendet, die der Gegenüber nicht akzeptiert. Das Modul wird mittels iptables konfiguriert und arbeitet in der mangle-table, d.h. Pakete werden durch das Modul verändert. Das Modul prüft zunächst, anhand der übergebenen Methode, ob es sich um ein SIP-Paket handelt und entfernt, manipuliert oder verändert dann den gewünschten Eintrag. Abschließend wird die SIP-Header Länge korrigiert und die UDP-Checksumme neu berechnet. BedienungDas Modul wird mittels iptables konfiguriert und akzeptiert folgende Parameter:
Damit lassen sich folgende Funktionalitäten realisieren:
Die entsprechenden Funktionalitäten lassen sich natürlich auch bei eingehenden Paketen realisieren, indem anstatt der OUTPUT- die INPUT-chain angegeben wird. AnwendungsbeispielAls Anwendungsbeispiel soll der Arcor-Voip Fix aus dem BS-Image genommen werden, welcher als Shell-Funktion im firewall.sh-Skript enthalten ist. setup_sip_arcor_fix() { [ $voip_present -eq 0 ] && return if [ `nvram get ata_arcor_fix` = "1" ]; then echo "setup_sip_nat()" >>$DEBUG_FILE exec_cmd "iptables -t mangle -F OUTPUT" exec_cmd "modprobe ipt_SIP" IPT="iptables -t mangle -A OUTPUT -p udp --sport 5060 -j SIP" USER='User-Agent: DSL-EasyBox/DSL-EasyBox-10.02.506' ATTR_REPLACE='a=silenceSupp:off' ATTR1='a=ptime:20' ATTR2='a=sendrecv' methods_all="INVITE SIP/2.0 ACK BYE CANCEL REGISTER REFER NOTIFY OPTIONS SUBSCRIBE INFO" #go through each method for m in $methods_all do exec_cmd "$IPT --sip-method \"$m\" --sip-header --sip-replace 'User-Agent: ' --sip-with \"$USER\"" exec_cmd "$IPT --sip-method \"$m\" --sip-body --sip-replace \"$ATTR_REPLACE\" --sip-with \"${ATTR1}%n${ATTR2}\"" done fi } Die Funktion fügt für alle, in der Variablen $methods_all enthaltenen, SIP-Methoden zwei Regeln ein. Die erste manipuliert den User-Agent und setzt ihn auf DSL-EasyBox/DSL-EasyBox-10.02.506 damit der Arcor-Server denkt es handelt sich um ein Arcor-Gerät. Die zweite Regel ersetzt das SIP-Body Attribut a=silenceSupp:off durch a=ptime:20\r\na=sendrecv. Das Schlüsselzeichen %n dient als Zeilentrenner. Color Theme - Custom color themesSeit BS Version 0.3.8 kann das Farbschema des Web-Interface geändert werden [Screenshots]. FunktionsweiseDas Farbschema kann via Web-Interface (Administration→Web-Interface color theme) verändert werden. Beim Laden der Konigurations-Seite werden die aktuellen Farbwerte aus der Datei style.css und den Bildern entnommen und angezeigt. Beim Speichern eines neuen oder veränderten Farbschema (Save & Run), wird die Datei style.css sowie alle Bilder neu generiert bzw. modifiziert. Die neuen Dateien werden mit Hilfe des mini_fo Filesystems gespeichert und überdecken die Originaldatei des nicht beschreibaren Flash. Änderungen am Farbschema sind also nur möglich, wenn mini_fo aktiviert ist. Ist nicht ausreichend Speierplatz im Flash (z.B. Images mit Annex A+B, OpenVPN, RADIUS und VoIP) für eine JFFS2-Partition vorhanden, wird das mini_fo Filesystems nur im RAM gehalten. Nach einem Reboot sind dann die Änderungen am Farbschema nicht mehr da. Da alle Änderungen direkt an den betreffenden Dateien durchgeführt werden, gehen alle Änderungen mit dem Löschen des mini_fo Filesystems bzw. der JFFS2-Partition verloren. Um dies zu verhinden kann das Farbschema als custom Farbschema gespeichert werden. Dazu dient der Button Save as custom im Web-Interface. Mit Save as custom wird das aktuelle Farbschema im NVRAM gespeichert. ExportierenUm besonders schöne Farbschema zu exportieren und an andere weiterzugeben oder im Forum zu posten, kann wie folgt vorgegangen werden: Administration→Web-Shell Web-Shell> nvram get custom_color_theme_file Die Ausgabe sieht dann in etwas so aus: var custom_theme=new Array('F68918','FEFEFE','FFFFFF','FFFFFF', '000000','F68918','D0D0D0','F68918', 'F68918','333333','DDDDDD','000000', 'F6F6F6','CCCCCC','000000','FFFFFF', 'F6F6F6','999999','F68918','EEEEEE', '000000','000000','F0F0F0'); IPv6 6to4 TunnelMit einem 6to4 Tunnel ist es möglich IPv6 Datagramme in ein IPv4 Frame zu enkapsulieren, um so verschiedene IPv6 Netze über ein IPv4 Netz, z.B. das (heutige) Internet, zu verbinden. Am Beispiel des Tunnelbroker-Service von Hurricane Electric (http://tunnelbroker.net) soll gezeigt werden, wie ein 6to4 Tunnel mit dem BS-Image etabliert werden kann. Hurricane Electric — Tunnel DetailsFolgende Tabelle listet alle relevanten Information auf, um einen 6to4 Tunnel zu Hurricane Electric aufzubauen.
Server IPv4 Address ist der Remote IPv4 Endpoint des Tunnels. Die eigene IPv4 Adresse (Client IPv4 Address) ist der andere Endpunkt. Die Client- und Server IPv6 Adressen sind die IPv6 Adressen der Tunnelendpunkte. Durch diese wird eine Punkt-zu-Punkt Verbindung zwischen den beiden Tunnelendpunkten realisiert. Das IPv6 Subnetz das hinter Routed /64: angegeben ist, wird das lokale IPv6 Subnet. Alle Datagramme die in dieses Subnetz übertragen werden, müssen den 6to4 Tunnel passieren und vom BS Router zum entsprechenden Host geroutet werden. Dadurch wird jeder Host in diesem Subnetz global adressierbar! Konfiguration6to4 TunnelFolgende Tabelle listet alle Parameter auf, die im Webinterface angegeben werden müssen, um einen 6to4 Tunnel, am Beispiel von Hurricane Electric, aufzubauen.
Den Tunnel anschließend mit Add hinzufügen, danach mit Save speichern.
Lokale RouteDa bei IPv6 NAT nicht mehr vorgesehen ist und jeder Host eine öffentliche Adresse erhält, muss noch eine Route angelegt werden, damit sämtlicher IPv6 Verkehr aus und in das lokale Netz richtig geroutet wird.
Die Route anschließend mit Add hinzufügen, danach mit Save speichern oder mit Save & Run speichern und anschließend den Tunnel aufbauen und die Route setzen.
Custom Script nach dynamischem Tunnel UpdateWenn sich die lokale IPv4 Adresse ändert, muss auch das Tunnel-Setup beim Tunnelbroker aktualisiert werden. Da es dafür keine standardisierte Prozedur gibt, gibt es die Möglichkeit diese durch ein Custom Script zu realisieren. Das Custom Script wird immer gerufen, wenn sich die Adresse der Schnittstelle ändert, die den lokalen Tunnelendpunkt darstellt. Wird das Skript gerufen, so werden diesem drei Parameter als Umgebungsvariable mitgegeben:
Das folgende Listing zeigt wie das Custom Script für den Tunnelbroker Hurricane Electric aussehen könnte. Das Update erfolgt Web-basiert, nähere Informationen dazu sind hier nachzulesen. #!/bin/sh HURRICAN=216.66.80.30 ## Hurricane Electric's Tunnel Endpunkt IPV4ADDR="AUTO" ## ermittle die öffentliche IP aus der Anfrage MD5PASS="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ## MD5 Hash des Passworts USERID="yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" ## User ID GTUNID="zzzzz" ## Globale Tunnel ID if [ "$REMOTE" = "$HURRICAN" ] then wget -O /var/6to4update.html "http://ipv4.tunnelbroker.net/ipv4_end.php?\ ipv4b=${IPV4ADDR}&pass=${MD5PASS}&user_id=${USERID}&tunnel_id=${GTUNID}" fi Das Custom Script wird im NVRAM unter ipv6_custom_dyn_tun gespeichert. Wenn obiges Skript unter dem Namen /var/dyntun.sh abgespeichert wurde, kann es mittels folgendem Befehl im NVRAM gespeichert werden: nvram setfile ipv6_custom_dyn_tun=/var/dyntun.sh nvram commit |