NHRP for the router-to-router case (fairly long message)

Yakov Rekhter <yakov@cisco.com> Tue, 11 July 1995 23:03 UTC

Received: from ietf.nri.reston.va.us by IETF.CNRI.Reston.VA.US id aa19700; 11 Jul 95 19:03 EDT
Received: from [204.249.96.18] by IETF.CNRI.Reston.VA.US id aa19696; 11 Jul 95 19:03 EDT
Received: from maelstrom.acton.timeplex.com (maelstrom.nexen.com [204.249.97.5]) by nexen.nexen.com (8.6.12/8.6.12) with ESMTP id SAA09739; Tue, 11 Jul 1995 18:49:22 -0400
Received: (from root@localhost) by maelstrom.acton.timeplex.com (8.6.12/8.6.12) id SAA13382 for rolc-out; Tue, 11 Jul 1995 18:47:26 -0400
Received: from nexen.nexen.com ([204.249.96.18]) by maelstrom.acton.timeplex.com (8.6.12/8.6.12) with ESMTP id SAA13373 for <rolc@nexen.com>; Tue, 11 Jul 1995 18:47:22 -0400
Received: from puli.cisco.com (puli.cisco.com [171.69.1.174]) by nexen.nexen.com (8.6.12/8.6.12) with ESMTP id SAA09734 for <rolc@nexen.com>; Tue, 11 Jul 1995 18:47:20 -0400
Received: from localhost.cisco.com (localhost.cisco.com [127.0.0.1]) by puli.cisco.com (8.6.8+c/8.6.5) with SMTP id PAA09394; Tue, 11 Jul 1995 15:45:18 -0700
Message-Id: <199507112245.PAA09394@puli.cisco.com>
To: rolc@nexen.com
Cc: bcole@cisco.com
Subject: NHRP for the router-to-router case (fairly long message)
Date: Tue, 11 Jul 95 15:44:03 PDT
Sender: ietf-archive-request@IETF.CNRI.Reston.VA.US
From: Yakov Rekhter <yakov@cisco.com>
X-Orig-Sender: owner-rolc@nexen.com
Precedence: bulk
X-Info: Submissions to rolc@nexen.com
X-Info: [Un]Subscribe requests to rolc-request@nexen.com
X-Info: Archives for rolc via ftp://ietf.cnri.reston.va.us/ietf-mail-archive/rolc/

Folks,

Appended is a draft from myself and Bruce Cole that looks at several design 
alternatives for the NHRP in the router-to-router case.
Please comment.

Thanks.

Yakov&Bruce.
--------------------------------------------------------------------


Alternatives for Router-to-Router NHRP
--------------------------------------


Abstract

This document presents  and examines several design alternatives for
the Next Hop Resolution Protocol (NHRP), where the protocol is applied
to the environment where both the NHRP Requestor and Responder are
routers (both source and destination are off an NBMA network). The list
of alternative is by no means exhaustive - it is quite plausible that
other alternatives (or some variations on the alternatives described
here) should be possible.


Problem Statement

When a path from a source to a destination traverses an NBMA network,
the segment of the path through the NBMA network may include more than
two (ingress and egress) routers. The primary design objective of NHRP
is to minimize the number of routers within the segment (preferably to
just two -- ingress and egress). A feasible solution, by definition,
must provide a steady-state loop free forwarding. We refer to a path
that forms a feasible solution as a "valid path".

Due to changes in network topology a valid path may become invalid
later on.  When an ingress router discovers (via NHRP) an egress router
(for a particular destination), the minimized path (directly from the
ingress to the egress router) is guaranteed to be valid only at the
time when the path was discovered. Subsequently, the path may become
invalid - the path may result in a forwarding loop. Therefore, it is
essential to have some mechanism(s) to detect invalid path in a
timely fashion, so that a new (valid) path could be established.

It could be shown that relying only on the routing information present
at both the ingress and the egress routers (NHRP Requestor and NHRP
Responder) may not be sufficient to detect when a (previously) valid
path becomes invalid.

Upon some introspection one could realize that a collection of routing
information from all the routers between the Requestor and the
Responder through which an NHRP Request was traversed is sufficient to
detect when a (previously) valid path becomes invalid.  However, from a
practical point of view, requiring every router along the NHRP Request
path to maintain a state for each such Request and signal back to the
Requestor when the routing changes occur may present (among other things) a
serious scaling problem, and thus is not practical.

To address the scaling concern, while at the same time allow to detect
invalid paths in a timely fashion, we relax the requirement to monitor
the routing information on all the routers between the Requestor and the
Responder through which an NHRP Request was traversed by reducing this
set of routers. The reduced set consists of only the routers where the
routing information that was used to forward the Request was either (a)
translated from one routing protocol to another, or (b) was created as
a result of routing information aggregation procedures.  [It is not
clear whether we can relax this by removing (b).] For the rest of this
document we'll refer to these routers as "border routers". [A better term is
needed.]


Alternative 1: short-cut between border routers

The first design alternative is to eliminate extra hops between border
routers, but not across border routers. Therefore, if a path through an NBMA
network spans multiple border routers, then the path will have more than
one IP hop across the NBMA network -- 1 IP hop per border router.

For example, if a path segment through an NBMA network is R1, R2, R3,
R4, R5, R6, and R7 (where R1 is an ingress router, R7 is an egress
router), and R3 and R5 are border routers, then the optimized path would be
R1, R3, R5, R7 (extra hops through R2, R4, and R6 will be eliminated).

The scheme works as follows. An ingress router generates an NHRP
Request for a particular destination.  The request is forwarded along
the path to that destination until it hits a router (on the same NBMA
network) that is a border router.  At this point the router sends back an
NHRP Response. In addition, the router may originate its own NHRP
Request for the same destination as was carried in the received
request. The new request will be forwarded until it reaches next border
router. The process will continue in a similar fashion until a request
reaches an egress router.

Each border router monitors changes in the routes that were used to
originate NHRP Requests or Responses. If such a router detects changes
in a route associated with a request, the router initiates another NHRP
Request.  If the router detects changes in a route associated with a
response, the router sends a Purge message to the recipient of the
response.

Using the example above, R1 would generate an NHRP Request. The request
will be forwarded to R2, and R2 will forward it to R3. When the request
reaches R3, R3 sends back an NHRP Response (since R3 is a border router),
thus establishing a short-cut R1-R3 (bypassing R2). R3 also originates
its own NHRP Request. This request is forwarded to R4, and R4 forwards
it to R5. Since R5 is a border router, R5 sends back (to R3) an NHRP
Response, thus establishing a short-cut R3-R5 (bypassing R4). R5 also
originates its own NHRP Request. This request is forwarded to R6, and
R6 will forward it to R7. Since R7 is an egress router, it sends back
(to R5) an NHRP Response, thus forming a short-cut R5-R7 (bypassing
R6).

Any changes in the route maintained by R5 (that was used to generate
the response to R3) would result in (a) R5 originating another NHRP
Request, and (b) R5 sending a Purge message to R3. As a result of this
message R3 would originate another NHRP Request.  Note that if the
route that was used by R3 to generate an NHRP Response to R1 doesn't
change, then R3 doesn't send any messages to R1. Likewise, any changes
in the route maintained by R3 (that was used to generate the response
to R1) would result in (a) R3 originating another NHRP Request, and (b)
R3 sending a Purge message to R1.

To provide the desired path optimization, this alternative requires
that all the border routers within an NBMA network be NHRP-capable. While
failure to meet this requirement impacts path optimality, a much more
serious issue associated with violating this requirement is the
ability to maintain a valid path. If some of the border routers are not
NHRP-capable, and other (NHRP-capable) routers along a path of a given
NHRP Request can't detect that some of the border routers along the path do
not support NHRP, such a situation may lead to a long-live invalid
path.

Using the example above, if R3 is a border router, but does not support
NHRP, and if R2 and R4 wouldn't be able to detect that the path between
them traverses through a border router that does not support NHRP (R3),
routing changes in R3 may cause the path to become invalid. But since
R3 is not NHRP-capable, R3 wouldn't be able to indicate the change to
other NHRP-capable routers along the path.  As a result, there is a
potential for a long-lived invalid path.

Since presence of border routers that do not support NHRP could lead to a
potentially serious failure mode, it may be desirable to have
mechanisms to avoid such failures.  Because border routers are most likely
to be the routers that interconnect different routing domains, one
could suggest that a way to detect a situation where an NHRP Request
path traverses through an NHRP-incapable border router is to carry
sufficient information in the request to identify when the request
crosses routing domain boundaries.  For certain scenarios this
detection seems to be quite straightforward (e.g. detecting routing
domain boundaries between domains that run different routing
protocols).  However, for other scenarios that involve multiple
instances of the same routing protocol, where each group of routers
runs just one instance of a particular routing protocol, but there are
more than one such group (with a common protocol) on the same NBMA
network, detecting routing domain boundary may be more problematic. For
example, it is not clear how to distinguish between two instances of
RIP, or OSPF, or Dual IS-IS.

In principle every router (regardless of what protocols the router
runs) could be configured with additional information that would allow
them to detect a situation where a pair of routers (on a common NBMA) run
the same or different instances of a particular routing protocol.  In
practice this requires additional configuration on every NHRP-capable
router connected to an NBMA network. This configuration is likely to
depend on manual procedures, and therefore may be error prone and
difficult to administer.

Another possible way to avoid failures associated with the presence of border
routers that do not support NHRP is to require configuration of multiple
logical NBMA networks over the single physical network in such a way
that boundaries of each logical NBMA network will be congruent to the
boundaries formed by border routers. Since NHRP Requests can not cross
logical NBMA boundaries, it follows that NHRP Requests will never cross
a border router (regardless of whether such a router supports NHRP or
not).  That would certainly eliminate the problem due to NHRP
non-capable border routers. The drawback of this approach is that it
requires administrative efforts to partition an NBMA network into
multiple logical NBMA networks.  On the other hand, once the partition
is done (provided that the partition is correct), the scheme is quite
robust with respect to its ability to detect invalid paths.

Alternative 2: short-cut across border routers

The second design alternative is to eliminate extra hops across the
whole NBMA network, regardless of the number of border routers along the
path segment within the NBMA network.  Therefore, even if a path
through an NBMA network spawns multiple border routers, then the path will
have just one IP hop across the NBMA network.

For example, if a path segment through an NBMA network is R1, R2, R3,
R4, R5, R6, and R7 (where R1 is an ingress router, R7 is an egress
router), and R3 and R5 are border routers, then the optimized path would be
R1, R7 (extra hops through R2, R3, R4, R5, and R6 will be eliminated).

The scheme works as follows. An ingress router generates an NHRP
Request for a particular destination.  The request is forwarded along
the path to that destination until it reaches a router (on the same
NBMA network) that is a border router.  At this point the router
instantiates a state associated with the request. This state contains
(among other things) the identity of the requestor and the route that
is used to forward the request. Once the state is instantiated, the
router forwards the request. The process continues until the request
reaches an egress router.

Each border router monitors changes in routes that were used to originate
NHRP Requests or Responses, or to forward NHRP Requests.  If such a
router detects changes in a route associated with originating a
request, the router initiates another NHRP Request.  If the router
detects changes in a route associated with a response, the router sends
a Purge message to the recipient of the response.  If a router detects
changes in a route associated with forwarding a request, the router
sends a Purge message to the originator of the Request (the information
about the originator is maintain by the router).

Using the example above, R1 would generate an NHRP Request. The request
will be forwarded to R2, and R2 will forward it to R3. When the request
reaches R3, R3 instantiates a state associated with the request. The
state contains the route that R3 use to further forward the request,
and the address of the request's originator (R1). R3 then forwards the
request.  The request will be forwarded to R4, and R4 will forward it
to R5. Since R5 is a border router, R5 (just like R3) instantiates a state
associated with the request. The state contains the route R5 uses to
further forward the request, and the address of the request originator
(R1).  The request will be forwarded to R6, and R6 will forward it to
R7. Since R7 is an egress router, it sends back an NHRP Response, thus
forming a short-cut R1-R7.  R7 also instantiates a state associated
with the request.  Any changes in the state maintained by R3, R5, or R7
would result in a Purge message being sent to R1. As a result of
receiving the message, R1 would issue a new NHRP Request, which would
result in obtaining a valid path.

To deal with a loss of state due to router crash this alternative
requires periodic re-validation of paths. The time interval between two
consecutive re-validations (two consecutive NHRP Requests from the same
router for the same target address) imposes an upper bound on the
life-time of an invalid path.

While this alternative provides a better path optimization than the
previous alternative, its scaling properties are inferior to the
previous alternative.  This alternative requires every border router to
maintain the amount of state proportional to the number of NHRP Request
paths that either terminate or traverse through that router, where an
NHRP path could originate from any router connected to the NBMA
network.

Just like the previous alternative, this alternative has a weak point
with respect to the requirement it imposes on the deployment of NHRP on
border routers, and on the ability to detect when an NHRP Request path
traverses through a border router that doesn't support NHRP.


Alternative 3:

If we can not assume that all border routers within an NBMA network are
NHRP-capable, and if we don't have a mechanism to detect all the
occurences where an NHRP Request path traverses through a border router
that is NHRP-incapable, then we can not rely on changes to routing
information as being the trigger to re-validate the validity of a
short-cut path acquired via NHRP. As a result we need to come up with
some other mechanism(s) to trigger the re-validation.

This alternative suggests that the frequency with which a particular
short-cut route (acquired via NHRP) be re-validated be coupled with the
rate of data traffic being forwarded via this route. In a most simple
case, the higher the data traffic rate associated with a particular
route, the greater is the frequency with which the route gets
re-validated (via issuing NHRP Requests) - the less is the time between
two consecutive NHRP Requests.

By coupling the frequency of route re-validating with the data traffic
rate for the route, this scheme constrains the amount of traffic that
could be affected by a forwarding loop. Moreover, since a forwarding
loop usually results in the increase of traffic through the routers in
the loop, and since the router that originated the NHRP Request is just
one of the routers in the loop, formation of the loop would result in
the increased data traffic rate through that router, which in turn
would decrease the time between two consecutive NHRP Requests.

A more sophisticated strategy would be to couple the time between two
consecutive NHRP Requests to some combination of the data rate and its
first derivative over time. The latter (the first derivative) would
allow a faster adaptation where significant changes in the data rate
occur.  Since formation of forwarding loops results in such significant
changes, coupling the time between the two consecutive NHRP requests
with the first derivate of data rate would help to shorten the duration
of such loops.

While traffic volume may be a good metric to determine how quickly an
invalid path needs to be detected (and subsequently replaced with a
valid path), it is equally important to avoid long-lived invalid paths
even in presence of only low volume traffic.  Therefore, in addition to
the data rate (and perhaps its derivative) driven frequency of NHRP
Requests, this alternative would also have some fixed timer that
imposes a lower bound on the frequency with which NHRP Requests should
be issued. This, in turn, imposes an upper bound on the life time of an
invalid path.

An important potential drawback of this alternative is the overhead
associated with processing NHRP traffic. 

For this scheme to work, a router that originates or forwards an NHRP
Request should not send this request over an NHRP-discovered route. The
request has to be sent over a route acquired via conventional routing
protocol(s).