Subject: Neighbor Unreachability Detection..

From: Somasundaram Selvaraj <[email-masked]>
Date: Sun, 29 Apr 2012 18:24:52 +0530

All

 I went through RFC 4861 and found the section on "Neighbor Unreachablity
Detection" to be of less signifance especially on the links between Router.

Reason is that, while there are failure detection protocols already
available to detect a liveliness of the neighbor I dont understand
effectivenss of such a mechanism within IpV6.

Moreover, whenever the neighborstate is not in "Reachable state", there is
a bunch of packets that gets trapped to the CPU to invoke IPV6 to send
NeighborSolicitaion message to detect the liveliness of the neighbor. And
Interestingly, the implementations  continue to forward to the neighbor
irrespective of what the "Nbr state is" and then trap the (copy of the
packets)packets to cpu to do a Neighbor Unreachablity Detection check (for
the sake of sticking to the standard).

I didnt like Router Doing this especially on the Router-Router link.

 Here are my opinion on handling the above issues.

1: Why to go through all the NeighborStates
(Incomplete->Reachable->Stale->Delay->Probe) when Protocols like BFD are
already present to check the liveliness of the neighbor (On a Router-Router
link). Cant we avoid "Neighbor unreachablity detection" completely?
2: Simplify the NeighborState Machine.Just mainitain two states in the
Neighbor cache when the neighbor is a router. The states would be
"Incomplete and Reachable".

Enhancement as follows:
     Initially the Neighbor state would be marked "Incomplete" and a
NeighborSolicitation message would  be originated to determine the link
layer address.Once it receives a response move the neighbor state to
"Reachable". Just maintain an ageout timer like the one meant for ARP (no
more complications) to flush an entry from neighbor Cache.

Please share your thoughts.

Regards
Somasundaram

---

From: Erik Nordmark <[email-masked]>
Date: Sun, 29 Apr 2012 17:31:19 -0700

On 4/29/12 5:54 AM, Somasundaram Selvaraj wrote:
> All
>
>   I went through RFC 4861 and found the section on "Neighbor
> Unreachablity Detection" to be of less signifance especially on the
> links between Router.

Did you read the text in section 7.3 which says
    Neighbor Unreachability Detection may
    also be used between routers, but is not required if an equivalent
    mechanism is available, for example, as part of the routing
    protocols.

Keep in mind that ND predates BFD; if the specification which written 
today it might as "as part of the routing protocols or BFD".

I don't know if anybody has looked for a detailed description of how ND 
address resolution between routers might interact with BFD, but AFAICT 
this should be straight-forward. Just disabling NUD on the interfaces 
where BFD is being used.

Does that answer your concerns?

   Erik

> Moreover, whenever the neighborstate is not in "Reachable state", there
> is a bunch of packets that gets trapped to the CPU to invoke IPV6 to
> send NeighborSolicitaion message to detect the liveliness of the
> neighbor. And Interestingly, the implementations  continue to forward to
> the neighbor irrespective of what the "Nbr state is" and then trap the
> (copy of the packets)packets to cpu to do a Neighbor Unreachablity
> Detection check (for the sake of sticking to the standard).
> already present to check the liveliness of the neighbor (On a
> Router-Router link). Cant we avoid "Neighbor unreachablity detection"
> completely?
> "Reachable". Just maintain an ageout timer like the one meant for ARP
> (no more complications) to flush an entry from neighbor Cache.
>
> --------------------------------------------------------------------
> IETF IPv6 working group mailing list
> [email-masked]
> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> --------------------------------------------------------------------