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 (Ersetztifconfig)ip route <parameter>: Richtet das Routing ein (Ersetztroute)ip rule <parameter>: Richtet Policy Routing ein (Fortgeschrittenes Routing in Linux)ip neigh <parameter>: Verwaltet die ARP-Tabelle (Ersetzt das Kommandoarp)
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
