2012-04-05 11 views
2

Wenn ein Kunde Zeichen für meinen Dienst, würde Ich mag für sie ein A DNS-Eintrag erstellen:Distributed DNS-System mit API

Benutzername. mydomain.tld des Servers an die IPv4-Adresse zeigen, die ihre Seite würde im Idealfall

Dieses DNS-System hostet:

  • Seien Sie recht leichtgewichtige
  • verteilt werden. Ein Master/Slave-Modell wäre in Ordnung, möglicherweise mit Master-Failover oder schreibgeschützt, wenn der Master offline ist.
  • Unterstützung Änderungen über eine schöne API gemacht werden (vor allem, erstellen/entfernen A Einträge)
  • Änderungen sofort Gilt (zu verstehen, dass DNS-Zeit zu propagieren nimmt)
  • Run auf Linux

etwas Gibt es passt diese Beschreibung wirklich?

Danke :-)

+0

Beide off-topic und unmöglich wie gesagt. DNS leitet Änderungen nicht sofort weiter. –

+0

Bearbeitet. Ich wollte sagen, dass Änderungen sofort angewendet werden, anstatt Änderungen einmal pro Stunde oder ähnlich anzuwenden. Ich werde überrascht sein, wenn das nicht existiert - scheint eine ziemlich gewöhnliche Sache zu sein. – Pavel

Antwort

2

Sie können nur dynamische DNS-Updates verwenden. Hier ist eine sehr rudimentäre Anwendung:

  1. generieren einen gemeinsamen symmetrischen Schlüssel, die vom DNS-Server und Update-Client verwendet wird:

    dnssec-keygen -a HMAC-MD5 -b 512 -n HOST key.name. 
    

    Der Schlüssel Name ist ein Domain-Name, aber Sie können alles verwenden Sie wollen: Es ist mehr oder weniger nur ein Name für den Schlüssel.

  2. Configure binden diese Taste, damit Änderungen an der Zone mydomain.tld machen:

    key "key.name." { 
        algorithm hmac-md5; 
        secret "copy-the-base64-string-from-the-key-generated-above==" ; 
    } 
    
    zone "mydomain.tld" { 
        ... 
        allow-update { key key.name. ; }; 
        ... 
    } 
    
  3. Bearbeite mit nsupdate: Zum nsupdate Befehl

    nsupdate -k <pathname-to-file-generated-by-dnssec-keygen> 
    

    Als Eingang:

    server dns.master.server.name 
    update delete username.mydomain.com 
    update add username.mydomain.com a 1.2.3.4 
    update add username.mydomain.com aaaa 2002:1234:5678::1 
    

    Vergessen Sie nicht die Leerzeile nach dem Befehl update. nsupdate sendet nichts an den Server, bis es eine leere Zeile sieht.

Wie binden und andere DNS-Server normal ist, gibt es keine hohe Verfügbarkeit des Master-Server, aber Sie können so viele Sklaven haben, wie Sie wollen, und wenn sie inkrementelle Updates zu erhalten (wie sie standardmäßig sollte) dann werden Änderungen schnell verbreitet. Sie können auch einen Stealth-Masterserver verwenden, dessen einzige Aufgabe darin besteht, diese DDNS-Aktualisierungen zu empfangen und zu verarbeiten und die Ergebnisse an die Slaves weiterzuleiten.

+0

Ich würde +2 geben, wenn ich könnte. Ich kann nur hinzufügen, dass, wenn Sie es programmgesteuert tun möchten, anstelle von nsupdate Sie auch einige DNS-Bibliothek wie NET_DNS2 für PHP verwenden können. – Sandman4