Ich versuche, BIND so einzurichten, dass es alle an ihn gerichteten Anforderungen auffängt und sie auf einen bestimmten Satz von NS-Servern und einen bestimmten A-Datensatz verweist.
Ich habe ungefähr 500 Domains und füge täglich 10-15 neue hinzu. Daher möchte ich nicht explizit für jede Domain eine Zone hinzufügen.
Mein aktuelles Setup ist: In meiner named.conf habe ich eine Ansicht (external) mit der folgenden Zone:
zone "." {
type master;
file "ext.zone";
};
Dies entspricht allen Anforderungen.
ext.zone ist:
3600 US-Dollar @ IN SOA. root.nsdomain.com. ( 1; Seriell 3600; Aktualisierung 300; Wiederholen 3600; Verfallen 300); Negative Cache-TTL IN NS ns1.example.com IN NS ns2.example.com ns1 IN A 192.0.2.4 ns2 IN A 192.0.2.5 *. IN A 192.0.2.6
Das Ziel ist also: Für alle NS-Anforderungen kehren Sie zurück ns1.example.com
und ns2.example.com
für alle A-Anforderungen, außer wenn es sich um ns1.example.com
oder handelt ns2.example.com
, kehren Sie zurück 192.0.2.6
. Zur ns1.example.com
Rückkehr 192.0.2.4
, zur ns2.example.com
Rückkehr 192.0.2.5
.
Das funktioniert fast, das einzige Problem ist, dass ich beim Graben Folgendes bekomme:
dig @localhost somedomain.example ; > DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3> @localhost somedomain.example ; (1 Server gefunden) ;; globale Optionen: printcmd ;; Antwort bekommen: ;; Befehlscode: QUERY, Status: NOERROR, ID: 37733 ;; Flags: qr aa rd; FRAGE: 1, ANTWORT: 1, BEHÖRDE: 2, ZUSÄTZLICH: 2 ;; FRAGE ABSCHNITT: ; somedomain.example. IN EINEM ;; ANTWORT ABSCHNITT: somedomain.example. 3600 IN A 192.0.2.6 // wie erwartet ;; BEHÖRDEN ABSCHNITT: . 3600 IN NS ns1.example.com. // erwartet, ich weiß nicht ob das "." am anfang ist es allerdings schlecht. . 3600 IN NS ns2.example.com. // siehe oben. ;; ZUSÄTZLICHER ABSCHNITT: ns1.example.com. 3600 IN A 192.0.2.6 // nicht zu erwarten, sollte dies 192.0.2.4 sein ns2.example.com. 3600 IN A 192.0.2.6 // nicht zu erwarten, sollte dies 192.0.2.5 sein
Wie behebe ich das? Mache ich etwas Schreckliches? Gibt es einen besseren Weg, dies zu tun?