Routing

Willemers Informatik-Ecke

Aus den verschiedensten Gründen werden Netzwerke in mehrere kleinere Netzwerke aufgesplittet. Aufgrund technischer Gegebenheiten kann es sinnvoll sein, weil beispielsweise unterschiedliche physikalische Netzträger verwendet werden, etwa Ethernet und Token-Ring. Aus geografischen Gründen ist es notwendig, wenn eine Filiale über Modem oder ISDN angekoppelt werden soll. Ein weiterer Grund kann das Ziel sein, die Netzlast in den einzelnen Netzen zu reduzieren.

Gateways verbinden Netzwerke

Jeder Host kann von jedem Host im gleichen Netzwerk über seine Internetadresse erreicht werden. Dagegen ist eine Internetadresse eines fremden Netzes oder Subnetzes nur dann erreichbar, wenn die Pakete weitervermittelt werden. Dazu dient ein Gateway.

Gateways

Ein Gateway ist ein Computer mit zwei Netzwerkanschlüssen, die jeweils an ein anderes Netz angeschlossen sind. Jede Schnittstelle hat eine eigene Internet-Nummer, die dem entsprechenden Netzwerk zugeordnet ist. Kommt ein Paket auf der einen Netzwerkkarte für das jeweils andere Netz an, weiß der Computer, dass er sie in das andere Netz einspeisen soll.

Statische Festlegung einer Route

Jeder Rechner verwaltet eine Routing-Tabelle, in der er ablegt, auf welchen Wegen er welche Netze oder sogar einzelne Rechner erreichen kann. Um den Weg zu einem Rechner in einem fremden Netz zu definieren, wird der Befehl route verwendet. Abhängig vom Ziel gibt es drei Varianten:

route add host Host gateway Gateway metric Metric
route add net Netz gateway Gateway metric Metric
route add default gateway Gateway metric Metric

Der erste Parameter ist das Ziel der Route, mit Gateway wird der weiterleitende Rechner angegeben und mit Metric wird die Priorität der Route angegeben. Dieser Parameter wird benötigt, wenn es mehrere Routen zu einem Ziel mit unterschiedlicher Geschwindigkeit gibt. Der schnellsten Route wird die höchste Priorität beispielsweise 1 vergeben. Fällt diese aus, kann dann auf die mit der niedrigeren Priorität 2 oder 3 ausgewichen werden. In Netzen ohne Ausfallleitungen wird hier normalerweise 1 angegeben.

Aufrufparameter von route

Leider sind die Aufrufparameter von route nicht ganz einheitlich. So kann teilweise statt gateway auch gw abgekürzt werden. Andere Inmplementationen brauchen die Schlüsselworte gateway, metric, net und host gar nicht, da sie sich aus der Reihenfolge bzw. aus der Art der Parameter von selbst ergeben. Der erste Parameter ist immer das Ziel. Ob das Ziel ein Host oder ein Netz ist, läßt sich direkt an der IP-Nummer ablesen. An zweiter Stelle steht immer das Gateway und der letzte Parameter ist immer die Metric.

route to host

Der Rechner 192.168.2.15 soll als Ausgangspunkt dienen, um die Einrichtung der Routingtabelle zu demonstrieren. Will man von dort eine Route auf den Rechner 192.168.3.32 gelegt werden, muss das Paket an das Gateway gesendet werden. Die vom Rechner aus erreichbare Adresse lautet 192.168.2.112. Der Befehl dazu lautet also:

route add host 192.168.3.32 gateway 192.168.2.112 metric 1

route to net

Normalerweise wird man nicht jeden einzelnen Rechner angeben, sondern mit einem Mal das gesamte Netz 192.168.3.0. Gateway und Metric bleiben gleich. Der Befehl lautet dann:

route add net 192.168.3.0 gateway 192.168.2.112 metric 1

default-Route

Schließlich kann man den Rechner anweisen, alle unbekannten Netzwerkadressen über ein bestimmtes Gateway hinauszuschleusen:

route add default gateway 192.168.2.212 metric 1

Der Eintrag default entspricht der IP-Nummer 0.0.0.0. Im Beispiel kann man dann eine default-Route setzen, wenn es zu anderen Netzen kein weiteres Gateway gibt. In Netzen mit Internetzugang werden normalerweise alle direkt erreichbaren Netze mit expliziten Routen erreicht und das Gateway zum Internet auf default gesetzt.

Netzmaske

Beim Anlegen einer Route kann auch die Netzmaske angegeben werden. Das ist erforderlich, wenn im lokalen Netz
Subnetze verwendet werden. Im Internet mit dem Einsatz von CIDR muss zu jeder Route die Netzmaske angegeben werden. Man gibt die Netzmaske durch einen zusätzlichen Parameter an, dem man das Schlüsselwort netmask voranstellt.

route add net 192.168.3.0 netmask 255.255.255.128 \
gateway 192.168.2.112 metric 1

In diesem Fall würden die Adressen 192.168.3.1 bis 126 über das Gateway 192.168.2.112 geleitet.

Routen entfernen

Einträge in der Routing-Tabelle können wieder gelöscht werden:

route delete net Zieladresse Gateway
route delete host Zieladresse Gateway

Der metric-Parameter wird nur beim dynamischen Routing verwendet, um eine Bewertung der Qualität der Strecke vorzunehmen. Bei statischem Routing ist der Parameter irrelevant.1)

Die aktuellen Routingtabellen kann man mit dem Befehl netstat und der Option -r angezeigt werden.

gaston> netstat -r
Kernel IP routing table
Destination    Gateway Genmask       Iface
192.168.109.0  *       255.255.255.0 eth0
loopback       *       255.0.0.0     lo

In der ersten Spalte stehen die Ziele, unter Gateway findet sich der Router, der aufgesucht wird, um das Ziel zu erreichen. Die Genmask beschreibt die Netzwerkmaske, die bei dem angegebenen Ziel vorausgesetzt wird und zu guter Letzt folgt das Interface, über das die Pakete abgesetzt werden.

Ein Beispiel für statisches Routen können Sie hier finden.

Subnetze

Subnetting ist nach außen unsichtbar

Anstatt für jedes Teilnetz eine eigene Netzkennung zu verwenden, kann man auch ein großes Netz in Unternetze zerteilen. Von außen ist diese Unterteilung nicht zu sehen und das Netz wird von fremden Routern als ein einheitliches Netz angesehen. Erst wenn Pakete ins Innere des Netzes gelangen, wird es durch die internen Router weitergeleitet.

Netzmaske

Um ein Netzwerk derart zu unterteilen, wird die Netzmaske verändert. Die Netzmaske gibt an, welcher Teil der IP-Nummer das Teilnetz bestimmt und welcher Teil der Nummer einen einzelnen Rechner. Die Maske enthält für jedes Bit, das zur Netzwerkadresse gehören soll, eine 1. Für die drei Klassen von Netzen sind folgende Netzmasken Standard:

Klasse ; hexadezimal ; dezimal
Class A 0xFF000000 255.0.0.0
Class B 0xFFFF0000 255.255.0.0
Class C 0xFFFFFF00 255.255.255.0

In der folgenden Tabelle werden drei IP-Nummern der verschiedenen Netzklasse anhand der Standardnetzmaske in Netz- und Hostanteil aufgegliedert.

Die Netzwerkmaske ist bitweise konfigurierbar. Und zwar kann der Anteil der Netzwerkkennung vergrößert werden. Wird eine Netzwerkmaske um ein Bit erhöht, wird damit das Netz in zwei Teilnetze zerlegt. Bei einem Class C Netz würde dann die Netzmaske 255.255.255.128 lauten. Die 128 mag etwas überraschen. Aber von dem rechten Byte wird das am weitesten links stehende Bit verwendet. Die Dualdarstellung von 128 ist 1000000. Damit werden alle Hostnummern, die größer als 128 sind zu dem einen Teilnetz und alle die kleiner sind, zu dem anderen Teilnetz.

Alternative Schreibweise

Da die Netzmaske immer so aufgebaut ist, dass in der Dualdarstellung von links beginnend nur Einsen und ab einer gewissen Grenze dann nur noch Nullen folgen, gibt es eine alternative Schreibweise, die hinter einem Schrägstrich nur angibt, wieviele Einsen die Netzmaske enthält. Für ein einfaches Class C Netzwerk sieht das so aus: 192.168.109.144/24, bei der obigen Netzmaske 255.255.255.128 käme noch ein Bit hinzu, also 192.168.109.144/25. Man spricht auch von der
CIDR Schreibweise.

Es gehen bei der Teilung in Subnetze auch IP-Nummern verloren, die nicht mehr verwendet werden können. Denn für beide Teilnetze gilt die Regel, dass Adressen, bei denen alle Hostbits 0 oder 1 sind, nicht für die Adressierung von Rechnern verwendet werden dürfen. Das wäre im Beispiel die Nummern 0, 127, 128 und 255.

In der folgenden Grafik ist eine Class B Adresse mit Subnetzmaske dargestellt. Die Standardnetzmaske ist bei Class B ja 255.255.0.0. In diesem Fall soll das erste Halbbyte der Hostkennung noch mit zur Netzadresse genommen werden. Von links beginnend haben die Bits den Wert 128, 64, 32 und 16. Die andere Hälfte des Bytes bleibt Null, da es nicht in die Netzmaske einfließen soll. Die Summe aus 128, 64, 32 und 16 ist 240. Das ist damit die Netzmaske des dritten Bytes.

Netzbelastung durch Subnetting reduzieren

Diese Aufteilung des Netzes bringt die Möglichkeit, die Netzbelastung zu reduzieren. Gehen wir von einer Softwarefirma aus, die das Class C Netz mit der Nummer 192.168.2.x hat. In dem einen Stockwerk sitzt die Verwaltung, die auf einer geteilten Platte in unregelmäßigen Abständen Dokumente abstellen und in der Kundendatei suchen. Im oberen Stockwerk sitzen die Programmierer, die Netzwerkprogramme schreiben und von Zeit zu Zeit Belastungstests machen. Immer wenn solche Tests anlaufen, kommt die Sekretärin nicht mehr an ihre Kundendaten heran, weil das Netz überlastet ist. Schafft sie es trotzdem, werden durch ihre zusätzlichen Zugriffe die Testergebnisse verfälscht.

Man teilt das Netz logisch durch die Netzmaske. Physisch werden die Kabel voneinander getrennt und durch ein Gateway verbunden, das zwei Netzwerkkarten besitzt. So kann ein Programmierer seine Dokumentation zur sprachlichen Kontrolle immer noch an die Sekretärin senden. Das Gateway wird die Pakete von dem einen Netz ins andere übertragen. Der restliche Netzverkehr bleibt im jeweiligen Teilnetz.

Konsistenz der Subnetzmaske

Die Netzaufteilung durch Subnetting ist nur für Rechner im Netz sichtbar, da deren Maske in dieser Form gesetzt ist. Es ist also wichtig, dass alle Rechner die gleiche Netzmaske bekommen. Für außenstehende Rechner erscheint das Netz homogen, da sie eine Subnetzmaske für ein fremdes Netz nicht kennen und so die Standardnetzmaske vermuten müssen. Unter CIDR sind die Netzmasken auch außerhalb des lokalen Netzes bekannt. Hier werden die Netzmasken von den Routern verwaltet und weitergegeben. Aber auch hier gilt, dass ein lokales Subnetting nicht unbedingt mit der nach außen bekannten Netzmaske übereinstimmen muss.

Dynamisches Routen

Insbesondere das Internet mit seinen vielen Teilnetzen und der ständigen Veränderung erfordert ein Routingverfahren, das sich dynamisch verändert. Für diese Zwecke gibt es diverse Protokolle, die nur dazu dienen, solche Veränderungen festzustellen und in den Routingtabellen zu aktualisieren. In einem LAN (Local Area Network), das nicht Bestandteil Internets ist, das nicht mehrere Ausfallrouten besitzt, ist der Einsatz dynamischer Routingprotokolle nicht sinnvoll.

routed und gated

Das dynamische Routen wird beispielsweise durch den routed, der das RIP (Routing Information Protocol) implementiert, realisiert. Der gated kann neben RIP auch das externe Routing EGP (Exterior Gateway Protocol) durchführen. Dynamisches Routen ist das Rückgrat des Internets. Da die Router im ständigen Austausch über die Qualität der Leitungen stehen, können defekte Leitungen auf Umwegen automatisch vermieden werden.

Das EGP informiert über die Erreichbarkeit autonomer Systeme. Ein autonomes System kann ein komplexes Netzwerk mit diversen internen Routern sein. Es muss nur nach außen abgeschlossen sein.2)

CIDR - Classless Inter-Domain Routing

Mit zunehmender Beliebtheit des Internets wurden die Flaschenhälse immer sichtbarer. So war die Idee, 32 Bit für die TCP/IP-Nummer zu verwenden, bei Ausbau des Netzes absehbar begrenzt. Zwar umfassen 4 Byte etwa 4 Milliarden Rechner und das war immerhin die damalige Anzahl der Weltbevölkerung, aber bei genauerem Hinsehen war die Zahl doch nicht so großzügig. So gehen bei jedem Netz zwei Adressen für die 0 und die Broadcastadresse verloren. Dazu kommt, dass eine Firma, die ein Class C Netzwerk betreibt, üblicherweise nicht alle 254 Adressen auch wirklich einsetzt.

RFC 1519

So wurde um 1993 das CIDR eingeführt.
3) Die Idee war, dass man dem Netz eine Netzmaske mitgab und erst durch die Netzwerkklasse bestimmt wird, wieviele Rechner in ein Teilnetz gehört. Wenn es nun noch möglich würde, die benachbarten IP-Nummern lokal zu bündeln, würde man sogar die Anzahl der Routingeinträge reduzieren können. CIDR war eigentlich als Übergangslösung bis zum Einsatz der neuen 128 Bit TCP/IP-Nummern dem IPv6 gedacht.

Die Änderungen durch die neue Norm konnte recht problemlos und schnell im Internet umgesetzt werden, da sie an sich nur die Routingtabellen betrifft. Und in den meisten Fällen müssen sie nur in den Routern gesetzt werden, da die Arbeitsplätze in den meisten Fällen ohnehin nur die Defaultroute zum Gateway verwenden. Da Router ihre Routingtabellen dynamisch austauschen, ist die Konsistenz leicht zu gewährleisten. CIDR war neben dem Einsatz von Masqerading die entscheidende Technik, um das Problem der ausgehenden IP-Nummern zu umgehen.

In lokalen Netzwerken ist der Einsatz von CIDR nicht besonders sinnvoll, da hier keine dynamischen Routingverwahren zur Verfügung stehen und damit die Netzmasken von Hand konsistent gehalten werden müssten. Dazu kommt, dass die Einträge für die Netzmasken dann nicht nur auf die Router beschränkt sind, sondern auch den einzelnen Arbeitsplätzen mitgegeben werden müssten.


1 vgl. Hunt, Craig: TCP/IP Network Administration. O'Reilly, Sebastopol, 1994. p 138. Aktuelle deutsche Version: Hunt, Craig: TCP/ IP. Netzwerk-Administration.
2 vgl. Hurt, Craig: TCP/IP Network Administration. 1994. pp. 142.
3 Nemeth, Evi / Snyder, Garth / Seebass, Scott / Hein, Trent R.: UNIX Systemverwaltung. Markt+Technik - Prentice Hall, 2001. S. 357-360.

Diese Seite basiert auf Inhalten aus dem Buch Arnold Willemer: Wie werde ich UNIX-Guru
Verlagsrechte bei galileo computing


Homepage (C) Copyright 2002 Arnold Willemer