Die Anweisungen in der Konfigurationsdatei steuern den DNS-Resolver.
Die Anweisungen bestehen aus den Schlüsselwörtern nameserver, domain, search, gefolgt von den spezifischen Operanden. Die Schlüsselwörter beginnen in der ersten Spalte der Zeile und sind in Kleinbuchstaben zu schreiben.
Ein Strichpunkt (;) oder ein Raute-Zeichen (#) in der ersten Spalte bewirkt, dass diese Zeile als Kommentarzeile behandelt wird.
Folgende Anweisungen sind möglich:
nameserver IPv4 oder IPv6- Adresse
Mit einem nameserver-Eintrag wird GETDNS die IPv4 oder IPv6-Adresse eines DNS-Servers bekannt gegeben. Anders formuliert sind sowohl IP- als auch IPv6-Adressen zulässig. Sie müssen mindestens einen bis maximal drei nameserver-Einträge in der Konfigurationsdatei spezifizieren. Auch wenn der lokale GETDNS nicht aktiv ist, hat es einen Sinn, einen gültigen DNS-Server einzutragen. Dann ist es nicht zwingend notwendig, bei der Nutzung von DIG und NSLOOKUP eine Server-Adresse anzugeben.
Um die Kompatibilität mit den Vorgängerversionen zu bewahren, ist in der ausgelieferten Konfigurationsdatei ein nameserver-Eintrag mit der IP-Adresse 127.0.0.1 eingetragen. Er dient nur dazu, GETDNS auch starten zu können, wenn kein DNS-Server genutzt werden soll. Sie müssen diesen Eintrag wieder löschen, sobald ein real genutzer DNS-Server eingetragen wird.
Ist mehr als ein DNS-Server angegeben, so ist es nicht möglich, die Reihenfolge der Nutzung festzulegen. Ein programminterner Algorithmus legt die Reihenfolge nach der Erreichbarkeit der DNS-Server fest.
Deshalb ist es erforderlich, dass die weiteren DNS-Server immer redundant sind und grundsätzlich jede Anfrage bearbeiten können.
Beispiel mit nameserver-Einträgen
nameserver 15.32.16.4 nameserver 16.63.31.5 nameserver FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
domain domain
Durch den domain-Eintrag wird eine Default-Domäne für die Anfragen des DNS-Resolvers an den bzw. die DNS-Name-Server definiert. Dabei ist zu beachten, dass maximal ein domain-Eintrag gültig ist; domain- und search-Einträge schließen sich gegenseitig aus.
- Enthält die Konfigurationsdatei mehrere domain, aber keine search-Einträge, so gilt der letzte domain-Eintrag.
- Werden beide Anweisungen verwendet, so wird die zuletzt angegebene Anweisung ausgewertet.
Die Wirkungsweise des domain-Eintrages ist abhängig davon, ob der in einer DNS-Anfrage angegebene DNS-Name einen Punkt (.) enthält oder nicht. Die folgende Beschreibung gilt für die Standardeinstellung der LWRESD-Optionen:
Der angegebene DNS-Name enthält einen Punkt:
Kann der DNS-Server eine Anfrage für einen Namen name.domain nicht erfolgreich beantworten, wird vom DNS-Resolver eine erneute DNS-Anfrage mit name an den DNS-Server gestellt.Der angegebene DNS-Name enthält keinen Punkt:
Kann der DNS-Server eine DNS-Anfrage nach einem Namen name nicht erfolgreich beantworten, wird vom DNS-Resolver eine erneute DNS-Anfrage nach name.domain an den DNS-Server gestellt.
Die folgenden Beispiele zeigen die vom DNS-Resolver erzeugten Namen für die Anfragen an einen DNS-Server.
Beispiel für DNS-Namen mit Punkt
Eintrag in der Konfigurationsdatei:
domain part.my-company.com
Vom Anwender angegebener Name:
my.host
Vom DNS-Resolver erzeugte Namen:
my.host my.host.part.my-company.com my.host.my-company.com
Beispiel für DNS-Namen ohne Punkt
Eintrag in der Konfigurationsdatei:
domain part.my-company.com
Vom Anwender angegebener Name:
myhost
Vom DNS-Resolver erzeugte Namen:
myhost.part.my-company.com myhost.my-company.com myhost
search domain1[ domain2[ .... [ domain8]...]
Durch den search-Eintrag werden dem DNS-Resolver mehrere Domänen-Namen für die Anfragen an den bzw. die DNS-Name-Server definiert.
- Es sind maximal 8 search-Einträge gültig.
- domain- und search-Einträge schließen sich gegenseitig aus.
- Wenn beide Anweisungen verwendet werden, wird die zuletzt angegebene Anweisung ausgewertet.
Die Wirkungsweise des search-Eintrages hängt davon ab, ob der in der Anfrage angegebene DNS-Name einen Punkt (.) enthält oder nicht:
Der angegebene DNS-Name enthält einen Punkt:
Es wird eine DNS-Anfrage mit name.domain1 an den DNS-Server gestellt. Wird diese nicht erfolgreich beantwortet, dann wird vom DNS-Resolver die DNS-Anfrage mit dem nächsten im search-Eintrag definierten Domänennamen domaini (i = 2 ... 8) wiederholt. Dies wird solange fortgesetzt, bis entweder die DNS-Anfrage vom DNS-Server erfolgreich beantwortet wurde oder bis kein weiterer Domänenname im search-Eintrag definiert ist.
Falls nach der Abarbeitung der in der search-Anweisung definierten Domänennamen noch keine DNS-Anfrage vom DNS-Server erfolgreich beantwortet wurde, wird eine DNS-Anfrage mit name gestellt.
Der angegebene DNS-Name enthält keinen Punkt:
Kann der DNS-Server eine DNS-Anfrage für einen Namen name nicht erfolgreich beantworten, stellt der DNS-Resolver eine erneute DNS-Anfrage mit name.domain1 an den DNS-Server. Wird diese DNS-Anfrage vom DNS-Server ebenfalls nicht erfolgreich beantwortet, dann wiederholt der DNS-Resolver die DNS-Anfrage mit dem nächsten im search-Eintrag definierten Domänennamen domaini (i = 2 ... 8). Dies wird solange fortgesetzt, bis entweder die DNS-Anfrage vom DNS-Server erfolgreich beantwortet wurde oder bis kein weiterer Domänenname im search-Eintrag definiert ist.
Die folgenden Beispiele zeigen die vom DNS-Resolver erzeugten Namen für die Anfragen an einen DNS-Server:
Beispiel für DNS-Namen mit Punkt
Eintrag in der Konfigurationsdatei:
search part-1.my-company.com part-2.my-company.com
Vom Anwender angegebener Name:
my.host
Vom DNS-Resolver erzeugte Namen:
my.host my.host.part-1.my-company.com my.host.part-2.my-company.com
Beispiel für DNS-Namen ohne Punkt
Eintrag in der Konfigurationsdatei:
search part-1.my-company.com part-2.my-company.com
Vom Anwender angegebener Name:
myhost
Vom DNS-Resolver erzeugte Namen:
myhost.part-1.my-company.com myhost.part-2.my-company.com myhost
dnsserver : IPv4- oder IPv6-Adresse
Unter dieser Adresse wird der listen-socket des GETDNS geöffnet, damit er von BCAM aus erreichbar ist.
dnslport Portnummer
Unter dieser Portnummer wird der listen-socket des GETDNS eröffnet.
destport Portnummer
Hier kann ein von der Standard Portnummer 53 abweichender Port für die eingetragenen Nameserver angegeben werden. Damit werden Tests von Nameservern ermöglicht, die zu diesem Zweck unter einer Nicht-Standard Portnummer gestartet wurden.
parallel <0...1>
Durch diese Option kann eingestellt werden, ob die nameserver, falls mehrere vorhanden sind, nacheinander oder zeitgleich kontaktiert werden.
Ein Wert von 0 bedeutet, dass die DNS-Anfrage nur dann an den nächsten nameserver geschickt wird, wenn der vorherige nameserver nicht geantwortet hat. Die Wartezeit kann mit dem timeout-Parameter eingestellt werden.
Falls parallel auf 0 gestellt ist und der erste nameserver nicht antwortet oder erreichbar ist, kommt es zu Wartezeiten in den aufrufenden SOCKETS-Anwendungen. Die Anwendungen warten solange, bis eine Antwort eingetroffen ist oder alle nameserver die Wartezeit überschritten haben. Standardmäßig wird der nächste nameserver nach 5 Sekunden kontaktiert.
Bei einem Wert von 1 wird die DNS-Anfrage sofort an alle verfügbaren nameserver geschickt. Das Ergebnis wird aus der zuerst eintreffenden Antwort extrahiert und an den Benutzer zurückgegeben. Mögliche Antworten der anderen nameserver werden verworfen.
Falls parallel auf 1 gestellt wird, sollte unbedingt sichergestellt sein, dass alle nameserver identische Antworten liefern. Ansonsten kann es zu inkonsistenten DNS-Auskünften kommen.
Standardwert: 1
options <option1>:<val1> <option2>:<val2> ....
Mit diesem Parameter können verschiedene Einstellungen für das Verhalten des DNS-Resolvers geändert werden. Aktuell gibt es zwei Optionen:
- timeout: <seconds>
Gibt an, wie lange der DNS-Resolver auf die Antwort des nameservers wartet, bevor (wenn vorhanden) der nächste nameserver aus der Konfigurationsdatei kontaktiert wird. Standardwert: 5 Sekunden dnssec: <level>
Stellt ein, ob für DNS-Anfragen DNSSEC benutzt werden soll. Für eine erfolgreiche Nutzung von DNSSEC müssen auch die in der Konfigurationsdatei eingetragenen nameserver mit DNSSEC umgehen können!
Level 0: DNSSEC ist deaktiviert
Level 1: DNSSEC ist aktiviert und DNS-Antworten, die die Sicherheitsprüfung nicht bestehen, werden verworfen
Level 2: DNSSEC ist aktiviert, DNS-Antworten werden angenommen unabhängig davon, ob sie die Sicherheitsprüfung bestehen (empfohlen nur für Test- und Diagnosezwecke)
Standardwert: 0Das Einschalten von DNSSEC erhöht den CPU-Bedarf von DNS-Anfragen um ein Vielfaches.
Beispiel für einen Eintrag
options timeout: 2 dnssec: 0
In diesem Fall wartet der DNS-Resolver bis zu 2 Sekunden, bevor er den nächsten nameserver kontaktiert. Das DNSSEC ist zudem deaktiviert.
Sollte in der Konfigurationsdatei eine Option mehrfach vorkommen, wird nur der erste Eintrag der jeweiligen Option berücksichtigt.
Änderungen mit den Schlüsselwörtern dnsserver und dnslport werden nur durch einen Neustart des GETDNS wirksam, das heißt es ist die Kommandofolge STOP-DNS-CLIENT/START-DNS-CLIENT erforderlich.
Hinweis
Die Angaben zur Erreichbarkeit des GETDNS sollten den Standard-Informationen in BCAM (IPv4-Loopback-Adresse und Standardport 921) oder den durch das BCAM-Kommando MODIFY-DNS-ACCESS geänderten Adressierungsdaten (IPv4- oder IPv6-Adressen, Portnummer) entsprechen (siehe Abschnitt „MODIFY-DNS-ACCESS / MDDNA: DNS- Zugriff in BCAM ändern")!
Standardname der Konfigurationsdatei:
SYSDAT.SOCKETS.nnn.RESOLV.CONF