Die Namensauflösung muß von den Programmentwicklern nicht selbst geschrieben werden. Unter Linux steht in der Bibliothek libc ein sogenannter Resolver zur Verfügung, der diese Aufgabe übernimmt. Welche Namensauflösung von dem Resolver in welcher Reihenfolge benutzt werden soll, können Sie selbst in einer Konfigurationsdatei einstellen. Im Moment sind je nach eingesetzter Software zwei Dateien aktuell.
Das alte System bediente sich der Datei /etc/host.conf. Diese Datei wird auch heute noch benötigt, wenn Sie Programme benutzen, die auf den alten Versionen 4 und 5 der libc-Bibliothek basieren.
defiant:~ # cat /etc/host.conf # # /etc/host.conf - resolver configuration file # # The following option is only used by binaries linked against # libc4 or libc5. This line should be in sync with the "hosts" # option in /etc/nsswitch.conf. # order hosts, bind # # The following options are used by the resolver library: # multi on
Die Direktive order gibt die Reihenfolge der verwendeten Namensauflösungsverfahren an. Diese möglichen Werte könne sein bind für DNS, nis für NIS und hosts für die Datei /etc/hosts.
Wenn es mehrere Einträge für einen Host in /etc/hosts gibt, dann können Sie mit der Direktive multi entscheiden, ob alle gültigen Adressen (on) oder nur die erste gültige Adresse (off) zurückgeliefert werden sollen.
Weitere Informationen zu host.conf können Sie der Manual-Page host.conf(5) entnehmen.
Wenn Sie die GNU C Library 2.x (libc.so.6) für die Programme verwenden, dann erfolgt die Resolverkonfiguration über die Datei nsswitch.conf. In dieser Datei werden nicht nur die Namensauflösungsverfahren festgelegt, sondern auch für andere Konfigurationen die Quellen festgelegt. Ursprünglich lagen alle Konfigurationen in Dateiform vor. Durch den Einsatz von NIS und DNS konnten die Konfigurationen aber auch aus dem Netz bezogen werden. So können Sie z. B. auch die Benutzer und Gruppen übers Netz beziehen. Das Schema wird als Name Service Switch (NSS) bezeichnet.
defiant:~ # cat /etc/nsswitch.conf # /etc/nsswitch.conf # # Legal entries are: # # compat Use compatibility setup # nisplus Use NIS+ (NIS version 3) # nis Use NIS (NIS version 2), also called YP # dns Use DNS (Domain Name Service) # files Use the local files # db Use the /var/db databases # [NOTFOUND=return] Stop searching if not found so far passwd: compat group: compat hosts: files dns networks: files dns services: files protocols: files rpc: files ethers: files netmasks: files netgroup: files publickey: files bootparams: files automount: files nis aliases: files
Wichtig für die Namensauflösung sind die Direktiven hosts und networks. Mit der Angabe files werden die Dateien /etc/hosts und /etc/networks benutzt. Die Angabe dns bezeichnet natürlich eine Namensauflösung über DNS und die Angabe nis sorgt dafür, daß das Network Information System benutzt wird. Weitere Informationen entnehmen Sie bitte der Manual-Page nsswitch.conf(5).