IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Unix - Solaris-Spezielles - Netzwerkkarten installieren und konfigurieren (Solaris 2.6)



Netzwerkkarten installieren und konfigurieren (Solaris 2.6)

Installation und Konfiguration, inkl. virtueller Netzwerkkarten, mit Hilfe von ifconfig unter Solaris 2.6 sowie die nötigen Anpassungen von Konfigurationsdateien und Tips zur Fehlersuche.


Autor: Jochen Berner (jberner)
Datum: 06-06-2002, 10:24:09
Referenzen: http://www.enteract.com/%7Elspitz/interfaces.html (Englisches Original)
Schwierigkeit: Anfänger
Ansichten: 17383x
Rating: Bisher keine Bewertung.

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Übersicht

Dieser Artikel ist der erste aus einer zweiteiligen Reihe. In diesem ersten Artikel werden wir behandeln wie man Netzwerkkarten konfiguriert, Fehler sucht und Änderungen vornimmt. Im zweiten Teil (http://www.enteract.com/~lspitz/routing.html) werden statische Routingtabellen für Systeme mit zwei oder mehr Schnittstellen behandelt. In beiden Artikeln werde ich mich auf TCP/IP in einer Ethernetumgebung konzentrieren.

Schnittstellen

Netzwerkschnittstellenkarten (oder einfach Netzwerkkarten) sind die Teile, die es ihren System ermöglichen, mit dem Netzwerk zu "reden". Arbeitet das Netzwerk nicht, dann arbeiten auch die Netzwerkkarten nicht. Ich werde hier behandeln, wie man Netzwerkkarten konfiguriert, Fehler sucht und Änderungen vornimmt. Routingfragen werden hier nicht behandelt, das ist Gegenstand des nächsten Artikels. Ziel hier ist es, Ihre Netzwerkkarte fehlerfrei zum Laufen zu bekommen.

Der erste Punkt hier ist die Installation und der Test der Hardware. Hat man die Hardware erst einmal installiert, kann man sie auf SPARC Systemen auf EPROM-Ebene testen. Lesen Sie im Handbuch, das mit der Karte mitgeliefert wird nach, um herauszufinden, wie man diese spezielle Karte testet. Solaris x86 ist ein wenig anders, da es hier kein echtes EPROM gibt, und die Treiber anders sind. Solaris x86 2.6 ist aber Plug&Play kompatibel und ich hatte bisher einigermaßen Glück bei der Installation neuer Karten.

Hat man erstmal auf der Hardware- und Treiberebene sichergestellt, dass alles funktioniert, kann der Spaß beginnen. Startpunkt ist das ifconfig-Kommando. Dieser mächtige Befehl erlaubt es, im laufenden Betrieb Netzwerkkarten zu konfigurieren und Einstellungen zu ändern. Diese Änderungen sind jedoch nicht permanent. Wird das System neu gestartet, kehrt das System standardmäßig zu seiner vorherigen Konfiguration zurück. Zuerst werde ich also zeigen, wie man Änderungen mit dem ifconfig-Befehl vornimmt. In der zweiten Hälfte dieses Artikels wird dann beschrieben, wie man diese Änderungen durch Bearbeiten der entsprechenden Konfigurationsdateien permanent macht.

ifconfig

icfconfig -a zeigt an, welche Netzwerkkarten aktuell installiert und aktiv sind. Merken Sie sich: nur weil man eine Karte physikalisch installiert hat, heißt das NICHT, daß sie auch aktiv ist. Gibt man icfconfig -a vor der Konfiguration der Karte ein, so wird sie nicht angezeigt. Hat man sie jedoch konfiguriert, sieht die typische Ausgabe eines ifconfig -a ungefähr so aus

lo0: flags=849 mtu 8232
inet 127.0.0.1 netmask ff000000
hme0: flags=863 mtu 1500
inet 192.168.1.132 netmask ffffff00 broadcast 192.168.1.255
ether 8:0:20:9c:6b:2d

Hier sehen wir zwei Karten: lo0 und hme0. lo0 ist die Standard-Loopback Schnittstelle, die man auf jedem System findet. hme0 ist eine 10/100 Mbps Schnittstelle. Alle hme Schnittstellen sind 10/100 Mbps, alle le Schnittstellen sind 10 Mbps, alle qe Schnittstellen sind vierfach 10 Mbps und alle qfe Schnittstellen sind vierfach 10/100 Mbps. Es gibt drei Zeilen Information über jede Karte. Die erste Zeile beschreibt den TCP/IP Stack. Für die Karte hme0 sehen wir, dass das System "Oben" ist, Broadcast und Multicast erlaubt und eine mtu (maximum transfer unit) von 1500 Bytes hat, dem Standard für ein Ethernet LAN. Notrailers ist ein Flag, welches nicht mehr benutzt wird, aber aus Gründen der Rückwärtskompatibilität beibehalten wird.

Die zweite Zeile behandelt die IP-Adressierung. Hier finden wir die IP-Adresse, die Netzmaske in hexadezimaler Notation und die Broadcastadresse.
Die dritte Zeile ist die MAC-Adresse. Anders als die meisten Netzwerkkarten, leiten Karten von SUN Microsystems ihre MAC-Adresse aus dem NVRAM ab, nicht von der Karte selbst. Daher haben alle Karten in einem SPARC-System dieselbe MAC-Adresse. Das führt beim Routing nicht zu Problemen, da die Netzwerkkarten normalerweise alle in anderen Netzwerken liegen.

Anmerkung: man muß root-Rechte haben, damit man die MAC-Adresse beim ifconfig-Befehl angezeigt bekommt. Alle anderen Benutzer sehen nur die ersten beiden Zeilen.

Der erste Schritt um eine Netzwerkkarte lauffähig zu machen, ist, die Karte zu "plumben" (wie übersetzt man das? Vielleicht mit "im Betriebssystem anmelden"?). Dadurch nehmen wir den TCP/IP Stack in Betrieb. Wir werden die o.g. Karte hme0 als Beispiel nehmen. Nehmen wir an, wir hätten diese Karte gerade eingesteckt und das System neu gestartet. Und jetzt? Zuerst melden wir die Karte per plumb-Kommando an.

ifconfig hme0 plumb

Dies erzeugt alles, was TCP/IP braucht um die Karte zu nutzen. Allerdings ist der Stack noch nicht konfiguriert, wie man unten sehen kann.

hme0: flags=842 mtu 1500
inet 0.0.0.0 netmask 0
ether 8:0:20:9c:6b:2d

Der nächste Schritt ist das Konfigurieren des TCP/IP Stacks. Das geschieht durch hinzufügen einer IP-Adresse, Netzmaske und der Mitteilung an die Karte, das sie "oben" ist. Das kann alles in einem Befehl geschehen.

homer #ifconfig hme0 192.168.1.132 netmask 255.255.255.0 up

Dieser eine Befehl konfiguriert die ganze Karte. Beachten Sie das up-Kommando, das die Karte initialisiert. Die Karte kann in einem von zwei Zuständen sein: "oben" oder "unten" ("up" oder "down"). Ist eine Karte "unten", versucht das System nicht, Daten über diese Karte zu schicken. Eine solche Karte wird mit dem ifconfig-Befehl immer noch angezeigt, hat allerdings nicht das Wort "up" in der ersten Zeile.

Virtuelle Netzwerkkarten

Bevor wir uns den Konfigurationsdateien zuwenden, möchte ich gerne zuerst virtuelle Netzwerkkarten behandeln. Eine virtuelle Netzwerkkarte ist/sind eine oder mehrere logische Schnittstelle(n) die einer einer bereits bestehenden, physikalischen Schnittstelle zugeordnet wird/werden. Solaris kann bis zu 255 virtuelle Schnittstellen pro physikalischer Netzwerkkarte haben.

Wir nehmen wieder die Netzwerkkarte hme0 als Beispiel. Wir haben bereits erklärt, wie die Netzwerkkarte zu konfigurieren ist. Nehmen wir an, diese Karte wäre in einem VLAN (Virtuelles LAN), in dem sich mehrere Netzwerke dasselbe Kabel teilen. Wir können die Karte hme0 so konfigurieren, das sie auch auf eine andere IP-Adresse antwortet, sagen wir 172.20.15.4. Der Befehl, mit dem wir das erreichen, ist der gleiche, wie wir ihn für die Konfiguration von hme0 verwendet haben, nur das die virtuelle Netzwerkkarte hme0:* heißt, wobei * für die Nummer steht, die man der virtuellen Netzwerkkarte zuweist. Zum Beispiel soll die virtuelle Netzwerkkarte hme0:1 genannt werden. Der Konfigurationsbefehl sieht so aus:

ifconfig hme0:1 172.20.15.4 netmask 255.255.0.0 up

Nachdem Sie die virtuelle Netzwerkkarte konfiguriert haben

hme0: flags=843 mtu 1500
inet 192.168.1.132 netmask ffffff00 broadcast 192.168.1.255
ether 8:0:20:9c:6b:2d
hme0:1: flags=842 mtu 1500
inet 172.20.15.4 netmask ffff0000 broadcast 172.20.255.255

Hier sehen Sie zwei Karten, die auf der gleichen physikalischen Karte liegen. Beachten Sie, das die virtuelle Netzwerkkarte hme0:1 keine MAC-Adresse hat, da sie die gleiche physikalische Karte wie hme0 ist. Diesen Vorgang können wir jetzt bis hme0:255 wiederholen. Das Betriebssystem und die meisten Anwendungen behandeln diese virtuellen Netzwerkkarten wie völlig unabhängige Geräte.

Anmerkung: Matthew A. Domurat hat einen Fehler in Solaris 2.6 gefunden. Arbeitet man mit virtuellen Netzwerkkarten, macht Solaris 2.6 eine zufällig ausgewählte Karte zur Quelladresse für jedes gesendete Paket. Hier sind die Patches, um dieses zu korrigieren.

105786-05: SunOS 5.6: /kernel/drv/ip patch
105787-04: SunOS 5.6_x86: /kernel/drv/ip patch

Konfigurationsdateien

Jetzt wissen Sie, wie Sie Ihre Netzwerkkarten konfigurieren. Unglücklicherweise sind alle Änderungen, Hinzufügungen oder Löschungen die mit dem ifconfig-Befehl gemacht werden nur temporär und gehen nach einem Neustart verloren. Ich werde jetzt erklären, welche Dateien man konfigurieren muss, um die Einstellungen permanent zu machen.

Die erste Stelle ist die Datei /etc/hostname.*, wobei * der Name der Netzwerkkarte ist. Im Falle von hme0 wäre dies z.B. /etc/hostname.hme0. Die virtuelle Netzwerkkarte hme0:1 hätte den Dateinamen /etc/hostname.hme0:1 usw. Diese Datei hat nur einen Eintrag: den Namen der Schnittstelle. Dieser Name wird in der /etc/hosts verwendet um Rechnernamen in IP-Adressen aufzulösen.

Die Datei /etc/hostname.* ist sehr wichtig, sie sorgt dafür das diese Karte ge"plumbed" wird. Währen des Bootens liest die Datei /etc/rcS.d/network.sh alle /etc/hostname.* Dateien ein und "plumbed" die entsprechenden Karten. Ist das geschehen, werden die Karten durch die Dateien /etc/hosts und /etc/netmasks konfiguriert. Durch das Lesen dieser zwei Dateien bekommen die Netzwerkkarten eine korrekte IP-Adresse und Subnetzmaske und werden in den Status "up" gebracht. Nehmen wir als Beispiel die Karte hme0. Während des Bootens sucht das Skript /etc/rcS.d/network.sh nach allen Dateien mit Namen /etc/hostname.*. Es findet /etc/hostname.hme0 die den folgenden Eintrag enthält

homer

/etc/rcS.d/rootusr.sh schaut in /etc/hosts und verbindet den Namen homer mit der IP-Adresse 192.168.1.132. Der Karte hme0 ist nun diese IP-Adresse zugewiesen. Das Skript schaut dann in /etc/netmasks nach der Subnetzmaske für diese IP. Mit diesen Informationen bringt das Startskript die Netzwerkkarte in den Status "up", also mit der IP-Adresse 192.168.1.132 und der Subnetzmaske 255.255.255.0. Es mag redundant erscheinen, das Skript die Netzmaske eines Class-C Netzes nachschauen zu lassen, aber man sollte nicht vergessen, das Solaris 2.6 sowohl "classless routing" als auch VLSM (Variable Length Subnet Masks = Subnetzmasken variabler Länge) unterstützt, die ich beide im nächsten Artikel behandeln werde.

Wie Sie in diesem Beispiel gesehen haben, gibt es drei Dateien die für jede Netzwerkkarte angepasst werden müssen. Die erste ist /etc/hostname.*, die man braucht, um der Netzwerkkarte einen Namen zuzuweisen. Die zweite ist /etc/hosts, hier wird die IP-Adresse einem Netzwerknamen zugeordnet. Zuletzt die /etc/netmasks, wo die Subnetzmaske einer IP-Adresse bestimmt wird.

Fehlersuche

Nachdem man erstmal die Tricks zum Ändern der Netzwerkkarten kennt, sollte die Fehlersuche einfacher sein. Einige Dinge prüfe ich immer, wenn ich an einer Netzwerkkarte Fehler suche. Wenn man an einer unbekannten Maschine arbeitet, weiß man oft nicht, wieviele Netzwerkkarten physikalisch vorhanden sind. Eine schnelle Methode um das herauszufinden ist der Befehl dmesg. Dieser Befehl gibt Informationen über die Hardware aus. Suchen Sie nach le0, qfe0, hme0 oder qe0. Diese Namen sind physikalischen Netzwerkkarten zugeordnet.

Antwortet eine Netzwerkkarte nicht im Netzwerk, prüfen Sie zur Sicherheit, ob IP-Adresse und Subnetzmaske stimmen. Um bei der Fehlersuche auf die Schnelle und vorübergehend die IP-Adresse und Subnetzmaske zu ändern, verwendet man den ifconfig-Befehl. MTU (Maximum Transfer Unit) wäre ein weiterer Ansatzpunkt. Manche Systeme können bei der Netzwerkkommunikation Probleme aufgrund fragmentierter Pakete bekommen. Das Ändern der MTU-Größe kann dieses Problem eventuell lösen. Sie haben vielleicht bemerkt, dass wir die MTU in den obigen Beispielen nicht setzen mussten. Sie werden automatisch auf Standardwerte gesetzt, wie 1500 für Ethernet-Netzwerkkarten.

Hilft auch das nicht, so kann man versuchen, das Interface in den Zustand "down" zu bringen und es dann neu zu initialisieren indem man es "up" bringt.
Falls das alles nichts bringt, "unplumb"en Sie die Karte und "plumb"en Sie sie dann neu. Dadurch wird der TCP/IP Stack neu installiert.

Schlussfolgerung

Netzwerkkarten sind unerlässlich für die Netzwerkfunktionalität Ihres Systems. Zu wissen, wie man die Netzwerkkarte(n) konfiguriert, stellt die Produktivität des Systems sicher. Nächsten Monat schauen wir uns Routingtabellen an und stellen sicher das, nachdem die Netzwerkkarten konfiguriert und "up" sind, die Pakete wissen, wo sie hinsollen.

Anm. d. Übers.

Ich bin kein professioneller Übersetzer, deswegen ist es sehr wahrscheinlich, das man vieles besser hätte formulieren können. Trotzdem hoffe ich, dass sich nirgendwo grobe Sinnentstellungen oder gar Fehler eingeschlichen haben. Wenn doch, oder auch bei sonstiger Kritik oder gar Lob, kurze e-mail reicht und dann wird korrigiert.
Der Originalartikel ist hier zu finden: http://www.enteract.com/~lspitz/interfaces.html



[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06245
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1150
Comments: 0