1 Punkte von GN⁺ 22 시간 전 | 1 Kommentare | Auf WhatsApp teilen
  • DynIP ist ein dynamischer DNS-Dienst für Homelabs, Edge-Router und Infrastruktur-Teams und bietet Updates im 60-Sekunden-Takt sowie ein kostenloses Tier
  • Unterstützt RFC 2136 TSIG, REST API und UDP/53-Updates und lässt sich mit FortiGate, OPNsense, OpenWRT und MikroTik integrieren
  • Unterstützt IPv6 zusammen mit IPv4 und aktualisiert A- und AAAA-Records parallel; sowohl Dual-Stack- als auch reine IPv6-Zonen werden abgedeckt
  • DNSSEC automatisiert die Erzeugung von Signaturschlüsseln, die Veröffentlichung in der Parent-Zone und die Signierung von Records und ist für die Ausstellung von Let’s Encrypt-Zertifikaten erforderlich
  • Mit BYOD lassen sich eigene Domains anbinden, um dynamische Subdomains zu erstellen, dafür ist jedoch eine Delegation an ns1.dynip.dev und ns2.dynip.dev erforderlich

Überblick über DynIP

  • DynIP ist ein dynamischer DNS-Dienst für Homelabs, Edge-Router und Infrastruktur-Teams und wirbt mit 60-Sekunden-Updates, einem kostenlosen Tier, RFC 2136 TSIG, der Nutzung eigener Domains und DNSSEC
  • Das System ist so ausgelegt, dass ein Hostname nach dem Senden eines Updates durch den Router weltweit in etwa 60 Sekunden korrekt aufgelöst wird
  • Es bietet eine TTL von 60 Sekunden, NOTIFY-basierte Verteilung und Nameserver in mehreren Regionen
  • Es gibt eine kostenlose Registrierung und eine Dokumentation

DNS-Standards und Router-Integration

  • Unterstützt RFC 2136 TSIG, sodass es mit FortiGate, OPNsense, OpenWRT und Routern mit DNS UPDATE-Unterstützung verwendet werden kann
  • MikroTik-Nutzer können die native HTTP API-Integration verwenden
  • Zu den unterstützten Methoden gehören RFC 2136 TSIG, REST API und native Updates über UDP/53
  • Im Bereich für Konfigurations-Snippets lassen sich anhand von Gerätetyp, Ziel-IP-Adresse, Domain und TSIG-Schlüssel Konfigurationsblöcke erzeugen und kopieren
  • Während eine neue Zone zu den Nameservern propagiert wird, müssen RFC-2136/TSIG-Updates von FortiGate warten
  • HTTP-API-Updates über cURL, PowerShell, Python oder MikroTik funktionieren sofort

IPv6 und DNSSEC

  • Unterstützt IPv6 zusammen mit IPv4, sodass A- und AAAA-Records parallel aktualisiert werden können
  • Unterstützt sowohl Dual-Stack-Konfigurationen als auch reine IPv6-Zonen
  • Für die Ausstellung von Let’s Encrypt-Zertifikaten muss DNSSEC in der jeweiligen Zone aktiviert sein
  • Beim Aktivieren von DNSSEC werden die Erzeugung von Signaturschlüsseln, die Veröffentlichung in der Parent-Zone und die Signierung aller DNS-Records automatisch durchgeführt
  • Die DNSSEC-Einrichtung ist ein einmaliger Vorgang; danach bleibt die Zone dauerhaft signiert
  • Die geschätzte Dauer wird mit 30 Sekunden angegeben

Schnellstart und Zonenverwaltung

  • Der Schnellstart besteht aus der Eingabe eines Gerätenamens, der Auswahl einer Basis-Domain und einem Klick auf Create Zone, um eine Zone anzulegen
  • Über den Button Snippets neben einer neuen Domain lässt sich die Konfiguration abrufen; nach Auswahl des Gerätetyps kann der erzeugte Konfigurationsblock in die Router-CLI kopiert werden
  • IPv4 und IPv6 werden anhand eingehender Verbindungen automatisch erkannt und aktualisiert
  • Die Zonenliste zeigt Domain und Tools, aktuelle IP, TSIG Secret, DNSSEC und den Status des SSL-Zertifikats an
  • Für jede Zone lassen sich Sperrstatus, Snippets, Löschen, Benachrichtigungen, Synchronisierungszeit, DNSSEC ein- und ausschalten sowie SSL-Zertifikate herunterladen, erneuern und ausstellen verwalten

Nutzung einer eigenen Domain

  • Mit der Funktion Custom Namespaces (BYOD) lässt sich eine eigene Domain mit DynIP verbinden, um darunter dynamische Subdomains zu erstellen
  • Um einen Namespace zu aktivieren, müssen beim Domain-Registrar beide NS-Records angelegt werden
  • Eine Delegation an nur einen einzelnen NS wird abgelehnt
  • Die erforderlichen NS-Records sind ns1.dynip.dev und ns2.dynip.dev
  • Die Konfigurationsprüfung zeigt entweder eine aktive Delegation oder die beim Registrar noch erforderlichen Schritte an

Schnelle Synchronisierung und Automatisierung

  • Quick Sync ist eine Funktion, die die ausgewählte Zone sofort mit der aktuellen externen IP-Adresse des Geräts abgleicht
  • Sie zeigt die erkannte Netzwerk-IP an und erlaubt es, die vom Nutzer ausgewählten Zonen auf einmal zu aktualisieren
  • Mit einem Session-Token kann per POST-Anfrage an den Endpoint /register eine neue Zone programmatisch registriert werden
curl -X POST "{{ backendUrl }}/register?subdomain=my-new-router&base_domain={{ baseDomains[0] }}" \
     -H "Authorization: Bearer {{ token }}"
  • Session-Tokens verfallen beim Logout; für langfristige Automatisierung sollten daher API-Tokens verwendet werden
  • API tokens sind eine Funktion ab Pro und können für Automatisierungen wie Monitoring-Skripte, CI-Pipelines oder MSP-Integrationen genutzt werden
  • API-Tokens verfallen nicht beim Logout, können auf schreibgeschützten oder vollständigen Zugriff begrenzt und jederzeit widerrufen werden
  • Ein neuer API-Token wird bei der Erstellung nur einmal angezeigt und sollte deshalb in einem Passwort-Manager oder Secret-Store aufbewahrt werden

Preise und Kontosicherheit

  • Der Tarifbildschirm zeigt das Abonnement-Tier, den Status, das Verlängerungsdatum oder das Enddatum des Zugriffs, den Abrechnungszyklus, die Anzahl genutzter Zonen und die maximale Anzahl an Domains an
  • Wird ein Tarif herabgestuft, bleiben nur die ältesten Zonen innerhalb des erlaubten Kontingents aktiv; die übrigen Zonen werden gesperrt und können keine IP-Updates empfangen
  • Bei einem fehlgeschlagenen Zahlungsvorgang muss die Zahlungsmethode aktualisiert werden, um den Zugriff zu behalten
  • Für die Kontosicherheit werden E-Mail-2FA und TOTP unterstützt; wenn TOTP aktiviert ist, ersetzt es die E-Mail-2FA
  • Die Einrichtung von TOTP besteht daraus, einen QR-Code mit Google Authenticator, Authy oder einer bevorzugten 2FA-App zu scannen und den Code zu verifizieren

Zugehörige Links

1 Kommentare

 
Hacker-News-Kommentare
  • Ich bin Daniel, Netzwerkingenieur aus Schweden, und habe DynIP gebaut, weil ich das Gefühl hatte, dass bestehende DDNS-Dienste in Netzwerken der 2010er steckengeblieben sind.
    Proprietäre, nur auf HTTP basierende Update-Protokolle, schwache IPv6-Unterstützung, fehlendes DNSSEC und mangelhafte Unterstützung moderner Geräte tauchten immer wieder auf, und DynIP behandelt RFC 2136 / TSIG-Updates als erstklassigen Pfad.
    FortiGate generic DDNS und MikroTik /tool dns-update funktionieren ohne separaten Client, und für andere Einsatzzwecke gibt es zusätzlich eine HTTP-API.
    Auf den autoritativen DNS-Server kann über IPv6 zugegriffen werden, im übergeordneten .dev-Zonefile sind AAAA-Glue-Records veröffentlicht, Kunden-Zonen geben A/AAAA aus, und auch reine IPv6-Clients werden unterstützt.
    In ausgewählten Zonen lässt sich DNSSEC mit einem einzigen Schalter aktivieren, und per Subdomain-Delegation kann man seine eigene Domain mitbringen.
    Die Architektur besteht aus einem versteckten Primary, der keinen öffentlichen Traffic annimmt, sowie zwei geografisch verteilten Secondaries in Schweden und der Schweiz, die TSIG lokal validieren und dann an den Primary weiterleiten.
    Auch RFC-1918- und CGNAT-Adressen sind in Records erlaubt, sodass zellulare Flotten mit privatem APN stabile öffentliche DNS-Hostnamen nutzen können, die auf interne IPs zeigen.
    Es gibt auch einen kleinen Docker-Container namens ghcr.io/33k-org/dynip-updater; der Stack besteht aus PowerDNS 4.8 authoritative, FastAPI, Postgres, Postfix, Cloudflare und Paddle, läuft unter dynip.dev und bietet auch einen kostenlosen Tarif.

    • Ich bin zwar kein Spezialist für DDNS, aber desec.io ist ebenfalls einen Blick wert und bietet ähnliche Funktionen.
      Dort gibt es Features wie IPv6, DNSSEC und die Nutzung eigener Domains; es ist ein Open-Source-Projekt und betreibt zugleich einen stabilen kostenlosen Hosting-Dienst.
      Vielleicht habe ich es in der Dokumentation übersehen, aber dort gibt es Unterstützung für IPv6 prefix delegation, sodass sich bei einer Änderung des vom ISP dem Router zugewiesenen IPv6-Präfixes nur das Netzwerkpräfix einer beliebigen Domain aktualisieren lässt.
      In Europa ist dieses Präfix oft nicht statisch und ändert sich bei jeder Neuverbindung zum ISP, daher ist eine Funktion nützlich, die den Host-Teil beibehält und nur den Netzwerkteil automatisch aktualisiert.
      Beispiel: /update?myipv6:nas.home.mydomain.tld=2003:e6:bee:affe::/56
    • In Firefox Focus auf Android funktioniert die Seite nicht, solange man den standardmäßig aktivierten Tracking-Schutz nicht deaktiviert.
      Als ich auf den E-Mail-Bestätigungslink klickte, gab es überhaupt keine Anzeige, ob die Bestätigung abgeschlossen war oder welchen Status sie hatte, was ziemlich verwirrend war.
    • Wenn man im Dashboard auf „change password“ klickt, kommt zwar ein Reset-Link per E-Mail, aber die Reset-Seite ist nur in einer abgemeldeten Sitzung sichtbar.
      Ist man eingeloggt, wird der Link zur Dashboard-Startseite umgeleitet; da Nutzer die E-Mail normalerweise direkt nach dem Klick auf Passwort ändern erhalten, müssen sie sich also erst abmelden.
      Es wäre reibungsloser, wenn in der E-Mail stünde, dass man sich zuerst abmelden soll, oder wenn der Link die aktuelle Sitzung beendet und dann die Reset-Seite anzeigt.
    • Ich frage mich, ob ihr L402 unterstützen könntet, damit Agenten den Dienst kaufen können.
    • Ich mache mir Sorgen, ob es kein Sicherheitsproblem gibt, wenn RFC-1918- und CGNAT-Adressen in Records erlaubt sind, etwa dass jemand den privaten Server einer anderen Person in die eigene Domain einträgt und damit XSS-artige Angriffe ausführt.
      Ich erinnere mich dunkel, dass so etwas aus Sicherheitsgründen als Tabu galt.
  • Der Pitch wirkt ziemlich gut, aber ich habe gerade keine Zeit, es direkt auszuprobieren.
    Wenn ich allerdings die Erklärung in den Kommentaren hier nicht gelesen hätte, hätte ich die Landingpage wahrscheinlich sofort wieder geschlossen.
    Tut mir leid, so direkt zu sein, aber die Seite wirkt wie eine generische KI-mäßige Massen-Landingpage; ich meine nicht, dass sie das tatsächlich ist, aber da die Erklärung gut ist, wäre es schön, mit mehr Eigenständigkeit stärker zu differenzieren.
    Außerdem würde ich davon abraten, einen eigenen Hacker-News-Account nur für das Projekt anzulegen.
    „Verwenden Sie nicht Ihren Firmen- oder Projektnamen als Benutzernamen. Das erzeugt den Eindruck, dass Sie HN zu Werbezwecken nutzen, und dass Sie nicht als Person teilnehmen. Es muss nicht Ihr echter Name sein, aber es sollte signalisieren, dass hinter dem Account ein Mensch steht und keine Marke. Wenn Sie Ihren Benutzernamen ändern möchten, schreiben Sie an hn@ycombinator.com.“
    https://news.ycombinator.com/item?id=22336638
    Siehe auch https://news.ycombinator.com/showhn.html

    • Guter Hinweis, und du musst dich dafür nicht entschuldigen.
      Im Moment bin ich an einem Punkt mit dem, was ich weiß und nicht weiß, mit Hoffnungen und Träumen und einem ziemlich großen Block an technischem Wissen; im Design bin ich nicht besonders stark, aber fürs Erste halte ich das für okay.
    • Auch dieser lange Kommentar hier wirkt wie offensichtlicher LLM-Massenoutput.
      Nach Pangram sind das 100 %, und ehrlich gesagt ist es sogar ohne solche Tools erkennbar; es ist ziemlich düster, dass es auch hier nicht wenige gibt, die das nicht unterscheiden können.
  • Es ist schön, mehr Wettbewerb in diesem Bereich zu sehen.
    Wenn man allerdings Zuverlässigkeit oder Benutzerfreundlichkeit nicht allzu wichtig nimmt und selbst hosten möchte, unterstützt auch bind9 RFC 2136 DNS UPDATE und DNSSEC.
    In meinem Setup konnte mein Heimrouter kein DNS UPDATE sprechen, daher habe ich selbst ein kleines Go-Binary gebaut, das HTTP-Anfragen umwandelt.

    • BIND kann inklusive RFC 2136 eine ganze Menge, und ich habe mir mehrere Optionen angesehen, bevor ich mich auf die aktuelle Architektur festgelegt habe.
      Ich habe einige Testfälle auf FortiGate gebaut, und DynIP begann anfangs auch als simples Copy-paste über internem DNS speziell für FortiGate.
      Es gibt Codebeispiele, die sich intern auf verschiedenen Windows- oder Linux-Hosts nutzen lassen, und wenn du IoT-Geräte im Homelab hast, gibt es auch ein Arduino-Beispiel.
      Ein Go-Binary zu bauen ist ebenfalls ein guter Weg, also behalte die Updates unter /docs im Auge.
  • Die Unterstützung von RFC 2136 verdient Bonuspunkte und funktioniert problemlos mit external-dns
    Ich nutze seit Jahren On-Premises-Kubernetes mit external-dns zusammen mit einem selbst gehosteten BIND-Server mit Minimal-Setup auf einem öffentlichen Host

    • Die Kombination external-dns + RFC 2136 ist ein echter Pluspunkt
      Es gibt bereits einen Leitfaden für den Flottenbetrieb, und da das Kubernetes-Muster eine natürliche Erweiterung ist, sollte ich wohl einen Guide dazu schreiben
  • Früher habe ich eigene OpenWrt-DDNS-Skripte gebaut, um AWS Route 53 oder Cloudflare DNS zu aktualisieren, und das hat vollkommen gereicht
    Seit es Tailscale gibt, muss ich mich nicht mehr um DDNS oder CGNAT kümmern

    • Tailscale, Netbird und WireGuard sind alle hervorragend, und mit solchen Tools ist es heute wirklich eine gute Zeit
      Unter https://dynip.dev/guides/tailscale habe ich einen Guide geschrieben, der erklärt, wie und warum sie nebeneinander existieren können
      Das OpenWrt-DDNS-Skript ist wegen Schlüssel und Secrets etwas umständlich, aber ich bin ziemlich zufrieden damit, dass die Snippet-Funktion einem das Rätselraten erspart, wie es eigentlich funktioniert
    • Ich nutze inzwischen beides
      Für öffentliche Dienste verwende ich DynIP, und für Dinge, auf die nur ich zugreifen muss, Tailscale, wodurch sich die Angriffsfläche stark verringert hat
      Zum Glück muss ich mich um CGNAT nicht kümmern
  • Ich habe versucht, mich zu registrieren, aber die Bestätigungs-E-Mail kommt nicht an
    Direkt nach der Registrierung gab es auch in den Mailserver-Logs keine entsprechenden Spuren, und obwohl ich mehrfach eine erneute Zusendung angefordert habe, ist selbst nach 6–7 Stunden nichts im Postfach angekommen

    • Ich habe für alle nicht verifizierten E-Mails einen erneuten Versand ausgelöst, daher könnte ein neues Bestätigungstoken erstellt worden sein
    • Wenn du mir die Adresse nennst, schaue ich nach
  • Ich frage mich, ob das Auth-Token im kostenlosen Tarif tatsächlich nach 24 Stunden abläuft
    Ich habe den exp-Claim im JWT gesehen und möchte das wissen, bevor ich Zeit in eine Migration investiere
    Entscheidend ist, ob der kostenlose Tarif nachhaltig nutzbar ist

    • Mit „long-lived token“ ist nicht der TSIG-Schlüssel für echte DNS-Updates gemeint, sondern ein Management-API-Token für das Erstellen, Löschen und Abfragen von Zonen oder für Terraform-artige Automatisierung
      Alle Zonen erhalten in allen Tarifen ihren eigenen TSIG-Schlüssel, und die eigentlichen Updates laufen über diesen Schlüssel
      Im kostenlosen Tarif verwaltest du Zonen über das Dashboard, und in den kostenpflichtigen Tarifen kommen zusätzlich API-Tokens für die programmgesteuerte Verwaltung dazu
      Das Auth-Token wird also als Bearer-Token für die API verwendet, während TSIG gültig bleibt, solange die Domain nicht gelöscht wird
      Der kostenlose Tarif erlaubt 5 Zonen, und jede davon hat einen eigenen TSIG-Schlüssel, der immer aktiv ist; solange du also nicht Hunderte von Zonen anlegst, aktualisierst und wieder löschst, musst du nichts bezahlen
  • Vielen Dank für die vielen großartigen Kommentare und Fragen; ich habe meine Tochter ein paar Stunden zum Schwimmunterricht gebracht und bin jetzt zurück, um den Thread weiter zu verfolgen

    • Schwimmen ist gut, und Strömungsmechanik ist ebenfalls wichtig
      Mich würde interessieren, ob du auch so etwas wie https://github.com/hickory-dns/hickory-dns in Betracht gezogen hast
      Natürlich muss man nicht alles in Rust bauen
  • Sieht interessant aus, und ich nutze DDNS, um auf meinem Homeserver mehrere Dienste für externe Clients bereitzustellen
    Im Moment verwende ich NO-IP DDNS, dessen kostenloser Tarif ziemlich großzügig ist, aber mich stört, dass so etwas wie Let’s Encrypt nicht unterstützt wird
    Ich überlege, ob ich mir eine Domain bei Cloudflare kaufen soll, und frage mich, was DynIP konkret anders macht

    • Wenn dein aktuelles Problem mit NO-IP ist, dass du Let’s Encrypt nicht verwenden kannst, dann hast du damit im Grunde schon eine Funktion gefunden, die für dich den Unterschied macht
  • Auch ein reines HTTP(S)-Update wie in den 2000ern ist gut
    Solange man curl/wget/fetch hat, funktioniert es überall, und wenn man möchte, muss man nur ein Token hinzufügen
    duckdns scheint das noch immer so zu unterstützen, und da kein separater Client nötig ist, funktioniert es fast überall

    • Ein dyndns-artiges curl/wget/fetch ist definitiv ein valider Punkt, und unter /docs kann man sich die besonderen Zusatzfunktionen ansehen, die darüber hinaus möglich sind
      Hier geht es nicht nur darum, curl/wget/fetch einzuschließen, sondern darum, eine breitere Funktionsbasis abzudecken