Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
DNS ISC bind CentOS 6 - Master-Slave und TSIG
DNS ISC bind ist ein DNS-Server, welcher die Namensauflösung in einem Netzwerk realisieren kann. Der DNS-Server des ISC (Internet System Consortium) ist einer der meist eingesetzten Namensserver weltweit und ebenfalls der bei den aktuell 13 weltweiten Root-Nameservern verwendete DNS-Server.
HINWEIS - Die gezeigten Ausführungen basieren auf dem nachfolgenden internen DokuWiki-Eintrag: DNS ISC bind CentOS 6
Ab hier werden zur Ausführung nachfolgender Befehle root
-Rechte benötigt. Um der Benutzer root
zu werden, melden Sie sich bitte als root
-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root
:
$ su - Password:
Konstellationsbeschreibung
Nachfolgend soll ein Überblick gegeben werden, wie sich die Beziehung zwischen Master-Server und Slave-Server in der nachfolgend gezeigten Konstellation darstellt:
+-------------------+ +---------------------+ | | | | | MASTER-Server | | SLAVE-Server | | ============= | | ============ | | | | | | Präsenz: | | Präsenz: | | DMZ | | DMZ, Intranet | | | | | +-------------------+ +---------------------+ | | | | | DMZ-IP-Adresse: | | DMZ-IP-Adresse: | | 192.168.0.20 | -------> Transfer der Zone DMZ <------> Anfrage des Transfers der Zone DMZ <------- | 192.168.0.10 | | | | | | DMZ-IP-Adresse: | | intra-IP-Adresse: | | 192.168.0.20 | -------> Transfer der Zone intra <------> Anfrage des Transfers der Zone intra <------- | 192.168.1.1 | | | | | +-------------------+ +---------------------+
WICHTIG - Die Zone DMZ - muss - über die IP-Adressen - 192.168.0.20 ←→ 192.168.0.10 transferiert werden!
WICHTIG - Die Zone intra - muss - über die IP-Adressen - 192.168.0.20 ←→ 192.168.1.1 transferiert werden!
HINWEIS - Falls die Zone intra auch über die IP-Adresse 192.168.0.10 des Slave-Servers transferiert wird, ist der Inhalt FALSCH und entspricht dem Inhalt der Zone DMZ !!!
Es wird ein Zonen-Transfer durchgeführt, wobei die
- gleichen Zonen-Definitionen, z.B. dmz.tachtler.net, intra.tachtler.net uvm. in
- unterschiedlichen View-Definitionen, localhost, DMZ, intra
verwendet werden.
WICHTIG - Dabei können die Inhalte der Zonen-Definitionen durchaus unterschiedlich sein !!!
Beispiel::
Abfrage der IP-Adresse von –> mx1.tachtler.net in der View - DMZ
# dig mx1.tachtler.net ... ;; ANSWER SECTION: mx1.tachtler.net. 10800 IN A 192.168.0.60 ...
Abfrage der IP-Adresse von –> mx1.tachtler.net in der View - intra
# dig mx1.tachtler.net ... ;; ANSWER SECTION: mx1.tachtler.net. 10800 IN A 88.217.171.167 ...
Master-Konfiguration
Nachfolgende Konfiguration ist eine Beispielkonfiguration, welche auf bestimmte Ansichten und Bedürfnisse zugeschnitten ist. Dies Konfiguration erhebt keinen Anspruch auf Vollständigkeit.
Nachfolgend soll die Konfigurationsdatei
/etc/named.conf
zu einer Master-Konfigurationsdatei angepasst werden.
WICHTIG - Nachfolgend wird beschrieben, welche ZIELE die HIER nachstehende Konfigurationsdatei hat bzw. erfüllen soll!!!
Folgende Zielsetzung hat die nachstehende Konfigurationsdatei /etc/named.conf
:
- Master Nameserver
- für die Zonen
- dmz.tachtler.net
- intra.tachtler.net
- nicht für die Zone
- tachtler.net
- Namensauflösung forward und reverse
- nur für ein internes Netzwerk, keine externen Anfragen zur Beantwortung
- Es sollen immer die root-Server für nicht autoritativen Anfragen benutzt werden
- Der Einsatz von views, welche aktuell jedoch auf identische Dateien verweisen!
- Vorerst noch kein DNSSEC
/etc/named.conf
Die jeweiligen Kommentare erklären die nachfolgend durchgeführten Einstellung (komplette Konfigurationsdatei):
// // Tachtler - named.conf // // acl ----------------------------------------------------------------- acl masterlist { 127.0.0.1/32; 192.168.0.20/32; }; acl slavelist { 192.168.0.10/32; 192.168.1.1/32; } acl dmz { 192.168.0.0/24; }; acl intra { 192.168.1.0/24; }; // options ------------------------------------------------------------- options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; /* * With problems while censorship with ISP no forwards will * be defined. Asking the root-server! * * // DNS-Server which will asked when local answers not found. * forwarders { 212.18.3.5; 212.18.0.5; }; * // Route the questions to the Forwarders first, not only. * forward first; */ // Allow notification form this DNS-Server to slave DNS-Server. notify yes; also-notify { 192.168.0.10; 192.168.1.1; }; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ query-source address * port *; // No answer, when asking for bind-version. version ""; // Accept no old questions and configurations. auth-nxdomain no; // Allow these HOSTs to ask ordinary DNS questions. allow-query { localhost; dmz; intra; edmz; }; // Allow these HOSTs to ask recursiv DNS questions. allow-recursion { localhost; dmz; intra; edmz; }; // Local interfaces to listen on listen-on port 53 { masterlist; }; // Enable zonetransfer to these HOSTs. allow-transfer { masterlist; slavelist; }; // Local address for zone transfers. transfer-source 192.168.0.20; // The maximum number of outbound zone transfers running concurrently. transfers-out 999; // Warn only, if names not correct, like DKIM for e-mail. check-names master warn; // Recursion to other nameserver and reslovers. recursion yes; // Enable zones with no zone files. empty-zones-enable yes; // DNSSEC-Options first set to no! // TODO // default: dnssec-enable yes; dnssec-enable no; // TODO //default: dnssec-validation yes; dnssec-validation no; // TODO //default: dnssec-lookaside auto; dnssec-lookaside auto; /* Path to ISC DLV key */ // TODO bindkeys-file "/etc/named.iscdlv.key"; /* Path to dynamic content */ managed-keys-directory "/var/named/dynamic"; }; // logging ------------------------------------------------------------- logging { channel default_debug { file "data/named.run"; severity info; print-severity yes; print-time yes; print-category yes; }; category default { default_debug; }; }; // TSIG ---------------------------------------------------------------- key "intra." { algorithm hmac-md5; secret "kfgHKkh27TApI3pD+z2GIB=="; }; // zones --------------------------------------------------------------- view "localhost" { // Only following clients can resolv the zone informations. match-clients { !key intra. ; "localhost"; }; // Only following destination can resolv the zon informations. match-destinations { "localhost"; }; // Recursion to other nameserver and reslovers. recursion yes; /* * All view MUST contain the root zone with the worldwide root * server definitions. * * Updating the root zone could be done with follwing command: * # dig NS . @a.root-servers.net > /var/named/named.ca */ zone "." IN { type hint; file "named.ca"; }; /* * All view MUST contain the definitions for all the localhost * names and addresses, as recommended in RFC1912. */ include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; zone "dmz.tachtler.net" IN { type master; file "dynamic/master/dmz.tachtler.net.zone.db"; allow-update { none; }; }; zone "intra.tachtler.net" IN { type master; file "dynamic/master/intra.tachtler.net.zone.db"; allow-update { none; }; }; zone "0.168.192.in-addr.arpa" IN { type master; file "dynamic/master/0.168.192.zone.db"; allow-update { none; }; }; zone "1.168.192.in-addr.arpa" IN { type master; file "dynamic/master/1.168.192.zone.db"; allow-update { none; }; }; }; view "dmz" { // Only following clients can resolv the zone informations. match-clients { !key intra. ; "dmz"; }; // Only following destination can resolv the zon informations. match-destinations { "dmz"; }; // Recursion to other nameserver and reslovers. recursion yes; /* * All view MUST contain the root zone with the worldwide root * server definitions. * * Updating the root zone could be done with follwing command: * # dig NS . @a.root-servers.net > /var/named/named.ca */ zone "." IN { type hint; file "named.ca"; }; /* * All view MUST contain the definitions for all the localhost * names and addresses, as recommended in RFC1912. */ include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; zone "dmz.tachtler.net" IN { type master; file "dynamic/master/dmz.tachtler.net.zone.db"; allow-update { none; }; }; zone "intra.tachtler.net" IN { type master; file "dynamic/master/intra.tachtler.net.zone.db"; allow-update { none; }; }; zone "0.168.192.in-addr.arpa" IN { type master; file "dynamic/master/0.168.192.zone.db"; allow-update { none; }; }; zone "1.168.192.in-addr.arpa" IN { type master; file "dynamic/master/1.168.192.zone.db"; allow-update { none; }; }; }; view "intra" { // Only following clients can resolv the zone informations. match-clients { key intra. ; "intra"; }; // Only following destination can resolv the zon informations. match-destinations { "intra"; }; // Allow transfer for server with key. server 192.168.0.1 { keys intra. ; }; // Recursion to other nameserver and reslovers. recursion yes; /* * All view MUST contain the root zone with the worldwide root * server definitions. * * Updating the root zone could be done with follwing command: * # dig NS . @a.root-servers.net > /var/named/named.ca */ zone "." IN { type hint; file "named.ca"; }; /* * All view MUST contain the definitions for all the localhost * names and addresses, as recommended in RFC1912. */ include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; zone "dmz.tachtler.net" IN { type master; file "dynamic/master/dmz.tachtler.net.zone.db"; allow-update { none; }; }; zone "intra.tachtler.net" IN { type master; file "dynamic/master/intra.tachtler.net.zone.db"; allow-update { none; }; }; zone "0.168.192.in-addr.arpa" IN { type master; file "dynamic/master/0.168.192.zone.db"; allow-update { none; }; }; zone "1.168.192.in-addr.arpa" IN { type master; file "dynamic/master/1.168.192.zone.db"; allow-update { none; }; }; }; // keys ---------------------------------------------------------------- include "/etc/rndc.key"; // controls ------------------------------------------------------------ controls { inet 127.0.0.1 port 953 allow { masterlist; } keys { rndc-key; }; };
Nachfolgend sollen die wichtigen Bestandteile der voranstehenden Konfigurationsdatei /etc/named.conf
veranschaulicht werden.
Definitionen der beteiligten Server: Master- und Slave-Server
... acl masterlist { 127.0.0.1/32; 192.168.0.20/32; }; acl slavelist { 192.168.0.10/32; 192.168.1.1/32; } ...
Es werden die IP-Adressen des Master-Servers und des Slave-Servers in ACL-Gruppen definiert, die später zum Einsatz kommen.
Definitionen zum Benachrichtigungssystem
... // Allow notification form this DNS-Server to slave DNS-Server. notify yes; also-notify { 192.168.0.10; 192.168.1.1; }; ...
Es sollen Benachrichtigungen vom Master-Server zum Slave-Server bei Zonenänderungen Versand werden, so dass ein Zonen-Transfer ausgelöst wird.
WICHTIG - Da unterschiedliche Netz-Segmente verwendet werden, müssen alle entsprechenden IP-Adressen des Slave-Servers aufgeführt werden, für die ein Zonen-Transfer durchgeführt werden soll !!!
Definitionen Server-Benachrichtigungen
... // Enable zonetransfer to these HOSTs. allow-transfer { masterlist; slavelist; }; ...
Hier werden die ACL-Gruppen verwendet, hinter denen sich die IP-Adresse befinden, auf die Server auf die ein Zonen-Transfer erlaubt ist.
Definition der Master-Server transfer IP-Adresse
... // Local address for zone transfers. transfer-source 192.168.0.20; ...
Hier wird die IP-Adresse festgelegt, mit der der Master-Server den Zonen-Transfer durchführt (Absender IP-Adresse).
Definition der gleichzeitig erlaubten Zonen-Transfers
...
// The maximum number of outbound zone transfers running concurrently.
transfers-out 999;
...
Der Standard-Wert liegt beim Transfer von 10 Zonen, was als Lastbeschränkung gedacht ist. Die Anzahl kann jedoch erhöht werden, was aber zu Lasten der Performance des Master-Servers und des Slave-Servers führen kann.
Definition eines TSIG-Schlüsses
... // TSIG ---------------------------------------------------------------- key "intra." { algorithm hmac-md5; secret "kfgHKkh27TApI3pD+z2GIB=="; }; ...
Dies ist die Definition eines TSIG-Schlüssels, welcher für bestimmte Konstellationen von Zonen-Transfers maßgeblich entscheidend ist!
WICHTIG - Der Einsatz eines TSIG-Schlüssels ist bei der hier vorgestellten Konstellation des Zonen-Transfers entscheidend und wird nachfolgend behandelt:
Definitionen der "Views"
... view "localhost" { // Only following clients can resolv the zone informations. match-clients { !key intra. ; "localhost"; }; ... view "dmz" { // Only following clients can resolv the zone informations. match-clients { !key intra. ; "dmz"; }; ... view "intra" { // Only following clients can resolv the zone informations. match-clients { key intra. ; "intra"; }; ... // Allow transfer for server with key. server 192.168.1.1 { keys intra. ; }; ...
WICHTIG - Es kommen unterschiedliche View-Definitionen zum Einsatz !!!
Bei den View-Definitionen
localhost
unddmz
kommt eine Definition zum Einsatz die einem Slave-Server mit dem TSIG-Schlüssel
- intra.
den Zonen-Transfer - NICHT ERLAUBT !!!
... !key intra. ; ...
Bei der View-Definition
intra
kommt eine Definition zum Einsatz die einem Slave-Server mit dem TSIG-Schlüssel
- intra.
den Zonen-Transfer - ERLAUBT !!!
... key intra. ; ...
WICHTIG - Die Definition des Slave-Servers mit dem dazugehörigen Key - intra.
!!!
... server 192.168.1.1 { keys intra. ; };
Definitionen der "Zonen"
... zone "dmz.tachtler.net" IN { type master; file "dynamic/master/dmz.tachtler.net.zone.db"; allow-update { none; }; }; ...
HINWEIS - Diese Definitionen gelten für alle Zonen, lediglich der
- Name der Zone - hier z.B.
dmz.tachtler.net
und die - Datei der Zone - hier z.B.
dynamic/master/dmz.tachtler.net.zone.db
sind entsprechend der einzelnen verwendeten Zonen unterschiedlich.
Slave-Konfiguration
Nachfolgende Konfiguration ist eine Beispielkonfiguration, welche auf bestimmte Ansichten und Bedürfnisse zugeschnitten ist. Dies Konfiguration erhebt keinen Anspruch auf Vollständigkeit.
Nachfolgend soll die Konfigurationsdatei
/etc/named.conf
zu einer Slave-Konfigurationsdatei angepasst werden.
WICHTIG - Nachfolgend wird beschrieben, welche ZIELE die HIER nachstehende Konfigurationsdatei hat bzw. erfüllen soll!!!
Folgende Zielsetzung hat die nachstehende Konfigurationsdatei /etc/named.conf
:
- Slave Nameserver
- für die Zonen
- dmz.tachtler.net
- intra.tachtler.net
- nicht für die Zone
- tachtler.net
- Namensauflösung forward und reverse
- nur für ein internes Netzwerk, keine externen Anfragen zur Beantwortung
- Es soll immer der Master-Server für nicht autoritativen Anfragen benutzt werden
- Der Einsatz von views, welche aktuell jedoch auf identische Dateien verweisen!
- Vorerst noch kein DNSSEC
/etc/named.conf
Die jeweiligen Kommentare erklären die nachfolgend durchgeführten Einstellung (komplette Konfigurationsdatei):
// // Tachtler - named.conf // // acl ----------------------------------------------------------------- acl masterlist { 192.168.0.20/32; }; acl slavelist { 127.0.0.1/32; 192.168.0.10/32; 192.168.1.1/32; } acl dmz { 192.168.0.0/24; }; acl intra { 192.168.1.0/24; }; // options ------------------------------------------------------------- options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; /* * With problems while censorship with ISP no forwards will * be defined. Asking the root-server! * * // DNS-Server which will asked when local answers not found. * forwarders { 212.18.3.5; 212.18.0.5; }; * // Route the questions to the Forwarders first, not only. * forward first; */ // No notification form this DNS-Server to anyone. notify no; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ query-source address * port *; // No answer, when asking for bind-version. version ""; // Accept no old questions and configurations. auth-nxdomain no; // Allow these HOSTs to ask ordinary DNS questions. allow-query { localhost; dmz; intra; edmz; }; // Allow these HOSTs to ask recursiv DNS questions. allow-recursion { localhost; dmz; intra; edmz; }; // Local interfaces to listen on listen-on port 53 { masterlist; }; // Enable zonetransfer to these HOSTs. allow-transfer { slavelist; }; // Local address for zone transfers. transfer-source 192.168.0.10; // The maximum number of inbound zone transfers running concurrently. transfers-in 999; // Warn only, if names not correct, like DKIM for e-mail. check-names master warn; // Recursion to other nameserver and reslovers. recursion yes; // Enable zones with no zone files. empty-zones-enable yes; // DNSSEC-Options first set to no! // TODO // default: dnssec-enable yes; dnssec-enable no; // TODO //default: dnssec-validation yes; dnssec-validation no; // TODO //default: dnssec-lookaside auto; dnssec-lookaside auto; /* Path to ISC DLV key */ // TODO bindkeys-file "/etc/named.iscdlv.key"; /* Path to dynamic content */ managed-keys-directory "/var/named/dynamic"; }; // logging ------------------------------------------------------------- logging { channel default_debug { file "data/named.run"; severity info; print-severity yes; print-time yes; print-category yes; }; category default { default_debug; }; }; // TSIG ---------------------------------------------------------------- key "intra." { algorithm hmac-md5; secret "kfgHKkh27TApI3pD+z2GIB=="; }; // zones --------------------------------------------------------------- view "localhost" { // Only following clients can resolv the zone informations. match-clients { !key intra. ; "localhost"; }; // Only following destination can resolv the zon informations. match-destinations { "localhost"; }; // Recursion to other nameserver and reslovers. recursion yes; /* * All view MUST contain the root zone with the worldwide root * server definitions. * * Updating the root zone could be done with follwing command: * # dig NS . @a.root-servers.net > /var/named/named.ca */ zone "." IN { type hint; file "named.ca"; }; /* * All view MUST contain the definitions for all the localhost * names and addresses, as recommended in RFC1912. */ include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; zone "dmz.tachtler.net" IN { type slave; file "dynamic/slave/dmz.tachtler.net.zone.db"; masters { 192.168.0.20; }; }; zone "intra.tachtler.net" IN { type slave; file "dynamic/slave/intra.tachtler.net.zone.db"; masters { 192.168.0.20; }; }; zone "0.168.192.in-addr.arpa" IN { type slave; file "dynamic/slave/0.168.192.zone.db"; masters { 192.168.0.20; }; }; zone "1.168.192.in-addr.arpa" IN { type slave; file "dynamic/slave/1.168.192.zone.db"; masters { 192.168.0.20; }; }; }; view "dmz" { // Only following clients can resolv the zone informations. match-clients { !key intra. ; "dmz"; }; // Only following destination can resolv the zon informations. match-destinations { "dmz"; }; // Recursion to other nameserver and reslovers. recursion yes; /* * All view MUST contain the root zone with the worldwide root * server definitions. * * Updating the root zone could be done with follwing command: * # dig NS . @a.root-servers.net > /var/named/named.ca */ zone "." IN { type hint; file "named.ca"; }; /* * All view MUST contain the definitions for all the localhost * names and addresses, as recommended in RFC1912. */ include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; zone "dmz.tachtler.net" IN { type slave; file "dynamic/slave/dmz.tachtler.net.zone.db"; masters { 192.168.0.20; }; }; zone "intra.tachtler.net" IN { type slave; file "dynamic/slave/intra.tachtler.net.zone.db"; masters { 192.168.0.20; }; }; zone "0.168.192.in-addr.arpa" IN { type slave; file "dynamic/slave/0.168.192.zone.db"; masters { 192.168.0.20; }; }; zone "1.168.192.in-addr.arpa" IN { type slave; file "dynamic/slave/1.168.192.zone.db"; masters { 192.168.0.20; }; }; }; view "intra" { // Only following clients can resolv the zone informations. match-clients { key intra. ; "intra"; }; // Only following destination can resolv the zon informations. match-destinations { "intra"; }; // Allow transfer for server with key. server 192.168.0.20 { keys intra. ; }; // Recursion to other nameserver and reslovers. recursion yes; /* * All view MUST contain the root zone with the worldwide root * server definitions. * * Updating the root zone could be done with follwing command: * # dig NS . @a.root-servers.net > /var/named/named.ca */ zone "." IN { type hint; file "named.ca"; }; /* * All view MUST contain the definitions for all the localhost * names and addresses, as recommended in RFC1912. */ include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; zone "dmz.tachtler.net" IN { type slave; file "dynamic/slave/dmz.tachtler.net.zone.db"; masters { 192.168.0.20; }; }; zone "intra.tachtler.net" IN { type slave; file "dynamic/slave/intra.tachtler.net.zone.db"; transfer-source 192.168.1.1; masters { 192.168.0.20; }; }; zone "0.168.192.in-addr.arpa" IN { type slave; file "dynamic/slave/0.168.192.zone.db"; masters { 192.168.0.20; }; }; zone "1.168.192.in-addr.arpa" IN { type slave; file "dynamic/slave/1.168.192.zone.db"; transfer-source 192.168.1.1; masters { 192.168.0.20; }; }; }; // keys ---------------------------------------------------------------- include "/etc/rndc.key"; // controls ------------------------------------------------------------ controls { inet 127.0.0.1 port 953 allow { slavelist; } keys { rndc-key; }; };
Nachfolgend sollen die wichtigen Bestandteile der voranstehenden Konfigurationsdatei /etc/named.conf
veranschaulicht werden.
Definitionen der beteiligten Server: Master- und Slave-Server
... acl masterlist { 192.168.0.20/32; }; acl slavelist { 127.0.0.1/32; 192.168.0.10/32; 192.168.1.1/32; } ...
Es werden die IP-Adressen des Master-Servers und des Slave-Servers in ACL-Gruppen definiert, die später zum Einsatz kommen.
Definitionen zum Benachrichtigungssystem
... // No notification form this DNS-Server to anyone. notify no; ...
Es sollen keine Benachrichtigungen vom Slave-Server bei Zonenänderungen Versand werden.
Definitionen Server-Benachrichtigungen
... // Enable zonetransfer to these HOSTs. allow-transfer { slavelist; }; ...
Hier werden die ACL-Gruppen verwendet, hinter denen sich die IP-Adresse befinden, auf die Server auf die ein Zonen-Transfer erlaubt ist. Hier beim Slave-Server, sollte der Slave-Server selbst eingetragen werden.
Definition der Slave-Server transfer IP-Adresse
... // Local address for zone transfers. transfer-source 192.168.0.10; ...
Hier wird die IP-Adresse festgelegt, mit der der Slave-Server den Zonen-Transfer durchführt (Empfänger IP-Adresse).
WICHTIG - Für einen Zonen-Transfer über eine weitere IP-Adresse, kann die Definition auch noch in der View, oder in der Zone angegeben werden !!!
Definition der gleichzeitig erlaubten Zonen-Transfers
...
// The maximum number of inbound zone transfers running concurrently.
transfers-in 999;
...
Der Standard-Wert liegt beim Transfer von 10 Zonen, was als Lastbeschränkung gedacht ist. Die Anzahl kann jedoch erhöht werden, was aber zu Lasten der Performance des Master-Servers und des Slave-Servers führen kann.
Definition eines TSIG-Schlüsses
... // TSIG ---------------------------------------------------------------- key "intra." { algorithm hmac-md5; secret "kfgHKkh27TApI3pD+z2GIB=="; }; ...
Dies ist die Definition eines TSIG-Schlüssels, welcher für bestimmte Konstellationen von Zonen-Transfers maßgeblich entscheidend ist!
WICHTIG - Der Einsatz eines TSIG-Schlüssels ist bei der hier vorgestellten Konstellation des Zonen-Transfers entscheidend und wird nachfolgend behandelt:
Definitionen der "Views"
... view "localhost" { // Only following clients can resolv the zone informations. match-clients { !key intra. ; "localhost"; }; ... view "dmz" { // Only following clients can resolv the zone informations. match-clients { !key intra. ; "dmz"; }; ... view "intra" { // Only following clients can resolv the zone informations. match-clients { key intra. ; "intra"; }; ... // Allow transfer for server with key. server 192.168.0.20 { keys intra. ; }; ...
WICHTIG - Es kommen unterschiedliche View-Definitionen zum Einsatz !!!
Bei den View-Definitionen
localhost
unddmz
kommt eine Definition zum Einsatz die einem Master-Server mit dem TSIG-Schlüssel
- intra.
den Zonen-Transfer - NICHT ERLAUBT !!!
... !key intra. ; ...
Bei der View-Definition
intra
kommt eine Definition zum Einsatz die einem Master-Server mit dem TSIG-Schlüssel
- intra.
den Zonen-Transfer - ERLAUBT !!!
... key intra. ; ...
WICHTIG - Die Definition des Master-Servers mit dem dazugehörigen Key - intra.
!!!
... server 192.168.0.20 { keys intra. ; };
Definitionen der "Zonen"
... zone "dmz.tachtler.net" IN { type slave; file "dynamic/slave/dmz.tachtler.net.zone.db"; masters { 192.168.0.20; }; }; ...
HINWEIS - Diese Definitionen gelten für alle Zonen, lediglich der
- Name der Zone - hier z.B.
dmz.tachtler.net
und die - Datei der Zone - hier z.B.
dynamic/master/dmz.tachtler.net.zone.db
sind entsprechend der einzelnen verwendeten Zonen unterschiedlich.
WICHTIG - Eine Besonderheit genießt jedoch die
- Zone -
intra.tachtler.net
bzw. dessen „reverse“ Auflösung
- Zone -
1.168.192.in-addr.arpa
Wie nachfolgend gezeigt, wird hier die Definition transfer-source
entsprechend angepasst:
... zone "intra.tachtler.net" IN { type slave; file "dynamic/slave/intra.tachtler.net.zone.db"; transfer-source 192.168.1.1; masters { 192.168.0.20; }; }; ... zone "1.168.192.in-addr.arpa" IN { type slave; file "dynamic/slave/1.168.192.zone.db"; transfer-source 192.168.1.1; masters { 192.168.0.20; }; ...
TSIG-Schlüssel
TSIG steht für (Transaction SIGnatures) und stellt eine Möglichkeit dar, die Kommunikation mithilfe eines Schlüssels weiter abzusichern.
Die Original-Dokumentation kann unter nachfolgendem externen Link eingesehen werden