
Guten Tag, ich verwende Zentyal, konfiguriert mit 2 Schnittstellen, einer internen und einer externen. Beim Lösen der Hostnamen und Aliase der Server gibt Bind in den Ergebnissen zufällig die externe Adresse zurück. Das Problem ist natürlich, dass das lokale Netz nicht mit dem externen Netz kommunizieren kann und die Dienste zufällig unterbricht. Beispiel:
dig proxy.private.example.com
;; ANSWER SECTION:
proxy.private.example.com. 259200 IN CNAME zentyal.private.example.com.
zentyal.private.example.com. 900 IN A 192.168.122.73
zentyal.private.example.com. 900 IN A 10.10.20.40
10.10.20.40 liegt im internen Netz und ist die Adresse, die wir immer auflösen sollten.
Wie schließe ich die Schnittstelle „192.168.122.73“ aus den Ergebnissen aus? Wie würde meine Bind-Konfiguration aussehen?
PS: Ich habe jetzt drei Tage lang gesucht. Es ist möglich, dass ich nach den falschen Dingen suche.
Deine Hilfe ist sehr Willkommen.
Antwort1
Was Sie jetzt konfiguriert haben, sind mehrere A
-Einträge für dieselbe Ressource. Bind behandelt dies im Round-Robin-Verfahren und gibt abwechselnd 192.168.122.73 oder 10.10.20.40 für eine DNS-Anfrage für zentyal.private.example.com zurück.
Sie möchten, dass je nach Schnittstelle/IP-Adresse, von der die DNS-Anfrage stammt, eine andere Antwort auf konsistente Weise zurückgegeben wird. In Bind wird dies als Ansicht bezeichnet.
Dazu müssen Sie zwei verschiedene Zonendateien einrichten, eine für externe Clients und eine zweite für interne Clients, und Bind konfigurieren, wann welche Zonendatei verwendet werden soll. Der entsprechende Konfigurationsabschnitt in Ihrer Konfiguration könnte etwa so aussehen:
view "internal" {
match-clients { localnets; };
recursion yes; /* this is the default */
zone "private.example.com" {
type master;
file "db.private.example.com.internal";
allow-transfer { any; };
};
};
view "external" {
match-clients { any; };
recursion no;
zone "example.com" {
type master;
file "db.example.com.external";
allow-transfer { none; };
};
};
Fügen Sie dann den A-Eintrag mit der IP-Adresse 10.x zu db.private.example.com.internal hinzu und stellen Sie sicher, dass nur der A-Eintrag mit der IP-Adresse 192.x in der öffentlichen Zonendatei db.example.com.external verbleibt.