10.2;routed (route daemon), revision 2.0, 89/05/18
route (route daemon) -network routing daemon
usage: routed [-g] [-s] [-q] [-t] [-n] [-f] [-h] [logfile]
DESCRIPTION
The routed daemon is invoked at boot time to manage the network routing
tables. The routing daemon uses a variant of the Xerox NS Routing
Information Protocol in maintaining up to date kernel routing table
entries. It uses a generalized protocol capable of use with multiple
address types, but is currently used only for Internet routing within a
cluster of networks.
In normal operation routed listens on the udp socket for the route
service (see services) for routing information packets. If the host is
an internetwork router, it periodically supplies copies of its routing
tables to any directly connected hosts and networks.
When routed is started, it uses the SIOCGIFCONF ioctl to find those
directly connected interfaces configured into the system and marked "up"
(the software loopback interface is ignored). If multiple interfaces are
present, it is assumed that the host will forward packets between
networks. routed then transmits a request packet on each interface
(using a broadcast packet if the interface supports it) and enters a
loop, listening for request and response packets from other hosts.
When a request packet is received, routed formulates a reply based on the
information maintained in its internal tables. The response packet
generated contains a list of known routes, each marked with a "hop count"
metric (a count of 16, or greater, is considered "infinite"). The
metric associated with each route returned provides a metric relative to
the sender.
Response packets received by routed are used to update the routing tables
if one of the following conditions is satisfied:
1) No routing table entry exists for the destination network or host,
and the metric indicates the destination is "reachable" (i.e. the
"hop count" is not infinite).
2) The source host of the packet is the same as the router in the
existing routing table entry. That is, updated information is being
received from the very internetwork router through which packets for
the destination are being routed.
3) The existing entry in the routing table has not been updated for
some time (defined to be 90 seconds) and the route is at least as
cost effective as the current route.
4) The new route describes a shorter route to the destination than the
one currently stored in the routing tables; to decide this, the
metric of the new route is compared against the one stored in the
table.
When an update is applied, routed records the change in its internal
tables. The change is reflected in the next response packet sent.
In addition to processing incoming packets, routed also checks the
routing table entries periodically. If an entry has not been updated for
3 minutes, the entry's metric is set to infinity and marked for deletion.
Deletions are delayed an additional 60 seconds to ensure that the
invalidation is propagated throughout the local internet.
Hosts acting as internetwork routers gratuitously supply their routing
tables every 30 seconds to all directly connected hosts and networks.
The response is sent to the broadcast address on nets capable of that
function, to the destination address on point-to-point links, and to the
router's own address on other networks. The normal routing tables are
bypassed when sending gratuitous responses. The reception of responses
on each network is used to determine that the network and interface are
functioning correctly. If no response is received on an interface,
another route may be chosen to route around the interface, or the route
may be dropped if no alternative is available.
OPTIONS
routed supports several options:
-g This flag is used on internetwork routers to offer a route to
the "default" destination. This option is typically used on a
gateway to the Internet, or on a gateway that uses another
routing protocol whose routes are not reported to other local
routers.
-s Forces routed to supply routing information whether it is
acting as an internetwork router or not. This is the default
if multiple network interfaces are present, or if a point-to-
point link is in use.
-q This option is the opposite of the -s option. With this option,
a host runs the Routing Information Protocol. It listens for
broadcast updates but does not broadcast. The -q option is
recommended for all non-gateway hosts.
-t If the -t option is specified, all packets sent or received are
printed on the standard output. In addition, routed will not
divorce itself from the controlling terminal, so that
interrupts from the keyboard will kill the process.
-d Not supported by Domain/OS Aegis.
Domain/OS Aegis EXTENSIONS
-n Directs routed not to install changes into the local routing
table. However, the routed process continues to receive
broadcasts from other routed processes. The -n option is used
for debugging purposes.
-f Directs routed at startup to "flush" (purge) all routes from
the local routing table, except routes added manually with
/etc/route.
-h Exit, if not supplier, when routing table is stable. Use this
switch on hosts only, not on gateways.
Any other argument supplied is interpreted as the name of the file in
which routed's actions should be logged. This log contains information
about any changes to the routing tables and, if not tracing all packets,
a history of recent messages sent and received which are related to the
changed route.
In addition to the facilities described above, routed supports the notion
of distant passive and active gateways. When routed is started up, it
reads the file /etc/gateways to find gateways that may not be located
using only information from the SIOGIFCONF ioctl. Gateways specified in
this manner should be marked passive if they are not expected to exchange
routing information, while gateways marked active should be willing to
exchange routing information (that is, they should have a routed process
running on the machine).
Passive gateways are maintained in the routing tables forever, and
information regarding their existence is included in any routing
information transmitted. Active gateways are treated equally to network
interfaces. Routing information is distributed to the gateway and if no
routing information is received for a period of the time, the associated
route is deleted. External gateways are also passive, but they are not
placed in the routing table nor are they included in routing updates The
function of external entries is to inform routed that another routing
process will install such a route, and that alternate routes to that
destination should not be installed. Such entries are only required when
both routers may learn of routes to the same destination.
The /etc/gateways file is comprised of a series of lines, each in the
following format:
< net | host > name1 gateway name2 metric value < passive | active | external >
The net or host keyword indicates if the route is to a network or
specific host.
Name1 The name of the destination network or host. This may be a
symbolic name located in /etc/networks or /etc/hosts (or, if
started after named, known to the name server), or an Internet
address specified in "dot" notation; see inet.
Name2 The name or address of the gateway to which messages should be
forwarded.
Value A metric indicating the hop count to the destination host or
network.
One of the keywords passive, active or external indicates if the gateway
should be treated as passive or active (as described above), or whether
the gateway is external to the scope of the routed protocol.
Internetwork routers that are directly attached to the ARPANET or Milnet
should use the Exterior Gateway Protocol (EGP) to gather routing
information rather then using a static routing table of passive gateways.
EGP is required in order to provide routes for local networks to the rest
of the Internet system. Sites needing assistance with such
configurations should contact the Computer Systems Research Group at
Berkeley.
For a node to run routed, it must be correctly configured to run TCP/IP.
See Configuring and Managing TCP/IP for more information about routed.
NOTES
The routed daemon is normally started on a node at boot time, from the
/etc/rc.local file. We recommend that you run routed on each gateway to
dynamically update the gateway's routing tables. You can also run routed
on hosts so they receive the latest routing information.
FILES
/etc/gateways for distant gateways
BUGS
The routing tables for tcpd may not correspond to those of routed when
redirects change or add routes. The only remedy for this is to place the
routing process in the kernel.
routed does not incorporate other routing protocols, such as Xerox NS and
EGP. Using separate processes for each requires configuration options to
avoid redundant or competing routes.
routed does not currently listen to intelligent interfaces, such as an
IMP, and to error protocols, such as ICMP, to gather more information.
It does not always detect unidirectional failures in network interfaces
(e.g., when the output side fails).
routed does not detect an inactive physical interface unless the
interface is specifically configured "down" with the /etc/ifconfig
command.
SEE ALSO
udp, htable, route, rc;
Configuring and Managing TCP/IP;
"Internet Transport Protocols", XSIS 028112, Xerox System Integration
Standard.