RFC 2333

NHRP Protocol Applicability Statement

๐Ÿ“… published April 1998, from ietf

RFC 2333: NHRP Protocol Applicability Statement ๐Ÿฆ‹

Okay bestie, this one is all about NHRP (Next Hop Resolution Protocol) and where it's actually a good fit ๐Ÿ’… Here's the title block tea โ˜•:

  • RFC number: 2333 โœจ
  • Title: NHRP Protocol Applicability Statement
  • Author: D. Cansever, GTE Laboratories, Inc. ๐ŸŽ€
  • Stream: Network Working Group ๐ŸŒˆ
  • Category: Standards Track ๐Ÿ‘‘
  • Date: April 1998 ๐Ÿ“
  • Obsoletes / Updates: neither is listed on this doc, so it isn't replacing or patching any older RFC ๐Ÿ™ˆ

Status of This Memo ๐Ÿ“œ

Okay so this section says it's an Internet standards track protocol for the Internet community ๐ŸŒธ and they're literally asking for discussion and suggestions for improvements ๐Ÿ’ฌ If you want the official standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1) ๐Ÿ“š And distribution of this memo is unlimited ๐Ÿฆ‹

Copyright (C) The Internet Society (1998). All Rights Reserved. ๐Ÿซถ

Abstract

The tea โ˜•: as required by the Routing Protocol Criteria [RFC 1264], this memo looks at how the Next Hop Resolution Protocol (NHRP) applies to routing IP datagrams over Non-Broadcast Multiple Access (NBMA) networks, like ATM, SMDS and X.25 ๐ŸŒˆ

1. Protocol Documents ๐Ÿ“š

The NHRP protocol description is defined in [1] ๐Ÿงš and the NHRP MIB description is defined in [2] ๐Ÿ’œ

2. Introduction ๐ŸŒธ

So this doc sums up the key features of NHRP and talks about the environments where the protocol is a perfect match ๐Ÿ’– Think of NHRP as a glow-up of Classical IP and ARP over ATM, which is defined in [3] โœจ and the Transmission of IP Datagrams over the SMDS Service, defined in [4] ๐Ÿฆ‹ It generalizes things in 2 distinct directions, and I'm obsessed with both ๐Ÿ˜ญ

First up, NHRP avoids the need to go through extra hops of routers when the Source and Destination belong to different Logical Internet Subnets (LIS) ๐Ÿšซ๐Ÿ›ฃ๏ธ Now, [3] and [4] say that when the source and destination are in different LISs, the source station has to forward data packets to a router that's a member of multiple LISs, even if both stations are on the same logical NBMA network ๐Ÿ™ƒ With NHRP, if the source and destination are on the same logical NBMA network, the source gets an inter-LIS address resolution mechanism. At the end of it, both stations can exchange packets without bouncing through intermediate routers ๐Ÿ”ฅ This is also called "short-cut" routing โšก If the destination isn't part of the logical NBMA network, NHRP hands the source the NBMA address of the current egress router towards the destination ๐Ÿ—บ๏ธ

The second glow-up is that NHRP isn't locked to one NBMA technology ๐Ÿ’… [3] assumes an ATM network and [4] assumes an SMDS network at their respective subnetwork layers, but NHRP is its own girl ๐Ÿ‘‘

NHRP is specified for resolving the destination NBMA addresses of IP datagrams over IP subnets inside a large NBMA cloud โ˜๏ธ It's also been designed to be extensible to network layer protocols other than IP, possibly with other network layer protocol specific additions ๐ŸŒท

And here's the big application ๐ŸŽ€ The Multiprotocol Over ATM (MPOA) Working Group of the ATM Forum decided to adopt and integrate NHRP into its MPOA Protocol specification [5] ๐Ÿคฉ So NHRP will be used to resolve the ATM addresses of MPOA packets destined outside the originating subnet ๐Ÿฆ‹

3. Key Features ๐Ÿ”‘

NHRP gives you a way to get the NBMA network address of the destination, or of a router along the path to it ๐Ÿงญ It's not a routing protocol, but it can make use of routing information ๐Ÿ’œ More on that in Section 5 โœจ

The most prominent feature is that NHRP avoids extra router hops in an NBMA with multiple LISs ๐Ÿ™Œ So if the destination is directly attached to the NBMA, NHRP gives the source the NBMA address of the destination itself ๐ŸŽฏ If the destination isn't attached to the NBMA, NHRP gives the source the NBMA address of an exit router that has connectivity to the destination ๐Ÿšช There can be multiple exit routers with connectivity to the destination, though ๐Ÿ‘ฏโ€โ™€๏ธ If NHRP uses a dynamic routing algorithm to do its job (which is necessary for robust and scalable operation ๐Ÿ’ช), then the exit router NHRP identifies reflects the selection made by the network layer dynamic routing protocol ๐Ÿ›ค๏ธ That selection often reflects something desirable, like picking the exit router that causes the fewest hops in the original routed path ๐Ÿฅ‡

NHRP is defined for avoiding extra hops when delivering IP packets with a single destination ๐ŸŽฏ That means it's not meant for direct use in a point-to-multipoint setting ๐Ÿ™…โ€โ™€๏ธ Still, elements of NHRP may be used in certain multicast scenarios to provide short cut routing, and that effort is discussed in [6] ๐Ÿงš In that case NHRP would avoid intermediate routers in the multicast path ๐Ÿƒโ€โ™€๏ธ Scalability of short-cut paths in a multicast environment is still an open issue ๐Ÿค”

NHRP can be used for host-host, host-router and router-host communications ๐Ÿ’– But when it's used in router-router communication, NHRP (as defined in [1]) can produce persistent routing loops if the underlying routing protocol loses information critical to loop suppression ๐Ÿ˜ฑ That can happen when router metrics change across autonomous system boundaries ๐ŸŒช๏ธ NHRP for router-router communication that avoids persistent forwarding loops will be covered in a separate document ๐Ÿ“„

๐Ÿšจ Loop alert: router-router NHRP as defined in [1] can produce persistent routing loops. Keep that in mind, bestie!

There's a special case of router-router communication where loops won't occur: when the destination host is directly adjacent to the non-NBMA interface of the egress router ๐Ÿ™Œ If that adjacency is believed to be a stable topological configuration, then NHRP can safely be used in this router-router scenario โœ… If the NHRP Request has the Q bit set (meaning the requesting party is a router) and the destination is directly adjacent to the egress router in a stable configuration, the egress router can issue a corresponding NHRP reply ๐Ÿ“จ If the destination isn't adjacent to the egress router and the Q bit is set in the Request, a safe mode for the egress router is to issue a negative NHRP Reply (NAK) for that particular request ๐Ÿ™…โ€โ™€๏ธ That way, the data packets are forced to follow the routed path ๐Ÿ›ค๏ธ Safe mode, periodt ๐Ÿซถ

Because NHRP has inter-LIS address resolution capability, communicating parties can exchange packets by fully using the special features of the NBMA network ๐ŸŒˆ One example is using QoS guarantees when the NBMA network is ATM ๐Ÿ’… Thanks to short-cut routing, ATM-provided QoS guarantees can be implemented without dealing with re-assembling and re-segmenting IP packets at each network layer hop ๐Ÿคฏ Iconic, honestly ๐Ÿ‘‘

NHRP can be viewed as a client-server interaction ๐Ÿงฉ An NHRP Client is the one who issues an NHRP Request โœ‰๏ธ An NHRP Server is the one who issues a reply to an NHRP Request, or the one who forwards a received NHRP Request to another Server ๐Ÿ” And yes, one NHRP entity can act as both a Client and a Server ๐Ÿซถ

4. Use of NHRP ๐ŸŽ€

Issuing an NHRP request is generally an application dependent action [7] ๐Ÿ’… For applications without particular QoS requirements that run for a short period of time, an NBMA short-cut may not be a necessity ๐Ÿ™ˆ When short-cuts come with a "cost," those applications may be better served by network layer hop-by-hop routing ๐Ÿข That "cost" can be monetary, or it can be extra strain on the equipment that implements short-cuts ๐Ÿ’ธ So there's a trade-off between the "cost" of a short-cut path and its utility to the user โš–๏ธ Reference [7] proposes that this trade-off be addressed at the application level ๐Ÿง 

In an environment of LANs and routers interconnected via dedicated links, the basic routing decision is whether to forward a packet to a router or broadcast it locally ๐Ÿ“ก That local vs. remote decision is based on the destination address ๐Ÿ“ When you route IP packets over an NBMA network, though, there's potentially direct Source to Destination connectivity with QoS options ๐Ÿคฉ So the local vs. remote decision isn't as fundamentally important anymore ๐Ÿ˜Œ The basic decision becomes short-cut vs. hop-by-hop network layer routing ๐Ÿ”€ And the relevant criterion becomes the applications' QoS requirements [7] ๐Ÿ’– NHRP is especially applicable where the local vs. remote decision is superseded by the short-cut vs. hop-by-hop decision ๐Ÿ‘‘

Let's assume the trade-off favors a short-cut NBMA route ๐Ÿ›ฃ๏ธ An NHRP request can be issued by a variety of NHRP aware entities, including hosts and routers with NBMA interfaces ๐Ÿ–ฅ๏ธ If an IP packet traverses multiple hops before a short-cut path is established, there's a chance multiple short-cut paths could form ๐Ÿ˜ฌ To avoid that messy situation, a useful operation rule is to authorize only the following entities to issue an NHRP request and perform short-cut routing ๐Ÿงน

  • i) The host that originates the IP packet, if the host has an NBMA interface ๐Ÿ–ฅ๏ธ
  • ii) The first router along the routing path of the IP packet such that the next hop is reachable through the NBMA interface of that particular router ๐Ÿ›ค๏ธ
  • iii) A policy router within an NBMA network through which the IP packet has to traverse ๐Ÿงšโ€โ™€๏ธ

5. Protocol Scalability ๐Ÿ“ˆโœจ

okay so, quick reminder: NHRP is only for delivering IP packets with a single destination ๐Ÿ’…, so this whole discussion is stuck in a unicast setting ๐ŸŽ€. NHRP's scalability can be looked at on three distinct levels:

  • Client level
  • LIS level
  • Domain level

Client level first ๐ŸŒธ. Here the scalability is affected by the processing and memory limits of the NIC that gives the interface to the NBMA network. When the NBMA network is connection oriented, like ATM, NIC limits can bound NHRP's scalability in certain apps ๐Ÿ˜ญ. Like, a server handling hundreds of requests per second over an ATM interface may be bounded by its NIC's performance characteristics. Same energy when the NHRP Client sits at an NBMA interface of a router: the memory and processing limits of the router's NIC may bound NHRP's scalability, because routers deal with an aggregation of traffic from multiple sources, which creates a potentially large number of SVCCs out of the router's NBMA interface ๐Ÿงš.

LIS level is all about maintaining and delivering a sizable number of NBMA to Network layer address mappings inside large LISs ๐Ÿ“. NHRP implementations can use the services of the Server Cache Synchronization Protocol (SCSP) [8], which allows multiple synchronized NHSs within an LIS, and that's how the scalability issue gets resolved ๐Ÿซถ.

Domain level is where it gets spicy ๐ŸŒˆ. Network layer routing is used to resolve the NBMA address of a destination outside the LIS, so NHRP's scalability is closely tied to the scalability of the network layer routing protocol it uses. Dynamic network layer routing protocols are proven to scale well โญ. So when you pair NHRP with dynamic routing algorithms, at the NHRP Domain level NHRP should scale in the same order as the routing algorithm, subject to the assumption that all the routers along the path are NHRP aware ๐Ÿ‘‘. If an NHRP Request gets processed by a router that doesn't implement NHRP, it will be silently discarded ๐Ÿ’€. Then short-cuts can't be implemented, and connectivity is provided on a hop-by-hop basis.

So when NHRP runs with dynamic network layer routing, a scaling requirement is that virtually all the routers within a logical NBMA network should be NHRP aware ๐Ÿฆ‹.

You can also use static routing with NHRP ๐Ÿงธ. Then not all the routers in the NBMA network need to be NHRP aware, because the routers that need to process NHRP control messages are specified by static routing. Routers that aren't in the manually defined static paths don't have to be NHRP aware. BUT static routing does not scale, ngl ๐Ÿ™ˆ. And if the destination is off the NBMA network, static routing could result in persistently suboptimal routes. Static routing also has pretty negative failure modes, so be careful bestie ๐Ÿฅบ.


6. Discussion ๐Ÿ’ฌ

okay, so NHRP does not replace existing routing protocols ๐Ÿ™…โ€โ™€๏ธ. Routing protocols are the ones figuring out the proper path from a source host or router (or intermediate router) to a particular destination. If the routing protocol says the proper path goes through an interface to an NBMA network, then NHRP may be used at that NBMA interface to resolve the destination IP address into the corresponding NBMA address โœจ. Of course, using NHRP is subject to the considerations we covered in Section 4.

Assuming NHRP is applicable and the destination address has been resolved, packets are forwarded using the data forwarding and path determination mechanisms of the underlying NBMA network ๐Ÿš€. The order of operations is: route determination is done by IP routing, totally independent of NHRP. Then NHRP is used to create a short-cut track upon the path that the IP routing protocol determined. So yes, NHRP "shortens" the routed path ๐Ÿฆ‹.

Here's the tea ๐Ÿต: NHRP (as defined in [1]) is not sufficient to suppress persistent forwarding loops when used for router-router communication, if the underlying routing protocol loses information critical to loop suppression [9]. Work is in progress [10] to augment NHRP so it can be used for router-router communication without persistent forwarding loops ๐Ÿ”ง.

When the routed path keeps changing on some relatively short time scale, like seconds, that situation will affect how NHRP operates ๐Ÿ˜ตโ€๐Ÿ’ซ. In certain router-router operations, changes in the routed path could create persistent routing loops ๐ŸŒ€. In host-router or router-host communications, frequent changes in routed paths could result in inefficiencies, like frequently creating short-cut paths that are short lived ๐Ÿ™ƒ.


7. Security Considerations ๐Ÿšจ

Alright security bestie, listen up ๐Ÿ‘€. NHRP is an address resolution protocol, and SCSP is a database synchronization protocol. Because of that, they're possibly subject to server (for NHRP) or peer (for SCSP) spoofing and denial of service attacks ๐Ÿ˜ฑ. They both provide authentication mechanisms so they can be used in environments where spoofing is a concern ๐Ÿ”. The details live in sections 5.3.4 in [1] and B.3.1 in [8].

There are no additional security constraints or concerns raised in this document that are not already discussed in the referenced sections. So go read those referenced sections, no cap ๐Ÿ’–.

References ๐Ÿ“š

  • [1] Luciani, J., Katz, D., Piscitello, D., Cole, B., and N. Doraswamy, "NMBA Next Hop Resolution Protocol (NHRP)", RFC 2332, April 1998.
  • [2] Greene, M., and J. Luciani, "NHRP Management Information Base", Work in Progress.
  • [3] Laubach, M., and J. Halpern, "Classical IP and ARP over ATM", RFC 2225, April 1998.
  • [4] Lawrance, J., and D. Piscitello, "The Transmission of IP datagrams over the SMDS service", RFC 1209, March 1991.
  • [5] Multiprotocol Over ATM Version 1.0, ATM Forum Document af-mpoa-0087.000
  • [6] Rekhter, Y., and D. Farinacci, "Support for Sparse Mode PIM over ATM", Work in Progress.
  • [7] Rekhter, Y., and D. Kandlur, "Local/Remote" Forwarding Decision in Switched Data Link Subnetworks", RFC 1937, May 1996.
  • [8] Luciani, J., Armitage, G., Halpern, J., and N. Doraswamy, "Server Cache Synchronization Protocol (SCSP) - NBMA", RFC 2334, April 1998.
  • [9] Cole, R., Shur, D., and C. Villamizar, "IP over ATM: A Framework Document", RFC 1932, April 1996.
  • [10] Rekhter, Y., "NHRP for Destinations off the NBMA Subnetwork", Work in Progress.

Acknowledgements ๐Ÿซถ

The author acknowledges valuable contributions and comments from many participants of the ION Working Group, in particular from Joel Halpern of Newbridge Networks, David Horton of Centre for Information Technology Research, Andy Malis of Nexion, Yakov Rekhter and George Swallow of Cisco Systems and Curtis Villamizar of ANS ๐Ÿ’œ.

Author's Address ๐Ÿ“ฎ

Derya H. Cansever
GTE Laboratories Inc.
40 Sylvan Rd. MS 51
Waltham MA 02254

Phone: +1 617 466 4086
EMail: dcansever@gte.com

Copyright (C) The Internet Society (1998). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. ๐ŸŒˆ

๐Ÿ“ฆ where this page comes from