From the author of

There are two commonly used dynamic routing methods available on Solaris to
fill up routing tables. These are the Router Discovery Protocol (RDISC)
and the Routing Information Protocol (RIP). RDISC is used to discover
available routers on the networks. RDISC is run either in host mode or in router
mode. If it is running in host mode, it only listens to router broadcasts. If it
is running in router mode, it broadcasts messages on the network. RDISC uses the
ICMP router discovery method. The in.rdisc daemon is used to support RDISC. RIP
uses in.routed daemon and is started at the boot time. It is used to exchange
routing information among hosts and routers. Both RIP and RDISC are standard
TCP/IP protocols.

How Does a Host Determine if it is a Router?

A host acts as a router if one of the following conditions is true:

There are multiple /etc/hostname.interface files present. It shows
that multiple network interfaces are configured. An example of this file is
/etc/hostname.hme0 which shows the presence of the network interface
hme0.

Configuring RDISC (in.rdisc)

The ICMP type field values 9 and 10 in the ICMP header part of the ICMP
packet are used for RDISC. Type 9 is used for a router advertisement while type
10 is used for router selection. The in.rdisc daemon uses ICMP router discovery
protocol and there are two modes of the daemon: The Host mode and the Router
mode. RDISC uses multicast addresses to fill out routing tables. These modes are
discussed in the following sections.

Running RDISC in Host Mode

When we start in.rdisc in host mode, in.rdisc listens to the ALL_HOSTS
multicast address. This address is 244.0.0.1 and routers advertise messages on
this address. At the start time, in.rdisc ignores all router advertisements
except for those routers that are present on one of the directly connected
networks. The higher preference routers are selected to enter default routing
entries in the routing table.

Sometimes in.rdisc can also send router solicitation messages on the
ALL_ROUTERS (224.0.0.2) multicast address to find available routers. The
in.rdisc gives up if a response is not received after three solicitation
messages.

Running RDISC in Router Mode

When started in router mode, in.rdisc starts listening to the ALL_ROUTERS
multicast address. It starts sending messages on the ALL_HOSTS multicast
address. Initially, it sends a number of advertisements in the first 30 seconds.
After that in.rdisc advertises routing every 10 minutes.

If it finds any router solicitation message, it sends routing information to
the requesting host.

The daemon is usually started through the /etc/rc2.d/S69inet script. Table
3.1 shows common command line options used with in.rdisc.

Table 3.1 Command line options used with in.rdisc

Option

Description

-r

Runs the daemon in router mode.

-p <preference>

Sets the preference number transmitted in solicitation messages. The default
is zero.

Sends three solicitation messages and if no response is received, it gives
up.

-f

Runs in.rdisc forever even if no response is received to the initial
solicitation messages.

-T <interval>

Sets the interval between consecutive advertisements. Default The default
interval is 600 seconds.

NOTE

On the router, you should also run RIP in addition to RDISC to be able to
exchange routing information among different routers. RDISC can't be used
as a general purpose routing protocol on the Internet.

Disabling RDISC

To stop RDISC broadcasts, you may wish to disable it on some hosts. The
easiest way to disable RDISC is to rename the /usr/sbin/in.rdisc file to a
different name and reboot the system. Don't delete the file, you may need
to enable RDISC again.

Configuring RIP (in.routed)

The in.routed daemon implements the Routing Information Protocol and is
started using the /etc/rc2.d/S69inet script. It listens to port number 520 for
routing information advertisements. It periodically exchanges routing tables
with directly connected routers. It uses hop counts to find an optimal route to
a destination. Hop count 16 and above are considered unreachable. This hop count
is also called infinity. When exchanging routing table information, the
daemon sends the hop count with each connected route. Depending upon information
received from the neighboring routers, it automatically updates its own routing
table. Updating the routing table is done if one of the following conditions is
true:

The received packet contains information about a new route and the hop
count is not infinity.

The update is received from the router through which packets are being
forwarded to the destination.

A new route is received while the previous route has not been updated for
90 seconds and the new route is as cost effective as the old one.

The new route describes a shorter path than the existing one.

If an entry in the routing table has not been updated for three minutes, it
is marked as infinity. Initially, the daemon checks the /etc/gateways file to
fill out entries in the routing table.

RIP Advertisement by a Solaris Machine

You can use the snoop command to display what type of information is
being advertised by RIP. Following is the output of the snoop v
command that shows one RIP packet with an advertisement route to network
192.168.2.0: