Ergebnis 1 bis 7 von 7
  1. #1
    Neuer Benutzer
    Registriert seit
    27.09.2016
    Beiträge
    8

    DNS-Replikation mit PowerDNS

    Hallo zusammen,

    ich wollte kurz das von mir getestete Setup in Sachen DNS-Replikation vorstellen. Das Problem ist ja, dass LiveConfig andere DNS-Server nicht über neue DNS-Zonen benachrichtigen kann. Daher müssen die Zonen immer erst vorher angelegt werden, was durchaus mühselig sein kann.

    Ein denkbar simpler Workaround ist hier mit PowerDNS möglich. PowerDNS unterstützt den Superslave-Modus und ist damit in der Lage vom LiveConfig-BIND alle Zonen zu pullen und diese selbstständig anzulegen, zu löschen und zu updaten. Man kann die Replikations-Slaves also völlig unangetastet lassen nach der ersten Konfiguration.

    Ich habe mich an diesem Tutorial hier orientiert und es mit etwa 30 Domains getestet - es funktioniert einwandfrei.

  2. #2
    Erfahrener Benutzer
    Registriert seit
    21.02.2011
    Beiträge
    328
    Nice, ich werde es bei Gelegenheit mal testen.

  3. #3
    Erfahrener Benutzer
    Registriert seit
    07.04.2011
    Beiträge
    789
    Zitat Zitat von iLLogical Beitrag anzeigen
    ich wollte kurz das von mir getestete Setup in Sachen DNS-Replikation vorstellen. Das Problem ist ja, dass LiveConfig andere DNS-Server nicht über neue DNS-Zonen benachrichtigen kann. Daher müssen die Zonen immer erst vorher angelegt werden, was durchaus mühselig sein kann.
    nö.

    LiveConfig-Client dem Nameserver installieren und in den LC-Cluster einbinden. Läuft problemlos, so dass LiveCOnfig die Zonen dann auch auf den Slaves anlegt.

    PowerDNS unterstützt den Superslave-Modus und ist damit in der Lage vom LiveConfig-BIND alle Zonen zu pullen und diese selbstständig anzulegen, zu löschen und zu updaten. Man kann die Replikations-Slaves also völlig unangetastet lassen nach der ersten Konfiguration.
    Das Löschen halte ich - auch aus eigener Erfahrung - für ein Gerücht.

    Ich darf aus der Doku zitieren:

    Zitat Zitat von https://doc.powerdns.com/md/authoritative/modes-of-operation/
    Note: Removal of zones provisioned using the supermaster must be done on the slaves themselves. As there is no way to signal this removal from the master to the slave.
    Inwieweit das praktikabel ist, muss jeder selbst entscheiden. Ich empfinde es als suboptimal, wenn ein Slave auch weiterhin auf eine Zone reagiert, die schon gelöscht ist.

  4. #4
    Benutzer
    Registriert seit
    30.06.2012
    Beiträge
    49
    Zitat Zitat von antondollmaier Beitrag anzeigen
    LiveConfig-Client dem Nameserver installieren und in den LC-Cluster einbinden. Läuft problemlos, so dass LiveCOnfig die Zonen dann auch auf den Slaves anlegt.
    Sicherheitstechnisch benötigt Liveconfig/BIND9 dabei mal ein Update.
    PowerDNS kann hmac-sha512. Liveconfig gibt den Algorithmus HMAC-MD5 bzgl. TSIG vor.

    Code:
    pdnsutil generate-tsig-key slavesha512 hmac-sha512
    pdnsutil generate-tsig-key slavemd5 hmac-md5
    Dazu gibt es noch einpaar Fallstricke bei den IP-Adressen damit es an den anderen Server mit PowerDNS gemeldet wird.

    Bei der IPv4 wird wohl die erste IPv4 in der Liste genommen (oder Haupt-IPv4 vom Server) seitens Liveconfig/BIND9.
    Dagegen bei IPv6 die letzte IPv6 aus der Liste wenn eine Meldung an PowerDNS raus geht seitens Liveconfig/BIND9..
    Anderenfalls endet PowerDNS in Meldungen das man nicht berechtigt sei.

    Heißt in der Serverwaltung lauscht der BIND9 unter Liveconfig auf den eingestellten IP-Adressen aber nutzt es nicht für rausgehende Requests.

    Zitat Zitat von antondollmaier Beitrag anzeigen
    Inwieweit das praktikabel ist, muss jeder selbst entscheiden. Ich empfinde es als suboptimal, wenn ein Slave auch weiterhin auf eine Zone reagiert, die schon gelöscht ist.
    Ja leider. Ein zusätzliches Skript für die Löschung ist nötig (oder per PowerDNS Webinterface/API mit Liveconfig lua gleich für alles nutzen). Als Test einfach mal die Domain in Liveconfig löschen und neu hinzufügen, schon hast ein Duplicate error bei PowerDNS im Log (loglevel=4).
    Geändert von stefanos (04.01.2021 um 11:05 Uhr)

  5. #5
    Erfahrener Benutzer
    Registriert seit
    07.04.2011
    Beiträge
    789
    Zitat Zitat von stefanos Beitrag anzeigen
    Bei der IPv4 wird wohl die erste IPv4 in der Liste genommen (oder Haupt-IPv4 vom Server) seitens Liveconfig/BIND9.
    Dagegen bei IPv6 die letzte IPv6 aus der Liste wenn eine Meldung an PowerDNS raus geht seitens Liveconfig/BIND9..
    Das ist das reguläre Verhalten bei Source-Adress-Auswahl, wenn die Adresse nicht explizit gesetzt wird.

    Für IPv6 kann eine IP mit "preferred_lft 0" auf "nicht für ausgehende Verbindungen nutzen" gesetzt werden. Ob das dann das Mail-Outbound-IP-Szenario weiterhin funktioniert, weiß ich adhoc nicht.

  6. #6
    Benutzer
    Registriert seit
    30.06.2012
    Beiträge
    49
    Zitat Zitat von antondollmaier Beitrag anzeigen
    Das ist das reguläre Verhalten bei Source-Adress-Auswahl, wenn die Adresse nicht explizit gesetzt wird.
    In Liveconfig selbst sind die gewünschten IP-Adressen (IPv4+IPv6) für BIND9 ausgewählt, nur werden die scheinbar lediglich für eingehende Verbindungen gesetzt bzw. genutzt.

    Zitat Zitat von antondollmaier Beitrag anzeigen
    Für IPv6 kann eine IP mit "preferred_lft 0" auf "nicht für ausgehende Verbindungen nutzen" gesetzt werden. Ob das dann das Mail-Outbound-IP-Szenario weiterhin funktioniert, weiß ich adhoc nicht.
    Danke für den Tipp. Leider soll es nur für BIND9/Liveconfig/Powerdns sein, nicht für den ganzen Server.
    Der Server nutzt derzeit Ubuntu 20.04 LTS als Grundsystem.

    Habe es auch wie im Handbuch steht und im Thema Bind9 näher beschrieben es versucht aber scheinen nicht die richtigen Optionen bzw. Befehle für BIND9 zu sein.
    Geändert von stefanos (05.01.2021 um 03:05 Uhr)

  7. #7
    LiveConfig-Team Avatar von kk
    Registriert seit
    10.12.2010
    Beiträge
    3.549
    Es gibt die Möglichkeit, die Quell-IPs bei BIND explizit zu konfigurieren.
    Bearbeiten Sie testweise mal die Datei /etc/bind/named.conf.options und fügen dort im options-Abschnitt folgende Einstellungen ein:

    Code:
    transfer-source { 169.254.12.34; };
    notify-source { 169.254.12.34; };
    transfer-source-v6 { 2001:db8::1; };
    notify-source-v6 { 2001:db8::1; };
    IPs natürlich entsprechend anpassen. Danach BIND neu starten und beobachten, ob damit alles wie gewünscht funktioniert.
    Wenn ja, dann nehmen wir das gerne in ein kommendes Update mit auf.

    Bis dahin lässt sich das über z.B. /etc/liveconfig/lua.d/bind.lua mit folgendem Inhalt einrichten (siehe Handbuch):
    Code:
    bind.LOCALOPTIONS = {
      ["transfer-source"] = "{ 169.254.12.34; }",
      ["notify-source"] = "{ 169.254.12.34; }",
      ["transfer-source-v6"] = "{ 2001:db8::1; }",
      ["notify-source-v6"] = "{ 2001:db8::1; }"
    }
    Viele Grüße

    -Klaus Keppler

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •