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

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

Spacer
Linux von Johannes Plötner, Steffen Wendzel
Das umfassende Handbuch
Buch: Linux

Linux
Rheinwerk Computing
1282 S., 5., aktualisierte Auflage 2012, geb., mit 2 DVDs
49,90 Euro, ISBN 978-3-8362-1822-1
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 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

Rheinwerk Computing - Zum Seitenanfang

15.2 Grundlegendes Netzwerk-SetupZur nächsten Ü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.


Rheinwerk Computing - Zum Seitenanfang

15.2.1 Hostname setzenZur 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.

Listing 15.1 Hostname setzen

$ hostname jupiter.sun

[»]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.

Listing 15.2 Hostname abfragen

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

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

Rheinwerk Computing - Zum Seitenanfang

15.2.2 Netzwerkadressen für alleZur 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. [Fn. 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.

Listing 15.3 ifconfig -a

# 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)

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 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.

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 [Fn. NE2000- oder kompatibler Treiber (OpenBSD)] oder rl1 [Fn. Realtek 8129/8139-Fast-Ethernet-Treiber (OpenBSD)]. Zudem werden einige Werte standardmäßig in hexadezimaler Form ausgegeben.

Listing 15.4 ifconfig -a, BSD

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

Adresse

Um eine Adresse festzulegen, übergibt man ifconfig den Namen der gewünschten Schnittstelle sowie die zugehörige IP-Adresse. [Fn. 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.]

Listing 15.5 ifconfig

linux# ifconfig eth0 192.168.0.3

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.

Listing 15.6 Medientyp angeben

linux# ifconfig eth0 192.168.0.3 media 10baseT

Netzmaske

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

Listing 15.7 ifconfig

linux# ifconfig eth0 192.168.0.3 netmask \
255.255.255.0 media 10baseT

Mehrere Adressen

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

[zB]

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):

Listing 15.8 eth:1 anlegen

# 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
...

Schnittstellen abstellen

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

Listing 15.9 Schnittstelle abstellen

# ifconfig eth0:1 down

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.


Rheinwerk Computing - Zum Seitenanfang

15.2.3 Wireless LANZur nächsten ÜberschriftZur vorigen Überschrift

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, die wir im Folgenden beschreiben. Der richtite Treiber sollte heutzutage kein Problem mehr darstellen. Notfalls können sogar Windows-Treiber geladen werden. Wenn Ihre WLAN-Schnittstelle bei den Interfaces in ifconfig -a auftaucht, stellt Linux den entsprechenden Treiber für Ihren Chipsatz bereit. 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:

Listing 15.10 iwlist

# 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
...

[zB]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, mit 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:

Listing 15.11 iwconfig

# 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
[...]

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.


Rheinwerk Computing - Zum Seitenanfang

15.2.4 DHCPZur 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 über DHCP konfigurieren wollen, sei kurz auf das Programm dhcp-client und sein Pendant dhclient hingewiesen. Über einen einfachen Aufruf eines dieser Programme können Sie eine Netzwerkschnittstelle per DHCP konfigurieren:

Listing 15.12 Die Schnittstelle eth1 mittels dhcp-client konfigurieren lassen

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

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.


Rheinwerk Computing - Zum Seitenanfang

15.2.5 /etc/hostsZur 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 ihre Hostnames und nicht über ihre 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 Rechner 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.

Listing 15.13 Beispiel einer /etc/hosts-Datei

::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

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 dürften 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.


Rheinwerk Computing - Zum Seitenanfang

15.2.6 /etc/networksZur 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.

Listing 15.14 Ein Beispiel einer /etc/networks-Datei

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

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 ein Alias fest. Der Aufbau dieser Datei kann von System zu System etwas variieren.


Rheinwerk Computing - Zum Seitenanfang

15.2.7 /etc/resolv.confZur 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 er sich darum kümmert, Ihrem System die DNS-Informationen zu beschaffen, die benötigt werden. Dabei kann es sich beispielsweise um die IP-Adresse zu einem Hostnamen, den Hostnamen zu einer IP-Adresse, einen Mail-Exchanger oder Ähnliches handeln.

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

Listing 15.15 Typische resolv.conf

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

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 es 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 Server angegeben, wird versucht, einen Nameserver über die Adresse 127.0.0.1 (also lokal) anzusprechen.

Mit 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 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, [Fn. Dies läuft im Übrigen über die 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.

Listing 15.16 Beispiel einer sortlist-Anwendung

sortlist 192.168.0.0/255.255.0.0 10.0.0.0/255.255.255.31

Zudem existiert noch eine weitere Konfigurationsmöglichkeit, die sich options nennt. Hinter diesem 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.


Rheinwerk 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.

Listing 15.17 Bringt Ordnung ins Chaos: /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

Uns interessiert eigentlich der Eintrag für hosts und networks: Es soll zuerst lokal gesucht werden, dann erst im DNS des Providers. Dies 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.


Rheinwerk Computing - Zum Seitenanfang

15.2.9 Windows und NamensauflösungZur vorigen Überschrift

Hauptsache anders

Nun gibt es auch unter Windows die Möglichkeit, Rechnern im Netzwerk Namen zu geben. Die Windows-Namensauflösung funktioniert allerdings 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, [Fn. 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 ausschließlich mit anderen Rädern desselben 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 in Abschnitt abschnittSamba.



Ihr Kommentar

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

>> Zum Feedback-Formular
<< zurück
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Linux Handbuch






 Linux Handbuch


Zum Katalog: Linux Server






 Linux Server


Zum Katalog: Raspberry Pi






 Raspberry Pi


Zum Katalog: Ubuntu 14.04 LTS






 Ubuntu 14.04 LTS


Zum Katalog: Roboter bauen mit Arduino






 Roboter bauen
 mit Arduino


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2012
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.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de