Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

DNS Resolver (Überblick)

&pagelevel(4)&pagelevel

Der DNS Resolver erledigt die Anfragen zur Auflösung von DNS Domain-Namen in IP-Adressen, die Anwenderprogramme an den DNS Name Server richten.


Zugang zum DNS Resolver

Zugang zum Resolver erhalten die Anwenderprogramme über die zur Anwendung hinzugebundenen Socket-Funktionen, wie die für IPv4 verwendeten Funktionen gethostbyname() und gethostbyaddr() bzw. die für IPv4 und IPv6 verwendbaren Funktionen getaddrinfo(), getnameinfo(), getipnodebyaddr() und getipnodebyname():

gethostbyname()

gethostbyaddr()

getaddrinfo()

liefert zu einem Rechnernamen die zugehörige IPv4-Adresse.

liefert zu einer IPv4-Adresse den zugehörigen Rechnernamen.

liefert protokollunabhängig Informationen über Rechnernamen,
Rechneradressen und Services.

getnameinfo()

getipnodebyaddr()

getipnodebyname()

liefert protokollunabhängig den Namen des Kommunikationspartners.

liefert protokollunabhängig Informationen über Rechnernamen.

liefert protokollunabhängig Informationen über Rechneradressen.

Im Normalfall werden die Resolver-Funktionen in einer Bibliothek bereitgestellt, die mit den Produkten „SOCKETS(BS2000)“ bzw. „SOCKETS/XTI für POSIX“ ausgeliefert wird. Die dort verwendeten Resolver-Funktionen sind in den Handbüchern „SOCKETS(BS2000)“ bzw. „SOCKETS/XTI für POSIX“ beschrieben.

In POSIX ist es alternativ möglich, die Resolver-Funktionalität über die Bibliothek komplett in die Anwendung einzubinden. In diesem Fall sind die Resolver-Funktionen in der Online-Dokumentation zu DNS beschrieben. Zum Zugriff auf die Online-Dokumentation sind die DNS-Entwicklungsteile zu installieren (siehe "DNS Resolver installieren und deinstallieren").


Auflösung der an den DNS Resolver gerichteten Anfragen

Die Auflösung der an den DNS Resolver gerichteten Anfragen kann auf verschiedene Arten erfolgen:

  • Über den mit SOCKETS(BS2000) bereitgestellten Resolver unter Nutzung der Konfigurationsdatei im BS2000-Dateisystem. Diese Konfigurationsdatei hat den Namen $TSOS.SYSDAT.SOCKETS.nnn.SOC6.RESOLV (bis openNet Server V3.0) bzw. SYSDAT.LWRESD.nnn.RESOLV.CONF. nnn spezifiziert die Version.

    Voraussetzung für die Nutzung der DNS Resolver-Funktionalität via
    SOCKETS(BS2000) sind Installation und Start des Subsystems. Weitere Informationen hierzu finden Sie im Handbuch „SOCKETS(BS2000)“.

  • Über den via interNet Services DNS bereitgestellten Resolver-Dämon unter Nutzung der Konfigurationsdatei /etc/resolv.conf im POSIX-Dateisystem.

    Voraussetzung für die Nutzung der DNS Resolver-Funktionalität über interNet Services DNS sind Installation und Start des DNS Resolver-Dämons. Weitere Informationen hierzu finden Sie im Abschnitt „DNS Resolver installieren und deinstallieren“"DNS Resolver installieren und deinstallieren".

  • Durch Einbinden der Resolver-Bibliothek unter Nutzung der Konfigurationsdatei /etc/resolv.conf im POSIX-Dateisystem (nur in POSIX möglich).

    Hierfür müssen Sie weder das Subsystem von SOCKETS(BS2000) noch den DNS Resolver-Dämon starten. Die Konfigurationsdatei /etc/resolv.conf im POSIX-Dateisystem muss jedoch korrekt eingerichtet sein.

  • Durch Abfrage der BCAM-Tabellen.


Reihenfolge der Abfragen bei der Auflösung der Resolver-Anfragen

Wie bzw. in welcher Reihenfolge die Abfragen erfolgen, wird durch die Ablaufplattform (BS2000 oder POSIX) sowie durch das Binden der Anwendung festgelegt:

  • Sockets-Anwendung im BS2000:

    Die Resolver-Funktionen verwenden zunächst den Sockets-internen Resolver bzw. ab Sockets 2.2 den im BS2000 nativ ablaufenden LWRESD. Nur wenn diese kein Ergebnis liefern, wird eine Namens- bzw. Adressumsetzung mit den Einträgen aus den BCAM-Tabellen versucht. Der DNS-Resolver-Dämon von interNet Services wird in keinem Fall angesprochen.

  • Sockets-Anwendung in POSIX (Standardfall):

    • Bei Nutzung der reinen IPv4-Funktionen gethostbyname() und gethostbyaddr() in einer Sockets-Anwendung in POSIX wird zuerst eine Namens- bzw. Adressumsetzung mit den Einträgen aus den BCAM-Tabellen versucht.

      Wenn ein Name bzw. eine Adresse nicht durch eine BCAM-Anfrage ermittelt werden kann, wird der DNS Resolver-Dämon von interNet Services DNS aufgerufen.

      Wenn der Dämon kein Ergebnis liefert, dann wird die Resolver-Funktionalität der BS2000-Sockets aufgerufen, d.h. ab Sockets 2.2 wird LWRESD aufgerufen.

      Erst wenn auch dieser Umsetzungsversuch scheitert, liefern die Funktionen gethostbyname() bzw. gethostbyaddr() einen Fehler zurück.

    • Bei Nutzung der DNS Resolver-Funktionen getaddrinfo(), getnameinfo(), getipnodebyaddr(), getipnodebyname() wird zuerst die Resolverfunktionalität der BS2000-Sockets verwendet.

Wenn ein Name bzw. eine Adresse hierdurch nicht ermittelt werden kann, wird eine Namens- bzw. Adressumsetzung mit den Einträgen aus den BCAM-Tabellen versucht.

Erst wenn auch dieser Umsetzungsversuch scheitert, liefern die Funktionen getaddrinfo(), getnameinfo(), getipnodebyaddr(), getipnodebyname() einen Fehler zurück.

  • Sockets-Anwendung in POSIX mit hinzugebundener Resolver-Bibliothek von interNet Services DNS:

    Durch das Einbinden der Resolver-Bibliothek von interNet Services DNS wird beim Ablauf der Anwendung für alle Aufrufe (IPv4 und IPv6) ausschließlich auf die Datei /etc/resolv.conf im POSIX-Dateisystem zugegriffen.

    Voraussetzung für die Produktion der Anwendung ist die Installation der DNS-Entwicklungsteile (siehe "DNS Resolver installieren und deinstallieren").

    Beachten Sie beim Binden der Anwendung die folgende Binde-Reihenfolge für die Bibliotheken:

    1. Resolver-Bibliothek von interNet Services DNS: /usr/lib/libbind.a

    2. SOCKETS/XTI-Bibliothek: /usr/lib/libsocket.a