home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_q_t / draft-ietf-rolc-nhrp-10.txt < prev    next >
Text File  |  1996-10-02  |  118KB  |  2,688 lines

  1.  
  2. Routing over Large Clouds Working Group                 James V. Luciani
  3. INTERNET-DRAFT                                            (Bay Networks)
  4. <draft-ietf-rolc-nhrp-10.txt>                                  Dave Katz
  5.                                                          (cisco Systems)
  6.                                                         David Piscitello
  7.                                                  (Core Competence, Inc.)
  8.                                                               Bruce Cole
  9.                                                          (cisco Systems)
  10.                                                       Expires March 1997
  11.  
  12.  
  13.                 NBMA Next Hop Resolution Protocol (NHRP)
  14.  
  15.  
  16. Status of this Memo
  17.  
  18.    This document is an Internet-Draft.  Internet-Drafts are working
  19.    documents of the Internet Engineering Task Force (IETF), its areas,
  20.    and its working groups.  Note that other groups may also distribute
  21.    working documents as Internet-Drafts.
  22.  
  23.    Internet-Drafts are draft documents valid for a maximum of six months
  24.    and may be updated, replaced, or obsoleted by other documents at any
  25.    time.  It is inappropriate to use Internet-Drafts as reference
  26.    material or to cite them other than as ``work in progress.''
  27.  
  28.    To learn the current status of any Internet-Draft, please check the
  29.    ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
  30.    Directories on ds.internic.net (US East Coast), nic.nordu.net
  31.    (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
  32.    Rim).
  33.  
  34. Abstract
  35.  
  36.    This document describes the NBMA Next Hop Resolution Protocol (NHRP).
  37.    NHRP can be used by a source station (host or router) connected to a
  38.    Non-Broadcast, Multi-Access (NBMA) subnetwork to determine the
  39.    internetworking layer address and NBMA subnetwork addresses of the
  40.    "NBMA next hop" towards a destination station.  If the destination is
  41.    connected to the NBMA subnetwork, then the NBMA next hop is the
  42.    destination station itself.  Otherwise, the NBMA next hop is the
  43.    egress router from the NBMA subnetwork that is "nearest" to the
  44.    destination station.  NHRP is intended for use in a multiprotocol
  45.    internetworking layer environment over NBMA subnetworks.
  46.  
  47.    Note that while this protocol was developed for use with NBMA
  48.    subnetworks, it is possible, if not likely, that it will be applied
  49.    to BMA subnetworks as well.  However, this usage of NHRP is for
  50.  
  51.  
  52.  
  53. Luciani, Katz, Piscitello, Cole                                 [Page 1]
  54.  
  55. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  56.  
  57.  
  58.    further study.
  59.  
  60.    This document is intended to be a functional superset of the NBMA
  61.    Address Resolution Protocol (NARP) documented in [1].
  62.  
  63.    Operation of NHRP as a means of establishing a transit path across an
  64.    NBMA subnetwork between two routers will be addressed in a separate
  65.    document (see [13]).
  66.  
  67.  
  68. 1. Introduction
  69.  
  70.    The NBMA Next Hop Resolution Protocol (NHRP) allows a source station
  71.    (a host or router), wishing to communicate over a Non-Broadcast,
  72.    Multi-Access (NBMA) subnetwork, to determine the internetworking
  73.    layer addresses and NBMA addresses of suitable "NBMA next hops"
  74.    toward a destination station.  A subnetwork can be non-broadcast
  75.    either because it technically doesn't support broadcasting (e.g., an
  76.    X.25 subnetwork) or because broadcasting is not feasible for one
  77.    reason or another (e.g., an SMDS multicast group or an extended
  78.    Ethernet would be too large).  If the destination is connected to the
  79.    NBMA subnetwork, then the NBMA next hop is the destination station
  80.    itself.  Otherwise, the NBMA next hop is the egress router from the
  81.    NBMA subnetwork that is "nearest" to the destination station.
  82.  
  83.    One way to model an NBMA network is by using the notion of logically
  84.    independent IP subnets (LISs). LISs, as defined in [3] and [4], have
  85.    the following properties:
  86.  
  87.       1)  All members of a LIS have the same IP network/subnet number
  88.           and address mask.
  89.  
  90.       2)  All members of a LIS are directly connected to the same
  91.           NBMA subnetwork.
  92.  
  93.       3)  All hosts and routers outside of the LIS are accessed via a router.
  94.  
  95.       4)  All members of a LIS access each other directly (without routers).
  96.  
  97.    Address resolution as described in [3] and [4] only resolves the next
  98.    hop address if the destination station is a member of the same LIS as
  99.    the source station; otherwise, the source station must forward
  100.    packets to a router that is a member of multiple LIS's.  In multi-LIS
  101.    configurations, hop-by-hop address resolution may not be sufficient
  102.    to resolve the "NBMA next hop" toward the destination station, and IP
  103.    packets may have multiple IP hops through the NBMA subnetwork.
  104.  
  105.    Another way to model NBMA is by using the notion of Local Address
  106.  
  107.  
  108.  
  109. Luciani, Katz, Piscitello, Cole                                 [Page 2]
  110.  
  111. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  112.  
  113.  
  114.    Groups (LAGs) [10]. The essential difference between the LIS and the
  115.    LAG models is that while with the LIS model the outcome of the
  116.    "local/remote" forwarding decision is driven purely by addressing
  117.    information, with the LAG model the outcome of this decision is
  118.    decoupled from the addressing information and is coupled with the
  119.    Quality of Service and/or traffic characteristics.  With the LAG
  120.    model any two entities on a common NBMA network could establish a
  121.    direct communication with each other, irrespective of the entities'
  122.    addresses.
  123.  
  124.    Support for the LAG model assumes the existence of a mechanism that
  125.    allows any entity (i.e., host or router) connected to an NBMA network
  126.    to resolve an internetworking layer address to an NBMA address for
  127.    any other entity connected to the same NBMA network.  This resolution
  128.    would take place regardless of the address assignments to these
  129.    entities. Within the parameters described in this document, NHRP
  130.    describes such a mechanism.  For example, when the internetworking
  131.    layer address is of type IP, once the NBMA next hop has been
  132.    resolved, the source may either start sending IP packets to the
  133.    destination (in a connectionless NBMA subnetwork such as SMDS) or may
  134.    first establish a connection to the destination with the desired
  135.    bandwidth (in a connection-oriented NBMA subnetwork such as ATM).
  136.  
  137.    Use of NHRP may be sufficient for hosts doing address resolution when
  138.    those hosts are directly connected to an NBMA subnetwork, allowing
  139.    for straightforward implementations in NBMA stations. NHRP also has
  140.    the capability of determining the egress point from an NBMA
  141.    subnetwork when the destination is not directly connected to the NBMA
  142.    subnetwork and the identity of the egress router is not learned by
  143.    other methods (such as routing protocols).  Optional extensions to
  144.    NHRP provide additional robustness and diagnosability.
  145.  
  146.    Address resolution techniques such as those described in [3] and [4]
  147.    may be in use when NHRP is deployed.  ARP servers and services over
  148.    NBMA subnetworks may be required to support hosts that are not
  149.    capable of dealing with any model for communication other than the
  150.    LIS model, and deployed hosts may not implement NHRP but may continue
  151.    to support ARP variants such as those described in [3] and [4].  NHRP
  152.    is intended to reduce or eliminate the extra router hops required by
  153.    the LIS model, and can be deployed in a non-interfering manner with
  154.    existing ARP services [14].
  155.  
  156.    The operation of NHRP to establish transit paths across NBMA
  157.    subnetworks between two routers requires additional mechanisms to
  158.    avoid stable routing loops, and will be described in a separate
  159.    document (see [13]).
  160.  
  161.  
  162.  
  163.  
  164.  
  165. Luciani, Katz, Piscitello, Cole                                 [Page 3]
  166.  
  167. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  168.  
  169.  
  170. 2. Overview
  171.  
  172. 2.1 Terminology
  173.  
  174.    The term "network" is highly overloaded, and is especially confusing
  175.    in the context of NHRP.  We use the following terms:
  176.  
  177.      Internetwork layer--the media-independent layer (IP in the case of
  178.      TCP/IP networks).
  179.  
  180.      Subnetwork layer--the media-dependent layer underlying the
  181.      internetwork layer, including the NBMA technology (ATM, X.25, SMDS,
  182.      etc.)
  183.  
  184.      The term "server", unless explicitly stated to the contrary, refers
  185.      to an Next Hop Server (NHS).  An NHS is an entity performing the
  186.      Next Hop Resolution Protocol service within the NBMA cloud.  An NHS
  187.      is always tightly coupled with a routing entity (router, route
  188.      server or edge device) although the converse is not yet guaranteed
  189.      until ubiquitous deployment of this functionality occurs.  Note
  190.      that the presence of intermediate routers that are not coupled with
  191.      an NHS entity may preclude the use of NHRP when source and
  192.      destination stations on different sides of such routers and thus
  193.      such routers may partition NHRP reachability within an NBMA
  194.      network.
  195.  
  196.      The term "client", unless explicitly stated to the contrary, refers
  197.      to an Next Hop Resolution Protocol client (NHC).  An NHC is an
  198.      entity which initiates NHRP requests of various types in order to
  199.      obtain access to the NHRP service.
  200.  
  201.      The term "station" generally refers to a host or router which
  202.      contains an NHRP entity.  Occasionally, the term station will
  203.      describe a "user" of the NHRP client or service functionality; the
  204.      difference in usage is largely semantic.
  205.  
  206. 2.2 Protocol Overview
  207.  
  208.    In this section, we briefly describe how a source S (which
  209.    potentially can be either a router or a host) uses NHRP to determine
  210.    the "NBMA next hop" to destination D.
  211.  
  212.    For administrative and policy reasons, a physical NBMA subnetwork may
  213.    be partitioned into several, disjoint "Logical NBMA subnetworks".  A
  214.    Logical NBMA subnetwork is defined as a collection of hosts and
  215.    routers that share unfiltered subnetwork connectivity over an NBMA
  216.    subnetwork.  "Unfiltered subnetwork connectivity" refers to the
  217.    absence of closed user groups, address screening or similar features
  218.  
  219.  
  220.  
  221. Luciani, Katz, Piscitello, Cole                                 [Page 4]
  222.  
  223. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  224.  
  225.  
  226.    that may be used to prevent direct communication between stations
  227.    connected to the same NBMA subnetwork.  (Hereafter, unless otherwise
  228.    specified, we use the term "NBMA subnetwork" to mean *logical* NBMA
  229.    subnetwork.)
  230.  
  231.    Placed within the NBMA subnetwork are one or more entities that
  232.    implement the NHRP protocol.  Such stations which are capable of
  233.    answering NHRP Resolution Requests are known as "Next Hop Servers"
  234.    (NHSs).  Each NHS serves a set of destination hosts, which may or may
  235.    not be directly connected to the NBMA subnetwork.  NHSs cooperatively
  236.    resolve the NBMA next hop within their logical NBMA subnetwork.  In
  237.    addition to NHRP, NHSs may support "classical" ARP service; however,
  238.    this will be the subject of a separate document [14].
  239.  
  240.    An NHS maintains a cache which contains protocol layer address to
  241.    NBMA subnetwork layer address resolution information.  This cache can
  242.    be constructed from information obtained from NHRP Register packets
  243.    (see Section 5.2.3 and 5.2.4), from NHRP Resolution Request/Reply
  244.    packets, or through mechanisms outside the scope of this document
  245.    (examples of such mechanisms might include ARP[3] and pre-configured
  246.    tables).  Section 6.2 further describes cache management issues.
  247.  
  248.    For a station within a given LIS to avoid providing NHS
  249.    functionality, there must be one or more NHSs within the NBMA
  250.    subnetwork which are providing authoritative address resolution
  251.    information on its behalf.  Such an NHS is said to be "serving" the
  252.    station.  A stations on a LIS that lacks NHS functionality and is a
  253.    client of the NHRP service is known as NHRP Client or just NHCs.  If
  254.    a serving NHS is to be able to supply the address resolution
  255.    information for an NHC then NHSs must exist at each hop along all
  256.    routed paths between the NHC making the resolution request and the
  257.    destination NHC.  The last NHRP entity along the routed path is the
  258.    serving NHS; that is, NHRP Resolution Requests are not forwarded to
  259.    destination NHCs but rather are processed by the serving NHS.
  260.  
  261.    An NHC also maintains a cache of protocol address to NBMA address
  262.    resolution information.  This cache is populated through information
  263.    obtained from NHRP Resolution Reply packets, from manual
  264.    configuration, or through mechanisms outside the scope of this
  265.    document.
  266.  
  267.    The protocol proceeds as follows.  An event occurs triggering station
  268.    S to want to resolve the NBMA address of a path to D.  This is most
  269.    likely to be when a data packet addressed to station D is to be
  270.    emitted from station S (either because station S is a host, or
  271.    station S is a transit router), but the address resolution could also
  272.    be triggered by other means (a routing protocol update packet, for
  273.    example). Station S first determines the next hop to station D
  274.  
  275.  
  276.  
  277. Luciani, Katz, Piscitello, Cole                                 [Page 5]
  278.  
  279. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  280.  
  281.  
  282.    through normal routing processes (for a host, the next hop may simply
  283.    be the default router; for routers, this is the "next hop" to the
  284.    destination internetwork layer address).  If the destination's
  285.    address resolution information is already available in S's cache then
  286.    that information is used to forward the packet.  Otherwise, if the
  287.    next hop is reachable through one of its NBMA interfaces, S
  288.    constructs an NHRP Resolution Request packet (see Section 5.2.1)
  289.    containing station D's internetwork layer address as the (target)
  290.    destination address, S's own internetwork layer address as the source
  291.    address (Next Hop Resolution Request initiator), and station S's NBMA
  292.    addressing information.  Station S may also indicate that it prefers
  293.    an authoritative NHRP Resolution Reply (i.e., station S only wishes
  294.    to receive an NHRP Resolution Reply from an NHS serving the
  295.    destination NHC). Station S emits the NHRP Resolution Request packet
  296.    towards the destination.
  297.  
  298.    If the NHRP Resolution Request is triggered by a data packet then S
  299.    may, while awaiting an NHRP Resolution Reply, choose to dispose of
  300.    the data packet in one of the following ways:
  301.  
  302.      (a)  Drop the packet
  303.      (b)  Retain the packet until the NHRP Resolution Reply arrives
  304.           and a more optimal path is available
  305.      (c)  Forward the packet along the routed path toward D
  306.  
  307.  
  308.    The choice of which of the above to perform is a local policy matter,
  309.    though option (c) is the recommended default, since it may allow data
  310.    to flow to the destination while the NBMA address is being resolved.
  311.    Note that an NHRP Resolution Request for a given destination MUST NOT
  312.    be triggered on every packet.
  313.  
  314.    When the NHS receives an NHRP Resolution Request, a check is made to
  315.    see if it serves station D.  If the NHS does not serve D, the NHS
  316.    forwards the NHRP Resolution Request to another NHS.  Mechanisms for
  317.    determining how to forward the NHRP Resolution Request are discussed
  318.    in Section 3.
  319.  
  320.    If this NHS serves D, the NHS resolves station D's NBMA address
  321.    information, and generates a positive NHRP Resolution Reply on D's
  322.    behalf.  NHRP Resolution Replies in this scenario are always marked
  323.    as "authoritative".  The NHRP Resolution Reply packet contains the
  324.    address resolution information for station D which is to be sent back
  325.    to S.  Note that if station D is not on the NBMA subnetwork, the next
  326.    hop internetwork layer address will be that of the egress router
  327.    through which packets for station D are forwarded.
  328.  
  329.    A transit NHS receiving an NHRP Resolution Reply may cache the
  330.  
  331.  
  332.  
  333. Luciani, Katz, Piscitello, Cole                                 [Page 6]
  334.  
  335. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  336.  
  337.  
  338.    address resolution information contained therein.  To a subsequent
  339.    NHRP Resolution Request, this NHS may respond with the cached, "non-
  340.    authoritative" address resolution information if the NHS is permitted
  341.    to do so (see Sections 5.2.2 and 6.2 for more information on non-
  342.    authoritative versus authoritative NHRP Resolution Replies).  Non-
  343.    authoritative NHRP Resolution Replies are distinguished from
  344.    authoritative NHRP Resolution Replies so that if a communication
  345.    attempt based on non-authoritative information fails, a source
  346.    station can choose to send an authoritative NHRP Resolution Request.
  347.    NHSs MUST NOT respond to authoritative NHRP Resolution Requests with
  348.    cached information.
  349.  
  350.    An NHRP Resolution Reply may be returned directly to the NHRP
  351.    Resolution Request initiator, without traversing the NHSs which
  352.    forwarded the NHRP Resolution Request, if each of the following
  353.    criteria are satisfied:
  354.  
  355.      (a) Direct communication is available via datagram transfer
  356.          (e.g., SMDS) or the NHS has an existing virtual circuit
  357.          connection to the NHC which sent the NHRP Resolution Request
  358.          or NHS is permitted to open a connection the NHC.
  359.      (b) The NHRP Resolution Request initiator has not included the
  360.          NHRP Reverse NHS record Extension (see Section 5.3.3).
  361.      (c) The authentication policy in force permits direct
  362.          communication between the NHS and the NHRP Resolution
  363.          Request initiator.
  364.  
  365.    The purpose of allowing an NHS to send a NHRP Resolution Reply
  366.    directly is to reduce response time.  A consequence of allowing a
  367.    direct NHRP Resolution Reply is that NHSs that would under normal
  368.    circumstances be traversed by the NHRP Resolution Reply would not
  369.    cache next hop information contained therein.  This feature may have
  370.    value when the serving NHS is an egress router for the destination
  371.    address which is off the NBMA cloud (this implies that NHC
  372.    functionality is coresident with the NHS).
  373.  
  374.    If the determination is made that no NHS in the NBMA subnetwork can
  375.    reply to the NHRP Resolution Request for D then a negative NHRP
  376.    Resolution Reply (NAK) is returned.  This occurs when (a) no next-hop
  377.    resolution information is available for station D from any NHS, or
  378.    (b) an NHS is unable to forward the NHRP Resolution Request (e.g.,
  379.    connectivity is lost).
  380.  
  381.    NHRP Registration Requests, NHRP Purge Requests, NHRP Purge Replies,
  382.    and NHRP Error Indications follow a routed path in the same fashion
  383.    that NHRP Resolution Requests and NHRP Resolution Replies do.
  384.    Specifically, "requests" and "indications" follow the routed path
  385.    from Source Protocol Address (which is the address of the station
  386.  
  387.  
  388.  
  389. Luciani, Katz, Piscitello, Cole                                 [Page 7]
  390.  
  391. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  392.  
  393.  
  394.    initiating the communication) to the Destination Protocol Address.
  395.    "Replies", on the other hand, follow the routed path from the
  396.    Destination Protocol Address back to the Source Protocol Address with
  397.    the following exceptions: in the case of a NHRP Registration Reply
  398.    and in the case of an NHC initiated NHRP Purge Request, the packet is
  399.    always returned via a direct VC (see Sections 5.2.4 and 5.2.5); if
  400.    one does not exists then one MUST be created.
  401.  
  402.    NHRP Requests and NHRP Replies do NOT cross the borders of a NBMA
  403.    subnetwork however further study is being done in this area (see
  404.    Section 7).   Thus, the internetwork layer traffic out of and into an
  405.    NBMA subnetwork always traverses an internetwork layer router at its
  406.    border.  Internetwork layer filtering can then be implemented at
  407.    these border routers.
  408.  
  409.    NHRP optionally provides a mechanism to send a NHRP Resolution Reply
  410.    which contains aggregated address resolution information. For
  411.    example, suppose that router X is the next hop from station S to
  412.    station D and that X is an egress router for all stations sharing an
  413.    internetwork layer address prefix with station D.  When an NHRP
  414.    Resolution Reply is generated in response to a NHRP Resolution
  415.    Request, the responder may augment the internetwork layer address of
  416.    station D with a prefix length (see Section 5.2.0.1).  A subsequent
  417.    (non-authoritative) NHRP Resolution Request for some destination that
  418.    shares an internetwork layer address prefix (for the number of bits
  419.    specified in the prefix length) with D may be satisfied with this
  420.    cached information.  See section 6.2 regarding caching issues.
  421.  
  422.    To dynamically detect subnetwork-layer filtering in NBMA subnetworks
  423.    (e.g., X.25 closed user group facility, or SMDS address screens), to
  424.    trace the routed path that an NHRP packet takes, or to provide loop
  425.    detection and diagnostic capabilities, a "Route Record" may be
  426.    included in NHRP packets (see Sections 5.3.2 and 5.3.3).  The Route
  427.    Record extensions are the NHRP Forward Transit NHS Record Extension
  428.    and the NHRP Reverse Transit NHS Record Extension.  They contain the
  429.    internetwork (and subnetwork layer) addresses of all intermediate
  430.    NHSs between source and destination and between destination and
  431.    source respectively.  When a source station is unable to communicate
  432.    with the responder (e.g., an attempt to open an SVC fails), it may
  433.    attempt to do so successively with other subnetwork layer addresses
  434.    in the NHRP Forward Transit NHS Record Extension until it succeeds
  435.    (if authentication policy permits such action).  This approach can
  436.    find a suitable egress point in the presence of subnetwork-layer
  437.    filtering (which may be source/destination sensitive, for instance,
  438.    without necessarily creating separate logical NBMA subnetworks) or
  439.    subnetwork-layer congestion (especially in connection-oriented
  440.    media).
  441.  
  442.  
  443.  
  444.  
  445. Luciani, Katz, Piscitello, Cole                                 [Page 8]
  446.  
  447. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  448.  
  449.  
  450. 3. Deployment
  451.  
  452.    NHRP Resolution Requests traverse one or more hops within an NBMA
  453.    subnetwork before reaching the station that is expected to generate a
  454.    response.  Each station, including the source station, chooses a
  455.    neighboring NHS to which it will forward the NHRP Resolution Request.
  456.    The NHS selection procedure typically involves applying a destination
  457.    protocol layer address to the protocol layer routing table which
  458.    causes a routing decision to be returned.  This routing decision is
  459.    then used to forward the NHRP Resolution Request to the downstream
  460.    NHS. The destination protocol layer address previously mentioned is
  461.    carried within the NHRP Resolution Request packet.  Note that even
  462.    though a protocol layer address was used to acquire a routing
  463.    decision, NHRP packets are not encapsulated within a protocol layer
  464.    header but rather are carried at the NBMA layer using the
  465.    encapsulation described in Section 5.
  466.  
  467.    Each NHS/router examines the NHRP Resolution Request packet on its
  468.    way toward the destination.  Each NHS which the NHRP packet traverses
  469.    on the way to the packet's destination might modify the packet (e.g.,
  470.    updating the Forward Record extension).  Ignoring error situations,
  471.    the NHRP Resolution Request eventually arrives at a station that is
  472.    to generate an NHRP Resolution Reply.  This responding station
  473.    "serves" the destination.  The responding station generates a NHRP
  474.    Resolution Reply using the source protocol address from within the
  475.    NHRP packet to determine where the NHRP Resolution Reply should be
  476.    sent.
  477.  
  478.    Rather than use routing to determine the next hop for an NHRP packet,
  479.    an NHS may use other applicable means (such as static configuration
  480.    information ) in order to determine to which neighboring NHSs to
  481.    forward the NHRP Resolution Request packet as long as such other
  482.    means would not cause the NHRP packet to arrive at an NHS which is
  483.    not along the routed path.  The use of static configuration
  484.    information for this purpose is beyond the scope of this document.
  485.  
  486.    The NHS serving a particular destination must lie along the routed
  487.    path to that destination.  In practice, this means that all egress
  488.    routers must double as NHSs serving the destinations beyond them, and
  489.    that hosts on the NBMA subnetwork are served by routers that double
  490.    as NHSs.  Also, this implies that forwarding of NHRP packets within
  491.    an NBMA subnetwork requires a contiguous deployment of NHRP capable
  492.    routers.  It is important that, in a given LIS/LAG which is using
  493.    NHRP, all NHSs within the LIS/LAG have at least some portion of their
  494.    resolution databases synchronized so that a packet arriving at one
  495.    router/NHS in a given LIS/LAG will be forwarded in the same fashion
  496.    as packet arriving at a different router/NHS for the given LIS/LAG.
  497.    One method, among others, is to use the Server Cache Synchronization
  498.  
  499.  
  500.  
  501. Luciani, Katz, Piscitello, Cole                                 [Page 9]
  502.  
  503. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  504.  
  505.  
  506.    Protocol (SCSP) [12].  It is RECOMMENDED that SCSP be the method used
  507.    when a LIS/LAG contains two or more router/NHSs.
  508.  
  509.    During migration to NHRP, it cannot be expected that all routers
  510.    within the NBMA subnetwork are NHRP capable.  Thus, NHRP traffic
  511.    which would otherwise need to be forwarded through such routers can
  512.    be expected to be dropped due to the NHRP packet not being
  513.    recognized.  In this case, NHRP will be unable to establish any
  514.    transit paths whose discovery requires the traversal of the non-NHRP
  515.    speaking routers.  If the client has tried and failed to acquire a
  516.    cut through path then the client should use the network layer routed
  517.    path as a default.
  518.  
  519.  
  520.    If an NBMA technology offers a group, an anycast, or a multicast
  521.    addressing feature then the NHC may be configured with such an
  522.    address which would be assigned to the appropriate NHSs.  The NHC
  523.    might then submit NHRP Resolution Requests to such an address,
  524.    eliciting a response from one or more NHSs, depending on the response
  525.    strategy selected.  Note that the constraints described in Section 2
  526.    regarding directly sending NHRP Resolution Reply may apply.
  527.  
  528.    When an NHS "serves" an NHC, the NHS MUST send NHRP messages destined
  529.    for the NHC directly to the NHC.  That is, the NHRP message MUST NOT
  530.    transit through any NHS which is not serving the NHC when the NHRP
  531.    message is currently at an NHS which does serve the NHC (this, of
  532.    course, assumes the NHRP message is destined for the NHC).  Further,
  533.    an NHS which serves an NHC SHOULD have a direct NBMA level connection
  534.    to that NHC (see Section 5.2.3 and 5.2.4 for examples).
  535.  
  536.    With the exception of NHRP Registration Requests (see Section 5.2.3
  537.    and 5.2.4 for details of the NHRP Registration Request case), an NHC
  538.    MUST send NHRP messages over a direct NBMA level connection between
  539.    the serving NHS and the served NHC.
  540.  
  541.    It may not be desirable to maintain semi-permanent NBMA level
  542.    connectivity between the NHC and the NHS.   In this case, when NBMA
  543.    level connectivity is initially setup between the NHS and the NHC (as
  544.    described in Section 5.2.4), the NBMA address of the NHS should be
  545.    obtained through the NBMA level signaling technology.  This address
  546.    should be stored for future use in setting up subsequent NBMA level
  547.    connections.  A somewhat more information rich technique to obtain
  548.    the address information (and more) of the serving NHS would be for
  549.    the NHC to include the Responder Address extension (see Section
  550.    5.3.1) in the NHRP Registration Request and to store the information
  551.    returned to the NHC in the Responder Address extension which is
  552.    subsequently included in the NHRP Registration Reply.  Note also
  553.    that, in practice, a client's default router should also be its NHS;
  554.  
  555.  
  556.  
  557. Luciani, Katz, Piscitello, Cole                                [Page 10]
  558.  
  559. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  560.  
  561.  
  562.    thus a client may be able to know the NBMA address of its NHS from
  563.    the configuration which was already required for the client to be
  564.    able to communicate.  Further, as mentioned in Section 4, NHCs may be
  565.    configured with the addressing information of one or more NHSs.
  566.  
  567.  
  568. 4. Configuration
  569.  
  570.    Next Hop Clients
  571.  
  572.      An NHC connected to an NBMA subnetwork MAY be configured with the
  573.      Protocol address(es) and NBMA address(es) of its NHS(s).  The
  574.      NHS(s) will likely also represent the NHC's default or peer
  575.      routers, so their NBMA addresses may be obtained from the NHC's
  576.      existing configuration.  If the NHC is attached to several
  577.      subnetworks (including logical NBMA subnetworks), the NHC should
  578.      also be configured to receive routing information from its NHS(s)
  579.      and peer routers so that it can determine which internetwork layer
  580.      networks are reachable through which subnetworks.
  581.  
  582.    Next Hop Servers
  583.  
  584.      An NHS is configured with knowledge of its own internetwork layer
  585.      and NBMA addresses.  An NHS MAY also be configured with a set of
  586.      internetwork layer address prefixes that correspond to the
  587.      internetwork layer addresses of the stations it serves. The NBMA
  588.      addresses of the stations served by the NHS may be learned via NHRP
  589.      Registration packets.
  590.  
  591.      If a served NHC is attached to several subnetworks, the
  592.      router/route-server coresident with the serving NHS may also need
  593.      to be configured to advertise routing information to such NHCs.
  594.  
  595.      If an NHS acts as an egress router for stations connected to other
  596.      subnetworks than the NBMA subnetwork, the NHS must, in addition to
  597.      the above, be configured to exchange routing information between
  598.      the NBMA subnetwork and these other subnetworks.
  599.  
  600.      In all cases, routing information is exchanged using conventional
  601.      intra-domain and/or inter-domain routing protocols.
  602.  
  603.  
  604.  
  605. 5. NHRP Packet Formats
  606.    This section describes the format of NHRP packets.  In the following,
  607.    unless otherwise stated explicitly, the unqualified term "request"
  608.    refers generically to any of the NHRP packet types which are
  609.    "requests".  Further, unless otherwise stated explicitly, the
  610.  
  611.  
  612.  
  613. Luciani, Katz, Piscitello, Cole                                [Page 11]
  614.  
  615. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  616.  
  617.  
  618.    unqualified term "reply" refers generically to any of the NHRP packet
  619.    types which are "replies".
  620.  
  621.    An NHRP packet consists of a Fixed Part, a Mandatory Part, and an
  622.    Extensions Part.  The Fixed Part is common to all NHRP packet types.
  623.    The Mandatory Part MUST be present, but varies depending on packet
  624.    type.  The Extensions Part also varies depending on packet type, and
  625.    need not be present.
  626.  
  627.    The length of the Fixed Part is fixed at 20 octets.  The length of
  628.    the Mandatory Part is determined by the contents of the extensions
  629.    offset field (ar$extoff).  If ar$extoff=0x0 then the mandatory part
  630.    length is equal to total packet length (ar$pktsz) minus 20 otherwise
  631.    the mandatory part length is equal to ar$extoff minus 20.  The length
  632.    of the Extensions Part is implied by ar$pktsz minus ar$extoff.  NHSs
  633.    may increase the size of an NHRP packet as a result of extension
  634.    processing, but not beyond the offered maximum SDU size of the NBMA
  635.    network.
  636.  
  637.    NHRP packets are actually members of a wider class of address mapping
  638.    and management protocols being developed by the IETF. A specific
  639.    encapsulation, based on the native formats used on the particular
  640.    NBMA network over which NHRP is carried, indicates the generic IETF
  641.    mapping and management protocol. For example, SMDS networks always
  642.    use LLC/SNAP encapsulation at the NBMA layer [4], and an NHRP packet
  643.    is preceded by the following LLC/SNAP encapsulation:
  644.  
  645.    [0xAA-AA-03] [0x00-00-5E] [0x00-03]
  646.  
  647.    The first three octets are LLC, indicating that SNAP follows.  The
  648.    SNAP OUI portion is the IANA's OUI, and the SNAP PID portion
  649.    identifies the mapping and management protocol. A field in the Fixed
  650.    Header following the encapsulation indicates that it is NHRP.
  651.  
  652.    ATM uses either LLC/SNAP encapsulation of each packet (including
  653.    NHRP), or uses no encapsulation on VCs dedicated to a single protocol
  654.    (see [7]).  Frame Relay and X.25 both use NLPID/SNAP encapsulation or
  655.    identification of NHRP, using a NLPID of 0x0080 and the same SNAP
  656.    contents as above (see [8], [9]).
  657.  
  658.    Fields marked "unused" MUST be set to zero on transmission, and
  659.    ignored on receipt.
  660.  
  661.    Most packet types (ar$op.type) have both internetwork layer
  662.    protocol-independent fields and protocol-specific fields. The
  663.    protocol type/snap fields (ar$pro.type/snap) qualify the format of
  664.    the protocol-specific fields.
  665.  
  666.  
  667.  
  668.  
  669. Luciani, Katz, Piscitello, Cole                                [Page 12]
  670.  
  671. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  672.  
  673.  
  674. 5.1 NHRP Fixed Header
  675.  
  676.    The Fixed Part of the NHRP packet contains those elements of the NHRP
  677.    packet which are always present and do not vary in size with the type
  678.    of packet.
  679.  
  680.  
  681.     0                   1                   2                   3
  682.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  683.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  684.    |            ar$afn             |          ar$pro.type          |
  685.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  686.    |                          ar$pro.snap                          |
  687.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  688.    |  ar$pro.snap  |   ar$hopcnt   |            ar$pktsz           |
  689.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  690.    |           ar$chksum           |            ar$extoff          |
  691.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  692.    | ar$op.version |   ar$op.type  |    ar$shtl    |    ar$sstl    |
  693.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  694.  
  695.  
  696.    ar$afn
  697.      Defines the type of "link layer" addresses being carried.  This
  698.      number is taken from the 'address family number' list specified in
  699.      [6].  This field has implications to the coding of ar$shtl and
  700.      ar$sstl as described below.
  701.  
  702.    ar$pro.type
  703.      field is a 16 bit unsigned integer representing the following
  704.      number space:
  705.  
  706.        0x0000 to 0x00FF  Protocols defined by the equivalent NLPIDs.
  707.        0x0100 to 0x03FF  Reserved for future use by the IETF.
  708.        0x0400 to 0x04FF  Allocated for use by the ATM Forum.
  709.        0x0500 to 0x05FF  Experimental/Local use.
  710.        0x0600 to 0xFFFF  Protocols defined by the equivalent Ethertypes.
  711.  
  712.      (based on the observations that valid Ethertypes are never smaller
  713.      than 0x600, and NLPIDs never larger than 0xFF.)
  714.  
  715.    ar$pro.snap
  716.      When ar$pro.type has a value of 0x0080, a SNAP encoded extension is
  717.      being used to encode the protocol type. This snap extension is
  718.      placed in the ar$pro.snap field.  This is termed the 'long form'
  719.      protocol ID. If ar$pro != 0x0080 then the ar$pro.snap field MUST be
  720.      zero on transmit and ignored on receive. The ar$pro.type field
  721.      itself identifies the protocol being referred to. This is termed
  722.  
  723.  
  724.  
  725. Luciani, Katz, Piscitello, Cole                                [Page 13]
  726.  
  727. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  728.  
  729.  
  730.      the 'short form' protocol ID.
  731.  
  732.      In all cases, where a protocol has an assigned number in the
  733.      ar$pro.type space (excluding 0x0080) the short form MUST be used
  734.      when transmitting NHRP messages; i.e., if Ethertype or NLPID
  735.      codings exist then they are used on transmit rather than the
  736.      ethertype.   If both Ethertype and NLPID codings exist then when
  737.      transmitting NHRP messages, the Ethertype coding MUST be used (this
  738.      is consistent with RFC 1483 coding).  So, for example, the
  739.      following codings exist for IP:
  740.  
  741.        SNAP:      ar$pro.type = 0x00-80, ar$pro.snap = 0x00-00-00-08-00
  742.        NLPID:     ar$pro.type = 0x00-CC, ar$pro.snap = 0x00-00-00-00-00
  743.        Ethertype: ar$pro.type = 0x08-00, ar$pro.snap = 0x00-00-00-00-00
  744.  
  745.      and thus, since the Ethertype coding exists, it is used in
  746.      preference.
  747.  
  748.    ar$hopcnt
  749.      The Hop count indicates the maximum number of NHSs that an NHRP
  750.      packet is allowed to traverse before being discarded.
  751.  
  752.    ar$pktsz
  753.      The total length of the NHRP packet, in octets (excluding link
  754.      layer encapsulation).
  755.  
  756.    ar$chksum
  757.      The standard IP checksum over the entire NHRP packet (starting with
  758.      the fixed header).  If only the hop count field is changed, the
  759.      checksum is adjusted without full recomputation.  The checksum is
  760.      completely recomputed when other header fields are changed.
  761.  
  762.    ar$extoff
  763.      This field identifies the existence and location of NHRP
  764.      extensions.  If this field is 0 then no extensions exist otherwise
  765.      this field represents the offset from the beginning of the NHRP
  766.      packet (i.e., starting from the ar$afn field) of the first
  767.      extension.
  768.  
  769.    ar$op.version
  770.      This field indicates what version of generic address mapping and
  771.      management protocol is represented by this message.
  772.  
  773.        0               MARS protocol [11].
  774.        1               NHRP as defined in this document.
  775.        0x02 - 0xEF     Reserved for future use by the IETF.
  776.        0xF0 - 0xFE     Allocated for use by the ATM Forum.
  777.        0xFF            Experimental/Local use.
  778.  
  779.  
  780.  
  781. Luciani, Katz, Piscitello, Cole                                [Page 14]
  782.  
  783. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  784.  
  785.  
  786.    ar$op.type
  787.      When ar$op.version == 1, this is the NHRP packet type: NHRP
  788.      Resolution Request(1), NHRP Resolution Reply(2), NHRP Registration
  789.      Request(3), NHRP Registration Reply(4), NHRP Purge Request(5), NHRP
  790.      Purge Reply(6), or NHRP Error Indication(7).  Use of NHRP packet
  791.      Types in the range 128 to 255 are reserved for research or use in
  792.      other protocol development and will be administered by IANA.
  793.  
  794.    ar$shtl
  795.      Type & length of source NBMA address interpreted in the context of
  796.      the 'address family number'[6] indicated by ar$afn.  See below for
  797.      more details.
  798.  
  799.    ar$sstl
  800.      Type & length of source NBMA subaddress interpreted in the context
  801.      of the 'address family number'[6] indicated by ar$afn.  When an
  802.      NBMA technology has no concept of a subaddress, the subaddress
  803.      length is always coded ar$sstl = 0 and no storage is allocated for
  804.      the subaddress in the appropriate mandatory part.  See below for
  805.      more details.
  806.  
  807.    Subnetwork layer address type/length fields (e.g., ar$shtl, Cli Addr
  808.    T/L) and subnetwork layer subaddresses type/length fields (e.g.,
  809.    ar$sstl, Cli SAddr T/L) are coded as follows:
  810.  
  811.     7 6 5 4 3 2 1 0
  812.    +-+-+-+-+-+-+-+-+
  813.    |0|x|  length   |
  814.    +-+-+-+-+-+-+-+-+
  815.  
  816.    The most significant bit is reserved and MUST be set to zero. The
  817.    second most significant bit (x) is a flag indicating whether the
  818.    address being referred to is in:
  819.  
  820.       - NSAP format (x = 0).
  821.       - Native E.164 format (x = 1).
  822.  
  823.    For NBMA technologies that use neither NSAP nor E.164 format
  824.    addresses, x = 0 SHALL be used to indicate the native form for the
  825.    particular NBMA technology.
  826.  
  827.    If the NBMA network is ATM and a subaddress (e.g., Source NBMA
  828.    SubAddress, Client NBMA SubAddress) is to be included in any part of
  829.    the NHRP packet then ar$afn MUST be set to 0x000F; further, the
  830.    subnetwork layer address type/length fields (e.g., ar$shtl, Cli Addr
  831.    T/L) and subnetwork layer subaddress type/length fields (e.g.,
  832.    ar$sstl, Cli SAddr T/L) MUST be coded as in [11].  If the NBMA
  833.    network is ATM and no subaddress field is to be included in any part
  834.  
  835.  
  836.  
  837. Luciani, Katz, Piscitello, Cole                                [Page 15]
  838.  
  839. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  840.  
  841.  
  842.    of the NHRP packet then ar$afn MAY be set to 0x0003 (NSAP) or 0x0008
  843.    (E.164) accordingly.
  844.  
  845.    The bottom 6 bits is an unsigned integer value indicating the length
  846.    of the associated NBMA address in octets. If this value is zero the
  847.    flag x is ignored.
  848.  
  849. 5.2.0 Mandatory Part
  850.  
  851.    The Mandatory Part of the NHRP packet contains the operation specific
  852.    information (e.g., NHRP Resolution Request/Reply, etc.) and variable
  853.    length data which is pertinent to the packet type.
  854.  
  855. 5.2.0.1 Mandatory Part Format
  856.  
  857.    Sections 5.2.1 through 5.2.6 have a very similar mandatory part.
  858.    This mandatory part includes a common header and zero or more Client
  859.    Information Entries (CIEs). Section 5.2.7 has a different format
  860.    which is specified in that section.
  861.  
  862.    The common header looks like the following:
  863.  
  864.     0                   1                   2                   3
  865.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  866.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  867.    | Src Proto Len | Dst Proto Len |           Flags               |
  868.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  869.    |                         Request ID                            |
  870.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  871.    |            Source NBMA Address (variable length)              |
  872.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  873.    |          Source NBMA Subaddress (variable length)             |
  874.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  875.    |          Source Protocol Address (variable length)            |
  876.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  877.    |       Destination  Protocol Address (variable length)         |
  878.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  879.  
  880.    And the CIEs have the following format:
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893. Luciani, Katz, Piscitello, Cole                                [Page 16]
  894.  
  895. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  896.  
  897.  
  898.     0                   1                   2                   3
  899.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  900.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  901.    |    Code       | Prefix Length |         unused                |
  902.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  903.    |  Maximum Transmission Unit    |        Holding Time           |
  904.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  905.    |  Cli Addr T/L | Cli SAddr T/L | Cli Proto Len |  Preference   |
  906.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  907.    |            Client NBMA Address (variable length)              |
  908.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  909.    |           Client NBMA Subaddress (variable length)            |
  910.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  911.    |          Client Protocol Address (variable length)            |
  912.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  913.                         .....................
  914.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  915.    |    Code       | Prefix Length |         unused                |
  916.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  917.    |  Maximum Transmission Unit    |        Holding Time           |
  918.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  919.    |  Cli Addr T/L | Cli SAddr T/L | Cli Proto Len |  Preference   |
  920.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  921.    |            Client NBMA Address (variable length)              |
  922.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  923.    |           Client NBMA Subaddress (variable length)            |
  924.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  925.    |          Client Protocol Address (variable length)            |
  926.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  927.  
  928.    The meanings of the fields are as follows:
  929.  
  930.    Src Proto Len
  931.      This field holds the length in octets of the Source Protocol
  932.      Address.
  933.  
  934.    Dst Proto Len
  935.      This field holds the length in octets of the Destination Protocol
  936.      Address.
  937.  
  938.    Flags
  939.      These flags are specific to the given message type and they are
  940.      explained in each section.
  941.  
  942.    Request ID
  943.      A value which, when coupled with the address of the source,
  944.      provides a unique identifier for the information contained in a
  945.      "request" packet.  This value is copied directly from an "request"
  946.  
  947.  
  948.  
  949. Luciani, Katz, Piscitello, Cole                                [Page 17]
  950.  
  951. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  952.  
  953.  
  954.      packet into the associated "reply".  When a sender of a "request"
  955.      receives "reply", it will compare the Request ID and source address
  956.      information in the received "reply" against that found in its
  957.      outstanding "request" list.  When a match is found then the
  958.      "request" is considered to be acknowledged.
  959.  
  960.      The value is taken from a 32 bit counter that is incremented each
  961.      time a new "request" is transmitted.  The same value MUST be used
  962.      when resending a "request", i.e., when a "reply" has not been
  963.      received for a "request" and a retry is sent after an appropriate
  964.      interval.
  965.  
  966.    The NBMA address/subaddress form specified below allows combined
  967.    E.164/NSAPA form of NBMA addressing. For NBMA technologies without a
  968.    subaddress concept, the subaddress field is always ZERO length and
  969.    ar$sstl = 0.
  970.  
  971.    Source NBMA Address
  972.      The Source NBMA address field is the address of the source station
  973.      which is sending the "request". If the field's length as specified
  974.      in ar$shtl is 0 then no storage is allocated for this address at
  975.      all.
  976.  
  977.    Source NBMA SubAddress
  978.      The Source NBMA subaddress field is the address of the source
  979.      station which is sending the "request".  If the field's length as
  980.      specified in ar$sstl is 0 then no storage is allocated for this
  981.      address at all.
  982.  
  983.  
  984.    "Requests" and "indications" follow the routed path from Source
  985.    Protocol Address to the Destination Protocol Address. "Replies", on
  986.    the other hand, follow the routed path from the Destination Protocol
  987.    Address back to the Source Protocol Address with the following
  988.    exceptions: in the case of a NHRP Registration Reply and in the case
  989.    of an NHC initiated NHRP Purge Request, the packet is always returned
  990.    via a direct VC (see Sections 5.2.4 and 5.2.5).
  991.  
  992.    Source Protocol Address
  993.      This is the protocol address of the station which is sending the
  994.      "request".  This is also the protocol address of the station toward
  995.      which a "reply" packet is sent.
  996.  
  997.    Destination Protocol Address
  998.      This is the protocol address of the station toward which a
  999.      "request" packet is sent.
  1000.  
  1001.    Code
  1002.      This field is message specific.  See the relevant message sections
  1003.  
  1004.  
  1005.  
  1006. Luciani, Katz, Piscitello, Cole                                [Page 18]
  1007.  
  1008. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1009.  
  1010.  
  1011.      below.  In general, this field is a NAK code; i.e., when the field
  1012.      is 0 in a reply then the packet is acknowledging a request and if
  1013.      it contains any other value the packet contains a negative
  1014.      acknowledgment.
  1015.  
  1016.    Prefix Length
  1017.      This field is message specific.  See the relevant message sections
  1018.      below.  In general, however, this fields is used to indicate that
  1019.      the information carried in an NHRP message pertains to an
  1020.      equivalence class of internetwork layer addresses rather than just
  1021.      a single internetwork layer address specified. All internetwork
  1022.      layer addresses that match the first "Prefix Length" bit positions
  1023.      for the specific internetwork layer address are included in the
  1024.      equivalence class.  If this field is set to 0x00 then this field
  1025.      MUST be ignored and no equivalence information is assumed (note
  1026.      that 0x00 is thus equivalent to 0xFF).
  1027.  
  1028.  
  1029.    Maximum Transmission Unit
  1030.      This field gives the maximum transmission unit for the relevant
  1031.      client station.  If this value is 0 then either the default MTU is
  1032.      used or the MTU negotiated via signaling is used if such
  1033.      negotiation is possible for the given NBMA.
  1034.  
  1035.    Holding Time
  1036.      The Holding Time field specifies the number of seconds for which
  1037.      the Next Hop NBMA information specified in the CIE is considered to
  1038.      be valid.  Cached information SHALL be discarded when the holding
  1039.      time expires.  This field must be set to 0 on a NAK.
  1040.  
  1041.    Cli Addr T/L
  1042.      Type & length of next hop NBMA address specified in the CIE.  This
  1043.      field is interpreted in the context of the 'address family
  1044.      number'[6] indicated by ar$afn (e.g., ar$afn=0x0003 for ATM).
  1045.  
  1046.    Cli SAddr T/L
  1047.      Type & length of next hop NBMA subaddress specified in the CIE.
  1048.      This field is interpreted in the context of the 'address family
  1049.      number'[6] indicated by ar$afn (e.g., ar$afn=0x0015 for ATM makes
  1050.      the address an E.164 and the subaddress an ATM Forum NSAP address).
  1051.      When an NBMA technology has no concept of a subaddress, the
  1052.      subaddress is always null with a length of 0.  When the address
  1053.      length is specified as 0 no storage is allocated for the address.
  1054.  
  1055.    Cli Proto Len
  1056.      This field holds the length in octets of the Client Protocol
  1057.      Address specified in the CIE.
  1058.  
  1059.  
  1060.  
  1061.  
  1062. Luciani, Katz, Piscitello, Cole                                [Page 19]
  1063.  
  1064. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1065.  
  1066.  
  1067.    Preference
  1068.      This field specifies the preference for use of the specific CIE
  1069.      relative to other CIEs.  Higher values indicate higher preference.
  1070.      Action taken when multiple CIEs have equal or highest preference
  1071.      value is a local matter.
  1072.  
  1073.    Client NBMA Address
  1074.      This is the client's NBMA address.
  1075.  
  1076.    Client NBMA SubAddress
  1077.      This is the client's NBMA subaddress.
  1078.  
  1079.    Client Protocol Address
  1080.      This is the client's internetworking layer address specified.
  1081.  
  1082.    Note that an NHS SHOULD NOT cache source information which is in an
  1083.    NHRP message because this information could be inappropriately used
  1084.    to set up a cut-through without doing proper filtering along a routed
  1085.    path.  Further, in the case where a distributed router exists in the
  1086.    network, incorrect or incomplete information may be included in the
  1087.    source information.
  1088.  
  1089. 5.2.1 NHRP Resolution Request
  1090.  
  1091.    The NHRP Resolution Request packet has a Type code of 1. Its
  1092.    mandatory part is coded as described in Section 5.2.0.1 and the
  1093.    message specific meanings of the fields are as follows:
  1094.  
  1095.    Flags - The flags field is coded as follows:
  1096.  
  1097.       0                   1
  1098.       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  1099.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1100.      |Q|A|B|U|         unused        |
  1101.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1102.  
  1103.      Q
  1104.        Set if the station sending the NHRP Resolution Request is a
  1105.        router;  clear if the it is a host.
  1106.  
  1107.      A
  1108.        This bit is set in a NHRP Resolution Request if only
  1109.        authoritative next hop information is desired and is clear
  1110.        otherwise.  See the NHRP Resolution Reply section below for
  1111.        further details on the "A" bit and its usage.
  1112.  
  1113.      B
  1114.        Unused (clear on transmit)
  1115.  
  1116.  
  1117.  
  1118. Luciani, Katz, Piscitello, Cole                                [Page 20]
  1119.  
  1120. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1121.  
  1122.  
  1123.      U
  1124.        This is the Uniqueness bit. This bit aids in duplicate address
  1125.        detection.  When this bit is set in an NHRP Resolution Request
  1126.        and one or more entries exist in the NHS cache which meet the
  1127.        requirements of the NHRP Resolution Request then only the CIE in
  1128.        the NHS's cache with this bit set will be returned.  Note that
  1129.        even if this bit was set at registration time, there may still be
  1130.        multiple CIEs that might fulfill the NHRP Resolution Request
  1131.        because an entire subnet can be registered through use of the
  1132.        Prefix Length in the CIE and the address of interest might be
  1133.        within such a subnet. If the "uniqueness" bit is set and the
  1134.        responding NHS has one or more cache entries which match the
  1135.        request but no such cache entry has the "uniqueness" bit set,
  1136.        then the NHRP Resolution Reply returns with a NAK code of "13 -
  1137.        Binding Exists But Is Not Unique" and no CIE is included.  If a
  1138.        client wishes  to  receive  non- unique  Next  Hop Entries, then
  1139.        the client must have the "uniqueness" bit set to zero in its NHRP
  1140.        Resolution Request. Note that when this bit is set in an NHRP
  1141.        Registration Request, only a single CIE may be specified in the
  1142.        NHRP Registration Request and that CIE must have the Prefix
  1143.        Length field set to 0xFF.
  1144.  
  1145.    Zero or one CIEs (see Section 5.2.0.1) may be specified in an NHRP
  1146.    Resolution Request.  If one is specified then that entry carries the
  1147.    pertinent information for the client sourcing the NHRP Resolution
  1148.    Request.  Usage of the CIE in the NHRP Resolution Request is
  1149.    described below:
  1150.  
  1151.      Prefix Length
  1152.        If a CIE is specified in the NHRP Resolution Request then the
  1153.        Prefix Length field may be used to qualify the widest acceptable
  1154.        prefix which may be used to satisfy the NHRP Resolution Request.
  1155.        In the case of NHRP Resolution Request/Reply, the Prefix Length
  1156.        specifies the equivalence class of addresses which match the
  1157.        first "Prefix Length" bit positions of the Destination Protocol
  1158.        Address.  If the "U" bit is set in the common header then this
  1159.        field MUST be set to 0xFF.
  1160.  
  1161.      Maximum Transmission Unit
  1162.        This field gives the maximum transmission unit for the source
  1163.        station.  A possible use of this field in the NHRP Resolution
  1164.        Request packet is for the NHRP Resolution Requester to ask for a
  1165.        target MTU. In lieu of that usage, the CIE must be omitted.
  1166.  
  1167.      All other fields in the CIE MUST be ignored and SHOULD be set to 0.
  1168.  
  1169.    The Destination Protocol Address in the common header of the
  1170.    Mandatory Part of this message contains the protocol address of the
  1171.  
  1172.  
  1173.  
  1174. Luciani, Katz, Piscitello, Cole                                [Page 21]
  1175.  
  1176. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1177.  
  1178.  
  1179.    station for which resolution is desired.  An NHC MUST send the NHRP
  1180.    Resolution Request directly to one of its serving NHSs (see Section 3
  1181.    for more information).
  1182.  
  1183.  
  1184. 5.2.2 NHRP Resolution Reply
  1185.  
  1186.    The NHRP Resolution Reply packet has a Type code of 2. CIEs
  1187.    correspond to Next Hop Entries in an NHS's cache which match the
  1188.    criteria in the NHRP Resolution Request.  Its mandatory part is coded
  1189.    as described in Section 5.2.0.1.  The message specific meanings of
  1190.    the fields are as follows:
  1191.  
  1192.    Flags - The flags field is coded as follows:
  1193.  
  1194.       0                   1
  1195.       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  1196.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1197.      |Q|A|B|U|         unused        |
  1198.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1199.  
  1200.      Q
  1201.        Copied from the NHRP Resolution Request.  Set if the NHRP
  1202.        Resolution Requester is a router;  clear if it is a host.
  1203.  
  1204.      A
  1205.        Set if the next hop CIE in the NHRP Resolution Reply is
  1206.        authoritative; clear if the NHRP Resolution Reply is non-
  1207.        authoritative.
  1208.  
  1209.        When an NHS receives a NHRP Resolution Request for authoritative
  1210.        information for which it is the authoritative source, it MUST
  1211.        respond with a NHRP Resolution Reply containing all and only
  1212.        those next hop CIEs which are contained in the NHS's cache which
  1213.        both match the criteria of the NHRP Resolution Request and are
  1214.        authoritative cache entries.  An NHS is an authoritative source
  1215.        for a NHRP Resolution Request if the information in the NHS's
  1216.        cache matches the NHRP Resolution Request criteria and that
  1217.        information was obtained through a NHRP Registration Request or
  1218.        through synchronization with an NHS which obtained this
  1219.        information through a NHRP Registration Request.  An
  1220.        authoritative cache entry is one which is obtained through a NHRP
  1221.        Registration Request or through synchronization with an NHS which
  1222.        obtained this information through a NHRP Registration Request.
  1223.  
  1224.        An NHS obtains non-authoritative CIEs through promiscuous
  1225.        listening to NHRP packets other than NHRP Registrations which are
  1226.        directed at it.  A NHRP Resolution Request which indicates a
  1227.  
  1228.  
  1229.  
  1230. Luciani, Katz, Piscitello, Cole                                [Page 22]
  1231.  
  1232. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1233.  
  1234.  
  1235.        request for non-authoritative information should cause a NHRP
  1236.        Resolution Reply which contains all entries in the replying NHS's
  1237.        cache (i.e., both authoritative and non-authoritative) which
  1238.        match the criteria specified in the request.
  1239.  
  1240.      B
  1241.        Set if the association between the destination and the next hop
  1242.        information is guaranteed to be stable for the lifetime of the
  1243.        information (the holding time).  This is the case if the Next Hop
  1244.        protocol address identifies the destination (though it may be
  1245.        different in value than the Destination address if the
  1246.        destination system has multiple addresses) or if the destination
  1247.        is not connected directly to the NBMA subnetwork but the egress
  1248.        router to that destination is guaranteed to be stable (such as
  1249.        when the destination is immediately adjacent to the egress router
  1250.        through a non-NBMA interface).  This information affects caching
  1251.        strategies (see section 6.2).
  1252.  
  1253.      U
  1254.        This is the Uniqueness bit. See the NHRP Resolution Request
  1255.        section above for details.  When this bit is set only, only one
  1256.        CIE is included since only one unique binding should exist in an
  1257.        NHS's cache.
  1258.  
  1259.    One or more CIEs are specified in the NHRP Resolution Reply. Each CIE
  1260.    contains NHRP next hop information which the responding NHS has
  1261.    cached and which matches the parameters specified in the NHRP
  1262.    Resolution Request.  If no match is found by the NHS issuing the NHRP
  1263.    Resolution Reply then a single CIE is enclosed with the a CIE Code
  1264.    set appropriately (see below) and all other fields MUST be ignored
  1265.    and SHOULD be set to 0.  In order to facilitate the use of NHRP by
  1266.    minimal client implementations, the first CIE MUST contain the next
  1267.    hop with the highest preference value so that such an implementation
  1268.    need parse only a single CIE.
  1269.  
  1270.      Code
  1271.        If this field is set to zero then this packet contains a
  1272.        positively acknowledged NHRP Resolution Reply.  If this field
  1273.        contains any other value then this message contains an NHRP
  1274.        Resolution Reply NAK which means that an appropriate
  1275.        internetworking layer to NBMA address binding was not available
  1276.        in the responding NHS's cache.  If NHRP Resolution Reply contains
  1277.        a Client Information Entry with a NAK Code other than 0 then it
  1278.        MUST NOT contain any other CIE.  Currently defined NAK Codes are
  1279.        as follows:
  1280.  
  1281.        12 - No Internetworking Layer Address to NBMA Address Binding
  1282.        Exists
  1283.  
  1284.  
  1285.  
  1286. Luciani, Katz, Piscitello, Cole                                [Page 23]
  1287.  
  1288. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1289.  
  1290.  
  1291.          This code states that there were absolutely no internetworking
  1292.          layer address to NBMA address bindings found in the responding
  1293.          NHS's cache.
  1294.  
  1295.        13 - Binding Exists But Is Not Unique
  1296.  
  1297.          This code states that there were one or more internetworking
  1298.          layer address to NBMA address bindings found in the responding
  1299.          NHS's cache, however none of them had the uniqueness bit set.
  1300.  
  1301.      Prefix Length
  1302.        In the case of NHRP Resolution Reply, the Prefix Length specifies
  1303.        the equivalence class of addresses which match the first "Prefix
  1304.        Length" bit positions of the Destination Protocol Address.
  1305.  
  1306.      Holding Time
  1307.        The Holding Time specified in a CIE of an NHRP Resolution Reply
  1308.        is the amount of time remaining before the expiration of the
  1309.        client information which is cached at the replying NHS.  It is
  1310.        not the value which was registered by the client.
  1311.  
  1312.      The remainder of the fields for the CIE for each next hop are
  1313.      filled out as they were defined when the next hop was registered
  1314.      with the responding NHS (or one of the responding NHS's
  1315.      synchronized servers) via the NHRP Registration Request.
  1316.  
  1317.    Load-splitting may be performed when more than one Client Information
  1318.    Entry is returned to a requester when equal preference values are
  1319.    specified.  Also, the alternative addresses may be used in case of
  1320.    connectivity failure in the NBMA subnetwork (such as a failed call
  1321.    attempt in connection-oriented NBMA subnetworks).
  1322.  
  1323.    Any extensions present in the NHRP Resolution Request packet MUST be
  1324.    present in the NHRP Resolution Reply even if the extension is non-
  1325.    Compulsory.
  1326.  
  1327.    If an unsolicited NHRP Resolution Reply packet is received, an Error
  1328.    Indication of type Invalid NHRP Resolution Reply Received SHOULD be
  1329.    sent in response.
  1330.  
  1331.    When an NHS that serves a given NHC receives an NHRP Resolution Reply
  1332.    destined for that NHC then the NHS must MUST send the NHRP Resolution
  1333.    Reply directly to the NHC (see Section 3).
  1334.  
  1335.  
  1336. 5.2.3 NHRP Registration Request
  1337.  
  1338.    The NHRP Registration Request is sent from a station to an NHS to
  1339.  
  1340.  
  1341.  
  1342. Luciani, Katz, Piscitello, Cole                                [Page 24]
  1343.  
  1344. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1345.  
  1346.  
  1347.    notify the NHS of the station's NBMA information.  It has a Type code
  1348.    of 3. Each CIE corresponds to Next Hop information which is to be
  1349.    cached at an NHS.  The mandatory part of an NHRP Registration Request
  1350.    is coded as described in Section 5.2.0.1.  The message specific
  1351.    meanings of the fields are as follows:
  1352.  
  1353.    Flags - The flags field is coded as follows:
  1354.  
  1355.       0                   1
  1356.       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  1357.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1358.      |U|         unused              |
  1359.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1360.  
  1361.      U
  1362.        This is the Uniqueness bit. When set in an NHRP Registration
  1363.        Request, this bit indicates that the registration of the protocol
  1364.        address is unique within the confines of the set of synchronized
  1365.        NHSs.  This "uniqueness" qualifier MUST be stored in the NHS/NHC
  1366.        cache.  Any attempt to register a binding between the protocol
  1367.        address and an NBMA address when this bit is set MUST be rejected
  1368.        with a Code of "14 - Unique Internetworking Layer Address Already
  1369.        Registered" if the replying NHS already has a cache entry for the
  1370.        protocol address and the cache entry has the "uniqueness" bit
  1371.        set.  A registration of a CIE's information is rejected when the
  1372.        CIE is returned with the Code field set to anything other than
  1373.        0x00.  See the description of the uniqueness bit in NHRP
  1374.        Resolution Request section above for further details.  When this
  1375.        bit is set only, only one CIE MAY be included in the NHRP
  1376.        Registration Request.
  1377.  
  1378.  
  1379.    Request ID
  1380.      The request ID has the same meaning as described in Section
  1381.      5.2.0.1.  However, the request ID for NHRP Registrations which is
  1382.      maintained at each client MUST be kept in non-volatile memory so
  1383.      that when a client crashes and reregisters there will be no
  1384.      inconsistency in the NHS's database.  In order to reduce the
  1385.      overhead associated with updating non-volatile memory, the actual
  1386.      updating need not be done with every increment of the Request ID
  1387.      but could be done, for example, every 50 or 100 increments.  In
  1388.      this scenario, when a client crashes and reregisters it knows to
  1389.      add 100 to the value of the Request ID in the non-volatile memory
  1390.      before using the Request ID for subsequent registrations.
  1391.  
  1392.  
  1393.    One or more CIEs are specified in the NHRP Registration Request.
  1394.    Each CIE contains next hop information which a client is attempting
  1395.  
  1396.  
  1397.  
  1398. Luciani, Katz, Piscitello, Cole                                [Page 25]
  1399.  
  1400. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1401.  
  1402.  
  1403.    to register with its servers.  Generally, all fields in CIEs enclosed
  1404.    in NHRP Registration Requests are coded as described in Section
  1405.    5.2.0.1.  However, if a station is only registering itself with the
  1406.    NHRP Registration Request then it MAY code the Cli Addr T/L, Cli
  1407.    SAddr T/L, and Cli Proto Len as zero which signifies that the client
  1408.    address information is to be taken from the source information in the
  1409.    common header (see Section 5.2.0.1).  Below, further clarification is
  1410.    given for some fields in a CIE in the context of a NHRP Registration
  1411.    Request.
  1412.  
  1413.      Code
  1414.        This field is set to 0x00 in NHRP Registration Requests.
  1415.  
  1416.      Prefix Length
  1417.  
  1418.        This field may be used in a NHRP Registration Request to register
  1419.        equivalence information for the Client Protocol Address specified
  1420.        in the CIE of an NHRP Registration Request In the case of NHRP
  1421.        Registration Request, the Prefix Length specifies the equivalence
  1422.        class of addresses which match the first "Prefix Length" bit
  1423.        positions of the Client Protocol Address.  If the "U" bit is set
  1424.        in the common header then this field MUST be set to 0xFF.
  1425.  
  1426.    The NHRP Registration Request is used to register an NHC's NHRP
  1427.    information with its NHSs.  If an NHC is configured with the protocol
  1428.    address of a serving NHS then the NHC may place the NHS's protocol
  1429.    address in the Destination Protocol Address field of the NHRP
  1430.    Registration Request common header otherwise the NHC must place its
  1431.    own protocol address in the Destination Protocol Address field.
  1432.  
  1433.    When an NHS receives an NHRP Registration Request which has the
  1434.    Destination Protocol Address field set to an address which belongs to
  1435.    a LIS/LAG for which the NHS is serving then if the Destination
  1436.    Protocol Address field is equal to the Source Protocol Address field
  1437.    (which would happen if the NHC put its protocol address in the
  1438.    Destination Protocol Address) or the Destination Protocol Address
  1439.    field is equal to the protocol address of the NHS then the NHS
  1440.    processes the NHRP Registration Request after doing appropriate error
  1441.    checking (including any applicable policy checking).
  1442.  
  1443.    When an NHS receives an NHRP Registration Request which has the
  1444.    Destination Protocol Address field set to an address which does not
  1445.    belong to a LIS/LAG for which the NHS is serving then the NHS
  1446.    forwards the packet down the routed path toward the appropriate
  1447.    LIS/LAG.
  1448.  
  1449.    When an NHS receives an NHRP Registration Request which has the
  1450.    Destination Protocol Address field set to an address which belongs to
  1451.  
  1452.  
  1453.  
  1454. Luciani, Katz, Piscitello, Cole                                [Page 26]
  1455.  
  1456. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1457.  
  1458.  
  1459.    a LIS/LAG for which the NHS is serving then if the Destination
  1460.    Protocol Address field does not equal the Source Protocol Address
  1461.    field and the Destination Protocol Address field does not equal the
  1462.    protocol address of the NHS then the NHS forwards the message to the
  1463.    appropriate NHS within the LIS/LAG as specified by Destination
  1464.    Protocol Address field.
  1465.  
  1466.    It is possible that a misconfigured station will attempt to register
  1467.    with the wrong NHS (i.e., one that cannot serve it due to policy
  1468.    constraints or routing state).  If this is the case, the NHS MUST
  1469.    reply with a NAK-ed Registration Reply of type Can't Serve This
  1470.    Address.
  1471.  
  1472.    If an NHS cannot serve a station due to a lack of resources, the NHS
  1473.    MUST reply with a NAK-ed Registration Reply of type Registration
  1474.    Overflow.
  1475.  
  1476.    In order to keep the registration entry from being discarded, the
  1477.    station MUST re-send the NHRP Registration Request packet often
  1478.    enough to refresh the registration, even in the face of occasional
  1479.    packet loss. It is recommended that the NHRP Registration Request
  1480.    packet be sent at an interval equal to one-third of the Holding Time
  1481.    specified therein.
  1482.  
  1483.  
  1484. 5.2.4 NHRP Registration Reply
  1485.  
  1486.    The NHRP Registration Reply is sent by an NHS to a client in response
  1487.    to that client's NHRP Registration Request. If the Code field of a
  1488.    CIE in the NHRP Registration Reply has anything other than 0 zero in
  1489.    it then the NHRP Registration Reply is a NAK otherwise the reply is
  1490.    an ACK.  The NHRP Registration Reply has a Type code of 4.
  1491.  
  1492.    An NHRP Registration Reply is formed from an NHRP Registration
  1493.    Request by changing the type code to 4, updating the CIE Code field,
  1494.    and filling in the appropriate extensions if they exist.  The message
  1495.    specific meanings of the fields are as follows:
  1496.  
  1497.    Attempts to register the information in the CIEs of an NHRP
  1498.    Registration Request may fail for various reasons.  If this is the
  1499.    case then each failed attempt to register the information in a CIE of
  1500.    an NHRP Registration Request is logged in the associated NHRP
  1501.    Registration Reply by setting the CIE Code field to the appropriate
  1502.    error code as shown below:
  1503.  
  1504.      CIE Code
  1505.  
  1506.        0 - Successful Registration
  1507.  
  1508.  
  1509.  
  1510. Luciani, Katz, Piscitello, Cole                                [Page 27]
  1511.  
  1512. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1513.  
  1514.  
  1515.          The information in the CIE was successfully registered with the
  1516.          NHS.
  1517.  
  1518.        4 - Can't Serve This Address
  1519.  
  1520.          An NHS may refuse an NHRP Registration Request attempt for
  1521.          administrative reasons (due to policy constraints or routing
  1522.          state).  If so, the NHS MUST send an NHRP Registration Reply
  1523.          which contains a NAK code of 4.
  1524.  
  1525.        5 - Registration Overflow
  1526.  
  1527.          If an NHS cannot serve a station due to a lack of resources,
  1528.          the NHS MUST reply with a NAKed NHRP Registration Reply which
  1529.          contains a NAK code of 5.
  1530.  
  1531.        14 - Unique Internetworking Layer Address Already Registered
  1532.          If a client tries to register a protocol address to NBMA
  1533.          address binding with the uniqueness bit on and the protocol
  1534.          address already exists in the NHS's cache then if that cache
  1535.          entry also has the uniqueness bit on then this NAK Code is
  1536.          returned in the CIE in the NHRP Registration Reply.
  1537.  
  1538.    Due to the possible existence of asymmetric routing, an NHRP
  1539.    Registration Reply may not be able to merely follow the routed path
  1540.    back to the source protocol address specified in the common header of
  1541.    the NHRP Registration Reply.  As a result, there MUST exist a direct
  1542.    NBMA level connection between the NHC and its NHS on which to send
  1543.    the NHRP Registration Reply before NHRP Registration Reply may be
  1544.    returned to the NHC.  If such a connection does not exist then the
  1545.    NHS must setup such a connection to the NHC by using the source NBMA
  1546.    information supplied in the common header of the NHRP Registration
  1547.    Request.
  1548.  
  1549.  
  1550. 5.2.5 NHRP Purge Request
  1551.  
  1552.    The NHRP Purge Request packet is sent in order to invalidate cached
  1553.    information in a station.  The NHRP Purge Request packet has a type
  1554.    code of 5.  The mandatory part of an NHRP Purge Request is coded as
  1555.    described in Section 5.2.0.1.  The message specific meanings of the
  1556.    fields are as follows:
  1557.  
  1558.    Flags - The flags field is coded as follows:
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566. Luciani, Katz, Piscitello, Cole                                [Page 28]
  1567.  
  1568. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1569.  
  1570.  
  1571.       0                   1
  1572.       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  1573.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1574.      |N|         unused              |
  1575.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1576.  
  1577.      N
  1578.        When set, this bit tells the receiver of the NHRP Purge Request
  1579.        that the requester does not expect to receive an NHRP Purge
  1580.        Reply.  If an unsolicited NHRP Purge Reply is received by a
  1581.        station where that station is identified in the Source Protocol
  1582.        Address of the packet then that packet must be ignored.
  1583.  
  1584.    One or more CIEs are specified in the NHRP Purge Request.  Each CIE
  1585.    contains next hop information which is to be purged from an NHS/NHC
  1586.    cache.  Generally, all fields in CIEs enclosed in NHRP Purge Requests
  1587.    are coded as described in Section 5.2.0.1.  Below, further
  1588.    clarification is given for some fields in a CIE in the context of a
  1589.    NHRP Purge Request.
  1590.  
  1591.      Code
  1592.        This field is set to 0x00 in NHRP Purge Requests.
  1593.  
  1594.      Prefix Length
  1595.  
  1596.        In the case of NHRP Purge Requests, the Prefix Length specifies
  1597.        the equivalence class of addresses which match the first "Prefix
  1598.        Length" bit positions of the Client Protocol Address specified in
  1599.        the CIE.  All next hop information which contains a protocol
  1600.        address which matches an element of this equivalence class is to
  1601.        be purged from the receivers cache.
  1602.  
  1603.      The Maximum Transmission Unit and Preference fields of the CIE are
  1604.      coded as zero.  The Holding Time should be coded as zero but there
  1605.      may be some utility in supplying a "short" holding time to be
  1606.      applied to the matching next hop information before that
  1607.      information would be purged; this usage is for further study. The
  1608.      Client Protocol Address field and the Cli Proto Len field MUST be
  1609.      filled in.  The Client Protocol Address is filled in with the
  1610.      protocol address to be purged from the receiving station's cache
  1611.      while the Cli Proto Len is set the length of the purged client's
  1612.      protocol address.  All remaining fields in the CIE MAY be set to
  1613.      zero although the client NBMA information (and associated length
  1614.      fields) MAY be specified to narrow the scope of the NHRP Purge
  1615.      Request if requester desires.  However, the receiver of an NHRP
  1616.      Purge Request may choose to ignore the Client NBMA information if
  1617.      it is supplied.
  1618.  
  1619.  
  1620.  
  1621.  
  1622. Luciani, Katz, Piscitello, Cole                                [Page 29]
  1623.  
  1624. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1625.  
  1626.  
  1627.    An NHRP Purge Request packet is sent from an NHS to a station to
  1628.    cause it to delete previously cached information.  This is done when
  1629.    the information may be no longer valid (typically when the NHS has
  1630.    previously provided next hop information for a station that is not
  1631.    directly connected to the NBMA subnetwork, and the egress point to
  1632.    that station may have changed).
  1633.  
  1634.    An NHRP Purge Request packet may also be sent from an NHC to an NHS
  1635.    with which the NHC had previously registered.  This allows for an NHC
  1636.    to invalidate its registration with NHRP before it would otherwise
  1637.    expire via the holding timer. If an NHC does not have knowledge of a
  1638.    protocol address of a serving NHS then the NHC must place its own
  1639.    protocol address in the Destination Protocol Address field and
  1640.    forward the packet along the routed path.  Otherwise, the NHC must
  1641.    place the protocol address of a serving NHS in this field.
  1642.  
  1643.    Serving NHSs may need to send one or more new NHRP Purge Requests as
  1644.    a result of receiving a purge from one of their served NHCs since the
  1645.    NHS may have previously responded to NHRP Resolution Requests for
  1646.    that NHC's NBMA information.  These purges are "new" in that they are
  1647.    sourced by the NHS and not the NHC;  that is, for each NHC that
  1648.    previously sent a NHRP Resolution Request for the purged NHC NBMA
  1649.    information, an NHRP Purge Request is sent which contains the Source
  1650.    Protocol/NBMA Addresses of the NHS and the Destination Protocol
  1651.    Address of the NHC which previously sent an NHRP Resolution Request
  1652.    prior to the purge.
  1653.  
  1654.    The station sending the NHRP Purge Request MAY periodically
  1655.    retransmit the NHRP Purge Request until either NHRP Purge Request is
  1656.    acknowledged or until the holding time of the information being
  1657.    purged has expired.  Retransmission strategies for NHRP Purge
  1658.    Requests are a local matter.
  1659.  
  1660.    When a station receives an NHRP Purge Request, it MUST discard any
  1661.    previously cached information that matches the information in the
  1662.    CIEs.
  1663.  
  1664.    An NHRP Purge Reply MUST be returned for the NHRP Purge Request even
  1665.    if the station does not have a matching cache entry assuming that the
  1666.    "N" bit is off in the NHRP Purge Request.
  1667.  
  1668.    If the station wishes to reestablish communication with the
  1669.    destination shortly after receiving an NHRP Purge Request, it should
  1670.    make an authoritative NHRP Resolution Request in order to avoid any
  1671.    stale cache entries that might be present in intermediate NHSs (See
  1672.    section 6.2.2.).  It is recommended that authoritative NHRP
  1673.    Resolution Requests be made for the duration of the holding time of
  1674.    the old information.
  1675.  
  1676.  
  1677.  
  1678. Luciani, Katz, Piscitello, Cole                                [Page 30]
  1679.  
  1680. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1681.  
  1682.  
  1683. 5.2.6 NHRP Purge Reply
  1684.  
  1685.    The NHRP Purge Reply packet is sent in order to assure the sender of
  1686.    an NHRP Purge Request that all cached information of the specified
  1687.    type has been purged from the station sending the reply.  The NHRP
  1688.    Purge Reply has a type code of 6.
  1689.  
  1690.    An NHRP Purge Reply is formed from an NHRP Purge Request by merely
  1691.    changing the type code in the request to 6.  The packet is then
  1692.    returned to the requester after filling in the appropriate extensions
  1693.    if they exist.
  1694.  
  1695. 5.2.7  NHRP Error Indication
  1696.  
  1697.    The NHRP Error Indication is used to convey error indications to the
  1698.    sender of an NHRP packet.  It has a type code of 7.  The Mandatory
  1699.    Part has the following format:
  1700.  
  1701.  
  1702.     0                   1                   2                   3
  1703.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1704.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1705.    | Src Proto Len | Dst Proto Len |            unused             |
  1706.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1707.    |           Error Code          |        Error Offset           |
  1708.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1709.    |            Source NBMA Address (variable length)              |
  1710.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1711.    |          Source NBMA Subaddress (variable length)             |
  1712.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1713.    |          Source Protocol Address (variable length)            |
  1714.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1715.    |       Destination  Protocol Address (variable length)         |
  1716.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1717.    |       Contents of NHRP Packet in error (variable length)      |
  1718.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1719.  
  1720.    Src Proto Len
  1721.      This field holds the length in octets of the Source Protocol
  1722.      Address.
  1723.  
  1724.    Dst Proto Len
  1725.      This field holds the length in octets of the Destination Protocol
  1726.      Address.
  1727.  
  1728.    Error Code
  1729.      An error code indicating the type of error detected, chosen from
  1730.      the following list:
  1731.  
  1732.  
  1733.  
  1734. Luciani, Katz, Piscitello, Cole                                [Page 31]
  1735.  
  1736. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1737.  
  1738.  
  1739.        1 - Unrecognized Extension
  1740.  
  1741.          When the Compulsory bit of an extension in NHRP packet is set,
  1742.          the NHRP packet cannot be processed unless the extension has
  1743.          been processed.  The responder MUST return an NHRP Error
  1744.          Indication of type Unrecognized Extension if it is incapable of
  1745.          processing the extension.  However, if a transit NHS (one which
  1746.          is not going to generate a reply) detects an unrecognized
  1747.          extension, it SHALL ignore the extension.
  1748.  
  1749.        3 - NHRP Loop Detected
  1750.  
  1751.          A Loop Detected error is generated when it is determined that
  1752.          an NHRP packet is being forwarded in a loop.
  1753.  
  1754.        6 - Protocol Address Unreachable
  1755.  
  1756.          This error occurs when a packet it moving along the routed path
  1757.          and it reaches a point such that the protocol address of
  1758.          interest is not reachable.
  1759.  
  1760.        7 - Protocol Error
  1761.  
  1762.          A generic packet processing error has occurred (e.g., invalid
  1763.          version number, invalid protocol type, failed checksum, etc.)
  1764.  
  1765.        8 - NHRP SDU Size Exceeded
  1766.  
  1767.          If the SDU size of the NHRP packet exceeds the MTU size of the
  1768.          NBMA network then this error is returned.
  1769.  
  1770.        9 - Invalid Extension
  1771.  
  1772.          If an NHS finds an extension in a packet which is inappropriate
  1773.          for the packet type, an error is sent back to the sender with
  1774.          Invalid Extension as the code.
  1775.  
  1776.        10 - Invalid NHRP Resolution Reply Received
  1777.  
  1778.          If a client receives a NHRP Resolution Reply for a Next Hop
  1779.          Resolution Request which it believes it did not make then an
  1780.          error packet is sent to the station making the reply with an
  1781.          error code of Invalid Reply Received.
  1782.  
  1783.        11 - Authentication Failure
  1784.  
  1785.          If a received packet fails an authentication test then this
  1786.          error is returned.
  1787.  
  1788.  
  1789.  
  1790. Luciani, Katz, Piscitello, Cole                                [Page 32]
  1791.  
  1792. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1793.  
  1794.  
  1795.        15 - Hop Count Exceeded
  1796.  
  1797.          The hop count which was specified in the Fixed Header of an
  1798.          NHRP message has been exceeded.
  1799.  
  1800.    Error Offset
  1801.      The offset in octets into the NHRP packet, starting at the NHRP
  1802.      Fixed Header, at which the error was detected.
  1803.  
  1804.    Source NBMA Address
  1805.      The Source NBMA address field is the address of the station which
  1806.      observed the error.
  1807.  
  1808.    Source NBMA SubAddress
  1809.      The Source NBMA subaddress field is the address of the station
  1810.      which observed the error.  If the field's length as specified in
  1811.      ar$sstl is 0 then no storage is allocated for this address at all.
  1812.  
  1813.    Source Protocol Address
  1814.      This is the protocol address of the station which issued the Error
  1815.      packet.
  1816.  
  1817.    Destination Protocol Address
  1818.      This is the protocol address of the station which sent the packet
  1819.      which was found to be in error.
  1820.  
  1821.    An NHRP Error Indication packet SHALL NEVER be generated in response
  1822.    to another NHRP Error Indication packet.  When an NHRP Error
  1823.    Indication packet is generated, the offending NHRP packet SHALL be
  1824.    discarded.  In no case should more than one NHRP Error Indication
  1825.    packet be generated for a single NHRP packet.
  1826.  
  1827.    If an NHS sees its own Protocol and NBMA Addresses in the Source NBMA
  1828.    and Source Protocol address fields of a transiting NHRP Error
  1829.    Indication packet then the NHS will quietly drop the packet and do
  1830.    nothing (this scenario would occur when the NHRP Error Indication
  1831.    packet was itself in a loop).
  1832.  
  1833.    Note that no extensions may be added to an NHRP Error Indication.
  1834.  
  1835.  
  1836. 5.3  Extensions Part
  1837.  
  1838.    The Extensions Part, if present, carries one or more extensions in
  1839.    {Type, Length, Value} triplets.
  1840.  
  1841.    Extensions have the following format:
  1842.  
  1843.  
  1844.  
  1845.  
  1846. Luciani, Katz, Piscitello, Cole                                [Page 33]
  1847.  
  1848. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1849.  
  1850.  
  1851.     0                   1                   2                   3
  1852.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  1853.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1854.    |C|u|        Type               |        Length                 |
  1855.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1856.    |                         Value...                              |
  1857.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  1858.  
  1859.    C
  1860.      "Compulsory."  If clear, and the NHS does not recognize the type
  1861.      code, the extension may safely be ignored.  If set, and the NHS
  1862.      does not recognize the type code, the NHRP "request" is considered
  1863.      to be in error.  (See below for details.)
  1864.  
  1865.    u
  1866.      Unused and must be set to zero.
  1867.  
  1868.    Type
  1869.      The extension type code (see below).  The extension type is not
  1870.      qualified by the Compulsory bit, but is orthogonal to it.
  1871.  
  1872.    Length
  1873.      The length in octets of the value (not including the Type and
  1874.      Length fields;  a null extension will have only an extension header
  1875.      and a length of zero).
  1876.  
  1877.    When extensions exist, the extensions list is terminated by the Null
  1878.    TLV, having Type = 0 and Length = 0.
  1879.  
  1880.    Extensions may occur in any order (see Section 5.3.4 for the
  1881.    exception), but any particular extension type may occur only once in
  1882.    an NHRP packet with the exception of the Vendor Private extension.
  1883.    The vendor-private extension may occur multiple times in a packet in
  1884.    order to allow for extensions which do not share the same vendor ID
  1885.    to be represented.  It is RECOMMENDED that a given vendor include no
  1886.    more than one Vendor Private Extension.
  1887.  
  1888.    An NHS MUST NOT change the order of extensions.  That is, the order
  1889.    of extensions placed in an NHRP packet by an NHC (or by an NHS when
  1890.    an NHS sources a packet) MUST be preserved as the packet moves
  1891.    between NHSs.  Minimal NHC implementations MUST only recognize, but
  1892.    not necessarily parse, the Vendor Private extension and the End Of
  1893.    Extensions extension.  Extensions are only present in a "reply" if
  1894.    they were present in the corresponding "request" with the exception
  1895.    of Vendor Private extensions.  The previous statement is not intended
  1896.    to preclude the creation of NHS-only extensions which might be added
  1897.    to and removed from NHRP packets by the same NHS; such extensions
  1898.    MUST not be propagated to NHCs.
  1899.  
  1900.  
  1901.  
  1902. Luciani, Katz, Piscitello, Cole                                [Page 34]
  1903.  
  1904. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1905.  
  1906.  
  1907.    The Compulsory bit provides for a means to add to the extension set.
  1908.    If the bit is set, the NHRP message cannot be properly processed by
  1909.    the station responding to the message (e.g., the station that would
  1910.    issue a NHRP Resolution Reply in response to a NHRP Resolution
  1911.    Request) without processing the extension.  As a result, the
  1912.    responder MUST return an NHRP Error Indication of type Unrecognized
  1913.    Extension.  If the Compulsory bit is clear then the extension can be
  1914.    safely ignored; however, if an ignored extension is in a "request"
  1915.    then it MUST be returned, unchanged, in the corresponding "reply"
  1916.    packet type.
  1917.  
  1918.    If a transit NHS (one which is not going to generate a "reply")
  1919.    detects an unrecognized extension, it SHALL ignore the extension.  If
  1920.    the Compulsory bit is set, the transit NHS MUST NOT cache the
  1921.    information contained in the packet and MUST NOT identify itself as
  1922.    an egress router (in the Forward Record or Reverse Record
  1923.    extensions).  Effectively, this means, if a transit NHS encounters an
  1924.    extension which it cannot process and which has the Compulsory bit
  1925.    set then that NHS MUST NOT participate in any way in the protocol
  1926.    exchange other than acting as a forwarding agent.
  1927.  
  1928.    Use of NHRP extension Types in the range 8192 to 16383 are reserved
  1929.    for research or use in other protocol development and will be
  1930.    administered by IANA.
  1931.  
  1932. 5.3.0  The End Of Extensions
  1933.  
  1934.     Compulsory = 1
  1935.     Type = 0
  1936.     Length = 0
  1937.  
  1938.    When extensions exist, the extensions list is terminated by the End
  1939.    Of Extensions/Null TLV.
  1940.  
  1941. 5.3.1  Responder Address Extension
  1942.  
  1943.     Compulsory = 1
  1944.     Type = 3
  1945.     Length = variable
  1946.  
  1947.    This extension is used to determine the address of the NHRP
  1948.    responder; i.e., the entity that generates the appropriate "reply"
  1949.    packet for a given "request" packet.  In the case of an NHRP
  1950.    Resolution Request, the station responding may be different (in the
  1951.    case of cached replies) than the system identified in the Next Hop
  1952.    field of the NHRP Resolution Reply.  Further, this extension may aid
  1953.    in detecting loops in the NHRP forwarding path.
  1954.  
  1955.  
  1956.  
  1957.  
  1958. Luciani, Katz, Piscitello, Cole                                [Page 35]
  1959.  
  1960. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  1961.  
  1962.  
  1963.    This extension uses a single CIE with the extension specific meanings
  1964.    of the fields set as follows:
  1965.  
  1966.    The Prefix Length fields MUST be set to 0 and ignored.
  1967.  
  1968.    CIE Code
  1969.      16 - Insufficient Resources Exist To Setup Cut-Through
  1970.        If the responder to an NHRP Resolution Request is an egress point
  1971.        for the target of the address resolution request (i.e., it is one
  1972.        of the stations identified in the list of CIEs in an NHRP
  1973.        Resolution Reply) and the Responder Address extension is included
  1974.        in the NHRP Resolution Request and insufficient resources to
  1975.        setup a cut-through VC exist at the responder then the Code field
  1976.        of the Responder Address Extension is set to 16 decimal in order
  1977.        to tell the client that a VC setup attempt would in all
  1978.        likelihood be rejected; otherwise this field MUST be coded as a
  1979.        zero.  NHCs MAY use this field to influence whether they attempt
  1980.        to setup a cut-through to the egress router.
  1981.  
  1982.    Maximum Transmission Unit
  1983.      This field gives the maximum transmission unit preferred by the
  1984.      responder.  If this value is 0 then either the default MTU is used
  1985.      or the MTU negotiated via signaling is used if such negotiation is
  1986.      possible for the given NBMA.
  1987.  
  1988.    Holding Time
  1989.      The Holding Time field specifies the number of seconds for which
  1990.      the NBMA information of the responser is considered to be valid.
  1991.      Cached information SHALL be discarded when the holding time
  1992.      expires.
  1993.  
  1994.    "Client Address" information is actually "Responder Address"
  1995.    information for this extension.  Thus, for example, Cli Addr T/L is
  1996.    the responder NBMA address type and length field.
  1997.  
  1998.    If a "requester" desires this information, the "requester" SHALL
  1999.    include this extension with a value of zero.  Note that this implies
  2000.    that no storage is allocated for the Holding Time and Type/Length
  2001.    fields until the "Value" portion of the extension is filled out.
  2002.  
  2003.    If an NHS is generating a "reply" packet in response to a "request"
  2004.    containing this extension, the NHS SHALL include this extension,
  2005.    containing its protocol address in the "reply".  If an NHS has more
  2006.    than one protocol address, it SHALL use the same protocol address
  2007.    consistently in all of the Responder Address, Forward Transit NHS
  2008.    Record, and Reverse Transit NHS Record extensions.  The choice of
  2009.    which of several protocol address to include in this extension is a
  2010.    local matter.
  2011.  
  2012.  
  2013.  
  2014. Luciani, Katz, Piscitello, Cole                                [Page 36]
  2015.  
  2016. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  2017.  
  2018.  
  2019.    If an NHRP Resolution Reply packet being forwarded by an NHS contains
  2020.    a protocol address of that NHS in the Responder Address Extension
  2021.    then that NHS SHALL generate an NHRP Error Indication of type "NHRP
  2022.    Loop Detected" and discard the NHRP Resolution Reply.
  2023.  
  2024.    If an NHRP Resolution Reply packet is being returned by an
  2025.    intermediate NHS based on cached data, it SHALL place its own address
  2026.    in this extension (differentiating it from the address in the Next
  2027.    Hop field).
  2028.  
  2029. 5.3.2  NHRP Forward Transit NHS Record Extension
  2030.  
  2031.     Compulsory = 1
  2032.     Type = 4
  2033.     Length = variable
  2034.  
  2035.    The NHRP Forward Transit NHS record contains a list of transit NHSs
  2036.    through which a "request" has traversed.  Each NHS SHALL append to
  2037.    the extension a Forward Transit NHS element (as specified below)
  2038.    containing its Protocol address The extension length field and the
  2039.    ar$chksum fields SHALL be adjusted appropriately.
  2040.  
  2041.    The responding NHS, as described in Section 5.3.1, SHALL NOT update
  2042.    this extension.
  2043.  
  2044.    In addition, NHSs that are willing to act as egress routers for
  2045.    packets from the source to the destination SHALL include information
  2046.    about their NBMA Address.
  2047.  
  2048.    This extension uses a single CIE with the extension specific meanings
  2049.    of the fields set as follows:
  2050.  
  2051.    The Prefix Length fields MUST be set to 0 and ignored.
  2052.  
  2053.    CIE Code
  2054.      16 - Insufficient Resources Exist To Setup Cut-Through
  2055.        If an NHRP Resolution Request contains an NHRP Forward Transit
  2056.        NHS Record Extension and insufficient resources to setup a cut-
  2057.        through VC exist at the current transit NHS then the CIE Code
  2058.        field for NHRP Forward Transit NHS Record Extension is set to 16
  2059.        decimal in order to tell the client that a VC setup attempt would
  2060.        in all likelihood be rejected; otherwise this field MUST be coded
  2061.        as a zero.  NHCs MAY use this field to influence whether they
  2062.        attempt to setup a cut-through as described in Section 2.2.  Note
  2063.        that the NHRP Reverse Transit NHS Record Extension MUST always
  2064.        have this field set to zero.
  2065.  
  2066.    Maximum Transmission Unit
  2067.  
  2068.  
  2069.  
  2070. Luciani, Katz, Piscitello, Cole                                [Page 37]
  2071.  
  2072. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  2073.  
  2074.  
  2075.      This field gives the maximum transmission unit preferred by the
  2076.      transit NHS.  If this value is 0 then either the default MTU is
  2077.      used or the MTU negotiated via signaling is used if such
  2078.      negotiation is possible for the given NBMA.
  2079.  
  2080.    Holding Time
  2081.      The Holding Time field specifies the number of seconds for which
  2082.      the NBMA information of the transit NHS is considered to be valid.
  2083.      Cached information SHALL be discarded when the holding time
  2084.      expires.
  2085.  
  2086.    "Client Address" information is actually "Forward Transit NHS
  2087.    Address" information for this extension.  Thus, for example, Cli Addr
  2088.    T/L is the transit NHS NBMA address type and length field.
  2089.  
  2090.    If a "requester" wishes to obtain this information, it SHALL include
  2091.    this extension with a length of zero.  Note that this implies that no
  2092.    storage is allocated for the Holding Time and Type/Length fields
  2093.    until the "Value" portion of the extension is filled out.
  2094.  
  2095.    If an NHS has more than one Protocol address, it SHALL use the same
  2096.    Protocol address consistently in all of the Responder Address,
  2097.    Forward NHS Record, and Reverse NHS Record extensions.  The choice of
  2098.    which of several Protocol addresses to include in this extension is a
  2099.    local matter.
  2100.  
  2101.    If a "request" that is being forwarded by an NHS contains the
  2102.    Protocol Address of that NHS in one of the Forward Transit NHS
  2103.    elements then the NHS SHALL generate an NHRP Error Indication of type
  2104.    "NHRP Loop Detected" and discard the "request".
  2105.  
  2106. 5.3.3  NHRP Reverse Transit NHS Record Extension
  2107.  
  2108.     Compulsory = 1
  2109.     Type = 5
  2110.     Length = variable
  2111.  
  2112.    The NHRP Reverse Transit NHS record contains a list of transit NHSs
  2113.    through which a "reply" has traversed.  Each NHS SHALL append a
  2114.    Reverse Transit NHS element (as specified below) containing its
  2115.    Protocol address to this extension.  The extension length field and
  2116.    ar$chksum SHALL be adjusted appropriately.
  2117.  
  2118.    The responding NHS, as described in Section 5.3.1, SHALL NOT update
  2119.    this extension.
  2120.  
  2121.    In addition, NHSs that are willing to act as egress routers for
  2122.    packets from the source to the destination SHALL include information
  2123.  
  2124.  
  2125.  
  2126. Luciani, Katz, Piscitello, Cole                                [Page 38]
  2127.  
  2128. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  2129.  
  2130.  
  2131.    about their NBMA Address.
  2132.  
  2133.  
  2134.    This extension uses a single CIE with the extension specific meanings
  2135.    of the fields set as follows:
  2136.  
  2137.    The CIE Code and Prefix Length fields MUST be set to 0 and ignored.
  2138.  
  2139.    Maximum Transmission Unit
  2140.      This field gives the maximum transmission unit preferred by the
  2141.      transit NHS.  If this value is 0 then either the default MTU is
  2142.      used or the MTU negotiated via signaling is used if such
  2143.      negotiation is possible for the given NBMA.
  2144.  
  2145.    Holding Time
  2146.      The Holding Time field specifies the number of seconds for which
  2147.      the NBMA information of the transit NHS is considered to be valid.
  2148.      Cached information SHALL be discarded when the holding time
  2149.      expires.
  2150.  
  2151.    "Client Address" information is actually "Reverse Transit NHS
  2152.    Address" information for this extension.  Thus, for example, Cli Addr
  2153.    T/L is the transit NHS NBMA address type and length field.
  2154.  
  2155.    If a "requester" wishes to obtain this information, it SHALL include
  2156.    this extension with a length of zero.  Note that this implies that no
  2157.    storage is allocated for the Holding Time and Type/Length fields
  2158.    until the "Value" portion of the extension is filled out.
  2159.  
  2160.    If an NHS has more than one Protocol address, it SHALL use the same
  2161.    Protocol address consistently in all of the Responder Address,
  2162.    Forward NHS Record, and Reverse NHS Record extensions.  The choice of
  2163.    which of several Protocol addresses to include in this extension is a
  2164.    local matter.
  2165.  
  2166.    If a "reply" that is being forwarded by an NHS contains the Protocol
  2167.    Address of that NHS in one of the Reverse Transit NHS elements then
  2168.    the NHS SHALL generate an NHRP Error Indication of type "NHRP Loop
  2169.    Detected" and discard the "reply".
  2170.  
  2171.    Note that this information may be cached at intermediate NHSs;  if
  2172.    so, the cached value SHALL be used when generating a reply.
  2173.  
  2174. 5.3.4  NHRP Authentication Extension
  2175.  
  2176.     Compulsory = 1
  2177.     Type = 7
  2178.     Length = variable
  2179.  
  2180.  
  2181.  
  2182. Luciani, Katz, Piscitello, Cole                                [Page 39]
  2183.  
  2184. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  2185.  
  2186.  
  2187.    The NHRP Authentication Extension is carried in NHRP packets to
  2188.    convey authentication information between NHRP speakers.  The
  2189.    Authentication Extension may be included in any NHRP "request" or
  2190.    "reply" only.
  2191.  
  2192.    Except in the case of an NHRP Registration Request/Reply
  2193.    Authentication is done pairwise on an NHRP hop-by-hop basis;  i.e.,
  2194.    the authentication extension is regenerated at each hop. In the case
  2195.    of an NHRP Registration Request/Reply, the Authentication is checked
  2196.    on an end-to-end basis rather than hop-by-hop. If a received packet
  2197.    fails the authentication test, the station SHALL generate an Error
  2198.    Indication of type "Authentication Failure" and discard the packet.
  2199.    Note that one possible authentication failure is the lack of an
  2200.    Authentication Extension;  the presence or absence of the
  2201.    Authentication Extension is a local matter.
  2202.  
  2203.     0                   1                   2                   3
  2204.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  2205.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2206.    |                     Authentication Type                       |
  2207.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2208.    |                                                               |
  2209.    +-+-+-+-+-+-+-+-+-+-+ Authentication Data... -+-+-+-+-+-+-+-+-+-+
  2210.    |                                                               |
  2211.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2212.  
  2213.    The Authentication Type field identifies the authentication method in
  2214.    use.  Currently assigned values are:
  2215.  
  2216.    1 - Cleartext Password
  2217.    2 - Keyed MD5
  2218.  
  2219.    All other values are reserved.
  2220.  
  2221.    The Authentication Data field contains the type-specific
  2222.    authentication information.
  2223.  
  2224.    In the case of Cleartext Password Authentication, the Authentication
  2225.    Data consists of a variable length password.
  2226.  
  2227.    In the case of Keyed MD5 Authentication, the Authentication Data
  2228.    contains the 16 byte MD5 digest of the entire NHRP packet, including
  2229.    the encapsulated protocol's header, with the authentication key
  2230.    appended to the end of the packet.  The authentication key is not
  2231.    transmitted with the packet.  The MD5 digest covers only the
  2232.    following fields of the NHRP packet: fixed  part (with  hop count,
  2233.    packet size and checksum being set to zero), mandatory part,
  2234.    Responder Address extension, and authentication extension.  Note that
  2235.  
  2236.  
  2237.  
  2238. Luciani, Katz, Piscitello, Cole                                [Page 40]
  2239.  
  2240. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  2241.  
  2242.  
  2243.    when MD5 is used, there is an explicit ordering of the extensions
  2244.    such that: if the Responder Address extension exists then it MUST be
  2245.    the first extension in the packet and the Authentication Extension
  2246.    MUST be the second extension otherwise the Authentication Extension
  2247.    MUST be the first extension in the packet.
  2248.  
  2249.    Distribution of authentication keys is outside the scope of this
  2250.    document.
  2251.  
  2252. 5.3.5  NHRP Vendor-Private Extension
  2253.  
  2254.     Compulsory = 0
  2255.     Type = 8
  2256.     Length = variable
  2257.  
  2258.    The NHRP Vendor-Private Extension is carried in NHRP packets to
  2259.    convey vendor-private information or NHRP extensions between NHRP
  2260.    speakers.
  2261.  
  2262.     0                   1                   2                   3
  2263.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  2264.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2265.    |                  Vendor ID                    |  Data....     |
  2266.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  2267.  
  2268.    Vendor ID
  2269.      802 Vendor ID as assigned by the IEEE [6]
  2270.  
  2271.    Data
  2272.      The remaining octets after the Vendor ID in the payload are
  2273.      vendor-dependent data.
  2274.  
  2275.    This extension may be added to any "request" or "reply" packet and it
  2276.    is the only extension that may be included multiple times.  If the
  2277.    receiver does not handle this extension, or does not match the Vendor
  2278.    ID in the extension then the extension may be completely ignored by
  2279.    the receiver.  If a Vendor Private Extension is included in a
  2280.    "request" then is must be copied in the corresponding "reply".
  2281.  
  2282.  
  2283. 6. Protocol Operation
  2284.  
  2285.    In this section, we discuss certain operational considerations of
  2286.    NHRP.
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.  
  2294. Luciani, Katz, Piscitello, Cole                                [Page 41]
  2295.  
  2296. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  2297.  
  2298.  
  2299. 6.1 Router-to-Router Operation
  2300.  
  2301.    In practice, the initiating and responding stations may be either
  2302.    hosts or routers.  However, there is a possibility under certain
  2303.    conditions that a stable routing loop may occur if NHRP is used
  2304.    between two routers.  In particular, attempting to establish an NHRP
  2305.    path across a boundary where information used in route selection is
  2306.    lost may result in a routing loop.  Such situations include the loss
  2307.    of BGP path vector information, the interworking of multiple routing
  2308.    protocols with dissimilar metrics (e.g, RIP and OSPF), etc.  In such
  2309.    circumstances, NHRP should not be used.  This situation can be
  2310.    avoided if there are no "back door" paths between the entry and
  2311.    egress router outside of the NBMA subnetwork.  Protocol mechanisms to
  2312.    relax these restrictions are under investigation.
  2313.  
  2314.    In general it is preferable to use mechanisms, if they exist, in
  2315.    routing protocols to resolve the egress point when the destination
  2316.    lies outside of the NBMA subnetwork, since such mechanisms will be
  2317.    more tightly coupled to the state of the routing system and will
  2318.    probably be less likely to create loops.
  2319.  
  2320. 6.2 Cache Management Issues
  2321.  
  2322.    The management of NHRP caches in the source station, the NHS serving
  2323.    the destination, and any intermediate NHSs is dependent on a number
  2324.    of factors.
  2325.  
  2326. 6.2.1 Caching Requirements
  2327.  
  2328.    Source Stations
  2329.  
  2330.    Source stations MUST cache all received NHRP Resolution Replies that
  2331.    they are actively using.  They also must cache "incomplete" entries,
  2332.    i.e., those for which a NHRP Resolution Request has been sent but
  2333.    which a NHRP Resolution Reply has not been received.  This is
  2334.    necessary in order to preserve the Request ID for retries, and
  2335.    provides the state necessary to avoid triggering NHRP Resolution
  2336.    Requests for every data packet sent to the destination.
  2337.  
  2338.    Source stations MUST purge expired information from their caches.
  2339.    Source stations MUST purge the appropriate cached information upon
  2340.    receipt of an NHRP Purge Request packet.
  2341.  
  2342.    When a station has a co-resident client and NHS, the station may
  2343.    reply to NHRP Resolution Requests with information which the station
  2344.    cached as a result of the station making its own NHRP Resolution
  2345.    Requests and receiving its own NHRP Resolution Replies as long as the
  2346.    station follows the rules for Transit NHSs as seen below.
  2347.  
  2348.  
  2349.  
  2350. Luciani, Katz, Piscitello, Cole                                [Page 42]
  2351.  
  2352. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  2353.  
  2354.  
  2355.    Serving NHSs
  2356.  
  2357.    The NHS serving the destination (the one which responds
  2358.    authoritatively to NHRP Resolution Requests) SHOULD cache information
  2359.    about all NHRP Resolution Requests to which it has responded if the
  2360.    information in the NHRP Resolution Reply has the possibility of
  2361.    changing during its lifetime (so that an NHRP Purge Request packet
  2362.    can be issued).  The NBMA information provided by the source station
  2363.    in the NHRP Resolution Request may be cached for the duration of its
  2364.    holding time.  This information is considered to be stable, since it
  2365.    identifies a station directly attached to the NBMA subnetwork.  An
  2366.    example of unstable information is NBMA information derived from a
  2367.    routing table, where that routing table information has not been
  2368.    guaranteed to be stable through administrative means.
  2369.  
  2370.    Transit NHSs
  2371.  
  2372.    A Transit NHS (lying along the NHRP path between the source station
  2373.    and the responding NHS) may cache information contained in NHRP
  2374.    Resolution Request packets that it forwards.  A Transit NHS may cache
  2375.    information contained in NHRP Resolution Reply packets that it
  2376.    forwards only if that NHRP Resolution Reply has the Stable (B) bit
  2377.    set.  It MUST discard any cached information whose holding time has
  2378.    expired.  It may return cached information in response to non-
  2379.    authoritative NHRP Resolution Requests only.
  2380.  
  2381. 6.2.2 Dynamics of Cached Information
  2382.  
  2383.    NBMA-Connected Destinations
  2384.  
  2385.      NHRP's most basic function is that of simple NBMA address
  2386.      resolution of stations directly attached to the NBMA subnetwork.
  2387.      These mappings are typically very static, and appropriately chosen
  2388.      holding times will minimize problems in the event that the NBMA
  2389.      address of a station must be changed.  Stale information will cause
  2390.      a loss of connectivity, which may be used to trigger an
  2391.      authoritative NHRP Resolution Request and bypass the old data.  In
  2392.      the worst case, connectivity will fail until the cache entry times
  2393.      out.
  2394.  
  2395.      This applies equally to information marked in NHRP Resolution
  2396.      Replies as being "stable" (via the "B" bit).
  2397.  
  2398.      This also applies equally well to source stations that are routers
  2399.      as well as those which are hosts.
  2400.  
  2401.      Note that the information carried in the NHRP Resolution Request
  2402.      packet is always considered "stable" because it represents a
  2403.  
  2404.  
  2405.  
  2406. Luciani, Katz, Piscitello, Cole                                [Page 43]
  2407.  
  2408. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  2409.  
  2410.  
  2411.      station that is directly connected to the NBMA subnetwork.
  2412.  
  2413.    Destinations Off of the NBMA Subnetwork
  2414.  
  2415.      If the source of a NHRP Resolution Request is a host and the
  2416.      destination is not directly attached to the NBMA subnetwork, and
  2417.      the route to that destination is not considered to be "stable," the
  2418.      destination mapping may be very dynamic (except in the case of a
  2419.      subnetwork where each destination is only singly homed to the NBMA
  2420.      subnetwork).  As such the cached information may very likely become
  2421.      stale.  The consequence of stale information in this case will be a
  2422.      suboptimal path (unless the internetwork has partitioned or some
  2423.      other routing failure has occurred).
  2424.  
  2425. 6.3 Use of the Prefix Length field of a CIE
  2426.  
  2427.    A certain amount of care needs to be taken when using the Prefix
  2428.    Length field of a CIE, in particular with regard to the prefix length
  2429.    advertised (and thus the size of the equivalence class specified by
  2430.    it).  Assuming that the routers on the NBMA subnetwork are exchanging
  2431.    routing information, it should not be possible for an NHS to create a
  2432.    black hole by advertising too large of a set of destinations, but
  2433.    suboptimal routing (e.g., extra internetwork layer hops through the
  2434.    NBMA) can result.  To avoid this situation an NHS that wants to send
  2435.    the Prefix Length MUST obey the following rule:
  2436.  
  2437.      The NHS examines the Network Layer Reachability Information (NLRI)
  2438.      associated with the route that the NHS would use to forward towards
  2439.      the destination (as specified by the Destination internetwork layer
  2440.      address in the NHRP Resolution Request), and extracts from this
  2441.      NLRI the shortest address prefix such that: (a) the Destination
  2442.      internetwork layer address (from the NHRP Resolution Request) is
  2443.      covered by the prefix, (b) the NHS does not have any routes with
  2444.      NLRI that forms a subset of what is covered by the prefix. The
  2445.      prefix may then be used in the CIE.
  2446.  
  2447.    The Prefix Length field of the CIE should be used with restraint, in
  2448.    order to avoid NHRP stations choosing suboptimal transit paths when
  2449.    overlapping prefixes are available.  This document specifies the use
  2450.    of the prefix length only when all the destinations covered by the
  2451.    prefix are "stable". That is, either:
  2452.  
  2453.      (a) All destinations covered by the prefix are on the NBMA network, or
  2454.  
  2455.      (b) All destinations covered by the prefix are directly attached to
  2456.          the NHRP responding station.
  2457.  
  2458.    Use of the Prefix Length field of the CIE in other circumstances is
  2459.  
  2460.  
  2461.  
  2462. Luciani, Katz, Piscitello, Cole                                [Page 44]
  2463.  
  2464. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  2465.  
  2466.  
  2467.    outside the scope of this document.
  2468.  
  2469. 6.4 Domino Effect
  2470.  
  2471.    One could easily imagine a situation where a router, acting as an
  2472.    ingress station to the NBMA subnetwork, receives a data packet, such
  2473.    that this packet triggers an NHRP Resolution Request.  If the router
  2474.    forwards this data packet without waiting for an NHRP transit path to
  2475.    be established, then when the next router along the path receives the
  2476.    packet, the next router may do exactly the same - originate its own
  2477.    NHRP Resolution Request (as well as forward the packet).  In fact
  2478.    such a data packet may trigger NHRP Resolution Request generation at
  2479.    every router along the path through an NBMA subnetwork.  We refer to
  2480.    this phenomena as the NHRP "domino" effect.
  2481.  
  2482.    The NHRP domino effect is clearly undesirable.  At best it may result
  2483.    in excessive NHRP traffic.  At worst it may result in an excessive
  2484.    number of virtual circuits being established unnecessarily.
  2485.    Therefore, it is important to take certain measures to avoid or
  2486.    suppress this behavior.  NHRP implementations for NHSs MUST provide a
  2487.    mechanism to address this problem. One possible strategy to address
  2488.    this problem would be to configure a router in such a way that NHRP
  2489.    Resolution Request generation by the router would be driven only by
  2490.    the traffic the router receives over its non-NBMA interfaces
  2491.    (interfaces that are not attached to an NBMA subnetwork).  Traffic
  2492.    received by the router over its NBMA-attached interfaces would not
  2493.    trigger NHRP Resolution Requests.  Such a router avoids the NHRP
  2494.    domino effect through administrative means.
  2495.  
  2496.  
  2497. 7. NHRP over Legacy BMA Networks
  2498.  
  2499.    There would appear to be no significant impediment to running NHRP
  2500.    over legacy broadcast subnetworks.  There may be issues around
  2501.    running NHRP across multiple subnetworks. Running NHRP on broadcast
  2502.    media has some interesting possibilities; especially when setting up
  2503.    a cut-through for inter-ELAN inter-LIS/LAG traffic when one or both
  2504.    end stations are legacy attached.  This use for NHRP requires further
  2505.    research.
  2506.  
  2507.  
  2508. 8. Security Considerations
  2509.  
  2510.    As in any resolution protocol, there are a number of potential
  2511.    security attacks possible.  Plausible examples include denial-of-
  2512.    service attacks, and masquerade attacks using register and purge
  2513.    packets.  The use of authentication on all packets is recommended to
  2514.    avoid such attacks.
  2515.  
  2516.  
  2517.  
  2518. Luciani, Katz, Piscitello, Cole                                [Page 45]
  2519.  
  2520. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  2521.  
  2522.  
  2523.    The authentication schemes described in this document are intended to
  2524.    allow the receiver of a packet to validate the identity of the
  2525.    sender; they do not provide privacy or protection against replay
  2526.    attacks.
  2527.  
  2528.    Detailed security analysis of this protocol is for further study.
  2529.  
  2530.  
  2531. 9. Discussion
  2532.  
  2533.    The result of an NHRP Resolution Request depends on how routing is
  2534.    configured among the NHSs of an NBMA subnetwork.  If the destination
  2535.    station is directly connected to the NBMA subnetwork and the the
  2536.    routed path to it lies entirely within the NBMA subnetwork, the NHRP
  2537.    Resolution Replies always return the NBMA address of the destination
  2538.    station itself rather than the NBMA address of some egress router.
  2539.    On the other hand, if the routed path exits the NBMA subnetwork, NHRP
  2540.    will be unable to resolve the NBMA address of the destination, but
  2541.    rather will return the address of the egress router.  For
  2542.    destinations outside the NBMA subnetwork, egress routers and routers
  2543.    in the other subnetworks should exchange routing information so that
  2544.    the optimal egress router may be found.
  2545.  
  2546.    In addition to NHSs, an NBMA station could also be associated with
  2547.    one or more regular routers that could act as "connectionless
  2548.    servers" for the station.  The station could then choose to resolve
  2549.    the NBMA next hop or just send the packets to one of its
  2550.    connectionless servers.  The latter option may be desirable if
  2551.    communication with the destination is short-lived and/or doesn't
  2552.    require much network resources.  The connectionless servers could, of
  2553.    course, be physically integrated in the NHSs by augmenting them with
  2554.    internetwork layer switching functionality.
  2555.  
  2556.  
  2557. References
  2558.  
  2559.    [1] NBMA Address Resolution Protocol (NARP), Juha Heinanen and Ramesh
  2560.        Govindan, RFC1735.
  2561.  
  2562.    [2] Address Resolution Protocol, David C. Plummer, RFC 826.
  2563.  
  2564.    [3] Classical IP and ARP over ATM, Mark Laubach, RFC 1577.
  2565.  
  2566.    [4] Transmission of IP datagrams over the SMDS service, J. Lawrence
  2567.        and D. Piscitello, RFC 1209.
  2568.  
  2569.    [5] Protocol Identification in the Network Layer, ISO/IEC TR
  2570.        9577:1990.
  2571.  
  2572.  
  2573.  
  2574. Luciani, Katz, Piscitello, Cole                                [Page 46]
  2575.  
  2576. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  2577.  
  2578.  
  2579.    [6] Assigned Numbers, J. Reynolds and J. Postel, RFC 1700.
  2580.  
  2581.    [7] Multiprotocol Encapsulation over ATM Adaptation Layer 5, J. Heinanen,
  2582.        RFC1483.
  2583.  
  2584.    [8] Multiprotocol Interconnect on X.25 and ISDN in the Packet Mode,
  2585.        A. Malis, D. Robinson, and R. Ullmann, RFC1356.
  2586.  
  2587.    [9] Multiprotocol Interconnect over Frame Relay, T. Bradley, C. Brown, and
  2588.        A. Malis, RFC1490.
  2589.  
  2590.    [10] "Local/Remote" Forwarding Decision in Switched Data Link Subnetworks,
  2591.         Yakov Rekhter, Dilip Kandlur, RFC1937.
  2592.  
  2593.    [11] Support for Multicast over UNI 3.0/3.1 based ATM Networks,
  2594.         G. Armitage, Work In Progress.
  2595.  
  2596.    [12] Server Cache Synchronization Protocol (SCSP) - NBMA,
  2597.         J. Luciani, G. Armitage, J. Halpern, Work In Progress.
  2598.  
  2599.    [13] NHRP for Destinations off the NBMA Subnetwork,
  2600.         Y. Rekhter, Work In Progress.
  2601.  
  2602.    [14] Classical IP to NHRP Transition, J. Luciani, et al., Work In Progress.
  2603.  
  2604.  
  2605.  
  2606.  
  2607. Acknowledgments
  2608.  
  2609.    We would like to thank Juha Heinenan of Telecom Finland and Ramesh
  2610.    Govidan of ISI for their work on NBMA ARP and the original NHRP
  2611.    draft, which served as the basis for this work.  Russell Gardo of
  2612.    IBM, John Burnett of Adaptive, Dennis Ferguson of ANS, Joel Halpern
  2613.    of Newbridge, Paul Francis of NTT, Tony Li and Yakov Rekhter of
  2614.    cisco, and Grenville Armitage of Bellcore should also be acknowledged
  2615.    for comments and suggestions that improved this work substantially.
  2616.    We would also like to thank the members of the ION working group of
  2617.    the IETF, whose review and discussion of this document have been
  2618.    invaluable.
  2619.  
  2620. Authors' Addresses
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630. Luciani, Katz, Piscitello, Cole                                [Page 47]
  2631.  
  2632. INTERNET-DRAFT                 NBMA NHRP              Expires March 1997
  2633.  
  2634.  
  2635.  
  2636.    James V. Luciani                    Dave Katz
  2637.    Bay Networks                        cisco Systems
  2638.    3 Federal Street                    170 W. Tasman Dr.
  2639.    Mail Stop: BL3-04                   San Jose, CA 95134 USA
  2640.    Billerica, MA 01821                 Phone:  +1 408 526 8284
  2641.    Phone:  +1 508 439 4734             Email:  dkatz@cisco.com
  2642.    Email:  luciani@baynetworks.com
  2643.  
  2644.    David Piscitello                    Bruce Cole
  2645.    Core Competence                     cisco Systems
  2646.    1620 Tuckerstown Road               170 W. Tasman Dr.
  2647.    Dresher, PA 19025 USA               San Jose, CA 95134 USA
  2648.    Phone:  +1 215 830 0692             Phone:  +1 408 526 4000
  2649.    Email: dave@corecom.com             Email:  bcole@cisco.com
  2650.  
  2651.  
  2652.  
  2653.  
  2654.  
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.  
  2664.  
  2665.  
  2666.  
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.  
  2686. Luciani, Katz, Piscitello, Cole                                [Page 48]
  2687.  
  2688.