This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.

Einrichten von Netzwerkkarten

6.6. Einrichten von Netzwerkkarten

Beigetragen von Marc Fonvieille.

Ein Rechner ohne Netzanschluss ist heute nicht mehr vorstellbar. Die Konfiguration einer Netzwerkkarte gehört zu den alltäglichen Aufgaben eines FreeBSD Administrators.

6.6.1. Bestimmen des richtigen Treibers

Bevor Sie anfangen, sollten Sie das Modell Ihrer Karte kennen, wissen welchen Chip die Karte benutzt und bestimmen, ob es sich um eine PCI- oder ISA-Karte handelt. Eine Aufzählung der unterstützten PCI- und ISA-Karten finden Sie in der Liste der unterstützen Geräte. Schauen Sie nach, ob Ihre Karte dort aufgeführt ist.

Wenn Sie wissen, dass Ihre Karte unterstützt wird, müssen Sie den Treiber für Ihre Karte bestimmen. /usr/src/sys/i386/conf/LINT enthält eine Liste der verfügbaren Treiber mit Informationen zu den unterstützten Chipsätzen und Karten. Wenn Sie sich nicht sicher sind, ob Sie den richtigen Treiber ausgewählt haben, lesen Sie die Hilfeseite des Treibers. Die Hilfeseite enthält weitere Informationen über die unterstützten Geräte und macht auch auf mögliche Probleme aufmerksam.

Wenn Sie eine gebräuchliche Karte besitzen, brauchen Sie meistens nicht lange nach dem passenden Treiber zu suchen. Die Treiber zu diesen Karten sind schon im GENERIC-Kernel enthalten und die Karte sollte während des Systemstarts erkannt werden:

    dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38
    000ff irq 15 at device 11.0 on pci0
    dc0: Ethernet address: 00:a0:cc:da:da:da
    miibus0: <MII bus> on dc0
    ukphy0: <Generic IEEE 802.3u media interface> on miibus0
    ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30
    000ff irq 11 at device 12.0 on pci0
    dc1: Ethernet address: 00:a0:cc:da:da:db
    miibus1: <MII bus> on dc1
    ukphy1: <Generic IEEE 802.3u media interface> on miibus1
    ukphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

Im Beispiel erkennt das System zwei Karten, die den dc(4) Treiber benutzen.

Der richtige Treiber muss geladen sein, damit eine Netzwerkkarte benutzt werden kann. Der Treiber kann auf zwei Arten geladen werden: Am einfachsten laden Sie das Kernelmodul für Ihre Karte mit kldload(8). Für manche Netzwerkkarten gibt es kein Kernelmodul (beispielsweise für ISA-Karten, die den ed(4) Treiber benutzen). Die zweite Möglichkeit ist, die Unterstützung für Ihre Karte fest in den Kernel einzubinden. Schauen Sie sich dazu /usr/src/sys/i386/conf/LINT und die Hilfeseite des Treibers, den Sie in den Kernel einbinden möchten, an. Die Übersetzung des Kernels wird in Kapitel 9 beschrieben. Wenn Ihre Karte während des Systemstarts vom Kernel (GENERIC) erkannt wurde, müssen Sie den Kernel nicht neu übersetzen.

6.6.2. Konfiguration von Netzwerkkarten

Nachdem der richtige Treiber für die Karte geladen ist, muss die Karte konfiguriert werden. Unter Umständen ist die Karte schon während der Installation mit sysinstall konfiguriert worden.

Das nachstehende Kommando zeigt die Konfiguration der Karten eines Systems an:

    % ifconfig
    dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
            ether 00:a0:cc:da:da:da
            media: Ethernet autoselect (100baseTX <full-duplex>)
            status: active
    dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
            ether 00:a0:cc:da:da:db
            media: Ethernet 10baseT/UTP
            status: no carrier
    lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
    lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
            inet 127.0.0.1 netmask 0xff000000
    tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500

Anmerkung: In alten Versionen von FreeBSD müssen Sie vielleicht noch -a auf der Kommandozeile von ifconfig(8) angeben. Hinweise zum Gebrauch von ifconfig(8) entnehmen Sie bitte der Hilfeseite. Beachten Sie, dass in diesem Beispiel die IPv6-Ausgaben (inet6 etc.) ausgelassen wurden.

Im Beispiel werden Informationen zu den folgenden Geräten angezeigt:

Der Name der Netzwerkkarte wird aus dem Namen des Treibers und einer Zahl zusammengesetzt. Die Zahl gibt die Reihenfolge an, in der die Geräte beim Systemstart erkannt wurden. Die dritte Karte, die den sis(4) Treiber benutzt, würde beispielsweise sis2 heißen.

Der Adapter dc0 aus dem Beispiel ist aktiv. Sie erkennen das an den folgenden Hinweisen:

  1. UP bedeutet, dass die Karte konfiguriert und aktiv ist.

  2. Der Karte wurde die Internet-Adresse (inet) 192.168.1.3 zugewiesen.

  3. Die Subnetzmaske ist richtig (0xffffff00 entspricht 255.255.255.0).

  4. Die Broadcast-Adresse 192.168.1.255 ist richtig.

  5. Die MAC-Adresse der Karte (ether) lautet 00:a0:cc:da:da:da.

  6. Die automatische Medienerkennung ist aktiviert (media: Ethernet autoselect (100baseTX <full-duplex>)). Der Adapter dc1 benutzt das Medium 10baseT/UTP. Weitere Informationen über die einstellbaren Medien entnehmen Sie bitte der Hilfeseite des Treibers.

  7. Der Verbindungsstatus (status) ist active, das heißt es wurde ein Trägersignal entdeckt. Für dc1 wird status: no carrier angezeigt. Das ist normal, wenn kein Kabel an der Karte angeschlossen ist.

Wäre die Karte nicht konfiguriert, würde die Ausgabe von ifconfig(8) so aussehen:

    dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
                ether 00:a0:cc:da:da:da

Sie brauchen die Berechtigungen von root, um Ihre Karte zu konfigurieren. Die Konfiguration kann auf der Kommandozeile mit ifconfig(8) erfolgen, allerdings müsste sie dann nach jedem Neustart wiederholt werden. Dauerhaft wird die Karte in /etc/rc.conf konfiguriert.

Öffnen Sie /etc/rc.conf mit Ihrem Lieblingseditor und fügen Sie für jede Karte Ihres Systems eine Zeile hinzu. In dem hier diskutierten Fall wurden die nachstehenden Zeilen eingefügt:

    ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0"
    ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"

Ersetzen Sie dc0, dc1 usw. durch die Gerätenamen Ihrer Karten und setzen Sie die richtigen IP-Adressen ein. Die Hilfeseiten des Treibers und ifconfig(8) enthalten weitere Einzelheiten über verfügbare Optionen. Die Syntax von /etc/rc.conf wird in rc.conf(5) erklärt.

Wenn Sie das Netz während der Installation konfiguriert haben, existieren vielleicht schon Einträge für Ihre Karten. Überprüfen Sie /etc/rc.conf bevor Sie weitere Zeilen hinzufügen.

In /etc/hosts können Sie die Namen und IP-Adressen der Rechner Ihres LANs eintragen. Weitere Informationen entnehmen Sie bitte hosts(5) und /usr/share/examples/etc/hosts.

6.6.3. Test und Fehlersuche

Nachdem Sie die notwendigen Änderungen in /etc/rc.conf vorgenommen haben, führen Sie einen Neustart Ihres Systems durch. Dadurch werden die Adapter konfiguriert und Sie stellen sicher, dass der Start ohne Konfigurationsfehler erfolgt.

Wenn das System gestartet ist, sollten Sie die Netzwerkkarten testen.

6.6.3.1. Test der Ethernet-Karte

Mit zwei Tests können Sie prüfen, ob die Ethernet-Karte richtig konfiguriert ist. Testen Sie zuerst mit ping den Adapter selbst und sprechen Sie dann eine andere Maschine im LAN an.

Zuerst, der Test des Adapters:

    % ping -c5 192.168.1.3
    PING 192.168.1.3 (192.168.1.3): 56 data bytes
    64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms
    64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms
    64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms
    64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms
    64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms
    
    --- 192.168.1.3 ping statistics ---
    5 packets transmitted, 5 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms

Jetzt versuchen wir, eine andere Maschine im LAN zu erreichen:

    % ping -c5 192.168.1.2
    PING 192.168.1.2 (192.168.1.2): 56 data bytes
    64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms
    64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms
    64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms
    64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms
    64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms
    
    --- 192.168.1.2 ping statistics ---
    5 packets transmitted, 5 packets received, 0% packet loss
    round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms

Sie können auch den Namen der Maschine anstelle von 192.168.1.2 benutzen, wenn Sie /etc/hosts entsprechend eingerichtet haben.

6.6.3.2. Fehlersuche

6.6.3.2.1. Wo finde ich Informationen über mögliche Probleme mit meiner Karte?
6.6.3.2.2. Wenn ich versuche mit ping einen anderen Rechner im LAN zu erreichen, erhalte ich die Meldung: ``ping: sendto: Permission denied''.
6.6.3.2.3. In den Systemprotokollen finden sich viele ``watchdog timeout'' Meldungen. Bei dem Versuch andere Rechner im LAN zu erreichen, gibt ping die Meldung ``ping: sendto: No route to host'' aus.
6.6.3.2.4. Ich finde viele ``device timeout'' Meldungen in den Systemprotokollen und meine Karte funktioniert nicht.
6.6.3.2.5. Die Leistung der Karte ist schlecht. Wie kann ich das ändern?
6.6.3.2.6. Welche Karten soll ich einsetzen und welche nicht?

6.6.3.2.1. Wo finde ich Informationen über mögliche Probleme mit meiner Karte?

Zuerst sollten Sie die Hilfeseiten des Treibers lesen. Die Archive der Mailinglisten können ebenfalls hilfreich sein.

6.6.3.2.2. Wenn ich versuche mit ping einen anderen Rechner im LAN zu erreichen, erhalte ich die Meldung: ``ping: sendto: Permission denied''.

Sie dürfen keine ICMP-Pakete verschicken. Prüfen Sie, ob auf der Maschine eine Firewall läuft, die ICMP verbietet.

6.6.3.2.3. In den Systemprotokollen finden sich viele ``watchdog timeout'' Meldungen. Bei dem Versuch andere Rechner im LAN zu erreichen, gibt ping die Meldung ``ping: sendto: No route to host'' aus.

Kontrollieren Sie zuerst das Netzkabel. Überprüfen Sie dann, ob der PCI-Steckplatz der Karte Bus Mastering unterstützt. Auf einigen älteren Motherboards ist das nur für einen Steckplatz (meistens Steckplatz 0) der Fall. Lesen Sie in der Dokumentation Ihrer Karte und Ihres Motherboards nach, ob das vielleicht die Ursache des Problems sein könnte.

6.6.3.2.4. Ich finde viele ``device timeout'' Meldungen in den Systemprotokollen und meine Karte funktioniert nicht.

Je nach Karte können mal ein oder zwei dieser Meldungen auftauchen. Wenn sie aber immer wieder kommen und sich das Netz nicht benutzen lässt, prüfen Sie das Netzkabel. Stellen Sie zudem sicher, dass es keinen IRQ-Konflikt zwischen der Netzwerkkarte und anderen Geräten Ihres Systems gibt.

6.6.3.2.5. Die Leistung der Karte ist schlecht. Wie kann ich das ändern?

Das ist schwer zu beantworten, was genau verstehen Sie unter ``Leistung''? Überprüfen Sie die Konfiguration und lesen Sie tuning(7). Kaufen Sie auch keine billigen Netzwerkkarten. Viele Benutzer berichten, dass die automatische Medienerkennung (autoselect) mit mancher Hardware zu Leistungseinbrüchen führt.

6.6.3.2.6. Welche Karten soll ich einsetzen und welche nicht?

Setzen Sie keine billigen Karten ein. Diese Karten benutzen oft fehlerhafte Chipsätze und die meisten sind nicht sehr leistungsfähig. Viele FreeBSD Anwender benutzen den fxp(4) Chipsatz, das heißt aber nicht, dass die anderen Chipsätze schlecht sind.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.