Wie können Sie je nach Quellsubnetz unterschiedliche DNS-Einträge auflösen?

Wie können Sie je nach Quellsubnetz unterschiedliche DNS-Einträge auflösen?

Ich habe eine neue interne Website, die an mehreren Standorten eingerichtet ist, und möchte den FQDN dafür in die standortspezifische Subdomäne auflösen, je nach verwendetem Quellsubnetz. Unser Bind-DNS ist derzeit so eingerichtet, dass die FQDN-Auflösung an Standort A Master und an Standort B und C Slave ist (alles über Puppet). Daher kann ich zu diesem Zweck keine separaten Datensatzdateien an Standort B und C mit unterschiedlichen Antworten einrichten.

Beispielsweise möchte ich, dass IPs an Site A 172.10.0.0/16 server.domain.com in server.a.domain.com auflösen und dass IPs an Site B 172.11.0.0/16 server.domain.com in server.b.domain.com auflösen usw.

Ich habe mir Bind RPZ angesehen, aber das scheint keine spezifischen Auflösungsoptionen für Subnetze zu bieten, sondern nur die Möglichkeit, ganze Subnetze zu löschen oder zu blockieren, es sei denn, ich lese es falsch. Ich kann es so einrichten, dass der CNAME umgeleitet wird, anstatt ihn zur Auflösung an die richtige Zone weiterzuleiten, aber dann wird dies allgemein auf alle Server angewendet, die keinen Client-IP-Trigger verwenden, wie ich es versuche, und ich könnte den CNAME genauso gut in der Zone domain.com aktualisieren.

zu name.d.conf.options hinzugefügt

response-policy { zone "rpz"; };

RPZ-Zonendatei

zone "rpz" {
  type master;
  file "/etc/named/zones/rpz/db.rpz.conf";
  allow-query { none; };
};

Datenbankdatei

@       IN    SOA  nstest.domain.com. domain.com.  (
                      2   ; serial
                      3H  ; refresh
                      1H  ; retry
                      1W  ; expiry
                      1H) ; minimum

@        IN    NS    nstest.domain.com. ; destination IP rewrite

16.0.0.16.172.rpz-ip CNAME server.domain.com.
server.domain.com     CNAME   server.a.domain.com.

Mit diesen Einstellungen werden alle Anfragen an server.domain.com über diesen ns, unabhängig von der Quell-IP, an server.a.domain.com weitergeleitet.

Oder ist der Versuch, RPZ zu verwenden, hierfür die falsche Methode? Bei meinen Recherchen habe ich auch Bind Views gesehen, aber da sieht es so aus, als müssten Sie die gesamte Zonendatei für jede Site neu erstellen. Ich möchte nur einen einzelnen CNAME-Eintrag ändern.

Jede Hilfe ist willkommen.

Antwort1

  • Dedizierter Server für Standort B

in diesem Fall können Sie problemlos RPZ verwenden. Die Lösung könnte darin bestehen, diesen DNS-Server sogar auf einem nicht standardmäßigen Port (also einem anderen als 53 TCP/UDP) laufen zu lassen und auf Firewall-Ebene eine Portumleitung einzurichten, sodass Anfragen, die aus einem bestimmten Netzwerk kommen, auf diese Ports umgeleitet werden. Alle anderen Anfragen würden vom DNS-Server auf Standardports verarbeitet (da es sich um ein „globales“ RPZ handelt, muss es vermutlich auch für den anderen Datenverkehr einen DNS-Server geben).

  • "gemeinsam genutzter" DNS-Server nicht nur für Standort B

Die Ansichten sind für Sie wahrscheinlich die richtige Richtung. Falls Sie nicht explizit CNAME benötigen, sondern es sogar ein A-Eintrag sein kann, können Sie in der Ansicht einfach nur „spezifische Subdomäne“ definieren und für den Rest die „normale“ Auflösung/Weiterleitung an einen anderen DNS-Server beibehalten.

Nehmen wir also an, Sie haben eine Domainexample.comauf dem DNS-Server am Standort A. Es gibtserver.example.comder normalerweise als A-Eintrag auf 192.0.2.10 aufgelöst wird. Außerdem gibt es einen weiteren Eintragein anderes.beispiel.comwird in A mit dem Wert 192.0.2.20 aufgelöst.

Dann haben Sie irgendwo vor Ort (Standort B) einen Bind-Server, der für einige lokale Clients auflöst. Sie können eine lokale Ansicht für einen bestimmten Client erstellen (lokale IPs am Standort B), wo Sie eine Domäne erstellen könnenserver.example.com.

@       IN    SOA  dns.example.com. admin.example.com.  (
                      2   ; serial
                      3H  ; refresh
                      1H  ; retry
                      1W  ; expiry
                      1H) ; minimum

@        IN    NS    dns.example.com ; destination IP rewrite

@        IN    A     192.0.2.30

Sobald der Client eine Anfrage für server.example.com sendet, wird diese lokal als lokale „Master“-Zone in der Ansicht aufgelöst. Sobald der Client etwas anderes anfordert (außer Subdomain zu server.example.com), wird er basierend auf anderen Konfigurationen eine reguläre Auflösung oder Weiterleitung durchführen...

Am Standort A ergibt sich also folgendes Ergebnis:

server.example.com => 192.0.2.10
another.example.com => 192.0.2.20

Am Standort B wird es sein:

server.example.com => 192.0.2.30
another.example.com => 192.0.2.20

Auf diese Weise können Sie nur eine explizite Liste von Subdomänen überschreiben. Der Nachteil ist, dass es sich um eine zusätzliche Zone handelt und mindestens SOA und höchstwahrscheinlich ein NS-Eintrag vorhanden sein müssen. In diesem Fall ist es daher nicht möglich, CNAME zu verwenden.

verwandte Informationen