Namensauflösung
Der Prozess zum Abrufen einer Internetadresse von einem Hostnamen wird als Namensauflösung bezeichnet und wird von der Subroutine gethostbyname ausgeführt.
Der Prozess der Umsetzung einer Internetadresse in einen Hostnamen wird als umgekehrte Namensauflösung bezeichnet und wird von der Subroutine gethostbyaddr ausgeführt.
Wenn ein Prozess einen symbolischen Hostnamen erhält und ihn in eine Adresse auflösen muss, ruft er eine Auflösungsroutine auf.
- BIND/DNS (Domänennamensserver, benannt)
- Network Information Service (NIS)
- Lokale /etc/hosts -Datei
Um einen Namen in einem Domänennetz aufzulösen, fragt die Auflösungsroutine zuerst die Datenbank des Domänennamensservers ab, die lokal sein kann, wenn der Host ein Domänennamensserver ist oder sich auf einem fremden Host befindet. Namensserver übersetzen Domainnamen in Internetadressen. Die Gruppe der Namen, für die ein Namensserver verantwortlich ist, ist die Berechtigungszone. Wenn die Resolver-Routine einen fernen Namensserver verwendet, verwendet die Routine das Domänennamensprotokoll (DOMAIN), um die Zuordnung abzufragen. Wenn Sie einen Namen in einem flachen Netz auflösen möchten, prüft die Resolver-Routine auf einen Eintrag in der lokalen /etc/hosts -Datei. Wenn NIS verwendet wird, wird die /etc/hosts -Datei auf dem Master-Server überprüft.
Standardmäßig versuchen Resolver-Routinen, Namen unter Verwendung der oben genannten Ressourcen aufzulösen. BIND/DNS wird zuerst versucht. Wenn die /etc/resolv.conf -Datei nicht vorhanden ist oder BIND/DNS den Namen nicht finden konnte, wird NIS abgefragt, wenn er ausgeführt wird. Wenn NIS nicht aktiv ist, wird die lokale /etc/hosts -Datei durchsucht. Wenn keiner dieser Services den Namen finden kann, werden die Resolverroutinen mitHOST_NOT_FOUND. Wenn alle Services nicht verfügbar waren, werden die Resolverroutinen mitSERVICE_UNAVAILABLE.
Die Standardreihenfolge kann überschrieben werden, indem die Konfigurationsdatei /etc/netsvc.conf erstellt und die gewünschte Reihenfolge angegeben wird. Sowohl der Standardwert als auch /etc/netsvc.conf können mit der Umgebungsvariablen NSORDERüberschrieben werden. Wenn die Datei /etc/netsvc.conf oder die Umgebungsvariable NSORDER definiert sind, muss mindestens ein Wert zusammen mit der Option angegeben werden.
hosts = value,value,value
Erläuterungen:valueist eine der aufgelisteten Quellen.
NSORDER=value,value,value
Die Reihenfolge wird in einer Zeile mit durch Kommas getrennten Werten angegeben. Leerzeichen sind zwischen den Kommas und dem Gleichheitszeichen zulässig. Die angegebenen Werte und ihre Reihenfolge hängen von der Netzkonfiguration ab. Wenn das lokale Netz z. B. als ein flaches Netz organisiert ist, ist nur die Datei /etc/hosts erforderlich.
hosts=local
NSORDER=local
Wenn es sich bei dem lokalen Netz um ein Domänennetz handelt, das einen Namensserver für die Namensauflösung und eine /etc/hosts -Datei für die Sicherung verwendet, sollten beide Services angegeben werden.
hosts=bind,local
NSORDER=bind,local
- Der aktuelle Service ist nicht aktiv, daher ist er nicht verfügbar
- Der aktuelle Service konnte den Namen nicht finden und ist nicht autoritativ.
Wenn die Datei /etc/resolv.conf nicht vorhanden ist, wird davon ausgegangen, dass BIND/DNS nicht konfiguriert oder aktiv und daher nicht verfügbar ist. Wenn die Subroutinen getdomainname und yp_bind fehlschlagen, wird angenommen, dass der NIS-Service nicht konfiguriert oder aktiv und daher nicht verfügbar ist. Wenn die Datei /etc/hosts nicht geöffnet werden konnte, ist eine lokale Suche nicht möglich, sodass Datei und Service nicht verfügbar sind.
Ein als autoritativ aufgelisteter Service bedeutet, dass er der Experte für seine Nachfolger ist und die angeforderten Informationen haben sollte. (Die anderen Services können nur einen Teil der Informationen im autoritativen Service enthalten). Die Namensauflösung wird beendet, nachdem ein Service als autoritativ aufgelistet wurde, auch wenn er den Namen nicht findet. Wenn ein autoritativer Service nicht verfügbar ist, wird der nächste angegebene Service abgefragt. Andernfalls gibt die Auflösungsroutine Folgendes zurück:HOST_NOT_FOUND.
hosts = nis=auth,bind,local
Wenn NIS aktiv ist, wird die Suche nach der NIS-Abfrage beendet, unabhängig davon, ob der Name gefunden wurde. Wenn NIS nicht aktiv ist, wird die nächste Quelle abgefragt, d. h. BIND.
TCP/IP-Namensserver verwenden Caching, um die Kosten für die Suche nach Namen von Hosts in fernen Netzen zu reduzieren. Anstatt jedes Mal, wenn eine Anforderung gestellt wird, erneut nach einem Hostnamen zu suchen, prüft ein Namensserver seinen Cache, um festzustellen, ob der Hostname kürzlich aufgelöst wurde. Da sich Domänen-und Hostnamen ändern, bleibt jedes Element für einen begrenzten Zeitraum im Cache, der durch die Lebensdauer (TTL) des Datensatzes angegeben wird. Auf diese Weise können Berechtigungen angeben, wie lange sie erwarten, dass die Namensauflösung korrekt ist.
host.subdomain.subdomain.rootdomain
Wenn der Hostname nicht als vollständig qualifizierter Domänenname konfiguriert ist und das System für die Verwendung eines DOMAIN-Namensservers in Verbindung mit dem Programm sendmail konfiguriert ist, muss die sendmail -Konfigurationsdatei (/etc/sendmail.cf) bearbeitet werden, um diesen offiziellen Hostnamen wiederzugeben. Darüber hinaus müssen die Namensmakros der Domäne in dieser Konfigurationsdatei festgelegt werden, damit das sendmail -Programm ordnungsgemäß funktioniert.
Für einen Host in einem Domänennetz, der kein Namensserver ist, werden der Name der lokalen Domäne und der Domänennamensserver in der Datei /etc/resolv.conf angegeben. Auf einem Domänennamensserver-Host werden die lokale Domäne und andere Namensserver in Dateien definiert, die vom benannten Dämon beim Start gelesen werden.