TCP/IP Namensauflösung

Während Computer mit Zahlen wunderbar zurecht kommen, verwenden Menschen lieber Namen. Das Auflösen der Namen in Zahlen und umgekehrt kann aber wieder dem Computer zugemutet werden und im Netz ist es wichtig, daß Namen konsistent bleiben. Darum werden besondere Dienste dafür in Anspruch genommen.

Der Hostname

Jede UNIX-Maschine hat standardmäßig einen Namen, den sogenannten Hostnamen. Dieser erhält aber erst seine besondere Bedeutung, wenn die Maschine ins Netz geht, da sie dann unter diesem Namen angesprochen werden kann. Die Zuordnung des Hostnamens an die Maschine erfolgt durch den Befehl

    hostname <Name>

Dieser wird im Allgemeinen in einer der rc-Dateien beim Hochfahren des Systems ausgeführt. Oft steht er in einer besonderen Datei, wie bei Linux in der /etc/HOSTNAME oder bei Solaris in der Datei /etc/hostname bzw. in der Datei /etc/nodename.

Wichtige Dateien

Neben dem Hostnamen gibt es noch andere Namen, die im Netz eine Rolle spielen. Einige davon finden sich in:
/etc/protocols
enthält die Protokolle ip, icmp, tcp, udp. Ist notwendig für die Interpretation der /etc/services
/etc/services
  • bis 256: well known ports
  • 256-1024: UNIX-specific ports
/etc/hosts
Muß auf jeden Fall 127.0.0.1 localhost enthalten. Ansonsten enthält sie eine Tabelle von IP-Nummern und deren Hosts.
/etc/networks
Hier kann die Netzmaske mit einem Namen versehen werden. Dieser Name kann beim Aufruf von ifconfig verwendet werden. Der Vorteil liegt in der Pflegemöglichkeit durch das NIS.

Um einen fremden Rechner nicht immer über seine Internet-Nummer ansprechen zu müssen, gibt es die Datei /etc/hosts, die jeder Internet-Nummer einen oder mehrere Namen zuordnet. Die Struktur eines Eintrags in der Datei /etc/hosts ist:


    <ipadresse>   <name> [<nickname>]   # Kommentar

Auch die eigene Maschine sollte in der Datei eingetragen werden, da sonst Dienstanfragen an den eigenen Host über das TCP/IP nicht erkannt werden.

Domain Name Service (BIND)

BIND (Berkeley Internet Name Domain) ist die wichtigste Implementation des DNS. Der Client wird als Resolver bezeichnet. Dabei ist der Resolver nicht ein eigenständiger Prozeß, sondern ist mittels Library den einzelnen Programmen zugeordnet. Die wichtigste Datei für den Resolver ist die /etc/resolv.conf.

Der Primary-Server ist derjenige, der die Autorität für die Domäne hat. Eine Domäne ist nicht unbedingt deckungsgleich mit einem Netzwerk, sondern der Bereich, für den der Nameserver eingesetzt wird. Es gibt die Möglichkeit Secondary-Server einzusetzen, die sich die Informationen des Primary Servers bei "Anderung kopieren. Schließlich gibt es den Cache-Only Server, der lediglich die angefragten Informationen im Speicher hält.

Default Resolver Configuration

Ein System, das seine Namensgebung ermittelt, indem der lokale Rechner als Name Server betrachtet wird und der Domänen-Name aus dem Ergebnis des Befehls hostname abgeleitet wird. Dazu werden alle Zeichen hinter dem ersten Punkt verwandt.

Resolverkonfiguration mit der /etc/resolv.conf

In der Datei /etc/resolv.conf wird definiert, zu welcher Domäne der Rechner gehört und welche Rechner Nameserver sind. Beispiel:

domain  willemer.de

nameserver 127.0.0.1        # zuerst ich

nameserver 192.168.109.32    # dann der Hauptserver

Konfiguration des named

named ist der Serverprozeß des DNS. Er verwendet mehrere Dateien. Die erste Datei ist die /etc/named.boot, die die Rolle des Rechners im DNS festlegt und die Namen und Orte der weiteren Dateien definiert. Ein Primary Server hat beispielsweise folgende Einträge:

primary  willemer.de             /etc/willemer.de.hosts

primary  0.0.127.IN-ADDR.ARPA  /etc/named.local

cache    .                     /etc/named.ca

Die erste Zeile sagt aus, daß dieser Rechner ein Primary Server für die Domäne willemer.de ist. Die Namensinformationen werden in der Datei /etc/willemer.de.hosts gepflegt. Die zweite Zeile sagt, daß die Referenz auf localhost lokal in der Datei /etc/named.local gehalten wird. Die dritte Zeile besagt, daß der Cache in der Datei /etc/named.ca gehalten wird.

Ein Secondary Server hätte eine ganz ähnliche /etc/named.boot:


secondary willemer.de            192.168.109.32    /etc/willemer.de.hosts

primary   0.0.127.IN-ADDR.ARPA /etc/named.local

cache     .                    /etc/named.ca

Der Unterschied liegt in der ersten Zeile. Sie besagt, daß dieser Rechner ein Secondary Server für willemer.de ist. Sie gibt ferner die IP-Nummer des Primary Servers an. Schließlich wird definiert, in welcher lokalen Datei die Informationen vom Primary Server abgelegt werden. Eine Namensdatei (im obigen Beispiel /etc/willemer.de.hosts) hat folgendes Aussehen:

@         IN  SOA   scosrv.willemer.de

localhost IN  A     127.0.0.1

scosrv    IN  A     192.168.109.32

sco3      IN  CNAME scosrv.willemer.de

willemer  IN  WKS   7688

Die zweite Zeile definiert localhost für die gesamte Domain als 127.0.0.1. In der dritten Zeile wird der Name scosrv als Hauptname der IP-Nummer 192.168.109.32. Die Folgezeile zeigt, wie ein Nickname für diesen Namen definiert wird. In der Zeile, die mit willemer beginnt, ist eine Definition eines Dienstes aus der /etc/services dargestellt. Fehlermeldungen legt named im Allgemeinen in der Datei /var/adm/messages ab. Das Testen einer DNS-Konfiguration erfolgt mit dem Befehl nslookup.

NIS

NIS (Network Information Service) basiert wie NFS auf den Remote Procedure Calls. Es ist kein Protokoll für das Internet, sondern nur für lokale Netze. Es basiert auf sogenannten maps, die für zentrale Dateien im UNIX- und im TCP/IP-Bereich gehalten werden.

Starten eines NIS-Servers:


cd /var/yp

/usr/etc/yp/ypinit -m   # initialisiere die Maps

ypserv                  # starte den NIS-Server

ypxfrd                  # starte den Map Transfer Dämon

ypbind                  # starte den lokalen NIS Client Dämon

Starten eines NIS-Clients

domainname willemer.de

ypbind

Die Konfiguration beginnt in der Datei /etc/netgroup. Diese enthält Zeilen der Form:

<groupname>  <member> [<member>]*

Dabei ist <member> ein Trippel der Form:

(<hostname>, <username>, [<domainname>])

Beispiel:

admin   (almond, kathy,)    (peanut, craig,)

oder

adminhosts  (almond, -,) (peanut, -,)

adminuser   (-, kathy,)  (-, sara,)

oder

nuts     sales research

research (almond, -,) (peanut, -,)  (walnut, -,)

sales    (-, sara,)   (-, david, )

In der Datei /etc/hosts.equiv könnten dann Referenzen auf die definierten Gruppen gemacht werden. Etwa in der Form:

    +@ research

oder in der ~/.rhosts:

    pecan +@sales

Änderungen sind durchzuführen, indem man sich im Server einloggt, die Datei /etc/hosts ändert und anschließend im Verzeichnis /etc/yp den Aufruf ypmake hosts ausführt.

Beispiele stammen aus Hunt: TCP/IP

Installation SCO

Um unter SCO NIS einzurichten, wird


mkdev nis

aufgerufen. Um es wieder zu deinstallieren, muß die Maschine in den Single-User-Modus (init 1) und


/etc/yp/ypclean

aufgerufen werden.


Homepage - TCP/IP (C) Copyright 1999 Arnold Willemer