Open Source im professionellen Einsatz

© photocase.com

IProute2 fasst viele Befehle für die Netzkonfiguration zusammen

Schwarm auf der Flucht

Wer für die Netzwerk-Konfiguration dem Schwarm alter Kommandos von »arp« über »ifconfig« bis »route« vertraut, sollte sich mit deren mächtigem Nachfolger »ip« beschäftigen. Der leistet mehr als alle Vorgänger zusammen und verdrängt sie vielleicht bald aus den Distributionen.

Kaum einer kennt es, obwohl das Kommando schon seit Kernel 2.2 existiert: »ip« gelangt mit den Paketen »iproute2« oder »iproute« auf den Linux-PC. Alexey Kuznetsov hat dieses Tool für Linux 2.2 entwickelt, als er auch den IPv4- und IPv6-Routing-Code für den Kernel schrieb. Linux erhielt damals erstmals Fähigkeiten, die heute Advanced Routing oder Policy Routing heißen.

Um die beste Route eines IP-Pakets zu ermitteln, analysiert ein herkömmlicher Router nur die Ziel-IP-Adresse und schlägt in seiner Routing-Tabelle nach. Policy Routing erlaubt dagegen vielfältige Anpassungen. Dazu verwaltet der Linux-Kernel bei Bedarf bis zu 256 Routing-Tabellen. Vom Admin vorgegebene Regeln definieren danach, für welche Pakete das System welche Routing-Tabellen zu Rate zieht.

Alles vereint

Vor diesen eher anspruchsvollen »ip«-Aufgaben gilt es, sich mit den einfacheren Fähigkeiten des Befehls vertraut zu machen. Die 60-seitige "IP Command Reference" [2], die die meisten Pakete unter dem Namen »ip-cref.ps« enthalten, dient als Anleitung und Nachschlagewerk. Debian speichert die Datei beispielsweise komprimiert unter »/usr/share/doc/iproute/ip-cref.ps.gz«, Suse Linux 10.1 verstaut sie als PDF-Version unter »/usr/share/doc/packages/iproute2/ip-cref.pdf«.

Guter Überblick

Der »ip«-Aufruf zeigt zunächst wie »ifconfig«, »route« und »arp« den aktuellen Zustand an. Der Befehl horcht auf folgende Syntax:

ip [Optionen] Objekt [Kommando [Argumente]]


Alle vorhandenen Netzwerkkarten zeigt das Tool mit dem Befehl »ip link show« oder kurz »ip link« an, wofür keine Administrator-Rechte nötig sind. Hier ist »link« das Objekt und »show« das Kommando. Fehlt ein Kommando, nimmt Ip an, dass »show« gemeint ist. Das Kommando erlaubt auch Abkürzungen und Synonyme, etwa »ip link ls«. Abbildung 1 zeigt die Ausgabe.

Abbildung 1: Der Aufruf »ip link show« listet alle Netzwerkkarten, inklusive der virtuellen und nicht aktiven Interfaces. Letztere sind daran zu erkennen, dass das Schlüsselwort »UP« fehlt (»wlan0« und »sit0«).

Abbildung 1: Der Aufruf »ip link show« listet alle Netzwerkkarten, inklusive der virtuellen und nicht aktiven Interfaces. Letztere sind daran zu erkennen, dass das Schlüsselwort »UP« fehlt (»wlan0« und »sit0«).

In der Ausgabe ist erkennbar, dass die Karten »wlan0« und »sit0« nicht aktiv sind: Es fehlt das Flag »UP«. Die Karten »vmnet*« sind virtuelle Netzwerk-Schnittstellen von VMware. Um auch die Netzwerkadressen anzuzeigen, genügt es, als Objekt »addr« anzugeben statt »link«. Das Beispiel in Listing 1, Zeile 1, schränkt die Ausgabe zusätzlich auf das Device »eth0« ein.

Listing 1: Informationen
über »eth0«

01 # ip addr show dev eth0
02 2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
03     link/ether 00:0f:1f:1c:bd:15 brd ff:ff:ff:ff:ff:ff
04     inet 192.168.255.100/24 brd 192.168.255.255 scope global eth0
05     inet6 fe80::20f:1fff:fe1c:bd15/64 scope link
06        valid_lft forever preferred_lft forever
07 
08 # ip -s link show dev eth0
09 2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
10     link/ether 00:0f:1f:1c:bd:15 brd ff:ff:ff:ff:ff:ff
11     RX: bytes  packets  errors  dropped overrun mcast
12     440168179  10300520 0       0       0       123
13     TX: bytes  packets  errors  dropped carrier collsns
14     808302790  13835300 0       0       0       0

Die Ausgabe in den Zeilen 2 bis 6 zeigt sowohl die IPv4- (»inet«) als auch die IPv6-Adresse (»inet6«) dieses Interface. Die Ethernet-Adresse (»link/ether«) erscheint auch schon bei »ip link«. Das alte Ifconfig zeigt per Default noch statistische Informationen an, die für die Fehlersuche hilfreich sind - Ip kann das auch, wenn der Aufruf die Option »-s« enthält (Listing 1, Zeile 8). Wer sich für die Routen oder den ARP-Cache interessiert (Address Resolution Protocol), erhält diese Informationen über »ip route show« beziehungsweise »ip neighbour show« (Abbildung 2).

Abbildung 2: Das »ip«-Programm zeigt die Routen (»ip route show«) und den Inhalt des ARP-Cache an, Zweiteres per »ip neigh show«. Hier dient »neigh« als bequeme Abkürzung für »neighbour« (Nachbar).

Abbildung 2: Das »ip«-Programm zeigt die Routen (»ip route show«) und den Inhalt des ARP-Cache an, Zweiteres per »ip neigh show«. Hier dient »neigh« als bequeme Abkürzung für »neighbour« (Nachbar).

Alle bisher gezeigten Beispiele funktionieren ohne Root-Rechte. Administratoren zeigen mit Ip aber nicht nur die Informationen an, sondern verändern sie auch. Als Beispiel dient im Folgenden die Netzwerkkarte »dummy0«, die eine virtuelle Schnittstelle darstellt. Um diese Netzwerkkarte zu aktivieren, genügt der Befehl »ip link set dummy0 up« (Abbildung 3). Beim Aufruf dieses Befehls sollte das System automatisch das entsprechende Kernelmodul nachladen. Ist dies nicht der Fall, sorgt der manuelle Aufruf »modprobe dummy« für Nachhilfe in Sachen Dummy-Interface.

Abbildung 3: Der Befehl »ip link« aktiviert Netzwerkkarten, hier das virtuelle Interface »dummy0«. Die weiteren Kommandos verpassen ihm eine primäre und eine sekundäre IP-Adresse sowie ein Label.

Abbildung 3: Der Befehl »ip link« aktiviert Netzwerkkarten, hier das virtuelle Interface »dummy0«. Die weiteren Kommandos verpassen ihm eine primäre und eine sekundäre IP-Adresse sowie ein Label.

Wer einer Netzwerkkarte mehrere IP-Adressen zuordnet, erzeugt mit dem klassischen Ifconfig neue Devices mit Namen »eth0:0«, »eth0:1« und so weiter. Ip arbeitet mit dem gleichen Gerätenamen und vergibt über den »label«-Parameter die Aliasnamen:

ip addr add 192.168.20.1 dev eth0 label eth0:0


Dieser Name darf später zum Beispiel in IPtables-Skripten auftauchen, was die Verwaltung von Firewall-Regeln deutlich vereinfacht. Das Label muss auch nicht die Form »eth0:0« haben. Es ist lediglich erforderlich, dass der Name mit dem Namen der Netzwerkkarte beginnt, gefolgt von einem Doppelpunkt und einer Zeichenkette.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook