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

Inhaltsverzeichnis
Vorwort
1 Einleitung
2 Die Installation
3 Erste Schritte
4 Linux als Workstation für Einsteiger
5 Der Kernel
6 Die Grundlagen aus Anwendersicht
7 Die Shell
8 Reguläre Ausdrücke
9 Konsolentools
10 Die Editoren
11 Shellskriptprogrammierung mit der bash
12 Die C-Shell
13 Benutzerverwaltung
14 Grundlegende Verwaltungsaufgaben
15 Netzwerkgrundlagen
16 Anwendersoftware für das Netzwerk
17 Netzwerkdienste
18 Mailserver unter Linux
19 LAMP
20 DNS-Server
21 Secure Shell
22 Die grafische Oberfläche
23 Window-Manager und Desktops
24 X11-Programme
25 Multimedia und Spiele
26 Prozesse und IPC
27 Bootstrap und Shutdown
28 Dateisysteme
29 Virtualisierung und Emulatoren
30 Softwareentwicklung
31 Crashkurs in C und Perl
32 Einführung in die Sicherheit
33 Netzwerksicherheit überwachen
A Lösungen zu den einzelnen Aufgaben
B Kommandoreferenz
C X11-InputDevices
D MBR
E Die Buch-DVDs
F Glossar
G Literatur
Stichwort

Download:
- ZIP, ca. 15,7 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Linux von Johannes Pl&ouml;tner, Steffen Wendzel
Das umfassende Handbuch
Buch: Linux

Linux
geb., mit 2 DVDs
1302 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1704-0
Pfeil 15 Netzwerkgrundlagen
  Pfeil 15.1 Grundlegendes zu TCP/IP
    Pfeil 15.1.1 Network-Access-Layer
    Pfeil 15.1.2 Internet-Layer
    Pfeil 15.1.3 Transport-Layer
    Pfeil 15.1.4 Application-Layer
  Pfeil 15.2 Grundlegendes Netzwerk-Setup
    Pfeil 15.2.1 Hostname setzen
    Pfeil 15.2.2 Netzwerkadressen für alle
    Pfeil 15.2.3 Wireless LAN
    Pfeil 15.2.4 DHCP
    Pfeil 15.2.5 /etc/hosts
    Pfeil 15.2.6 /etc/networks
    Pfeil 15.2.7 /etc/resolv.conf
    Pfeil 15.2.8 Nun gibt es aber ein Problem ...
    Pfeil 15.2.9 Windows und Namensauflösung
  Pfeil 15.3 Grundlagen des Routings
    Pfeil 15.3.1 Routing-Administration: route
    Pfeil 15.3.2 Router aufsetzen
  Pfeil 15.4 Netzwerkverbindungen
    Pfeil 15.4.1 Datenaufkommen von Schnittstellen
    Pfeil 15.4.2 Protokollstatistiken
    Pfeil 15.4.3 Aktive TCP-Verbindungen
    Pfeil 15.4.4 Listen-Ports
    Pfeil 15.4.5 ARP-Cache
    Pfeil 15.4.6 tcpdump
  Pfeil 15.5 Mit Linux ins Internet
    Pfeil 15.5.1 Das Point-to-Point Protocol
    Pfeil 15.5.2 Einwahl mit einem Modem
    Pfeil 15.5.3 Einwahl über DSL
  Pfeil 15.6 Zusammenfassung
  Pfeil 15.7 Aufgaben


Galileo Computing - Zum Seitenanfang

15.2 Grundlegendes Netzwerk-Setup  Zur nächsten ÜberschriftZur vorigen Überschrift

Im Folgenden werden wir nach und nach alle Schritte durchführen, die notwendig sind, um einen Rechner in ein Netzwerk zu integrieren, genauer: um ihn als ersten Host in ein neues Netzwerk zu integrieren.


Galileo Computing - Zum Seitenanfang

15.2.1 Hostname setzen  Zur nächsten ÜberschriftZur vorigen Überschrift

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 Hostname (das ist die namentliche Bezeichnung des Rechners im Netzwerk) und einem FQDN (Fully Qualified Domain Name). Bei Ersterem handelt es sich um einen einfachen Namen, wie 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. Um einen Hostname zu setzen, übergibt man den FQDN als Parameter an hostname.

$ hostname jupiter.sun

Listing 15.1  Hostname setzen


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!


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 15.2  Hostname abfragen


Galileo Computing - Zum Seitenanfang

15.2.2 Netzwerkadressen für alle  Zur nächsten ÜberschriftZur vorigen Überschrift

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; zunächst aber wollen wir einer Netzwerkschnittstelle eine IP-Adresse zuweisen. [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 15.3  ifconfig -a

Diese Ausgabe enthält gleich eine Menge Informationen – viel mehr, als wir benötigen. Das Wichtigste ist: Es gibt zwei Netzwerkschnittstellen: eth0 und lo. Die Schnittstelle lo ist die sogenannte Loopback-Schnittstelle. Sie dient nur zur rechnerinternen 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. Der Grund ist, 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.

Wie Sie sehen, hat die Ethernet-Karte die Adresse 192.168.0.3 und das Netzwerk die Broadcast-Adresse 192.168.0.255. 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.

Abbildung Teufelchen

Unter den BSD-Systemen werden die Netzwerkschnittstellen jeweils anders bezeichnet. Die Loopback-Schnittstelle wird in der Regel mit lo0 bezeichnet, Ethernet-Schnittstellen erhalten 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 15.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 15.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 Schnittstellenart 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 15.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 15.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 an (in diesem Fall die »1« für die erste virtuelle Instanz):


# 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 15.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 15.9  Schnittstelle abstellen


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


Nach einem Neustart des Systems 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, so müssen Sie entweder direkt die Konfigurations- und Skriptdateien in /etc abändern (die von Distribution zu Distribution und bei den einzelnen Derivaten verschieden sind), oder Sie müssen ein distributionsspezifisches Hilfstool, etwa netconfig unter Slackware, erneut ausführen.


Galileo Computing - Zum Seitenanfang

15.2.3 Wireless LAN  Zur nächsten ÜberschriftZur vorigen Überschrift

Abbildung Tux

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 vielen Centrino-Notebooks 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. Zunächst aber möchten Sie vielleicht testen, welche Funk-LANs gefunden werden. Rufen Sie dazu 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 15.10  iwlist


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


iwconfig

Für die Konfiguration 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 gewählt, 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 15.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 - Zum Seitenanfang

15.2.4 DHCP  Zur nächsten ÜberschriftZur vorigen Überschrift

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 – alles läuft 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 in Kapitel 17, dem 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 daraufhin 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 eines dieser Programme können Sie eine Netzwerkschnittstelle per DHCP konfigurieren:

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

Listing 15.12  Die Schnittstelle eth1 mittels dhcp-client konfigurieren lassen

Abbildung Blowfish

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 - Zum Seitenanfang

15.2.5 /etc/hosts  Zur nächsten ÜberschriftZur vorigen Überschrift

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-Server braucht, welchen wir in Kapitel 20 behandeln werden.

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 15.13  Beispiel einer /etc/hosts-Datei

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 - Zum Seitenanfang

15.2.6 /etc/networks  Zur nächsten ÜberschriftZur vorigen Überschrift

In der Datei /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 anwendbar ist. 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 15.14  Ein Beispiel einer /etc/networks-Datei

In der ersten Spalte steht 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 - Zum Seitenanfang

15.2.7 /etc/resolv.conf  Zur nächsten ÜberschriftZur vorigen Überschrift

Ü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 15.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 drei Nameserver angegeben werden, die in ihrer aufgelisteten Reihenfolge vom Resolver abgefragt werden. Der wichtigste Server sollte also immer zuerst stehen, nachfolgend 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 Datei /etc/hosts so angegeben wurde.

Die zu verwendenden Möglichkeiten zur Datenabfrage werden durch die lookup-Zeile 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. Das bedeutet: Zunächst wird der Nameserver abgefragt, und erst wenn 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 zehn Sortierungseinträge möglich.

sortlist 192.168.0.0/255.255.0.0 10.0.0.0/255.255.255.31

Listing 15.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 - Zum Seitenanfang

15.2.8 Nun gibt es aber ein Problem ...  Zur nächsten ÜberschriftZur vorigen Überschrift

Und dieses Problem ist die Reihenfolge der Abfragen 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 15.17  Bringt 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 - Zum Seitenanfang

15.2.9 Windows und Namensauflösung  topZur vorigen Überschrift

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 das so vorstellen, dass Microsoft in diesem Fall das Rad einfach noch einmal neu 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 zusammen 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 Datei /etc/nsswitch.conf auch noch winbind als Quelle für entsprechende Namensinformationen eintragen. Mehr Hinweise zu Samba folgen jedoch in Abschnitt 17.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, Ausgabe 2011






Linux, Ausgabe 2011
Jetzt bestellen


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

 Buchempfehlungen
Zum Katalog: Linux-Server






 Linux-Server


Zum Katalog: Linux Hochverfügbarkeit






 Linux Hoch-
 verfügbarkeit


Zum Katalog: LPIC-1






 LPIC-1


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: openSUSE 11.2






 openSUSE 11.2


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2011
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