Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
ROUTED(8)		FreeBSD	System Manager's Manual		     ROUTED(8)

     routed, rdisc -- network RIP and router discovery routing daemon

     routed [-sqdghmpAtv] [-T tracefile] [-F net[/mask[,metric]]] [-P parms]

     Routed is a daemon	invoked	at boot	time to	manage the network routing
     tables.  It uses Routing Information Protocol, RIPv1 (RFC 1058), RIPv2
     (RFC 1723), and Internet Router Discovery Protocol	(RFC 1256) to maintain
     the kernel	routing	table.	The RIPv1 protocol is based on the reference
     4.3BSD daemon.

     It	listens	on the udp(4) socket for the route(8) service (see
     services(5)) for Routing Information Protocol packets.  It	also sends and
     receives multicast	Router Discovery ICMP messages.	 If the	host is	a
     router, routed periodically supplies copies of its	routing	tables to any
     directly connected	hosts and networks.  It	also advertises	or solicits
     default routes using Router Discovery ICMP	messages.

     When started (or when a network interface is later	turned on), routed
     uses an AF_ROUTE address family facility to find those directly connected
     interfaces	configured into	the system and marked "up".  It	adds necessary
     routes for	the interfaces to the kernel routing table.  Soon after	being
     first started, and	provided there is at least one interface on which RIP
     has not been disabled, routed deletes all pre-existing non-static routes
     in	kernel table.  Static routes in	the kernel table are preserved and
     included in RIP responses if they have a valid RIP	metric (see route(8)).

     If	more than one interface	is present (not	counting the loopback inter-
     face), it is assumed that the host	should forward packets among the con-
     nected networks.  After transmitting a RIP	request	and Router Discovery
     Advertisements or Solicitations on	a new interface, the daemon enters a
     loop, listening for RIP request and response and Router Discovery 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 gen-
     erated contains a list of known routes, each marked with a	"hop count"
     metric (a count of	16 or greater is considered "infinite").  Advertised
     metrics reflect the metric	associated with	interface (see ifconfig(8)),
     so	setting	the metric on an interface is an effective way to steer	traf-

     Responses do not include routes with a first hop on the requesting	net-
     work to implement in part split-horizon.  Requests	from query programs
     such as rtquery(8)	are answered with the complete table.

     The routing table maintained by the daemon	includes space for several
     gateways for each destination to speed recovery from a failing router.
     RIP response packets received are used to update the routing tables pro-
     vided they	are from one of	the several currently recognized gateways or
     advertise a better	metric than at least one of the	existing gateways.

     When an update is applied,	routed records the change in its own tables
     and updates the kernel routing table if the best route to the destination
     changes.  The change in the kernel	routing	table is reflected in the next
     batch of response packets sent.  If the next response is not scheduled
     for a while, a flash update response containing only recently changed
     routes is sent.

     In	addition to processing incoming	packets, routed	also periodically
     checks the	routing	table entries.	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 until the route has been advertised with an infi-
     nite metric to insure the invalidation is propagated throughout the local
     internet.	This is	a form of poison reverse.

     Routes in the kernel table	that are added or changed as a result of ICMP
     Redirect messages are deleted after a while to minimize black-holes.
     When a TCP	connection suffers a timeout, the kernel tells routed, which
     deletes all redirected routes through the gateway involved, advances the
     age of all	RIP routes through the gateway to allow	an alternate to	be
     chosen, and advances of the age of	any relevant Router Discovery Protocol
     default routes.

     Hosts acting as internetwork routers gratuitously supply their routing
     tables every 30 seconds to	all directly connected hosts and networks.
     These RIP responses are sent to the broadcast address on nets that	sup-
     port broadcasting,	to the destination address on point-to-point links,
     and to the	router's own address on	other networks.	 If RIPv2 is enabled,
     multicast packets are sent	on interfaces that support multicasting.

     If	no response is received	on a remote interface, if there	are errors
     while sending responses, or if there are more errors than input or	output
     (see netstat(1)), then the	cable or some other part of the	interface is
     assumed to	be disconnected	or broken, and routes are adjusted appropri-

     The Internet Router Discovery Protocol is handled similarly.  When	the
     daemon is supplying RIP routes, it	also listens for Router	Discovery
     Solicitations and sends Advertisements.  When it is quiet and listening
     to	other RIP routers, it sends Solicitations and listens for Advertise-
     ments.  If	it receives a good Advertisement and it	is not multi-homed, it
     stops listening for broadcast or multicast	RIP responses.	It tracks sev-
     eral advertising routers to speed recovery	when the currently chosen
     router dies.  If all discovered routers disappear,	the daemon resumes
     listening to RIP responses.  It continues listening to RIP	while using
     Router Discovery if multi-homed to	ensure all interfaces are used.

     The Router	Discovery standard requires that advertisements	have a default
     "lifetime"	of 30 minutes.	That means should something happen, a client
     can be without a good route for 30	minutes.  It is	a good idea to reduce
     the default to 45 seconds using -P	rdisc_interval=45 on the command line
     or	rdisc_interval=45 in the /etc/gateways file.

     While using Router	Discovery (which happens by default when the system
     has a single network interface and	a Router Discover Advertisement	is
     received),	there is a single default route	and a variable number of redi-
     rected host routes	in the kernel table.  On a host	with more than one
     network interface,	this default route will	be via only one	of the inter-
     faces.  Thus, multi-homed hosts running with -q might need	no_rdisc
     described below.

     See the pm_rdisc facility described below to support "legacy" systems
     that can handle neither RIPv2 nor Router Discovery.

     By	default, neither Router	Discovery advertisements nor solicitations are
     sent over point to	point links (e.g. PPP).	 The netmask associated	with
     point-to-point links (such	as SLIP	or PPP,	with the IFF_POINTOPOINT flag)
     is	used by	routed to infer	the netmask used by the	remote system when
     RIPv1 is used.

     The following options are available:

     -s	     force routed to supply routing information.  This is the default
	     if	multiple network interfaces are	present	on which RIP or	Router
	     Discovery have not	been disabled, and if the kernel switch	ipfor-

     -q	     is	the opposite of	the -s option.	This is	the default when only
	     one interface is present.	With this explicit option, the daemon
	     is	always in "quiet-mode" for RIP and does	not supply routing
	     information to other computers.

     -d	     do	not run	in the background.  This option	is meant for interac-
	     tive use.

     -g	     used on internetwork routers to offer a route to the "default"
	     destination.  It is equivalent to -F 0/0,1	and is present mostly
	     for historical reasons.  A	better choice is -P pm_rdisc on	the
	     command line or pm_rdisc in the /etc/gateways file, since a
	     larger metric will	be used, reducing the spread of	the poten-
	     tially dangerous default route.  This is typically	used on	a
	     gateway to	the Internet, or on a gateway that uses	another	rout-
	     ing protocol whose	routes are not reported	to other local
	     routers.  Notice that because a metric of 1 is used, this feature
	     is	dangerous.  It is more commonly	accidentally used to create
	     chaos with	a routing loop than to solve problems.

     -h	     cause host	or point-to-point routes to not	be advertised, pro-
	     vided there is a network route going the same direction.  That is
	     a limited kind of aggregation.  This option is useful on gateways
	     to	Ethernets that have other gateway machines connected with
	     point-to-point links such as SLIP.

     -m	     cause the machine to advertise a host or point-to-point route to
	     its primary interface.  It	is useful on multi-homed machines such
	     as	NFS servers.  This option should not be	used except when the
	     cost of the host routes it	generates is justified by the popular-
	     ity of the	server.	 It is effective only when the machine is sup-
	     plying routing information, because there is more than one	inter-
	     face.  The	-m option overrides the	-q option to the limited
	     extent of advertising the host route.

     -A	     do	not ignore RIPv2 authentication	if we do not care about	RIPv2
	     authentication.  This option is required for conformance with RFC
	     1723.  However, it	makes no sense and breaks using	RIP as a dis-
	     covery protocol to	ignore all RIPv2 packets that carry authenti-
	     cation when this machine does not care about authentication.

     -t	     increase the debugging level, which causes	more information to be
	     logged on the tracefile specified with -T or standard out.	 The
	     debugging level can be increased or decreased with	the SIGUSR1 or
	     SIGUSR2 signals or	with the rtquery(8) command.

     -T	tracefile
	     increases the debugging level to at least 1 and causes debugging
	     information to be appended	to the trace file.  Note that because
	     of	security concerns, it is wisest	to not run routed routinely
	     with tracing directed to a	file.

     -v	     display and logs the version of daemon.

     -F	net[/mask][,metric]
	     minimize routes in	transmissions via interfaces with addresses
	     that match	net/mask, and synthesizes a default route to this
	     machine with the metric.  The intent is to	reduce RIP traffic on
	     slow, point-to-point links	such as	PPP links by replacing many
	     large UDP packets of RIP information with a single, small packet
	     containing	a "fake" default route.	 If metric is absent, a	value
	     of	14 is assumed to limit the spread of the "fake"	default	route.
	     This is a dangerous feature that when used	carelessly can cause
	     routing loops.  Notice also that more than	one interface can
	     match the specified network number	and mask.  See also -g.

     -P	parms
	     is	equivalent to adding the parameter line	parms to the
	     /etc/gateways file.

     Any other argument	supplied is interpreted	as the name of a file in which
     the actions of routed should be logged.  It is better to use -T instead
     of	appending the name of the trace	file to	the command.

     Routed also supports the notion of	"distant" passive or active gateways.
     When routed is started, it	reads the file /etc/gateways to	find such dis-
     tant gateways which may not be located using only information from	a
     routing socket, to	discover if some of the	local gateways are passive,
     and to obtain other parameters.  Gateways specified in this manner	should
     be	marked passive if they are not expected	to exchange routing informa-
     tion, while gateways marked active	should be willing to exchange RIP
     packets.  Routes through passive gateways are installed in	the kernel's
     routing tables once upon startup and are not included in transmitted RIP

     Distant active gateways are treated like network interfaces.  RIP
     responses are sent	to the distant active gateway.	If no responses	are
     received, the associated route is deleted from the	kernel table and RIP
     responses advertised via other interfaces.	 If the	distant	gateway
     resumes sending RIP responses, the	associated route is restored.

     Such gateways can be useful on media that do not support broadcasts or
     multicasts	but otherwise act like classic shared media like Ethernets
     such as some ATM networks.	 One can list all RIP routers reachable	on the
     HIPPI or ATM network in /etc/gateways with	a series of "host" lines.
     Note that it is usually desirable to use RIPv2 in such situations to
     avoid generating lists of inferred	host routes.

     Gateways marked external are also passive,	but are	not placed in the ker-
     nel routing table nor are they included in	routing	updates.  The function
     of	external entries is to indicate	that another routing process will
     install such a route if necessary,	and that other routes to that destina-
     tion should not be	installed by routed.  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 one of
     the following two formats or consist of parameters	described later.
     Blank lines and lines starting with '#' are comments.

     net Nname[/mask] gateway Gname metric value <passive | active | extern>

     host Hname	gateway	Gname metric value <passive | active | extern>

     Nname or Hname is the name	of the destination network or host.  It	may be
     a symbolic	network	name or	an Internet address specified in "dot" nota-
     tion (see inet(3)).  (If it is a name, then it must either	be defined in
     /etc/networks or /etc/hosts, or named(8), must have been started before

     Mask is an	optional number	between	1 and 32 indicating the	netmask	asso-
     ciated with Nname.

     Gname is the name or address of the gateway to which RIP responses	should
     be	forwarded.

     Value is the hop count to the destination host or network.

     Host hname	is equivalent to net nname/32.

     One of the	keywords passive, active or external must be present to	indi-
     cate whether the gateway should be	treated	as passive or active (as
     described above), or whether the gateway is external to the scope of the
     RIP protocol.

     As	can be seen when debugging is turned on	with -t, such lines create
     pseudo-interfaces.	 To set	parameters for remote or external interfaces,
     a line starting with if=alias(Hname), if=remote(Hname), etc. should be

     Lines that	start with neither "net" nor "host" must consist of one	or
     more of the following parameter settings, separated by commas or blanks:

	     indicates that the	other parameters on the	line apply to the
	     interface name ifname.

	     advertises	a route	to network nname with mask mask	and the	sup-
	     plied metric (default 1).	This is	useful for filling "holes" in
	     CIDR allocations.	This parameter must appear by itself on	a
	     line.  The	network	number must specify a full, 32-bit value, as
	     in instead of 192.0.2.

	     Do	not use	this feature unless necessary.	It is dangerous.

	     specifies that netmask of the network of which nname/mask1	is a
	     subnet should be mask2.  For example ripv1_mask=,27
	     marks as a subnet of instead of  It is better to turn on RIPv2 instead of using
	     this facility, for	example	with ripv2_out.

	     specifies a RIPv2 cleartext password that will be included	on all
	     RIPv2 responses sent, and checked on all RIPv2 responses
	     received.	Any blanks, tab	characters, commas, or '#', '|', or
	     NULL characters in	the password must be escaped with a backslash
	     (\).  The common escape sequences \n, \r, \t, \b, and \xxx	have
	     their usual meanings.  The	KeyID must be unique but is ignored
	     for cleartext passwords.  If present, start and stop are time-
	     stamps in the form	year/month/day@hour:minute.  They specify when
	     the password is valid.  The valid password	with the most future
	     is	used on	output packets,	unless all passwords have expired, in
	     which case	the password that expired most recently	is used, or
	     unless no passwords are valid yet,	in which case no password is
	     output.  Incoming packets can carry any password that is valid,
	     will be valid within 24 hours, or that was	valid within 24	hours.
	     To	protect	the secrets, the passwd	settings are valid only	in the
	     /etc/gateways file	and only when that file	is readable only by
	     UID 0.

	     specifies a RIPv2 MD5 password.  Except that a KeyID is required,
	     this keyword is similar to	passwd.

     no_ag   turns off aggregation of subnets in RIPv1 and RIPv2 responses.

	     turns off aggregation of networks into supernets in RIPv2

	     marks the interface to not	be advertised in updates sent via
	     other interfaces, and turns off all RIP and router	discovery
	     through the interface.

     no_rip  disables all RIP processing on the	specified interface.  If no
	     interfaces	are allowed to process RIP packets, routed acts	purely
	     as	a router discovery daemon.

	     Note that turning off RIP without explicitly turning on router
	     discovery advertisements with rdisc_adv or	-s causes routed to
	     act as a client router discovery daemon, not advertising.

	     causes RIPv2 packets to be	broadcast instead of multicast.

	     causes RIPv1 received responses to	be ignored.

	     causes RIPv2 received responses to	be ignored.

	     turns on RIPv2 output and causes RIPv2 advertisements to be mul-
	     ticast when possible.

     ripv2   is	equivalent to no_ripv1_in and no_ripv1_out.  This enables

	     disables the Internet Router Discovery Protocol.

	     disables the transmission of Router Discovery Solicitations.

	     specifies that Router Discovery solicitations should be sent,
	     even on point-to-point links, which by default only listen	to
	     Router Discovery messages.

	     disables the transmission of Router Discovery Advertisements.

	     specifies that Router Discovery Advertisements should be sent,
	     even on point-to-point links, which by default only listen	to
	     Router Discovery messages.

	     specifies that Router Discovery packets should be broadcast
	     instead of	multicast.

	     sets the preference in Router Discovery Advertisements to the
	     optionally	signed integer N.  The default preference is 0.
	     Default routes with smaller or more negative preferences are pre-
	     ferred by clients.

	     sets the nominal interval with which Router Discovery Advertise-
	     ments are transmitted to N	seconds	and their lifetime to 3*N.

	     has an identical effect to	-F net[/mask][=metric] with the	net-
	     work and mask coming from the specified interface.

	     is	similar	to fake_default.  When RIPv2 routes are	multicast, so
	     that RIPv1	listeners cannot receive them, this feature causes a
	     RIPv1 default route to be broadcast to RIPv1 listeners.  Unless
	     modified with fake_default, the default route is broadcast	with a
	     metric of 14.  That serves	as a "poor man's router	discovery"

	     causes RIP	packets	from that router and other routers named in
	     other trust_gateway keywords to be	accepted, and packets from
	     other routers to be ignored.  If networks are specified, then
	     routes to other networks will be ignored from that	router.

	     causes RIP	to allow ICMP Redirect messages	when the system	is
	     acting as a router	and forwarding packets.	 Otherwise, ICMP Redi-
	     rect messages are overridden.

     /etc/gateways  for	distant	gateways

     icmp(4), udp(4), rtquery(8)

     Internet Transport	Protocols, XSIS	028112,	Xerox System Integration

     It	does not always	detect unidirectional failures in network interfaces,
     for example, when the output side fails.

     The routed	command	appeared in 4.2BSD.

FreeBSD	11.1			 June 1, 1996			  FreeBSD 11.1


Want to link to this manual page? Use this URL:

home | help