Network Working Group                                          J. Postel
Request for Comments: 925                                            ISI
                                                           October 1984

                     Multi-LAN Address Resolution


STATUS OF THIS MEMO

  This memo is prompted by RFC-917 by Jeffery Mogul on "Internet
  Subnets".   In that memo, Mogul makes a case for the use of "explicit
  subnets" in a multi-LAN environment.  In this memo, I attempt to make
  a case for "transparent subnets".  This RFC suggests a proposed
  protocol for the ARPA-Internet community, and requests discussion and
  suggestions for improvements.  Distribution of this memo is
  unlimited.

INTRODUCTION

  The problem of treating a set of local area networks (LANs) as one
  Internet network has generated some interest and concern.  It is
  inappropriate to give each LAN within an site a distinct Internet
  network number.  It is desirable to hide the details of the
  interconnections between the LANs within an site from people,
  gateways, and hosts outside the site.  The question arises on how to
  best do this, and even how to do it at all.  One proposal is to use
  "explicit subnets" [1].  The explicit subnet scheme is a call to
  recursively apply the mechanisms the Internet uses to manage networks
  to the problem of managing LANs within one network.  In this note I
  urge another approach: the use of "transparent subnets" supported by
  a multi-LAN extension of the Address Resolution Protocol [2].

OVERVIEW

  To quickly review the Address Resolution Protocol (ARP).  Each host
  on a broadcast LAN knows both its own physical hardware address (HA)
  on the LAN and its own Internet Address (IA).  When Host-A is given
  the IA of Host-B and told to send a datagram to it, Host-A must find
  the HA that corresponds to Host-B's IA.  To do this Host-A forms an
  ARP packet that contains its own HA and IA and the IA of the
  destination host (Host-B).  Host-A broadcasts this ARP packet.  The
  hosts that receive this ARP packet check to see if they are
  destination sought.  If so, they (it should be only Host-B) send a
  reply specifically addressed to the originator of the query (Host-A)
  and supplying the HA that was needed.  The Host-A now has both the HA
  and the IA of the destination (Host-B).  The Host-A adds this
  information to a local cache for future use.

     Note:  The ARP is actually more general purpose than this brief
     sketch indicates.



Postel                                                          [Page 1]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


  The idea in this memo is to extend the ARP to work in an environment
  of multiple interconnected LANs.

  To see how this could work let us imagine a "magic box" (BOX) that is
  connected as if it were an ordinary host to two (or more) LANs.

  Hosts continue to behave exactly as they do with the basic ARP.

  When an ARP query is broadcast by any host the BOX reads it (as do
  all the hosts on that LAN).  In addition to checking whether it is
  the host sought (and replying if it is), the BOX checks its cache of
  IA:HA address mappings in the cache that it keeps for each LAN it is
  attached to.

     Case 1: If the mapping for the host is found in the cache for the
     LAN that the query came from, the BOX does not respond (letting
     the sought host respond for itself).

     Case 2: If the mapping for the host is found in the cache for a
     different LAN than the query came from, the BOX sends a reply
     giving its own HA on the LAN the query came from.  The BOX acts as
     an agent for the destination host.

     Case 3: If the mapping is not found in any of the caches then, the
     BOX must try to find out the the address, and then respond as in
     case 1 or 2.

     In case 3, the BOX has to do some magic.

        The BOX keeps a search list of sought hosts.  Each entry
        includes the IA of the host sought, the interface the ARP was
        received on, and the source addresses of the original request.
        When case 3 occurs, the search list is checked.  If the sought
        host is already listed the search is terminated, if not the
        search is propagated.

        To propagate the search, an entry is first made on the search
        list, then the BOX composes and sends an ARP packet on each of
        its interfaces except the interface the instigating ARP packet
        was received on.  If a reply is received, the information is
        entered into the appropriate cache, the entry is deleted from
        the search list and a response to the search instigating ARP is
        made as in case 1 or 2.  If no reply is received, give up and
        do nothing -- no response is sent to the instigating host (the
        entry stays on the search list).




Postel                                                          [Page 2]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


        To terminate the search, give up and do nothing -- no response
        is sent to the instigating host (the entry stays on the search
        list).

  The entries in the caches and the search list must time out.

  For every ARP request that is received, the BOX must also put the
  sending host's IA:HA address mapping into the cache for the LAN it
  was received on.

THE MULTI-LAN ADDRESS RESOLUTION PROTOCOL

  The plan is to use ARP just as it is.  The new element is the "magic
  box" ("ARP-based bridge") that relays the ARP request into
  neighboring LANs and acts as an agent for relaying datagrams to hosts
  on other LANs.

  The Details

     Hosts continue to behave exactly as they do with the basic ARP.

     The LANs are connected together by BOXes (computers that are
     attached to two or more LANs exactly as hosts are attached to
     LANs).  The BOXes implement the following procedure.

     Each BOX keeps a table for each LAN it is connected to (or for
     each LAN interface).  Entries in these tables time out, so these
     tables are caches of recent information.  The entries in these
     caches are the IA:HA address pairs for that LAN.

     When an ARP query is broadcast by any host the BOX reads it (as do
     all the hosts on that LAN).  In addition to checking to see if it
     is the host sought (and replying if it is), the BOX checks its
     cache of IA:HA address mappings in the table it keeps for each LAN
     it is attached to.

        Case 1: If the mapping for the host is found in the cache for
        the LAN that the query came from, the BOX does not respond
        (letting the sought host respond for itself).  The time out on
        this entry is not reinitialized.

        Case 2: If the mapping for the host is found in the cache for a
        different LAN than the query came from, the BOX sends a reply
        giving its own HA on the LAN the query came from.  The time out
        on this entry is not reinitialized.

           In this case the BOX is indicating that it will act as an


Postel                                                          [Page 3]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


           agent for the destination host.  When an IP datagram arrives
           at the BOX, the BOX must attempt to forward it using the
           information in its address mapping caches.

        Case 3: If the mapping is not found in any of the caches, then
        the BOX must try to find out the the address, and then respond
        as in case 1 or 2.  In this case, the BOX has to do some magic.

           The BOX keeps a search list of sought (but not yet found)
           hosts.  Each entry includes the IA of the host sought, the
           interface the ARP was received on, and the source addresses
           of the original request.

           When case 3 occurs, the search list is checked.  If the
           sought host is already listed the search is terminated, if
           not the search is propagated.

           To propagate the search, an entry is first made on the
           search list, then the BOX composes and sends an ARP packet
           on each of its interfaces.  These ARP requests contain the
           IA and HA of the BOX and the IA of the sought host, and
           request the HA of the sought host.  If a reply is received
           to the ARP request, the information is entered into the
           appropriate cache, the entry is deleted from the search list
           and a response to the search instigating ARP requests is
           made as in case 1 or 2 above.  If no reply is received, give
           up and do nothing -- no response is sent to the instigating
           host (the entry stays on the search list).

              Note that the BOX must make a reasonable effort with its
              ARP requests,  if it is normal for ordinary hosts to
              retry ARP requests five times, then a BOX must also retry
              it's ARP requests five times.

           To terminate the search, give up and do nothing -- no
           response is sent to the instigating host (the entry stays on
           the search list).

           There is no negative feedback from an ARP request, so there
           is no way to decide that a search was unsuccessful except by
           means of a time out.

     For every ARP request that is received, the BOX must also put the
     sending hosts IA:HA address mapping into the cache for the LAN it
     was received on.

     The entries in the caches and the search list must time out.


Postel                                                          [Page 4]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


     The search list must be kept and the termination rule followed to
     avoid an infinite relaying of an ARP request for a host that does
     not respond.  Once a host is listed in the search list, ARP
     requests will not be relayed.  If a host that is down (or
     otherwise not responding to ARP requests), comes up (or otherwise
     begins responding to ARP requests) it will still not become
     available to hosts in other LANs until the search list entry times
     out.

        There are two approaches to this problem: first, to have a
        relatively short time out on the search list entries; or
        second, to have the BOX periodically send ARPs for each entry
        on the search list.

     There are several time outs involved in this scheme.

        First, the hosts try to get the address resolved using ARP.
        They may actually make several attempts before giving up if a
        host is not responding.  One must have an good estimate of the
        length of time that a host may keep trying.  Call this time T1.

        Second, there is the time that an entry stays on the search
        list, or the time between BOX generated ARPs to resolve these
        addresses.  Call this time T2.

           Note that this time (T2) must be greater than the sum of the
           T1s for the longest loop of LANs.

        Third, there is the time that entries stay in the cache for
        each LAN.  Call this time T3.

        The relationship must be  T1 < T2 < T3.

           One suggestion is that T1 be less than one minute, T2 be ten
           minutes, and T3 be one hour.

        If the environment is very stable, making T3 longer will result
        in fewer searches (less overhead in ARP traffic).  If the
        environment is very dynamic making T3 shorter will result in
        more rapid adaptation to the changes.

        Another possibility is to restart the timer on the cache
        entries each time they are referenced, and have a small value
        for T3.  This would result in entries that are frequently used
        staying in the cache, but infrequently used information being
        discarded quickly.  Unfortunately there is no necessary
        relationship between frequency of use and correctness.  This


Postel                                                          [Page 5]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


        method could result in an out-of-date entry persisting in a
        cache for a very long time if ARP requests for that address
        mapping were received at just less than the time out period.

     When handling regular datagrams, the BOXes must decrement the IP
     datagram Time-To-Live field (TTL) and update the IP header check
     sum.  If the TTL becomes zero the datagram is discarded (not
     forwarded).

     ARP, as currently defined, will take the most recent information
     as the best and most up-to-date.  In a complicated multi-LAN
     environment where there are loops in the connectivity it is likely
     that one will get two (or more) responses to an ARP request for a
     host on some other LAN.  It is probable that the first response
     will be from the BOX that is the most efficient path.

     The one change to the host implementation of ARP that is suggested
     here is to prevent later responses from replacing the mapping
     recorded from the first response.

  Potential Problems

     Bad Cache Entries

        If some wrong information get into a cache entry, it will stay
        there for time T3.  The persistence of old information could
        prevent communication (for a time) if a host changed its IA:HA
        mapping.

        One way to replace bad or out-of-date entries in a cache would
        be to have the BOXes explicitly interpret a broadcast ARP reply
        to require an entry with either this IA or HA to be replaced
        with this new IA:HA mapping.  One could have important servers
        send a broadcast ARP reply when they come up.

     Non-ARP Hosts

        It seems unrealistic to expect to use both ARP hosts and
        non-ARP hosts on the same LAN and expect them to communicate.
        If all the non-ARP hosts are on the same LAN the situation is
        considered with under the next heading (Non-Broadcast LANs).

        Hosts that do not implement ARP must use some other means of
        address mapping.  Either they hold a complete table of all
        hosts, or they access some such table in a server via some
        protocol; or they expect to make all routing decisions based on
        analysis of address fields.


Postel                                                          [Page 6]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


     Non-Broadcast LANs

        BOXes that are connected to LANs that do not have broadcast
        capability and/or LANs where the hosts do not respond to ARP
        may have a static or dynamic table of the IA:HA mappings for
        that LAN (or the addresses may be computed from one another).
        All the hosts on that LAN must be in the table.

        When a BOX must find the address mapping and would otherwise
        send an ARP request into a non-broadcast LAN (this can only
        happen when the sought host is not the non-broadcast LAN since
        all the hosts are in the table), it must instead send an ARP
        type request specifically to each of the other BOXes on that
        LAN.

     Size of Tables

        The worst case of the size of the tables in the BOXes is the
        number of hosts in the set of LANs for each table.  That is,
        the table kept for each LAN interface may (in the worst case)
        grow to have an entry for each host in the entire set of LANs.
        However, these tables are really caches of the entries needed
        for current communication activity and the typical case will be
        far from the worst case.  Most hosts will communicate mostly
        with other hosts on their own LAN and with a few hosts on other
        LANs.  Most communication on LANs is between work station hosts
        and server hosts.  It can be expected that there will be
        frequent communication involving the main server hosts and that
        these server hosts will be entered in the tables of most of the
        BOXes most of the time.

     Infinite Transmission Loops

        The possibility of infinite transmission loops through an
        interconnected set of LANs is prevented by keeping search lists
        in the BOXes and terminating the search when a request is
        received for an address already on the list.

        Transmission loops of regular datagrams can not persist because
        them the BOXes must decrement the TTL, and discard the datagram
        if the TTL is reduced to zero.  For debugging purposes it would
        be useful for a BOX to report to the implementer any datagrams
        discarded for this reason.






Postel                                                          [Page 7]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


     Broadcast

        Note that broadcast does not really have anything to do with
        either transparent subnets or explicit subnets.  Since it was
        discussed in [1], it will be discussed here, too.  Two of the
        three broadcast functions suggested in [1] work just the same
        and have the same effects, the third can be supported, too.

        It is also argued that the support for a broadcast
        interpretation of IAs is a bigger issue that the question of
        explicit subnets versus transparent subnets and it should be
        decided separately.

        It is also suggested that broadcast is not really what is
        desired, but rather multicast is the better function.  It may
        make sense to understand how to do an Internet multicast before
        adopting a broadcast scheme.

        This IP Network

           If the IA of this network number and an all ones host number
           (e.g., 36.255.255.255) is used, an IP level broadcast to all
           hosts on this Network (all LANs) is intended.  A BOX must
           forward this datagram.  A BOX must examine the datagram for
           potential significance to the BOX itself.

           To prevent infinite transmission loops each BOX must keep a
           list of recent broadcasts.  The entries in this list contain
           the source IA and the Identification field from the datagram
           header.  If a broadcast is received and matches an entry on
           the list it is discarded and not forwarded.  The entries on
           this list time out in time T2.

        This LAN Only

           If the IA of all ones (i.e., 255.255.255.255) is used an IP
           level broadcast to all hosts on this LAN only is intended.
           A BOX must not forward this datagram.  A BOX must examine
           the datagram for potential significance to the BOX itself.

        Another LAN Only

           Since the LANs are not individually identified in the IA
           this can not be supported in the same way. Some have also
           argued that this is a silly capability to provide.

           One way to provide it is to establish a specific IA for each


Postel                                                          [Page 8]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


           LAN that means "broadcast on this LAN".  For example,
           36.255.255.128 means broadcast on LAN A, and 36.255.255.187
           means broadcast on LAN B, etc.  These addresses would be
           specially interpreted by the BOXes attached to the specific
           LAN where they had the special interpretation, other BOXes
           would treat these address as any other IAs.   Where these
           addresses are specially interpreted they are converted to
           the broadcast on this LAN only address.

DISCUSSION

  The claim for the extended ARP scheme is that the average host need
  not even know it is in a multi-LAN environment.

     If a host took the trouble to analyze its local cache of IA:AH
     address mappings it might discover that several of the IAs mapped
     to the same HA.  And if it took timing measurements it might
     discover that some hosts responded with less delay that others.
     And further, it might be able to find a correlation between these
     discoveries.  But few hosts would take the trouble.

  Address Structure

     In the explicit subnet scheme, some IA bits are devoted to
     identifying the subnet (i.e., the LAN).  The address is broken up
     into network, subnet, and host fields.  Generally, when fields are
     use the density of the assigned addresses in the address space
     goes down.  That is, there is a less efficient use of the address
     space.  Significant implementation problems may arise if more
     subnets than planned are installed and it becomes necessary to
     change the size of the subnet field.  It seems totally impractical
     to use the explicit subnet scheme with a class C IA.

     In the extended ARP scheme the address is simply the network, and
     host fields.  The extended ARP scheme may be used with any class
     of IA.

  Relocating Hosts

     In the explicit subnet scheme when a host is unplugged from one
     LAN and plugged into another its IA must change.

     In the extended ARP scheme it may keep the same IA.






Postel                                                          [Page 9]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


  One view of the situation suggests that there are really two
  problems:

     1. How does the host discover if the destination is in this LAN or
     some other LAN?

        This question assumes that a host should know the difference
        and should do something different in the two cases, and further
        that once the host knows the answer it also know how to send
        the data (e.g., directly to the host, or to the box).

           The claim here is that the hosts should not know the
           difference and should always do the same thing.

     2. How do the BOXes that connect LANs know which BOXes are the
     routes to which LANs?

        This question assumes that the BOXes need some kind of
        topological knowledge, and exchange BOX-to-BOX protocol
        information about connectivity.

           The claim here is that the BOXes do not need topological
           knowledge and do not need to explicitly know about the
           existence of other BOXes.

  It has been suggested that there are two problems: first, how the
  hosts do routing; and second, how the BOXes do routing.  A claim has
  been made that the competing strategies each have an approach to each
  problems and one could select a solution made up partly from one
  approach and partly from another.

     For example: use ARP within the LAN and have the BOX send ARP
     replies and act as a agent (as in the extended ARP scheme), but
     use a BOX-to-BOX protocol to get the "which hosts are where"
     information into the BOXes (as in the explicit subnet scheme).

  There are two places where code is involved: a large number of hosts,
  and a small number of BOXes.  In considering the trade off between
  explicit subnet scheme and extended ARP scheme, the work done in the
  hosts should weigh a lot more than the work done in the BOXes.

     What do hosts do?

        Explicit Subnet Scheme

           The host must be able to decide if this IA is on this LAN or



Postel                                                         [Page 10]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


           some other LAN.  If on this LAN then use some procedure to
           find the HA.  If on some other LAN then use some procedure
           to find the HA of a BOX.

        Extended ARP Scheme

           In every case the host uses ARP to get a IA:HA mapping.

     What do the BOXes do?

        Explicit Subnet Scheme

           The BOX must be able to decide which LAN within the site the
           destination host is on.  The BOXes must have some routing
           table that tells for each LAN in the site which interface to
           send datagrams on.  This routing table must be kept up to
           date, probably by a BOX-to-BOX protocol much like the
           Internet Gateway-to-Gateway protocol.

        Extended ARP Scheme

           The BOX must keep caches for each LAN it is attached to of
           IA:HA mappings, and it must keep a search list.  It does not
           run any BOX-to-BOX protocol, It does not even know if any
           other BOXes exist.

  Topology and Implementation Complexity

     Trees

        If the organization of the LANs and the BOXes is tree
        structured, the BOXes may be very simple, they don't have to
        keep the search lists at all, since there won't be any loops
        for the ARP-request to traverse.

     Loops

        If the organization has loops then the search lists are
        essential.  If the topology is kept balanced so that there are
        no long loops (all loops are about the same size), and the LANs
        are reasonably compatible in delay characteristics, then the
        procedure described here will work well.

     Complex

        If the organization is very complex, topologically unbalanced,



Postel                                                         [Page 11]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


        and/or composed of mix of different types of LANS with vastly
        different delay characteristics, then it may be better to use a
        BOX-to-BOX routing protocol.

SUMMARY

  It would be useful if the Internet community could come to some
  agreement on a solution to the multi-LAN network problem and could
  with a unified voice urge work station manufacturers to provide that
  solution built in.

  I urge consideration of the extended ARP scheme expounded on here.

  I think that most work stations will be connected to LANs that have a
  broadcast capability.  I think that most work stations will be used
  in situations that do not require explicit subnets, and most will be
  used in situations where a class C Internet addresses would be
  appropriate (and explicit subnets impossible).  Thus, i think it
  would be best to ask manufacturers to include support for ARP in work
  stations off the shelf.  I also think we ought to get busy and
  create, develop, test, and produce the magic boxes I suggest so that
  they too are available off the shelf.

  Please note that neither this note nor [1] proposes a specific
  routing procedure or BOX-to-BOX protocol.  This is because such a
  routing procedure is a very hard problem.  The plan proposed here
  will let us get started on using multi-LAN environments in a
  reasonable way.  If we later decide on a routing procedure to be used
  between the BOXes we can redo the BOXes without having to redo the
  hosts.



















Postel                                                         [Page 12]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


GLOSSARY

  ARP

     Address Resolution Protocol (see [2]).

  BOX

     Magic Box.  A box (computer) connected to two or more LANs of the
     same Network.  Also called an "ARP-based bridge".

  Bridge

     A node (computer) connected to two or more administratively
     indistinguishable but physically distinct subnets, that
     automatically forwards datagrams when necessary, but whose
     existence is not know to other hosts.  Also called a "software
     repeater".

  Datagram

     The unit of communication at the IP level.

  Explicit Subnet

     A Subnet explicitly identified in the the Internet Address by a
     subnet address field, and so visible to others both in side and
     out side the Network.

  Gateway

     A node (computer) connected to two or more administratively
     distinct networks and/or subnets, to which hosts send datagrams to
     be forwarded.

  HA

     Hardware Address, the address used in a packet on a LAN.

  Host Number

     The address of a host within an Network, the low-order part of an
     IA.

  IA

     Internet Address, as defined in IP.


Postel                                                         [Page 13]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


  Internet

     The collection of connected Internet Networks (also known as the
     Catenet).  A set of interconnected networks using IP.

  IP

     Internet Protocol (see [3]).

  LAN

     Local Area Network.

  Multi-LAN Network

     A set of LANs treated as one Network, i.e., using one Network
     Number in common.  The individual LANs may be either Explicit
     Subnets or Transparent Subnets.

  Network

     A single Internet Network (possibly divided into subnets or
     composed of multiple LANs), identified by an individual Network
     Number.

  Network Number

     An IP Network Number, the high-order part of an IA.

  Packet

     The unit of communication at the LAN hardware level.

  Subnet

     A subnet of Network. A portion of a Network (either logical or
     physical).

  Transparent Subnet

     A Subnet not identified in the Internet Address, and so invisible
     to others, (see Multi-LAN Network).

  TTL

     The IP Time-To-Live field.



Postel                                                         [Page 14]



RFC 925                                                     October 1984
Multi-LAN Address Resolution


REFERENCES

  [1]  J. Mogul, "Internet Subnets",  RFC-917, Stanford University,
       October 1984.

  [2]  D. Plummer, "An Ethernet Address Resolution Protocol or
       Converting Network Protocol Addresses to 48-bit Ethernet
       Addresses for Transmission on Ethernet Hardware",  RFC-826,
       Symbolics, November 1982.

  [3]  J. Postel, "Internet Protocol",  RFC-791, USC-ISI,
       September 1981.





































Postel                                                         [Page 15]