blog.bartlweb - a technologist's external brain

Response Policy Zones zum Überschreiben von DNS-Einträgen am BIND Nameserver nutzen

Es gibt unterschiedliche Szenarien, bei denen es notwendig werden kann im lokalen Netzwerk DNS-Einträge für einzelne Domains (egal ob eigene oder nicht durch einen selbst verwaltete) zu manipulieren. Sei es um den Zugriff auf externe Ressourcen aus dem internen Netzwerk zu unterbinden oder eine Split-DNS-Konfiguration für eine eigene von einem externen Domainserver verwaltet Domain zu realisieren.

Seit Version 9.8 unterstützt der BIND Nameserver das Konzept von Response Policy Zones mit der genau solche Anforderungen sehr einfach, ohne Domains am eigenen Nameserver zu verwalten und damit doppelt abzubilden, realisieren lassen.

Konfiguration

Fügen Sie im Abschnitt options {} der allgemeinen Konfiguration von BIND (unter Ubuntu ist das die Datei /etc/bind/named.conf.options) den folgenden Eintrag hinzu. Der Name der Zone ist frei wählbar und ich habe im Beispiel den Namen rpz-vpn gewählt (weil ich für meine VPN-Verbindung ein Split-DNS-Setup damit aufbaue).

response-policy {
  zone "rpz-vpn";
};

Danach muss die Zone definiert werden. Unter Ubuntu passiert das in der Konfigurationsdatei /etc/bind/named.conf.local. Dabei wird auch die Konfigurationsdatei der Zone definiert, deren Name wieder frei definiert werden kann.

zone "rpz-vpn" {
 type master;
 file "/etc/bind/rpz-vpn-override";
 allow-query { none; };
};

Die Datei /etc/bind/rpz-vpn-override orientiert sich am unten abgebildeten Aufbau und es können darin beliebige viele und vor allem auch unterschiedliche zu überschreibende Domains definiert werden. Es stehen wie bei den normalen DNS-Zonen-Dateien die verschiedenen Record-Typen bereit. Im unteren Fall wird die Domain internal.bartlweb.net überschrieben, um im internen Netzwerk (bzw. bei Zugriff mittels VPN) die interne IP-Adresse und nicht wie der öffentliche Nameserver die IP-Adresse meines Internetanschlusses zu liefern.

$TTL 1H
@                       SOA LOCALHOST. named-mgr.example.com (1 1h 15m 30d 2h)
                        NS LOCALHOST.

; define all internal domains to overwrite - make them work in vpn
internal.bartlweb.net       CNAME   internalserver.local.
;test.example.com           A       192.168.0.1

Fehlervermeidung

Um Fehler in den Konfigurationsdateien zu erkennen bzw. zu vermeiden bietet es sich an die BIND-Konfiguration mit dem folgenden Befehl auf Fehler zu prüfen:

named-checkconf -zj

Eine mögliche Fehlerquelle möchte ich explizit erwähnen, da mir diese doch etwas Kopfzerbrechen bereitet hat: Bennen Sie die Zonen-Datei für den RPZ-Eintrag nie nach dem schema db.*, da ansonsten der untenstehende Fehler auftritt.

/etc/bind/db.rpz:3: unknown RR type 'LOCALHOST.'
/etc/bind/db.rpz:6: file does not end with newline
zone rpz/IN: loading from master file /etc/bind/db.rpz failed: unknown class/type
zone rpz/IN: not loaded due to errors.
_default/rpz/IN: unknown class/type

Dieser Artikel hat Dir deinen Tag gerettet?

... und mühevolles Probieren, Recherchieren und damit Stunden an Zeit gespart? Oder einfach nur Dein Problem gelöst?

Dann würde ich mich freuen, wenn Du meine Zeit für die Erstellung dieses Blogartikels mit einer kleinen Anerkennung honorierst:

Zahlung mit PayPal oder Kreditkarte.

Hinweis zur Verwendung

Die Übermittlung einer Zahlung ist eine persönliche Anerkennung Ihrerseits an den Entwickler (Christian Bartl, Privatperson). Eine Zahlung ist nicht zweckgebunden und es ist keine Gegenleistung zu erwarten. Bitte beachten Sie, dass für eine übermittelte Zahlung keine Quittung ausgestellt werden kann.

Über den Autor

Christian Bartl

Christian Bartl Requirements Engineer
& Solution Architect für Online und Mobile

Als Technologie-Enthusiast und begeisterter Programmierer entwickle ich in meiner Freizeit Websites, Software und IT-Lösungen, die mir selbst und anderen den Alltag vereinfachen.

mehr auf christian.bartl.me

Kommentare

Noch kein Kommentar vorhanden.
Sei der Erste! - Ich freue mich über deine Anmerkung, Kritik oder Frage.

Kommentar schreiben

Der hier angegebene Name wird gemeinsam mit deinem Kommentar auf der Website veröffentlicht.

Deine E-Mail-Adresse wird zur einmaligen Benachrichtigung bei Veröffentlichung des Kommentars genutzt.

Benachrichtigung per E-Mail über Antworten auf meinen Kommentar erhalten.

Bitte tippe die Zahlenkombination "6892" ein, nur dann kann ich deinen Kommentar entgegennehmen.

Bitte fülle dieses Feld nicht aus, nur dann kann ich deinen Kommentar entgegennehmen.