Skip to content

Rarp Header Format For Essay

This chapter is from the book 

Reverse Address Resolution Protocol (RARP)

RARP provides the opposite service to ARP in that it is used when only theethernet address is known and the IP address is needed.

RARP requests are most commonly sent by diskless clients and JumpStartclients during bootup. A diskless client contains no local storage andknows only its own ethernet address. A JumpStart client contains localstorage, but uses the ethernet address to locate the JumpStart boot server (tostart a remote installation of the Solaris operating environment). The clientuses the RARP protocol to broadcast this ethernet address and asks for thecorresponding IP address.

The following fragment of output from the command shows aclient that is booting. The client issues a RARP request to attempt and find itsIP address. The server that is listening for RARP requests responds. The itemsof interest are in bold:

...ETHER: ----- Ether Header -----ETHER:ETHER: Packet 5 arrived at 14:35:1.14ETHER: Packet size = 64 bytesETHER: Destination = ff:ff:ff:ff:ff:ff, (broadcast)ETHER: Source = 8:0:20:8e:48:de, SunETHER: Ethertype = 8035 (RARP)ETHER:ARP: ----- ARP/RARP Frame -----ARP:ARP: Hardware type = 1ARP: Protocol type = 0800 (IP)ARP: Length of hardware address = 6 bytesARP: Length of protocol address = 4 bytesARP: Opcode 3 (REVARP Request)ARP: Sender's hardware address = 8:0:20:8e:48:deARP: Sender's protocol address = 255.255.255.255, BROADCASTARP: Target hardware address = 8:0:20:8e:48:deARP: Target protocol address = ?ARP:ETHER: ----- Ether Header -----ETHER:ETHER: Packet 6 arrived at 14:35:1.18ETHER: Packet size = 42 bytesETHER: Destination = 8:0:20:8e:48:de, SunETHER: Source = 8:0:20:b3:41:1b, SunETHER: Ethertype = 8035 (RARP)ETHER:ARP: ----- ARP/RARP Frame -----ARP:ARP: Hardware type = 1ARP: Protocol type = 0800 (IP)ARP: Length of hardware address = 6 bytesARP: Length of protocol address = 4 bytesARP: Opcode 4 (REVARP Reply)ARP: Sender's hardware address = 8:0:20:b3:41:1bARP: Sender's protocol address = 192.168.0.28, ultra10ARP: Target hardware address = 8:0:20:8e:48:deARP: Target protocol address = 192.168.0.21, systemaARP:...

Notice that in the first packet, the type is and theethernet destination address is , which is theethernet broadcast address. Also, the isset to because the IP address is unknown at this point.

Also in the first packet, the receiving boot server knows which ethernetaddress to respond to because the sender's hardware address is the same asthe Target hardware address—8:0:20:8e:48:de.

The second packet shows the type is and the is now set to the IP address of the client(). This is the server responding to the client with its IPaddress.

The in.rarpd daemon

The daemon that listens on a server for incoming RARP requests is. The daemon is started at boot time by the script. The script starts the daemon only if thedirectory exists.

CAUTION

The in.rarpd daemon is started by the /etc/rc3.d/S16boot.serverscript. Prior to Solaris 9, in.rarpd was started by a different script,namely, /etc/rc3.d/S15nfs.server. Make sure you are not tricked by thisif it appears in a question on the exam.

When an incoming RARP request is received from a client, the server processrefers to two files to satisfy the request. The first is ,which contains the ethernet address and the corresponding hostname. The secondfile is , which contains the hostname and thecorresponding IP address. Because it references both of these files, is capable of resolving the IP address from the ethernetaddress provided by the client. It is the IP address that is returned to theclient.

CAUTION

The file /etc/hosts is a symbolic link to /etc/inet/hosts. Thelink has been retained for compatibility with Berkeley Software Distribution(BSD) versions of Unix. You should be aware that this link exists.

If you encounter problems with a client that is failing to locate its IPaddress, you can use the command to monitor RARP packets and youcan also run with the option to obtain additionaldebug messages. The following output from running , showsthe messages that are displayed when the server does not know the ethernetaddress:

/usr/sbin/in.rarpd:[1] device hme0 ethernetaddress 8:0:20:b3:41:53in.rarpd:[1] device hme0 address 192.168.0.28in.rarpd:[1] device hme0 subnet mask 255.255.255.0in.rarpd:[3] starting rarp service on device hme0 address 8:0:20:b3:41:1bin.rarpd:[3] RARP_REQUEST for 8:0:20:8e:48:dein.rarpd:[3] could not map hardware address to IP addressin.rarpd:[3] RARP_REQUEST for 8:0:20:8e:48:dein.rarpd:[3] could not map hardware address to IP addressin.rarpd:[3] RARP_REQUEST for 8:0:20:8e:48:dein.rarpd:[3] could not map hardware address to IP address

This code shows what happens on the server. The client, however, receives adifferent message—the following is displayed repeatedly because it is notreceiving a response from the server:

Timeout waiting for ARP/RARP packet

The error is normally due to one of the following:

  • The ethernet address for the client has been entered incorrectly in.

  • The ethernet address entry for the client does not exist in.

  • The IP address or hostname entry for the client has been enteredincorrectly in .

  • The IP address or hostname entry for the client does not exist in.

  • The daemon is not running on the server.

You can also gain useful information from the debug option of because it can be used to eliminate some of the potentialcauses of problems. The following output shows the messages that are displayedwhen a JumpStart client successfully obtains its IP address:

ultra10# in.rarpd -din.rarpd:[1] device hme0 ethernetaddress 8:0:20:b3:41:1bin.rarpd:[1] device hme0 address 192.168.0.28in.rarpd:[1] device hme0 subnet mask 255.255.255.0in.rarpd:[3] starting rarp service on device hme0 address 8:0:20:b3:41:1bin.rarpd:[3] RARP_REQUEST for 8:0:20:8e:48:dein.rarpd:[3] trying physical netnum 192.168.0.0 mask ffffff00in.rarpd:[3] good lookup, maps to 192.168.0.21in.rarpd:[3] immediate reply sentin.rarpd:[3] RARP_REQUEST for 8:0:20:8e:48:dein.rarpd:[3] trying physical netnum 192.168.0.0 mask ffffff00in.rarpd:[3] good lookup, maps to 192.168.0.21in.rarpd:[3] immediate reply sent

The previous code shows that a RARP request has been received () and executes a successful search for theethernet address (). It then returnsthe requested information (the IP address) to the client ().

RARP, Reverse Address Resolution Protocol


Description:

The RARP protocol is used to translate hardware interface addresses to protocol addresses.

ARP provides a complementary translation from a protocol address to a hardware interface address.


RARP packet:

0001020304050607080910111213141516171819202122232425262728293031
Hardware typeProtocol type
Hardware address lengthProtocol address lengthOpcode
Source hardware address :::
Source protocol address :::
Destination hardware address :::
Destination protocol address :::

Hardware type. 16 bits.

TypeDescription
1Ethernet.
2Experimental Ethernet.
3Amateur Radio AX.25.
4Proteon ProNET Token Ring.
5Chaos.
6IEEE 802.
7ARCNET.
8Hyperchannel.
9Lanstar.
10Autonet Short Address.
11LocalTalk.
12LocalNet (IBM PCNet or SYTEK LocalNET).
13Ultra link.
14SMDS.
15Frame Relay.
16ATM, Asynchronous Transmission Mode.
17HDLC.
18Fibre Channel.
19ATM, Asynchronous Transmission Mode.
20Serial Line.
21ATM, Asynchronous Transmission Mode.
22MIL-STD-188-220.
23Metricom.
24IEEE 1394.1995.
25MAPOS.
26Twinaxial.
27EUI-64.
28HIPARP.

Protocol type. 16 bits.

ProtocolDescription
0x800IP.

Hardware address length. 8 bits.
Length of the hardware address in bytes.

Protocol address length. 8 bits.
Length of the protocol address in bytes.

Opcode. 8 bits.

OpcodeDescriptionReferences
3Request Reverse.RFC 903
4Reply Reverse.RFC 903

Source hardware address. Variable length.

Source protocol address. Variable length.

Destination hardware address. Variable length.

Destination protocol address. Variable length.


Glossary:


RFCs:

[RFC 903] A Reverse Address Resolution Protocol.


Publications:


Obsolete RFCs: