Page 1 of 1

DNS-Slaves - Bind AXFR/IXFR

Posted: Tue 7. Jan 2020, 14:31
by george
GRUNDLEGENDE HINWEISE ZUM EINSATZ VON DNS-SLAVES | English


KeyHelp richtet standardmäßig Nameserver wie ns.host.serverdomain.com und ns2.host.serverdomain.com ein, aber zusätzliche Nameserver können als Slaves hinzugefügt werden, um die Performance/Zuverlässigkeit zu verbessern. Sobald die Slaves hinzugefügt wurden, bleiben sie durch AXFR/IXFR-Transfers automatisch mit Ihrem primären Nameserver synchronisiert. Diese DNS-Slaves werden für alle gehosteten Domains verfügbar sein. Wenn Sie DNS Slaves verwenden möchten, ist dies die einfachste Art und Weise, dies zu tun - und es funktioniert perfekt auf KeyHelp!

Zuerst, bevor Sie die Änderungen auf Ihrem Server vornehmen:
  • Besuchen Sie Ihren Hosting-Provider oder einen externen DNS-Dienst, loggen Sie sich in die Benutzeroberfläche ein und fügen Sie alle Ihre Website-Domains für Slave-DNS einschließlich Ihrer Server-IP-Adresse hinzu (Anleitung bei Ihrem Provider) - Sie können hier auch den Hostnamen hinzufügen.
  • Besuchen Sie Ihren Domain-Registrator, loggen Sie sich ein, fügen Sie die Slave-Nameserver für jede Website-Domain in den DNS ein.
Nun sind die Host-/Extern-DNS- und Registrar-Einträge fertig, lassen Sie uns die Änderungen auf Ihrem Server vornehmen. Wir müssen die DNS-Slaves zu unserer Bind-Konfiguration hinzufügen, indem wir die IP-Adressen der Slaves verwenden. Öffnen und bearbeiten Sie die Datei:

Code: Select all

/etc/bind/named.conf.options
Diese 2 Abschnitte werden hinzugefügt, mit allen IP-Adressen der DNS-Slaves in Klammern:

allow-transfer { };
also-notify { };

Siehe mein Beispiel unten, die fertige Datei - named.conf.options
Ersetzen Sie einfach die IP-Adressen durch Ihre eigenen, dann speichern Sie die Datei.

Nun überprüfen Sie, ob Ihre gesamte Bind-Konfiguration fehlerfrei ist, öffnen Sie ein Terminal und geben Sie den folgenden Befehl ein (keine Ausgabe bedeutet, dass alles gut ist, sonst wird ein Fehler angezeigt):

Code: Select all

named-checkconf
Wenn kein Fehler vorliegt, starten Sie den Bindungsvorgang erneut und überprüfen Sie den Status:

Code: Select all

service bind9 restart
service bind9 status
Nun können Sie periodisch überprüfen, ob die AXFR/IXFR-Übertragungen an Slaves erfolgreich sind:

Code: Select all

journalctl -eu bind9
Schließlich müssen wir sicherstellen, dass alle DNS-Zonen die Slaves einschließen. Gehen Sie zu Ihrem KeyHelp DNS-Zonen-Editor und fügen Sie NS-Einträge für DNS-Slaves hinzu:

KeyHelp > Domains > DNS-Zonen-Editor

Damit alle neuen Domains automatisch die DNS-Slaves verwenden, fügen Sie diese zu den DNS-Standards der KeyHelp-Datenbank hinzu:
  • Anmeldung bei phpMyAdmin
  • Klicken Sie auf Datenbank "keyhelp".
  • Klicken Sie auf die Tabelle "Einstellungen".
  • Suchen Sie nach |Kategorie "dns"|Name "Nameserver"|Wert "ns..."| - doppelklicken Sie und tragen Sie hier alle Ihre Nameserver, durch Komma getrennt, ein.
Erledigt!


# --------------------------------------------------
# /etc/bind/named.conf.options
# --------------------------------------------------

Code: Select all

options {
	directory "/var/cache/bind";

	// If there is a firewall between you and nameservers you want
	// to talk to, you may need to fix the firewall to allow multiple
	// ports to talk.  See http://www.kb.cert.org/vuls/id/800113

	// If your ISP provided one or more IP addresses for stable 
	// nameservers, you probably want to use them as forwarders.  
	// Uncomment the following block, and insert the addresses replacing 
	// the all-0's placeholder.

	// forwarders {
	// 	0.0.0.0;
	// };

	//========================================================================
	// If BIND logs error messages about the root key being expired,
	// you will need to update your keys.  See https://www.isc.org/bind-keys
	//========================================================================
	dnssec-validation auto;

	auth-nxdomain no;    # conform to RFC1035
	listen-on-v6 { any; };

	allow-transfer {
		127.0.0.1;
		localnets;
		server.IP.address;
		server.IPv6.address;
     104.237.137.10;
     65.19.178.10;
     75.127.96.10;
     207.192.70.10;
     109.74.194.10;
     2600:3c00::a;
     2600:3c01::a;
     2600:3c02::a;
     2600:3c03::a;
     2a01:7e00::a;
		};
     also-notify {
     104.237.137.10;
     65.19.178.10;
     75.127.96.10;
     207.192.70.10;
     109.74.194.10;
     2600:3c00::a;
     2600:3c01::a;
     2600:3c02::a;
     2600:3c03::a;
     2a01:7e00::a;
 };

};

Re: DNS-Slaves - Bind AXFR/IXFR

Posted: Fri 23. Oct 2020, 13:24
by george
### SLAVE-KONFIGURATION ###

Dies ist mein Vorschlag zur Einrichtung des SLAVE-DNS-Servers, den ich aus Interesse gepostet habe. Obwohl ich dies noch nicht ausprobiert habe, sollte es funktionieren.

Probieren Sie Konfigurationen wie diese auf dem SLAVE aus:

- Bearbeiten Sie /etc/bind/named.conf.local

Code: Select all

// Vorwärts
zone "host.domain.com" {
  type slave;
  file "/etc/bind/host_domain.conf";
  masters { 192.168.0.1; }; 	//Master Server IP
};
// Umgekehrt
zone "0.168.192.in-addr.arpa" {
  type slave;
  file "/etc/bind/host_domain.rev";
  masters { 192.168.0.1; }; 	//Master Server IP
};
- Machen Sie die Dateien host_domain.conf & host_domain.rev ähnlich wie die der KeyHelp-Domain (siehe /etc/bind/keyhelp_domain.conf)

- Stellen Sie Ihre /etc/bind/named.conf.options nach Geschmack ein, stellen Sie nur sicher, dass Sie die Option einschließen:

Code: Select all

allow-transfer { none; };
- Prüfen Sie, ob die Konfiguration fehlerfrei ist:

Code: Select all

named-checkconf
- Bind-Konfiguration neu laden:

Code: Select all

rndc reload
- TEST

Code: Select all

journalctl -eu bind9
PS: Wenn das funktioniert, werde ich auch auf die englische Version posten.

Re: DNS-Slaves - Bind AXFR/IXFR

Posted: Sat 8. Jan 2022, 13:36
by 24unix
Sorry, dass ich diesen alten Thread hochhole, aber mit ihm habe ich es geschafft, KeyHelp als DNS Server zu nutzen.


Was mir dabei aufgefallen ist:
george wrote: Tue 7. Jan 2020, 14:31
Damit alle neuen Domains automatisch die DNS-Slaves verwenden, fügen Sie diese zu den DNS-Standards der KeyHelp-Datenbank hinzu:
Bei mir war nach der Änderung in der DB die Einstellung für alle Domains gesetzt, es gilt also wohl nicht nur für neu zu erstellende.

Ich habe drauf verzichtet, als Slave den Registrar zu nehmen. Meiner ist DD24.

Da habe ich ein NameSet angelegt, und nutze einen Bind auf einer anderen VM, der als Slave dient.

Bei Bedarf kann ich das mal dokumentieren, ich habe ziemlich lange gebraucht, bis ich mit diesem Thread und weiterer Googelei ein rundes Setup hatte.

Edit: Ich habe heute mein Setup erweitert. Nach der Änderung in der DB wurden die Nameserver für alle Domains übernommen.

Ich verwende meine KeyHelp Server jetzt as hidden primary, und habe dann 3 Slaves in drei unterschiedlichen Netzsegmenten.
ns3 steht bei mir zu Hause, habe FTTH und statische IP, das geht ohne Probleme, habe da aber nur IPv6 aktiv, weil ich mir das NATten der IPv4 gespart habe.

Re: DNS-Slaves - Bind AXFR/IXFR

Posted: Tue 18. Jan 2022, 19:24
by sickjuicy
Ich selber probiere jetzt auch schon seit einiger zeit es hinzubekommen mit einem Slave Server, habe es bisher noch nicht hinbekommen.
Wäre coll wenn du deine Einstellung für mich/uns dokumentieren könntest vielleicht finde ich dann auch das Problem bei mir.
24unix wrote: Sat 8. Jan 2022, 13:36 Sorry, dass ich diesen alten Thread hochhole, aber mit ihm habe ich es geschafft, KeyHelp als DNS Server zu nutzen.


Was mir dabei aufgefallen ist:
george wrote: Tue 7. Jan 2020, 14:31
Damit alle neuen Domains automatisch die DNS-Slaves verwenden, fügen Sie diese zu den DNS-Standards der KeyHelp-Datenbank hinzu:
Bei mir war nach der Änderung in der DB die Einstellung für alle Domains gesetzt, es gilt also wohl nicht nur für neu zu erstellende.

Ich habe drauf verzichtet, als Slave den Registrar zu nehmen. Meiner ist DD24.

Da habe ich ein NameSet angelegt, und nutze einen Bind auf einer anderen VM, der als Slave dient.

Bei Bedarf kann ich das mal dokumentieren, ich habe ziemlich lange gebraucht, bis ich mit diesem Thread und weiterer Googelei ein rundes Setup hatte.

Edit: Ich habe heute mein Setup erweitert. Nach der Änderung in der DB wurden die Nameserver für alle Domains übernommen.

Ich verwende meine KeyHelp Server jetzt as hidden primary, und habe dann 3 Slaves in drei unterschiedlichen Netzsegmenten.
ns3 steht bei mir zu Hause, habe FTTH und statische IP, das geht ohne Probleme, habe da aber nur IPv6 aktiv, weil ich mir das NATten der IPv4 gespart habe.

Re: DNS-Slaves - Bind AXFR/IXFR

Posted: Wed 19. Jan 2022, 00:11
by OlliTheDarkness
Moin,
ich versteh nicht ganz wo eure Probleme liegen :lol:

Einstellungen auf dem Master:

Code: Select all


options {
	directory "/var/cache/bind";

	masterfile-format text;

	version none;
	hostname none;
	server-id none;

	allow-transfer 
	{ 
	1a23:4f5:678:6::1;
	1.2.3.4;
	};

	transfers-out 100;

	notify yes;

	minimal-responses no;
	
	also-notify  		
	{
	1a23:4f5:678:6::1;
	1.2.3.4;
	};

	// forwarders {
	// 	0.0.0.0;
	// };

	dnssec-validation auto;

	listen-on-v6 { any; };
};
Einstellungen auf dem Slave:

Code: Select all


options {
	directory "/var/cache/bind";

	version none;
	hostname none;
	server-id none;

	masterfile-format text;

	allow-transfer {"none";};

	allow-update 
	{ 
	# IPs der Master;
	1.2.3.4;
	# usw.
	};

	// forwarders {
	// 	0.0.0.0;
	// };

	dnssec-validation auto;

	listen-on-v6 { any; };
};

Um die neu hinzukommenden Domains auf dem Slave aktuell zu halten, nutz ich nen regelmässigen Sync.
Verbindung hier zwischen Slave und Master erfolgt mittels SSH-Key.

/usr/local/sbin/slavedns-get-zonefiles

Code: Select all


#!/bin/bash

# ------- 1. Server - HN1-------

MASTER=1.2.3.4
MASTERCONFIG=/etc/bind/named.conf.keyhelp
SLAVECONFIG=/etc/bind/named.hn1.slave
MASTERGLUECONFIG=/etc/bind/named.conf.local
SLAVEGLUECONFIG=/etc/bind/glue.hn1.slave

# >>>> Domains übertragen

echo "Server 1 gestartet."

scp -P 57022 root@$MASTER:$MASTERCONFIG $SLAVECONFIG

sed -i 's/master;/slave;\n  masters { 1.2.3.4; 1a21:5f6:643:32::24; };/g' $SLAVECONFIG

# >>>> Glue / Root Domains übertragen

scp -P 57022 root@$MASTER:$MASTERGLUECONFIG $SLAVEGLUECONFIG

sed -i 's/master;/slave;\n  masters { 1.2.3.4; 1a21:5f6:643:32::24; };/g' $SLAVEGLUECONFIG

sed -i 's/etc\/bind\/keyhelp_domain.conf/etc\/bind\/keyhelp_domains\/hn1_glue_domain.conf/g' $SLAVEGLUECONFIG

echo "Server 1 abgeschlossen."

systemctl restart bind9

echo "Bind neustart abgeschlossen."

Es geht eventuell auch schöner, aber es funktioniert und tut was es soll.

Re: DNS-Slaves - Bind AXFR/IXFR

Posted: Wed 19. Jan 2022, 09:31
by 24unix
Falls jemand Interesse hat, ich arbeite gerade daran, das zu automatisieren.

Auf jedem DNS-Server, der ein Keyhelp Server sein kann, aber nicht muss kommt das Paket drauf.
Bietet eine REST-Api und eine CLI.

Per Cron kann man health checks auf allen KeyHelp-Servern und DNS-Servern machen.
Denke zum WE habe ich es so weit, dass jemand testen kann, wenn er mag.

Re: DNS-Slaves - Bind AXFR/IXFR

Posted: Wed 19. Jan 2022, 19:36
by select name from me;
24unix wrote: Wed 19. Jan 2022, 09:31 Falls jemand Interesse hat, ich arbeite gerade daran, das zu automatisieren.

Auf jedem DNS-Server, der ein Keyhelp Server sein kann, aber nicht muss kommt das Paket drauf.
Bietet eine REST-Api und eine CLI.
Ja, das klingt interessant. Vielen Dank. :)

Re: DNS-Slaves - Bind AXFR/IXFR

Posted: Wed 19. Jan 2022, 20:56
by 24unix
select name from me; wrote: Wed 19. Jan 2022, 19:36
24unix wrote: Wed 19. Jan 2022, 09:31 Falls jemand Interesse hat, ich arbeite gerade daran, das zu automatisieren.

Auf jedem DNS-Server, der ein Keyhelp Server sein kann, aber nicht muss kommt das Paket drauf.
Bietet eine REST-Api und eine CLI.
Ja, das klingt interessant. Vielen Dank. :)
Ich werde spätestens am WE einen Thread dazu aufmachen.

Für mich läuft es schon, aber es ist noch nichts dokumentiert, und den Code muss ich auch noch hübschen …
Auf solche Kommentare haben ich keine Lust: viewtopic.php?p=20736#p20736

Re: DNS-Slaves - Bind AXFR/IXFR

Posted: Wed 19. Jan 2022, 21:01
by 24unix
OlliTheDarkness wrote: Wed 19. Jan 2022, 00:11

Code: Select all

systemctl restart bind9
Es geht eventuell auch schöner, aber es funktioniert und tut was es soll.
Ach ja, sollte da nicht ein rndc relaod reichen?

Re: DNS-Slaves - Bind AXFR/IXFR

Posted: Wed 19. Jan 2022, 21:23
by OlliTheDarkness
24unix wrote: Wed 19. Jan 2022, 21:01
OlliTheDarkness wrote: Wed 19. Jan 2022, 00:11

Code: Select all

systemctl restart bind9
Es geht eventuell auch schöner, aber es funktioniert und tut was es soll.
Ach ja, sollte da nicht ein rndc relaod reichen?
Moin, selbstverständlich ist ein Reload hier ausreichend.
Habe es aus meinem Einsatz einfach 1 zu 1 eingefügt (Adressen geändert) und muss an der Stelle nen Service restart machen da dort noch ein Rattenschwanz anderer Abarbeitungen dran hängt die ein restart erforderlich machen

Gruß Olli

Re: DNS-Slaves - Bind AXFR/IXFR

Posted: Thu 20. Jan 2022, 08:52
by Tobi
24unix wrote: Wed 19. Jan 2022, 20:56 Auf solche Kommentare haben ich keine Lust: viewtopic.php?p=20736#p20736
Mach dir deswegen kein Kopf.
Soll erstmal einer kommen und es besser machen als du 😎

KnechtRootRecht hatte jetzt über zwei Jahre Zeit und außer heißer Luft kam nix.
Von sowas würde ich mich nicht runterziehen lassen.