Within the ARP family, there are many different types. Within this article, we will look to explain ARP, RARP, Proxy ARP, and Gratuitous ARP.
ARP is an L2 protocol, used for discovering the MAC address (i.e physical address) of an IP address. This discovery is performed via an L2 broadcast, for example:
Sender/ARP Request: Hey Guys, does anyone know the MAC address for 192.168.1.100?
Receiver/ARP Reply: Yep that's me! My MAC address is 00:11:22:33:44:55.
Once the MAC address is learned it is placed within an ARP table (cache) for future use.
RARP (Reverse ARP) is a legacy protocol that has now been replaced by BOOTP and later by DHCP.
Its purpose was for diskless workstations (i.e no ability to store an IP address) to discover what their own IP address was - based on their MAC address.
At the point of boot, the workstation would send a request requesting its IP, a RARP server would then respond with the appropriate IP. For example:
RARP Request: What is my IP address (MAC address is within ethernet header)?
RARP Response: Your IP address is 192.168.1.11.
The main problem with RARP was that:
- The RARP server needed to be populated with the MAC to IP mappings.
- No additional data (DNS, NTP) could be sent other than the IP address.
- It only operates within a broadcast domain.
RARP was, therefore, superseded by BOOTP. However, BOOTP still required a static mapping to be defined (MAC to IP). DHCP was then built upon BOOTP with the ability to use a pool of addresses.
Proxy ARP is a technique used, typically by routers, to answer an ARP request intended for another machine. One use case for proxy ARP is NAT. This allows a router to answer on behalf on another machine so that traffic is sent to the router, once received the router performs the required network address translation.
ARP Request: Hey Guys, does anyone know the MAC address for 192.168.1.32?
ARP Reply (router): Yep that's me! My MAC address is 00:11:22:33:44:55.
A Gratuitous ARP is an ARP Response that was not prompted by an ARP Request. The Gratuitous ARP is sent as a broadcast, as a way for a node to announce or update its IP to MAC mapping to the entire network.
A typical use case for GARP is around network HA and where a VIP is used. At the point the active node fails and the backup node assumes the active role, it will send a GARP to the network informing all nodes of the VIPs mac address, i.e itself. Below shows an example of the packet.
Figure 1 - GARP packet.
"Gratuitous ARP – Definition and Use Cases – Practical Networking .net." 23 Jan. 2017, https://www.practicalnetworking.net/series/arp/gratuitous-arp/. Accessed 22 Nov. 2018. ↩︎
"Gratuitous ARP – Definition and Use Cases – Practical Networking .net." 23 Jan. 2017, https://www.practicalnetworking.net/series/arp/gratuitous-arp/. Accessed 29 Apr. 2019. ↩︎