Linux verfügt über zahlreiche Kommandozeilen-Bordmittel zur grundlegenden Konfiguration und Diagnose von Netzwerken. Das eröffnet die Möglichkeit zu maßgeschneiderten, per Skripting automatisierten Lösungen.
Netzwerkschnittstellen verwalten Sie unter Linux mithilfe des Kommandos ip. Damit setzen oder löschen Sie Zuweisungen zwischen Schnittstelle und Adresse, (de-)aktivieren Netzwerkschnittstellen beziehungsweise Netzwerkgeräte und setzen auch Routen.
Die Tabelle “Ip: Kommandos” fasst die gängigsten Unterbefehle zusammen, die Tabelle “Ip: Optionen” nennt einige wichtige Optionen. Beachten Sie, dass Sie Subnetz-Angaben in der CIDR-Schreibweise [1] vornehmen müssen. Beim Verwenden der Option -b Stapeldatei leiten Sie die einzelnen Zeilen der Stapeldatei direkt mit den Ip-Kommandos ein, nicht mit dem Wort ip. Weitere Optionen müssen Sie dabei beim Aufruf des Programms übergeben.
|
Aktion |
Syntax |
|---|---|
|
IP-Adresse für Devices hinzufügen |
|
|
Alias für Device anlegen |
|
|
IP-Adresse für Device löschen |
|
|
Device aktivieren |
|
|
Device deaktivieren |
|
|
IP-Adresseinstellungen anzeigen (alle) |
|
|
IP-Adresseinstellungen anzeigen (Device) |
|
|
Default-Route setzen |
|
|
Route setzen |
|
|
Route löschen |
|
|
Routen anzeigen |
|
|
Status von Devices, Adressen und Routen |
|
|
IP-Neighbour anzeigen |
|
|
Aktion |
Syntax |
|---|---|
|
alle Netzwerkobjekte einbeziehen |
|
|
Kommandostapel aus Datei abarbeiten |
|
|
benutzergerechte Ausgabe |
|
|
besser lesbare Ausgabe |
|
|
Namensauflösung verwenden |
|
|
farbige Terminalausgabe |
|
|
Protokollfamilie |
|
|
Kurzformen für Protokollfamilie |
|
|
IPv4 |
|
|
IPv6 |
|
|
Bridge |
|
|
DECNET |
|
|
IPX |
|
|
MPLS |
|
|
Link |
|
Listing 1 zeigt das Anlegen einer weiteren IP-Adresse (Zeile 1), die Anzeige des Ergebnisses nur für IPv4 (Zeile 2), das Löschen der zusätzlichen IP-Adresse (Zeile 10) sowie die Anzeige des Ergebnisses wieder nur für IPv4 (Zeile 11). Für alle verändernden Eingriffe benötigen Sie Root-Rechte. Reine Anzeigefunktionen, wie etwa die Kommandos show und monitor, dürfen auch nichtprivilegierte Benutzer nutzen (Abbildung 1).
Listing 1
# ip addr add 192.168.0.110/24 brd 192.168.0.255 dev eth0 # ip -4 addr show dev eth0 15: eth0@if16: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link-netnsid 0 inet 192.168.0.83/8 brd 192.255.255.255 scope global eth0 valid_lft forever preferred_lft forever inet 192.168.0.83/24 brd 192.168.0.83 scope global eth0 valid_lft forever preferred_lft forever inet 192.168.0.110/24 brd 192.168.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever # ip addr del 192.168.0.110/24 dev eth0 # ip -4 addr show dev eth0 15: eth0@if16: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link-netnsid 0 inet 192.168.0.83/8 brd 192.255.255.255 scope global eth0 valid_lft forever preferred_lft forever inet 192.168.0.83/24 brd 192.168.0.83 scope global eth0 valid_lft forever preferred_lft forever
TIPP
Das relativ neue Ip hat das alte Kommando ifconfig komplett abgelöst, aber noch nicht völlig verdrängt: Rufen Sie Ifconfig als normaler Benutzer mit der absoluten Pfadangabe (/sbin/ifconfig) auf, so erhalten Sie eine Übersicht aller Netzwerkschnittstellen samt deren Konfigurationsdaten.
Bezeichnungen für Netzwerkschnittstellen
Die Gerätenamen unterscheiden sich teilweise von Distribution zu Distribution. Traditionell heißen sie NICs eth0 oder wlan0. Neuerdings lösen Benennungen wie enp0s10 dieses Schema ab. Dabei zieht das System Angaben wie Firmware, Treiber, Indexnummern (BIOS) und die Nummer des PCI-Steckplatzes zum Bilden des Gerätenamens heran.
Routing
Für das Setzen, Anzeigen und Löschen von Routen [2] können Sie sowohl das Ip als auch das Kommando Route verwenden. Die folgenden Beispiele setzen eine Installation mit den zwei Netzen 192.168.0.0 und 192.168.2.0 voraus. In Letzterem befindet sich ein Rechner mit der Adresse 192.168.2.202. Ihn gilt es vom Netz 192.168.0.0 aus zu erreichen.
Die beiden Netze sind über je einen weiteren Router (nicht durch das Standard-Gateway) verbunden, mit den IP-Adressen 192.168.0.10 beziehungsweise 192.168.2.1. Für den Router wurde zur Durchleitung an unseren Rechner die Weiterleitung gemäß Abbildung 2 geschaltet. Der Port 5656 dient später für einen Test mittels Netread, in Ihrer Umgebung können Sie aber einen beliebigen Port dafür konfigurieren.
Das Setzen einer Route mit Ip erfolgt in der Form ip route add Ziel|CIDR via IP. In unserer Beispielumgebung lautet der Aufruf für das komplette Zielnetz also so wie in der ersten Zeile von Listing 2. Wollen Sie ausschließlich den einzelnen Rechner 192.168.2.202 im anderen Netz erreichen, ersetzen Sie im Befehl die Netzadresse durch dessen IP.
Listing 2
# ip route add 192.168.2.0/24 via 192.168.0.10 # ip route show default via 192.168.0.1 dev eth0 onlink 192.0.0.0/8 dev eth0 proto kernel scope link src 192.168.0.83 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.83 192.168.2.0/24 via 192.168.0.10 dev eth0 # netwrite -i ausgabe.txt 192.168.2.202 5656 2.51 KiB (2572 B) transferred at 53.3 MiB/s (0:00:00.00) # ip route del 192.168.2.0/24 via 192.168.0.10 # ip route show default via 192.168.0.1 dev eth0 onlink 192.0.0.0/8 dev eth0 proto kernel scope link src 192.168.0.83 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.83 # netwrite -i ausgabe.txt 192.168.2.202 5656 ERROR: Cannot connect to 192.168.2.202: No route to host
Gesetzte Routen lassen Sie sich mittels des Kommandos ip route show anzeigen (Zeile 2). Dessen Anzeige können Sie auf ein einzelnes Netzwerkgerät beschränken. Sie löschen Routen durch die Wiederholung des Befehls zum Einrichten, wobei Sie jedoch das add durch ein del als Kommando ersetzen (Zeile 9).
Nach dem Setzen sowie nach dem Löschen der Route erfolgte jeweils ein Übertragungstest mit Netread. Bei gesetzter Route führt er zum Erfolg (Zeile 7), nach dem Entfernen der Route schlägt er mit der Meldung No route to host fehl.
Bei route handelt es sich um einen älteren, aber immer noch gebräuchlichen Befehl zum Verwalten von Routen, der dieselben Aktionen bietet wie ip route. Die Tabelle “Route: Kommandos” listet die wichtigsten Aktionen auf. Abbildung 3 zeigt den analogen Ablauf zu Listing 2, nur mit Route ausgeführt.
|
Aktion |
Syntax |
|---|---|
|
Rechner als Ziel setzen |
|
|
Netz als Ziel setzen |
|
|
Netz als Ziel setzen (CIDR) |
|
|
Routen auflisten |
|
|
Route zu Rechner löschen |
|
|
Route zu Netz löschen |
|
|
Route zu Netz löschen (CIDR) |
|
Netzwerkanbindung prüfen
Zu einer gut funktionierenden Netzwerkanbindung eines Endgeräts gehören neben einer funktionierenden Verbindung über Kabel oder WLAN auch die richtige Auflösung von Rechnernamen sowie in manchen Fällen auch das bereits geschilderte Routing.
Oft hat es banale Gründe, wenn sich ein Netzwerkteilnehmer nicht erreichen lässt: Das Gerät ist nicht eingeschaltet oder nicht mit dem Netzwerk verbunden (Netzwerkkabel ausgesteckt, WLAN nicht aktiviert). Falls jedoch aus Sicherheitsgründen, zum Beispiel als Maßnahme gegen Flood-Pings, der Admin des Zielsystems das Antworten auf ICMP-Pakete unterbunden hat, benötigen Sie andere Prüfmöglichkeiten.
Befindet sich das Gerät im eigenen Netz, können Sie bei einem managebaren Switch die Port-Daten auslesen, um beispielsweise auszulesen, welche MAC-Adresse anliegt. Andernfalls müssen Sie einen laufenden Dienst auf dem Gerät bemühen, wie etwa einen Webserver.
Das Standardwerkzeug Ping deckt fast alle Fälle hinsichtlich der Erreichbarkeitsprüfung ab. Die Tabelle “Ping: Optionen” zeigt Ihnen einige wichtige Optionen für diverse Einsatzszenarien.
|
Aktion |
Syntax |
|---|---|
|
Beschränkung auf IPv4 |
|
|
Beschränkung auf IPv6 |
|
|
Anzahl der Pakete |
|
|
Zeitdauer des Programmlaufs |
|
|
Flood-Ping (nur als Root) |
|
|
Wartezeit zwischen Paketen |
|
|
Angabe Netzwerkgerät |
|
|
Antwortzeit angeben |
|
Das Ergebnis einer Ping-Anfrage gilt es richtig zu deuten. Sprechen Sie beispielsweise das Ziel statt per IP-Adressen über den Hostnamen an, können auch dann Fehler auftreten, wenn dessen Netzwerkanbindung tadellos funktioniert. Die Tabelle “Ping: Ergebnisse” hilft bei der Deutung und erläutert weitere Folgerungen aus den Ergebnisse.
Eine Hilfe in Shell-Skripten bietet der von Ping zurückgegebene Exit-Code: Hier steht der Wert 0 für eine funktionierende Verbindung, eine 1 für keine Verbindung und eine 2 für andere Probleme, wie etwa eine fehlerhafte Namensauflösung.
|
Ergebnis |
Folgerung |
|---|---|
|
|
technische Gründe, gegebenenfalls Routing prüfen |
|
|
eingeschränkte Verbindung |
|
|
perfekte Verbindung |
|
|
Tippfehler / Fehler bei der Namensauflösung; gegebenenfalls Host- oder Dig-Abfrage anschließen |
Listing 3 zeigt eine Reihe typischer Situationen. Beim ersten Aufruf liegt ein unbekannter Rechnername im lokalen Netz vor; es fehlt der passende Eintrag in /etc/hosts oder beim lokalen DNS-Server. Beim zweiten Aufruf funktioniert die Verbindung dann nach Angabe einer IP-Adresse. Hierbei handelt es sich um den Rechner, dessen Name gerade unbekannt war. In der dritten Runde kann Ping keine Verbindung zum Zielsystem herstellen. Dies kann technische Gründe haben, aber auch ein Tippfehler beim Absetzen des Kommandos wäre möglich. Im letzten Beispiel liegt ein unbekannter Name außerhalb des lokalen Netzes vor.
Listing 3
$ ping -c1 ziel ping: ziel: Zu diesem Hostnamen gehört keine Adresse $ ping -c1 192.168.0.38 PING 192.168.0.38 (192.168.0.38) 56(84) bytes of data. 64 bytes from 192.168.0.38: icmp_req=1 ttl=64 time=0.045 ms --- 192.168.0.38 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.045/0.045/0.045/0.000 ms $ ping -c1 192.168.0.85 PING 192.168.0.85 (192.168.0.85) 56(84) bytes of data. From 192.168.0.83 icmp_seq=1 Destination Host Unreachable --- 192.168.0.85 ping statistics --- 1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms $ ping -c1 noe.isnicht.de ping: noe.isnicht.de: Der Name oder Dienst ist nicht bekannt
Fping
Der Befehl Fping ersetzt und ergänzt Ping. Viele seiner Optionen arbeiten ähnlich, doch erlaubt Fping weitergehende Diagnosen im Netzwerk. Vor allem ermöglicht es, mehrere Ziele gleichzeitig oder sogar ein ganzes Netz zu prüfen. Die Tabelle “Fping: Optionen” listet Wissenswertes darüber auf. Das Tool zählt nicht bei jeder Distribution zur Grundausstattung, gegebenenfalls installieren Sie es via Paketmanagement über das gleichnamige Paket nach.
|
Aktion |
Syntax |
|---|---|
|
erreichbare Systeme zeigen |
|
|
IP-Adresse statt Hostname |
|
|
DNS-Abfragen vornehmen |
|
|
Pakete je Ziel beschränken |
|
|
Ziele aus Datei einlesen |
|
|
Angabe der Netzadresse |
|
|
Angabe der Netzadresse |
|
|
nur Zusammenfassung zeigen |
|
|
eine Statistik ausgeben |
|
|
Netzwerkgerät angeben |
|
|
Anzahl weiterer Versuche |
|
Listing 4 zeigt vier Beispiele für den Einsatz von Fping. Der erste Aufruf demonstriert das gleichzeitige Prüfen mehrerer Ziele, die Sie sowohl über den Hostnamen als auch die IP-Adresse identifizieren dürfen. Auch Adressbereiche lassen sich durch geschickte Kombination verschiedener Optionen untersuchen (Zeile 4). Der Einzeiler aus dem dritten Aufruf (Zeile 9) schließlich liefert eine Übersicht aller aktuell aktiven Komponenten im lokalen Netzwerk. In einem Skript lässt sich das über eine For-Schleife als Datenquelle für weitere Aktionen verwenden.
Listing 4
$ fping ze8 192.168.0.10 ze8 is alive 192.168.0.10 is alive $ fping -a -q -g 192.168.0.1 192.168.0.50 192.168.0.1 192.168.0.2 192.168.0.10 192.168.0.38 $ fping -aq -g 192.168.0.0/24 192.168.0.1 192.168.0.2 192.168.0.10 192.168.0.38 192.168.0.52 192.168.0.54 192.168.0.82 192.168.0.83 192.168.0.242 $ fping -aAnq -g 192.168.0.0/24 OpenWrt.lan (192.168.0.1) 192.168.0.2 (192.168.0.2) 192.168.0.10 (192.168.0.10) ze8 (192.168.0.38) 192.168.0.52 (192.168.0.52) fs-1370 (192.168.0.54) 192.168.0.82 (192.168.0.82) 192.168.0.83 (192.168.0.83) monimobil.lan (192.168.0.242)
Über die zusätzliche Anzeige der Namensauflösung erfahren Sie auch, für welche Ziele diese funktioniert. Dazu kombinieren Sie die beiden Optionen -A und -n (Zeile 19). Interessiert Sie nur eine kurze summarische Übersicht, genügt der Aufruf aus Abbildung 4. Die dort verwendete Option -r 1 beschleunigt den Durchlauf, weil Fping nun jede Adresse insgesamt nur zwei Mal anpingt. Mit -r 0 versucht es jede Adresse nur einmal.

Abbildung 4: Mit den richtigen Optionen aufgerufen, liefert Fping eine übersichtliche summarische Aufstellung.
Namensauflösung
Das Verwenden von Hostnamen für Rechner und Geräte sorgt bei der Arbeit im LAN und Internet für mehr Übersicht. Die dahinterliegenden Mechanismen arbeiten für den Benutzer meist transparent.
Die Urform der Namensauflösung liegt in der Verwendung der Datei /etc/hosts, die Sie mit Root-Rechten editieren. Hier stellen Sie die IP-Adresse und den Hostnamen – als Langnamen (oft ein FQDN), Kurznamen oder beides – des jeweiligen Systems in einer Zeile zusammen. Diesen Mechanismus verwendet man in kleinen Netzen oder auch in Fällen, in denen man sich gegen den Ausfall von Nameservern absichern möchte.
Das kleine Muster in Listing 5 zeigt einige typische Einträge. Am Anfang finden Sie stets die vom System generierten Angaben für den eigenen, lokalen Rechner (<localhost, Zeile 1 bis 8). Darunter nehmen Sie eigene Zuordnungen vor (Zeile 10 bis 19).
Indem Sie die Adressen von unerwünschten Gegenstellen wie beispielsweise Ad-Servern auf localhost umleiten, können Sie hier auch eine Art Sperrliste einrichten (ab Zeile 21). So werden Sie aufdringliches Beiwerk von Webseiten los, ohne im Webbrowser einen Adblocker einrichten zu müssen.
Listing 5
# Lokal 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts # Hosts im LAN 192.168.4.35 Rechner1 r1 192.168.4.36 Rechner2 r2 # -- Netzwerkdrucker 192.168.4.50 lp 192.168.4.51 laserjet # Hosts im Internet 192.0.32.8 www.iana.org ia 104.20.60.215 dict.leo.org leo # Sperren 127.0.0.1 navigationshilfe1.t-online.de 127.0.0.1 ad.de.doubleclick.net 127.0.0.1 pagead.googlesyndication.com [...]
In größeren Netzen gerät die Namensauflösung über lokale Hosts-Dateien auf jedem Rechner schnell aufwendig und unübersichtlich. Hier bietet es sich an, einen eigenen Nameserver (Domain Name Server, DNS) einzurichten, um die Adressen zentral an einer Stelle zu verwalten. Anfragen für nicht lokale Adressen leitet der lokale Nameserver zum nächsten externen Nameserver weiter, meist zum DNS-Server Ihres Providers. Sie können dafür aber auch Alternativen nutzen, wie die bekannten.
Bei der Namensauflösung per Domain Name Server tauchen verschiedene Resource Record Types (RR) auf. Für die tägliche Praxis sollten Sie zumindest drei davon kennen: A steht für eine IPv4-Adresse, AAAA für eine IPv6-Adresse. Beim RR MX handelt es sich um den Mailserver einer Domain. Eine vollständige Übersicht über die RR-Typen finden Sie bei Interesse auf den Webseiten der IANA [3].
Namensauflösung prüfen
Das Werkzeug Host dient zum Prüfen der Namensauflösung über einen Nameserver sowie zum manuellen Ermitteln zusätzlicher Informationen. Rufen Sie das Programm ohne weitere Optionen nur mit einem Rechnernamen als Suchbegriff auf, erhalten Sie im Erfolgsfall die zugehörige(n) IP-Adresse(n) angezeigt – IPv4 und, falls vorhanden, IPv6. Die wichtigsten Optionen des Kommandos fasst die Tabelle “Host: Optionen” zusammen. Der erste Aufruf in Listing 6 zeigt die kurze, einfache Anwendung von Host, der zweite ein ausführliches Abfragebeispiel.
|
Aktion |
Syntax |
|---|---|
|
Ausführliche Informationen |
|
|
Alle Informationen ausgeben |
|
|
Eintragstyp angeben |
|
Listing 6
$ host www.google.de www.google.de has address 172.217.18.3 www.google.de has IPv6 address 2a00:1450:4016:800::2003 $ host -a de.wikipedia.org Trying "de.wikipedia.org" ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 460 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 6, ADDITIONAL: 0 ;; QUESTION SECTION: ;de.wikipedia.org. IN ANY ;; ANSWER SECTION: de.wikipedia.org. 348 IN AAAA 2620:0:862:ed1a::1 de.wikipedia.org. 585 IN A 91.198.174.192 ;; AUTHORITY SECTION: org. 154728 IN NS b2.org.afilias-nst.org. org. 154728 IN NS a2.org.afilias-nst.info. org. 154728 IN NS c0.org.afilias-nst.info. org. 154728 IN NS d0.org.afilias-nst.org. org. 154728 IN NS b0.org.afilias-nst.org. org. 154728 IN NS a0.org.afilias-nst.info. Received 216 bytes from 127.0.0.1#53 in 5 ms
Routen finden
Bei Problemen mit der Übertragungsgeschwindigkeit zwischen zwei Systemen, die über das Internet miteinander in Kontakt stehen, kann man den Weg der Datenpakete ermitteln und gegebenenfalls abweichende Vorgaben für das Routing setzen.
Dazu ermitteln Sie mit Traceroute, welche Router sich zwischen Ihrem Rechner und dem Zielsystem befinden, wobei Sie als Ziel wahlweise eine IP-Adresse oder einen Hostnamen eingeben. Einige wichtige Optionen fasst die Tabelle “Traceroute: Optionen” zusammen; Listing 7 zeigt eine Traceroute-Abfrage für die LEO-Wörterbuchseite.
|
Aktion |
Syntax |
|---|---|
|
ICMP ECHO für Prüfung verwenden |
|
|
TCP SYN für Prüfung verwenden |
|
|
Benutze Netzwerkgerät |
|
|
Nummer von Autonomen Systemen ausgeben |
|
Listing 7
$ traceroute dict.leo.org
traceroute to dict.leo.org (104.20.60.215), 30 hops max, 60 byte packets
1 cleopatra.ntm-gmbh.de (192.168.1.254) 0.392 ms 0.296 ms 0.285 ms
2 host-62-245-143-241.customer.m-online.net (62.245.143.241) 1.576 ms 1.570 ms 1.561 ms
3 host-212-114-240-113.customer.m-online.net (212.114.240.113) 2.928 ms 3.364 ms 3.332 ms
4 et-4-0-0.rt-decix-2.m-online.net (82.135.16.197) 8.896 ms 8.776 ms 8.767 ms
5 de-cix-frankfurt.as13335.net (80.81.194.180) 9.491 ms 9.492 ms 9.482 ms
6 104.20.60.215 (104.20.60.215) 8.659 ms 8.655 ms 8.572 ms
Verbindungen mit Mtr prüfen
Das Programm Mtr verbindet die Funktionen von Ping und Traceroute. Es läuft sowohl in der GUI als auch im Terminal. Allerdings zählt das praktische Werkzeug bei vielen Distributionen nicht zum Standardlieferumfang. Sie müssen es also gegebenenfalls in Form des gleichnamigen Pakets über die Softwareverwaltung nachziehen.
Neben der Dauerkontrolle einer Verbindung ermöglicht Mtr auch das Erzeugen eines Reports per Einmaldurchlauf. Dazu verfügt es über eine Vielzahl von Optionen, deren wichtigste die Tabelle “Mtr: Optionen” zusammenfasst. Abbildung 5 zeigt Mtr im interaktiven Modus nach dem Aufruf des Befehls aus der ersten Zeile von Listing 8. Eine Report-Datei (Einmaldurchlauf mit Ausgabeumleitung) erzeugen Sie mit dem Aufruf aus der zweiten Zeile von Listing 8.
|
Aktion |
Syntax |
|---|---|
|
Ausgabe im Terminal |
|
|
Einmaldurchlauf für Report |
|
|
ASNs ausgeben |
|
|
Abfrageintervall |
|
|
Maximale Durchlaufanzahl |
|
|
IP und Hostname ausgeben |
|
|
Breitformatige Ausgabe |
|
|
DNS-Abfragen unterlassen |
|
|
Rohdaten ausgeben |
|
|
Report im CSV-Format |
|
|
TCP-SYN statt ICMP nutzen |
|
|
Datei mit Zielen einlesen |
|
Listing 8
$ mtr -t -i10 www.example.com $ mtr -t -r -C www.example.com > report.csv

Abbildung 5: Im interaktiven Modus bietet Mtr auch auf der Kommandozeile eine eingängige Oberfläche.
Praktische Anwendung
Mit dem Shell-Skript netzschau.sh aus Listing 9 erhalten Sie einen Überblick, welche Geräte in einem Netzwerk aktiv sind. Das Skript läuft so lange durch, bis Sie es mittels [Strg]+[C] beenden; Abbildung 6 zeigt es im Einsatz. Für das Ermitteln der aktiven IPs nutzt netzschau.sh Fping, das Sie gegebenenfalls vorab über die Paketverwaltung der verwendeten Distribution einrichten müssen.
Listing 9
#!/bin/bash
# netzschau.sh
Durchlauf=0
Netzwerk=$(ip route | grep "src" | cut -f1 -d" ")
while true; do
clear
echo "------------------------------"
echo "Liste der aktiven IP-Adressen"
echo "im Netzwerk ${Netzwerk}"
echo -n "$(date +%H:%M:%S) Uhr "
echo "($((Durchlauf+=1)). Durchlauf)"
echo "------------------------------"
fping -aq -g ${Netzwerk}
echo "------------------------------"
sleep 10
done
Mit dem Shell-Skript netzhilfe.sh (Listing 10) überprüfen Sie schnell, ob die Netzwerkkonfiguration eines Linux-Rechners funktioniert. Die Idee hinter dem Skript: Jeder Benutzer kann es auch ohne Vorkenntnisse ausführen, im Fehlerfall verfügen Sie schon über eine vorläufige Diagnose. Deshalb unterdrückt es die Ausgaben der einzelnen Befehle und stellt lediglich die aktuellen Ergebnisse und gegebenenfalls Hinweise zur Fehlerbehebung dar (Abbildung 7, oben). Es kann bei Bedarf sogar einen fehlerhaften Eintrag in /etc/resolv.conf korrigieren, muss dazu aber durch root gestartet werden.

Abbildung 7: Mit netzhilfe.sh prüfen auch weniger kundige Anwender problemlos die Netzwerkanbindung und können etwaige Fehler schnell selbst korrigieren.
Listing 10
#!/bin/bash
# netzhilfe.sh
# Server für Test; IP und FQDN gegebenenfalls anpassen
WebIP="93.184.216.34"
Webserver="www.example.com"
# Router ermitteln, falls nicht bei Aufruf übergeben
if [ $# -gt 0 ]; then
Router="${1}"
else
Router=$(ip route | grep "default" | cut -f3 -d" ")
fi
#
echo -n "Verbindungstest Rechner -> LAN: "
ping -c3 ${Router} &>/dev/null
if [ $? -eq 0 ]; then
echo -e "[ERFOLG] Router ${Router} erreichbar, LAN ok."
else
echo -e "[FEHLER] Router ${Router} nicht erreichbar."
echo -e "\t\t\t\t* Router einschalten"
echo -e "\t\t\t\t* Netzwerkkabel am Rechner prüfen\n"
exit
fi
echo -n "Verbindungstest Rechner -> WWW: "
ping -c3 -q ${WebIP} &>/dev/null
if [ $? -eq 0 ]; then
echo -e "[ERFOLG] Ziel ${WebIP} auf IP-Ebene erreichbar."
else
echo -e "[FEHLER] Ziel ${WebIP} auf IP-Ebene nicht erreichbar."
echo -e "\t\t\t\t* Kontrolllampen am DSL-Modem prüfen"
echo -e "\t\t\t\t* DSL-Modem aus- und wieder einstecken"
echo -e "\t\t\t\t* Router ${Router} prüfen / zurücksetzen\n"
exit
fi
echo -n "Überprüfen der Namensauflösung: "
host ${Webserver} &>/dev/null
if [ $? -eq 0 ]; then
echo -e "[ERFOLG] Namensauflösung für ${Webserver} funktioniert.\n"
exit
else
echo -e "[FEHLER] Falscher Eintrag beim Resolver."
if [ "$(whoami)" = "root" ]; then
echo -e "\t\t\t\t* Nameserver-Eintrag wird korrigiert ..."
echo -e "nameserver ${Router}" > /etc/resolv.conf
echo -e "\t\t\t\t* Resolv-Datei wurde zurückgesetzt.\n"
echo -en "2. Prüfung der Namensauflösung: "
host ${Webserver} &>/dev/null
if [ $? -eq 0 ]; then
echo -e "[ERFOLG] Namensauflösung funktioniert jetzt.\n"
else
echo -e "[FEHLER] Namensauflösung funktioniert nicht."
echo -e "\t\t\t\t* Kontaktieren Sie einen Administrator.\n"
fi
else
echo -e "\t\t\t\t* Starten Sie dieses Skript als Root.\n"
fi
fi
Falls Sie dem Skript den zu prüfenden Router nicht in Form von IP-Adresse oder Hostnamen mitgeben, ermittelt es selbstständig die Router-IP. Als Gegenstelle für Tests der Internet-Verbindung verwendet es den Server http://www.example.com mit der IP 93.184.216.34. Möchten Sie einen anderen Webserver dazu nutzen, passen Sie die beiden Variablen WebIP und Webserver entsprechend an.
Zunächst prüft das Skript die Erreichbarkeit des Routers. Im Erfolgsfall versucht es anschließend, Kontakt zur angegebenen IP-Adresse aufzunehmen, um die Funktion der Internet-Verbindung zu prüfen. Klappt auch das, schließt sich zu guter Letzt ein Ping auf den Hostnamen des Webservers an, um die Namensauflösung zu prüfen. Arbeitet das Skript alle drei Punkte mit Erfolg ab, ist die Netzanbindung des Rechners grundsätzlich funktionsfähig (Abbildung 7, unten).
Schlägt dagegen eine der Prüfungen fehl, liefert netzhilfe.sh kurze Hinweise zur Fehlerbeseitigung. Sehr selten gibt es Probleme mit einem Eintrag der Datei /etc/resolv.conf, den das Skript dann nach Möglichkeit neu setzt.
Fazit
Die grundlegende Netzwerkkonfiguration gelingt mithilfe von Kommandozeilenbefehlen ohne jede Schwierigkeit. Die Funktionsfähigkeit der Einstellungen lässt sich dabei einfach überprüfen. Die Möglichkeit, die Kommandos auch in einem Shell-Skript unterzubringen, eröffnet dabei den Weg zu maßgeschneiderten Lösungen für den Eigengebrauch.
Der Autor
Harald Zisler beschäftigt sich seit rund 25 Jahren mit FreeBSD und Linux. Er verfasst Artikel und Bücher zu Technik- und EDV-Themen, aktuell ist die vierte Auflage von “Computer-Netzwerke” beim Rheinwerk Verlag erschienen.
Glossar
-
CIDR
-
Classless Inter-Domain Routing (RFC 1518, RFC 1519, RFC 4632). Verfahren zur effizienten Nutzung des IPv4-Adressraums. Die CIDR-Adresse setzt sich aus der Netzadresse und einem Suffix zusammen, der die Anzahl der Bits in der Netzmaske beschreibt. So entspricht die CIDR 192.168.0.0/24 beispielsweise dem Netz mit den IP-Adressen 192.168.0.1 bis 192.168.0.255.
-
NIC
-
Network Interface Controller. Netzwerkadapter, in der Regel in Form einer Steck- oder Einschubkarte, eines USB-Sticks oder eines Onboard-Chips.
Infos
-
TCP/IP-Grundlagen: Kristian Kißling, “Pfade durch den Dschungel”, LU 12/2006, S. 34, https://www.linux-community.de/11811
-
Netzwerkgrundlagen: Martin Steigerwald, “Komplexe Architektur”, LU 03/2007, S. 86, https://www.linux-community.de/11894
-
DNS-Parameter: http://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml









