home *** CD-ROM | disk | FTP | other *** search
/ The Hacker's Encyclopedia 1998 / hackers_encyclopedia.iso / rfc / 3 / rfc2332.txt < prev    next >
Encoding:
Text File  |  2003-06-11  |  124.0 KB  |  2,916 lines

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