Logo


Computer Communication & Consulting

Linux

letzte Änderung 16.02.2007

Linux Netzwerke - LAN


Manuelles LAN Setup
LAN Trouble Shooting - Fehlersuche
Traffic Shaping

Manuelles LAN Setup

Die meisten Linux Distributionen stellen die Netzwerkkarte bzw. -schnittstelle automatisch ein. Für einen manuellen Setup ist es notwendig, dass das richtige Kernelmodul bereits geladen ist bzw. sich mit modprobe laden lässt. Normalerweise hat das erste Ethernet (LAN) Interface die Kennung eth0. Mit ifconfig werden die aktiven Schnittstellen angezeigt. Sollte eth0 nicht dabei sein, so kann man mit ifconfig -a die Ausgabe um die nichtaktiven Schnittstellen erweitern. Wenn die richtigen Kernelmodule geladen sind, sollte jetzt eth0 auf alle Fälle mit angezeigt werden.

ifconfig sollte für eth0 etwa folgende Ausgabe generieren:

eth0      Protokoll:Ethernet  Hardware Adresse 00:E0:7D:83:67:8A
          inet Adresse:192.168.1.150  Bcast:192.168.1.255  Maske:255.255.255.0
          inet6 Adresse: fe80::2e0:7dff:fe83:678a/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1329748 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1556910 errors:0 dropped:0 overruns:15 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:479022844 (456.8 MiB)  TX bytes:1188911452 (1.1 GiB)
          Interrupt:11 Basisadresse:0x8100
Die zugeordnete IP_Adresse ist in der zweiten Zeile eingetragen. Sollte hier keine gültige IP-Adresse stehen, könnte beispielsweise die LAN-Verbindung zum DHCP Server unterbrochen sein. Errors in den Zeilen RX packets ... und TX packets ... deuten meist auf eine schlechte Verkabelung hin.

Mit ifconfig eth0 down und ifconfig eth0 up kann man das erste LAN-IF eth0 runter und wieder hochfahren. Achtung: Dabei werden die Routen-Einträge gelöscht und müssen ggf. manuell wieder hergestellt werden.

Zum ersten Test einer Netzwerkverbindung wird meistens das Kommando ping verwendet. Es überprüft, ob Kontakt zu einem anderen Rechner aufgebaut werden kann. Beispiel:

ping -c 2 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.734 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.719 ms

--- 192.168.1.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1006ms
rtt min/avg/max/mdev = 0.719/0.726/0.734/0.027 ms
Wichtig ist hier die Verwendung eines bekannten Rechners bzw. dessen IP-Adresse, von dem man weiß, dass er auf Pings antwortet. Viele Rechner (speziell im Internet) haben aus Sicherheitsgründen die Ping-Antwort abgeschaltet.
Wenn Ping eine Antwort ähnlich wie oben ausgibt, ist die Netzwerkschnittstelle in Ordnung.

Zur Kontaktaufnahme mit Rechnern im Internet ist zusätzlich die Angabe des Default-Routers und der Eintrag mindestens eines Name-Servers notwendig. Holt sich der Rechner seine IP von einem DHCP-Server, so bezieht er diese Angaben meistens auch von dort.

Für den Fall eines manuellen Setups ist die Angabe der Default-Route notwendig: route add default gw 192.168.1.1 setzt die 192.168.1.1 als default Router. Durch Eingeben von route ohne Parameter kann man sich die aktuelle Routen-Tabelle ausgeben lassen.

Kernel IP Routentabelle
Ziel           Router         Genmask         Flags Metric Ref    Use Iface
192.168.1.0    *              255.255.255.0   U     0      0        0 eth0
192.168.10.0   *              255.255.255.0   U     0      0        0 eth1
default        192.168.1.1    0.0.0.0         UG    0      0        0 eth0
Daraus ist abzulesen: Alle Adressen zwischen 192.168.1.0 und 192.168.1.255 gehen über das Interface eth0. Entsprechend ist das Netz 192.168.10.0 über eth1 zu erreichen. Alle anderen (nicht näher benannten) Adressen werden an den Router mit der IP 192.168.1.1 gesendet.

Nun fehlt zum einwandfreien Betrieb im Netz nur noch der Verweis auf einen Name-Server. Dieser kann leicht in /etc/resolv.conf eingetragen bzw. dort kontrolliert werden. Die Datei /etc/resolv.conf sollte einen Eintrag wie folgt haben:

nameserver 192.168.1.1
In unserem Fall ist der Router 192.168.1.1 in diesem Netz auch gleichzeitig der Nameserver. Es dürfen auch mehrere Nameserver angegeben werden, z.B. ein interner und der Ihres Providers.


zum Seitenanfang

LAN Trouble Shooting - Fehlersuche

Das manuelle Setup sieht gut aus. Die Verkabellung ist geprüft und eigentlich müsste alles funktionieren. Ping läuft jedoch ins Leere ...

Mittels ethtool eth0 lassen sich der eth0-Schnittstelle ein paar mehr Informationen entlocken:

Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: umbg
        Wake-on: g
        Current message level: 0x00000007 (7)
        Link detected: yes
Die Ausgabe variieren nach verwendetem Kartentyp. Interessant sind die Angaben zu Link-Modes und Speed. Steht Link detected auf yes sollte die Schnittstelle funktionieren. Je nach verwendetem Switch kann es notwendig sein Auto-Negotiation auszuschalten. Auch das geht mit ethtool (siehe: man ethtool).
Das Kommando ist u.a. auch recht nützlich um auf die Schnelle zu überprüfen, ob die GigaBit Ethernet-Karte auch wirklich mit 1GB läuft.

Zusätzliche Informationen lassen sich mit mii-diag eth0 abrufen.

Basic registers of MII PHY #0:  3100 792d 02a8 0380 0de1 c5e1 000d 2801.
 The autonegotiated capability is 01e0.
The autonegotiated media type is 100baseTx-FD.
 Basic mode control register 0x3100: Auto-negotiation enabled.
 You have link beat, and everything is working OK.
 Your link partner advertised c5e1: Flow-control 100baseTx-FD 100baseTx 10baseT-FD 10baseT, w/ 802.3X flow control.
   End of basic transceiver information.
Wichtig ist hier die Angabe der rot markierten Zeile. Der Link-Beat bezieht sich auf die Kommunikation mit dem Ethernet-Switch, d.h. die Netzwerkkarte ist im Switch »eingebucht« und somit ist die Physik zwischen PC und Ethernet-Switch O.K. Viele Hardware bezogene LAN-Fehler (defekte Kabel oder Switch-Ports), lassen sich mit diesen beiden Kommandos leicht eingrenzen bzw. finden.


zum Seitenanfang

Traffic shaping

DSL und Flatrate machen es möglich, von einem privaten Server bzw. Netzwerk, Daten im Internet zur Verfügung zu stellen. Normalerweise benutzt man einen asynchronen DSL Anschluß. Einer Downloadrate von z.B. 2 Gbit stehen nur etwa 200.000 kBit zum Upload entgegen.

Will man Dateien zum Laden anbieten ... sei es über FTP oder per Bit-Torrent, ist die Wahrscheinlichkeit hoch, dass der Upload-Teil des DSL-Anschluß in die Sättigung läuft und der normale Netztraffic darunter erheblich leitet. Es ist also wünschenswert dem Server seinen ausgehenden Traffic so zu begrenzen, dass genügend Bandbreite für das normale Surfen, Emails usw. übrig bleibt.

Als Beispiel soll hier einem Server mit der IP 192.168.1.150 der abgehende Verkehr auf ca. 12 kB/s begrenzt werden um genügend Bandbreite für andere Rechner des gleichen Netzwerks freizuhalten. Der abgehende Verkehr läuft über einen Router mit der IP 192.168.1.1. Auf dem Server wird parallel zu eth0 ein zweites Netzwerk-IF mit der gleichen IP-Adresse eingerichtet.

Als erstes ist mittels apt-get oder Synaptics das Paket shapecfg zu installieren.

Die folgenden Konfigurationsschritte müssen alle als root oder mit sudo ausgeführt werden:

(1) # route del default
(2) # modprobe shaper
(3) # shapecfg attach shaper0 eth0
(4) # shapecfg speed shaper0 120000
(5) # ifconfig shaper0 192.168.1.150 netmask 255.255.255.0 broadcast 192.168.1.255 up
(6) # route add -net default netmask 0.0.0.0 gw 192.168.1.1 dev shaper0

In Zeile 1 wird dem Server die standard default Route entfernt. Zeile 2 lädt das shaper Modul zum Kernel. Zeile 3 bindet das Interface shaper0 an eth0. Zeile 4 limitiert den abgehenden Traffic von shaper0 auf ca. 120.000 bit/s. Zeile 5 aktiviert shaper0. Zeile 6 definiert die default Route neu über shaper0.

Um verschiedene Limits zu testen, kann man auch nach der Aktivierung von der Kommandozeile aus die Zeile 4 mit unterschiedlichen Werten aufrufen.

Mit route sollte sich folgender Ausdruck ergeben:

Kernel IP Routentabelle
Ziel          Router        Genmask         Flags Metric Ref  Use Iface
192.168.1.0   *             255.255.255.0   U     0      0      0 eth0
192.168.1.0   *             255.255.255.0   U     0      0      0 shaper0
default       192.168.1.1   0.0.0.0         UG    0      0      0 shaper0

Der abgehende Verkehr in das Internet geht über die default Route und wird damit entsprechend der shaper-Einstellungen limitiert. Ankommender Verkehr und der normale Traffic ins lokale Netz laufen über eth0 und haben nur das Limit, das von der verwendeten Technik vorgegeben ist.



zum Seitenanfang




Home Page
Ranking-Hits
Copyright © 2001-2014 Bernd Holzhauer. Alle Rechte vorbehalten.
Warenzeichen und Marken sind Eigentum der jeweiligen Besitzer.

Das Ing.Büro Bernd Holzhauer distanziert sich grundsätzlich von gesetzeswidrigen und möglicherweise illegalen Inhalten in Seiten, auf die über www.cc-c.de verwiesen wird. Sollte Ihnen diesbezüglich etwas auffallen, melden Sie es uns bitte per email.