Willkommen bei WCM
Um alle Funktionen dieser Website nutzen zu können müssen Sie sich Einloggen oder Registrieren. Die Registrierung ist unverbindlich und dauert nur einen Moment.
Tipps & Tricks
Veröffentlicht am 26.12.2004 11:18:46
Jahrzehnte lang wurden Unix-Systeme mit den wohl bekanntesten Netzwerkbefehlen der EDV-Geschichte konfiguriert. ifconfig und route heißen die beiden jedermann bekannten Tools. Doch als vor ca. 10 Jahren der Router Hersteller CISCO mit seinem IOS eine alternative Syntax propagierte, wurde es kompliziert. Statt „ifconfig eth0 192.168.0.1 up“ musste der Administrator der CISCO nun „interface FastEthernet0, ip address 192.168.0.1, no shutdown“ schreiben — wobei die Beistriche durch Zeilenvorschübe ergänzt werden sollten. Für die IOS-basierten Router ebenfalls neu waren zwei grundlegende Konzeptänderungen. Ein Interface ist nicht gleich einer IP Adresse, sondern hat eventuell deren mehrere. Und die Befehlssprache ging nicht mehr von dem Programm aus, sondern beschrieb mehr was zu tun wäre. Linux, oftmals als Router eingesetzt, bot viele der Features an, konnte aber zur Konfiguration nur die üblichen Unix-Befehle anbieten. Dadurch mussten viele „Krücken“ geschaffen werden. Im Jahre 1999 entwickelte Alexei N. Kuznetsov dann für Linux das IPRoute2 Paket.
Anstelle verschiedener Programme zum Netzwerksetup propagierte er eine neue, an IOS angelehnte Syntax. Auch definierte er neue Begriffe, die das Konfigurieren von komplizierteren Netzwerksystemen transparenter und einfacher gestalten. Ganz zu Beginn möchten wir die im Folgenden verwendete IP-Notation vorstellen: 192.168.1.1/24 kennzeichnet hier die Adresse 192.168.1.1 in dem Netz 192.168.1.0 — ist also gleich 192.168.1.1/255.255.255.0, nur kürzer 192.168.1.notiert. Die 24 kennzeichnet eben, dass 24 Bit der 32 Bit langen IP-Adresse das Netz definieren (Netz-Teil). Das Programmpaket IPRoute2 beinhaltet vor allem ein Programm: ip. Mit „ip“ kann der User, besser der Systemadministrator, praktisch alles rund ums Netzwerk regeln. Egal ob Interfaces, IP-Adressen oder Routen, alles wird mit der Befehlsfolge ip [ OPTIONS ] OBJECT { COMMAND | help } aufgerufen. Links (Interfaces) definiert man mit „ip link“, IP-Adressen mit „ip addr“ und mit „ip route“ werden die Routen festgelegt. ARP-Cache, Multicasting und Tunneling sind ebenfalls Möglichkeiten, die „ip“ zusammen mit einem aktuellen Kernel bietet. Spezielle Goodies des Linux Kernels lassen sich durch „ip rule“ festlegen. Das ist der Schlüssel zum so genannten Policy Routing, bei dem mehr Komponenten als „nur“ die Zieladresse zur Festlegung der Route dienen — dazu aber mehr in einer der nächsten Ausgaben. Die genaue Konfiguration werden wir anhand von Beispielen durchgehen, um Netzwerkschnittstellen, IP-Adressen und Routing zu definieren. Details zu den Funktionen kommen direkt im Beispiel. Wir haben einen Webserver, der im Internet und im LAN angeschlossen ist. Das LAN ist ein privates C-Klasse Netz 192.1.168.1.1/24, im Internet heißt die Maschine 195.179.151.15. Gleichzeitig haben wir einen weiteren Chat-Dienst im Web, der an 195.179.151.23 gebunden ist.
Einen weiteren Server aus dem Internet, der uns Daten liefert, wird über einen VPN Link des LAN erreicht. Dieser Rechner hat die IP 195.168.19.15, das VPN Gateway ist unter 192.168.1.200 erreichbar. Die Konfiguration ist ziemlich klar lesbar, lediglich interessant, weil selten, ist die Notation der zweiten Internet IP Adresse. Derzeit werden vor allem numerische Aliases verwendet, wenn unter Linux mehrere IPs auf einem Interface legen sollen — sprechende Namen sind jedoch durchaus auch möglich! Mit IP-Route2 trennt man die Interfaces zuerst von den IPs. Das Konzept mit Haupt- und Neben-IP-Adressen ist überholt. Wie etwa bei CISCO ist eine IP Adresse eine durchaus mehrmals konfigurierbare Eigenschaft des Interface. Das Interface selbst, bei IPRoute2 „link“ genannt, hat vor allem eine MAC-Adresse (die auch konfigurierbar ist), sowie physische Parameter, wie Art (Token Ring, Ethernet,...) und Netztyp (PointToPoint, Multicast). Die folgenden Befehle aktivieren die Interfaces: ip link set eth0 up ip link set eth1 up. Interfaces sind die Grundlage der Kommunikation. Es sind physische Schnittstellen, die von Haus aus keine TCP/IP-Kommunikation verstehen müssen.
Die für die Internet-Kommunikation notwendigen IP-Adressen werden mittels „ip addr“ zugewiesen: ip addr add dev eth0 192.168.1.12/24 ip addr add dev eth1 195.179.151.15/24 ip addr add dev eth1 195.179.151.23/24. IPRoute2 hat hier danach die Netzwerkadressen richtig definiert. Bei der zweiten Adresse für eth1 wird die Karte als „secondary“ definiert. Das heißt, dass die zweite Adresse wie eth1:chat behandelt werden würde — bei Deaktivierung der Hauptadresse wäre sie mit abgedreht worden. Möchte man das nicht, kann man die Adressen auch mit Netzmaske /32 definieren: ip addr add dev eth1 195.179.151.15/32 ip addr add dev eth1 195.179.151.23/32. Danach sind beide Adressen unabhängig voneinander definiert und können direkt geschaltet werden. Welche Variante gewählt wird, ist primär egal. Der einzige Nebeneffekt ist dieser: Linux wird alle Netzwerkpakete an das Netz mit der Absenderadresse der Hauptnetzadresse des Netzwerkes absenden. Nur: mit dem älteren ifconfig sieht man eventuell nicht alle Adressen mehr, wenn die neueren Features des Linux Netzwerksystems verwendet werden. Das wichtigste mit IPRoute2 ist aber wohl wie der Name schon sagt das Routing. „ip route“ kann eine ganze Menge — so viel, dass die erweiterten Features durchaus der Grund für den Umstieg sein könnten. Unser einfaches Setup definieren wir wie folgt: ip route add 194.163.13.2/32 via 192.168.1.200 ip route add default via 195.179.151.1. Doch ein erweitertes Feature möchten wir noch anschauen: Source NAT. Nehmen wir an, einer der anderen Chat-Server im Internet, 212.236.30.176, redet nur mit unserer Chat-Adresse, 195.179.151.23 und mit keiner anderen! Dazu definieren wir VOR der default-Route ganz einfach: ip route add nat 212.236.30.176 via 195.179.151.23. Traffic an 212.236.30.176 soll per NAT auf die Absenderadresse 195.179.151.23 umgesetzt werden, so dass der Rechner 212.236.30.176 als Kommunikationspartner „nur“ den 195.179.151.23 „sieht“ — perfekt. Für einen ersten Kontakt mit IPRoute2 sind die Beispiele oben sicherlich mehr als ausreichend. Näheres Kennen lernen ergibt sich meist durch Beispiele wie oben, am besten wenn man die eigene Netzkonfiguration einmal mit IPRoute2 nachbaut.
konventionelle Konfiguration
eth0: LAN, 192.168.1.12/24
eth1: Internet, 95.179.151.15/24
eth1:chat nternet,195.179.151.23/24
ifconfig eth0 192.168.1.12/24 up
ifconfig eth1 195.179.151.15/24 up
ifconfig eth1:chat 195.179.151.23/24 up
route add 194.163.13.2/32 gw 192.168.1.200
route add default gw 195.179.151.1
ppw
« MS Excel: Zeitangaben summieren · IP Route 2 Tools - Netzwerk neu unter Linux
· Widerrufsrecht für Verbraucher bei eBay-Auktionen »