Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Über die Autoren
Über dieses Buch
Linux vs. BSD
1 Der Kernel
2 Die Grundlagen aus Anwendersicht
3 Die Shell
4 Reguläre Ausdrücke
5 Tools zur Dateibearbeitung
6 Die Editoren
7 Shellskriptprogrammierung
8 Benutzerverwaltung
9 Grundlegende Verwaltungsaufgaben
10 Netzwerk-Grundlagen
11 Anwendersoftware für das Netzwerk
12 Netzwerkdienste
13 Mailserver unter Linux
14 LAMP
15 DNS-Server
16 Secure Shell
17 Die grafische Oberfläche
18 Window-Manager und Desktops
19 X11-Programme
20 Multimedia und Spiele
21 Softwareentwicklung
22 Crashkurs in C und Perl
23 Sicherheit
24 Prozesse und IPC
25 Bootstrap und Shutdown
26 Dateisysteme
27 Virtualisierung und Emulatoren
A Die Installation
B Lösungen zu den einzelnen Aufgaben
C Kommandoreferenz
D X11-InputDevices
E MBR
F Die Buch-DVDs
G Glossar
H Literatur

Download:
- ZIP, ca. 6,3 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Linux von Johannes Plötner, Steffen Wendzel
Das distributionsunabhängige Handbuch
Buch: Linux

Linux
2., aktualisierte und erweiterte Auflage
1119 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1090-4
gp 10 Netzwerk-Grundlagen
  gp 10.1 Grundlegendes zu TCP/IP
    gp 10.1.1 Network-Access-Layer
    gp 10.1.2 Internet-Layer
    gp 10.1.3 Transport-Layer
    gp 10.1.4 Application-Layer
  gp 10.2 Grundlegendes Netzwerk-Setup
    gp 10.2.1 Hostname setzen
    gp 10.2.2 Netzwerkadressen für alle
    gp 10.2.3 Wireless LAN
    gp 10.2.4 DHCP
    gp 10.2.5 /etc/hosts
    gp 10.2.6 /etc/networks
    gp 10.2.7 /etc/resolv.conf
    gp 10.2.8 Nun gibt es aber ein Problem ...
    gp 10.2.9 Windows und Namensauflösung
  gp 10.3 Grundlagen des Routings
    gp 10.3.1 Routing-Administration: route
    gp 10.3.2 Router aufsetzen
  gp 10.4 Netzwerkverbindungen
    gp 10.4.1 Datenaufkommen von Schnittstellen
    gp 10.4.2 Protokollstatistiken
    gp 10.4.3 Aktive TCP-Verbindungen
    gp 10.4.4 Listen-Ports
    gp 10.4.5 ARP-Cache
    gp 10.4.6 tcpdump
  gp 10.5 Mit Linux ins Internet
    gp 10.5.1 Das Point-to-Point Protocol
    gp 10.5.2 Einwahl mit einem Modem
    gp 10.5.3 Einwahl über DSL
  gp 10.6 Zusammenfassung
  gp 10.7 Aufgaben


Galileo Computing

10.2 Grundlegendes Netzwerk-Setup  downtop

Nun werden wir nach und nach die Schritte durchführen, die notwendig sind, um einen Rechner in ein Netzwerk zu integrieren beziehungsweise um ihn als ersten Host in ein neues Netzwerk zu integrieren – was kaum einen Unterschied darstellt.


Galileo Computing

10.2.1 Hostname setzen  downtop

Einem Rechner, der sich im Netzwerk befindet, gibt man zunächst einmal einen sogenannten Hostnamen – einen Namen, der im jeweiligen Netzwerk einzigartig ist und zur Identifikation des Rechners (Hosts) dient. Man unterscheidet dabei zwischen einem bloßen Hostnamen und einem FQDN <Fully Qualified Domain Name>. Bei Ersterem handelt es sich um einen einfachen Namen, etwa »jupiter«. Ein FQDN hingegen besteht aus dem einfachen Hostname und der kompletten Domain, der dieser Host angehört, etwa »jupiter.sun.milkyway«. Jupiter würde also zum Netz »sun« im Netz »milkyway« gehören.

Wir möchten unseren Host im Netzwerk »sun« (so können Sie, falls Sie noch keinen Netzwerknamen haben, auch Ihr Netzwerk nennen) platzieren und ihm den oben bereits erwähnten Namen »jupiter« geben. Um dies zu verwirklichen, brauchen Sie das Tool hostname. <Die Funktionalität von hostname ist im Übrigen nicht mit der von domainname zu verwechseln. Letzteres setzt nämlich den Domainname für eine NIS-Domain!> Um einen Hostname zu setzen, übergibt man den FQDN als Parameter an hostname.

$ hostname jupiter.sun

Listing 10.1    Hostname setzen

Die Abfrage gestaltet sich von System zu System etwas anders. Die Prompts zeigen im folgenden Listing die jeweiligen Systeme und den zugehörigen hostname-Aufruf an.

linux$ hostname 
jupiter 
linux$ hostname -f 
jupiter.sun 
 
bsd$ hostname 
jupiter.sun 
bsd$ hostname -s 
jupiter

Listing 10.2    Hostname abfragen


Galileo Computing

10.2.2 Netzwerkadressen für alle  downtop

Unser Host hat zwar bereits einen FQDN, aber noch keine eigene IP-Adresse. Diese wird via ifconfig gesetzt. Dieses Tool dient generell zur Administration von Netzwerkschnittstellen. Wir werden uns die wichtigen Features von ifconfig im Folgenden ansehen. Doch zunächst wollen wir einer Netzwerk-Schnittstelle eine IP-Adresse geben. <Welche Veränderungen hierbei im Hintergrund ablaufen und im Kernel vor sich gehen, soll an dieser Stelle nicht diskutiert werden. Wenn wir in diesem Kapitel eine IP-Adresse »vergeben«, dann bedeutet dies schlicht, dass wir einen Host über eine bestimmte Adresse erreichbar machen. Außerdem werden keine virtuellen Adressen vergeben; jedes Device soll über eine einzige Adresse verfügen. Hintergrundinformationen erhalten Sie in der ifconfig-Manpage und in diversen Büchern über TCP/IP.>

Zunächst lässt man sich mit ifconfig die im System integrierten Netzwerkschnittstellen auflisten. Dazu übergibt man am besten den Parameter -a. Er bewirkt, dass auch wirklich jede Netzwerkschnittstelle angezeigt wird.

# ifconfig -a 
eth0    Link encap:Ethernet  HWaddr 00:50:04:E9:AE:1B 
        inet addr:192.168.0.3  Bcast:192.168.0.255 
        Mask:255.255.255.0 
        UP BROADCAST RUNNING MULTICAST  MTU:1500 
        Metric:1 
        RX packets:210 errors:0 dropped:0 overruns:0 
        frame:0 
        TX packets:187 errors:0 dropped:0 overruns:0 
        carrier:0 
        collisions:0 txqueuelen:1000 
        RX bytes:22668 (22.1 Kb)  TX bytes:30717 
        (29.9 Kb) 
        Interrupt:9 Base address:0xd400 
 
lo      Link encap:Local Loopback 
        inet addr:127.0.0.1  Mask:255.0.0.0 
        UP LOOPBACK RUNNING  MTU:16436  Metric:1 
        RX packets:4 errors:0 dropped:0 overruns:0 
        frame:0 
        TX packets:4 errors:0 dropped:0 overruns:0 
        carrier:0 
        collisions:0 txqueuelen:0 
        RX bytes:296 (296.0 b) TX bytes:296 (296.0 b)

Listing 10.3    ifconfig -a

Diese Ausgabe enthält gleich eine Menge Informationen, und zwar viel mehr, als wir benötigen. Das Wichtigste ist: Es gibt zwei Netzwerk-Schnittstellen:

eth0 und lo. Die Schnittstelle lo ist die sogenannte Loopback-Schnittstelle. Sie dient nur zur rechner-internen Kommunikation und ist auf jedem System vorhanden (sofern nicht gerade TCP/IP-Support im Kernel deaktiviert ist). Diese Schnittstelle bekommt immer die IP-Adresse 127.0.0.1 und die Netzwerkmaske 255.0.0.0. Dies liegt daran, dass das gesamte Class-A-Netzwerk 127.x.x.x für die Loopback-Kommunikation reserviert ist.

Bei der Schnittstelle eth0 handelt es sich um eine Ethernet-Netzwerkkarte. Unter Linux erhalten diese Netzwerkkarten die Bezeichnung ethX, wobei X eine laufende Nummer darstellt, die mit jeder Schnittstelle erhöht wird. Die erste Schnittstelle heißt eth0, die zweite eth1 usw.

Sie sehen, dass die Ethernet-Karte die Adresse 192.168.0.3 und das Netzwerk die Broadcast-Adresse 192.168.0.255 hat. Die Netzwerkmaske ist 255.255.255.0, die IP-Adressen befinden sich also im Bereich von 192.168.0.1 bis 192.168.0.254.

Unter den BSD-Systemen werden die Netzwerkschnittstellen jeweils anders bezeichnet. Die Loopback-Schnittstelle wird in der Regel mit lo0 bezeichnet, Ethernet-Schnittstellen bekommen je nach Typ völlig unterschiedliche Bezeichnungen, etwa ne3 <NE2000- oder kompatibler Treiber (OpenBSD)> oder rl1 <Realtek 8129/8139-Fast-Ethernet-Treiber (OpenBSD)>. Zudem müssen einige Werte standardmäßig in hexadezimaler Form ausgegeben werden.

obsd$ ifconfig -a 
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 
        33224 
        inet 127.0.0.1 netmask 0xff000000 
        inet6 ::1 prefixlen 128 
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5 
ne3: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING, 
        SIMPLEX,MULTICAST> mtu 1500 
        address: 00:50:bf:11:35:a5 
        media: Ethernet autoselect (10baseT) 
        inet 192.168.0.1 netmask 0xffffff00 broadcast 
        192.168.0.255 
        inet6 fe80::250:bfff:fe11:35a5%ne3 prefixlen 
        64 scopeid 0x1 
pflog0: flags=0<> mtu 33224 
pfsync0: flags=0<> mtu 2020 
enc0: flags=0<> mtu 1536

Listing 10.4    ifconfig -a, BSD

Adresse

Um eine Adresse zu setzen, übergibt man ifconfig den Namen der gewünschten Schnittstelle sowie die zugehörige IP-Adresse. <Sie können dabei IP-Adressen aus den Adressbereichen 10.z.y.x, 172.16.y.x und 192.168.y.x wählen. Zu jedem Bereich kann noch eine zugehörige Netzmaske gewählt werden.>

linux# ifconfig eth0 192.168.0.3

Listing 10.5    ifconfig

Medium

Einige Netzwerkkarten verfügen über eine Combo-Schnittstelle und sind damit beispielsweise sowohl für 10base2- als auch für 10baseT-Netzwerke verfügbar. Allerdings kann immer nur eine Schnittstellen-Art zur gleichen Zeit konfiguriert werden. Daher bietet ifconfig die Möglichkeit an, das gewünschte Übertragungsmedium bei der Adressvergabe mit anzugeben.

linux# ifconfig eth0 192.168.0.3 media 10baseT

Listing 10.6    Medientyp angeben

Netzmaske

Um die Netzmaske (Netmask) manuell zu vergeben, was durchaus manchmal nötig ist, wird der Parameter netmask verwendet. Hinter diesem gibt man in gewohnter Form die Netzmaske an. Zudem kann man diesen Aufruf mit der Konfiguration der Adresse und des Übertragungsmediums kombinieren:

linux# ifconfig eth0 192.168.0.3 netmask \ 
255.255.255.0 media 10baseT

Listing 10.7    ifconfig

Mehrere Adressen

Es ist durch sogenannte virtuelle Schnittstellen möglich, einer Netzwerkschnittstelle mehr als nur eine IP-Adresse zuzuweisen. Dies wird unter eigentlich jedem System anders realisiert, weshalb wir im Folgenden nur auf ifconfig unter Linux eingehen.

Im Anwendungsbeispiel soll der Schnittstelle eth0 eine zweite Instanz in Form einer virtuellen Schnittstelle mit der IP-Adresse 192.168.1.3 hinzugefügt werden. Dazu gibt man hinter der Schnittstellenbezeichnung die Instanznummer (in diesem Fall die 1 für die erste virtuelle Instanz) an:

# ifconfig eth0:1 192.168.1.3 netmask 255.255.255.0 
linux# ifconfig 
eth0    Link encap:Ethernet  HWaddr 00:50:04:E9:AE:1B 
        inet addr:192.168.0.3  Bcast:192.168.0.255 
        Mask:255.255.255.0 
        UP BROADCAST RUNNING MULTICAST  MTU:1500 
        Metric:1 
        RX packets:210 errors:0 dropped:0 overruns:0 
        frame:0 
        TX packets:187 errors:0 dropped:0 overruns:0 
        carrier:0 
        collisions:0 txqueuelen:1000 
        RX bytes:22668 (22.1 Kb)  TX bytes:30717 
        (29.9 Kb) 
        Interrupt:9 Base address:0xd400 
 
eth0:1  Link encap:Ethernet  HWaddr 00:50:04:E9:AE:1B 
        inet addr:192.168.1.3  Bcast:192.168.1.255 
        Mask:255.255.255.0 
        UP BROADCAST RUNNING MULTICAST  MTU:1500 
        Metric:1 
        Interrupt:9 Base address:0xd400 
 
lo      Link encap:Local Loopback 
...

Listing 10.8    eth:1 anlegen

Schnittstellen abstellen

Um »mal eben schnell« eine Schnittstelle herunterzufahren, ohne den Rechner dafür ausschalten zu müssen, wird der Parameter down verwendet.

# ifconfig eth0:1 down

Listing 10.9    Schnittstelle abstellen

Doch bedenken Sie: Die Konfiguration mit ifconfig bleibt nur während der Laufzeit des Systems bestehen.

Nach einem Neustart müssen die Netzwerkschnittstellen neu konfiguriert werden. Daher verfügen die Distributionen und auch die BSD-Derivate über Tools, die während der Installation die dauerhaft (nämlich jeweils automatisch beim Startvorgang) zu setzenden Adressen abfragen. Möchten Sie nach der Installation des Systems noch Veränderungen an dieser Konfiguration vornehmen, müssen entweder direkt die Konfigurations- und Skriptdateien in /etc abgeändert werden (die von Distribution zu Distribution und bei den einzelnen Derivaten verschieden sind), oder es muss ein distributionsspezifisches Hilfstool, etwa netconfig unter Slackware, erneut ausgeführt werden.


Galileo Computing

10.2.3 Wireless LAN  downtop

Damit Sie unter Linux auch mit Ihrer WLAN-Karte Spaß haben können, brauchen Sie zwei Sachen: den richtigen WLAN-Treiber und die wireless-tools. Bei den fast marktführenden Centrino-Notebooks <Zugegeben, wir haben das nicht recherchiert. Aber man sieht die Dinger halt überall.> funktioniert der ipw2200- beziehungsweise ipw2100-Treiber prima. Bei einigen Distributionen muss man jedoch noch die Firmware von der Webseite http://ipw2200.sf.net herunterladen und in ein bestimmtes Verzeichnis – meist /usr/lib/hotplug/firmware – kopieren, bevor man das Kernel-Modul erfolgreich laden kann. Danach sollte ein neues Interface bei ifconfig -a auftauchen. Wenn nicht, helfen die System-Logfiles in jedem Fall weiter.

Die verfügbaren Netze scannen

Die Wireless-Eigenschaften legt man nun aber nicht mittels ifconfig, sondern mit dem iwconfig-Tool aus dem wireless-tools-Paket fest. Aber zuerst möchte man vielleicht testen, welche Funk-LANs gefunden werden.

Dazu ruft man das Tool iwlist mit dem Parameter »scanning« auf:

# iwlist scanning 
lo    Interface doesn't support scanning. 
 
eth0  Interface doesn't support scanning. 
 
eth1  Scan completed : 
      Cell 01 – Address: 00:0B:6B:30:15:C0 
         ESSID:"zuhause" 
         Protocol:IEEE 802.11bg 
         Mode:Master 
         Channel:1 
         Encryption key:off 
         Bit Rate:54 Mb/s 
         Extra: Rates (Mb/s): 1 2 5.5 6 ... 36 48 54 
         Signal level=-75 dBm 
         Extra: Last beacon: 23ms ago 
…

Listing 10.10    iwlist

In diesem Beispiel wurde das Interface eth1 als WLAN-Interface erkannt und auch ein Netz mit der ESSID »zuhause« gefunden. Entsprechend kann man nun die eigene WLAN-Karte konfigurieren.

iwconfig

Dazu gibt es wie gesagt das iwconfig-Tool, bei dem man wichtige Parameter wie die ESSID oder den zu verwendenden Schlüssel einstellen kann. Sind alle Parameter richtig, so ist man anschließend mit einem Access Point verbunden:

# iwconfig eth1 essid zuhause key off 
# iwconfig eth1 
eth1  IEEE 802.11g  ESSID:"zuhause" 
      Mode:Managed  Frequency:2.462 GHz 
      Access Point: 0A:0B:6B:30:17:8E 
      Bit Rate=24 Mb/s   Tx-Power=20 dBm 
      RTS thr:off   Fragment thr:off 
      Encryption key:off 
      [...]

Listing 10.11    iwconfig

Anschließend kann man sich um die Konfiguration des Netzwerks kümmern. Das geht entweder wie gewohnt per Hand mit ifconfig oder – bei WLAN eigentlich der Regelfall – automatisch per DHCP.


Galileo Computing

10.2.4 DHCP  downtop

Alles automatisch

Eine andere Möglichkeit, eine Netzwerkkarte ganz einfach zu konfigurieren, ist BOOTP oder eben DHCP, eine neuere und erweiterte Version von BOOTP. Wenn Sie DHCP, das Dynamic Host Configuration Protocol, nutzen, brauchen Sie im Allgemeinen gar nichts von Hand einzustellen – das geht nämlich automatisch.

Der Nachteil ist natürlich, dass Sie einen DHCP-Server im Netzwerk brauchen. Diesen Server, der Ihrem Rechner die notwendigen Informationen zur Konfiguration gibt, lernen Sie allerdings erst im entsprechenden Kapitel über Netzwerkserver kennen.

Vereinfacht gesagt, schicken Sie nur einen großen Hilferuf ins Netzwerk – also über das Funknetz oder eben über das Kabel, das an Ihrer Netzwerkkarte angeschlossen ist. Der DHCP-Server fühlt sich dann angesprochen und schickt Ihnen die Daten zu. So wird Ihnen beispielsweise automatisch eine freie (oder je nach Konfiguration auch eine ganz bestimmte) IP-Adresse zugewiesen, und es wird dem Rechner gesagt, welches Default-Gateway er benutzen soll.

Die meisten Distributionen lassen Ihnen bei der Installation die Wahl zwischen dem automatischen Beziehen der IP-Adresse mittels DHCP oder der weiter oben vorgestellten statischen Methode.

dhcp-client

Für den Fall, dass Sie Ihre Schnittstelle nicht (wie oft in der Installation von Distributionen und Derivaten vorgesehen) statisch per Hand, sondern mit DHCP konfigurieren wollen, sei kurz auf das Programm dhcp-client und dessen Äquivalent dhclient hingewiesen. Über einen einfachen Aufruf können Sie eine Netzwerkschnittstelle per DHCP konfigurieren:

# dhcp-client -i eth1 
// Alternativ: dhclient 
# dhclient eth1

Listing 10.12    eth1 mittels dhcp-client konfigurieren lassen

Unter anderen Systemen gibt es in der Regel kein dhcp-client-Tool. Manpages wie dhcp(8) helfen Ihnen an dieser Stelle weiter, wobei des Rätsels Lösung oftmals ähnlich einfach ist, wie unter Linux. Unter OpenBSD wird der Schnittstellenkonfiguration zum Beispiel einfach der Parameter dhcp in der jeweiligen hostname.xyz vorangestellt.


Galileo Computing

10.2.5 /etc/hosts  downtop

Nachdem einem Netzwerk-Interface eine IP-Adresse zugewiesen worden ist, möchte man natürlich auch mit anderen Hosts im Netzwerk kommunizieren. Um sich diese Kommunikation zu erleichtern, »spricht« man die anderen Systeme über deren Hostnames und nicht über deren IP-Adressen an.

Jeder Unix-Rechner verfügt daher über die Datei /etc/hosts, in die eine (kleine) Liste der vorhandenen Hostnamen inklusive deren IP-Adressen eingetragen werden kann. Der Host kann über diese Datei schnell die zu einem Host gehörige IP-Adresse herausfinden. Dies funktioniert aber nur, wenn alle gewünschten Hosts eine zugeordnete IP-Adresse in der Datei haben und alle diese Einträge aktuell sind. Bei größeren Netzwerken ist dies definitiv nicht mehr von Hand zu erledigen, weshalb man einen DNS-Servers braucht, doch diesen werden wir uns noch nicht in diesem Kapitel ansehen.

Der Aufbau der Datei gestaltet sich denkbar einfach. Zunächst wird die Adresse angegeben (entweder IPv4 oder IPv6), und hinter diese Adresse werden die dafür gültigen Hostnamen geschrieben.

::1 localhost.sun localhost 
127.0.0.1 localhost.sun localhost 
192.168.0.1 eygo.sun eygo 
192.168.0.2 milk.sun milk 
192.168.0.3 yleigu.sun yleigu 
192.168.0.5 yorick.sun yorick

Listing 10.13    Beispiel einer /etc/hosts

Hier bekommt der lokale Rechner die IPv6-Adresse ::1 und die IPv4-Adresse 127.0.0.1. Er kann sowohl als »localhost« wie auch über den FQDN als »localhost.sun« angesprochen werden. Ähnliches gilt auch für die anderen Hosts. Beispielsweise hat der Host »eygo.sun« auch den Namen »eygo« und ihm wurde die IP-Adresse 192.168.0.1 zugewiesen.

In der Datei /etc/hosts besteht ein Eintrag aus genau einer Zeile. Zunächst gibt man die Adresse und danach beliebig viele Hostnamen an. Zwischen den einzelnen Werten sollten Leerzeichen stehen, Tabs sollten allerdings auch funktionieren.

Übrigens wurde die hosts-Datei mit 4.2BSD eingeführt, also zu einer Zeit, in der DNS-Informationen noch etwas anders verbreitet wurden. Für geschichtlich Interessierte sei an dieser Stelle ein Auszug aus der hosts(5)-Manpage von Slackware-Linux 10.1 zitiert:

»Before the advent of DNS, the host table was the only way of resolving hostnames on the fledgling Internet. Indeed, this file could be created from the official host data base maintained at the Network Information Control Center (NIC), though local changes were often required to bring it up to date regarding unofficial aliases and/or unknown hosts. The NIC no longer maintains the hosts.txt files, though looking around at the time of writing (circa 2000), there are historical hosts.txt files on the WWW. I just found three, from 92, 94, and 95.«.

Nichtsdestotrotz ist diese Datei für kleine Netzwerke ohne einen DNS-Server noch äußerst nützlich.


Galileo Computing

10.2.6 /etc/networks  downtop

In der /etc/networks wird, ähnlich wie in der Datei hosts, eine Liste von Adressen abgelegt. In diesem Fall werden allerdings ganze Netzwerkadressen in Netzwerknamen (und vice versa) übersetzt, was in Verbindung mit DNS angewandt werden kann. Die networks-Datei wurde, wie auch die hosts-Datei, mit 4.2BSD eingeführt.

linux$ cat /etc/networks 
loopback        127.0.0.0 
localnet        192.168.0.0 
openbsd$ cat /etc/networks 
BASE-ADDRESS.MCAST.NET  224 
loopback                127     loop

Listing 10.14    /etc/networks

In der ersten Spalte steht dabei der offizielle Netzwerkname, in der zweiten die Netzwerkadresse (etwa 127 oder 127.0.0.0). Spalte Nummer drei legt noch einen Alias fest. Der Aufbau dieser Datei kann von System zu System etwas variieren.


Galileo Computing

10.2.7 /etc/resolv.conf  downtop

Über die Datei /etc/resolv.conf wird der lokale Resolver konfiguriert, der von der C-Library verwendet wird.

Ein Resolver ist dafür zuständig, DNS-Anfragen »aufzulösen«. Das bedeutet, dass der Resolver sich darum kümmert, Ihrem System die DNS-Informationen zu beschaffen, die benötigt werden. Dabei kann es sich beispielsweise um eine IP-Adresse für einen Hostnamen, einen Hostnamen für eine IP-Adresse, einen Mail-Exchanger oder Ähnliches handeln.

Kommentare werden in dieser Datei durch Hashes (Rauten, #) oder Semikolons (;) eingeleitet. Diese funktionieren wie die Rauten-Kommentare in der Shell. Ansonsten besteht diese Datei primär aus Schlüsselwörtern (Keywords) und zugehörigen Werten. Eine typische resolv.conf sieht in etwa folgendermaßen aus:

lookup file bind        ; Erst /etc/hosts, dann DNSd 
nameserver 192.168.0.2  ; Erst 192.168.0.2 fragen, 
nameserver 194.25.2.129 ; dann 194.25.2.129

Listing 10.15    Typische resolv.conf

Wenden wir uns nun den einzelnen Keywords zu, die in die resolv.conf eingetragen werden können.

Das Keyword nameserver legt einen Nameserver fest. Hinter dieses Keyword kann genau eine Nameserver-Adresse geschrieben werden. Dabei kann es sich sowohl um eine IPv4- als auch um eine IPv6-Adresse handeln. Es können (je nach Implementierung) maximal 3 Nameserver angegeben werden, die in ihrer aufgelisteten Reihenfolge vom Resolver abgefragt werden. Der wichtigste Server sollte also immer zuerst stehen, und anschließend können (falls vorhanden) eventuelle Notfallserver gelistet werden, die dann angesprochen werden, wenn der erste Server nicht erreichbar ist. Wird kein Nameserver angegeben, wird versucht, einen Namserver über die Adresse 127.0.0.1 (also lokal) anzusprechen.

Über domain wird der lokale Domainname angegeben. Damit können Hosts auch über ihren direkten Nicht-FQDN-Hostnamen angesprochen werden, ohne dass dieser zuvor explizit in der /etc/hosts so angegeben wurde.

Die zu verwendenden Möglichkeiten zur Datenabfrage werden durch lookup spezifiziert. Dabei gibt es drei verschiedene Werte, die an dieser Stelle angegeben werden können: bind (Nameserver-Abfrage), file (/etc/hosts abfragen) und yp (NIS-Abfrage durch ypbind).

Wird keine Lookup-Zeile in der resolv.conf angegeben, verhält sich der Resolver so, als wäre die Konfiguration »bind file«. Dass bedeutet: Zunächst wird der Nameserver abgefragt, und falls dieser keine Antwort weiß, die hosts-Datei.

Gibt man keinen FQDN an, fragt der Resolver verschiedene Domains ab, denen der gesuchte Hostname angehören kann. Zu diesem Zweck kann über das Keyword search eine Liste von bis zu sechs Domains angegeben werden, die in einer entsprechenden Reihenfolge abgefragt werden sollen. Neben der Bevorzugung von Domains gibt es zusätzlich eine Liste für IP-Adressen. Die Adressliste, die Programmen übergeben wird, die eine IP-Adresse über den Resolver angefordert haben, <Das funktioniert im Übrigen mit der Funktion gethostbyname().> kann nämlich durch sortlist in eine bestimmte Reihenfolge gebracht werden, wobei auch eine Netzmaske angegeben werden kann. Es sind (abhängig von der Implementierung) meist maximal 10 Sortierungseinträge möglich.

sortlist 192.168.0.0/255.255.0.0 10.0.0.0/255.255.255.31

Listing 10.16    Beispiel einer sortlist-Anwendung

Zudem existiert noch eine weitere Konfigurationsmöglichkeit, die sich options nennt. Hinter diesem Keyword steht jeweils ein weiteres Keyword, dessen Varianten Sie in der entsprechenden Manpage zu resolv.conf nachlesen können. Da diese Optionen kaum verwendet werden und über das in diesem Kapitel vermittelte Wissen hinausgehen würden, werden wir an dieser Stelle nicht weiter auf sie eingehen.


Galileo Computing

10.2.8 Nun gibt es aber ein Problem ...  downtop

Und dieses Problem ist die Reihenfolge der Abfrage von DNS-Server und hosts-Datei. Was hat nun Priorität: der DNS-Server des Providers, die lokalen hosts- und networks-Dateien oder gar ein eventuell vorhandenes NIS-System? Für diese Probleme gibt es eine Lösung: die Datei /etc/nsswitch.conf.

$ cat /etc/nsswitch.conf 
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

Listing 10.17    Ordnung ins Chaos: /etc/nsswitch.conf

Uns interessiert eigentlich der Eintrag für hosts und networks: Es soll zuerst lokal gesucht werden, dann erst im DNS des Providers. Das macht im Normalfall eigentlich immer Sinn und ist daher auch eine Voreinstellung. Die anderen Optionen in der Datei tragen einfach dem Fakt Rechnung, dass man noch viel mehr per NIS bzw. NIS+ im Netzwerk verteilen kann als nur diese beiden Dateien.


Galileo Computing

10.2.9 Windows und Namensauflösung  toptop

Hauptsache anders

Nun gibt es unter Windows auch die Möglichkeit, Rechnern im Netzwerk Namen zu geben. Die Windows-Namensauflösung funktioniert noch einmal völlig anders, nämlich über das sogenannte NETBIOS-System. Als Laie kann man sich vorstellen, dass Microsoft in diesem Fall das Rad einfach noch einmal erfunden hat, <Tatsächlich ist es so, dass es lange Zeit viele konkurrierende Netzwerkprotokolle neben TCP/IP gegeben hat, von denen Microsoft nicht abhängig sein wollte. Also gehört NETBIOS als Programmier-Interface viel eher zu den »Altlasten«; am Ende läuft es aber auf dasselbe hinaus.> mit dem Unterschied, dass das Rad diesmal nur mit anderen Rädern des Herstellers optimal funktioniert und sich leider nur in eine Richtung drehen kann – aber nur bei gutem Wetter. NETBIOS setzt zwar auf TCP/IP auf, macht sonst aber sein eigenes Ding.

Sollte man es wirklich ernsthaft in Erwägung ziehen, diese Namensauflösung zu nutzen, muss man das sogenannte Samba-Paket installieren. Mit diesem hat man die Möglichkeit, auf freigegebene Windows-Laufwerke zuzugreifen und eben die Namensauflösung zu nutzen. In diesem Fall kann man in die /etc/nsswitch.conf auch noch winbind als Quelle für entsprechende Namensinformationen eintragen. Mehr Hinweise zu Samba folgen jedoch im Kapitel 12.7.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Linux






 Linux
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Katalog: Einstieg in Linux






 Einstieg in Linux


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-
 Programmierung


Zum Katalog: Praxisbuch Netzwerk-Sicherheit






 Praxisbuch
 Netzwerk-Sicherheit


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de