Ich habe versucht, eine Bind-Master->Slave-Konfiguration zwischen zwei Maschinen zu implementieren, habe jedoch ein Problem mit der IP-Adresse, die BIND auf dem Master verwendet, um meine Slave-Maschine zu benachrichtigen.
Hier ist mein Setup:
Master: master.site.com - 10.0.0.2
Slave: slave.site.com - 10.0.0.10
Der Master hat eine autoritative Zone site.com
und ist so konfiguriert, dass er alle Slaves benachrichtigt, wenn die Zone geändert wird. Die Zone funktioniert einwandfrei. Sie antwortet einwandfrei auf Anfragen unddig @10.0.0.2 -t SOA site.com
Also, auf dem Master habe ich Folgendes named.conf.options
:
options {
directory "/var/cache/bind";
dnssec-validation auto;
auth-nxdomain no;
listen-on { 10.0.0.2; };
listen-on-v6 { any; };
allow-query { any; };
recursion yes;
allow-recursion { localhost; };
allow-notify { localhost; };
allow-transfer { localhost; 10.0.0.10; };
version none;
notify yes;
also-notify { 10.0.0.10; };
};
Auf dem Slave:
options {
directory "/var/cache/bind";
dnssec-validation auto;
auth-nxdomain no;
listen-on { 10.0.0.10; };
listen-on-v6 { any; };
allow-query { any; };
recursion yes;
allow-recursion { localhost; };
allow-notify { localhost; 10.0.0.2; };
allow-transfer { localhost; 10.0.0.2; };
version none;
};
Zunächst scheinen die Benachrichtigungen nicht zu funktionieren. Bei der Verwendung tcpdump
auf dem Slave-Computer habe ich diese Meldung erhalten:
02:32:50.269377 IP 10.0.0.1.15271 > 10.0.0.10.53: 64103 notify [b2&3=0x2400] [1a] SOA? site.com. (85)
02:32:50.269662 IP 10.0.0.10.53 > 10.0.0.1.15271: 64103 notify Refused- 0/0/0 (27)
Wie Sie sehen, ist der Master zwar so eingestellt, dass er 10.0.0.2
beim Senden von Benachrichtigungen zuhört, sendet diese aber über seine Haupt-IP-Adresse 10.0.0.1
, und mein Slave hat die Benachrichtigung logischerweise abgelehnt …
Warum sendet der Master die Benachrichtigungen nicht 10.0.0.2
? Gibt es eine Konfiguration, mit der ich das erzwingen kann? Die Maschine besitzt 3 IPs, eine für ihre Website, eine andere für E-Mail und eine andere für DNS... Ich muss es schaffenNUR10.0.0.2
für DNS verwenden , listen-on
funktioniert aber anscheinend nicht mit ausgehendem Datenverkehr ...
Wie kann ich das beheben?
Antwort1
Sie suchen die notify-source
Option. Von derBINDENARM:
Benachrichtigungsquelle
notify-source bestimmt, welche lokale Quelladresse und optional welcher UDP-Port zum Senden von NOTIFY-Nachrichten verwendet werden. Diese Adresse muss in der Zonenklausel des Master-Servers oder in einer allow-notify-Klausel erscheinen. Diese Anweisung legt die Benachrichtigungsquelle für alle Zonen fest, kann aber für jede Zone oder Ansicht einzeln überschrieben werden, indem in der Konfigurationsdatei eine Benachrichtigungsquellenanweisung in den Zonen- oder Ansichtsblock eingefügt wird.
Warum sich BIND so verhält, ist für die meisten Anwendungen ziemlich typisch. Die Quell-IP von lokal initiiertem Datenverkehr ist standardmäßig die primäre IP der Schnittstelle, die mit der Route verknüpft ist. Auf einem Linux-System können Sie die mit jeder Route verknüpfte Quell-IP anzeigen, indem Sie die Werte nach dem Schlüsselwort eingeben ip route show
und betrachten .src