This RFC specifies an IAB standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "IAB Official Protocol Standards" for the standardization state and status of this protocol. Distribution of this memo is unlimited.
This memo describes additions to ARP that will allow a station to request a protocol address corresponding to a given hardware address. Specifically, this applies to Frame Relay stations that may have a Data Link Connection Identifier (DLCI), the Frame Relay equivalent of a hardware address, associated with an established Permanent Virtual Circuit (PVC), but do not know the protocol address of the station on the other side of this connection. It will also apply to other networks with similar circumstances.
This document will rely heavily on Frame Relay as an example of how the Inverse Address Resolution Protocol (InARP) can be useful. It is not, however, intended that InARP be used exclusively with Frame Relay. InARP may be used in any network that provides destination hardware addresses without indicating corresponding protocol
The motivation for the development of Inverse ARP is a result of the desire to make dynamic address resolution within Frame Relay both possible and efficient. Permanent virtual circuits (PVCs) and eventually switched virtual circuits (SVCs) are identified by a Data Link Connection Identifier (DLCI). These DLCIs define a single virtual connection through the wide area network (WAN) and are the Frame Relay equivalent to a hardware address. Periodically, through the exchange of signalling messages, a network may announce a new virtual circuit with its corresponding DLCI. Unfortunately, protocol addressing is not included in the announcement. The station receiving such an indication will learn of the new connection, but will not be able to address the other side. Without a new configuration or mechanism for discovering the protocol address of the other side, this new virtual circuit is unusable.
Other resolution methods were considered to solve the problems, but were rejected. Reverse ARP [4], for example, seemed like a good candidate, but the response to a request is the protocol address of the requesting station not the station receiving the request as we wanted. IP specific mechanisms were limiting since we wished to allow protocol address resolution of many protocols. For this reason, we expanded the ARP protocol.
Inverse Address Resolution Protocol (InARP) will allow a Frame Relay station to discover the protocol address of a station associated with the virtual circuit. It is more efficiently than simulating a broadcast with multiple copies of the same message and it is more flexible than relying on static configuration.
Inverse ARP is an extension of the existing ARP. Therefore, it has the same format as standard ARP.
ar$hrd 16 bits Hardware type ar$pro 16 bits Protocol type ar$hln 8 bits Byte length of each hardware address (n) ar$pln 8 bits Byte length of each protocol address (m) ar$op 16 bits Operation code ar$sha nbytes source hardware address ar$spa mbytes source protocol address ar$tha nbytes target hardware address ar$tpa mbytes target protocol address
Bradley, Brown [Page 2]
RFC 1293 Inverse ARP January 1992
Possible values for hardware and protocol types are the same as those for ARP and may be found in the current Assigned Numbers RFC [2].
Length of the hardware and protocol address are dependent on the environment in which InARP is running. For example, if IP is running over Frame Relay, the hardware address length is between 2 and 4, and the protocol address length is 4.
The operation code indicates the type of message, request or reply.
InARP request = 8 InARP reply = 9
These values were chosen so as not to conflict with other ARP extensions.
Basic InARP operates essentially the same as ARP with the exception that InARP does not broadcast requests. This is because the hardware address of the destination station is already known. A requesting station simply formats a request by inserting its source hardware and protocol addresses and the known target hardware address. It then zero fills the target protocol address field. Finally, it will encapsulate the packet for the specific network and send it directly to the target station.
Upon receiving an InARP request, a station may put the requester's protocol address/hardware address mapping into its ARP cache as it would any ARP request. Unlike other ARP requests, however, the receiving station may assume that any InARP request it receives is destined for it. For every InARP request, the receiving station may format a proper reply using the source addresses from the request as the target addresses of the reply. If the station is unable or unwilling to reply, it ignores the request.
When the requesting station receives the InARP reply, it may complete the ARP table entry and use the provided address information. Note: as with ARP, information learned via InARP may be aged or invalidated under certain circumstances.
In the context of this discussion, a Multi-Addressed host will refer to a host that has multiple protocol addresses assigned to a single interface. If such a station receives an InARP request, it must choose one address with which to respond. To make such a selection, the receiving station must first look at the protocol address of the
Bradley, Brown [Page 3]
RFC 1293 Inverse ARP January 1992
requesting station, and then respond with the protocol address corresponding to the network of the requester. For example, if the requesting station is probing for an IP address, the responding multi-addressed station should respond with an IP address which corresponds to the same subnet as the requesting station. If the station does not have an address that is appropriate for the request it should not respond. In the IP example, if the receiving station does not have an IP address assigned to the interface that is a part of the requested subnet, the receiving station would not respond.
A multi-addressed host may choose to send an InARP request for each of the addresses defined for the given interface. It should be noted, however, that the receiving side may answer some or none of the requests depending on its configuration.
One case where Inverse ARP can be used is when a new virtual circuit is signalled. The Frame Relay station may format an InARP request addressed to the new virtual circuit. If the other side supports InARP, it may return a reply indicating the protocol address requested.
The format for an InARP request is a follows:
ar$hrd - 0x000F the value assigned to Frame Relay ar$pro - protocol type for which you are searching (i.e. IP = 0x0800) ar$hln - 2,3, or 4 byte addressing length ar$pln - byte length of protocol address for which you are searching (for IP = 4) ar$op - 8; InARP request ar$sha - Q.922 address of requesting station ar$spa - protocol address of requesting station ar$tha - Q.922 addressed of newly announced virtual circuit ar$tpa - 0; This is what we're looking for
Bradley, Brown [Page 4]
RFC 1293 Inverse ARP January 1992
The InARP response will be completed similarly.
ar$hrd - 0x000F the value assigned to Frame Relay ar$pro - protocol type for which you are searching (i.e. IP = 0x0800) ar$hln - 2,3, or 4 byte addressing length ar$pln - byte length of protocol address for which you are searching (for IP = 4) ar$op - 9; InARP response ar$sha - Q.922 address of responding station ar$spa - protocol address requested ar$tha - Q.922 address of requesting station ar$tpa - protocol address of requesting station
Note that the Q.922 addresses specified have the C/R, FECN, BECN, and DE bits set to zero.
Procedures for using InARP over a Frame Relay network are identical to those for using ARP and RARP discussed in section 10 of the Multiprotocol Interconnect over Frame Relay Networks document [3].