routing(4) routing(4)
NAME
routing - System-Unterstützung für Paket-Routing
BESCHREIBUNG
Das Netz ermöglicht ein Paket-Routing. Die Verwaltung der Routing-
Tabellen kann durch Anwenderprozesse vorgenommen werden.
Eine "Routing-Tabelle" enthält einen Eintrag für jeden Weg zu einem
bestimmten Netzwerk oder Rechner. Die Routing-Tabelle wurde zur Unter-
stützung des Routing für das Internet-Protokoll (IP) entworfen. Seine
Implementierung ist jedoch protokollunabhängig und kann deshalb andere
Protokolle ebenfalls bedienen. Anwenderprogramme können Einträge in
der Routing-Tabelle mit den zwei ioctl(2)-Befehlen SIOCADDRT und SIOC-
DELRT einfügen bzw. löschen. Eine Veränderung der Routing-Tabelle dür-
fen nur privilegierte Benutzer vornehmen.
Ein Eintrag in der Routing-Tabelle hat die folgende Form, wie in
/usr/include/net/route.h definiert:
struct rtentry {
ulong rthash; /* Hash-Schlüssel */
struct sockaddr rtdst; /* Ziel */
struct sockaddr rtgateway; /* Gateway */
short rtflags; /* aktiviert/deaktiviert, Rechner/Netz */
short rtrefcnt; /* Anzahl Verweise */
ulong rtuse; /* Anzahl weitergereichter
zeichenorientierter Pakete */
#ifdef STRNET
struct ipprovider *rtprov; /* Zeiger auf Provider-Strukturen */
#else
struct ifnet *rtifp; /* Schnittstelle benutzen */
#endif /* STRNET */
ulong rtsubnetmask; /* Subnetzmaske */
};
Wobei rtflags definiert ist durch:
#define RTFUP 0x1 /* Route-Eintrag benutzbar */
#define RTFGATEWAY 0x2 /* Ziel ist ein Gateway */
#define RTFHOST 0x4 /* Rechner-Eintrag (sonst Netz) */
#define RTFSTATIC 0x800 /* Route als statisch kennzeichnen */
#define RTFNOCHECKSUM 0x1000 /* Keine Berechnung von UDP-Prüfsummen */
#define RTFSUBNETMASK 0x2000 /* Subnetzmaske wird verwendet */
Anwendungen, die alte rtentry-Strukturen verwenden (d. h. ohne das
rtsubnetmask-Feld), arbeiten weiterhin und müssen nicht neu übersetzt
werden.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
routing(4) routing(4)
Es gibt drei Arten von Einträgen in der Routing-Tabelle: Für einen
bestimmten Rechner, für alle Rechner auf einem bestimmten Netzwerk
(ein Wildcard-Pfad) und für alle weiteren Ziele, die nicht mit Einträ-
gen der ersten zwei Arten erreicht werden können. Für jede Netzwerk-
schnittstelle wird ein Eintrag in eine Routing-Tabelle erstellt, wenn
sie initialisiert wird. Normalerweise spezifiziert die Schnittstelle
den Weg, der einen direkten Anschluß zum Ziel-Rechner oder Netzwerk
angibt. Die Transportebene einer Protokoll-Familie verlangt gewöhnlich
bei einem direkten Weg, daß das Paket an denselben Rechner, der darin
angegeben ist, geschickt werden soll. Ist das nicht der Fall, wird die
Schnittstelle aufgefordert, das Paket an eine andere Einheit als den
ursprünglichen Empfänger zu schicken (das heißt, das Paket wird wei-
tergeleitet).
Der Benutzer kann eine Subnetzmaske, die sich von der Netzmaske des
Netzwerk Interface unterscheidet, angeben. Damit diese Subnetzmaske
verwendet wird, muß in rtflags die Marke RTFSUBNETMASK gesetzt wer-
den; ansonsten wird die Netzmaske der Netzwerk-Schnittstelle verwen-
det.
Routen, die über das route(1M)-Kommando angelegt werden, werden als
statische Routen gekennzeichnet (d.h. die RTFSTATIC-Marke wird
gesetzt). Damit werden solche Routen nicht von Routing-Dämonen ent-
fernt.
Einträge in Routing-Tabellen, die durch einen Benutzerprozeß vorgenom-
men werden, dürfen die Felder rthash, rtrefcnt, rtuse und rtprov
nicht setzen; diese werden durch die Routing-Routinen ausgefüllt. Wird
ein Weg gerade benutzt, wenn er gelöscht wird (rtrefcnt ist ungleich
Null), werden alle damit zusammenhängenden Ressourcen so lange nicht
freigegeben, bis alle Verweise darauf entfernt sind.
Benutzer-Prozesse lesen die Routing-Tabellen über /dev/kmem.
Das Feld rtuse enthält die Anzahl der Pakete, die mit Hilfe dieses
Route-Eintrags gesendet wurden.
Ein Wildcard-Routing-Eintrag kann vorgenommen werden, indem man keinen
Wert für die Zieladresse angibt. Wildcard-Strecken werden verwendet,
um alle Pakete, deren Ziel nicht explizit über Rechner- oder
Netzwerk-Route-Einträge gegeben ist, an einen Standard-Gateway zu
schicken. Die Kombination von Wildcard-Pfaden und Routing-Umlenkungen
stellt einen einfachen Mechanismus für die Regelung des Routing-
Verkehrs zur Verfügung.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
routing(4) routing(4)
DIAGNOSE
EEXIST Das Verdoppeln eines bestehenden Eintrags wurde angefor-
dert.
ESRCH Das Löschen eines nicht bestehenden Eintrags wurde angefor-
dert.
ENOBUFS Die Ressourcen reichen nicht aus, um einen neuen Weg zu
installieren.
DATEIEN
/dev/kmem
SIEHE AUCH
route(1M), routed(1M), ioctl(2).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98