Skip to main content

Guidelines for Next Hop Client (NHC) Developers
draft-carlson-nhrp-03

The information below is for an old version of the document that is already published as an RFC.
Document Type
This is an older version of an Internet-Draft that was ultimately published as RFC 2583.
Authors Linda Winkler , Richard A. Carlson
Last updated 2013-03-02 (Latest revision 1999-03-02)
RFC stream Internet Engineering Task Force (IETF)
Intended RFC status Informational
Formats
Additional resources Mailing list discussion
Stream WG state (None)
Document shepherd (None)
IESG IESG state Became RFC 2583 (Informational)
Consensus boilerplate Unknown
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-carlson-nhrp-03
INTERNET-DRAFT               R. Carlson
                                                                ANL
                                                                L. Winkler
                                                                ANL
                                                                August, 1999

                   Guidelines for Next Hop Client (NHC) Developers
                             <draft-carlson-nhrp-03.txt>

             1. Status of this memo

             This document is an Internet-Draft and is in full
             conformance with all provisions of Section 10 of RFC2026.
             Internet-Drafts are working documents of the Internet
             Engineering Task Force (IETF), its areas, and its working
             groups.  Note that other groups may also distribute working
             documents as Internet-Drafts.

             Internet-Drafts are draft documents valid for a maximum of
             six months and may be updated, replaced, or obsoleted by
             other documents at any time.  It is inappropriate to use
             Internet-Drafts as reference material or to cite them other
             than as "work in progress".

             To view the entire list of current Internet-Drafts, please
             check the "lid-abstracts.txt" listing contained in the
             Internet-Drafts Shadow Directories on ftp.is.co.za
             (Africa), ftp.nordu.net (Northern Europe), ftp.nis.garr.it
             (Southern Europe), munnari.oz.au (Pacific Rim),
             ftp.ietf.org (US East Coast), or ftp.isi.edu (US West
             Coast).

             2. Abstract

             This document provides guidelines for developers of the
             Next Hop Resolution Protocol Clients (NHC).  It assumes
             that the clients are directly connected to an ATM based
             NBMA network.  The same principles will apply to clients
             connected to other types of NBMA networks.  The intent is
             to define the interaction between the NHC code and the
             TCP/IP protocol stack of the local host operating system. 
             The NHC is capable of sending NHRP requests to a Next Hop
             Resolution Protocol Server (NHS) to resolve both inter and
             intra LIS addresses.  The NHS reply may be positive (ACK)
             indicating a short-cut path is available or negative (NAK)
             indicating that a shortcut is not available and the routed
             path must be used.  The NHC must cache (maintain state) for
             both the ACK and NAK replies in order to use the correct
             shortcut or routed path.  The NAK reply must be cached to

             Carlson, Winkler                                   [Page 1]

             Internet Draft                                 August, 1999

             avoid making repeated requests to the NHS when the routed
             path is being used.

             3. Overview

             In the Classical IP over ATM model [1], an ATM attached
             host communicates with an ATMARP server to resolve IP to
             ATM address semantics.  This model supports the concept of
             a Logical IP Subnet (LIS) with intra LIS communications
             using direct PVCs/SVCs and inter LIS communications using
             IP routers to forward packets.  This model easily maps to
             the conventional LAN model of subnets and routers.  The
             Next Hop Resolution Protocol (NHRP) [2] defines how the LIS
             model can be modified to allow direct ATM SVCs (shortcut
             paths) for inter LIS traffic.  With NHRP, nodes directly
             attached to an ATM network can bypass the IP routers and
             establish a direct switched virtual circuit to improve
             performance when needed.

             The NHS code replaces the ATMARP code in the ATMARP server. 
             Each NHS serves a set of destination client hosts and
             cooperates with other NHSs to resolve NHRP next hop
             requests within their own logical ATM network. The NHC to
             NHS and NHS to NHS protocol interactions are described in
             [2].  Other documents in the NHRP series define the general
             applicability [3] and the transition from ATMARP servers to
             NHSs [4].

             The NHC code replaces the ATMARP code in the local
             workstations.  This code will take the destination IP
             address and map it into the ATM End Station Address (AESA)
             for both intra and inter LIS destinations.  The returned
             AESA will be stored in a local cache table.  In addition to
             storing the positive replies, the NHC will need to store
             the negative replies to avoid making repeated NHS calls
             when using the routed path.

             This document describes a base line method for caching the
             returned information.  Other methods may be used as long as
             the same functionality is provided.

             4. IP Processing

             In the Classical IP LIS model [1] the TCP/IP protocol stack
             treats the ATM network as a simple data link layer
             protocol.  When an application sends data using the
             Classical IP protocol, IP performs a routing table lookup
             to determine if the destination is reachable via a local
             interface or whether an intermediate router is the next hop
             to the IP destination.

             If the destination is found to be local (e.g. in the same
             LIS as the source) the packet will be passed to the local
             ATM interface with the next hop IP address set to the
             destination nodes IP address.  At this point the ATMARP

             Carlson, Winkler                                   [Page 2]

             Internet Draft                                 August, 1999

             table will be searched to determine the ATM Address of the
             destination node.  If no ATMARP table entry is found an
             ATMARP request will be sent to the ATMARP server.  This
             server can reply with a positive (ACK) or negative (NAK)
             answer depending on the current information it has in its
             cache.  If an ACK is received the host's local ATMARP table
             is filled in appropriately and the source is now able to
             send IP datagrams to the destination.  If a NAK is
             returned, the calling application is notified of this error
             condition (e.g., ICMP destination unreachable).

             If the destination is found to be remote (e.g., in a
             different LIS from the source) the IP address of the next
             hop router is extracted from the IP routing table and the
             ATM Address of this router is looked up in the ATMARP
             table.  Since the router is in the same LIS as the source
             node, the ATMARP procedure described above will find the
             correct ATM Address or the packet will be marked as
             undeliverable and the user application will be notified of
             the error.

             The ATMARP service functions exactly as the existing ARP
             service provided on Ethernet broadcast networks.  Since the
             ARP service will only try and resolve addresses for nodes
             that are in a single IP subnet, the ARP table only needs to
             keep positive answers.  No state information is retained
             about failed mappings.

             5. NHC Processing

             In this section we briefly describe what is required in
             order for a host to take advantage of shortcuts through the
             ATM network.  On the host, a NHC process initiates various
             NHRP requests in order to obtain access to the NHRP
             service. Within the ATM subnetwork, the ATMARP server is
             replaced with a NHS.  As defined in [4] the NHS is required
             to respond to both ATMARP and NHRP Resolution requests.  In
             the nodes wishing to take advantage of shortcut paths
             across the ATM subnetwork, the ATMARP client code must be
             replaced with NHC code.  This allows the source node to ask
             for the ATM AESA of both local and remote nodes.  Finally
             the source node must be modified to know when it should ask
             for the ATM AESA of a remote node and when the local LIS
             router should be used.  These modifications are described
             in the remainder of this document.

             The protocol processing described in [2] states a source
             may query a NHS for the ATM AESA of a destination node. 
             However as is pointed out in [5], to achieve shortcut paths
             through the ATM network, it is not enough to simply replace
             the ATMARP client code with the NHC code.  This is because
             the source host will never ask the NHS for the ATM AESA of
             a node in a remote LIS.  When the source consults the IP
             routing table, it performs the local/remote test, before
             the NHC code is processed.  As a result, the IP address of

             Carlson, Winkler                                   [Page 3]

             Internet Draft                                 August, 1999

             the next hop router will be used by the NHC instead of the
             IP address of the remote (inter LIS) host.  The NHC code
             must ignore the result of the IP routing table lookup and
             perform its own local/remote test.

             The NHC must perform the following functions:
             1.     Test to see if the destination node is `local' to
                    this LIS.  If so use the existing ATMARP rules
                    described in [1].
             2.     If not; send an NHRP message to the local NHS and
                    attempt to setup a `shortcut' path.  If successful;
                    save the IP to ATM AESA mapping in the local NHC
                    cache.
             3.     If not successful; use the routed path and save
                    this state in the NHC cache so future requests
                    don't test for a shortcut again.
             4.     Allow user application to override system default
                    operation and explicitly request a shortcut or
                    routed path for a flow.

             It is required that this routed path state will be
             maintained in the same manner as the existing ATMARP
             service.  That is a timer will be used to expire old
             information and some administrative function exists to
             manually delete data if needed.

             6. Need for State

             It is obvious that the IP to ATM AESA mappings should be
             maintained in a local cache to improve network performance. 
             This soft state is maintained in today's ARP and ATMARP
             systems using timers to purge old or unused data.  The NHC
             will maintain both inter and intra LIS IP to ATM Address
             mappings in the same manner.  It may be less obvious that
             an NHC will also need to maintain this same soft state for
             inter LIS mappings using the routed path.  If this state is
             not maintained, the source node will send requests to the
             NHS asking if a shortcut path can be setup every time a
             packet is sent over the routed path.

             Some of the features of this state are:
             1.        Cache lookups must be fast as they are done on
                       every packet.
             2.        The cache lookup must be on the destination IP
                       address instead of the next-hop router IP
                       address.
             3.        Both ACK and NAK data should be cached for the
                       length of the holding time parameter in the NHRP
                       response.

             Since state must be maintained, the questions of where to
             maintain it, how to manually managed it, and how to
             selectively override it need to be addressed.  No matter
             where this state information is kept, a method for manually
             examining and changing this state information must be
             provided.  This is essential to insure that the network is
             operating properly.

             Carlson, Winkler                                   [Page 4]

             Internet Draft                                 August, 1999

             There are several possible locations for storing this state
             information, they are:
             1.     Store state in the `ARP' table.  This is the
                    traditional location for this IP to ATM address
                    mappings.  This table must be extended to handle
                    the caching of negative (routed path) information. 
                    This solution provides a system wide service that
                    may be used by the NHC. 
             2.     Store state in the IP routing table.  This is the
                    traditional location for the local/remote state
                    information.
             3.     Store state in an ATM MIB structure.  This is the
                    traditional location for storing ATM VCC data.  It
                    also provides a system wide service that is geared
                    toward ATM services.  This avoids munging the 'ARP'
                    table to hold negative data.
             4.     Store state in the TCP Process Control Block.  This
                    allows a per process tailoring of shortcut or
                    routed path information.  This works well for TCP
                    connections, but not UDP style services.
             5.     Store state in the socket structure.  This also
                    allows per process tailoring of the state
                    information.
             6.     Store state in a newly defined table.

             The NHC should also support both local (per-process) and
             global (per-system) state.  This would allow a system wide
             default while allowing a specific application to tailor the
             operation for a specific task.  For example assume a site
             runs both a DNS server and FTP server on a single host. 
             Inter LIS communications to the DNS server should take the
             routed path to avoid setup overhead.  While an FTP session
             would benefit from the shortcut path to improve
             performance.  Supporting both operations from a single
             client will require both a global state (e.g. use shortcut
             for FTP) and a local state (e.g. use routed path for DNS).

             6.1 Using TCP

             TCP is a connection orientated protocol that provides per-
             process state information using a TCP Protocol Control
             Block (PCB).  This PCB can be used to save the
             shortcut/routed path state information. Using a quad-state
             flag that shows the USE_SHORT_CUT, TRY_SHORT_CUT,
             USE_ROUTED_PATH, or TRY_ROUTED_PATH states would allow each
             process to use the service it chooses.  The advantage of
             this approach is that it allows per flow control over the
             use of the shortcut or routed path.  The disadvantage is
             that this PCB is only created for TCP connections.  UDP
             connections will only use the system default action.

             A second option is to store this information in the socket
             PCB and use the socket function (setsockopt) to save this

             Carlson, Winkler                                   [Page 5]

             Internet Draft                                 August, 1999

             information.  This option will allow both TCP and UDP
             applications to set a per flow action to override the
             system default operation.  To enable this option, the IP
             kernel code will need to be modified to allow this quad-
             state flag to be set.  In addition this flag will need to
             be checked when each packet is sent to determine the if the
             shortcut or routed path is being used.

             6.2 Using UDP

             UDP is a connectionless orientated protocol that doesn't
             provide any support for state information.  It relies on
             the application to provide the necessary state information. 
             In this case where should the state be stored?  The user
             application could store this itself and pass this down to
             the kernel in some manner.  Another option is to store this
             information in an ATM MIB structure.  A third option is to
             allow a socket option (setsockopt) that the user
             application can set to override the default behavior.

             6.3 Using ICMP

             In keeping with the tradition of using ICMP echo packets
             for Internet management functions (e.g. ping, traceroute)
             then it will be necessary to allow these applications to
             run over the shortcut and routed paths.  The user will need
             to be able to specify which path to use and a default
             action needs to be defined too.

             7. Conclusions

             NHRP provides new services and functionality for IP nodes
             using ATM networks.  To use these services the client must
             store state information that describes whether a
             destination node is reachable via a shortcut or a routed
             path. 

             The state information should be stored on a global per-
             application basis with per-process override functionality. 
             This allows short lived functions (e.g. DNS requests) and
             long lived requests (e.g. ftp sessions) to use different
             paths.  Storing state only based on the destination address
             means that all processes must use the same path and this
             creates unreasonable demands on the network.  To accomplish
             this the /etc/services file should be modified to carry a
             new flag to indicate the per-application default (shortcut
             vs. routed path) behavior.

             This state information is required to avoid having the
             client make a call to the NHS for every packet it sends
             along the routed path.  It is recommended that the IP
             routing table be modified to support a new flag.  This flag
             will indicate whether the NHS returned an ACK or NAK to the
             NHRP request.  

             In addition, application programmers and system

             Carlson, Winkler                                   [Page 6]

             Internet Draft                                 August, 1999

             administrators require the ability to explicitly request a
             specific service (e.g. use the routed path or shortcut
             path).  This includes the ability to verify network
             operation by specifying how ICMP echo requests (e.g. ping,
             traceroute) are handled.  The NHC must support the manual
             setting of this state information.  A new socket option
             that allows the user to specify the operation needs to be
             supported.

             To support this capability a new socket option will be
             created to allow the user application to control the
             operation of a particular connection (flow).  This option
             will allow the user to specify that a connection use one of
             the following:
             *      USE_SYSTEM_DEFAULT.  Use the shortcut or routed
                    path based on the system configuration information
                    for this application.  (This is the default
                    behavior.)
             *      USE_SHORT_CUT.  If a shortcut path exists, then use
                    it to deliver the data.  If it doesn't exist, then
                    try and create it.  If the shortcut cannot be
                    created, fail the connection and notify the user.
             *      TRY_SHORT_CUT.  If a shortcut path exists, then use
                    it to deliver the data.  If it doesn't exist, then
                    try and create it.  If the shortcut cannot be
                    created, try using the routed path.
             *      USE_ROUTED_PATH.  Use the routed path regardless of
                    whether a shortcut exists or not.
             *      TRY_ROUTED_PATH.  If a shortcut doesn't exist,
                    don't try and create it, use the routed path
                    instead.

             8. Security

             The security issues for NHRP are addressed in other NHRP
             documents [2,3].  Some specific security issues for the NHC
             developer are discussed below.

             *      Address spoofing at the IP or ATM layer may allow an
                    attacker to hi-jack an IP connection or service. 
                    This threat may be reduced by limiting the scope of
                    the ATM routing domain.  In this way only trusted IP
                    hosts will be able to reach and use the services of
                    the NHS.  
             *      Denial of service attacks may be launched at both
                    the IP and ATM layers of the NHS.  At the ATM layer,
                    the attacker may repeatedly generate signaling
                    messages that consuming system resources thus
                    preventing NHCs from using the NHS services.  At the
                    IP layer, the attacker may register false IP to ATM
                    mappings thus preventing a NHC from registering the
                    correct IP to ATM mapping.
             *      When a NHC creates or accepts a short-cut path it
                    bypasses the site border router.  Therefore, any

             Carlson, Winkler                                   [Page 7]

             Internet Draft                                 August, 1999

                    security features in the border router are also
                    bypassed.  This threat may be reduced by limiting
                    the scope of the ATM routing domain, increasing
                    security features in the NHC host, allowing the NHS
                    to evaluate security features when short-cut paths
                    are requested or a compination of all of these
                    methods.

             9. Authors Address

             Richard Carlson
             Argonne National Laboratory
             RACarlson@anl.gov

             Linda Winkler
             Argonne National Laboratory
             lwinkler@anl.gov

             10. References:

             [1] "Classical IP and ARP over ATM", RFC-2225, M. Laubach
             J. Halpern, April 1998.
             [2] "NBMA Next Hop Resolution Protocol (NHRP)", RFC-2332,
             J. Luciani D. Katz D. Piscitello B. Cole N. Doraswamy,
             April 1998.
             [3] "NHRP Protocol Applicability Statement", RFC-2333, D.
             Cansever, April 1998.
             [4] "Classical IP to NHRP Transition", RFC-2336, J.
             Luciani, July 1998.
             [5] "Local/Remote Forwarding Decision in Switched Data link
             Subnetworks", RFC-1937, Y. Rekhter & D. Kandlur, May 1996.

             Carlson, Winkler                                   [Page 8]