named.conf Dateiformat für TCP/IP-BIND Version 9.4

Zweck

Legt die Konfiguration und das Verhalten des " named -Daemons fest.

Beschreibung

Die Datei " /etc/named.conf ist die Standardkonfigurationsdatei für die Daemons " named8 und " named9. Wenn der ' named -Daemon gestartet wird, ohne eine alternative Datei anzugeben, liest der ' named -Daemon diese Datei, um zu erfahren, wie der lokale Namenserver eingerichtet werden soll.

Das Format der " named.conf -Datei ist unterschiedlich, je nachdem, welche Version des " named -Servers konfiguriert ist. Die Dateiformatinformationen für " named8 und " named9 finden Sie unten.
Hinweis: Der ' named -Daemon liest die Konfigurationsdatei nur, wenn der ' named -Daemon startet oder wenn der ' named -Daemon einen SRC ' refresh -Befehl oder ein ' SIGHUP -Signal erhält.

Die Daten in der ' named.conf -Datei geben allgemeine Konfigurationsmerkmale für den Nameserver an, definieren jede Zone, für die der Nameserver zuständig ist (seine Autoritätszonen), und liefern weitere Konfigurationsinformationen pro Zone, möglicherweise einschließlich der Quelldatei der DOMAIN-Datenbank für die Zone.

Alle Datenbankdateien, auf die in der Datei " named.conf verwiesen wird, müssen im Standard Resource Record Format vorliegen. Diese Datendateien können einen beliebigen Namen und einen beliebigen Verzeichnispfad haben. Um die Pflege der " named atenbank zu erleichtern, werden sie jedoch im " /etc/named.extension -Format benannt. Das allgemeine Format der ' named -Datendateien ist in DOMAIN Data File, DOMAIN Reverse Data File, DOMAIN Cache File und DOMAIN Local File beschrieben.

Format der Datei " named.conf bei der Konfiguration von named8

Allgemein

Kommentare in der Datei " named.conf können mit einem Pfund-Zeichen (#), mit zwei Schrägstrichen (//) oder mit den C-Kommentarzeichen (/*, Kommentartext " */) eingeleitet werden.

Konfigurationsoptionen sind Textzeilen, die mit einem Schlüsselwort beginnen, möglicherweise einen Optionstext oder eine Liste enthalten und mit einem Semikolon (;) enden.

Die Datei " named.conf ist in Strophen unterteilt. Jede Zeilengruppe ist eine eingeschlossene Gruppe von Konfigurationsoptionen, die entweder allgemeine Merkmale des Dämons oder eine Zonenkonfiguration definieren. Bestimmte Zeilengruppendefinitionen sind nur auf der höchsten Ebene zulässig, daher ist die Verschachtelung dieser Zeilengruppen nicht zulässig. Die aktuellen Schlüsselwörter der Top-Level-Konfigurationsabschnitte sind:

Weitere Konfigurationsinformationen können über das Schlüsselwort " include in die Datei " conf aufgenommen werden. Dieses Schlüsselwort weist den Daemon an, den Inhalt der angegebenen Datei an der aktuellen Position der Richtlinie " include einzufügen.

Zugriffskontrollliste (ACL) Definition
acl acl-name {
    access-element;
    [ access-element; ... ]
};

Definiert eine Zugriffskontrollliste, auf die in der Konfigurationsdatei durch acl-name verwiesen wird. Es können mehrere ACL-Definitionen in einer Konfigurationsdatei vorhanden sein, wenn jeder ACL-Name eindeutig ist. Außerdem sind vier Standardzugriffssteuerungslisten definiert:

  • any: Jeder Host ist erlaubt.
  • none: Kein Host ist erlaubt.
  • localhost: Nur der localhost ist erlaubt.
  • localnets: Nur Hosts in einem Netzwerk, die zu einer Nameserver-Schnittstelle passen, sind erlaubt.
Tabelle 1. acl-Optionen
Option Werte Erläuterung
Zugriffselement IP-Adresse IP-Präfix ACL-Referenz Definiert eine Quelle als zulässig oder nicht zulässig. Innerhalb der acl-Stanza sind mehrere access-Elemente erlaubt.

Jedes Element kann eine IP-Adresse in Punktschreibweise (z. B. 9.3.149.66), ein IP-Präfix in CIDR- oder Schrägstrichschreibweise (z. B. 9.3.149/24) oder ein Verweis auf eine andere Zugangskontrollliste (z. B. " localhost) sein.

Außerdem gibt jedes Element an, ob der Zugriff auf das Element über ein! (Ausrufezeichen) Modifikator, der dem Element vorangestellt wird.

Beispiel:

acl hostlist1 {
    !9.53.150.239;
    9.3.149/24;
};

Wenn in der Konfiguration auf die Zugriffskontrollliste " hostlist1 verwiesen wird, bedeutet dies, dass der Zugriff von jedem Host, dessen IP-Adresse mit 9.3.149 beginnt, erlaubt und der Zugriff von dem Internet-Host 9.53.150.239 verboten ist.

Schlüssel Definition
key key-name {
    algorithm alg-id;
    secret secret-string;
};

Definiert einen Algorithmus und einen geheimen Schlüssel für gemeinsame Nutzung, auf den in einer Serverzeilengruppe verwiesen und der für die Authentifizierung durch diesen Namensserver verwendet wird. Dieses Feature ist für die zukünftige Verwendung eingeschlossen und wird derzeit im Namensserver nicht verwendet.

Tabelle 2. Optionen für die Schlüsseldefinition
Option Werte Erläuterung
algorithm alg-id Zeichenfolge Eine Zeichenfolge in Anführungszeichen, die den Typ des Sicherheitsalgorithmus definiert, der bei der Interpretation der geheimen Zeichenfolge verwendet wird. Derzeit sind keine definiert.
Geheimnis Zeichenfolge secret-string Eine Zeichenfolge in Anführungszeichen, die vom Algorithmus zur Authentifizierung des Hosts verwendet wird.
Konfiguration der Protokollierung
logging {

    [ channel channel-name {
       ( file file-name
             [ versions ( num-vers | unlimited ) ]
             [ size size-value ]
       | syslog ( kern | user | mail | daemon |
                  syslog | lpr | news | uucp )
       | null );
       [ print-category ( yes | no ); ]
       [ print-severity ( yes | no ); ]
       [ print-time ( yes | no ); ]
      }; ... ]
    [ category category-name {
          channel-reference;
          [ channel-reference; ... ]
      }; ... ]
};

In dieser neuesten Version des Namensservers wurde die Protokollierungseinrichtung erheblich verbessert, um eine Rekonfiguration des Standardprotokollierungsmechanismus zu ermöglichen. Die Stanza " logging wird verwendet, um die Ausgabekanäle für die Protokollierung zu definieren und die vordefinierten Protokollierungskategorien entweder mit den vordefinierten oder den benutzerdefinierten Ausgabekanälen für die Protokollierung zu verknüpfen.

Wenn in der Datei ' conf ' keine Logging Stanza enthalten ist, protokolliert der Nameserver weiterhin Meldungen und Fehler wie in früheren Versionen. Informationen und einige kritische Meldungen werden über den Syslog-Daemon protokolliert. Debug- und andere esoterische Informationen werden in der Datei " named.run protokolliert, wenn der globale Debug-Level (festgelegt mit der Befehlszeilenoption " -d ) ungleich Null ist.

Tabelle 3. Protokollierung Konfigurationsoptionen
Option Werte Erläuterung
Kanal Definiert einen Ausgabekanal, auf den später durch die Kennung channel-name verwiesen werden soll. Ein Ausgabekanal gibt ein Ziel für Ausgabenachrichten, die gesendet werden sollen, sowie einige Formatierungsangaben an, die beim Schreiben der Ausgabenachricht verwendet werden. Es können mehrere Ausgabekanal definiert werden, wenn jede Kanal-ID eindeutig ist. Außerdem kann jeder Ausgabekanal von mehreren Protokollierungskategorien referenziert werden.
Es gibt vier vordefinierte Ausgabekanäle:
  • Der Ausgabekanal " default_syslog sendet Info- und schwerwiegendere Meldungen an die Daemon-Einrichtung des Syslog.
  • Der ' default_debug -Ausgabekanal schreibt Debug-Meldungen in die ' named.run -Datei, wie durch den globalen Debug-Level festgelegt.
  • Der Ausgangskanal " default_stderr schreibt Info- und schwerwiegendere Meldungen an " stderr.
  • Der Ausgangskanal " null verwirft alle Nachrichten.
Datei Zeichenfolge file-name Definiert einen Ausgabekanal als einen, der Nachrichten in einer Ausgabedatei protokolliert. Die Datei, die für die Ausgabe verwendet wird, wird mit der Zeichenfolge dateiname angegeben. Zusätzlich ermöglicht die Option ' file ' die Steuerung der Anzahl der Versionen der Ausgabedatei, die aufbewahrt werden sollen, und die Größenbegrenzung, die die Ausgabedatei nicht überschreiten soll.

Die Ausgabepfade " file, " syslog und " null " schließen sich gegenseitig aus.

Versionen anzahl_versionen unlimited Gibt die Anzahl der alten Ausgabedateien an, die aufbewahrt werden müssen. Wenn eine Ausgabedatei erneut geöffnet wird, wird die vorhandene Ausgabedatei nicht ersetzt, sondern als alte Ausgabedatei mit der Erweiterung " .value gespeichert. Mit dem Wert num-versions kann man die Anzahl der alten Ausgabedateien begrenzen, die aufbewahrt werden sollen. Die Angabe des Schlüsselworts " unlimited bedeutet jedoch, dass alte Versionen der Ausgabedatei kontinuierlich gesammelt werden. Standardmäßig werden keine alten Versionen von Protokolldateien beibehalten.
size Größe-Wert Gibt die maximale Größe der von diesem Kanal verwendeten Protokolldatei an. Standardmäßig ist die Größe unbegrenzt. Wenn jedoch eine Größe konfiguriert ist, wird nach dem Schreiben von size-value Bytes in die Datei nichts mehr geschrieben, bis die Datei erneut geöffnet wird.

Akzeptierte Werte für size-value sind das Wort unlimited und Zahlen mit den Modifikatoren ' k, ' m oder ' g ', die Kilobyte, Megabyte bzw. Gigabyte angeben. So stehen beispielsweise " 1000k und " 1m für eintausend Kilobyte bzw. ein Megabyte.

syslog kern benutzer mail dämon auth syslog lpr news uucp Definiert einen Ausgabekanal als einen Kanal, der seine Nachrichten an den Syslog-Service umleitet. Die unterstützten Wertschlüsselwörter entsprechen den vom Syslog-Service protokollierten Funktionen.

Letztendlich definiert der Syslog-Dienst, welche empfangenen Nachrichten durch den Dienst protokolliert werden. Wenn also ein Kanal definiert wird, der seine Nachrichten an die " user des Syslog-Dienstes umleitet, würde dies nicht zu sichtbar protokollierten Nachrichten führen, wenn der Syslog-Dienst nicht so konfiguriert ist, dass er Nachrichten von dieser Einrichtung ausgibt.

Weitere Informationen über den Syslog-Dienst finden Sie unter dem Daemon ' syslogd.

Die Ausgabepfade " file, " syslog und " null " schließen sich gegenseitig aus.

null Definiert einen Ausgabekanal, über den alle Nachrichten gelöscht werden. Alle anderen Ausgabekanaloptionen sind für einen Ausgabekanal, dessen Ausgabepfad null ist, ungültig.
Schweregrad (Severity) Kritischer Fehler Warnhinweis Info Debug [ Stufe ] dynamisch Legt einen Schwellenwert für den Schweregrad der Meldung fest, die über den Ausgabekanal protokolliert werden soll. Obwohl diese Schweregraddefinitionen denen entsprechen, die vom Syslog-Service verwendet werden, steuern sie für den Namensserver auch die Ausgabe über Dateipfadkanäle. Nachrichten müssen die Bewertungsstufe erreichen oder überschreiten, damit sie über den Ausgabekanal protokolliert werden. Der Schweregrad ' dynamic gibt an, dass die globale Debug-Stufe des Namenservers (die beim Aufruf des Daemons mit dem Flag ' -d angegeben wird) steuert, welche Nachrichten durch den Ausgabekanal gehen.

Außerdem kann der Schweregrad ' debug einen Level-Modifikator angeben, der einen oberen Schwellenwert für Debug-Meldungen darstellt, wenn der Name-Server Debugging auf jedem Level aktiviert hat. Eine niedrigere Debugstufe gibt an, dass weniger Informationen über den Kanal protokolliert werden sollen. Es ist nicht notwendig, dass der globale Debug-Level den Wert des Debug-Levels erreicht oder überschreitet.

Bei Verwendung mit dem Ausgabepfad " syslog steuert die Syslog-Einrichtung letztlich, welche Schweregrade über den Syslog-Dienst protokolliert werden. Wenn der Syslog-Dienst beispielsweise so konfiguriert ist, dass er nur " daemon.info -Meldungen protokolliert, und der Name-Server so konfiguriert ist, dass er alle Debug-Meldungen an den Syslog-Dienst weiterleitet, filtert der Syslog-Dienst die Meldungen aus seinem Ausgabepfad.

druckkategorie druckpriorität druckzeit yes no Steuert das Format der Ausgabenachricht, wenn sie über den Ausgabepfad gesendet wird. Unabhängig davon, wie viele oder in welcher Reihenfolge diese Optionen innerhalb der Kanalzeilengruppe aufgelistet werden, wird der Nachricht der Text in einer Zeit-, Kategorie-oder Bewertungsreihenfolge vorangestellt.

Es folgt ein Beispiel für eine Nachricht, bei der alle drei " print- aktiviert sind:

28-Apr-1997 15:05:32.863 default: notice: Ready to answer queries.

Standardmäßig wird einer Ausgabenachricht kein zusätzlicher Text vorangestellt.

Hinweis: Wenn der Syslog-Dienst Meldungen protokolliert, stellt er dem Text der Meldung auch die Datums- und Zeitinformationen voran. So würde die Aktivierung von " print-time auf einem Kanal, der den Syslog-Ausgabepfad verwendet, dazu führen, dass der Syslog-Dienst eine Nachricht protokolliert, der zwei Datumsangaben vorangestellt sind.

Beachten Sie, dass

category Das Schlüsselwort " category definiert eine Stanza, die eine Protokollierungs- oder Nachrichtenkategorie mit vordefinierten oder benutzerdefinierten Ausgabekanälen verknüpft.
Standardmäßig sind die folgenden Kategorien definiert:
  • category default { default_syslog; default_debug; };
  • category panic { default_syslog; default_debug; };
Kategoriename default config parser queries lame-servers statistics panic update ncache xfer-in xfer-out db event-lib packet notify cname security os darauf warten load response-checks Der Kategoriename gibt an, welche Protokollierungskategorie den aufgelisteten Kanalreferenzenzugeordnet werden soll. Dies führt dazu, dass jeder Ausgabetext, der vom Namensserverdämon für diese Protokollierungskategorie generiert wird, über jeden der aufgelisteten Kanalreferenzen umgeleitet wird.

Die Kategorie " default umfasst alle Meldungen, die nicht in einer der aufgeführten Kategorien aufgeführt sind. Außerdem sind die Kategorien " insist und " panic mit Meldungen verbunden, die eine schwerwiegende Inkonsistenz im Zustand des Namenservers definieren. Die übrigen Kategorien definieren Nachrichten, die generiert werden, wenn bestimmte Funktionen des Namensservers verarbeitet werden. Die Kategorie " update wird beispielsweise für die Protokollierung von Fehlern oder Meldungen verwendet, die sich auf die Behandlung einer dynamischen Zonenaktualisierung beziehen, während die Kategorie " parser für die Protokollierung von Fehlern oder Meldungen beim Parsen der Datei " conf verwendet wird.

Kanalreferenz Verweist auf einen Kanalnamen, der zuvor in der Konfigurationsstaffel ' logging definiert wurde. Daher wird jede Nachricht, die dem definierten Kategorienamen zugeordnet ist, über jeden der definierten Kanalverweise protokolliert.
Globale Optionen
options {
    [ directory path-string; ]
    [ named-xfer path-string; ]
    [ dump-file path-string; ]
    [ pid-file path-string; ]
    [ statistics-file path-string; ]
    [ auth-nxdomain ( yes | no ); ]
    [ fake-iquery ( yes | no ); ]
    [ fetch-glue ( yes | no ); ]
    [ multiple-cnames ( yes | no ); ]
    [ notify ( yes | no ); ]
    [ recursion ( yes | no ); ]
    [ forward ( only | first ); ]
    [ forwarders { ipaddr; [...] }; ]
    [ check-names
       ( master|slave|response )
       ( warn|fail|ignore ); ]
    [ allow-query { access-element; [...] }; ]
    [ allow-transfer { access-element; [...] ); ]
    [ listen-on [ port port-num ] { access-element; [...] }; ... ]
    [ query-source [ address ( ipaddr|* ) ] [ port ( port|* ) ]; ]
    [ max-transfer-time-in seconds; ]
    [ transfer-format ( one-answer | many-answers ); ]
    [ transfers-in value; ]
    [ transfers-out value; ]
    [ transfers-per-ns value; ]
    [ coresize size-value; ]
    [ datasize size-value; ]
    [ files size-value; ]
    [ stacksize size-value; ]
    [ clean-interval value; ]
    [ interface-interval value; ]
    [ statistics-interval value; ]
    [ topology { access-element; [...] }; ]
};

Definiert viele global verfügbare Optionen zum Ändern grundlegender Merkmale des Namensservers.

Da einige der Optionen in dieser Konfigurationsstanze das Verhalten ändern können, wie der ' named -Daemon spätere Abschnitte der benannten Datei liest und interpretiert, wird dringend empfohlen, die ' options als erste Stanze in der Konfigurationsdatei aufzuführen.

Tabelle 4. Globale Optionen
Option Werte Standardwert
Verzeichnis
Gibt das Verzeichnis an, aus dem alle relativen Pfade verankert sind. Der Parameter Pfadzeichenfolge muss eine Zeichenfolge in Anführungszeichen sein. Um beispielsweise anzugeben, dass alle Zonendateien im Verzeichnis " /usr/local/named/data vorhanden sind, ohne jede Datei in den Zonendefinitionen aufzulisten, geben Sie das Verzeichnis der globalen Option wie folgt an: options { ' directory “/usr/local/named/data”; ' };
pfadzeichenfolge “.”
benannter-xfer
Gibt den Pfad und den Namen der ausführbaren Datei des Befehls " named-xfer an, der für eingehende Zonenübertragungen verwendet wird. Der Parameter path-string muss eine Zeichenkette in Anführungszeichen sein.
pfadzeichenfolge “/usr/sbin/named-xfer”
Speicherauszugsdatei
Gibt einen Dateinamen an, in den die Datenbank im Speicher entladen wird, wenn der ' named -Daemon ein ' SIGINT -Signal erhält.
pfadzeichenfolge “/usr/tmp/named_dump.db”
pid-datei
Gibt die Datei an, in die der ' named -Daemon seinen PID-Wert schreibt.
pfadzeichenfolge “/etc/named.pid”
Statistikdatei
Gibt die Datei an, an die der Namens-Server Betriebsstatistikdaten anhängt, wenn er das Signal SIGILL empfängt.
pfadzeichenfolge “/usr/tmp/named.stats”
auth-nxdomain
Steuert, ob der Server bei der Rückgabe einer ' NXDOMAIN autoritativ antworten soll.
ja nein yes
fake-iquery
Steuert, ob der Server auf veraltete ' IQUERY antworten soll.
ja nein no
fetch-glue
Steuert, ob der Server nach Glue-Datensätzen suchen soll, um sie in den zusätzlichen Abschnitt einer Abfrageantwort aufzunehmen.
ja nein yes
multiple-cnames
Steuert, ob der Server mehrere ' CNAME für einen Domainnamen in einer seiner Zonendatenbanken zulässt. Dieses Verfahren wird nicht empfohlen, aber eine Option bleibt aus Gründen der Abwärtskompatibilität bestehen.
ja nein no
notify
Steuert, ob der Nameserver ' NOTIFY -Nachrichten an seine Arbeitsserver sendet, wenn eine Zonenänderung festgestellt wird. Da die Arbeitsserver fast sofort auf die " NOTIFY -Meldung mit einer Anforderung zur Zonenübertragung antworten, wird die Zeitspanne, in der die Datenbanken in der Beziehung zwischen Controller und Worker nicht synchronisiert sind, begrenzt.
ja nein yes
Rekursion
Steuert, ob der Server versucht, Namen außerhalb seiner Domänen für den Client aufzulösen. Ist dieser Wert auf " no" gesetzt, sendet der Namenserver einen Verweis an den Client zurück, damit dieser die Suche nach dem Namen fortsetzen kann. In Verbindung mit der Option ' fetch-glue ' kann man die Datenmenge, die im Speicher-Cache des Namenservers wächst, einschränken.
ja nein yes
vor
Steuert, wie die Weiterleitung verwendet wird, wenn die Weiterleitung aktiviert ist. Bei der Einstellung " first" versucht der Nameserver, nach einem Namen zu suchen, wenn der weitergeleitete Host keine Antwort liefert. Bei der Einstellung " only versucht der Namenserver jedoch nicht, diese zusätzliche Arbeit zu leisten.
nur erste first
forwarders
Aktiviert die Verwendung der Abfrageweiterleitung beim Definieren eines Weiterleitungsnamensservers. Die Parameterliste ipaddr gibt die Hosts an, an die die Abfrage weitergeleitet werden soll, wenn sie nicht aus der lokalen Datenbank aufgelöst werden kann. Jede IP-Adresse ist eine Internetadresse in Standardpunktschreibweise.
ipaddr (empty list)
Prüfnamen
Steuert, wie der Namensserver nicht RFC-konforme Hostnamen und Domänennamen über jede seiner Operationsdomänen verarbeitet.

Das Schlüsselwort " master gibt an, wie mit missgebildeten Namen in einer Master-Zonendatei umzugehen ist. Das Schlüsselwort " slave gibt an, wie mit fehlerhaften Namen umzugehen ist, die von einem Controller-Server empfangen werden. Das Schlüsselwort " response gibt an, wie mit missgebildeten Namen, die als Antwort auf eine Abfrage eingehen, verfahren werden soll.

ignore weist den Server an, missgebildete Namen zu ignorieren und die normale Verarbeitung fortzusetzen. warn weist den Server an, den Administrator durch eine Protokollierung zu warnen, aber die normale Verarbeitung fortzusetzen. fail weist den Server an, den Namen vollständig abzulehnen. Für die Antworten auf Abfragen bedeutet dies, dass der Server eine " REFUSED -Nachricht an den ursprünglichen Abfragehost zurückschickt.

Master ignorieren Master Warnung Master Fehler Slave ignorieren Slave Warnung Slave Fehler Antwort ignorieren Antwort Warnung Antwort fehlgeschlagen master fail slave warn response ignore
Tabelle 5. Globale Optionen Fortsetzung
Option Werte Standardwert
allow-query
Begrenzt den Bereich der abfragenden Hosts, die auf das System zugreifen dürfen. Jedes access-element wird auf dieselbe Weise angegeben wie in der zuvor definierten Zeilengruppe acl .
Zugriffselement any
allow-transfer
Begrenzt den Bereich der abfragenden Hosts, die Zonentransfers anfordern. Jedes access-element wird auf dieselbe Weise angegeben wie in der zuvor definierten Zeilengruppe acl .
Zugriffselement any
listen-on
Begrenzt die Schnittstellen, die für den Namensserverdämon verfügbar sind, und steuert, welcher Port für den Empfang von Abfragen verwendet werden soll. Standardmäßig verwendet der Namensserver alle Schnittstellen im System und ist an Port 53 empfangsbereit. Außerdem sind mehrere " listen-on innerhalb der " options zulässig.

Jedes Zugriffselement wird auf dieselbe Weise angegeben wie in der zuvor definierten ACL-Zeilengruppe. Das folgende Beispiel beschränkt den Namensserver auf die Verwendung nur der Schnittstelle mit der Adresse 9.53.150.239:

listen-on port 53 { 9.53.150.239; };
port Portnummer access-element port 53 { localhost; }
query-source
Ändert die Standardadresse und den Standardport, von denen Abfragen stammen.
Adresse ipaddr address * port Port * address * port *
max-transfer-time-in
Gibt an, wie lange eine eingehende Zonenübertragung ausgeführt werden darf, bevor sie abgebrochen wird. Wird zur Steuerung eines Ereignisses verwendet, bei dem ein untergeordneter Prozess des Namensservers nicht ordnungsgemäß ausgeführt oder beendet wird.
Sekunden 120
transfer-format
Steuert die Methode, mit der vollständige Zonenübertragungen an Anforderer gesendet werden. Die Methode " one-answer verwendet ein Paket pro Zonenressourcendatensatz, während " many-answers so viele Ressourcendatensätze wie möglich in ein Paket einfügt. Die Methode " many-answers ist zwar effizienter, wird aber nur von den neuesten Revisionen des Namenservers verstanden. Diese Option kann in der ' server Stanza überschrieben werden, um die Methode für jeden Nameserver einzeln festzulegen.
One-Answer Viele-Antworten many-answers
transfers-in
Gibt die maximale Anzahl gleichzeitiger eingehender Zonenübertragungen an. Dadurch wird zwar die Zeit begrenzt, die jede Slavezone nicht mehr mit der Datenbank des Controllers synchron ist, da jede eingehende Übertragung in einem separaten untergeordneten Prozess ausgeführt wird. Eine Erhöhung des Werts kann jedoch auch die Arbeitslast auf dem Worker-Server erhöhen.
Wert 10
transfers-out
Gibt die maximale Anzahl gleichzeitig abgehender Zonenübertragungen für den Namensserver an. Diese Option wird derzeit auf dem Server nicht verwendet, ist aber zu einer späteren Zeit verfügbar.
Wert N/A
transfers-per-ns
Gibt die maximale Anzahl gleichzeitiger Zonenübertragungen von einem bestimmten fernen Name-Server an. Dies begrenzt zwar die Zeit, die jede Slavezone nicht mehr mit der Datenbank des Controllers synchronisiert ist, aber eine Erhöhung dieses Werts kann die Arbeitslast auf dem fernen Controller-Server erhöhen.
Wert 2
coresize
Konfiguriert einige prozessspezifische Werte für den Dämon.

Die Standardwerte oder die vom System und von den Systemressourcen übernommenen Werte.

Jeder Größenwert kann als Zahl oder als Zahl gefolgt von den Modifikatoren " k, " m und " g angegeben werden, die Kilobyte, Megabyte bzw. Gigabyte bezeichnen.

Größe-Wert default
datasize
Siehe ' coresize.
Größe-Wert default
Dateien
Siehe ' coresize.
Wert unlimited
stacksize
Siehe ' coresize.
Größe-Wert default
bereinigungsintervall
Steuert die Intervalle für die regelmäßigen Verwaltungstasks des Namensservers.

Der ' clean-interval gibt an, wie häufig der Server abgelaufene Ressourceneinträge aus dem Cache entfernt. Der " interface-interval gibt an, wie häufig der Server nach Schnittstellen im System sucht. Der ' statistics-interval gibt an, wie häufig der Nameserver Statistikdaten ausgibt.

Der Wert null für Minuten gibt an, dass die Service-Task nur ausgeführt werden soll, wenn die Konfigurationsdatei erneut gelesen wird.

Minuten 60
interface-interval
Siehe ' clean-interval.
Minuten 60
statistics-interval
Siehe ' clean-interval.
Minuten 60
cleandb-time
Gibt eine Tageszeit an, zu der die Datenbank durchsucht wird und alle dynamischen Datensätze, deren " SIG alle abgelaufen sind, entfernt werden. Bei einer dynamischen Zone, bei der " update-security auf " presecured eingestellt ist, bleibt nur der abgelaufene " SIG KEY übrig.

Standardmäßig wird dieser Scan nie ausgeführt. Stattdessen verbleiben die abgelaufenen Datensätze, bis der Name abgefragt wird.

die Zeit wird als " HH:MM im 24-Stunden-Format angegeben.

Zeit N/A
Topologie
Gibt eine Suchreihenfolge an, die verwendet werden soll, um eine Vorgabe in einer Liste von Adressen zu suchen, die einem Namensserver entsprechen Wenn eine Abfrage weitergeleitet wird oder eine Abfrage an einen anderen Namensserver abgesetzt werden muss, kann es erforderlich sein, eine Adresse aus einer Liste verfügbarer Adressen auszuwählen.

Jedes access-element, das scheinbar den in einer Zeilengruppe acl angegebenen Elementen ähnelt, wird durch seine Position in der Liste interpretiert. Die ersten Elemente in der Liste werden mehr bevorzugt als die nachfolgenden. Negierte Elemente (die mit dem! (Ausrufezeichen) werden als am wenigsten wünschenswert angesehen.

Zugriffselement localhost; localnets;
Serverspezifische Optionen
server ipaddr
{
    [ bogus ( yes | no ); ]
    [ transfers value;
]
    [ transfer-format ( one-answer |
many-answers ); ]
}

Ändert das Verhalten, in dem der ferne Namensserver, der mit der angegebenen IP-Adresse übereinstimmt, behandelt werden soll.

Tabelle 6. Serverspezifische Optionen
Option Werte Erläuterung
bogus ja nein Gibt an, dass der durch die Zeilengruppe angegebene Namensserver nicht erneut verwendet wird. Der Standardwert ist no.
Übertragungen Wert Setzt die global verfügbare Option " transfers-per-ns außer Kraft. Gibt einen Höchstwert für die Anzahl der gleichzeitigen eingehenden Zonentransfers von dem durch die Stanza identifizierten ausländischen Nameserver an.
transfer-format One-Answer Viele-Antworten Überschreibt die global verfügbare Option ' transfer-format mit einem spezifischen Wert für den angegebenen Server. Die Option " transfer-format gibt dem Nameserver an, wie er seine ausgehenden vollständigen Zonentransfers gestalten soll. Standardmäßig wird der Wert aus der options stanza übernommen (wo er standardmäßig auf " many-answers steht). one-answer gibt an, dass während der Zonenübertragung nur ein Ressourcendatensatz pro Paket gesendet werden kann, während ' many-answers angibt, dass das ausgehende Paket vollständig mit Ressourcendatensätzen gefüllt werden soll. Das Format " many-answers ist nur in den neuesten Versionen des Nameservers verfügbar.
Zonendefinition
zone domain-string [ class ] {
    type ( hint | stub | slave | master );
    [ file path-string; ]
    [ masters { ipaddr; [...] }; ]
    [ check-names ( warn | fail | ignore ); ]
    [ allow-update { access-element; [...] }; ]
    [ update-security ( unsecured | presecured | controlled ); ]
    [ allow-query { access-element; [...] }; ]
    [ allow-transfer { access-element; [...] }; ]
    [ max-transfer-time-in seconds; ]
    [ notify ( yes | no ); ]
    [ also-notify { ipaddr; [...] }; ]
    [ dont-notify { ipaddr; [...] }; ]
    [ notify-delaytime seconds; ]
    [ notify-retrytime seconds; ]
    [ notify-retrycount value; ]
    [ dump-interval seconds; ]
    [ incr-interval seconds; ]
    [ deferupdcnt value; ]
    [ key-xfer ( yes | no ); ]
    [ timesync ( yes | no ); ]
    [ timesync-xfer ( yes | no ); ]
    [ save-backups ( yes | no ); ]
    [ ixfr-directory path-string; ]
    [ separate-dynamic ( yes | no ); ]
};

Die Zonengruppe wird verwendet, um eine Zone, ihren Typ, die mögliche Position von Daten und Betriebsparameter zu definieren. Die Domänenzeichenfolge ist eine Zeichenfolge in Anführungszeichen, die die Zone angibt, wobei "." wird zur Angabe der Stammzone verwendet. Der Parameter " class" gibt die Klasse des Gebiets als " in, " hs, " hesiod oder " chaos an. Standardmäßig wird die Klasse als " IN angenommen.

Tabelle 7. Zonendefinitionen
Option und Beschreibung Werte Standardwert
Typ
Definiert den Typ der Zone. hint, die bisher als Cache-Zonen galten, beschreiben nur eine Quelle für Informationen, die in den anderen definierten Zonen nicht enthalten sind. Ein " stub ist einem " slave ähnlich. Während die Zone " slave die gesamte Datenbank ihres Controllers repliziert, repliziert die Zone " stub nur die Ressourcendatensätze von " NS. Die Zone " master verwaltet eine Datenbank auf der Festplatte.

Basierend auf der Auswahl des Zonentyps sind einige der anderen Optionen erforderlich, während andere möglicherweise unempfindlich sind. Für die Zonen des Typs " hint und " master ist die Option " file erforderlich, für die Zonen des Typs " slave und " stub die Option " masters. Außerdem ist die einzige andere Option, die für eine Hinweiszone zur Verfügung steht, die Option " check-names.

Tipp-Stub-Slave-Master N/A
Datei
Gibt die Position für die Datenquelle an, die für die Zone spezifisch ist. Dieser Parameter ist nur für die Zonen " stub und " slave optional, wo seine Angabe bedeutet, dass eine lokal gespeicherte Kopie der entfernten Zone beibehalten werden kann. Der Parameter path-string ist eine Zeichenkette in Anführungszeichen, die den Dateinamen entweder nicht-relativ oder relativ zu " directory in der Stanza " options " angeben kann. Wenn der Pfad relativ zum Stammverzeichnis des Servers angegeben werden soll, muss die Stanza " options vor der Stanza "zone" angegeben werden.
pfadzeichenfolge N/A
Master
Gibt eine Liste von Quellen an, die für eine " slave oder " stub referenziert werden, um deren Daten abzurufen. Diese Option ist für keinen anderen Zonentyp gültig und muss für einen dieser beiden Typen eingeschlossen werden.
ipaddr N/A
Prüfnamen
Überschreibt die Option " check-names in der globalen Stanza " options. Der Standardwert wird von der Stanza " options geerbt, wo der Standardwert " fail für " master und " warn für " slave ist.
Warnung, Fehler ignorieren
Zulassen-Aktualisieren
Gibt an, von welchen Quellenadressen eine Zone dynamische Aktualisierungen akzeptiert. die Zugriffselemente werden auf die gleiche Weise wie bei der Stanza " acl angegeben. Aufgrund der inhärenten Unsicherheit einer dynamischen Aktualisierung ist dieser Wert standardmäßig auf " none eingestellt. Wenn kein " update-security angegeben wird, sollten dynamische Aktualisierungen auf eine bestimmte Gruppe gesicherter Rechner beschränkt werden.
Zugriffselement none
aktualisierungs-sicherheit
Gültig nur, wenn die Option " allow-update mindestens eine Quelladresse angibt; " update-security legt fest, welche Art von gesichertem Aktualisierungsmechanismus die Zone verwendet. Die aktuelle Sicherheitsmethode für die Zonenaktualisierung ist eine vom Standard abweichende Methode mit zwei Schlüsseln, aber mit früheren Releases des Namensservers kompatibel.

presecured zeigt an, dass eine Zone nur Aktualisierungen akzeptiert, für die Namen und Ressourcendatensätze vorhanden sind, es sei denn, die Aktualisierung ist durch den autorisierenden Schlüssel der Zone signiert. Normalerweise bedeutet dies, dass die Zone vorab mit den Namen und Datensätzen gefüllt werden muss, die sie verwalten soll. controlled gibt eine Zone an, in der Namen ohne die Signatur des autorisierenden Schlüssels der Zone zur Datenbank hinzugefügt werden können, aber bestehende Datensätze können nicht geändert werden, ohne mit dem entsprechenden privaten Schlüssel des Ressourcendatensatzes " KEY signiert zu sein.

Hinweis: Eine richtige Zone " presecured oder " controlled muss einen Ressourcendatensatz der Zone " KEY enthalten.

Weitere Informationen zur Sicherheit von Zonen-Updates finden Sie auf der Seite TCP/IP-Namensauflösung.

Nicht gesicherte, vorgesicherte, gesteuerte unsecured
allow-query
Setzt die global verfügbare Option " allow-query außer Kraft. Der Standardwert dieser Option wird von der globalen Stanza " options geerbt, deren Standardwert " any ist.
Zugriffselement Nicht zutreffend
allow-transfer
Setzt die global verfügbare Option " allow-transfer außer Kraft. Der Standardwert dieser Option wird von der globalen Stanza " options geerbt, deren Standardwert " any ist.
Zugriffselement Nicht zutreffend
max-transfer-time-in
Setzt die global verfügbare Option " max-transfer-time-in außer Kraft. Der Standardwert dieser Option wird von der globalen Stanza " options geerbt, deren Standardwert " 120 ist.
Sekunden
notify
Setzt die global verfügbare Option " notify außer Kraft. Der Standardwert dieser Option wird von der globalen Stanza " options geerbt, deren Standardwert " yes ist.
ja nein
auch-benachrichtigen
Der standardmäßige " NOTIFY -Mechanismus benachrichtigt Arbeitsserver über eine Änderung in der DOMAIN-Datenbank, um die Zeitspanne zu begrenzen, in der der Arbeitsserver eine Zone außerhalb der Synchronisation mit dem Controller-Server behält. Die Option " also-notify ermöglicht das Hinzufügen von Adressen zur Übermittlung der Meldungen.
ipaddr N/A
Nicht benachrichtigen
Gibt eine Liste von IP-Adressen an, die aus der Standardliste der " NOTIFY entfernt werden sollen. Diese Option ist nützlich, wenn ein Nameserver dafür bekannt ist, dass er beim Empfang von " NOTIFY problematisch ist.
ipaddr N/A
notify-Verzögerungszeit
Gibt eine geschätzte Verzögerungszeit zwischen Benachrichtigungen an mehrere Namensserver an. Da der Empfang einer " NOTIFY -Meldung in der Regel die sofortige Anforderung eines Zonentransfers auslöst, kann diese Option eine Latenzzeit bewirken, in der jeder Server mit der Anforderung der geänderten Zone antwortet.

Der verwendete reale Wert wird zwischen der angegebenen Anzahl von Sekunden und dem doppelten Wert randomisiert.

Sekunden 30
Benachrichtigungswiederholungszeit
Gibt die Anzahl der Sekunden an, die der Nameserver wartet, um eine nicht beantwortete " NOTIFY -Nachricht erneut zu senden.
Sekunden 60
Benachrichtigung-Wiederholungszähler
Gibt die maximale Anzahl der Versuche an, die der Nameserver unternimmt, um unbeantwortete ' NOTIFY -Meldungen an andere Nameserver zu senden.
Wert 3
Speicherauszugsintervall
Gibt ein Intervall an, in dem der Nameserver eine dynamische Zone in die Zone " file umschreibt. In der Zwischenzeit werden alle Aktualisierungen und sonstigen Transaktionen aus Leistungsgründen in der Transaktionsprotokolldatei protokolliert. Abgesehen von diesem periodischen Zonenspeicherauszug wird die Transaktionsprotokolldatei nur gelöscht und die Zone wird nur ausgegeben, wenn der Namensserver ordnungsgemäß heruntergefahren wird.

Diese Option ist nur für Zonen gültig, in denen die Option " allow-update mindestens einen gültigen Accessor angibt.

Hinweis: Der Name der Transaktionsprotokolldatei ist der Name der Zonendatei mit der angehängten Erweiterung " .log.
Sekunden 3600
Incr-Intervall
Legt ein Intervall fest, in dem der Nameserver dynamische Aktualisierungen akzeptiert, ohne die Serienstufe des ' SOA der Zone zu erhöhen. Da eine Änderung des Zonendatensatzes " SOA eine " NOTIFY -Nachricht auslöst, wird durch die Begrenzung dieses Vorgangs die Anzahl der Zonentransferanfragen auf Kosten minimaler Zonenunterschiede zwischen einem dynamischen Kontrollserver und seinem Arbeitsserver begrenzt.

Diese Option ist nur für Zonen gültig, in denen die Option " allow-update mindestens einen gültigen Accessor angibt.

Sekunden 300
Deferupdcnt
Legt einen Schwellenwert für die Anzahl der ordnungsgemäß durchgeführten Aktualisierungen fest, die während eines " incr-interval -Intervalls empfangen werden. Wenn während des Intervalls mehr als ein Wert aktualisiert wird, ändert der Nameserver die serielle SOA-Ebene der Zone und benachrichtigt später jeden der Arbeitsserver. Verwenden Sie diesen Wert, um die Inkonsistenzen bei der Datenbankreplikation in einer Umgebung zu begrenzen, in der dynamische Zonenaktualisierungen selten, aber in großem Ausmaß auftreten.

Diese Option ist nur für Zonen gültig, in denen die Option " allow-update mindestens einen gültigen Accessor angibt.

Wert 100
Schlüsselxfer
Gibt an, ob der Server während eines Zonentransfers ' KEY übertragen soll. In einer sehr kontrollierten Umgebung, in der ' KEY -Abfragen nur an den Nameserver des Controllers gestellt werden, spart die Einstellung dieser Option auf ' no Zeit bei der Zonenübertragung und verbessert die Leistung.
ja nein yes
Timesync
Gibt an, dass ein Nameserver die tatsächliche Ablaufzeit eines ' SIG anhand seiner eigenen Uhr berechnen soll, anstatt sich auf die von einer möglichen Aktualisierungsquelle festgelegte Ablaufzeit zu verlassen. Dadurch werden die Inkonsistenzen entfernt, die auftreten, wenn die Systemuhren von dynamischen Zonenaktualisierungsfunktionen auf dem Host des Namensservers falsch ausgerichtet sind. Da die Aktivierung dieser Option die Ausgabe und Interpretation eines " SIG in einer " DOMAIN -Datenbankdatei verändert, kann die Deaktivierung dieser Option erforderlich sein, wenn eine " DOMAIN atenbankdatei manuell auf einen anderen Nameserver übertragen wird.
ja nein yes
Timesync-xfer
Gibt an, welche Ablaufzeit des Ressourcendatensatzes ' SIG bei einer Zonenübertragung übertragen wird. Die Aktivierung dieser Option ist nur gültig, wenn die Option " timesync aktiviert ist.
ja nein yes
ixfr-Verzeichnis
Gibt ein Verzeichnis an, in dem temporäre Datendateien für diese Zone enthalten sind. Die Datendateien enthalten inkrementelle Zonenänderungen und sind für die ordnungsgemäße Anwendung der Methode der inkrementellen Zonenübertragung (IXFR) unerlässlich. Da diese Dateien vom Namensserver dynamisch erstellt und gelöscht werden, darf kein global beschreibbares Verzeichnis angegeben werden. Außerdem muss sich das angegebene Verzeichnis von anderen " ixfr-directory, die in anderen Zonen angegeben sind, unterscheiden.

Der Standardwert für dieses Verzeichnis wird aus dem " file -Namen oder dem Domänennamen der Zone abgeleitet. Standardmäßig wird ein Verzeichnis in einem Verzeichnis "ixfrdata" innerhalb des Standardverzeichnisses des Namenservers erstellt. In diesem Verzeichnis befinden sich Unterverzeichnisse, die dem Basisnamen des " file -Namens der Zone oder dem Domänennamen entsprechen.

Es ist nicht notwendig, diese Option anzugeben, damit sich das Merkmal " IXFR richtig verhält.

pfadzeichenfolge
Sicherungssicherungen
Zur ordnungsgemäßen Berechnung einer inkrementellen Zonendifferenz zwischen Serveraufrufen ist es erforderlich, die Zonendatenbankunterschiede vor dem Herunterfahren des Servers und nach dem Laden des Servers zu ermitteln. Wenn Sie diese Option aktivieren, wird beim Laden des Namensservers eine Sicherung der Zonendatei geschrieben und gelesen, um Zonenunterschiede zu ermitteln.

Während die Aktivierung dieser Option notwendig ist, um die IXFR-Übertragungsmethode nach einem Stopp- und Neustart-Übergang des Nameservers zu verwenden, ist es nicht notwendig, inkrementelle Zonenunterschiede zu realisieren, wenn eine Zonendatei geändert und durch den SRC-Befehl ' refresh oder das ' SIGHUP -Signal zum Neuladen signalisiert wird.

ja nein no
separate-dynamische
Weist den Nameserver an, ' $INCLUDE in einer dynamischen Zone beizubehalten, wenn die ' DOMAIN -Datenbankdatei auf die Festplatte geschrieben wird. Das Verhalten dieser Funktion impliziert, dass Ressourcendatensätze, die durch den dynamischen Aktualisierungsmechanismus geändert werden können, in der " DOMAIN -Datenbankdatei vorhanden sind, auf die die " file verweist, während andere Ressourcendatensätze, die nicht durch den dynamischen Aktualisierungsmechanismus geändert werden sollten, in Dateien enthalten sind, die (durch die " $INCLUDE -Direktive) von der " DOMAIN atenbankdatei aufgenommen werden.
ja nein no

Beispiele

Die folgenden Beispiele zeigen einige der verschiedenen Methoden, die zur Konfiguration einer einfachen Datei " named.conf verwendet werden können. In diesen Beispielen werden zwei Netze dargestellt: " abc und " xyz.

Das Netz " abc besteht aus:

  • gobi.abc, der Namensserver des Controllers für das Netz ' abc, 192.9.201.2
  • mojave.abc, ein Host-Rechner, 192.9.201.6
  • sandy.abc, ein Worker-Name-Server für das Netz ' abc und das Gateway zwischen ' abc und ' xyz, 192.9.201.3

Das Netz " xyz besteht aus:

  • kalahari.xyz, Controller-Nameserver für das Netz ' xyz, 160.9.201.4
  • lopnor.xyz, ein Host-Rechner, 160.9.201.5
  • sahara.xyz, ein Host-Rechner und Hint-Name-Server für das Netz ' xyz, 160.9.201.13
  • sandy.xyz, ein Worker-Name-Server für das ' xyz -Netz und Gateway zwischen ' abc und ' xyz, 160.9.201.3
    Hinweis: " sandy, ein Gateway-Host, befindet sich in beiden Netzen und dient auch als Worker-Name-Server für beide Domänen.
  1. Die Datei " /etc/named.conf für " gobi.abc, den Controller-Nameserver für das Netz " abc, enthält diese Einträge:
    # # conf file for abc controller server - gobi.abc # server 192.9.201.3 { transfer-format many-answers; }; 
    zone “abc” in { type master; file “/etc/named.abcdata”; allow-update { localhost; }; }; 
    zone “201.9.192.in-addr.arpa” in { type master; file “/etc/named.abcrev”; allow-update { localhost; }; };
    zone “0.0.127.in-addr.arpa” in { type master; file “/etc/named.abclocal”; };
  2. Die Datei " /etc/named.conf für " kalahari.xyz, den Controller-Nameserver für das Netz " xyz, enthält diese Einträge:
     # # conf file for abc controller server - kalahari.xyz # acl xyz-slaves { 160.9.201.3; }; 
    options { directory “/etc”; allow-transfer { xyz-slaves; localhost; }; };
    zone “xyz” in { type master; file “named.xyzdata”; }; 
    zone “9.160.in-addr.arpa” in { type master; file “named.xyxrev”; };
    zone “0.0.127.in-addr.arpa” in { type master; file “named.xyzlocal”; };
  3. Die Datei " /etc/named.conf für " sandy, den Controller-Nameserver für die Netze " abc und " xyz, enthält die folgenden Einträge:
    # # conf file for worker server for abc and xyz - sandy # options { directory “/etc”; };
    zone “abc” in { type slave; masters { 192.9.201.2; }; file “named.abcdata.bak”; };
    zone “xyz” in { type slave; masters { 160.9.201.4; }; file “named.xyzdata.bak”; }; 
    zone “201.9.192.in-addr.arpa” in { type slave; masters { 192.9.201.2; }; };
    zone “9.160.in-addr.arpa” in { type slave; masters { 192.9.201.4; }; }; 
     zone “0.0.127.in-addr.arpa” in { type master; file “named.local”; };
  4. Die Datei " /etc/named.conf für " sahara, einen Hint-Nameserver für das Netz " xyz, enthält die folgenden Einträge:
    # # conf file for hint server for xyz - sahara # zone “.” in { type hint; file “/etc/named.ca”; };
    zone “0.0.127.in-addr.arpa” in { type master; file “/etc/named.local”; };

Format der Datei " named.conf bei der Konfiguration von " named9

Allgemein

Eine BIND 9-Konfiguration besteht aus Anweisungen und Kommentaren. Anweisungen enden mit einem Semikolon. Anweisungen und Kommentare sind die einzigen Elemente, die ohne geschweifte Klammern angezeigt werden können. Viele Anweisungen enthalten einen Block von Unteranweisungen, die ebenfalls mit einem Semikolon beendet werden.

Die folgenden Anweisungen werden unterstützt:
Tabelle 8. Unterstützte Anweisung
Element Beschreibung
acl Definiert eine benannte IP-Adressabgleichsliste für die Zugriffssteuerung und andere Verwendungszwecke
controls Deklariert Kontrollkanäle, die vom rndc-Dienstprogramm verwendet werden sollen.
include Schließt eine Datei ein
key Gibt Schlüsselinformationen für die Authentifizierung und Berechtigung mit TSIG an.
logging Gibt an, was der Server protokolliert und wohin die Protokollnachrichten gesendet werden.
options Steuert globale Serverkonfigurationsoptionen und legt Standardwerte für andere Anweisungen fest.
server Legt bestimmte Konfigurationsoptionen auf Serverbasis fest.
trusted-keys Definiert vertrauenswürdige DNSSEC-Schlüssel.
view Definiert eine Ansicht.
zone Definiert eine Zone.

Die Anweisungen " logging und " options dürfen nur einmal pro Konfiguration vorkommen.

acl-Anweisung Grammatik
acl acl-name { 
    address_match_list 
};
acl-Anweisung Definition und Verwendung

Die Anweisung ' acl ordnet einer Adressabgleichsliste einen symbolischen Namen zu. Der Name wird aus einer primären Verwendung von Adressübereinstimmungslisten abgerufen: Zugriffssteuerungslisten (ACLs).

Beachten Sie, dass der Name einer Adressabgleichsliste mit " acl definiert werden muss, bevor er an anderer Stelle verwendet werden kann; Vorwärtsverweise sind nicht zulässig.

Die folgenden ACLs sind integriert:
Tabelle 9. Eingebaute ACLs
Element Beschreibung
any Stimmt mit allen Hosts überein
none Stimmt mit keinem Host überein.
localhost Stimmt mit den IPv4 -Adressen aller Netzschnittstellen auf dem System überein
localnets Gleicht jeden Host in einem IPv4 -Netz ab, für den das System über eine Schnittstelle verfügt.
Die ACLs " localhost und " localnets unterstützen derzeit IPv6 nicht (d. h. " localhost stimmt nicht mit den IPv6 des Hosts überein, und " localnets stimmt nicht mit den angeschlossenen IPv6 des Hosts überein), da es keine Standardmethode zur Ermittlung des vollständigen Satzes lokaler IPv6 für einen Host gibt.
kontrollen Erklärung Grammatik
controls {
   inet ( ip_addr | * ) [ port ip_port ] allow {  address_match_list  }
                keys {  key_list  };
   [ inet ...; ]
};
kontrollen Erklärung Definition und Verwendung

Die ' controls -Anweisung deklariert Kontrollkanäle, die von Systemadministratoren verwendet werden, um den Betrieb des lokalen Nameservers zu beeinflussen. Diese Kontrollkanäle werden vom Dienstprogramm " rndc verwendet, um Befehle an einen Nameserver zu senden und Nicht-DNS-Ergebnisse von ihm abzurufen.

Ein " inet ontrollkanal ist ein für das Internet zugänglicher TCP/IP-Socket, der unter dem angegebenen " ip_port auf dem angegebenen " ip_addr eingerichtet wurde. Wenn kein Port angegeben wird, wird standardmäßig Port 953 verwendet. Ein Sternchen (*) kann nicht für " ip_port verwendet werden.

Die Möglichkeit, Befehle über den Steuerkanal zu erteilen, wird durch die Klauseln " allow und " keys eingeschränkt. Verbindungen zum Steuerkanal werden auf der Grundlage der in " address_match_list angegebenen Adresserlaubnis zugelassen. Die " key_id -Mitglieder des " address_match_list werden ignoriert und stattdessen unabhängig auf der Grundlage des " key_list interpretiert. Jeder " key_id im " key_list kann zur Authentifizierung von Befehlen und Antworten verwendet werden, die über den Kontrollkanal gegeben werden, indem jede Nachricht zwischen dem Server und einem Befehls-Client digital signiert wird. Alle Befehle für den Steuerkanal müssen mit einem der angegebenen Schlüssel signiert werden, damit sie berücksichtigt werden.

Wenn keine Kontrollanweisung vorhanden ist, richtet ' named9 einen Standard-Kontrollkanal ein, der die Loopback-Adresse 127.0.0.1 und ihr IPv6::1 abhört. In diesem Fall und auch dann, wenn die Anweisung controls vorhanden ist, aber keine keys-Klausel enthält, versucht ' named9, den Schlüssel des Befehlskanals aus der Datei ' /etc/rndc.key zu laden (oder als was auch immer ' sysconfdir beim Erstellen von BIND angegeben wurde). Um eine Datei " rndc.key zu erstellen, führen Sie den Befehl " rndc-confgen -a aus.

Die Funktion " rndc.key wurde geschaffen, um den Übergang von Systemen von BIND 8 zu erleichtern, das keine digitalen Signaturen für seine Befehlskanalnachrichten und somit keine Schlüsselklausel hatte. Damit ist es möglich, eine bestehende BIND 8-Konfigurationsdatei unverändert in BIND 9 zu verwenden und " rndc auf die gleiche Weise funktionieren zu lassen wie " ndc in BIND 8, indem man einfach den Befehl " rndc-keygen -a ausführt, nachdem BIND 9 installiert wurde.

Da die " rndc.key -Funktion nur die abwärtskompatible Verwendung von BIND 8-Konfigurationsdateien ermöglichen soll, ist diese Funktion nicht sehr konfigurierbar. Sie können den Namen des Schlüssels oder die Größe des Geheimnisses nicht einfach ändern, daher sollten Sie einen " rndc.conf mit Ihrem eigenen Schlüssel erstellen, wenn Sie diese Dinge ändern möchten. Für die Datei " rndc.key sind die Berechtigungen ebenfalls so eingestellt, dass nur der Eigentümer der Datei (der Benutzer, unter dem named läuft) darauf zugreifen kann. Wenn Sie anderen Benutzern den Zugriff auf " rndc -Befehle erlauben wollen, müssen Sie einen " rndc.conf erstellen und ihn für eine Gruppe lesbar machen, die die Benutzer enthält, die Zugriff haben sollen. Der UNIX-Kontrollkanaltyp von BIND 8 wird in BIND 9 nicht unterstützt. Wenn sie in der Steueranweisung aus einer BIND 8-Konfigurationsdatei vorhanden ist, wird sie ignoriert und eine Warnung protokolliert.

erklärung einschließen Grammatik
include filename;
include statement Definition und Verwendung

Die Anweisung " include fügt die angegebene Datei an der Stelle ein, an der die Anweisung " include auftaucht. Die Anweisung ' include erleichtert die Verwaltung von Konfigurationsdateien, indem sie das Lesen oder Schreiben einiger Dinge erlaubt, anderer aber nicht. Die Anweisung könnte zum Beispiel private Schlüssel enthalten, die nur von einem Namensserver gelesen werden können.

kernaussage Grammatik
key key_id {
    algorithm string;
    secret string;
};
definition und Verwendung der Kernaussage

Die Anweisung " key definiert einen gemeinsamen geheimen Schlüssel zur Verwendung mit TSIG.

Die Anweisung " key kann auf der obersten Ebene der Konfigurationsdatei oder innerhalb einer View-Anweisung stehen. Die in den ' key -Anweisungen der obersten Ebene definierten Schlüssel können in allen Ansichten verwendet werden. Schlüssel für die Verwendung in einer Steueranweisung müssen auf der höchsten Ebene definiert werden.

Die Schlüssel-ID, auch als Schlüsselname bezeichnet, ist ein Domänenname, der den Schlüssel eindeutig identifiziert. Er kann in einer "server" -Anweisung verwendet werden, um Anforderungen, die an diesen Server gesendet wurden, mit diesem Schlüssel zu signieren, oder in Adressübereinstimmungslisten, um sicherzustellen, dass eingehende Anforderungen mit einem Schlüssel signiert wurden, der diesem Namen, Algorithmus und geheimen Schlüssel entspricht. Die Algorithmus-ID ist eine Zeichenfolge, die einen Sicherheits-/Authentifizierungsalgorithmus angibt. Der einzige Algorithmus, der derzeit von der TSIG-Authentifizierung unterstützt wird, ist " hmac-md5. Die geheime Zeichenfolge ist das vom Algorithmus zu verwendende Geheimnis und wird als base-64 Zeichenfolge behandelt.

protokollierung Aussage Grammatik
logging {
   [ channel channel_name {
     ( file path name
         [ versions ( number | unlimited ) ]
         [ size size spec ]
       | syslog syslog_facility
       | stderr
       | null );
     [ severity (critical | error | warning | notice |
                 info | debug [ level ] | dynamic ); ]
     [ print-category yes or no; ]
     [ print-severity yes or no; ]
     [ print-time yes or no; ]
   }; ]
   [ category category_name {
     channel_name ; [ channel_name ; ... ]
   }; ]
   ...
};
definition und Verwendung der Protokollierungsanweisung

Die Anweisung " logging konfiguriert eine Vielzahl von Protokollierungsoptionen für den Namenserver. Die Phrase " channel verknüpft Ausgabemethoden, Formatoptionen und Schweregrade mit einem Namen, der dann mit der Phrase " category verwendet werden kann, um auszuwählen, wie verschiedene Klassen von Meldungen protokolliert werden.

Mit nur einer " logging Anweisung können beliebig viele Kanäle und Kategorien definiert werden. Fehlt die Anweisung " logging, wird die Protokollierungskonfiguration folgendermaßen aussehen:
logging {
     category "unmatched" { "null"; };
     category "default" { "default_syslog"; "default_debug"; };
};
In BIND 9 wird die Protokollierungskonfiguration nur erstellt, wenn die gesamte Konfigurationsdatei syntaktisch analysiert wurde. In BIND 8 wurde sie festgelegt, sobald die Anweisung " logging geparst wurde. Beim Starten des Servers werden alle Protokollierungsmeldungen zu Syntaxfehlern in der Konfigurationsdatei in die Standardkanäle oder in den Standardfehler geleitet, wenn die Option ' -g angegeben wurde.
Die Kanalphrase

Die gesamte Protokollausgabe wird an einen oder mehrere Kanäle gesendet. Sie können beliebig viele Kanäle erstellen.

Jede Kanaldefinition muss eine Zielklausel enthalten, die angibt, ob die für den Kanal ausgewählten Nachrichten in eine Datei, an eine bestimmte " syslog oder in den Standardfehlerstrom geleitet oder verworfen werden. Er kann optional auch die Nachrichtenbewertungsstufe begrenzen, die vom Kanal akzeptiert wird (der Standardwert ist 'info'), und angeben, ob eine benannte generierte Zeitmarke, der Kategoriename und/oder die Bewertungsstufe eingeschlossen werden sollen (der Standardwert ist nicht eingeschlossen).

Die Zielklausel " null bewirkt, dass alle an den Kanal gesendeten Nachrichten verworfen werden; in diesem Fall sind andere Optionen für den Kanal bedeutungslos.

Die Zielklausel " file leitet den Kanal zu einer Plattendatei. Es kann Einschränkungen enthalten, sowohl hinsichtlich der Größe der Datei als auch hinsichtlich der Anzahl der Versionen der Datei, die bei jedem Öffnen der Datei gespeichert werden.

Wenn Sie die Option " versions für die Protokolldatei verwenden, behält " named9 so viele Sicherungsversionen der Datei bei, indem es sie beim Öffnen umbenennt. Wenn Sie sich beispielsweise dafür entscheiden, 3 alte Versionen der Datei " lamers.log beizubehalten, wird kurz vor dem Öffnen der Datei " lamers.log.1 in " lamers.log.2, " lamers.log.0 in " lamers.log.1 und " lamers.log in " lamers.log.0 umbenannt. Sie können ' versions unlimited; sagen, um die Anzahl der Versionen nicht zu begrenzen. Wenn der Protokolldatei eine Größenoption zugeordnet ist, erfolgt die Umbenennung nur, wenn die zu öffnende Datei die angegebene Größe überschreitet. Standardmäßig werden keine Sicherungsversionen beibehalten; vorhandene Protokolldateien werden einfach angehängt.

Die Option ' size für Dateien wird verwendet, um das Wachstum des Protokolls zu begrenzen. Überschreitet die Datei jemals die Größe, so hört ' named9 auf, in die Datei zu schreiben, es sei denn, es ist die Option ' versions mit ihr verbunden. Wenn Sicherungsversionen beibehalten werden, werden die Dateien wie oben beschrieben gerollt und eine neue begonnen. Fehlt die Option " versions, werden keine weiteren Daten in das Protokoll geschrieben, bis ein außerbandlicher Mechanismus das Protokoll entfernt oder auf weniger als die maximale Größe abschneidet. Standardmäßig wird die Größe der Datei nicht begrenzt.

Beispiel für die Verwendung der Optionen für Größe und Versionen:
channel "an_example_channel" {
    file "example.log" versions 3 size 20m;
    print-time yes;
    print-category yes;
};

Die Zielklausel " syslog leitet den Kanal an das Systemprotokoll weiter. Sein Argument ist eine " syslog, wie sie in der Manpage von syslog beschrieben ist. Wie ' syslog mit Nachrichten umgeht, die an diese Einrichtung gesendet werden, wird in der Manpage ' syslog.conf beschrieben. Wenn Sie ein System haben, das eine sehr alte Version von " syslog verwendet, die nur zwei Argumente für die Funktion " openlog() verwendet, dann wird diese Klausel stillschweigend ignoriert. Die Severity-Klausel funktioniert wie die "Prioritäten" von ' syslog, mit dem Unterschied, dass sie auch verwendet werden können, wenn Sie direkt in eine Datei schreiben, anstatt ' syslog zu verwenden. Nachrichten, die nicht mindestens der angegebenen Bewertungsstufe entsprechen, werden für den Kanal nicht ausgewählt; Nachrichten höherer Bewertungsstufen werden akzeptiert.

Wenn Sie " syslog verwenden, dann bestimmen die " syslog.conf Prioritäten auch, was letztendlich durchgeht. Wenn zum Beispiel eine Kanaleinrichtung und die Schwere als Daemon und Debug definiert werden, aber nur " daemon.warning via syslog.conf protokolliert wird, werden Nachrichten der Schwere " info und " notice verworfen. Wenn die Situation umgekehrt ist und ' named9 nur Nachrichten von ' warning oder höher schreibt, dann druckt ' syslogd alle Nachrichten, die er vom Kanal erhalten hat.

Die Zielklausel " stderr leitet den Kanal an den Standardfehlerstrom des Servers weiter. Dies ist zur Verwendung vorgesehen, wenn der Server als Vordergrundprozess ausgeführt wird, z. B. beim Debugging einer Konfiguration.

Der Server kann umfangreiche Debuginformationen bereitstellen, wenn er sich im Debugmodus befindet. Wenn die globale Debugstufe des Servers größer als null ist, ist der Debugmodus aktiv. Der globale Debug-Level wird entweder durch Starten des ' named9 -Servers mit dem ' -d -Flag, gefolgt von einer positiven Ganzzahl, oder durch Ausführen des ' rndc trace -Befehls gesetzt. Der globale Debug-Level kann auf Null gesetzt und der Debugging-Modus ausgeschaltet werden, indem der Befehl ' ndc notrace ausgeführt wird. Alle Debugnachrichten im Server haben eine Debugstufe und höhere Debugstufen geben eine detailliertere Ausgabe. Kanäle, die eine bestimmte Debugbewertung angeben, z. B.:
channel "specific_debug_level" {
    file "foo";
    severity debug 3;
};
Ruft die Debugausgabe der Stufe 3 oder weniger ab, wenn sich der Server im Debugmodus befindet, unabhängig von der globalen Debugstufe. Kanäle mit dem Schweregrad " dynamic verwenden die globale Ebene des Servers, um zu bestimmen, welche Nachrichten gedruckt werden sollen.
Wenn " print-time eingeschaltet ist, werden Datum und Uhrzeit protokolliert. print-time kann für einen ' syslog -Kanal angegeben werden, ist aber in der Regel sinnlos, da ' syslog auch das Datum und die Uhrzeit ausgibt. Wenn " print-category angefordert wird, wird auch die Kategorie der Nachricht protokolliert. Wenn schließlich " print-severity eingeschaltet ist, wird der Schweregrad der Meldung protokolliert. Die " print- können in beliebiger Kombination verwendet werden und werden immer in der folgenden Reihenfolge gedruckt: Zeit, Kategorie, Schweregrad. Hier ist ein Beispiel, bei dem alle drei ' print- aktiviert sind:
28-Feb-2000 15:05:32.863 general: notice: running
Die vier vordefinierten Kanäle, die für die Standardprotokollierung des " named9 -Daemons verwendet werden, sind die folgenden.
channel "default_syslog" {
    syslog daemon;                      // send to syslog's daemon
                                        // facility
    severity info;                      // only send priority info
                                        // and higher
};

channel "default_debug" {
    file "named.run";                   // write to named.run in
                                        // the working directory
                                        // Note: stderr is used instead
                                        // of "named.run"
                                        // if the server is started
                                        // with the '-f' option.
    severity dynamic;                   // log at the server's
                                        // current debug level
};

channel "default_stderr" {              // writes to stderr
    stderr;
    severity info;                      // only send priority info
                                        // and higher
};

channel "null" {
   null;                                // toss anything sent to
                                        // this channel
};

Der Kanal " default_debug hat die besondere Eigenschaft, dass er nur dann Ausgaben erzeugt, wenn die Debug-Stufe des Servers ungleich Null ist. Normalerweise schreibt er in die Datei ' named9run ' im Arbeitsverzeichnis des Servers.

Aus Sicherheitsgründen wird bei Verwendung der Befehlszeilenoption " -u die Datei " named9run erst erstellt, nachdem " named9 auf die neue UID umgestellt wurde, und alle Debug-Ausgaben, die erzeugt werden, während " named9 gestartet wird und noch als root läuft, werden verworfen. Wenn Sie diese Ausgabe aufzeichnen möchten, müssen Sie den Server mit der Option " -g ausführen und den Standardfehler in eine Datei umleiten.

Sobald ein Kanal definiert wurde, kann er nicht erneut definiert werden. Deshalb können Sie die integrierten Kanäle nicht direkt ändern, aber Sie können die Standardprotokollierung ändern, indem Sie Kategorien auf Kanäle verweisen, die Sie definiert haben.

Die Kategorie Phrase
Es gibt viele Kategorien, sodass Sie die Protokolle, die Sie anzeigen möchten, an die gewünschte Position senden können, ohne Protokolle zu sehen, die Sie nicht sehen möchten. Wenn Sie keine Liste von Kanälen für eine Kategorie angeben, werden die Protokollmeldungen dieser Kategorie stattdessen an die Kategorie " default gesendet. Wenn Sie keine Kategorie ' default angeben, werden die folgenden Standardwerte verwendet:
category "default" { "default_syslog"; "default_debug"; };
Wenn Sie beispielsweise Sicherheitsereignisse in einer Datei protokollieren, aber auch das Standardprotokollierungsverhalten beibehalten möchten, geben Sie Folgendes an:
channel "my_security_channel" {
    file "my_security_file";
    severity info;
};
category "security" {
    "my_security_channel";
    "default_syslog";
    "default_debug";
};
Um alle Nachrichten in einer Kategorie zu löschen, geben Sie den Nullkanal an:
category "xfer-out" { "null"; };
category "notify" { "null"; };
Es folgen die verfügbaren Kategorien und Kurzbeschreibungen der Typen von Protokollinformationen, die sie enthalten.
Tabelle 10. Verfügbare Kategorien und die Arten von Protokollinformationen, die sie enthalten
Element Beschreibung
default Die Standardkategorie definiert die Protokollierungsoptionen für die Kategorien, für die keine bestimmte Konfiguration definiert wurde.
general Der Catch-all. Viele Dinge sind immer noch nicht in Kategorien eingeteilt, und sie alle enden hier.
database Nachrichten zu den Datenbanken, die intern vom Namensserver zum Speichern von Zonen-und Cachedaten verwendet werden.
security Genehmigung und Ablehnung von Anforderungen.
config Syntaxanalyse und Verarbeitung der Konfigurationsdatei.
resolver DNS-Auflösung, z. B. rekursive Suchen, die von einem Caching-Name-Server für Clients ausgeführt werden.
xfer-in Zonenübertragungen, die der Server empfängt.
xfer-out Zonenübertragungen, die der Server sendet.
notify Das Protokoll NOTIFY.
client Verarbeitung von Clientanforderungen.
unmatched Nachrichten, deren Klasse nicht bestimmt werden konnte oder für die es keine passende Ansicht gab. Eine einzeilige Zusammenfassung wird ebenfalls in der Kategorie " client protokolliert. Diese Kategorie wird am besten an eine Datei oder ' stderr gesendet, standardmäßig wird sie an den Kanal ' null gesendet.
network Netzoperationen.
update Dynamische Aktualisierungen.
queries Abfragen. Die Verwendung der Kategorie ' queries ermöglicht die Protokollierung von Abfragen.
dispatch Senden eingehender Pakete an die Servermodule, in denen sie verarbeitet werden sollen.
dnssec DNSSEC-und TSIG-Protokollverarbeitung.
lame-servers Lame-Server. Dabei handelt es sich um Fehlkonfigurationen in entfernten Servern, die von BIND 9 beim Versuch, diese Server während der Auflösung abzufragen, entdeckt werden.
optionen Anweisung Grammatik
options {
    [ version version_string; ]
    [ directory path_name; ]
    [ named-xfer path_name; ]
    [ tkey-domain domainname; ]
    [ tkey-dhkey key_name key_tag; ]
    [ dump-file path_name; ]
    [ memstatistics-file path_name; ]
    [ pid-file path_name; ]
    [ statistics-file path_name; ]
    [ zone-statistics yes_or_no; ]
    [ auth-nxdomain yes_or_no; ]
    [ deallocate-on-exit yes_or_no; ]
    [ dialup dialup_option; ]
    [ fake-iquery yes_or_no; ]
    [ fetch-glue yes_or_no; ]
    [ has-old-clients yes_or_no; ]
    [ host-statistics yes_or_no; ]
    [ minimal-responses yes_or_no; ]
    [ multiple-cnames yes_or_no; ]
    [ notify yes_or_no | explicit; ]
    [ recursion yes_or_no; ]
    [ rfc2308-type1 yes_or_no; ]
    [ use-id-pool yes_or_no; ]
    [ maintain-ixfr-base yes_or_no; ]
    [ forward ( only | first ); ]
    [ forwarders { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; ]
    [ check-names ( master | slave |  response )( warn | fail | ignore ); ]
    [ allow-notify { address_match_list }; ]
    [ allow-query { address_match_list }; ]
    [ allow-transfer { address_match_list }; ]
    [ allow-recursion { address_match_list }; ]
    [ allow-v6-synthesis { address_match_list }; ]
    [ blackhole { address_match_list }; ]
    [ listen-on [ port ip_port ] { address_match_list }; ]
    [ listen-on-v6 [ port ip_port ] { address_match_list }; ]
    [ query-source [ address ( ip_addr | * ) ] [ port ( ip_port | * ) ]; ]
    [ max-transfer-time-in number; ]
    [ max-transfer-time-out number; ]
    [ max-transfer-idle-in number; ]
    [ max-transfer-idle-out number; ]
    [ tcp-clients number; ]
    [ recursive-clients number; ]
    [ serial-query-rate number; ]
    [ serial-queries number; ]
    [ transfer-format ( one-answer | many-answers ); ]
    [ transfers-in  number; ]
    [ transfers-out number; ]
    [ transfers-per-ns number; ]
    [ transfer-source (ip4_addr | *) [port ip_port] ; ]
    [ transfer-source-v6 (ip6_addr | *) [port ip_port] ; ]
    [ notify-source (ip4_addr | *) [port ip_port] ; ]
    [ notify-source-v6 (ip6_addr | *) [port ip_port] ; ]
    [ also-notify { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; ]
    [ max-ixfr-log-size number; ]
    [ coresize size_spec ; ]
    [ datasize size_spec ; ]
    [ files size_spec ; ]
    [ stacksize size_spec ; ]
    [ cleaning-interval number; ]
    [ heartbeat-interval number; ]
    [ interface-interval number; ]
    [ statistics-interval number; ]
    [ topology { address_match_list }];
    [ sortlist { address_match_list }];
    [ rrset-order { order_spec ; [ order_spec ; ... ] ] };
    [ lame-ttl number; ]
    [ max-ncache-ttl number; ]
    [ max-cache-ttl number; ]
    [ sig-validity-interval number ; ]
    [ min-roots number; ]
    [ use-ixfr yes_or_no ; ]
    [ provide-ixfr yes_or_no; ]
    [ request-ixfr yes_or_no; ]
    [ treat-cr-as-space yes_or_no ; ]
    [ min-refresh-time number ; ]
    [ max-refresh-time number ; ]
    [ min-retry-time number ; ]
    [ max-retry-time number ; ]
    [ port ip_port; ]
    [ additional-from-auth yes_or_no ; ]
    [ additional-from-cache yes_or_no ; ]
    [ random-device path_name ; ]
    [ max-cache-size size_spec ; ]
    [ match-mapped-addresses yes_or_no; ]
options statement Definition und Verwendung

Die Anweisung " options legt globale Optionen fest, die von BIND verwendet werden sollen. Diese Anweisung darf in einer Konfigurationsdatei nur einmal vorkommen. Wenn mehrere Vorkommen gefunden werden, bestimmt das erste Vorkommen die tatsächlich verwendeten Optionen und eine Warnung wird generiert. Fehlt die Anweisung " options, wird ein Optionsblock verwendet, in dem jede Option auf ihre Standardwerte gesetzt ist.

version
Die Version, die der Server durch eine Abfrage des Namens ' version.bind in der Klasse ' CHAOS melden soll. Der Standardwert ist die echte Versionsnummer dieses Servers.
Verzeichnis
Das Arbeitsverzeichnis des Servers. Alle nicht-absoluten Pfadnamen in der Konfigurationsdatei werden als relativ zu diesem Verzeichnis betrachtet. Dieses Verzeichnis ist der Standardspeicherort für die meisten Server-Ausgabedateien (z. B. " named.run). Wird kein Verzeichnis angegeben, ist das Arbeitsverzeichnis standardmäßig ' ., das Verzeichnis, aus dem der Server gestartet wurde. Das angegebene Verzeichnis muss ein absoluter Pfad sein.
benannter-xfer
Diese Option ist veraltet. Er wurde in BIND 8 verwendet, um den Pfadnamen zum Programm ' named-xfer anzugeben. In BIND 9 wird kein separates ' named-xfer benötigt; seine Funktionalität ist in den Nameserver integriert.
tkey-Domäne
Die Domäne, die an die Namen aller mit " TKEY erzeugten gemeinsamen Schlüssel angehängt wird. Wenn ein Kunde einen " TKEY -Austausch anfordert, kann er den gewünschten Namen für den Schlüssel angeben, muss es aber nicht. Falls vorhanden, ist der Name des gemeinsamen Schlüssels der vom Kunden angegebene Teil + " tkey-domain. Andernfalls ist der Name des gemeinsamen Schlüssels zufällige Hexadezimalzahl + " tkey-domain. In den meisten Fällen muss " domainname der Domänenname des Servers sein.
+ + + tkey-dhkey
Der Diffie-Hellman-Schlüssel, der vom Server verwendet wird, um gemeinsame Schlüssel mit Clients zu erzeugen, die den Diffie-Hellman-Modus " TKEY verwenden. Der Server muss in der Lage sein, die öffentlichen und privaten Schlüssel aus Dateien im Arbeitsverzeichnis zu laden. In den meisten Fällen sollte der Schlüsselname der Hostname des Servers sein.
Speicherauszugsdatei
Der Pfadname der Datei, in die der Server die Datenbank speichert, wenn er mit dem Befehl " rndc dumpdb dazu aufgefordert wird. Wird nichts angegeben, ist der Standardwert " named_dump.db.
memstatistics-Datei
Der Pfadname der Datei, in die der Server beim Beenden Speicherbelegungsstatistiken schreibt. Erfolgt keine Angabe, lautet der Standardwert named.memstats.
Hinweis: Noch nicht in BIND 9 implementiert.
pid-datei
Der Pfadname der Datei, in die der Server seine Prozess-ID schreibt. Wird nichts angegeben, ist der Standardwert " /var/run/named.pid. Die PID-Datei wird von Programmen verwendet, die Signale an den aktiven Namensserver senden wollen.
Statistikdatei
Der Pfadname der Datei, an die der Server Statistiken anhängt, wenn er mit rndc stats dazu aufgefordert wird. Wenn nicht angegeben, ist der Standardwert ' named.stats im aktuellen Verzeichnis des Servers
Anschluss
Die UDP/TCP-Portnummer, die der Server zum Empfangen und Senden von DNS-Protokolldatenverkehr verwendet. Der Standardwert ist 53. Diese Option ist hauptsächlich für Servertests vorgesehen. Ein Server, der einen anderen Port als 53 verwendet, kann nicht mit dem globalen DNS kommunizieren.
Zufällige Einheit
Die Quelle der Entropie, die vom Server verwendet werden soll Entropie ist in erster Linie für DNSSEC-Operationen erforderlich, wie z. B. TKEY-Transaktionen und dynamische Aktualisierung signierter Zonen. Diese Option gibt die Einheit (oder Datei) an, von der die Entropie gelesen werden soll. Wenn es sich um eine Datei handelt, schlagen Operationen, die Entropie erfordern, fehl, wenn die Datei erschöpft ist. Wird nichts angegeben, ist der Standardwert " /dev/random (oder gleichwertig), wenn er vorhanden ist, und sonst keiner. Die Option für zufällige Einheiten wird während des einleitenden Konfigurationsladens beim Serverstart wirksam und bei nachfolgenden Neuladevorgängen ignoriert.

Boolesche Optionen

auth-nxdomain
Bei yeswird das AA -Bit immer in NXDOMAIN-Antworten gesetzt, auch wenn der Server nicht autoritativ ist. Der Standardwert ist no; dies ist eine Änderung von BIND 8. Wenn Sie sehr alte DNS-Software verwenden, müssen Sie sie möglicherweise auf yessetzen.
deallocate-on-exit
Diese Option wurde in BIND 8 verwendet, um die Überprüfung auf Speicherlecks beim Exit zu aktivieren. BIND 9 ignoriert die Option und führt immer die Prüfungen durch.
dialup
Bei yesbehandelt der Server alle Zonen so, als würden sie Zonenübertragungen über eine Wählverbindung auf Anforderung durchführen, die durch Datenverkehr von diesem Server ausgelöst werden kann. Dies hat je nach Zonentyp unterschiedliche Auswirkungen und konzentriert die Zonenwartung so, dass alles in einem kurzen Intervall geschieht, einmal in jedem Überwachungssignalintervallund hoffentlich während des einen Aufrufs. Sie unterdrückt außerdem einen Teil des normalen Zonenwartungsdatenverkehrs. Der Standardwert ist no.Die Option dialup kann auch in den Anweisungen view und zone angegeben werden. In diesem Fall überschreibt sie die globale Option dialup .

Wenn die Zone eine Masterzone ist, sendet der Server eine NOTIFY-Anforderung an alle Slavezonen. Dadurch wird die Überprüfung der Seriennummer der Zone im Slave ausgelöst (sofern sie NOTIFY unterstützt), sodass der Slave die Zone überprüfen kann, während die Verbindung aktiv ist.

Wenn es sich bei der Zone um eine Slave-oder Stub-Zone handelt, unterdrückt der Server die regulären Abfragen "zone up to date" (Aktualisierung) und führt sie nur aus, wenn das Überwachungssignalintervall zusätzlich zum Senden von NOTIFY-Anforderungen abläuft.

Eine feinere Steuerung kann erreicht werden, indem notifyverwendet wird, das nur NOTIFY-Nachrichten sendet; notify-passive, das NOTIFY-Nachrichten sendet und die normalen Aktualisierungsabfragen unterdrückt; und refresh, das die normale Aktualisierungsverarbeitung unterdrückt und Aktualisierungsabfragen sendet, wenn das Überwachungssignalintervall abläuft und passiv, wodurch nur die normale Aktualisierungsverarbeitung inaktiviert wird.

fake-iquery
In BIND 8 wurde diese Option verwendet, um die Simulation des veralteten DNS-Abfragetyps IQUERY zu aktivieren. BIND 9 führt keine IQUERY-Simulation durch.
fetch-glue
Diese Option ist veraltet. In BIND 8 verursachte fetch-glue yes , dass der Server versuchte, Glue-Ressourcendatensätze abzurufen, die er beim Erstellen des zusätzlichen Datenabschnitts einer Antwort nicht hatte. Dies wird jetzt als schlechte Praxis betrachtet, und BIND 9 tut es nie.
has-old-clients
Diese Option wurde in BIND 8 falsch implementiert und wird von BIND 9 ignoriert. Um die beabsichtigte Wirkung von has-old-clients yeszu erreichen, geben Sie stattdessen die beiden separaten Optionen auth-nxdomain yes und rfc2308-type1 no an.
host-statistics
In BIND 8 ermöglicht dies die Aufbewahrung von Statistikdaten für alle Hosts, mit denen der Namensserver interagiert. Es ist nicht in BIND 9 implementiert.
maintain-ixfr-base
Diese Option ist veraltet. Sie wurde in BIND 8 verwendet, um festzustellen, ob ein Transaktionsprotokoll für die inkrementelle Zonenübertragung aufbewahrt wurde. BIND 9 verwaltet nach Möglichkeit ein Transaktionsprotokoll. Wenn Sie abgehende inkrementelle Zonentransfers inaktivieren müssen, verwenden Sie bereitstellung-ixfr no.
Minimale Antworten
Bei yesfügt der Server beim Generieren von Antworten nur Datensätze zur Berechtigung und zu zusätzlichen Datenabschnitten hinzu, wenn sie erforderlich sind. Dies kann die Leistung des Servers verbessern. Der Standardwert ist no.
multiple-cnames
Diese Option wurde in BIND 8 verwendet, damit ein Domänenname mehrere CNAME-Datensätze zulassen kann, die gegen die DNS-Standards verstoßen. BIND 9.2 erzwingt strikt die CNAME-Regeln sowohl in Stammdateien als auch in dynamischen Aktualisierungen.
notify
Bei yes (Standardeinstellung) werden DNS-NOTIFY-Nachrichten gesendet, wenn eine Zone vorhanden ist, für die der Server für Änderungen autoritativ ist. Die Nachrichten werden an die Server gesendet, die in den NS-Datensätzen der Zone aufgelistet sind (mit Ausnahme des im Feld SOA MNAME angegebenen Controller-Servers), sowie an alle Server, die in der Option also-notify option.If explicitangegeben ist, werden Benachrichtigungen nur an Server gesendet, die explizit mit also-notifyaufgelistet sind. Bei nowerden keine Benachrichtigungen gesendet.

Die Option notify kann auch in der Anweisung zone angegeben werden. In diesem Fall überschreibt sie die Anweisung options notify . Es wäre nur notwendig, diese Option auszuschalten, wenn es zu einem Absturz der Sklaven führte.

Rekursion
Wenn yesund eine DNS-Abfrage eine Rekursion anfordern, versucht der Server, die gesamte Arbeit auszuführen, die zur Beantwortung der Abfrage erforderlich ist. Wenn die Rekursion inaktiviert ist und der Server die Antwort noch nicht kennt, wird eine Verweisantwort zurückgegeben. Der Standardwert ist yes.
Hinweis: Die Einstellung recursion no verhindert nicht, dass Clients Daten aus dem Cache auf dem Server abrufen. Sie verhindert nur, dass neue Daten als Auswirkung von Clientabfragen zwischengespeichert werden. Das Caching kann weiterhin auftreten, wenn sich die interne Operation des Servers auswirkt, wie z. B. die Adresssuche mit NOTIFY.
rfc2308-type1
Wenn Sie diese Einstellung auf yes setzen, sendet der Server NS-Datensätze zusammen mit dem SOA-Datensatz für negative Antworten. Der Standardwert ist "no".
Hinweis: Noch nicht in BIND 9 implementiert.
Verwendung-ID-Pool
Diese Option ist veraltet. BIND 9 ordnet immer Abfrage-IDs aus einem Pool zu.
Zonenstatistik
Bei yeserfasst der Server standardmäßig statistische Daten in allen Zonen auf dem Server. Auf diese Statistikdaten kann über rndc statszugegriffen werden, wodurch sie in der Datei ausgegeben werden, die in der statistikdateiaufgelistet ist. Siehe Statistikdatei.
Verwendung-ixfr
Diese Option ist veraltet. Wenn Sie IXFR für einen bestimmten Server oder für bestimmte Server inaktivieren müssen, lesen Sie die Informationen zur Option 'bereitstellung-ixfr' unter Serveranweisungsdefinition und -verwendung.
Bereitstellen-ixfr
Weitere Informationen finden Sie in der Beschreibung von bereitstellung-ixfr unter Serveranweisungsdefinition und -verwendung.
Anforderung-ixfr
Siehe die Beschreibung von request-ixfr in Serveranweisungsdefinition und -verwendung.
behandeln-cr-as-space
Diese Option wurde in BIND 8 verwendet, damit der Server den Rücklauf behandelt ("\r") Zeichen auf dieselbe Weise wie ein Leerzeichen oder Tabulatorzeichen, um das Laden von Zonendateien auf einem UNIX -System zu erleichtern, die auf einem Windows NT -oder DOS -System generiert wurden. In BIND 9 werden sowohl UNIX "\n" als auch NT/DOS "\r \n" -Zeilenumbrüche immer akzeptiert und die Option wird ignoriert.
Zusätzliche-from-auth, zusätzliche-from-cache
Diese Optionen steuern das Verhalten eines autoritativen Servers, wenn Abfragen mit zusätzlichen Daten beantwortet werden oder wenn CNAME-und DNAME- chains.When beide Optionen auf yes gesetzt sind (Standardeinstellung) und eine Abfrage aus autoritativen Daten beantwortet wird (eine Zone, die für den Server konfiguriert ist), wird der Abschnitt für zusätzliche Daten der Antwort mit Daten aus anderen autoritativen Zonen und aus dem Cache gefüllt. In manchen Situationen ist dies unerwünscht, beispielsweise wenn Bedenken hinsichtlich der Korrektheit des Caches bestehen oder wenn es sich um Server handelt, auf denen Slave-Zonen von nicht vertrauenswürdigen Dritten hinzugefügt und geändert werden können. Außerdem beschleunigt die Vermeidung der Suche nach diesen zusätzlichen Daten Serveroperationen auf mögliche Kosten zusätzlicher Abfragen, um zu lösen, was andernfalls im zusätzlichen Abschnitt bereitgestellt würde.

Wenn eine Abfrage beispielsweise nach einem MX-Eintrag für Host foo.example.comfragt und der gefundene Datensatz "MX 10 mail.example.net" ist, werden normalerweise auch die Adressdatensätze für mail.example.net bereitgestellt, sofern bekannt. Wenn Sie diese Optionen auf no setzen, wird dieses Verhalten inaktiviert.

Diese Optionen sind für die Verwendung in ausschließlich autoritativen Servern oder in nur autoritativen Ansichten vorgesehen. Versucht, sie auf no zu setzen, ohne auch recursion no; anzugeben, führt dazu, dass der Server die Optionen ignoriert und eine Warnung protokolliert.

Bei Angabe von additional-from-cache no wird die Verwendung des Cache nicht nur für zusätzliche Datensuchen, sondern auch beim Suchen nach der Antwort inaktiviert. Dies ist in der Regel das gewünschte Verhalten in einem reinen Autorisierungsserver, bei dem die Richtigkeit der zwischengespeicherten Daten ein Problem darstellt.

Wenn ein Namensserver nicht rekursiv nach einem Namen abgefragt wird, der nicht unter dem Scheitelpunkt einer bereitgestellten Zone liegt, antwortet er normalerweise mit einem "Aufwärtsverweis" auf die Root-Server oder die Server eines anderen bekannten übergeordneten Elements des Abfragenamens. Da die Daten in einem Aufwärtsverweis aus dem Cache stammen, kann der Server keine Aufwärtsverweise bereitstellen, wenn additional-from-cache no angegeben wurde. Stattdessen antwortet sie auf solche Abfragen mit REFUSED. Dies sollte keine Probleme verursachen, da Aufwärtsverweise für den Lösungsprozess nicht erforderlich sind.

zugeordnete-übereinstimmungsadressen
Bei yesstimmt eine IPv4-mapped IPv6 -Adresse mit allen Adressübereinstimmungslisteneinträgen überein, die mit der entsprechenden IPv4 -Adresse übereinstimmen. Die Aktivierung dieser Option ist manchmal nützlich auf IPv6-enabled Linux® , um ein Kernel-Quirk zu umgehen, das dazu führt, dass IPv4 -TCP-Verbindungen, wie z. B. Zonenübertragungen, auf einem IPv6 -Socket mit zugeordneten Adressen akzeptiert werden, was dazu führt, dass Adressübereinstimmungslisten für IPv4 nicht übereinstimmen. Die Verwendung dieser Option für andere Zwecke wird nicht empfohlen.

Weiterleiten

Die Weiterleitungsfunktion kann verwendet werden, um einen großen siteweiten Cache auf einigen Servern zu erstellen, wodurch der Datenverkehr über Links zu externen Namensservern reduziert wird. Es kann auch verwendet werden, um Abfragen von Servern zuzulassen, die keinen direkten Zugriff auf das Internet haben, aber trotzdem nach äußeren Namen suchen wollen. Die Weiterleitung erfolgt nur für Abfragen, für die der Server nicht autoritativ ist und für die die Antwort nicht im Cache gespeichert ist.

vor
Diese Option ist nur sinnvoll, wenn die Weiterleitungsliste nicht leer ist. Der Standardwert firstbewirkt, dass der Server zuerst die Weiterleitungsserver abfragt. Wenn die Frage nicht beantwortet wird, sucht der Server die Antwort selbst. Wird nur angegeben, fragt der Server nur die Weiterleitungsserver ab.
forwarders
Gibt die IP-Adressen an, die für die Weiterleitung verwendet werden. Der Standardwert ist die leere Liste (keine Weiterleitung).

Die Weiterleitung kann auch auf Domänenbasis konfiguriert werden, sodass die globalen Weiterleitungsoptionen auf verschiedene Weise überschrieben werden können. Sie können bestimmte Domänen festlegen, um unterschiedliche Weiterleitungsserver zu verwenden, oder Sie können ein anderes Verhalten für 'Nur weiterleiten'/'Erstes' oder gar kein Weiterleitungsverhalten festlegen. Siehe Grammatik für Zonenanweisungen.

Zugriffssteuerung

Der Zugriff auf den Server kann auf der Basis der IP-Adresse des anfordernden Systems eingeschränkt werden.

Zulassen-Benachrichtigen
Gibt an, welche Hosts Slaves über eine Zonenänderung zusätzlich zu den Zonenmastern benachrichtigen dürfen. Die Option allow-notify kann auch in der Anweisung zone angegeben werden. In diesem Fall überschreibt sie die Anweisung options allow-notify . Sie ist nur für eine Slavezone von Bedeutung. Erfolgt keine Angabe, werden Benachrichtigungsnachrichten standardmäßig nur vom Master einer Zone verarbeitet.
allow-query
Gibt an, welche Hosts normale Fragen stellen dürfen. Die Option allow-query kann auch in der Anweisung zone angegeben werden. In diesem Fall überschreibt sie die Anweisung options allow-query . Erfolgt keine Angabe, werden standardmäßig Abfragen von allen Hosts zugelassen.
allow-recursion
Gibt an, welche Hosts rekursive Abfragen über diesen Server ausführen dürfen. Erfolgt keine Angabe, werden standardmäßig rekursive Abfragen von allen Hosts zugelassen. Beachten Sie, dass das Nichtzulassen rekursiver Abfragen für einen Host nicht verhindert, dass der Host Daten abruft, die sich bereits im Cache auf dem Server befinden.
allow-transfer
Gibt an, welche Hosts Zonenübertragungen vom Server empfangen dürfen. allow-transfer kann auch in der Anweisung zone angegeben werden. In diesem Fall überschreibt sie die Anweisung options allow-transfer . Erfolgt keine Angabe, werden standardmäßig Übertragungen von allen Hosts zugelassen.
blackhole
Gibt eine Liste von Adressen an, von denen der Server keine Abfragen akzeptiert oder verwendet, um eine Abfrage aufzulösen. Abfragen von diesen Adressen werden nicht beantwortet. Der Standardwert ist none.

Schnittstellen

Die Schnittstellen und Ports, von denen der Server Abfragen beantwortet, können mit der Option listen-on angegeben werden. listen-on verwendet einen optionalen Port und einen address_match_list. Der Server ist an allen Schnittstellen empfangsbereit, die von der Adressabgleichsliste zugelassen werden. Wenn kein Port angegeben wird, wird Port 53 verwendet.

Mehrere listen-on -Anweisungen sind zulässig. Beispiel:
listen-on { 5.6.7.8; };
listen-on port 1234 { !1.2.3.4; 1.2/16; };
Dadurch wird der Namensserver an Port 53 für die IP-Adresse 5.6.7.8und an Port 1234 einer Adresse auf der Maschine im Netz 1.2 (nicht 1.2.3.4) aktiviert.

Wenn listen-on nicht angegeben ist, ist der Server an Port 53 an allen Schnittstellen empfangsbereit.

Adresse abfragen

Wenn der Server die Antwort auf eine Frage nicht kennt, fragt er andere Namensserver ab. query-source gibt die Adresse und den Port für solche Abfragen an. Wenn adresse auf * gesetzt oder weggelassen wird, wird eine Platzhalter-IP-Adresse (INADDR_ANY) verwendet. Wenn port auf * gesetzt oder weggelassen wird, wird ein wahlfreier nicht privilegierter Port verwendet. Die Standardpositionen sind im Folgenden aufgeführt:
query-source address * port *;
query-source-v6 address * port *
Anmerkung: Die in der Option query-source angegebene Adresse wird für UDP-und TCP-Abfragen verwendet, aber der Port gilt nur für UDP-Abfragen. TCP-Abfragen verwenden immer einen wahlfreien nicht privilegierten Port.

Zonenübertragungen

BIND verfügt über Mechanismen zur Vereinfachung von Zonenübertragungen und zur Festlegung von Grenzwerten für den Umfang der Lastübertragungen auf dem System. Die folgenden Optionen gelten für Zonenübertragungen.

auch-benachrichtigen
Definiert eine globale Liste mit IP-Adressen von Namensservern, an die zusätzlich zu den in den NS-Datensätzen der Zone aufgelisteten Servern auch NOTIFY-Nachrichten gesendet werden, wenn eine neue Kopie der Zone geladen wird. Dadurch wird sichergestellt, dass Kopien der Zonen schnell auf Stealth-Servern konvergieren. Wenn eine also-notify -Liste in einer Zonenanweisung angegeben wird, überschreibt sie die Anweisung options also-notify . Wenn eine Anweisung zone notify auf nogesetzt ist, werden den IP-Adressen in der globalen Liste also-notify keine NOTIFY-Nachrichten für diese Zone gesendet. Der Standardwert ist die leere Liste (keine globale Benachrichtigungsliste).
max-transfer-time-in
Eingehende Zonenübertragungen, die länger als diese Anzahl Minuten ausgeführt werden, werden beendet. Der Standardwert ist 120 Minuten (2 Stunden).
max-transfer-idle-in
Eingehende Zonenübertragungen, die in dieser Anzahl Minuten keinen Fortschritt machen, werden beendet. Der Standardwert ist 60 Minuten (1 Stunde).
max-transfer-zeitlimit
Abgehende Zonenübertragungen, die länger als diese Anzahl Minuten dauern, werden beendet. Der Standardwert ist 120 Minuten (2 Stunden).
Maximale Übertragungs-Leerlaufzeit
Abgehende Zonenübertragungen, die in dieser Anzahl Minuten keinen Fortschritt machen, werden beendet. Der Standardwert ist 60 Minuten (1 Stunde).
seriell-abfragerate
Workerserver fragen Controller-Server regelmäßig ab, um festzustellen, ob sich die Seriennummern der Zonen geändert haben. Jede solche Abfrage verwendet eine Minutenmenge der Netzbandbreite des Workerservers. Um die verwendete Bandbreite zu begrenzen, begrenzt BIND 9 die Geschwindigkeit, mit der Abfragen gesendet werden. Der Wert der Option serial-query-rate , eine ganze Zahl, gibt die maximale Anzahl der pro Sekunde gesendeten Abfragen an. Der Standardwert ist 20.
serielle Abfragen
In BIND 8 wird mit der Option serial-queries die maximale Anzahl gleichzeitiger Seriennummernabfragen festgelegt, die zu einem beliebigen Zeitpunkt ausstehen dürfen. BIND 9 begrenzt die Anzahl der ausstehenden seriellen Abfragen nicht und ignoriert die Option serial-queries . Stattdessen begrenzt es die Rate, mit der die Abfragen wie mit der Option serial-query-rate definiert gesendet werden.
transfer-format
Zonenübertragungen können in zwei verschiedenen Formaten gesendet werden: one-answer und many-answers. Die Option transfer-format wird auf dem Controllerserver verwendet, um zu bestimmen, welches Format gesendet wird. one-answer verwendet eine DNS-Nachricht pro übertragenen Ressourcendatensatz. many-answers packt so viele Ressourcendatensätze wie möglich in eine Nachricht. many-answers ist effizienter, wird jedoch nur von relativ neuen Workerservern wie BIND 9, BIND 8.x und Patchversionen von BIND 4.9.5unterstützt. Der Standardwert ist many-answers. transfer-format kann auf Serverbasis mithilfe der Serveranweisung überschrieben werden.
transfers-in
Die maximale Anzahl eingehender Zonenübertragungen, die gleichzeitig ausgeführt werden können. Der Standardwert ist 10. Eine Erhöhung der Übertragungen-in kann die Konvergenz der Slave-Zonen beschleunigen, aber auch die Belastung des lokalen Systems erhöhen.
transfers-out
Die maximale Anzahl abgehender Zonenübertragungen, die gleichzeitig ausgeführt werden können. Zonenübertragungsanforderungen, die den Grenzwert überschreiten, werden zurückgewiesen. Der Standardwert ist 10.
transfers-per-ns
Die maximale Anzahl eingehender Zonenübertragungen, die gleichzeitig von einem bestimmten fernen Namensserver übertragen werden können. Der Standardwert ist 2. Eine Erhöhung von transfers-per-ns kann die Konvergenz von Slavezonen beschleunigen, aber auch die Arbeitslast auf dem fernen Namensserver erhöhen. transfers-per-ns kann auf Serverbasis überschrieben werden, indem die Phrase transfers der Anweisung server verwendet wird.
transfer-source
transfer-source legt fest, welche lokale Adresse an IPv4 -TCP-Verbindungen gebunden ist, die zum Abrufen der vom Server eingehenden übertragenen Zonen verwendet werden. Er bestimmt außerdem die IPv4 -Quellenadresse und optional den UDP-Port, der für die Aktualisierungsabfragen und weitergeleiteten dynamischen Aktualisierungen verwendet wird. Wird kein Wert angegeben, wird standardmäßig ein systemgesteuerter Wert verwendet, der normalerweise die Adresse der Schnittstelle ist, die dem fernen Ende am nächsten ist. Diese Adresse muss in der Option allow-transfer des fernen Endes für die zu übertragende Zone erscheinen, sofern eine solche angegeben ist. Diese Anweisung legt die transfer-source für alle Zonen fest, kann jedoch pro Ansicht oder pro Zone überschrieben werden, indem eine Anweisung transfer-source in den Block view oder zone in der Konfigurationsdatei eingeschlossen wird.
Benachrichtigungsquelle
notify-source bestimmt, welche lokale Quellenadresse und optional welcher UDP-Port zum Senden von NOTIFY-Nachrichten verwendet wird. Diese Adresse muss in der Klausel masters zone des Workerservers oder in einer Klausel allow-notify angegeben sein. Diese Anweisung legt die notify-source für alle Zonen fest, kann jedoch pro Zone/pro Ansicht überschrieben werden, indem eine Anweisung notify-source in den Block zone oder view in der Konfigurationsdatei eingeschlossen wird.

Ressourcengrenzwerte des Betriebssystems

Die Nutzung vieler Systemressourcen durch den Server kann begrenzt werden. Skalierte Werte sind zulässig, wenn Ressourcengrenzwerte angegeben werden. Beispielsweise kann 1G anstelle von 1073741824 verwendet werden, um einen Grenzwert von einem Gigabyte anzugeben. Die Option unlimited fordert eine unbegrenzte Nutzung oder die maximal verfügbare Menge an. Die Option default verwendet den Grenzwert, der beim Starten des Servers wirksam war.

Mit den folgenden Optionen werden Ressourcengrenzwerte des Betriebssystems für den Namensserverprozess festgelegt. Einige Betriebssysteme unterstützen einige der Grenzwerte nicht. Auf solchen Systemen wird eine Warnung ausgegeben, wenn der nicht unterstützte Grenzwert verwendet wird.

coresize
Die maximale Größe eines Kernspeicherauszugs. Der Standardwert ist default.
datasize
Die maximale Menge an Datenspeicher, die der Server verwenden kann. Der Standardwert ist default. Dies ist ein fester Grenzwert für die Speicherbelegung des Servers. Wenn der Server versucht, Speicher über diesen Grenzwert hinaus zuzuordnen, schlägt die Zuordnung fehl. Dies kann dazu führen, dass der Server den DNS-Service nicht ausführen kann. Daher ist diese Option selten nützlich, um die vom Server verwendete Speicherkapazität zu begrenzen. Sie kann jedoch verwendet werden, um eine Datengrößenbegrenzung des Betriebssystems zu erhöhen, die standardmäßig zu klein ist. Wenn Sie die vom Server verwendete Speichermenge begrenzen möchten, verwenden Sie stattdessen die Optionen max-cache-size und recursive-clients .
Dateien
Die maximale Anzahl Dateien, die der Server gleichzeitig geöffnet haben kann. Der Standardwert ist unlimited.
stacksize
Die maximale Menge an Stackspeicher, die der Server verwenden kann. Der Standardwert ist default.

Serverressourcengrenzwerte

Mit den folgenden Optionen werden Grenzwerte für die Ressourcenauslastung des Servers festgelegt, die intern vom Server und nicht vom Betriebssystem durchgesetzt werden.

max-ixfr-protokollgröße
Diese Option ist veraltet und wird aus Gründen der Kompatibilität mit BIND 8 akzeptiert und ignoriert.
rekursive Clients

Die maximale Anzahl gleichzeitiger rekursiver Suchen, die der Server für Clients ausführt. Der Standardwert ist 1000. Da jeder rekursive Client ziemlich viel Speicher verbraucht, in der Größenordnung von 20 KB, muss der Wert der Option recursive-clients auf Hosts mit begrenztem Speicher möglicherweise verringert werden.

TCP-Clients

Die maximale Anzahl gleichzeitiger Client-TCP-Verbindungen, die der Server akzeptiert. Der Standardwert ist 100.

maximale Cachegröße

Die maximale Speicherkapazität, die für den Cache auf dem Server verwendet werden soll (in Byte). Wenn das Datenvolumen im Cache diesen Grenzwert erreicht, bewirkt der Server, dass die Datensätze vorzeitig verfallen, sodass der Grenzwert nicht überschritten wird. Bei einem Server mit mehreren Ansichten gilt der Grenzwert separat für den Cache jeder Ansicht. Der Standardwert ist " unlimited, was bedeutet, dass Datensätze nur dann aus dem Cache gelöscht werden, wenn ihre TTLs ablaufen. Der Mindestwert, den Sie für diesen Grenzwert festlegen können, ist 2 MB.

Intervalle für periodische Tasks

cleaning-interval

Der Server entfernt alle Bereinigungsintervall Minuten abgelaufene Ressourcendatensätze aus dem Cache. Der Standardwert sind 60 Minuten. Wenn der Wert auf 0 gesetzt ist, findet keine periodische Bereinigung statt.

heartbeat-interval

Der Server führt bei Ablauf dieses Intervalls Zonenverwaltungstasks für alle Zonen aus, die als Wählverbindung markiert sind. Der Standardwert sind 60 Minuten. Angemessene Werte sind bis zu 1 Tag (1440 Minuten). Wenn der Wert auf 0 gesetzt ist, findet keine Zonenwartung für diese Zonen statt.

interface-interval

Der Server durchsucht die Netzschnittstellenliste alle schnittstellenintervall Minuten. Der Standardwert sind 60 Minuten. Bei 0 erfolgt das Scannen der Schnittstelle nur, wenn die Konfigurationsdatei geladen wird. Nach dem Scan werden Listener auf allen neuen Schnittstellen gestartet (vorausgesetzt, sie werden von der Konfiguration listen-on zugelassen). Listener für Schnittstellen, die entfernt wurden, werden bereinigt.

statistics-interval

Nameserver-Statistiken werden alle statistics-interval Minuten protokolliert. Der Standardwert ist 60. Wenn der Wert 0 ist, werden keine Statistikdaten protokolliert.

Hinweis: Noch nicht in BIND 9 implementiert.

Topologie

Alle anderen Dinge, die gleich sind, wenn der Server einen Namensserver für die Abfrage aus einer Liste von Namensservern auswählt, bevorzugt er den Server, der sich topologisch am nächsten an sich selbst befindet. Die Anweisung topology verwendet eine address_match_list und interpretiert sie auf besondere Weise. Jedem Listenelement der höchsten Ebene wird ein Abstand zugeordnet. Nicht negierte Elemente erhalten einen Abstand auf der Basis ihrer Position in der Liste. Je näher die Übereinstimmung am Anfang der Liste ist, desto kürzer ist der Abstand zwischen der Liste und dem Server. Einer negierten Übereinstimmung wird die maximale Entfernung vom Server zugeordnet. Wenn es keine Übereinstimmung gibt, erhält die Adresse einen Abstand, der weiter als jedes nicht negierte Listenelement und näher als jedes negierte Element ist. Beispiel:

topology {
    10/8;
    !1.2.3/24;
    { 1.2/16; 3/8; };
};

bevorzugt Server im Netz 10 am häufigsten, gefolgt von Hosts im Netz 1.2.0.0 (Netzmaske 255.255.0.0) und Netz 3, mit Ausnahme von Hosts im Netz 1.2.3 (Netzmaske 255.255.255.0), die am wenigsten bevorzugt wird.

Die Standardtopologie ist

    topology { localhost; localnets; };
Hinweis: Die Option topology ist in BIND 9 nicht implementiert.

Anweisung "sortlist"

Die Antwort auf eine DNS-Abfrage kann aus mehreren Ressourcensätzen (RRs) bestehen, die eine Ressourcensatzgruppe (RRset) bilden. Der Namensserver gibt die RRs innerhalb des RRset normalerweise in einer unbestimmten Reihenfolge zurück (siehe die Anweisung rrset-order in RRset Ordering). Der Client-Resolver-Code sollte die RRs nach Bedarf neu anordnen, d. h. alle Adressen im lokalen Netz anstelle anderer Adressen verwenden. Allerdings können nicht alle Auflöser dies tun oder sind ordnungsgemäß konfiguriert. Wenn ein Client einen lokalen Server verwendet, kann die Sortierung auf dem Server auf der Basis der Adresse des Clients durchgeführt werden. Dies erfordert nur die Konfiguration der Namensserver, nicht aller Clients.

Die Anweisung sortlist (siehe unten) verwendet eine address_match_list und interpretiert diese genauer als die Anweisung topology (Topologie). Jede Anweisung der höchsten Ebene in der Sortierliste muss selbst eine explizite address_match_list mit einem oder zwei Elementen sein. Das erste Element (eine IP-Adresse, ein IP-Präfix, ein ACL-Name oder eine verschachtelte address_match_list) jeder Liste der höchsten Ebene wird mit der Quellenadresse der Abfrage verglichen, bis eine Übereinstimmung gefunden wird.

Sobald die Quellenadresse der Abfrage abgeglichen wurde und die Anweisung der höchsten Ebene nur ein Element enthält, wird das eigentliche Basiselement, das mit der Quellenadresse übereinstimmt, verwendet, um die Adresse in der Antwort auszuwählen, die zum Anfang der Antwort verschoben werden soll. Wenn es sich bei der Anweisung um eine Liste mit zwei Elementen handelt, wird das zweite Element wie address_match_list in einer Anweisung topology behandelt. Jedem Element der höchsten Ebene wird ein Abstand zugeordnet und die Adresse in der Antwort mit dem Mindestabstand wird an den Anfang der Antwort verschoben.

Im folgenden Beispiel erhalten alle Abfragen, die von einer der Adressen des Hosts empfangen werden, Antworten, die Adressen in einem der lokal verbundenen Netze bevorzugen. Am meisten bevorzugt sind Adressen im Netz 192.168.1/24 und danach entweder das Netz 192.168.2/24 oder das Netz 192.168.3/24 , wobei zwischen diesen beiden Netzen keine Präferenz angezeigt wird. Abfragen, die von einem Host im Netz 192.168.1/24 empfangen werden, bevorzugen andere Adressen in diesem Netz gegenüber den Netzen 192.168.2/24 und 192.168.3/24 . Abfragen, die von einem Host auf dem Netz 192.168.4/24 oder 192.168.5/24 empfangen werden, bevorzugen nur andere Adressen in ihren direkt verbundenen Netzen.

sortlist {
    { localhost;                                   // IF   the local host
        { localnets;                               // THEN first fit on the
            192.168.1/24;                          //   following nets
            { 192.168.2/24; 192.168.3/24; }; }; };
    { 192.168.1/24;                                // IF   on class C 192.168.1
        { 192.168.1/24;                            // THEN use .1, or .2 or .3
            { 192.168.2/24; 192.168.3/24; }; }; };
    { 192.168.2/24;                                // IF   on class C 192.168.2
        { 192.168.2/24;                            // THEN use .2, or .1 or .3
            { 192.168.1/24; 192.168.3/24; }; }; };
    { 192.168.3/24;                                // IF   on class C 192.168.3
        { 192.168.3/24;                            // THEN use .3, or .1 or .2
            { 192.168.1/24; 192.168.2/24; }; }; };
    { { 192.168.4/24; 192.168.5/24; };             // if .4 or .5, prefer that net
    };
};

Das folgende Beispiel zeigt ein angemessenes Verhalten für den lokalen Host und Hosts in direkt verbundenen Netzen. Es ähnelt dem Verhalten der Adresssortierung in BIND 4.9.x. Antworten, die an Abfragen vom lokalen Host gesendet werden, bevorzugen alle direkt verbundenen Netze. Antworten, die von anderen Hosts in einem direkt verbundenen Netz an Abfragen gesendet werden, bevorzugen Adressen in demselben Netz. Antworten auf andere Abfragen werden nicht sortiert.

sortlist {
           { localhost; localnets; };
           { localnets; };
};

RRset-Sortierung

Wenn mehrere Datensätze in einer Antwort zurückgegeben werden, kann es hilfreich sein, die Reihenfolge der Datensätze in der Antwort zu konfigurieren. Die Anweisung rrset-order ermöglicht die Konfiguration der Reihenfolge der Datensätze in einer Antwort auf mehrere Datensätze. Siehe auch die Anweisung sortlist , Anweisung sortlist.

Eine order_spec ist wie folgt definiert:

[ class class_name ][ type type_name ][ name "domain_name"]
      order ordering

Wird keine Klasse angegeben, lautet der Standardwert ANY. Wird kein Typ angegeben, lautet der Standardwert ANY. Wenn kein Name angegeben wird, lautet der Standardwert " *".

Gültige Werte für ordering sind:

Element Beschreibung

fixiert

Datensätze werden in der Reihenfolge zurückgegeben, in der sie in der Zonendatei definiert sind.

wahlfrei

Datensätze werden in beliebiger Reihenfolge zurückgegeben.

zyklisch

Datensätze werden im Umlaufverfahren zurückgegeben.

Beispiel:

rrset-order {
   class IN type A name "host.example.com" order random;
   order cyclic;
};

bewirkt, dass alle Antworten für Datensätze des Typs A in der Klasse IN, die " ' host.example.com" als Suffix haben, immer in zufälliger Reihenfolge zurückgegeben werden. Alle anderen Datensätze werden in zyklischer Reihenfolge zurückgegeben.

Wenn mehrere rrset-order -Anweisungen angezeigt werden, werden sie nicht kombiniert-die letzte gilt.

Hinweis: Die Anweisung rrset-order ist noch nicht in BIND 9 implementiert. BIND 9 unterstützt derzeit nur eine "random-zyklische" Reihenfolge, bei der der Server zufällig einen Startpunkt innerhalb der RRset auswählt und die Datensätze in der Reihenfolge zurückgibt, die an diesem Punkt beginnt, wobei das Ende der RRset bei Bedarf umgebrochen wird.

Optimierung

lame-ttl

Legt die Anzahl der Sekunden fest, die eine Indikation für einen Lame-Server zwischengespeichert werden soll. 0 inaktiviert das Caching. (Dies wird nicht empfohlen.) Standardwert ist ' 600 (10 Minuten). Der Höchstwert ist " 1800 (30 Minuten).

max-ncache-ttl
Um den Datenaustausch im Netz zu reduzieren und die Leistung zu verbessern, speichert der Server negative Antworten. max-ncache-ttl wird verwendet, um einen maximalen Aufbewahrungszeitraum für diese Antworten auf dem Server in Sekunden festzulegen. Die Standardeinstellung für max-ncache-ttl ist ' 10800 Sekunden (3 Stunden). max-ncache-ttl darf 7 Tage nicht überschreiten und wird bei einem höheren Wert stillschweigend auf 7 Tage gekürzt.
max-cache-ttl
max-cache-ttl legt die maximale Zeit fest, für die der Server normale (positive) Antworten zwischenspeichert. Der Standardwert ist eine Woche (7 Tage).
min-Roots
Die minimale Anzahl an Root-Servern, die für eine Anforderung zum Akzeptieren der Root-Server erforderlich ist. Der Standardwert ist 2.
Hinweis: Noch nicht in BIND 9 implementiert.
sig-validity-interval

Gibt die Anzahl der Tage in der Zukunft an, in denen DNSSEC-Signaturen, die automatisch als Ergebnis dynamischer Aktualisierungen ((Abschnitt 4.1)) erzeugt werden, ablaufen. Der Standardwert ist " 30 Tage. Die Signaturabfangzeit wird bedingungslos auf eine Stunde vor der aktuellen Zeit gesetzt, um eine begrenzte Zeitabweichung zu ermöglichen.

minimale Aktualisierungszeit, maximale Aktualisierungszeit, minimale Wiederholungszeit, maximale Wiederholungszeit

Diese Optionen steuern das Verhalten des Servers beim Aktualisieren einer Zone (Abfragen von SOA-Änderungen) oder beim erneuten Versuch fehlgeschlagener Übertragungen. Normalerweise werden die SOA-Werte für die Zone verwendet, aber diese Werte werden vom Controller festgelegt, sodass Worker-Server-Administratoren wenig Kontrolle über ihren Inhalt haben.

Mit diesen Optionen kann der Administrator eine minimale und maximale Aktualisierungs-und Wiederholungszeit pro Zone, pro Ansicht oder pro Server festlegen. Diese Optionen sind für Master-, Slave-und Stubzonen gültig und spannen die SOA-Aktualisierungs-und Wiederholungszeiten auf die angegebenen Werte.

Statistikdatei

Die von BIND 9 generierte Statistikdatei ist ähnlich, aber nicht identisch mit der von BIND 8.

Der Statistikspeicherauszug beginnt mit der Zeile + + + Statistics Dump + + + (973798949), wobei die Zahl in runden Klammern eine UNIX-Standardzeitmarke ist, die als Sekunden seit dem 1. Januar 1970 gemessen wird. Nach dieser Zeile folgt eine Reihe von Zeilen, die einen Zählertyp, den Wert des Zählers, optional einen Zonennamen und optional einen Ansichtsnamen enthalten. Die aufgelisteten Zeilen ohne Sicht und Zone sind globale Statistikdaten für den gesamten Server. Linien mit einer Zone und einem Ansichtsnamen für die angegebene Ansicht und Zone (der Ansichtsname wird für die Standardansicht weggelassen) Der Statistikspeicherauszug endet mit der Zeile -- Statistics Dump -- (973798949), wobei die Nummer mit der Nummer in der ersten Zeile identisch ist.

Die folgenden Statistikzähler werden verwaltet:

Element Beschreibung
Erfolg

Die Anzahl der erfolgreichen Abfragen an den Server oder die Zone. Eine erfolgreiche Abfrage ist als Abfrage definiert, die eine andere NOERROR-Antwort als eine Verweiantwort zurückgibt.

Verweis

Die Anzahl der Abfragen, die zu Verweisantworten geführt haben.

nxrrset

Die Anzahl der Abfragen, die zu NOERROR-Antworten ohne Daten geführt haben.

nx-domäne

Die Anzahl der Abfragen, die zu NXDOMAIN-Antworten geführt haben.

Rekursion

Die Anzahl der Abfragen, die den Server veranlasst haben, eine Rekursion auszuführen, um die endgültige Antwort zu finden.

Fehler

Die Anzahl der Abfragen, die zu einer anderen Fehlerantwort als den oben genannten geführt haben.

Grammatik Der Serveranweisung

server ip_addr {
    [ bogus yes_or_no ; ]
    [ provide-ixfr yes_or_no ; ]
    [ request-ixfr yes_or_no ; ]
    [ edns yes_or_no ; ]
    [ transfers number ; ]
    [ transfer-format ( one-answer | many-answers ) ; ]]
    [ keys { string ; [ string ; [...]] } ; ]
};

Definition und Verwendung von Serveranweisungen

Die Anweisung server definiert Merkmale, die einem fernen Namensserver zugeordnet werden.

Die Anweisung server kann auf der höchsten Ebene der Konfigurationsdatei oder in einer Anweisung view auftreten. Wenn eine Anweisung view eine oder mehrere server -Anweisungen enthält, gelten nur diese für die Ansicht und alle Anweisungen der höchsten Ebene werden ignoriert. Wenn eine Ansicht keine server -Anweisungen enthält, werden alle server -Anweisungen der höchsten Ebene als Standardwerte verwendet.

Wenn Sie feststellen, dass ein ferner Server fehlerhafte Daten ausgibt, können Sie verhindern, dass weitere Abfragen an ihn gesendet werden, wenn Sie ihn als falsch markieren. Der Standardwert für bogus ist no.

Die Klausel bereitstellung-ixfr bestimmt, ob der lokale Server, der als Controller fungiert, mit einer inkrementellen Zonenübertragung antwortet, wenn der angegebene ferne Server, ein Worker, dies anfordert. Wenn diese Option auf yesgesetzt ist, wird nach Möglichkeit eine inkrementelle Übertragung bereitgestellt. Bei Angabe von nowerden alle Übertragungen an den fernen Server nicht inkrementell ausgeführt. Wenn nicht festgelegt, wird der Wert der Option stellen-ixfr in der Ansicht oder im Block für globale Optionen als Standardwert verwendet.

Die Klausel request-ixfr bestimmt, ob der lokale Server, der als Worker fungiert, inkrementelle Zonenübertragungen vom angegebenen fernen Server, einem Controller, anfordert. Wenn nicht festgelegt, wird der Wert der Option request-ixfr in der Ansicht oder im Block für globale Optionen als Standardwert verwendet.

IXFR-Anforderungen an Server, die IXFR nicht unterstützen, werden automatisch auf AXFR zurückgesetzt. Daher muss nicht manuell aufgelistet werden, welche Server IXFR unterstützen und welche nicht; der globale Standardwert yes sollte immer funktionieren. Der Zweck der Klauseln isten-ixfr und request-ixfr besteht darin, die Verwendung von IXFR zu inaktivieren, auch wenn sowohl Controller als auch Worker dies unterstützen, z. B. wenn einer der Server fehlerhaft ist und Daten abstürzt oder beschädigt, wenn IXFR verwendet wird.

Die Klausel edns bestimmt, ob der lokale Server versucht, EDNS für die Kommunikation mit dem fernen Server zu verwenden. Der Standardwert ist yes.

Der Server unterstützt zwei Zonentransfermethoden. Die erste, eine Antwort, verwendet eine DNS-Nachricht pro übertragenen Ressourcendatensatz. many-answers packt so viele Ressourcendatensätze wie möglich in eine Nachricht. many-answers ist effizienter, wird aber nur von BIND 9, BIND 8.xund Patchversionen von BIND 4.9.5verstanden. Mit der Option transfer-format können Sie angeben, welche Methode für einen Server verwendet werden soll. Wenn transfer-format nicht angegeben wird, wird das in der options -Anweisung angegebene transfer-format verwendet.

transfers wird verwendet, um die Anzahl der gleichzeitigen eingehenden Zonenübertragungen vom angegebenen Server zu begrenzen. Wenn keine Klausel transfers angegeben wird, wird der Grenzwert entsprechend der Option transfers-per-ns festgelegt.

Die Klausel keys wird verwendet, um eine Schlüssel-ID anzugeben, die von der Anweisung key definiert wird und für die Transaktionssicherheit bei der Kommunikation mit dem fernen Server verwendet werden soll. Die Anweisung key muss vor der Anweisung server stehen, die auf sie verweist. Wenn eine Anforderung an den fernen Server gesendet wird, wird eine Anforderungssignatur mit dem hier angegebenen Schlüssel generiert und an die Nachricht angehängt. Eine vom fernen Server stammende Anforderung muss nicht von diesem Schlüssel signiert werden.

Obwohl die Grammatik der Klausel keys mehrere Schlüssel zulässt, wird derzeit nur ein Schlüssel pro Server unterstützt.

trusted-keys-anweisung-Grammatik

trusted-keys {
    string number number number string ;
    [ string number number number string ; [...]]
};

trusted-keys-Anweisungsdefinition und -verwendung

Die Anweisung trusted-keys definiert DNSSEC-Sicherheitsstammverzeichnisse. Ein Sicherheitsstamm wird definiert, wenn der öffentliche Schlüssel für eine nicht autoritative Zone bekannt ist, aber nicht sicher über DNS abgerufen werden kann, weil entweder die DNS-Stammzone oder ihre übergeordnete Zone nicht signiert ist. Sobald ein Schlüssel als vertrauenswürdiger Schlüssel konfiguriert wurde, wird er so behandelt, als wäre er validiert und als sicher erwiesen. Der Auflöser versucht die DNSSEC-Validierung für alle DNS-Daten in Unterdomänen eines Sicherheitsstammverzeichnisses.

Die Anweisung trusted-keys kann mehrere Schlüsseleinträge enthalten, die jeweils aus dem Domänennamen, den Flags, dem Protokoll, dem Algorithmus und der Darstellung base-64 der Schlüsseldaten des Schlüssels bestehen.

grammatik Der Anweisung Anzeigen

view view_name [class] {
      match-clients { address_match_list } ;
      match-destinations { address_match_list } ;
      match-recursive-only { yes_or_no } ;
      [ view_option; ...]
      [ zone-statistics yes_or_no ; ]
      [ zone_statement; ...]
};

6.2.20. Anweisungsdefinition und -verwendung anzeigen

Die Anweisung view ist eine leistungsfähige neue Funktion von BIND 9, mit der ein Namensserver eine DNS-Abfrage unterschiedlich beantworten kann, je nachdem, wer fragt. Sie ist besonders nützlich für die Implementierung geteilter DNS-Konfigurationen, ohne mehrere Server ausführen zu müssen.

Jede view -Anweisung definiert eine Ansicht des DNS-Namensbereichs, der von einer Untergruppe von Clients angezeigt wird. Ein Client passt zu einer Ansicht, wenn seine Quell-IP-Adresse mit dem " address_match_list der "match-clients" -Klausel der Ansicht und seine Ziel-IP-Adresse mit dem " address_match_list " der "match-destinations" -Klausel der Ansicht übereinstimmt. Wenn nicht angegeben, werden sowohl match-clients als auch match-destinations standardmäßig auf alle Adressen abgestimmt. Eine Ansicht kann auch als "match-recursive-only" angegeben werden, was bedeutet, dass nur rekursive Anfragen von übereinstimmenden Clients mit dieser Ansicht übereinstimmen. Die Reihenfolge der View-Anweisungen ist von Bedeutung - eine Client-Anfrage wird im Kontext der ersten passenden View aufgelöst.

Zonen, die in einer Anweisung view definiert sind, sind nur für Clients zugänglich, die der Ansichtentsprechen. Durch die Definition einer Zone mit demselben Namen in mehreren Ansichten können unterschiedliche Zonendaten an verschiedene Clients übergeben werden, z. B. "interne" und "externe" Clients in einer Split-DNS-Konfiguration.

Viele der Optionen, die in der Anweisung options angegeben sind, können auch innerhalb einer Anweisung view verwendet werden und gelten dann nur, wenn Abfragen mit dieser Sicht aufgelöst werden. Wenn kein ansichtsspezifischer Wert angegeben wird, wird der Wert in der Anweisung options als Standardwert verwendet. Außerdem können Zonenoptionen Standardwerte haben, die in der Anweisung view angegeben sind. Diese sichtspezifischen Standardwerte haben Vorrang vor denen in der Anweisung options .

Ansichten sind klassenspezifisch. Wenn keine Klasse angegeben wird, wird Klasse IN angenommen. Beachten Sie, dass alle Nicht-IN-Ansichten eine Hinweiszone enthalten müssen, da nur die IN-Klasse Standardhinweise kompiliert hat.

Wenn die Konfigurationsdatei keine view -Anweisungen enthält, wird automatisch eine Standardsicht, die mit einem beliebigen Client übereinstimmt, in der Klasse IN erstellt, und alle zone -Anweisungen, die auf der höchsten Ebene der Konfigurationsdatei angegeben sind, werden als Teil dieser Standardansicht betrachtet. Wenn explizite view -Anweisungen vorhanden sind, müssen alle Anweisungen zone innerhalb von view -Anweisungen auftreten.

Das folgende Beispiel zeigt eine typische Split-DNS-Konfiguration, die mithilfe von view -Anweisungen implementiert wird.

view "internal" {
               // This should match our internal networks.
      match-clients { 10.0.0.0/8; };
               // Provide recursive service to internal clients only.
      recursion yes;
               // Provide a complete view of the example.com zone
               // including addresses of internal hosts.
      zone "example.com" {
            type master;
            file "example-internal.db";
      };
};
view "external" {
      match-clients { any; };
               // Refuse recursive service to external clients.
      recursion no;
               // Provide a restricted view of the example.com zone
               // containing only publicly accessible hosts.
      zone "example.com" {
           type master;
           file "example-external.db";
      };
};

Grammatik der Zonenanweisung

zone zone_name [class] [{ 
    type ( master | slave | hint | stub | forward ) ;
    [ allow-notify { address_match_list } ; ]
    [ allow-query { address_match_list } ; ]
    [ allow-transfer { address_match_list } ; ]
    [ allow-update { address_match_list } ; ]
    [ update-policy { update_policy_rule [...] } ; ]
    [ allow-update-forwarding { address_match_list } ; ]
    [ also-notify { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; ]
    [ check-names (warn|fail|ignore) ; ]
    [ dialup dialup_option ; ]
    [ file string ; ]
    [ forward (only|first) ; ]
    [ forwarders { ip_addr [port ip_port] ; [ ip_addr [port ip_port] ; ... ] }; ]
    [ ixfr-base string ; ]
    [ ixfr-tmp-file string ; ]
    [ maintain-ixfr-base yes_or_no ; ]
    [ masters [port ip_port] { ip_addr [port ip_port] [key key]; [...] } ; ]
    [ max-ixfr-log-size number ; ]
    [ max-transfer-idle-in number ; ]
    [ max-transfer-idle-out number ; ]
    [ max-transfer-time-in number ; ]
    [ max-transfer-time-out number ; ]
    [ notify yes_or_no | explicit ; ]
    [ pubkey number number number string ; ]
    [ transfer-source (ip4_addr | *) [port ip_port] ; ]
    [ transfer-source-v6 (ip6_addr | *) [port ip_port] ; ]
    [ notify-source (ip4_addr | *) [port ip_port] ; ]
    [ notify-source-v6 (ip6_addr | *) [port ip_port] ; ]
    [ zone-statistics yes_or_no ; ]
    [ sig-validity-interval number ; ]
    [ database string ; ]
    [ min-refresh-time number ; ]
    [ max-refresh-time number ; ]
    [ min-retry-time number ; ]
    [ max-retry-time number ; ]

}];

Zonenanweisungsdefinition und -verwendung

Zonentypen

Element Beschreibung
master

Der Server verfügt über eine Masterkopie der Daten für die Zone und kann dafür autoritative Antworten bereitstellen.

slave

Eine Slavezone ist ein Replikat einer Masterzone. Die Liste master gibt eine oder mehrere IP-Adressen von Controller-Servern an, die der Worker kontaktiert, um seine Kopie der Zone zu aktualisieren. Standardmäßig erfolgt die Übertragung von Port 53 auf den Servern. Dies kann für alle Server geändert werden, indem eine Portnummer vor der Liste der IP-Adressen oder auf Serverbasis nach der IP-Adresse angegeben wird. Die Authentifizierung beim Controller-Server kann auch mit serverspezifischen TSIG-Schlüsseln erfolgen. Wenn eine Datei angegeben wird, wird das Replikat in diese Datei geschrieben, sobald die Zone geändert wird, und bei einem Serverneustart erneut aus dieser Datei geladen. Die Verwendung einer Datei wird empfohlen, da sie häufig den Serverstart beschleunigt und eine unnötige Verschwendung von Bandbreite eliminiert. Beachten Sie, dass es für große Zahlen (in den Zehntausenden oder Hunderttausenden) von Zonen pro Server am besten ist, ein Benennungsschema mit zwei Ebenen für Zonendateinamen zu verwenden. Ein Arbeitsserver für die Zone " example.com könnte beispielsweise den Inhalt der Zone in einer Datei namens " ex/example.com ablegen, wobei " ex/ nur die ersten beiden Buchstaben des Zonennamens ist. (Die meisten Betriebssysteme verhalten sich sehr langsam, wenn Sie 100K Dateien in einem einzigen Verzeichnis ablegen)

stub

Eine Stubzone ähnelt einer Slavezone, mit der Ausnahme, dass sie nur die NS-Datensätze einer Masterzone und nicht die gesamte Zone repliziert. Stubzonen sind kein Standardteil des DNS; sie sind eine für die BIND-Implementierung spezifische Funktion.

Stub-Zonen können verwendet werden, um die Notwendigkeit eines Glue-NS-Eintrags in einer übergeordneten Zone zu beseitigen, was mit der Pflege eines Stub-Zoneneintrags und einer Reihe von Nameserveradressen in " named.conf verbunden ist. Diese Verwendung wird für neue Konfigurationen nicht empfohlen, und BIND 9 unterstützt sie nur in eingeschränkter Weise. In BIND 4/8 enthielten Zonenübertragungen einer übergeordneten Zone die NS-Datensätze aus untergeordneten Stubs dieser Zone. Dies bedeutete, dass Benutzer in einigen Fällen davon abkommen konnten, untergeordnete Stubs nur im Controller-Server für die übergeordnete Zone zu konfigurieren. BIND 9 mischt Zonendaten aus verschiedenen Zonen nie auf diese Weise zusammen. Wenn also für einen BIND 9-Controller, der eine übergeordnete Zone bedient, untergeordnete Stubzonen konfiguriert sind, müssen auch für alle Workerserver für die übergeordnete Zone dieselben untergeordneten Stubzonen konfiguriert sein.

Stubzonen können auch verwendet werden, um die Auflösung einer bestimmten Domäne zu erzwingen, damit eine bestimmte Gruppe autoritativer Server verwendet wird. Beispielsweise können die Caching-Nameserver in einem privaten Netzwerk, das die RFC2157 verwendet, mit Stub-Zonen für " 10.in-addr.arpa konfiguriert werden, um eine Reihe von internen Nameservern als autoritative Server für diese Domäne zu verwenden.

forward

Eine "Weiterleitungszone" ist eine Möglichkeit, die Weiterleitung pro Domäne zu konfigurieren. Eine zone -Anweisung des Typs forward kann eine forward -und/oder forwarders -Anweisung enthalten, die auf Abfragen innerhalb der durch den Zonennamen angegebenen Domäne angewendet wird. Wenn keine Anweisung forwarders vorhanden ist oder eine leere Liste für forwarders angegeben wird, erfolgt keine Weiterleitung für die Domäne, wobei die Auswirkungen von Weiterleitungen in der Anweisung options abgebrochen werden. Wenn Sie also diesen Zonentyp verwenden möchten, um das Verhalten der globalen Option forward zu ändern (d. h. "forward first to", dann "forward only" oder umgekehrt, aber dieselben Server wie global festgelegt verwenden möchten), müssen Sie die globalen Forwarder erneut angeben.

hint

Die Anfangsgruppe der Stammnamensserver wird mit einer "Hinweiszone" angegeben. Wenn der Server gestartet wird, verwendet er die Stammhinweise, um einen Stammnamensserver zu suchen und die aktuelle Liste der Stammnamensserver abzurufen. Wenn für die Klasse IN keine Hinweiszone angegeben ist, verwendet der Server einen kompilierten Standardsatz von Root-Server-Hinweisen. Andere Klassen als IN haben keine integrierten Standardhinweise.

class

Auf den Namen der Zone kann optional eine Klasse folgen. Wird keine Klasse angegeben, wird die Klasse " IN (für " Internet) angenommen. Dies ist für die überwiegende Mehrheit der Fälle richtig.

Die Klasse " hesiod ist nach einem Informationsdienst des MIT-Projekts Athena benannt. Es wird verwendet, um Informationen über verschiedene Systemdatenbanken, wie z. B. Benutzer, Gruppen, Drucker usw., gemeinsam zu nutzen. Das Schlüsselwort " HS ist ein Synonym für hesiod.

Eine weitere MIT-Entwicklung ist CHAOSnet, ein LAN-Protokoll, das mid-1970s entwickelt wurde. Die Zonendaten dafür können mit der Klasse " CHAOS angegeben werden.

Zonenoptionen

zulassen-benachrichtigen

Weitere Informationen finden Sie in der Beschreibung von allow-notify unter Zugriffssteuerung.

allow-query

Siehe die Beschreibung von allow-query in Zugriffssteuerung.

allow-transfer

Siehe die Beschreibung von allow-transfer in Zugriffssteuerung.

Aktualisierung zulassen

Gibt an, welche Hosts dynamische DNS-Aktualisierungen für Masterzonen übergeben dürfen. Standardmäßig werden Aktualisierungen von allen Hosts verweigert.

Aktualisierungsrichtlinie

Gibt eine Richtlinie für einfache sichere Aktualisierung an. Siehe Richtlinien für dynamische Aktualisierung.

Weiterleitung von Aktualisierungen zulassen

Gibt an, welche Hosts dynamische DNS-Aktualisierungen an Slavezonen übergeben dürfen, um an den Master weitergeleitet zu werden. Der Standardwert ist " { none; }, was bedeutet, dass keine Aktualisierungsweiterleitung durchgeführt wird. Um die Weiterleitung von Aktualisierungen zu aktivieren, geben Sie " allow-update-forwarding { any; }; an. Die Angabe anderer Werte als " { none; } oder " { any; } ist in der Regel kontraproduktiv, da die Verantwortung für die Kontrolle des Aktualisierungszugriffs beim Kontrollserver und nicht beim Arbeitsserver liegen sollte.

Beachten Sie, dass die Aktivierung der Aktualisierungsweiterleitungsfunktion auf einem Worker-Server möglicherweise Controller-Server, die auf einer unsicheren Zugriffssteuerung auf der Basis von IP-Adressen basieren, Angriffen aussetzen kann.

ebenfalls benachrichtigen

Nur aussagekräftig, wenn notify für diese Zone aktiv ist. Der Satz von Rechnern, die eine " DNS NOTIFY -Meldung für diese Zone erhalten, besteht aus allen aufgelisteten Nameservern (mit Ausnahme des primären Controllers) für die Zone sowie aus allen IP-Adressen, die mit auch-notify angegeben wurden. Bei jeder auch-notify-Adresse kann ein Port angegeben werden, um die Benachrichtigungen an einen anderen Port als den Standard-Port 53 zu senden. auch-notify ist für Stub-Zonen nicht sinnvoll. Der Standardwert ist die leere Liste.

Prüfnamen

Diese Option wurde in BIND 8 verwendet, um den Zeichensatz von Domänennamen in vom Netz empfangenen Stammdateien oder DNS-Antworten zu beschränken. BIND 9 beschränkt den Zeichensatz von Domänennamen nicht und implementiert die Option check-names nicht.

Datenbank

Geben Sie den Datenbanktyp an, der zum Speichern der Zonendaten verwendet werden soll. Die Zeichenfolge, die auf das Schlüsselwort database folgt, wird als Liste von durch Leerzeichen begrenzten Wörtern interpretiert. Das erste Wort gibt den Datenbanktyp an und alle nachfolgenden Wörter werden als Argumente an die Datenbank übergeben, damit sie in einer für den Datenbanktyp spezifischen Weise interpretiert werden.

Die Voreinstellung ist ' "rbt", die native In-Memory-Red-Black-Tree-Datenbank von BIND 9. Diese Datenbank verwendet keine Argumente.

Andere Werte sind möglich, wenn zusätzliche Datenbanktreiber mit dem Server verknüpft wurden. Einige Beispieltreiber sind in der Verteilung enthalten, aber standardmäßig sind keine verlinkt.

dialup

Weitere Informationen finden Sie in der Beschreibung von dialup unter Boolesche Optionen.

vor

Nur aussagekräftig, wenn die Zone eine Weiterleitungsliste enthält. Der Wert only bewirkt, dass die Suche fehlschlägt, nachdem die Weiterleitungsserver versucht wurden und keine Antwort erhalten, während first eine normale Suche zulässt.

forwarders

Wird zum Überschreiben der Liste der globalen Weiterleitungsserver verwendet. Wenn sie nicht in einer Zone des Typs forwardangegeben wird, erfolgt keine Weiterleitung für die Zone; die globalen Optionen werden nicht verwendet.

ixfr-Basis

Wurde in BIND 8 verwendet, um den Namen der Transaktionsprotokolldatei (Journaldatei) für dynamische Aktualisierung und IXFR anzugeben. BIND 9 ignoriert die Option und konstruiert den Namen der Journaldatei durch Anhängen von " ' .jnl" an den Namen der Zonendatei.

ixfr-tmp-datei

War eine nicht dokumentierte Option in BIND 8. In BIND 9 ignoriert.

max-transfer-time-in

Siehe die Beschreibung von max-transfer-time-in unter Zonenübertragungen.

max-transfer-idle-in

Siehe die Beschreibung von max-transfer-idle-in unter Zonenübertragungen.

max-transfer-zeitlimit

Siehe die Beschreibung von max-transfer-time-out unter Zonenübertragungen.

Maximale Übertragungs-Leerlaufzeit

Weitere Informationen finden Sie in der Beschreibung von max-transfer-idle-out unter Zonenübertragungen.

Hinweis

Weitere Informationen finden Sie in der Beschreibung von notify unter Boolesche Optionen.

veröffentlichungsschlüssel

In BIND 8 sollte mit dieser Option ein öffentlicher Zonenschlüssel für die Überprüfung von Signaturen in DNSSEC-signierten Zonen angegeben werden, wenn diese von Platte geladen werden. BIND 9 überprüft Signaturen beim Laden nicht und ignoriert die Option.

Zonenstatistik

Bei ' yes' speichert der Server statistische Informationen für diese Zone, die in die in den Serveroptionen definierte Statistikdatei übertragen werden können.

sig-validity-interval

Siehe die Beschreibung von sig-validity-interval in Optimierung.

transfer-source

Weitere Informationen finden Sie in der Beschreibung von transfer-source unter Zonenübertragungen .

Benachrichtigungsquelle

Weitere Informationen finden Sie in der Beschreibung von notify-source unter Zonenübertragungen .

minimale Aktualisierungszeit, maximale Aktualisierungszeit, minimale Wiederholungszeit, maximale Wiederholungszeit

Weitere Informationen finden Sie in der Beschreibung unter Optimierung.

Richtlinien für dynamische Aktualisierung

BIND 9 unterstützt zwei alternative Methoden, Clients das Recht zu erteilen, dynamische Aktualisierungen für eine Zone auszuführen, die mit der Option allow-update bzw. update-policy konfiguriert wurde.

Die Klausel allow-update funktioniert auf dieselbe Weise wie in früheren Versionen von BIND. Sie erteilt Clients die Berechtigung, jeden Datensatz mit einem beliebigen Namen in der Zone zu aktualisieren.

Die Klausel update-policy ist in BIND 9 neu und ermöglicht eine differenziertere Steuerung der zulässigen Aktualisierungen. Eine Gruppe von Regeln wird angegeben, wobei jede Regel Berechtigungen für einen oder mehrere Namen erteilt oder verweigert, die von einer oder mehreren Identitäten aktualisiert werden sollen. Wenn die Anforderungsnachricht für dynamische Aktualisierung signiert ist (d. h., sie enthält einen TSIG-oder SIG-Datensatz (0)), kann die Identität des Unterzeichners bestimmt werden.

Regeln werden in der Zonenoption update-policy angegeben und sind nur für Masterzonen von Bedeutung. Wenn die Anweisung update-policy vorhanden ist, ist dies ein Konfigurationsfehler für die Anweisung allow-update . Die Anweisung update-policy untersucht nur den Unterzeichner einer Nachricht. Die Quellenadresse ist nicht relevant.

So sieht eine Regeldefinition aus:

( grant | deny ) identity nametype name [ types ]

Jede Regel erteilt oder verweigert Berechtigungen. Sobald eine Nachricht erfolgreich mit einer Regel übereinstimmt, wird die Operation sofort erteilt oder verweigert und es werden keine weiteren Regeln untersucht. Eine Regel wird abgeglichen, wenn der Unterzeichner mit dem Identitätsfeld übereinstimmt, der Name mit dem Namensfeld übereinstimmt und der Typ im Typfeld angegeben ist.

Das Identitätsfeld gibt einen Namen oder einen Platzhalternamen an. Das Feld nametype hat 4 Werte: name, ' subdomain, ' wildcard und ' self

Element Beschreibung

name

Trifft zu, wenn der aktualisierte Name mit dem Namen im Namensfeld übereinstimmt.

subdomain

Trifft zu, wenn der aktualisierte Name eine Unterdomäne des Namens im Namensfeld ist (einschließlich des Namens selbst)

wildcard

Trifft zu, wenn der aktualisierte Name eine gültige Erweiterung des Platzhalternamens im Namensfeld ist

self

Trifft zu, wenn der aktualisierte Name mit dem Nachrichtenunterzeichner identisch ist. Das Namensfeld wird ignoriert.

Wenn keine Typen angegeben sind, entspricht die Regel allen Typen außer SIG, NS, SOA und NXT. Typen können namentlich angegeben werden, einschließlich "ANY" (ANY entspricht allen Typen außer NXT, die nie aktualisiert werden können).

Zonendatei

DOMAIN Data File, DOMAIN Reverse Data File, DOMAIN Cache File und DOMAIN Local

Typen von Ressourcendatensätzen und Verwendungszeitpunkt

In diesem Abschnitt, der größtenteils aus RFC 1034 übernommen wurde, wird das Konzept eines Ressourcendatensatzes (RR) beschrieben und erläutert, wann jeder verwendet wird. Seit der Veröffentlichung von RFC 1034 wurden mehrere neue RRs identifiziert und im DNS implementiert. Diese sind ebenfalls enthalten.

Ressourceneinträge

Ein Domänenname identifiziert einen Knoten. Jeder Knoten hat eine Gruppe von Ressourceninformationen, die leer sein können. Die Gruppe der Ressourceninformationen, die einem bestimmten Namen zugeordnet sind, besteht aus separaten RRs. Die Reihenfolge der RRs in einer Gruppe ist nicht relevant und muss nicht von Namensservern, Resolvern oder anderen Teilen des DNS beibehalten werden. Das Sortieren mehrerer RRs ist jedoch zu Optimierungszwecken zulässig, beispielsweise um anzugeben, dass ein bestimmter Server in der Nähe zuerst versucht werden soll. Siehe Anweisung 'sortlist' und RRset Ordering.

Die Komponenten eines Ressourcendatensatzes sind:

Element Beschreibung

Eignername

Der Name der Domäne, in der sich der RR befindet.

Typ

Ein codierter 16-Bit-Wert, der den Typ der Ressource in diesem Ressourcendatensatz angibt Typen beziehen sich auf abstrakte Ressourcen.

TTL

die Lebensdauer der RR. Dieses Feld ist eine 32-Bit-Ganzzahl in Sekunden und wird hauptsächlich von Resolvern verwendet, wenn sie RRs zwischenspeichern. Die TTL beschreibt, wie lange ein RR zwischengespeichert werden kann, bevor er gelöscht werden sollte.

Klasse

Ein codierter 16-Bit-Wert, der eine Protokollfamilie oder Instanz eines Protokolls identifiziert.

RDATEN

Der Typ und manchmal klassenabhängige Daten, die die Ressource beschreiben.

Im Folgenden sind die Typen gültiger RRs aufgeführt (einige dieser aufgelisteten, aber nicht veralteten Typen sind experimentell (x) oder historisch (h) und werden nicht mehr allgemein verwendet):

Element Beschreibung

A

eine Hostadresse.

A6

Eine IPv6 -Adresse.

AAAA

Veraltetes Format der IPv6 -Adresse

AFSDB

(x) Position der AFS® -Datenbankserver. Experimentell.

CNAME

Gibt den kanonischen Namen eines Aliasnamens an

DNAME

für die Delegierung von Umkehradressen. Ersetzt den angegebenen Domänennamen durch einen anderen Namen, nach dem gesucht werden soll. Beschrieben in RFC 2672.

HINFO

Gibt die CPU und das Betriebssystem an, die von einem Host verwendet werden.

ISDN

(x) Darstellung von ISDN-Adressen. Experimentell.

KEY

Speichert einen öffentlichen Schlüssel, der einem DNS-Namen zugeordnet ist.

LOC

(x) zum Speichern von GPS-Informationen. Siehe RFC 1876. Experimentell.

MX

Gibt einen Mailaustausch für die Domäne an. Details finden Sie in RFC 974.

NS

Der autoritative Namensserver für die Domäne.

NXT

in DNSSEC verwendet, um sicher anzugeben, dass RRs mit einem Eignernamen in einem bestimmten Namensintervall in einer Zone nicht vorhanden sind, und um anzugeben, welche RR-Typen für einen vorhandenen Namen vorhanden sind. Weitere Informationen finden Sie in RFC 2535.

PTR

Ein Zeiger auf einen anderen Teil des Domänennamensbereichs.

RP

(x) Informationen über Personen, die für die Domain verantwortlich sind. Experimentell.

RT

(x) Routing-through-Bindung für Hosts, die keine eigenen direkten WAN-Adressen haben. Experimentell.

SIG

("Unterschrift") enthält Daten, die im sicheren DNS authentifiziert wurden. Weitere Informationen finden Sie in RFC 2535.

SOA

Gibt den Anfang einer Berechtigungszone an

SRV

Informationen über bekannte Netzwerkdienste (ersetzt WKS).

WKS

(h) Informationen darüber, welche bekannten Netzservices (z. B. SMTP) eine Domäne unterstützt. Historisch, ersetzt durch neuere RR SRV.

Die folgenden Klassen von Ressourcendatensätzen sind derzeit im DNS gültig:

Element Beschreibung

EIN

Für Informationen über andere, ältere Klassen von RRs das Internet-System.

RDATA sind die typabhängigen oder klassenabhängigen Daten, die die Ressource beschreiben:

Element Beschreibung

A

Für die IN-Klasse eine 32-Bit-IP-Adresse.

A6

Ordnet einen Domänennamen einer IPv6 -Adresse zu und stellt eine Dereferenzierung für führende "Präfix" -Bits bereit.

CNAME

einen Domänennamen.

DNAME

stellt eine alternative Benennung für eine vollständige Unterverzeichnisstruktur des Domänennamensbereichs und nicht für einen einzelnen Knoten bereit. Dadurch wird ein Suffix eines abgefragten Namens durch einen Namen aus den RDATA des DNAME-Datensatzes ersetzt.

MX

Ein 16-Bit-Vorgabewert (niedriger ist besser), gefolgt von einem Hostnamen, der bereit ist, als Mailaustausch für die Eignerdomäne zu fungieren.

NS

Ein vollständig qualifizierter Domänenname.

PTR

Ein vollständig qualifizierter Domänenname.

SOA

mehrere Felder.

Der Eignername ist häufig implizit, anstatt einen integralen Teil der RR zu bilden. Beispielsweise bilden viele Namensserver intern Baumstruktur-oder Hashstrukturen für den Namespace und verketten RRs aus Knoten. Die verbleibenden RR-Teile sind der feste Header (Typ, Klasse, TTL), der für alle RRs konsistent ist, und ein variabler Teil (RDATA), der den Anforderungen der beschriebenen Ressource entspricht.

Die Bedeutung des TTL-Felds ist ein Zeitlimit dafür, wie lange ein RR in einem Cache aufbewahrt werden kann. Dieser Grenzwert gilt nicht für autoritative Daten in Zonen, sondern wird auch durch die Aktualisierungsrichtlinien für die Zone überschritten. Die Lebensdauer wird vom Administrator für die Zone zugeordnet, aus der die Daten stammen. Während kurze TTLs verwendet werden können, um das Caching zu minimieren, und eine Null-TTL verhindert das Caching, die Realitäten der Internetleistung legen nahe, dass diese Zeiten in der Reihenfolge der Tage für den typischen Host liegen sollten. Wenn eine Änderung erwartet werden kann, kann die Lebensdauer vor der Änderung verringert werden, um die Inkonsistenz während der Änderung zu minimieren, und anschließend wieder auf den vorherigen Wert nach der Änderung erhöht werden.

Die Daten im RDATA-Abschnitt von RRs werden als Kombination aus Binärzeichenfolgen und Domänennamen übertragen. Die Domänennamen werden häufig als "Zeiger" auf andere Daten im DNS verwendet.

Textausdruck von RRs

RRs werden im Binärformat in den Paketen des DNS-Protokolls und in der Regel in hochcodierter Form dargestellt, wenn sie in einem Namensserver oder Resolver gespeichert werden. In den Beispielen in RFC 1034 wurde ein ähnlicher Stil wie in Stammdateien verwendet, um den Inhalt von RRs anzuzeigen. In diesem Format werden die meisten RRs in einer einzigen Zeile angezeigt, obwohl Fortsetzungszeilen mit runden Klammern möglich sind.

Der Anfang der Zeile gibt den Eigner des RR an. Wenn eine Zeile mit einem Leerzeichen beginnt, wird angenommen, dass der Eigner mit dem des vorherigen RR identisch ist. Zur besseren Lesbarkeit werden häufig Leerzeilen eingefügt.

Nach dem Eigentümer listen wir die TTL, Typ und Klasse der RR auf. Klasse und Typ verwenden die oben definierten mnemonischen Zeichen und TTL ist eine ganze Zahl vor dem Typfeld. Um Mehrdeutigkeit beim Parsing zu vermeiden, sind die mnemonischen Zeichen für Typ und Klasse nicht miteinander verbunden, TTLs sind ganze Zahlen und das mnemonische Zeichen für Typ ist immer die letzte. Die IN-Klasse und TTL-Werte werden häufig aus Gründen der Übersichtlichkeit von Beispielen weggelassen.

Die Ressourcendaten oder der RDATA-Abschnitt des RR werden anhand der typischen Darstellung für die Daten angegeben.

Beispielsweise könnten die in einer Nachricht enthaltenen RRs wie folgt angezeigt werden:

Element Beschreibung Wert

ISI.EDU.

MX

10 VENERA.ISI.EDU.

 

MX

10 VAXA.ISI.EDU

VENERA.ISI.EDU

A

128.9.0.32

 

A

10.1.0.52

VAXA.ISI.EDU

A

10.2.0.27

 

A

128.9.0.33

Die MX-RRs haben einen RDATA-Abschnitt, der aus einer 16-Bit-Zahl gefolgt von einem Domänennamen besteht. Die AdressrRs verwenden ein Standardformat für IP-Adressen, um eine 32-Bit-Internetadresse zu enthalten.

Dieses Beispiel zeigt sechs RRs mit jeweils zwei RRs in jedem der drei Domänennamen.

In ähnlicher Weise könnten wir Folgendes sehen:

Element Beschreibung Wert

XX.LCS.MIT.EDU. IN

A

10.0.0.44

CH

A

MIT.EDU. 2420

Dieses Beispiel zeigt zwei Adressen für " XX.LCS.MIT.EDU, jede mit einer anderen Klasse.

Diskussion über MX-Datensätze

Wie oben beschrieben, speichern Domänenserver Informationen als eine Reihe von Ressourcendatensätzen, von denen jeder eine bestimmte Einzelinformation zu einem bestimmten Domänennamen enthält (der normalerweise, aber nicht immer ein Host ist). Die einfachste Möglichkeit, einen RR zu betrachten, ist ein typisiertes Paar von Bezugselementen, ein Domänenname, der mit relevanten Daten abgeglichen und mit einigen zusätzlichen Typinformationen gespeichert wird, damit Systeme ermitteln können, wann der RR relevant ist.

MX-Datensätze werden verwendet, um die Zustellung von E-Mails zu steuern. Die im Datensatz angegebenen Daten sind eine Priorität und ein Domänenname. Die Priorität steuert die Reihenfolge, in der die E-Mail-Zustellung versucht wird, wobei die niedrigste Nummer an erster Stelle steht. Wenn zwei Prioritäten identisch sind, wird ein Server zufällig ausgewählt. Wenn keine Server mit einer bestimmten Priorität antworten, greift der Mail-Transportagent auf die nächsthöhere Priorität zurück. Prioritätsnummern haben keine absolute Bedeutung-sie sind nur für andere MX-Einträge für diesen Domainnamen relevant. Der angegebene Domänenname ist die Maschine, an die die Mail zugestellt wird. Ihm muss ein Datensatz zugeordnet sein-CNAME ist nicht ausreichend.

Wenn für eine bestimmte Domäne sowohl ein CNAME-als auch ein MX-Eintrag vorhanden ist, ist der MX-Eintrag fehlerhaft und wird ignoriert. Stattdessen wird die E-Mail an den Server zugestellt, der in dem MX-Eintrag angegeben ist, auf den der CNAME verweist.

example.com.			IN		MX		10				mail.example.com.
							IN		MX		10				mail2.example.com.
							IN		MX		10				mail.backup.org.
mail.example.com.		IN		A		10.0.0.1		
mail2.example.com.	IN		A		10.0.0.2		

Beispiel:

Es wird versucht, die Post an " mail.example.com und " mail2.example.com (in beliebiger Reihenfolge) zuzustellen, und wenn dies nicht gelingt, wird die Zustellung an " mail.backup.org versucht.

TTLs festlegen

Die Lebensdauer des RR-Felds ist eine 32-Bit-Ganzzahl, die in Sekundeneinheiten dargestellt wird und hauptsächlich von Resolvern verwendet wird, wenn sie RRs zwischenspeichern. Die TTL beschreibt, wie lange ein RR zwischengespeichert werden kann, bevor er gelöscht werden sollte. Die folgenden drei TTL-Typen werden derzeit in einer Zonendatei verwendet.

Element Beschreibung

SOA

Das letzte Feld in der SOA ist die negative TTL für das Caching. Damit wird gesteuert, wie lange andere Server NXDOMAIN-Antworten (NXDOMAIN) von Ihnen zwischenspeichern.

Die maximale Zeit für negatives Caching beträgt 3 Stunden (3h).

$TTL

Die Anweisung $TTL am Anfang der Zonendatei (vor der SOA) gibt eine Standard-TTL für jeden RR ohne eine bestimmte TTL-Gruppe an.

RR-TTLs

Jeder RR kann eine TTL als zweites Feld im RR haben, die steuert, wie lange andere Server ihn zwischenspeichern können.

Alle diese TTLs sind standardmäßig in Sekundeneinheiten angegeben, können aber auch explizit angegeben werden, z. B. " 1h30m.

Umkehrzuordnung in IPv4

Die umgekehrte Namensauflösung (d. h. die Umsetzung von IP-Adresse in Name) wird über die in-addr.arpa -Domäne und PTR-Datensätze erreicht. Einträge in der Domäne in-addr.arpa werden in der niedrigstwertigen Reihenfolge von links nach rechts gelesen. Dies ist die entgegengesetzte Reihenfolge, wie IP-Adressen normalerweise geschrieben werden. Daher hätte eine Maschine mit der IP-Adresse 10.1.2.3 den entsprechenden in-addr.arpa -Namen 3.2.1.10.in-addr.arpa. Dieser Name sollte einen PTR-Ressourcensatz haben, dessen Datenfeld der Name der Maschine ist, oder optional mehrere PTR-Datensätze, wenn die Maschine mehrere Namen hat. Beispiel für die Domäne [ example.com ]:

Element Beschreibung

$ORIGIN

2.1.10.in-addr.arpa

3

IN PTR foo.example.com.

Hinweis: Die $ORIGIN -Zeilen in den Beispielen dienen nur zur Bereitstellung von Kontext für die Beispiele. Sie werden nicht unbedingt in der tatsächlichen Verwendung angezeigt. Sie werden hier nur verwendet, um anzugeben, dass das Beispiel relativ zum aufgelisteten Ursprung ist.

Andere Zonendateianweisungen

Das Masterdateiformat wurde ursprünglich in RFC 1035 definiert und anschließend erweitert. Während das Masterdateiformat selbst klassenunabhängig ist, müssen alle Datensätze in einer Masterdatei dieselbe Klasse aufweisen.

Zu den Anweisungen für Masterdateien gehören $ORIGIN, $INCLUDEund $TTL.

Anweisung $ORIGIN

Syntax: $ORIGIN ' domain-name [ ' comment ]

$ORIGIN legt den Domänennamen fest, der an alle nicht qualifizierten Datensätze angehängt wird. Wenn eine Zone zum ersten Mal eingelesen wird, gibt es ein implizites ' $HERKUNFT < ' zone-name> ' .. Der aktuelle ' $HERKUNFT wird an die im Argument ' $HERKUNFT angegebene Domäne angehängt, wenn sie nicht absolut ist.

$ORIGIN example.com.
WWW     CNAME   MAIN-SERVER

ist äquivalent zu

WWW.EXAMPLE.COM. CNAME MAIN-SERVER.EXAMPLE.COM.

Anweisung $INCLUDE

Syntax: $INCLUDE ' filename [ ' origin ] [ ' comment ]

Lesen und verarbeiten Sie die Datei " filename so, als wäre sie an dieser Stelle in die Datei eingefügt worden. Wenn der Ursprung angegeben ist, wird die Datei mit $ORIGIN auf diesen Wert gesetzt, andernfalls wird der aktuelle $ORIGIN verwendet.

Der Ursprung und der aktuelle Domänenname werden auf die Werte zurückgesetzt, die sie vor $INCLUDE hatten, nachdem die Datei gelesen wurde.

Hinweis: RFC 1035 gibt an, dass der aktuelle Ursprung nach einem $INCLUDEwiederhergestellt werden soll. Es wird jedoch im Hintergrund angegeben, ob auch der aktuelle Domänenname wiederhergestellt werden soll. BIND 9 stellt beide wieder her. Dies könnte als Abweichung von RFC 1035 und/oder einem Feature ausgelegt werden.

$TTL-Anweisung

Syntax: $TTL ' default-ttl [ ' comment ]

Legen Sie die Lebensdauer (Time To Live, TTL) für nachfolgende Datensätze mit nicht definierten TTLs fest. Gültige TTLs liegen im Bereich von 0 bis 2147483647 Sekunden.

$TTL ist in RFC 2308 definiert.

BIND-Masterdateierweiterung: Anweisung $GENERATE

Syntax: $GENERATE ' range ' lhs ' type ' rhs [ ' comment ]

$GENERATE wird zum Erstellen einer Reihe von Ressourcendatensätzen verwendet, die sich nur durch einen Iterator voneinander unterscheiden. $GENERATE kann verwendet werden, um ohne großen Aufwand die Datensätze zu generieren, die erforderlich sind, um die in RFC 2317: Classless IN-ADDR.ARPA -Delegierung.

$ORIGIN 0.0.192.IN-ADDR.ARPA.
$GENERATE 1-2 0 NS SERVER$.EXAMPLE.
$GENERATE 1-127 $ CNAME $.0

ist äquivalent zu

0.0.0.192.IN-ADDR.ARPA NS SERVER1.EXAMPLE.
0.0.0.192.IN-ADDR.ARPA NS SERVER2.EXAMPLE.
1.0.0.192.IN-ADDR.ARPA CNAME 1.0.0.0.192.IN-ADDR.ARPA
2.0.0.192.IN-ADDR.ARPA CNAME 2.0.0.0.192.IN-ADDR.ARPA
...
127.0.0.192.IN-ADDR.ARPA CNAME 127.0.0.0.192.IN-ADDR.ARPA
.
Element Beschreibung

Bereich

Dies kann eine von zwei Formen sein: Start-Stopp oder Start-Stopp/Schritt. Wenn das erste Formular verwendet wird, wird Schritt auf 1 gesetzt. Start, Stopp und Schritt müssen alle positiv sein.

lhs

lhs beschreibt den Eignernamen der zu erstellenden Ressourcendatensätze. Alle einzelnen Symbole $ auf der Seite lhs werden durch den Iteratorwert ersetzt. Um ein $in der Ausgabe zu erhalten, müssen Sie $ mit einem Backslash als Escapezeichen versehen \, z. B. \ $. Auf das $ können optional Modifikatoren folgen, die den Offset vom Interator, der Feldbreite und der Basis ändern. Modifikatoren werden durch einen { direkt nach dem $ als ${offset[,width[,base]]}eingeführt. Beispiel: ${-20,3,d} , wodurch 20 vom aktuellen Wert subtrahiert wird, gibt das Ergebnis als Dezimalzahl in einem Feld mit Nullen aufgefüllt mit 3 aus. Verfügbare Ausgabeformulare sind dezimal (d), oktal (o) und hexadezimal (x oder X für Großbuchstaben). Der Standardmodifikator ist ${0,0,d}. Wenn die lhs nicht absolut sind, wird der aktuelle $ORIGIN an den Namen angehängt.

Aus Gründen der Kompatibilität mit früheren Versionen wird $$ weiterhin als Literal $in der Ausgabe erkannt.

Typ

Derzeit werden nur PTR, CNAME, DNAME, A, AAAA und NS unterstützt.

rhs

rhs ist ein Domänenname. Es wird ähnlich wie lhs verarbeitet.

Die Anweisung $GENERATE ist eine BIND-Erweiterung und nicht Teil des Standardzonendateiformats.

Dateien

Tabelle 11. Dateien
Element Beschreibung
/usr/samples/tcpip/named.conf Enthält die Beispieldatei " named.conf.

named.conf Dateiformat für TCP/IP - BIND Version 9.18

Informationen über das ' named.conf -Dateiformat für BIND Version 9.18 finden Sie unter named.conf - Konfigurationsdatei für named.