15.2 Grundlegendes Netzwerk-Setup 

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

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
15.2.2 Netzwerkadressen für alle 

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.
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.
15.2.3 Wireless LAN 

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

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
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.
15.2.5 /etc/hosts 

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

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.
15.2.7 /etc/resolv.conf 

Ü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.
15.2.8 Nun gibt es aber ein Problem ... 

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.
15.2.9 Windows und Namensauflösung 

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.