DynDNS für 2.PVC

k4y0z

Neuer User
Mitglied seit
26 Dez 2008
Beiträge
40
Punkte für Reaktionen
2
Punkte
8
Hi, wollte das hier mal teilen, damit lässt sich ein DynDNS-Account für die 2.PVC anlegen (bzw mit iface 0 weitere für die 1. PVC)
Das geht natürlich auch mit editieren der ar7.cfg, finde das aber eine gute Lösung zum scripten:

Code:
DDNSDOMAIN="mustermann.dyndns.org"
DDNSUSER="mustermann"
DDNSPASSWD="passwort"
DDNSPROVIDER="dyndns.org"

COUNT=`ctlmgr_ctl r ddns settings/account/count`
ctlmgr_ctl w ddns settings/account$COUNT/activated 1
ctlmgr_ctl w ddns settings/account$COUNT/domain "$DDNSDOMAIN"
ctlmgr_ctl w ddns settings/account$COUNT/iface 1
ctlmgr_ctl w ddns settings/account$COUNT/username "$DDNSUSER"
ctlmgr_ctl w ddns settings/account$COUNT/password "$DDNSPASSWD"
ctlmgr_ctl w ddns settings/account$COUNT/ddnsprovider "$DDNSPROVIDER"
ctlmgr_ctl w ddns settings/account$COUNT/activated 1
ctlmgr_ctl w ddns settings/account$COUNT/domain "$DDNSDOMAIN"
ctlmgr_ctl w ddns settings/account$COUNT/iface 1
ctlmgr_ctl w ddns settings/account$COUNT/username "$DDNSUSER"
ctlmgr_ctl w ddns settings/account$COUNT/password "$DDNSPASSWD"
ctlmgr_ctl w ddns settings/account$COUNT/ddnsprovider "$DDNSPROVIDER"
anscheinend werden die Werte beim ersten mal nur angelegt und erst beim zweiten mal gesetzt, daher alles doppelt.

Grüße,

k4y0z
 
@k4y0z: Eine interessante Beobachtung... Woher kennst du dich mit ctlmgr_ctl aus? Ich kannte das Ding bis jetzt kaum. Dafür werden meistens andere AVM-Binaries benutzt, um die cfg-Dateien zu bearbeiten. Allerdings weiß ich nicht, ob diese "klassische" Methode von AVM ohne ctlmgr_ctl, die wir auch in FREETZ benutzen solche Namenlosen Mehrfachbenennungen innerhalb einer Sektion beherrscht. Denn bis jetzt hatten wir damit nur eindeutige Sachen behandelt.
Ich hatte es auch gesehen, dass es nicht sofort da war. Ob da "doppelt hält besser" wirklich eine Lösung ist, weiß ich nicht. Soweit ich weiß, hat ctlmgr noch irgendeine interne Möglichkeit die Daten aus ar7.cfg zwischenzupuffern. Vielleicht kommt es daher.
Oder, es kann sein, dass man zunächst einen account anlegen muss, bevor man da rein schreibt. Du ermittelst zwar mit $COUNT die Anzahl der Accounts und bekommst z.B. eine 1 zurück, wenn nur ein Account da existiert. Er hat aber die Nummer 0. Und wenn du da gleich die Sachen mit "activated 1" versuchst zu aktivieren, passiert erstmal nichts. Ich hatte mir die ar7.cfg während der Aktion immer vor den Augen gehalten, irgendwann mal hieß es:
Code:
root@fritz:/var/mod/root# cat /var/flash/ar7.cfg | grep -A 10 ddns
ddns {
        accounts {
                enabled = yes;
                domain = "$$$$GEHEIMAAA";
                iface = 0;
                username = "$$$$GEHEIMAAA";
                passwd = "$$$$GEHEIMAAAA";
                ddnsprovider = "dyndns.org";
        } {
                enabled = yes;
                domain = "";
                iface = 0;
                username = "";
                passwd = "";
                ddnsprovider = "dyndns.org";
        }
        types {
D.h. ctlmgr_ctl beschließt irgendwann mal diese zweite Subsektion anzulegen und tut es zunächst mit leeren Parametern. Ich verstehe es so, dass danach im zweiten Schritt die Parameter gefüllt werden.

Viel interessanter wäre es jetzt eine korrekte Möglichkeit zu finden, eine Subsektion anzulegen und sie wieder zu löschen. Kennt sich da jemand aus?

MfG
 
ctlmgr_ctl scheint noch einige Geheimnisse zu haben. Ist aber sehr interessant.
 
@bommel300: Du hattest gestern ursprünglich was anderes gepostet gehabt und dann anscheinend gelöscht. Ich hatte mal deinen Ansatz aus meiner E-Mail herausgefischt:
Code:
DDNSDOMAIN="mustermann.dyndns.org"
DDNSUSER="mustermann"
DDNSPASSWD="passwort"
DDNSPROVIDER="dyndns.org"

COUNT=`ctlmgr_ctl r ddns settings/account/count`
ctlmgr_ctl w ddns settings/account$COUNT/ddnsprovider "$DDNSPROVIDER"
ctlmgr_ctl w ddns settings/account$COUNT/domain "$DDNSDOMAIN"
ctlmgr_ctl w ddns settings/account$COUNT/iface 1
ctlmgr_ctl w ddns settings/account$COUNT/username "$DDNSUSER"
ctlmgr_ctl w ddns settings/account$COUNT/password "$DDNSPASSWD"
ctlmgr_ctl w ddns settings/account$COUNT/activated 1

Es hat gestern bei mir in so einer Art und Weise auf meiner 7270 auf Anhieb geklappt. Zwar hat ctlmgr auch ursprünglich eine leere Sektion mit leeren Feldern erstellt, nach 5...10 Sekunden waren aber die Felder von alleine ausgefüllt. Und das Ding scheint zu funktionieren.
Ich hatte mir die Tage auf einem mir zu Verfügung stehendem Strato-Root-Server einen eigenen DDNS-Dienst ins Leben gerufen und kann etwas genauer beobachten, was da alles passiert. Zwar muss ich deswegen auf einen benutzerspezifischen Provider umstellen und die URL selbst kreieren, steht aber in der Hilfe zur besagten Einstellungsseite der Box und ist selbst zu erklären.
Wichtig ist dabei allerdings, dass man auch die IP mitüberträgt. Bei manchen DDNS-Providern (so wie auch bei meinem eigens eingerichteten) ist es nicht zwingend notwendig, weil während der http-Session der DDNS-Provider die IP theoretisch selbst ermitteln kann. Verlässt man sich allerdings darauf, so bekommt man bei der Aktualisierung die IP der 1.PVC in seinem DDNS-Account eingetragen, weil die http-Session ja über 1.PVC läuft. Deswegen sollte man dafür sorgen, dass die IP mitübertragen wird, selbst wenn nur dafür die benutzerdefinierten Einstellungen in Einspruch genommen werden müssen. So wild sind sie auch nicht.
Mich würde in dem Zusammenhang auch interessieren, ob man einen eigenen Provider mit dem Namen usw. anlegen kann. Im Grunde genommen ist es auch nur eine Sektion in ar7.cfg. Was allerdings dabei etwas störend ist: Der Providername heißt in ar7.cfg "Benutzerdefiniert" (auf Deutsch!), die dazugehörige Sektion allerdings "custom" oder wie auch immer so ähnlich. Es scheint so zu sein, dass irgendwo in den Tiefen von ctlmgr und dsld eine "Verdrahtung" zwischen "Benutzerdefiniert"->"custom" statt findet. Eigentlich ist es voll unlogisch und inkonsequent, wie eben immer bei AVM.
Übrigens, AVM scheint in den letzten Versionen ziemlich viel an dem Behandeln von cfg-dateien zu tüfteln. Ich hatte gestern festgestellt, dass alte Tricks mit dem auslesen der Passwörter über allcfgconv (s. hier) nicht mehr funktionieren. Kann das bitte jemand bestätigen?
Für mich heißt es, dass AVM immer mehr von allcfgconv weg in Richtung ctlmgr will. Das ist eigentlich schade, den ctlmgr ist mittlerweile zu so einem Monster bzw. Mädchen für alles geworden ist. Das ist natürlich seitens AVM gut, um uns etwas zu ärgern und zu verwirren, ob es dann aber für die Box allgemein gut ist alles in eine Binary reinzupacken sei hingestellt.

MfG
 
@hermann72pb: Ich hatte meinen Ansatz gelöscht, weil es nach dem Zurücksetzen auf Werkseinstellung und dem darauffolgenden Reboot nicht mehr so war, d. h. die Felder waren leer. Habe dann weitere Sections hinzugefüllt, und siehe da, die leeren Felder waren irgendwann gesetzt in der ar7. Leider habe ich keine Gesetzmäßigkeit gefunden, ab wann die ar7 geschrieben wird. Man kann die Einträge auch mit ctlmgr_ctl sofort richtig auslesen, nur wann sie in der ar7 gespeichert werden, oder besser wie man das Speichern auslöst, ist mir noch ein Rätsel.
Das mit allcfgconv funktioniert bei mir weiterhin. Das einzigste das meine ar7 nicht mehr "ganz korrekt" scheint, d. h. um allcfgconv zu verwenden, benötige ich den Parameter -e
( Fritzbox 7170 xx.xx.80 und Speedbox[W920V] 54.04.85-17828 )

Mfg
Bommel
 
Zuletzt bearbeitet:
Vermutlich wird nicht jede Änderung sofort zurückgeschrieben, sondern erst nach kurzer Zeit. Das ist auch sinnvoll, wenn man nicht übermäßig häufig das Flash überschreiben will, und sicher auch schneller.
Wie man schon aus dem Namen ctlmgr_ctl vermuten kann, greift dieses Programm nicht selbst auf die Datei zu, sondern kommuniziert mit dem ctlmgr. Und für den ist die Änderung vermutlich sofort wirksam.
Interessant wäre noch, ob allcfgconv direkt auf die Daten im Flash zugreift oder auf den ctlmgr, oder dem ctlmgr mitteilen kann, die Daten sofort zu schreiben.
 
@bommel300: Ich hatte es genau so, wie oben steht (und von dir vorher gelöscht) nun mal auf drei 7270 reproduzierbar durchgeführt. Und genau in der Reihenfolge hat es gefruchtet.

Was ist das denn für Parameter -e? Den kenne ich wiederum nicht. Woher kennst du dies alle Hintergrundinfos? Komm, spuck bitte hier aus, was du von den Mechanismen weiß. Die Informationen sind wirklich sehr wertvoll!

Ich spiele bereits mit den Gedanken meine box.info von FREETZ etwas weiter zu treiben und nicht nur die Sachen informativ anzubieten, sondern ein Paar neue Eingabemasken definieren, die AVM nicht anbietet, die aber benötigt werden.

Es wird nämlich im FREETZ Unterforum immer wieder darüber diskutiert, wie schlecht DDNS-Client von AVM sei. Es existieren sogar 2-3 alternative Clients unter FREETZ. Wenn ich das hier aber alles sehe und höre, dann habe ich den Eindruck, dass man diesen Mechanismus von AVM nur richtig einrichten und bedienen muss. Die restlichen Clients in FREETZ kann man sich ersparen. Denn ich war erstaunt, wie gut es mit der 2. PVC funktioniert.

Kurzerhand hatte ich gestern bei meinem Vater die 2.PVC auch über DDNS verfügbar gemacht und seine Adresse im Telefonbuch angelegt. Daraufhin konnte ich ihn direkt anrufen! Nach seiner Aussage konnte er mich besser hören, als wenn es über 1und1-Server läuft. Verbindung wurde in G711 aufgebaut. Es wäre interessant zu wissen, wie man eine HD-Telefonie erzwingen könnte. Zeitvezögerung war allerdings nicht besonders besser: Über 1und-Server lag ich etwas über 45ms, bei direkter Verbindung waren es 35ms.

MfG
 
Zeitvezögerung war allerdings nicht besonders besser: Über 1und-Server lag ich etwas über 45ms, bei direkter Verbindung waren es 35ms.

Der größere Teil der Verzögerung kommt von den DSL-Anschlüssen. Ich gehe davon aus, daß der 1und1 Server eine ordentliche Internet-Anbindung hat.
 
...
Wie man schon aus dem Namen ctlmgr_ctl vermuten kann, greift dieses Programm nicht selbst auf die Datei zu, sondern kommuniziert mit dem ctlmgr.
...
Ja, das kann man auch hier >>> klick <<<, >>> klick <<< nachlesen.
Code:
Liesst oder schreibt Konfigurationswerte mit Hilfe des ctlmgr Dienstes.
 
@sf3978: Das ctlmgr_ctl auf den Dienst ctlmgr zugreift ist bekannt. Nur wie wird der Dienst gesteuert. Das ist die Frage. Das Programm webcm macht es ja auch irgendwie, z. B. um Forwardrules auszulesen/einzutragen.
"forwardrules:settings/rule/list(activated,description,protocol,port,fwip,fwport,endport)".
Mit ctlmgr muss ich folgendes machen, da ich es nicht schaffe das Protokoll einzutragen.
"ctlmgr_ctl w forwardrules settings/rule$ForwardCount/protocol TCP" ergibt "hopopt".
Ich behelfe mir durch simples ersetzen.
Beispiel zum eintragen des Portforwardings für SSH
"ctlmgr_ctl w forwardrules settings/rule$ForwardCount/fwip 0.0.0.0"
"cat /var/flash/ar7.cfg | sed -e 's/# hopopt 0.0.0.0 0.0.0.0 0/tcp 0.0.0.0 0.0.0.0:22 0 # SSH-Server/' > /var/ar7.cfg

...Über neue Ansätze, wie man den Dienst steuern kann, würde ich mich freuen.

@hermann72pb: Habe leider keine Hintergrundinfos zu allcfgconv.
--help sagt "-e -output even if load error. (SET)"
Man kann es auch umgehen, indem man die ar7 neu durch allcfgconv schreibt. Es werden dabei ein paar Einträge verändert.
 
Willst Du ctlmgr_ctl durch ein eigenes Programm ersetzen? Wenn ja, weshalb?
Natürlich nicht. Aber ctlmgr_ctl hat meiner Meinung nach wenig Einfluß auf den Dienst:
ctlmgr_ctl --help ergibt
usage:
ctlmgr_ctl <r/w> <ui-module> <key1> [value1]
(r/w: read/write)
Es gibt keine Möglichkeit Sections zu löschen oder den Cache zu schreiben.
 
Das Programm ctlmgr_ctl kommuniziert über einen Socket mit dem ctlmgr. Es wird in einem XML-ähnlichen Format eine Anfrage übertragen, auf das eine XML-ähnliche Antwort kommt. Das läßt sich einfach nachbilden.
Um eine Section zu löschen, müßte man wissen, wie das entsprechende Kommando lautet und ob es ein solches überhaupt gibt.
Um das Schreiben der Datei zu veranlassen gilt das gleiche, wobei hier noch die Frage hinzukommt, warum ist das überhaupt nötig?
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.