Die manuelle Konfiguration der Netzwerksoftware sollte immer die letzte Alternative sein. Wir empfehlen, YaST zu benutzen. Die folgenden Hintergrundinformationen zur Netzwerkkonfiguration können Ihnen jedoch auch bei der Arbeit mit YaST behilflich sein.
Alle integrierten Netzwerkkarten und Hotplug-Netzwerkkarten (PCMCIA, USB und einige PCI-Karten) werden über Hotplug erkannt und konfiguriert. Das System erkennt eine Netzwerkkarte auf zwei unterschiedliche Weisen: erstens als physisches Gerät und zweitens als Schnittstelle. Das Einstecken eines Geräts löst ein Hotplug-Ereignis aus. Dieses Hotplug-Ereignis löst dann die Initialisierung des Geräts mithilfe des Skripts hwup aus. Wenn die Netzwerkkarte als neue Netzwerkschnittstelle initialisiert wird, generiert der Kernel ein weiteres Hotplug-Ereignis, das das Einrichten der Schnittstelle mit ifup auslöst.
Der Kernel nummeriert die Schnittstellennamen gemäß der zeitlichen Reihenfolge ihrer Registrierung. Die Initialisierungsreihenfolge ist für die Zuordnung der Namen entscheidend. Falls eine von mehreren Netzwerkkarten ausfallen sollte, wird die Nummerierung aller danach initialisierten Karten verschoben. Für echte Hotplug-fähige Karten ist die Reihenfolge, in der die Geräte angeschlossen werden, wichtig.
Um eine flexible Konfiguration zu ermöglichen, wurde die Konfiguration der Geräte (Hardware) und der Schnittstellen voneinander getrennt und die Zuordnung der Konfigurationen zu Geräten und Schnittstellen erfolgt nicht mehr auf Basis der Schnittstellennamen. Die Gerätekonfigurationen befinden sich im Verzeichnis /etc/sysconfig/hardware/hwcfg-*
. Die Schnittstellenkonfigurationen befinden sich im Verzeichnis /etc/sysconfig/network/ifcfg-*
. Die Namen der Konfigurationen werden so zugewiesen, dass sie die Geräte und die damit verknüpften Schnittstellen beschreiben. Da bei der früheren Zuordnung von Treibern zu Schnittstellennamen statische Schnittstellennamen erforderlich waren, kann diese Zuordnung nicht mehr in der Datei /etc/modprobe.conf
erfolgen. Im neuen Konzept würden die Aliaseinträge in dieser Datei Probleme verursachen.
Die Konfigurationsnamen – d. h., die Einträge hinter hwcfg-
oder ifcfg-
– beschreiben die Geräte anhand des Steckplatzes, der gerätesspezifischen ID oder des Schnittstellennamens. Der Konfigurationsname für eine PCI-Karte kann beispielsweise bus-pci-0000:02:01.0
(PCI-Steckplatz) oder vpid-0x8086-0x1014-0x0549
(Hersteller- und Produkt-ID) lauten. Der Name der zugeordneten Schnittstelle kann bus-pci-0000:02:01.0
oder wlan-id-00:05:4e:42:31:7a
(MAC-Adresse) lauten.
Um eine bestimmte Netzwerkkonfiguration einer Karte eines bestimmten Typs zuzuordnen (von der immer nur jeweils eine eingesetzt ist), wählen Sie anstelle einer bestimmten Karte weniger spezifische Konfigurationsnamen. So würde bus-pcmcia
beispielsweise für alle PCMCIA-Karten verwendet werden. Die Namen können andererseits auch durch einen vorangestellten Schnittstellentyp eingeschränkt werden. So würde wlan-bus-usb
beispielsweise WLAN-Karten zugeordnet werden, die an einen USB-Anschluss angeschlossen sind.
Das System verwendet immer die Konfiguration, die eine Schnittstelle oder das Gerät, das die Schnittstelle zur Verfügung stellt, am besten beschreibt. Die Suche nach der am besten geeigneten Konfiguration erfolgt mit dem Befehl getcfg. Die Ausgabe von getcfg enthält alle Informationen, die für die Beschreibung eines Geräts verwendet werden können. Weitere Informationen zur Spezifikation von Konfigurationsnamen finden Sie auf der Manualpage für den Befehl getcfg.
Mit der beschriebenen Methode wird eine Netzwerkschnittstelle auch dann mit der richtigen Konfiguration eingestellt, wenn die Netzwerkgeräte nicht immer in derselben Reihenfolge initialisiert werden. Der Name der Schnittstelle ist jedoch weiter von der Initialisierungsreihenfolge abhängig. Es gibt zwei Möglichkeiten, den zuverlässigen Zugriff auf die Schnittstelle einer bestimmten Netzwerkkarte sicherzustellen:
getcfg-interface
gibt den Namen der zugeordneten Netzwerkschnittstelle zurück. Daher kann in einigen Konfigurationsdateien der Konfigurationsname, z. B. Firewall, DHCPD, Routing oder eine virtuelle Netzwerkschnittstelle (Tunnel), anstelle des Schnittstellennamens eingegeben werden, da Letzterer nicht persistent ist.
Konfigurationsname
Persistente Schnittstellennamen werden automatisch jeder Schnittstelle zugewiesen. Sie können diese Ihren Anforderungen anpassen. Gehen Sie zum Erstellen von Schnittstellennamen vor wie in /etc/udev/rules.d/30-net_persistent_names.rules
beschrieben. Der persistente Name pname
muss sich jedoch von dem Namen unterscheiden, den der Kernel automatisch zuweisen würde. Aus diesem Grund sind eth*
, tr*
, wlan*
usw. nicht zulässig. Verwenden Sie stattdessen net*
oder beschreibende Namen wie extern
, intern
oder dmz
. Stellen Sie sicher, dass jeder Schnittstellenname nur einmal benutzt wird. Erlaubte Zeichen in Schnittstellennamen sind auf [a-zA-Z0-9]
beschränkt. Ein persistenter Name kann einer Schnittstelle nur direkt nach deren Registrierung zugewiesen werden, d. h., der Treiber der Netzwerkkarte muss neu geladen oder hwup
muss ausgeführt werden. Der Befehl rcnetwork Gerätebeschreibung
restart
reicht für diesen Zweck nicht aus.
Verwendung persistenter Schnittstellennamen | |
---|---|
Die Verwendung persistenter Schnittstellennamen wurde noch nicht für alle Bereiche getestet. Daher sind einige Anwendungen möglicherweise nicht in der Lage, frei ausgewählte Schnittstellennamen handzuhaben. |
ifup erfordert eine vorhandene Schnittstelle, da es die Hardware nicht initialisiert. Die Initialisierung der Hardware erfolgt über den Befehl hwup (wird von hotplug oder coldplug ausgeführt). Bei der Initialisierung eines Geräts wird ifup automatisch für die neue Schnittstelle über hotplug ausgeführt und die Schnittstelle wird eingerichtet, wenn der Startmodus onboot
, hotplug
oder auto
ist und der Dienst network gestartet wurde. Früher wurde die Hardware-Initialisierung durch den Befehl ifup
ausgelöst. Jetzt ist die Vorgehensweise genau umgekehrt. Zuerst wird eine Hardwarekomponente initialisiert und anschließend werden alle anderen Aktionen ausgeführt. Auf diese Weise kann eine variierende Anzahl an Geräten mit einem vorhandenen Satz an Konfigurationen immer bestmöglich konfiguriert werden.
Schnittstellenname
Tabelle 18.5, „Skripts für die manuelle Netzwerkkonfiguration“ zeigt die wichtigsten an der Netzwerkkonfiguration beteiligten Skripts. Die Skripts werden, wann immer möglich, nach Hardware und Schnittstelle unterschieden.
Tabelle 18.5. Skripts für die manuelle Netzwerkkonfiguration
Konfigurationsphase | Befehl | Funktion |
---|---|---|
Hardware | hw{up,down,status} |
Die |
Schnittstelle | getcfg | getcfg kann zum Abfragen des Namens der Schnittstelle verwendet werden, die mit einem Konfigurationsnamen oder einer Hardwarebeschreibung verknüpft ist. Weitere Informationen hierzu finden Sie auf der Manualpage für den Befehl getcfg. |
Schnittstelle | if{up,down,status} |
Die |
Weitere Informationen zu Hotplug und persistenten Gerätenamen finden Sie in Kapitel 12, Gerätemanagement über dynamischen Kernel mithilfe von udev.
Dieser Abschnitt bietet einen Überblick über die Netzwerkkonfigurationsdateien und erklärt ihren Zweck sowie das verwendete Format.
Diese Dateien enthalten die Hardwarekonfigurationen der Netzwerkkarten und weiterer Geräte. Sie enthalten die erforderlichen Parameter, z. B. das Kernelmodul, den Startmodus und Skriptverknüpfungen. Weitere Informationen hierzu finden Sie auf der Manualpage für den Befehl hwup. Die hwcfg-static-*
-Konfigurationen werden unabhängig von der Hardware angewendet, wenn coldplug gestartet wird.
Diese Dateien enthalten die Konfigurationsdaten, die spezifisch für eine Netzwerkschnittstelle sind. Sie enthalten Informationen wie den Startmodus und die IP-Adresse. Mögliche Parameter sind auf der Manualpage für den Befehl ifup beschrieben. Wenn nur eine einzelne allgemeine Einstellung nur für eine bestimmte Schnittstelle verwendet werden soll, können außerdem alle Variablen aus den Dateien dhcp
, wireless
und config
in den ifcfg-*
-Dateien verwendet werden.
Die Datei config
enthält allgemeine Einstellungen für das Verhalten von ifup, ifdown und ifstatus. dhcp
enthält DHCP-Einstellungen und wireless
Einstellungen für Wireless-LAN-Karten. Die Variablen in allen drei Konfigurationsdateien sind kommentiert und können auch in den ifcfg-*
-Dateien verwendet werden, wo sie mit einer höheren Priorität verarbeitet werden.
Hier wird das statische Routing von TCP/IP-Paketen festgelegt. Sämtliche statische Routen, die für die unterschiedlichen System-Tasks erforderlich sind, können in die Datei /etc/sysconfig/network/routes
eingegeben werden: Routen zu einem Host, Routen zu einem Host über ein Gateway sowie Routen zu einem Netzwerk. Definieren Sie für jede Schnittstelle, für die ein separates Routing erforderlich ist, eine zusätzliche Konfigurationsdatei: /etc/sysconfig/network/ifroute-*
. Ersetzen Sie *
durch den Namen der Schnittstelle. Die Einträge in der Routing-Konfigurationsdatei sehen wie folgt aus:
# Destination Dummy/Gateway Netmask Device # 127.0.0.0 0.0.0.0 255.255.255.0 lo 204.127.235.0 0.0.0.0 255.255.255.0 eth0 default 204.127.235.41 0.0.0.0 eth0 207.68.156.51 207.68.145.45 255.255.255.255 eth1 192.168.0.0 207.68.156.51 255.255.0.0 eth1
Das Routenziel steht in der ersten Spalte. Diese Spalte kann die IP-Adresse eines Netzwerks oder Hosts bzw., im Fall von erreichbaren Namenservern, den voll qualifizierten Netzwerk- oder Hostnamen enthalten.
Die zweite Spalte enthält das Standard-Gateway oder ein Gateway, über das der Zugriff auf einen Host oder ein Netzwerk erfolgt. Die dritte Spalte enthält die Netzmaske für Netzwerke oder Hosts hinter einem Gateway. Die Maske 255.255.255.255
gilt beispielsweise für einen Host hinter einem Gateway.
Die vierte Spalte ist nur für Netzwerke relevant, die mit dem lokalen Host verbunden sind, z. B. Loopback-, Ethernet-, ISDN-, PPP- oder Dummy-Geräte. In diese Spalte muss der Gerätename eingegeben werden.
In einer (optionalen) fünften Spalte kann der Typ einer Route angegeben werden. Nicht benötigte Spalten sollten ein Minuszeichen -
enthalten, um sicherzustellen, dass der Parser den Befehl korrekt interpretiert. Weitere Informationen hierzu finden Sie auf der Manualpage für den Befehl routes(5)
.
In dieser Datei wird die Domäne angegeben, zu der der Host gehört (Schlüsselwort search
). Ebenfalls aufgeführt ist der Status des Namenservers, auf den der Zugriff erfolgt (Schlüsselwort nameserver
). Es können mehrere Domänennamen angegeben werden. Bei der Auflösung eines Namens, der nicht voll qualifiziert ist, wird versucht, einen solchen zu generieren, indem die einzelnen search
-Einträge angehängt werden. Wenn Sie mehrere Namenserver verwenden, geben Sie mehrere Zeilen ein, wobei jede Zeile mit nameserver
beginnt. Stellen Sie Kommentaren ein #
-Zeichen voran. YaST trägt den angegebenen Namenserver in diese Datei ein. Beispiel 18.5, „/etc/resolv.conf
“ zeigt, wie /etc/resolv.conf
aussehen könnte.
Beispiel 18.5. /etc/resolv.conf
# Our domain search example.com # # We use sun (192.168.0.20) as nameserver nameserver 192.168.0.20
Einige Dienste, z. B. pppd (wvdial), ipppd (isdn), dhcp (dhcpcd und dhclient), pcmcia und hotplug ändern die Datei /etc/resolv.conf
mit dem Skript modify_resolvconf
. Wenn die Datei /etc/resolv.conf
von diesem Skript vorübergehend geändert wurde, enthält sie einen vordefinierten Kommentar mit Informationen zu dem Dienst, der sie geändert hat, dem Speicherort, an dem die ursprüngliche Datei gesichert wurde, sowie Informationen darüber, wie der automatische Änderungsmechanismus deaktiviert werden kann. Wenn /etc/resolv.conf
mehrmals geändert wird, enthält die Datei die Änderungen in verschachtelter Form. Diese können auf saubere Weise auch dann wieder rückgängig gemacht werden, wenn dieser Umkehrvorgang in einer anderen Reihenfolge ausgeführt wird, als die Änderungen vorgenommen wurden. Dienste, die diese Flexibilität möglicherweise benötigen, sind beispielsweise isdn, pcmcia und hotplug.
Wenn ein Dienst auf unnormale Weise beendet wurde, kann die ursprüngliche Datei mit modify_resolvconf
wiederhergestellt werden. Zudem wird beispielsweise nach einem Systemabsturz beim Booten des Systems ein Test ausgeführt, um zu ermitteln, ob eine unsaubere, geänderte resolv.conf
vorhanden ist (z. B. durch einen Systemabsturz), in welchem Fall die ursprüngliche (unveränderte) resolv.conf
wiederhergestellt wird.
YaST ermittelt mit dem Befehl modify_resolvconf check
, ob resolv.conf
geändert wurde, und warnt den Benutzer, dass Änderungen nach dem Wiederherstellen der Datei verloren gehen. Abgesehen davon verlässt sich YaST nicht auf modify_resolvconf
, d. h., die Auswirkungen der Änderung von resolv.conf
über YaST sind identisch mit allen anderen manuellen Änderungen. Die Änderungen sind in beiden Fällen permanent. Die von den genannten Diensten vorgenommenen Änderungen sind nur temporärer Natur.
In dieser Datei werden, wie in Beispiel 18.6, „/etc/hosts
“ gezeigt, IP-Adressen zu Hostnamen zugewiesen. Wenn kein Namenserver implementiert ist, müssen alle Hosts, für die IP-Verbindungen eingerichtet werden sollen, hier aufgeführt sein. Geben Sie für jeden Host in die Datei eine Zeile ein, die aus der IP-Adresse, dem voll qualifizierten Hostnamen und dem Hostnamen besteht. Die IP-Adresse muss am Anfang der Zeile stehen und die Einträge müssen durch Leerzeichen und Tabulatoren getrennt werden. Kommentaren wird immer das #
-Zeichen vorangestellt.
Hier werden Netzwerknamen in Netzwerkadressen umgesetzt. Das Format ähnelt dem der hosts
-Datei, jedoch stehen hier die Netzwerknamen vor den Adressen. Siehe Beispiel 18.7, „/etc/networks
“.
Das Auflösen von Namen, d. h. das Übersetzen von Host- bzw. Netzwerknamen über die resolver-Bibliothek, wird durch diese Datei gesteuert. Diese Datei wird nur für Programme verwendet, die mit libc4 oder libc5 gelinkt sind. Weitere Informationen zu aktuellen glibc-Programmen finden Sie in den Einstellungen in /etc/nsswitch.conf
. Jeder Parameter muss in einer eigenen Zeile stehen. Kommentare werden durch ein #
-Zeichen eingeleitet. Die verfügbaren Parameter sind in Tabelle 18.6, „Parameter für /etc/host.conf“ aufgeführt. Ein Beispiel für /etc/host.conf
wird in Beispiel 18.8, „
/etc/host.conf
“ gezeigt.
Tabelle 18.6. Parameter für /etc/host.conf
order hosts, bind | Legt fest, in welcher Reihenfolge die Dienste zum Auflösen eines Namens angesprochen werden sollen. Mögliche Argumente (getrennt durch Leerzeichen oder Kommas): |
hosts: Durchsuchen der Datei | |
bind: Greift auf einen Namenserver zu | |
nis: Über NIS | |
multi on/off | Legt fest, ob ein in |
nospoof on spoofalert on/off | Diese Parameter beeinflussen das spoofing des Namenservers, haben aber weiter keinen Einfluss auf die Netzwerkkonfiguration. |
trim Domänenname |
Der angegebene Domänenname wird vor dem Auflösen des Hostnamens von diesem abgeschnitten (insofern der Hostname diesen Domänennamen enthält). Diese Option ist dann von Nutzen, wenn in der Datei |
Mit der GNU C Library 2.0 wurde Name Service Switch (NSS) eingeführt. Weitere Informationen hierzu finden Sie auf der Manualpage für nsswitch.conf(5)
und in dem Dokument The GNU C Library Reference Manual.
In der Datei /etc/nsswitch.conf
wird festgelegt, in welcher Reihenfolge bestimmte Informationen abgefragt werden. Ein Beispiel für nsswitch.conf
ist in Beispiel 18.9, „/etc/nsswitch.conf
“ dargestellt. Kommentare werden durch ein #
-Zeichen eingeleitet. Der Eintrag unter der hosts
-Datenbank bedeutet, dass Anfragen über DNS an /etc/hosts
(files
) gehen (siehe Kapitel 20, Das Domain Name System (DNS)).
Beispiel 18.9. /etc/nsswitch.conf
passwd: compat group: compat hosts: files dns networks: files dns services: db files protocols: db files netgroup: files automount: files nis
Die über NSS verfügbaren „Datenbanken“ sind in Tabelle 18.7, „Über /etc/nsswitch.conf verfügbare Datenbanken“ aufgelistet. Zusätzlich sind in Zukunft zudem automount
, bootparams
, netmasks
und publickey
zu erwarten. Die Konfigurationsoptionen für NSS-Datenbanken sind in Tabelle 18.8, „Konfigurationsoptionen für NSS-„Datenbanken““ aufgelistet.
Tabelle 18.7. Über /etc/nsswitch.conf verfügbare Datenbanken
|
Mail-Aliasse, die von |
| Ethernet-Adressen |
|
Für Benutzergruppen, die von |
|
Für Hostnamen und IP-Adressen, die von |
|
Im Netzwerk gültige Host- und Benutzerlisten zum Steuern von Zugriffsrechten. Weitere Informationen hierzu finden Sie auf der Manualpage für |
|
Netzwerknamen und -adressen, die von |
|
Benutzerpasswörter, die von |
|
Netzwerkprotokolle, die von |
|
Remote Procedure Call-Namen und -Adressen, die von |
|
Netzwerkdienste, die von |
|
Shadow-Passwörter der Benutzer, die von |
Tabelle 18.8. Konfigurationsoptionen für NSS-„Datenbanken“
|
Direkter Dateizugriff, z. B. |
| Zugriff über eine Datenbank |
| NIS, siehe auch Kapitel 21, Arbeiten mit NIS |
|
Nur bei |
|
Nur bei |
Mithilfe dieser Datei wird nscd (Name Service Cache Daemon) konfiguriert. Weitere Informationen hierzu finden Sie auf den Manualpages nscd(8)
und nscd.conf(5).
Standardmäßig werden die Systemeinträge von passwd
und groups
von nscd gecacht. Dies ist wichtig für die Leistung der Verzeichnisdienste, z. B. NIS und LDAP, da anderenfalls die Netzwerkverbindung für jeden Zugriff auf Namen oder Gruppen verwendet werden muss. hosts
wird standardmäßig nicht gecacht, da der Mechanismus in nscd dazu führen würde, dass das lokale System keine Trust-Forward- und Reverse-Lookup-Tests mehr ausführen kann. Statt nscd das Cachen der Namen zu übertragen, sollten Sie einen DNS-Server für das Cachen einrichten.
Wenn das Caching für passwd
aktiviert wird, dauert es in der Regel 15 Sekunden, bis ein neu angelegter lokaler Benutzer dem System bekannt ist. Durch das Neustarten von nscd mit dem Befehl rcnscd restart
kann diese Wartezeit verkürzt werden.
Neben den beschriebenen Konfigurationsdateien gibt es noch verschiedene Skripts, die beim Booten des Computers die Netzwerkprogramme starten. Diese werden gestartet, sobald das System in einen der Mehrbenutzer-Runlevel wechselt. Einige der Skripts sind in Tabelle 18.9, „Einige Start-Skripts für Netzwerkprogramme“ beschrieben.
Tabelle 18.9. Einige Start-Skripts für Netzwerkprogramme
Dieses Skript übernimmt die Konfiguration der Netzwerkschnittstellen. Die Hardware muss bereits von /etc/init.d/coldplug (über Hotplug) initialisiert worden sein. Wenn der Dienst network nicht gestartet wurde, werden keine Netzwerkschnittstellen beim Einstecken über Hotplug implementiert. | |
Startet xinetd. xinetd kann verwendet werden, um bei Bedarf Serverdienste auf dem System zur Verfügung zu stellen. Beispielsweise kann er vsftpd starten, sobald eine FTP-Verbindung initiiert wird. | |
Startet den Portmapper, der für einen RPC-Server benötigt wird, z. B. für einen NFS-Server. | |
Startet den NFS-Server. | |
Steuert den sendmail-Prozess. | |
Startet den NIS-Server. | |
Startet den NIS-Client. |