# The Router Discovery Protocol

The Router Discovery Protocol is an IETF standard protocol used to inform hosts of the existence of routers. It is intended to be used instead of having hosts wiretap routing protocols such as RIP. It is used in place of, or in addition to statically configured default routes in hosts.

The protocol is split into to portions, the server portion which runs on routers, and the client portion that runs on hosts. GateD treats these much like two separate protocols, only one of which may be enabled at a time.

## The Router Discovery Server

The Router Discovery Server runs on routers and announces their existence to hosts. It does this by periodically multicasting or broadcasting a Router Advertisement to each interface on which it is enabled. These Router Advertisements contain a list of all the routers addresses on a given interface and their preference for use as a default router.

Initially these Router Advertisements occur every few seconds, then fall back to every few minutes. In addition, a host may send a Router Solicitation to which the router will respond with a unicast Router Advertisement (unless a multicast or broadcast advertisement is due momentarily).

Each Router Advertisement contains a Advertisement Lifetime field indicating for how long the advertised addresses are valid. This lifetime is configured such that another Router Advertisement will be sent before the lifetime has expired. A lifetime of zero is used to indicate that one or more addresses are no longer valid.

On systems supporting IP multicasting, the Router Advertisements are by default send to the all-hosts multicast address `224.0.0.1`. However, the use of broadcast may be specified. When Router Advertisements are being sent to the all-hosts multicast address, or an interface is configured for the limited-broadcast address `255.255.255.255`, all IP addresses configured on the physical interface are included in the Router Advertisement. When the Router advertisements are being sent to a net or subnet broadcast, only the address associated with that net or subnet is included.

### The Router Discovery Server Statement

    routerdiscovery server yes | no | on | off [ {
        traceoptions trace_options ;
        interface interface_list
         	[ minadvinterval time ]
         	[ maxadvinterval time ]
         	[ lifetime time ]
    	;
        address interface_list
            [ advertise ] | [ ignore ]
    	[ broadcast ] | [ multicast ]
    	[ ineligible ] | [ preference preference ]
    	;
    } ] ;

traceoptions trace_options
  Specifies the Router Discovery tracing options. (See Trace Statements and the Router Discovery specific tracing options below.)
interface interface_list
  Specifies the parameters that apply to physical interfaces. Note a slight difference in convention from the rest of GateD, interface specifies just physical interfaces (such as `le0`, `ef0` and `en1`), while address specifies protocol (in this case IP) addresses.

  Interface parameters are:

  maxadvinterval time
    The maximum time allowed between sending broadcast or multicast Router Advertisements from the interface. Must be no less than 4 and no more than 30:00 (30 minutes or 1800 seconds). The default is 10:00 (10 minutes or 600 seconds).
  minadvinterval time
    The minimum time allowed between sending unsolicited broadcast or multicast Router Advertisements from the interface. Must be no less than 3 seconds and no greater than maxadvinterval. The default is 0.75 * maxadvinterval.
  lifetime time
    The lifetime of addresses in a Router Advertisement. Must be no less than maxadvinterval and no greater than 2:30:00 (two hours, thirty minutes or 9000 seconds). The default is 3 * maxadvinterval.
address interface_list
  Specifies the parameters that apply to the specified set of addresses on this physical interfaces. Note a slight difference in convention from the rest of GateD, interface specifies just physical interfaces (such as `le0`, `ef0` and `en1`), while address specifies protocol (in this case IP) addresses.
  advertise
    Specifies that the specified address(es) should be included in Router Advertisements. This is the default.
  ignore
    Specifies that the specified address(es) should not be included in Router Advertisements.
  broadcast
    Specifies that the given address(es) should be included in a broadcast Router Advertisement because this system does not support IP multicasting, or some hosts on attached network do not support IP multicasting. It is possible to mix addresses on a physical interface such that some are included in a broadcast Router Advertisement and some are included in a multicast Router Advertisement. This is the default if the router does not support IP multicasting.
  multicast
    Specifies that the given address(es) should only be included in a multicast Router Advertisement. If the system does not support IP multicasting the address(es) will not be included. If the system supports IP multicasting, the default is to include the address(es) in a multicast Router Advertisement if the given interface supports IP multicasting, if not the address(es) will be included in a broadcast Router Advertisement.
  preference preference
    The preferability of the address(es) as a default router address, relative to other router addresses on the same subnet. A 32-bit, signed, twos-complement integer, with higher values meaning more preferable. Note that `hex 80000000` may only be specified as `ineligible`. The default is 0.
  ineligible
    Specifies that the given address(es) will be assigned a preference of (hex 80000000) which means that it is not eligible to be the default route for any hosts.

    This is useful when the address(es) should not be used as a default route, but are given as the next hop in an ICMP redirect. This allows the hosts to verify that the given addresses are up and available.

## The Router Discovery Client

A host listens for Router Advertisements via the all-hosts multicast address (`224.0.0.2`), If IP multicasting is available and enabled, or on the interface's broadcast address. When starting up, or when reconfigured, a host may send a few Router Solicitations to the all-routers multicast address, `224.0.0.2`, or the interface's broadcast address.

When a Router Advertisement with non-zero lifetime is received, the host installs a default route to each of the advertised addresses. If the preference ineligible, or the address is not on an attached interface, the route is marked unusable but retained. If the preference is usable, the metric is set as a function of the preference such that the route with the best preference is used. If more than one address with the same preference is received, the one with the lowest IP address will be used. These default routes are not exportable to other protocols.

When a Router Advertisement with a zero lifetime is received, the host deletes all routes with next-hop addresses learned from that router. In addition, any routers learned from ICMP redirects pointing to these addresses will be deleted. The same will happen when a Router Advertisement is not received to refresh these routes before the lifetime expires.

### The Router Discovery Client Statement

    routerdiscovery client yes | no | on | off [ {
        traceoptions trace_options ;
        preference preference ;
        interface interface_list
            [ enable ] | [ disable ]
    	[ broadcast ] | [ multicast ]
    	[ quiet ] | [ solicit ]
    	;
    } ] ;

traceoptions trace_options
  Specifies the tracing options for OSPF. (See Trace Statements and the OSPF specific tracing options below.)
preference preference ;
  Specifies the preference of all Router Discovery default routes. The default is 55.
interface interface_list
  Specifies the parameters that apply to physical interfaces. Note a slight difference in convention from the rest of GateD, interface specifies just physical interfaces (such as `le0`, `ef0` and `en1`). The Router Discovery Client has no parameters that apply only to interface addresses.
  enable
    Specifies that Router Discovery should be performed on the specified interface(s). This is the default.
  disable
    Specifies that Router Discovery should not be performed on the specified interface(s).
  broadcast
    Specifies that Router Solicitations should be broadcast on the specified interface(s). This is the default if IP multicast support is not available on this host or interface.
  multicast
    Specifies that Router Solicitations should be multicast on the specified interface(s). If IP multicast is not available on this host and interface, no solicitation will be performed. The default is to multicast Router Solicitations if the host and interface support it, otherwise Router Solicitations are broadcast.
  quiet
    Specifies that no Router Solicitations will be sent on this interface, even though Router Discovery will be performed.
  solicit
    Specifies that initial Router Solicitations will be sent on this interface. This is the default.

## Tracing options

The Router Discovery Client and Server support the `state` trace flag which traces various protocol occurrences.

state
  State transitions

The Router Discovery Client and Server do not directly support any packet tracing options, tracing of router discovery packets is enabled via the ICMP Statement.

Last updated 1994/09/07 01:45:47.