netcup dyndns für Mikrotik Router

  • Ich werde jetzt Mal mit meinem Problem mit Regex im Mikrotik Forum anfragen.


    Ich komme mit deren angepassten Regex Variante einfach nicht zurecht, wahrscheinlich ist nur ein Zeichen oder so falsch.


    Ich gebe Rückmeldung wenn ich das Script komplett fertig habe.

  • frank_m

    Ich habe mir die bash und Python DDNS Scripte für netcup zu verwendet, da diese für mich verständlicher waren ;)


    Mein script ist quasi fertig, nur das mit der Record ID fehlt eben noch!


    Das ist unbedingt notwendig,

    da die netcup API ohne die ID nicht kapiert das der DNS Record schon vorhanden ist.

    Sie überschreibt diesen nicht, sondern legt diesen erneut an :rolleyes:


    Mein script habe ich noch nicht veröffentlicht, da ich die Gefahr sehe, das es jemand verwendet und sich die ganze DNS Records zerschießt.

  • da die netcup API ohne die ID nicht kapiert das der DNS Record schon vorhanden ist.

    Das ist mir schon klar. Deshalb hatte ich ja im oben verlinkten Script nachgesehen, wie die das Problem gelöst haben, weil die müssen das ja auch mal gehabt haben. Und die lesen die Einträge aus, modifizieren nur die IP-Adresse im Array und schreiben es zurück.


    Wie kam es überhaupt zu dem Missverständnis? Ich hatte ja weiter oben ein paar mal auf dieses Script referenziert, woraufhin Olivetti fragte, welches Script ich denn meine, und ich hab es verlinkt, woraufhin du schriebst, dass das Script nicht funktioniert. Ist natürlich grundsätzlich richtig, aber es funktioniert bei dir nicht, weil dir der LUA Support fehlt, und nicht, weil das Script grundsätzlich falsch implementiert ist. Und deshalb kann man halt mal nachschauen, wie die das Problem gelöst haben, und sich ggf. Impulse für die eigene Entwicklung holen.

  • Das ist mir schon klar. Deshalb hatte ich ja im oben verlinkten Script nachgesehen, wie die das Problem gelöst haben, weil die müssen das ja auch mal gehabt haben. Und die lesen die Einträge aus, modifizieren nur die IP-Adresse im Array und schreiben es zurück.

    Du schreibst es ja selbst "modifizieren nur die IP-Adresse im Array und schreiben es zurück" dabei wird dann auch die ID wieder mit zurück geschrieben, da es ja das gleiche Array nur eben mit anderer IP ist.


    Zumindest verstehe ich das so.


    Ich habe es jetzt nochmal komplett von Hand getestet:

    - mit ID wird der Eintrag modifiziert

    - ohne ID wird er neu angelegt, zusätzlich zum vorherigen


    Steht übrigens so auch in der API Doku:

    "leave id empty for new records"



    Wie kam es überhaupt zu dem Missverständnis? Ich hatte ja weiter oben ein paar mal auf dieses Script referenziert, woraufhin Olivetti fragte, welches Script ich denn meine, und ich hab es verlinkt, woraufhin du schriebst, dass das Script nicht funktioniert. Ist natürlich grundsätzlich richtig, aber es funktioniert bei dir nicht, weil dir der LUA Support fehlt, und nicht, weil das Script grundsätzlich falsch implementiert ist. Und deshalb kann man halt mal nachschauen, wie die das Problem gelöst haben, und sich ggf. Impulse für die eigene Entwicklung holen.

    Ja da gab es ein Missverständnis 😅


    Aber die Ursache des Problems ist, das netcup kein DynDNS kann, was meiner Meinung heutzutage Standard ist.


    Das es eine API gibt ist ja grundsätzlich nichts schlechtes!

    Aber das ich als Kunde hier die Arbeit von netcup mache und ein Script für eine Funktion schreiben muss welche ich quasi überall einfach nutzen kann, ist meiner Meinung nach nicht so ganz "ok".


    Aber genug gemeckert!


    Ich habe jetzt noch die schlauen Köpfe im Mikrotik Forum darauf angesetzt, mich zu unterstützen.

    https://forum.mikrotik.com/viewtopic.php?t=199699&sid=20832797e662822d8ad270f3680bc83e


    Parallel dazu habe ich mir Mal die Preise beim Hoster meines Bekannten eingeholt und festgestellt, das da nicht viel Unterschied zu netcup ist.


    Ich dafür aber einen funktionierenden dyndns Dienst bekomme, denn ich nicht erst selbst "programmieren" muss.

    Ich zahle dann eben 33ct für die Domain im Monat anstatt 18ct wie bei netcup.


    Wenn ich das Mal wie ein BWLer rechne, keine Angst bin selbst keiner, dann müsste ich die Zeit die ich bis jetzt schon investiert habe gegenrechnen.


    Dann könnte ich die Domain beim anderen Anbieter mehrere Jahrzehnte bezahlen und habe immer noch Geld gespart.


    Ich werde nun aber noch bis Ende der Woche versuchen, das zum Laufen zu bekommen.


    Wenn es dann immer noch nicht funktioniert, werde ich das Script euch mit entsprechendem Warnhinweis zur Verfügung stellen.


    Auch werde ich wahrscheinlich meine Domains zu dem anderen Hoster umziehen, damit ich DynDNS ganz einfach (so wie es sein sollte) nutzen kann.

  • Kostengünstigste Variante: einen anderen DynDNS Service holen (z.B. kostenfrei https://freedns.afraid.org/ oder halt No-IP.com oder andere) und im DNS Server einen CNAME Record der eigenen Domain auf die Subdomain des DynDNS Providers setzen.


    Oder


    DynDNS mit Cloudflare (das Umstellen darauf ist angesichts der vielen Netcup DNS Probleme sowieso sinnvoll: https://developers.cloudflare.…ing-dynamic-ip-addresses/ . In dem Fall bekommt man auch API Support für Let's Encrypt DNS Authentication mit dazu, sehr praktisch um z.B. mit dem Nginx Proxy Manager auf Docker Wildcard Zertifikate zu ziehen und automatisch zu aktualisieren.


    Weiß nicht, ob man etwas erzwingen sollte, was anscheinend nicht sonderlich zusammen passt.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

    Einmal editiert, zuletzt von TBT ()

    Gefällt mir 1
  • Kostengünstigste Variante: einen anderen DynDNS Service holen (z.B. kostenfrei https://freedns.afraid.org/ oder halt No-IP.com oder andere) und im DNS Server einen CNAME Record der eigenen Domain auf die Subdomain des DynDNS Providers setzen.

    Davon möchte ich ja gerade Weg, ich hatte die ganze Zeit afraid.org, doch deren Server werden immer langsamer bzw, die aktualisierung der IP funktioniert manchmal nicht.


    DynDNS mit Cloudflare (das Umstellen darauf ist angesichts der vielen Netcup DNS Probleme sowieso sinnvoll: https://developers.cloudflare.…ing-dynamic-ip-addresses/ . In dem Fall bekommt man auch API Support für Let's Encrypt DNS Authentication mit dazu, sehr praktisch um z.B. mit dem Nginx Proxy Manager auf Docker Wildcard Zertifikate zu ziehen und automatisch zu aktualisieren.

    Da wäre ich wieder da, wo ich aktuell bin, eine API welche ich wieder selbst ansteuern muss.
    Wass wieder Arbeit ist und wahrscheinlich genauso gut/schlecht funktioniert wie bei netcup.

  • Aber die Ursache des Problems ist, das netcup kein DynDNS kann, was meiner Meinung heutzutage Standard ist.

    Naja, dyndns können sie schon, sie haben halt nur keine klassische Update URL. Haben viele andere ja auch nicht, und ist ggf. auch ein latentes Sicherheitsrisiko, je nach Implementierung, deshalb haben viele andere das auch nicht mehr. Die API ist dokumentiert, Referenzimplementierungen sind verfügbar. Was willst du noch? Dass dein regex nicht funktioniert, ist nicht Netcups Schuld.

  • Davon möchte ich ja gerade Weg, ich hatte die ganze Zeit afraid.org, doch deren Server werden immer langsamer bzw, die aktualisierung der IP funktioniert manchmal nicht.

    Dann halt z.B. deSEC.io und einen CNAME-Record setzen?


    Alternativ: Nameserver von deSEC für die Domain verwenden, die haben auch dafür eine API.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

    Gefällt mir 1
  • Ich meine man kann sich den Kopf an einem Lösungsweg einrennen oder sehr lange dafür brauchen. Oder man sucht nach einer "Umgehungsstraße". Mit den controllerbasieren VPN Lösungen ist die Notwendigkeit für DynDNS (wenn es darum geht, Services zu Hause zu erreichen) nahezu weg. Für Hosting ist der bescheidene heimische Upload auch wegen den wechselnden IPs eher nicht zu erreichen (dafür gibts ja Netcup). Und für den bescheidenen Rest an Usecases tut es imho auch eine der genannten Möglichkeiten.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

  • Naja, dyndns können sie schon, sie haben halt nur keine klassische Update URL. Haben viele andere ja auch nicht, und ist ggf. auch ein latentes Sicherheitsrisiko, je nach Implementierung, deshalb haben viele andere das auch nicht mehr. Die API ist dokumentiert, Referenzimplementierungen sind verfügbar. Was willst du noch? Dass dein regex nicht funktioniert, ist nicht Netcups Schuld.

    Naja, so einfach ist das nicht.
    Wenn das richtig gemacht ist, also mit Username, Passwort oder API Key, ist das kein Sicherheitsrisiko.


    Meiner Meinung nach ist es eben Standard, wenn ich Domains anbiete muss ich eben DynDNS anbieten.
    Meine Meinung, wie schon gesagt ;)


    Dann halt z.B. deSEC.io und einen CNAME-Record setzen?


    Alternativ: Nameserver von deSEC für die Domain verwenden, die haben auch dafür eine API.

    Ich habe halt gerne alles bei einem Anbieter und nicht über mehrere verstreut.

    Für mich ist es mehr Aufwand, bei Problemen mehrere Stellen abklappern zu müssen.


    Ich meine man kann sich den Kopf an einem Lösungsweg einrennen oder sehr lange dafür brauchen. Oder man sucht nach einer "Umgehungsstraße". Mit den controllerbasieren VPN Lösungen ist die Notwendigkeit für DynDNS (wenn es darum geht, Services zu Hause zu erreichen) nahezu weg. Für Hosting ist der bescheidene heimische Upload auch wegen den wechselnden IPs eher nicht zu erreichen (dafür gibts ja Netcup). Und für den bescheidenen Rest an Usecases tut es imho auch eine der genannten Möglichkeiten.

    Klar gibt es immer einfachere Wege, die aber nicht unbedingt besser sein müssen.

    Mit "controllerbasierten VPN Lösungen" möchte ich nicht anfangen ;)


    Und ich wollte das jetzt unbedingt zum laufen bekommen, das ganze Script war ja schon soweit fertig, bis auf das eine Problem ;)



    Aber es gibt sehr sehr gute Neuigkeiten!

    Mit Hilfe der User aus dem Mikrotik Forum, habe ich eine Lösung erarbeitet um die Rückmeldung von der DNS API richtig auszulesen um die ID zu bekommen.
    Ganz neben bei ist mir dabei aufgefallen, das das JSON von der API nicht ganz sauber ist. (war aber nicht das Problem)

    Das am Anfang der API Rückmeldung mitgeschickte "data=" ist nicht so ganz JSON konform, das darf man wegschmeißen bevor man den String einließt 8)


    Klar ein Programmierer sieht das sofort, ich als Laie aber nicht :saint:



    Jedenfall habe ich jetzt ein komplett funktionierendes Script, was DNS Records wirklich überschreibt und nicht neu anlegt

    ... und ein volles API Log :D



    Ich werde es noch aufräumen und dann auf github hochladen.

    Das Script darf dann gerne jeder für seinen Mikrotik Router verwenden :thumbup:

  • Meiner Meinung nach ist es eben Standard, wenn ich Domains anbiete muss ich eben DynDNS anbieten.

    Sehe ich nicht so, das eine hat mit dem anderen genau gar nichts zu tun.:/


    Es mag sein, dass das manche Anbieter als integriertes Feature anbieten, aber Standard ist das sicherlich nicht. Da könnte man genauso annehmen, dass E-Mail-Weiterleitungen oder Web-Visitenkarten dabei sind. Gibt es bei manchen Anbietern, aber standardmäßig erwarten würde ich mir das beim Buchen einer reinen Domain garantiert nicht. Alles was in keiner Produkt-/Leistungsbeschreibung steht, wird man auch nicht vorfinden. :)


    Ich habe halt gerne alles bei einem Anbieter und nicht über mehrere verstreut.

    Für mich ist es mehr Aufwand, bei Problemen mehrere Stellen abklappern zu müssen.

    Ich gebe Dir nur diese Hinweise, warum ich netcup für DynDNS nicht empfehlen würde:

    • Die Zonen der Domains werden nur alle 10-20 Minuten neu geladen, Updates brauchen also relativ lange.
    • Die TTL der Domains steht standardmäßig auf 24h und kann nur für die ganze Domain geändert werden.
    • Und das leidige Thema DNSSEC, bei dem die Domain sporadisch gar nicht mehr auflöst…


    Das am Anfang der API Rückmeldung mitgeschickte "data=" ist nicht so ganz JSON konform, das darf man wegschmeißen bevor man den String einließt 8)

    Das kommt dann aber zu 99% nicht von der API als Antwort und klingt eher nach einer Besonderheit von RouterOS bzw. Deinem Script.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

    Einmal editiert, zuletzt von KB19 ()

  • Ich gebe Dir nur diese Hinweise, warum ich netcup für DynDNS nicht empfehlen würde:

    Die Zonen der Domains werden nur alle 10-20 Minuten neu geladen, Updates brauchen also relativ lange.
    Die TTL der Domains steht standardmäßig auf 24h und kann nur für die ganze Domain geändert werden.
    Und das leidige Thema DNSSEC, bei dem die Domain sporadisch gar nicht mehr auflöst…

    Danke für den Hinweis!


    Zu 1.

    Kann ich so nicht bestätigen. Bei meinen Tests wurde alles innerhalb der eingestellten TTL von 5min aktualisiert. Und selbst wenn es etwas länger dauert ist es halb so schlimm.


    Zu 2.

    Auch nicht schlimm, für mich


    Zu 3.

    Nutze ich nicht

  • Klar gibt es immer einfachere Wege, die aber nicht unbedingt besser sein müssen.

    Mit "controllerbasierten VPN Lösungen" möchte ich nicht anfangen ;)

    Wenn Du lieber Ports des heimischen Anschlusses freigeben willst, mach das. Ich lass die Ports halt lieber zu.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)

  • Ich Stelle keinerlei Dienste an offenen Ports zur Verfügung, wie kommst du den darauf?

    Na dann ists ja gut. ;) Ist halt die häufigste Verwendung von DynDNS.

    Natürlich nutze ich einen VPN ;)

    Offentsichtlich keinen controllerbasierten. Finde ich halt praktischer. Daher hat DynDNS für mich sehr an Bedeutung verloren.

    RS Ostern L OST22 (~RS "3000" G9.5) (8C,24GB,960GB) | RS Cyber Quack (1C,2GB,40GB)