RFC 1868 EXPERIMENTAL ARP · LINK LAYER · EXPERIMENTAL

ARP Extension - UNARP

A way for a node, or a proxy ARP server, to tell the LAN that an address mapping is no longer valid.

On rfc-editor.org ↗
PUBLISHED
November 1995
AUTHORS
G. Malkin
STREAM
Legacy
PACKET SIZE
16 bytes, not including MAC header
OPCODE
2 (Reply)
HARDWARE ADDRESS LENGTH
0
TARGET PROTOCOL ADDRESS
255.255.255.255
DOI
10.17487/RFC1868

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                          G. Malkin
Request For Comments: 1868                                Xylogics, Inc.
Category: Experimental                                     November 1995


                         ARP Extension - UNARP

Status of this Memo

   This memo defines an Experimental Protocol for the Internet
   community.  This memo does not specify an Internet standard of any
   kind.  Discussion and suggestions for improvement are requested.
   Distribution of this memo is unlimited.

Abstract

   The Address Resolution Protocol allows an IP node to determine the
   hardware (datalink) address of a neighboring node on a broadcast
   network.  The protocol depends on timers to age away old ARP entries.
   This document specifies a trivial modification to the ARP mechanism,
   not the packet format, which allows a node to announce that it is
   leaving the network and that all other nodes should modify their ARP
   tables accordingly.

Acknowledgements

   Thanks to James Carlson/Xylogics for reviewing this document and
   proposing the backwards compatibility mechanism.

1. Introduction

   The primary purpose of the Address Resolution Protocol, as defined in
   [1], is to determine a node's hardware address based on its network
   address (protocol address in ARPspeak).  The ARP protocol
   specifically states that nodes should not periodically advertise
   their existence for two reasons: first, this would generate a lot of
   network traffic and table maintenance overhead; second, it is highly
   unlikely that all nodes will need to communicate to all other nodes.
   Since a node does not advertise its existence, neither does it
   advertise its imminent departure.  This is not a serious problem
   since most ARP implementations maintain timers to age away old
   entries, and departing nodes seldom depart gracefully in any case.

   Over time, an additional use has been found for ARP: Proxy ARP.
   While there are those who believe Proxy ARP is an evil thing, it does
   serve a purpose; that is, it allows for communication in ways never
   considered in the original IP architecture.  For example, allows
   dial-in hosts to connect to a network without consuming a large
   amount of the IP address space (i.e., all of the hosts contain
   addresses on the same subnet, even though they are not directly
   attached to the physical network associated with that subnet address.
   It is this use of Proxy ARP which produces the problem addressed by
   this document.

2. The Problem

   Consider the following topology:

                    +--------+
                    | Host A |
                    +--------+
                        |
      ======================================== LAN
          |                             |
      +--------+                    +--------+
      |  CS1   |   comm. servers    |  CS2   |
      +--------+                    +--------+
        |    |                        |    |
       +-+  +-+                      +-+  +-+
       | |  | |       modems         | |  | |
       +-+  +-+                      +-+  +-+

   Assume that all of the modems are on the same rotary; that is, when a
   remote host dials in, it may be assigned a modem on either of the
   communication servers.  Further assume that all of the remote hosts'
   IP addresses have the same subnet address as the servers and Host A,
   this in order to conserve address space.

   To begin, a remote host dials into CS1 and attempts to communicate
   with Host A.  Host A will assume, based on the subnet mask, that the
   remote host is actually attached to the LAN and will issue an ARP
   Request to determine its hardware address.  Naturally, the remote
   host will not hear this request.  CS1, knowing this, will respond in
   the remote host's place with its own hardware address.  Host A, on
   receiving the ARP Reply, will then communicate with the remote host,
   transparently through CS1.  So far everything is just fine.

   Now, the remote host disconnects and, before Host A can age its ARP
   cache, reconnects through CS2.  Herein lies the problem.  Whenever
   Host A attempts to send a packet to the remote host, it will send it
   to CS1 because it cannot know that its ARP cache entry is invalid.
   If, when the remote host disconnects, the server to which it was
   attached could inform other nodes on the LAN that the protocol
   address/hardware address mapping was no longer valid, the problem
   would not occur.

3. The Solution

   When a server, as described above, disconnects from a remote host for
   which it has responded to a Proxy ARP, it broadcasts an UNARP.  An
   UNARP is an unsolicited ARP Reply with the following field values:

      Hardware Address Space       as appropriate
      Protocol Address Space       0x800 (IP)
      Hardware Address Length      0 (see Backwards Compatibility)
      Protocol Address Length      4 (length of an IP address)
      Opcode                       2 (Reply)
      Source Hardware Address      Not Included
      Source Protocol Address      IP address of detaching host
      Target Hardware Address      Not Included
      Target Protocol Address      255.255.255.255 (IP broadcast)

      NOTE: this is a 16-byte packet (not including MAC header)

   On receiving an UNARP, a node deletes the ARP cache entry associated
   with the IP address.

   It is not strictly necessary that a server keep state information
   about whether or not it has actually sent a Proxy ARP Reply; it would
   be sufficient if a server always sends an UNARP when a remote host
   disconnects.

   Of course, there is no reason why a host which gracefully detaches
   from a LAN cannot also send an UNARP for itself.  This would be
   especially useful if, upon re-attaching, it might have a different
   hardware address.

4. Backwards Compatibility

   The modifications to support UNARP are trivial, so there is every
   expectation that it will be widely supported.  Of course, there will
   be a period of time during which nodes which support UNARP will
   coexist with nodes which do not support UNARP.  To prevent
   unenlightened nodes from adding spurious ARP cache entries with
   hardware addresses of zero, UNARP packets specify a hardware address
   length of zero.  This should be rejected by nodes which do not
   support UNARP.  As a consequence of this, the source and target
   hardware address fields do not exist in UNARP packets (as previously
   described).

   It is recommended that implementors include a configuration switch to
   disable UNARP in the event that some vendor's ARP implementation
   might take offense at the abbreviated UNARP packet format.

5. Security Considerations

   Security issues are not discussed in this memo.

References

   [1] Plummer, D., "An Ethernet Address Resolution Protocol", STD 37,
       RFC 826, MIT, November 1982.

Author's Address

   Gary Scott Malkin
   Xylogics, Inc.
   53 Third Avenue
   Burlington, MA  01803

   Phone:  (617) 272-8140
   EMail:  gmalkin@xylogics.com

AI ELI5

On this page
PROBLEMARP caches only age out old entries with timers, so after a dial-in host disconnects and reconnects through a different server, other hosts keep sending packets to the old one.
MECHANISMThe server broadcasts an UNARP, an unsolicited ARP Reply with a hardware address length of 0, and receivers delete the ARP cache entry for the named IP address.
THE CATCHThe packet format is not changed, but the abbreviated packet means nodes without UNARP support should reject it.

§1ARP and Proxy ARP

The Address Resolution Protocol (ARP) finds a node's hardware address from its protocol address. ARP says nodes should not periodically advertise their existence, because that would create network traffic and table maintenance and not every node needs to talk to every other. So a node does not announce its departure either, and implementations rely on timers to age away old entries.

A later use of ARP is Proxy ARP, where a server answers an ARP Request on behalf of a dial-in host. This lets dial-in hosts share the subnet address of the LAN and so avoids using up a large amount of IP address space.

Computers normally do not announce when they arrive or leave. They just forget old entries after a while.

§2The Problem

The memo's example has Host A on a LAN with two communication servers, CS1 and CS2, whose modems share a rotary. A remote host dials into CS1. Host A sends an ARP Request, CS1 replies with its own hardware address, and traffic flows through CS1.

Then the remote host disconnects and reconnects through CS2 before Host A ages out its ARP cache entry. Host A keeps sending packets to CS1, because it cannot know the entry is invalid.

Imagine a friend moves to a different desk, but you still send notes to the old desk because nobody told you.

§3The UNARP Packet

When a server disconnects from a remote host for which it sent a Proxy ARP reply, it broadcasts an UNARP: an unsolicited ARP Reply with the field values shown below. The note says this is a 16-byte packet, not including the MAC header.

A node receiving an UNARP deletes the ARP cache entry for that IP address. A server need not remember whether it sent a Proxy ARP reply and may always send an UNARP when a remote host disconnects. A host that detaches gracefully may send an UNARP for itself, which helps if it might return with a different hardware address.

It is a short shout to the whole room: forget this address, I am not here any more.

UNARP FIELD VALUES (RFC 1868)
  • as appropriateHardware Address Space — Depends on the link type.
  • 0x800Protocol Address Space — IP.
  • 0Hardware Address Length — Makes nodes without UNARP support reject the packet.
  • 4Protocol Address Length — Length of an IP address.
  • 2Opcode — Reply.
  • Not IncludedSource Hardware Address — Absent because the hardware address length is zero.
  • IP address of detaching hostSource Protocol Address — The address to remove from ARP caches.
  • Not IncludedTarget Hardware Address — Absent because the hardware address length is zero.
  • 255.255.255.255Target Protocol Address — IP broadcast.

§4Backwards Compatibility

Nodes with and without UNARP support will coexist for a time. To stop nodes without support from adding bogus cache entries with hardware addresses of zero, UNARP sets the hardware address length to zero, which such nodes should reject. As a result the source and target hardware address fields do not exist in the packet.

Implementors are advised to include a configuration switch to disable UNARP in case some vendor's ARP implementation takes offense at the abbreviated packet. The memo says security issues are not discussed.

The message is written so that older computers see it looks wrong and ignore it instead of being confused.

§5References