home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1931.txt < prev    next >
Text File  |  1996-05-07  |  28KB  |  277 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                        D. Brownell Request For Comments: 1931                        Sun Microsystems, Inc. Category: Informational                                       April 1996 
  8.  
  9.                        Dynamic RARP Extensions for                  Automatic Network Address Acquisition 
  10.  
  11. Status of this Memo 
  12.  
  13.    This memo provides information for the Internet community.  This memo    does not define an Internet standard of any kind.  Distribution of    this memo is unlimited. 
  14.  
  15. 1.  Introduction 
  16.  
  17.    This memo describes extensions to the Reverse Address Resolution    Protocol (RARP [2]) and called Dynamic RARP (DRARP, pronounced D-    RARP).  The role of DRARP, and to some extent the configuration    protocol used in conjunction with it, has subsequently been addressed    by the DHCP protocol [9].  This memo is being published now to    document this protocol for the record. 
  18.  
  19.    DRARP is used to acquire (or allocate) a protocol level address given    the fixed hardware address for a host.  Its clients are systems being    installed or reconfigured, and its servers are integrated with other    network administration services.  The protocol, along with adjunct    protocols as briefly described here, supports several common styles    of "Intranet" administration including networks which choose not to    support the simplified installation and reconfiguration features    enabled by DRARP. 
  20.  
  21.    The rest of this introductory section summarizes the system design of    which the DRARP protocol was a key part.  The second section presents    the DRARP protocol, and the third section discusses requirements    noted for an "Address Authority" managing addresses in conjunction    with one or more cooperating DRARP servers. 
  22.  
  23. 1.1  Automatic System Installation 
  24.  
  25.    Dynamic RARP was used by certain Sun Microsystems platforms beginning    in 1988.  (These platforms are no longer sold by Sun.) In conjunction    with other administrative protocols, as summarized in the next    subsection, it was part of a simplified network and domain    administration framework for SunOS 4.0.  Accordingly, there was a    product requirement to extend (rather than replace) the RARP/TFTP two    phase booting model [3], in order to leverage the existing system    infrastructure.  This is in contrast to the subsequent DHCP [9] work, 
  26.  
  27.  
  28.  
  29. Brownell                     Informational                      [Page 1] 
  30.  RFC 1931                      Dynamic RARP                    April 1996 
  31.  
  32.     which extended BOOTP. 
  33.  
  34.    The "hands-off" installation of all kinds of systems (including    diskless workstations, and servers) was required, as supported by    LocalTalk networks [8].  However, Internet administrative models are    not set up to allow that: there is no way to set up a completely    functional IP network by just plugging machines into a cable and    powering them up.  That procedure doesn't have a way to input the    network number (and class) that must be used, or to bootstrap the    host naming system.  An approach based on administered servers was    needed for IP-based "Intranet" systems, even though that    unfortunately called for networks to be initially set up by    knowledgeable staff before any "hands-off" installations could be    performed. 
  35.  
  36. 1.2  System Overview 
  37.  
  38.    DRARP was used by systems in the first phase of joining a network, to    acquire a network address without personal intervention by a network    administrator.  Once a system was given a network address, it would    perform whatever network operations it desired, subject to a site's    access control policies.  During system installation, those network    operations involved a (re)configuration protocol ("Plug'n'Play", or    PNP).  Diskless sytems used TFTP to download code which could speak    the PNP protocol. 
  39.  
  40.    The PNP protocol would register the names of newly installed hosts in    the naming service, using the address which was acquired using DRARP.    These names could be chosen by users installing the system, but could    also be assigned automatically.  Diskless systems used the PNP    protocol to assign booting resources (e.g. filesystem space) on    servers.  All systems were assigned public and private keys, also    initial (quasi-secret) "root" passwords, so that they could use what    was then the strongest available ONC RPC authentication system. 
  41.  
  42.    Servers for DRARP and for the configuration protocol (as well as    other administrative tools) needed to consult an authoritative    database of which Internet addresses which were allocated to which    hosts (as identified by hardware addresses).  This "address    authority" role was implemented using a name service (NIS) and an    RPC-based centralized IP address allocation protocol ("IPalloc").    Address allocation could be performed only by authorized users,    including network administrators and DRARP servers. 
  43.  
  44.    Most systems used DRARP and PNP each time they started, to    automatically reconfigure applicable system and network policies.    For example, network addresses and numbers were changed using these    protocols; host names changed less often.  The naming service (NIS) 
  45.  
  46.  
  47.  
  48. Brownell                     Informational                      [Page 2] 
  49.  RFC 1931                      Dynamic RARP                    April 1996 
  50.  
  51.     held most information, such as the locations of printers and users'    home directories. 
  52.  
  53. 2.  Dynamic RARP Extensions 
  54.  
  55.    Dynamic RARP (DRARP) service is provided by any of a small active set    of cooperating server systems on a network segment (network or    subnetwork).  Those servers are contacted through link level    procedures, normally a packet broadcast.  One or more servers may    respond to a given request.  It was intended that network segments    will be administered together in domains [5] consisting of one or    more network segments.  Domains sharing a network segment need to    share information about network addresses, both hardware level and    protocol level, so an address authority (see section 3) can avoid    reallocating protocol addresses which are already allocated or in    use. 
  56.  
  57.    Dynamic RARP benefits from link layer addresses which are scoped more    widely than just the local network segment.  It takes advantage of    such scoping to detect hosts which move between network segments.    Such scoping is provided by IEEE 802 48-bit addresses [7], but not by    all other kinds of network address.  Without such a widely scoped ID,    the case of systems roaming between networks can't be detected by    Dynamic RARP. 
  58.  
  59. 2.1  Mixing RARP and DRARP Servers 
  60.  
  61.    DRARP is an extension to RARP, so that all Dynamic RARP servers are    also RARP servers.  However, DRARP provides a more manageable service    model than RARP does:  while RARP allows multiple servers to respond    to RARP requests, it does not expect all those servers to be able to    respond, or to respond identically.  A given RARP server can not be    relied upon to know whether a given link level address can be mapped    into a protocol address, and some other RARP server may have a    different answer. 
  62.  
  63.    Dynamic RARP addresses this problem by requiring that all Dynamic    RARP servers on a network segment must communicate with the same    address authority.  That address authority controls name and address    bindings, records bindings between host identifiers and addresses,    makes decisions about how to allocate addresses, and keeps records    about addresses in use. 
  64.  
  65.    This means that in effect there may be a number of independent RARP    services offered along with a single DRARP service.  DRARP service    may well be offered through multiple servers, and the persistent    address bindings it serves will be accessible as from a set of    coordinated RARP servers. 
  66.  
  67.  
  68.  
  69. Brownell                     Informational                      [Page 3] 
  70.  RFC 1931                      Dynamic RARP                    April 1996 
  71.  
  72.     Not all networks want to support dynamic address allocation services.    Even those that do support it will need control over implementation    of the address authority.  So DRARP servers need policy controls such    as "restricting" them from assigning addresses (applied to an entire    network segment) as well as disabling use of DRARP entirely.  (One    may need to disable servers that would otherwise allocate new    addresses, in order to enable ones which can speak to the "correct"    address authority.  Standards do not exist for protocols and security    options used to talk to address authorities.) 
  73.  
  74. 2.2  Packet Format 
  75.  
  76.    The packet format is identical to RARP and is encapsulated using RARP    frames, with the same Ethernet/SNAP type field.  [1, 2, 6].  That is,    a DRARP packet looks like a RARP packet, but it uses opcodes which    are ignored by RARP servers; DRARP servers must also support RARP    requests, and hence ARP requests [1]. 
  77.  
  78. 2.2.1  RARP Packets 
  79.  
  80.    The two RARP opcodes are described here, in order to clarify the    overall presentation.  The name "REVARP", used in the opcode    descriptions, is a synonym for "RARP". 
  81.  
  82.    REVARP_REQUEST (3)         REVARP_REQUEST packets are sent to RARP servers as a request to         map the target hardware address (tha) into the corresponding         target protocol address (tpa), sending the response to the         source hardware address (sha) as encoded in the packet.  The         source hardware address will usually be the same as the target         hardware address, that of the system sending the packet.  RARP         servers will consult their name and address databases, and         return a REVARP_REPLY packet if they can perform the reverse         address resolution as requested. 
  83.  
  84.    REVARP_REPLY (4)         This packet is sent by RARP servers in response to         REVARP_REQUEST packets.  The target protocol address (tpa) is         filled in as requested, and the source hardware and protocol         addresses (sha, spa) correspond to the RARP server.  The target         hardware address (tha) is from the corresponding REVARP_REQUEST         packet, and the packet is sent to the source hardware address         (sha) from that packet. 
  85.  
  86.         This packet is also sent by Dynamic RARP servers in response to         DRARP_REQUEST packets, if the protocol address returned was not         a temporary one, but was instead what it would have returned         given an otherwise identical REVARP_REQUEST packet. 
  87.  
  88.  
  89.  
  90. Brownell                     Informational                      [Page 4] 
  91.  RFC 1931                      Dynamic RARP                    April 1996 
  92.  
  93.  2.2.2  Dynamic RARP Packets 
  94.  
  95.         There are three opcodes defined for DRARP, in addition to the         two already defined for RARP: 
  96.  
  97.    DRARP_REQUEST (5)         DRARP_REQUEST packets have the same format as REVARP_REQUEST         packets, except for the operation code.  The semantics are simi-         lar, except that in cases where a REVARP_REQUEST would produce         no REVARP_REPLY (no persistent address mapping is stored in an         addressing database) a DRARP_REQUEST will normally return a tem-         porary address allocation in a DRARP_REPLY packet.  A         DRARP_ERROR packet may also be returned; a Dynamic RARP server         will always provide a response, unlike a REVARP server. 
  98.  
  99.    DRARP_REPLY (6)         DRARP_REPLY packets have the same format, opcode excepted, as         REVARP_REPLY packets.  The interpretation of the fields is the         same. 
  100.  
  101.         There are semantic differences between the two packet types.         First, the protocol address bindings returned in DRARP_REPLY         packets are temporary ones, which will be recycled after some         period (e.g. an hour).  Those bindings returned in REVARP_REPLY         packets are "persistent" addresses which typically change much         more slowly.  Second, it is explicitly a protocol error for         DRARP_REPLY packets to be sent which differ except in the sender         address fields.  Also, DRARP_REPLY packets are generated only in         response to DRARP_REQUEST packets. 
  102.  
  103.         These temporary addresses may be reallocated to another system         after some time period.  A configuration protocol is normally         used to ensure that reallocation does not occur. 
  104.  
  105.    DRARP_ERROR (7)         DRARP_ERROR packets may also be sent in response to         DRARP_REQUESTs.  The format is identical to REVARP_REPLY, except         for the opcode and that the target protocol address (tpa) field         is replaced by an error code field.  The error code field must         be at least one byte long, and the first byte is used to encode         an error status describing why no target protocol address (tpa)         is being returned.  The status values are: 
  106.  
  107.         DRARPERR_RESTRICTED (1)              This network does not support dynamic address allocation.              The response is definitive; the network is controlled so              that no other DRARP_REPLY (for this hardware address) is              legal until the network policy on dynamic address 
  108.  
  109.  
  110.  
  111. Brownell                     Informational                      [Page 5] 
  112.  RFC 1931                      Dynamic RARP                    April 1996 
  113.  
  114.               allocation is changed, or until the client is otherwise              assigned a persistent address binding.  A REVARP_REQUEST              might yield a REVARP_REPLY, however; non-cooperating RARP              servers could be the very reason that dynamic address allo-              cation was disabled. 
  115.  
  116.         DRARPERR_NOADDRESSES (2)              This network supports dynamic address allocation, but all              available protocol addresses in the local segment are in              use, so none can be allocated now. 
  117.  
  118.         DRARPERR_SERVERDOWN (3)              The service providing access to the address authority is              temporarily unavailable.  May also be returned if an              address allocation was required and the required response              took a "long time" to generate; this distinguishes the case              of a network that didn't support DRARP from the case of one              that does, but is slow. 
  119.  
  120.         DRARPERR_MOVED (4)              Analogous to the DRARPERR_RESTRICTED status in that no              address was dynamically allocated.  This provides the addi-              tional status that this client was recognized by the              administration software for the domain as being on a dif-              ferent network segment than expected; users will be able to              remedy the problem by connecting the system to the correct              network segment. 
  121.  
  122.         DRARPERR_FAILURE (5)              For some reason, no address could be returned.  No defined              status code known to the server explained the reason. 
  123.  
  124.    More opcodes for the Address Resolution Protocol (ARP) family could    be defined in the future, so unrecognized opcodes (and error codes)    should be ignored rather than treated as errors. 
  125.  
  126. 2.3  Protocol Exchanges 
  127.  
  128.    This section describes typical protocol exchanges using RARP and    Dynamic RARP, and common fault modes of each exchange. 
  129.  
  130. 2.3.1.  RARP Address Lookup 
  131.  
  132.    To determine a previously published ("persistent") protocol address    for itself or another system, a system may issue a REVARP_REQUEST    packet.  If a REVARP_REPLY packet arrives in response, then the    target protocol address listed there should be used. 
  133.  
  134.  
  135.  
  136.  Brownell                     Informational                      [Page 6] 
  137.  RFC 1931                      Dynamic RARP                    April 1996 
  138.  
  139.     If no REVARP_REPLY response packet arrives within some time interval,    a number of errors may have occurred.  The simplest one is that the    request or reply packet may never have arrived:  most RARP client    implementations retransmit requests to partially account for this    error.  There is no clear point at which to stop retransmitting a    request, so many implementations apply an exponential backoff to the    retransmit interval, to reduce what is typically broadcast traffic. 
  140.  
  141.    Otherwise there are many different errors which all have the same    failure mode, including: the system might not have a published    protocol address; it might be on the wrong network segment, so its    published address is invalid; the RARP servers which can supply the    published address may be unavailable; it might even be on a network    without any RARP servers at all. 
  142.  
  143. 2.3.2  Dynamic RARP Address Lookup 
  144.  
  145.    Dynamic RARP may be used to determine previously published protocol    addresses by clients who issue DRARP_REQUEST packets.  If the client    has a published protocol address on the network segment on which the    DRARP_REQUEST packet was issued, it is returned in a REVARP_REPLY    packet. 
  146.  
  147.    If the client has a published protocol address only on some other    network segment, then two basic responses are possible.  In the case    where dynamic address reallocation is enabled, a temporary protocol    address may be allocated and returned in a DRARP_REPLY packet.    Otherwise if dynamic address reallocation is disabled, a DRARP_ERROR    packet is returned with the status DRARPERR_MOVED.  Detection of host    movement can be provided only with link level addresses that are    unique over the catenet, such as are provided with IEEE 802 48 bit    addresses.  Without such uniqueness guarantees, this case looks like    a request for a new address as described in the next section. 
  148.  
  149. 2.3.3  Dynamic RARP Address Allocation 
  150.  
  151.    Dynamic RARP clients who issue DRARP_REQUEST packets may acquire    newly allocated protocol addresses.  If the client has no published    protocol address, there are three responses: 
  152.  
  153.    (a)  When dynamic address allocation is enabled, a temporary protocol         address is allocated and returned in a DRARP_REPLY packet. 
  154.  
  155.    (b)  Errors or delays in the allocation process (with dynamic address         allocation enabled) are reported in DRARP_ERROR packets with         error codes such as DRARPERR_SERVERDOWN, DRARPERR_NOADDRESSES,         DRARPERR_MOVED, or even DRARPERR_FAILURE. 
  156.  
  157.  
  158.  
  159.  Brownell                     Informational                      [Page 7] 
  160.  RFC 1931                      Dynamic RARP                    April 1996 
  161.  
  162.     (c)  When dynamic address allocation is disabled (or "restricted"), a         DRARP_ERROR packet with status DRARPERR_RESTRICTED is returned. 
  163.  
  164.         DRARP_REQUESTS are normally retransmitted until an address is         returned, using backoff-style algorithms to minimize needless         network traffic.  When DRARP_ERROR responses are received, they         should be reported to the user.  For example, knowing that the         server is busy could indicate it's time for a cup of Java, but         if the network is restricted then it might be time to contact a         network administrator for help instead. 
  165.  
  166. 2.3.4  Discovering Other DRARP Servers 
  167.  
  168.         The existence of a DRARP server can be discovered by the fact         that it puts its addressing information in all DRARP_REPLY         packets that it sends.  DRARP servers can listen for such         packets, as well as announcing themselves by sending such a         packet to themselves. 
  169.  
  170.         It can be important to discover other DRARP servers.  Users make         mistakes, and can inappropriately set up DRARP servers that do         not coordinate their address allocation with that done by the         other DRARP servers on their network segment.  That causes         significant administrative problems, which can all but be         eliminated by DRARP servers which politely announce themselves,         and when they detect an apparently spurious server, report this         fact before entering a "restricted" mode to avoid creating any         problems themselves. 
  171.  
  172.         As no further server-to-server protocol is defined here, some         out-of-band mechanism, such as communication through the address         authority, must be used to help determine which servers are in         fact spurious. 
  173.  
  174. 2.4  Network Setup Concerns 
  175.  
  176.         Some internetwork environments connect multiple network segments         using link level bridges or routers.  In such environments, a         given broadcast accessible "local" area network will have two         problems worth noting. 
  177.  
  178.         First, it will extend over several cable segments, and be         subject to partitioning faults.  Assigning one DRARP server to         each segment (perhaps on systems acting as routers or bridges,         to serve multiple segments) can reduce the cost of such faults.         Assigning more than one such server can help reduce the cost of         failure to any single network segment; these cooperate in the         assignment of addresses through the address authority. 
  179.  
  180.  
  181.  
  182. Brownell                     Informational                      [Page 8] 
  183.  RFC 1931                      Dynamic RARP                    April 1996 
  184.  
  185.          Second, those networks are sometimes shared by organizations         which don't cooperate much on the management of protocol         addresses, or perhaps aren't even collocated.  A DRARP server         might need help from link level bridges/routers in order to         ensure that local clients are tied to local servers (rather         than, for example, to servers across the country where they are         prone to availability problems).  Or the server might need to         run in "restricted" mode so that a network administrator         manually assigns address and other resources to each system. 
  186.  
  187. 3.  The Address Authority 
  188.  
  189.         While not part of the DRARP protocol, the Address Authority used         by the DRARP servers on a network segment is critical to         providing the address allocation functionality.  It manages the         data needed to implement such service, which is required not         just for dynamic address allocation tools.  This section is         provided to record one set of requirements for such an         authority, ignoring implementation isssues such as whether         protocol support for replication or partitioning is needed. 
  190.  
  191. 3.1  Basic Requirements 
  192.  
  193.         For each network segment under its control, an Address Authority         maintains at least: 
  194.  
  195.         -    persistent bindings between hardware and protocol addresses              (for at least those hosts which are DRARP clients); 
  196.  
  197.         -    temporary bindings between such addresses; 
  198.  
  199.         -    protocol addresses available for temporary bindings; 
  200.  
  201.    The Address Authority is also responsible for presenting and managing    those bindings.  DRARP clients need it to support: 
  202.  
  203.         -    creating temporary bindings initially, 
  204.  
  205.         -    looking up bindings (the distinction between temporary and              persistent bindings is not usually significant here), 
  206.  
  207.         -    deleting temporary or persistent bindings on request, 
  208.  
  209.         -    purging them automatically by noticing that a binding is              now persistent or that the temporary address is available              for reuse. 
  210.  
  211.  
  212.  
  213.  
  214.  
  215. Brownell                     Informational                      [Page 9] 
  216.  RFC 1931                      Dynamic RARP                    April 1996 
  217.  
  218.     Those clients will frequently make concurrent requests, and should be    required to pass some kind of authorization check before they create    or change any bindings.  They may also need to know about other    clients, in order to determine (for example) if a given DRARP server    is spurious. 
  219.  
  220. 3.2  Multiple Authorities and Segments 
  221.  
  222.    Note there is only a single address authority on a given network    segment.  It may be desirable to partition that authority, though    that complicates implementation and administration of the authority    substantially. 
  223.  
  224.    If detection of systems moving between network segments is to be    provided, then the authorities for those two network segments must    either be the same or (equivalently) must communicate with one    another.  Also, as noted earlier, hardware addresses must be scoped    widely enough that the two segments do not assign the same link level    address to different hosts. 
  225.  
  226. 3.3  Quality of Service 
  227.  
  228.    The records of temporary address bindings must be persistent for at    least long enough to install a system and propagate its records    through the site's administrative databases, even in the case of    server or network faults.  A timeout mechanism could be used to    ensure that the limited address space was not used up too quickly.    The initial implementation found that an hour's worth of caching,    before deleting temporary bindings, was sufficient. 
  229.  
  230.    Experience has shown that many networks have addresses in use which    are not listed in their name services (or other administrative    databases).  On such networks, the Address Authority should have a    way to learn when an address which it thinks is available for    allocation is instead being actively used.  Probing the network for    "the truth" before handing out what turns out to be a duplicate IP    address is a worthwhile.  Both ARPing for the address and ICMP echo    request have been used for this. 
  231.  
  232. 4.  Security Considerations 
  233.  
  234.    Security concerns are not addressed in this memo.  They are    recognized as significant, but they also interact with site-specific    network administration policies.  Those policies need to be addressed    at higher levels before ramifications at this level can be    understood. 
  235.  
  236.  
  237.  
  238.  
  239.  
  240. Brownell                     Informational                     [Page 10] 
  241.  RFC 1931                      Dynamic RARP                    April 1996 
  242.  
  243.  5.  References 
  244.  
  245.    [1]  Plummer, D., "An Ethernet Address Resolution Protocol", STD 37,         RFC 826, MIT, November 1982. 
  246.  
  247.    [2]  Finlayson, R., Mann, T., Mogul, J., and M. Theimer, "A Reverse         Address Resolution Protocol", STD 38, RFC 903, Stanford, June         1984. 
  248.  
  249.    [3]  Finlayson, R., "Bootstrap Loading using TFTP", RFC 906,         Stanford, June 1984. 
  250.  
  251.    [4]  Postel, J., "Multi-LAN Address Resolution", RFC 925,         USC/Information Sciences Institute, October 1984. 
  252.  
  253.    [5]  Mockapetris, P., "Domain Names -- Concepts and Facilities", STD         13, RFC 1034, USC/Information Sciences Institute, November 1987. 
  254.  
  255.    [6]  Postel, J., and J. Reynolds, "A Standard for the Transmission of         IP Datagrams over IEEE802 Networks", STD 43, RFC 1042,         USC/Information Sciences Institute, February 1988. 
  256.  
  257.    [7]  IEEE; "IEEE Standards for Local Area Networks:  Logical Link         Control" (IEEE 802.2); IEEE, New York, NY; 1985. 
  258.  
  259.    [8]  United States Patent No. 4,689,786; "Local Area Network with         Self Assigned Address Method"; Issued August 25, 1987;         Inventors:  Sidhu, et al.; Assignee:  Apple Computer, Inc. 
  260.  
  261.    [9]  Droms, R., "Dynamic Host Configuration Protocol", RFC 1541,         Bucknell University, October 1993. 
  262.  
  263.    [10] Srinivasan, R., "RPC:  Remote Procedure Call Protocol         Specification, Version 2", RFC 1831, Sun Microsystems, August         1995. 
  264.  
  265. Author's Address: 
  266.  
  267.    David Brownell    SunSoft, Inc    2550 Garcia Way, MS 19-215    Mountain View, CA  94043 
  268.  
  269.    Phone:  +1-415-336-1615    EMail:  dbrownell@sun.com 
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  Brownell                     Informational                     [Page 11] 
  276.  
  277.