Inhalt

8. IP-Nummern Auflösung (DNS)

Bekanntlich werden Rechner im Internet über die IP-Nummern angesprochen. Niemand möchte sich aber die IP-Nummern direkt merken, praktischer ist es, Namen zu verwenden, z.B. www.franken.de. Aber nicht nur für die bessere Merkbarkeit sind diese Namen wichtig, sondern sie dienen auch als Variable, deren Inhalt sich verändern kann. Wenn ein wichtiger Server eine neue IP-Nummer bekommt (z.B. durch Umzug oder Providerwechsel), so wird der Name einfach auf die neue IP-Nummer aufgelöst.

Genauso wichtig (und das wird gerne vergessen) wie die Auflösung von Namen in IP-Nummern ist der umgekehrte Fall, also IP-Nummer in einen Rechnernamen auflösen.

Diese umgekehrte Auflösung ist oft diejenige, die Probleme im lokalen Netzwerk (also ungewollte Verbindungen) macht, denn viele Services nutzen diese Möglichkeit zur Verifikation bei einer einkommenden Verbindung, denn in den Regeln wer was machen darf, werden meist Rechnernamen anstatt IP-Nummern verwendet. Über das Netzwerk ist aber zunächst nur die IP-Nummer sichtbar und muß also in einen Namen aufgelöst werden.

Es gibt zwei wichtige Methode zur Namensauflösung, die gleichzeitig benutzt werden können (und müssen):

8.1 feste IP-Nummern Auflösung über /etc/hosts

Alle bekannten IP-Nummer werden fest in einer Datei gespeichert, die der Adminsitrator manuell pflegen (oder kopieren) muß.

In der Datei /etc/hosts werden alle Rechnernamen und IP-Nummern fest eingetragen.

Beispiel: In der Domain isdnworkshop.de gibt es die Rechner Asterix (192.168.1.1) und Obelix (192.168.1.2). Dann sieht die Datei so aus:

# IP        FQN                     Kurzname

192.168.1.1 Asterix.isdnworkshop.de Asterix
192.168.1.2 Obelix.isdnworkshop.de Obelix
        

8.2 dynamische IP-Nummern Auflösung mit DNS

Es wird schnell ersichtlich, daß eine feste Auflösung über eine Datei, die ständig aktuell auf jedem Rechner installiert sein muß das Internet nicht funktionieren würde. Die feste Auflösung kann nur in einem übersichtlichen lokalen Netz benutzt werden.

DNS (Domain Name Service) dient ebenfalls zum Auflösen von Rechnernamen in eine IP-Nummer und umgekehrt. Der Unterschied liegt darin, daß es ein Internet-Service ist, den man auf Anforderung abfragen kann. Es gibt sehr viele DNS-Server im Internet, wobei es eine hierarchische Struktur gibt, die sich an den Domainnamen orientiert. Jeder DNS-Server ist für eine Sub-(Sub-....) Domain zuständig. Beim Abfragen hangelt man sich von den Root-Servern herunter, bis man den Server gefunden hat, der die Anfrage tatsächlich beantworten kann.

Das Einrichten eines DNS-Server soll an anderer Stelle beschrieben werden, z.B. im DNS HOWTO.

Für unsere Zwecke reicht es zu wissen, wie der Service aktiviert wird und wo man einstellt, welches der Nameserver ist.

8.3 Konfiguration der Namensauflösung

Es ist wie gesagt durchaus sinnvoll beide Methoden der Namensauflösung zu kombinieren. Wichtig ist hier, daß auch ohne Internetverbindung lokal gearbeitet werden kann. Üblicherweise werden die lokalen Rechner (mindestens der eigene) über die /etc/hosts aufgelöst, alle nicht bekannten Anfragen werden dann über den Nameserver beim ISP aufgelöst.

Um die Namensauflösung muß sich eine Applikation nicht selber kümmern, sondern wird durch libc-Funktionen (z.b. gethostbyname() erledigt. Diese libc-Funktionen gilt es also zu konfigurieren.

Über die Datei /etc/host.conf wird zunächst gesteuert, welche Methoden überhaupt benutzt werden sollen und sehr wichtig auch in welcher Reihenfolge dies geschehen soll.

Beispiel /etc/host.conf:

order hosts bind
multi on
        
gibt an, daß zunächst in der /etc/hosts gesucht werden soll, bei Mißerfolg dort, soll der DNS-Server (bind) bemüht werden.

Wenn ein Nameserver benutzt werden soll, ist noch eine zweite Datei /etc/resolv.conf zu konfigurieren:

search isdnworkshop.de suse.de 
nameserver 192.168.200.7.1
        
Die 2. Zeile sollte selbsterklärend sein, in der ersten wird eine sogenannte Searchlist angegeben, diese ist nur dann von Bedeutung, wenn ein Rechnername ohne vollständige Domain versucht wird aufzulösen. Beispiel: es wird nach einem Rechner Goedel gesucht, den der Nameserver nicht kennt, dann wird zunächst isdnworkshop.de angehängt und damit versucht einen Rechner Goedel.isdnworkshop.de zu finden; ist auch das nicht erfolgreich, wird nach Goedel.suse.de gesucht.

Änderungen an diesen beiden Dateien sind sofort wirksam.

Namensauflösung bei S.u.S.E.

Setze die Variablen in /etc/rc.config, für obiges Beispiel:

SEARCHLIST="isdnworkshop.de suse.de"
NAMESERVER="192.168.200.7.1"
            

8.4 Probleme mit der Namensauflösung

Probleme bei der Namensauflösung erkennt man schnell an seiner Telefonrechnung ;-(

Ein Beispiel: eine Benutzer macht im lokalen Netz ein Telnet von der IP-Nummer 192.168.1.2 auf den IZG 192.168.1.1. Der Server prüft vor dem eigentlichen Start des Telnet-Daemons, welche IP-Nummer reinkommt (Stichwort TCP-Wrapper), da diese Nummer nicht aufgelöst werden kann, wird der Nameserver befragt, dieser ist beim ISP, eine Verbindung wird automatisch aufgebaut. Ergebnis: der Telnet braucht nicht nur etwa eine Minute bis zum Login (der DNS-Server kann diese private IP-Nummer nicht auflösen), sondern kostet auch noch 12 Pfennige.

Checkliste

  1. Ist die eigene IP-Nummer in der /etc/hosts eingetragen?
  2. Sind alle Rechner des lokalen Netzwerks in der /etc/hosts eingetragen?
  3. Ist das Paket bind installiert:
    +/kfr $ rpm -q bind
    bind-4.9.6-5
                    
    
  4. Kann der Nameserver angesprochen werden? Test:
    +/kfr $ nslookup www.suse.de
    Server:  Plato.suse.de
    Address:  192.168.100.1
    
    Name:    Turing.suse.de
    Addresses:  195.125.217.200, 192.168.102.3
    Aliases:  www.suse.de
                    
    
  5. Einen beliebigen anderen Nameserver kann man direkt testen, z.B.:
    +/kfr $ nslookup www.suse.de 141.1.1.1    
    Server:  ecrc.de
    Address:  141.1.1.1
    
    Non-authoritative answer:
    Name:    Turing.suse.de
    Address:  195.125.217.200
    Aliases:  www.suse.de
                    
    

Tips:

  1. Für das gesamte Subnetz IP-Nummern und Namen in die /etc/hosts eintragen, auch wenn sie (noch) nicht verwendet werden. Bsp:
    192.168.1.1     Server.isdnworkshop.de Server
    192.168.1.2     Client.isdnworkshop.de Client
    192.168.1.3     Dummy.isdnworkshop.de Dummy
    192.168.1.4     Dummy.isdnworkshop.de Dummy
    192.168.1.5     Dummy.isdnworkshop.de Dummy
                    
    
    u.s.w.
  2. Einrichten eines eigenen DNS-Proxy-Servers. Neben der schnelleren Auflösung, werden auch die fehlerhaften Anfragen gecacht, so daß nicht so häufig eine Verbindung aufgebaut wird (Siehe DNS-Cache).


Inhalt