spacer
Homepage | Manual | Forums

Sysresccd-networking de Grundlegende-IP-Konfigurations-Tools-in-Linux

History

Contents

Linux Netzwerk-Konfigurationstools der "alten" Generation

Konfigurationstool für die Schnittstelle

Alle *nixe liefern das Tool ifconfig mit, welches zur Konfiguration der Netzwerkschnittstellen dient. Unter Linux heißen diese eth0, eth1, eth2, .... ifconfig erlaubt es, die Konfiguration der grundlegenden TCP/IP Einstellungen dieser Schnittstellen, wie z.B. eine oder mehrere statische IP-Adressen, die Netzmaske, etc. Ifconfig ist nicht notwendig, wenn dynamische IP-Adressen (DHCP) genutzt werden. In diesem Fall muss lediglich ein DHCP-Client gestartet werden (z.B. dhdpcd oder dhclient), der versucht einen DHCP-Server im LAN zu finden und eine dynamische IP-Adresse anzufordern. Nachfolgend der Befehl zur Konfiguration der IP-Adresse der ersten Netzwerkschnittstelle des Computers:

ifconfig eth0 192.168.1.1 netmask 255.255.255.0

Diese IP-Adresse gehört zuden sogenannten privaten Klasse-C IP-Adressen. Das bedeutet, dass der Computer sich mit allen anderen im LAN eingebundenen PCs unterhalten kann, die ebenfalls eine mit 192.168.1 beginnende Adresse haben. Wenn feste IP-Adressen vergeben werden, muss immer sichergestellt sein, dass keine Adresse innerhalb des LAN doppelt vergeben wird.

Man kann einer Schnittstelle auch mehr als eine IP-Adresse zuweisen. Das nennt man "IP- Aliasing". Das bedeutet, die Schnittstelle empfängt alle Netzwerkpakete, die an eine der Adressen geschickt werden. Diese Adressen können entweder Teil des selben Subnetzes sein (z.B.: 192.168.1.1/24 und 192.168.1.2/24), oder sie können in verschiedenen Subnetzen liegen (z.B.: 192.168.1.1/24 und 172.16.1.1/16). Nachfolgend ein Beispiel zum IP-Aliasing:

ifconfig eth0 192.168.1.1 netmask 255.255.255.0
ifconfig eth0:1 192.168.1.2 netmask 255.255.255.0
ifconfig eth0:2 172.16.1.1 netmask 255.255.0.0

Konfigurationstool für das Routing

Wahrscheinlich muss auch Routing konfiguriert werden, wenn nicht ein sehr einfach aufgebautes Netzwerk vorliegt (Ein Computer mit einer Schnittstelle). Grundsätzlich bedeutet Routing, dass bestimmt wird, welches Netzwerkgerät oder welcher Router des Netzwerkes zum Verschicken von Paketen an andere Maschinen oder Subnetze genutzt werden soll. Alle aktuellen Betriebssysteme haben einen Befehl um das Routing zu konfigurieren (die Syntax kann natürlich variieren). Hier einige Beispiele für die Routing-Konfiguration mit den "alten" Befehlen in Linux:

  • Einrichten der Standard-Route auf 192.168.1.254 als Gateway:

route add default gw 192.168.1.254

  • Schicken der Pakete auf 192.168.157.3 über die zweite Netzwerkschnittstelle (eth1 ist die 2. Netzwerkschnittstelle):

route add -host 192.168.157.3 dev eth1

  • Schicke die Pakete an das Subnetz 192.168.200.0/24 über das Gateway:

route add -net 192.168.200.0/24 gw 192.168.1.1

  • Löschen der vorherigen Route:

route del -net 192.168.200.0/24 gw 192.168.1.1

  • Anzeigen der aktuellen Routing-Tabelle:

route -n (Option -n deaktiviert die Namensauslösung)

Die Routing-Tabelle wird benutzt, um die Pakete des eigenen PCs zu routen. Sie wird ebenfalls benutzt, wenn der eigene Computer als Router dient. In diesem Fall muss das "IP-Forwarding" mit dem folgenden Befehl aktiviert werden:

echo 1 > /proc/sys/net/ipv4/ip_forward

Linux Netzwerk-Konfigurationstools der "neuen" Generation

iproute2 ist eine Sammlung von Werkzeugen, welche die althergebrachten Unix Netzwerk-Tools ersetzen, die vorher für die Schnittstellenkonfiguration, Routing-Tabellenbearbeitung und Bearbeiten der ARP-Tabelle benutzt wurden. Das wichtigste Kommando ist ip. Es verfügt über diverse Unterbefehle, welche die alten Kommandos ersetzen. iproute2 nutzt den netlink socket um mit dem Kernel zu kommunizieren. Dies ist nicht so eingeschränkt wie die ioctl Schnittstelle, welche mit ifconfig benutzt wird.

  • ip address <parameter>: Richtet die Netzwerkschnittstellen mit IPv4 oder IPv6 ein (Ersetzt ifconfig)
  • ip route <parameter>: Richtet das Routing ein (Ersetzt route)
  • ip rule <parameter>: Richtet Policy Routing ein (Fortgeschrittenes Routing in Linux)
  • ip neigh <parameter>: Verwaltet die ARP-Tabelle (Ersetzt das Kommando arp)

Schnittstellen Konfigurations-Tool

Da ip ein aktuelles Kommando ist, wurde es darauf ausgelegt, komplexe Vorgänge zu erledigen. Deshalb muss man auch kein IP-Aliasing mehr nutzen um einer Schnittstelle mehrere IP-Adressen zuzuweisen. Nachfolgend weisen wir zwei IP-Adressen an eth0 zu:

ip address add 192.168.1.1/24 dev eth0
ip address add 192.168.1.2/24 dev eth0

Man kann auch einen Alias zuweisen, selbst wenn das nicht notwendig ist, um die Abwärtskompatibilität zu den alten Tools zu erhalten::

ip address add 192.168.1.1/24 dev eth0
ip address add 192.168.1.2/24 dev eth0 label eth0:1

Nachfolgend ein Beispiel für eine Ausgabe der IP-Adressen mit dem Befehl ip address show:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:0c:29:02:8c:8d brd ff:ff:ff:ff:ff:ff
    inet 192.168.157.3/24 brd 192.168.157.255 scope global eth0
    inet 172.16.10.1/16 scope global eth0

Und so wird man zugewiesene Adressen wieder los:

ip address del 192.168.1.1/24 dev eth0
ip address del 192.168.1.2/24 dev eth0

Die Fehlermeldungen dieses Werkzeuges können missverständlich sein. Beispiel: RTNETLINK answers: File exists bedeutet, dass eine Adresse oder Route zu einer bereits konfigurierten Schnittstelle hinzugefügt wurde. Es gibt keine Datei, die hier mitspielt (wie die Meldung vielleicht suggerieren könnte):

# ip address add 192.168.1.2/24 dev eth0 label eth0:1
RTNETLINK answers: File exists

Grundlegendes Routing mit ip route

Der Befehl ip erlaubt sowohl grundsätzliches als auch fortgeschrittenes Routing wie z.B. Policy-Routing. Deshalb ist der alte Routing Befehl auch ausgemustert worden. Dieser Abschnitt befasst sich nur mit grundlegendem Routing.

Nachfolgend einige Beispiele, wie Routing mit ip route konfiguriert werden kann:

  • Einrichten der Standard-Route auf 192.168.1.254 als Gateway:

ip route add default via 192.168.1.254

  • Schicken der Pakete auf 192.168.157.3 über die zweite Netzwerkschnittstelle (eth1 ist die 2. Netzwerkschnittstelle):

ip route add 192.168.157.3/32 dev eth1

  • Schicke die Pakete des Subnetzes 192.168.200.0/24 über das Gateway:

ip route add 192.168.200.0/24 via 192.168.1.1

  • Löschen der vorherigen Route aus der Routing-Tabelle:

ip route del 192.168.200.0/24

  • Anzeigen der aktuellen Routing-Tabelle:

ip route show

  • Anzeigen des Routing cache:

ip route show cache

  • Löschen desRouting cache:

ip route flush cache

Wie bereits gesagt, muß IP-Forwarding aktiv sein, wenn der PC als Router arbeiten soll: echo 1 > /proc/sys/net/ipv4/ip_forward

spacer