Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ routing(4) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

route(1M)

routed(1M)

ioctl(2)

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026