Home > Articles

Configuring RIP and RDISC

  • Print
  • + Share This
Practice one of the Solaris 8 Certification exam objectives with expert Rafeeq Rehman's lesson on how configure RIP and RDISC.
This article is excerpted from Solaris 8 Training Guide (310-043): Network Administrator Certification, by Rafeeq Ur Rehman.
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.

  • If someone configures multiple network interfaces manually using ifconfig command.

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 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 ( 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




Runs the daemon in router mode.

-p <preference>

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


Accepts all routers ignoring preference. Normally in.rdisc accepts only routers with the highest preference.


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


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.


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

ETHER: ----- Ether Header -----ETHER: 
ETHER: Packet 24 arrived at 12:53:38.53
ETHER: Packet size = 66 bytes
ETHER: Destination = ff:ff:ff:ff:ff:ff, (broadcast)
ETHER: Source   = 8:0:20:9e:f0:50, Sun
ETHER: Ethertype = 0800 (IP)
IP:  ----- IP Header -----
IP:  Version = 4
IP:  Header length = 20 bytes
IP:  Type of service = 0x00
IP:     xxx. .... = 0 (precedence)
IP:     ...0 .... = normal delay
IP:     .... 0... = normal throughput
IP:     .... .0.. = normal reliability
IP:  Total length = 52 bytes
IP:  Identification = 47726
IP:  Flags = 0x4
IP:     .1.. .... = do not fragment
IP:     ..0. .... = last fragment
IP:  Fragment offset = 0 bytes
IP:  Time to live = 1 seconds/hops
IP:  Protocol = 17 (UDP)
IP:  Header checksum = f6d2
IP:  Source address =, fana-nt
IP:  Destination address =
IP:  No options
UDP: ----- UDP Header -----
UDP: Source port = 520
UDP: Destination port = 520 (RIP)
UDP: Length = 32 
UDP: Checksum = 6E79 
RIP: ----- Routing Information Protocol -----
RIP: Opcode = 2 (route response)
RIP: Version = 1
RIP: Address            Port  Metric
RIP:   0   1

About this Article

This article is excerpted from Solaris 8 Training Guide (310-043): Network Administrator Certification, by Rafeeq Ur Rehman (New Riders Publishing, 2001, ISBN: 1578702615). Refer to chapter 3 for more detailed coverage of the material found in this article.

  • + Share This
  • 🔖 Save To Your Account