Subject: RE: Issue 42 (was Re: [nemo] Including prefix information in BU i nexplicit mode)

From: "Pascal Thubert \(pthubert\)" <[email-masked]>
Date: Mon, 23 Aug 2004 16:12:33 +0200

> 
> Pascal Thubert (pthubert) wrote:
> > Hi Mattias:
> >
> > It's just pretty hard to prevent configuring static routes and using
> > explicit prefix at the same time. And this does not necessarily lead
to
> > wrongdoing. But it could, and this would lead to packets bouncing
over
> > MRHA till TTL. To avoid this, the key is that when the MR receives a
> > packet from the HA, it should NEVER send it back to the HA. This is
> > usual router behaviour, but it very critical to enforce it here.
> 
> You may be correct that it is in fact up to the HA and MR to deal with
> synchronization of the static routes and that the BU signalling
doesn't
> deal with them at all. Which in turn means that we can mix static and
> explicit.
> 
> To answer your last sentence, I didn't know this was usual router
> behaviour. To my knowledge the MR would forward the packet back over
the
> MRHA tunnel and also send an ICMP redirect as the outgoing interface
==
> receiving interface.
Actually I was referring to the MRHA tunnel, which is a router to router
communication, as opposed to a host to router. In the general case of
host to router, the router will act as you mention - unless it acts as
an ND proxy for the source address. In the specific case of P2P links,
your flow should not happen, since the router will not have a route over
the host. In the case of router to router, sending a packet back over
the same P2P link is an obvious anomaly that IOS routers check for (they
will send ICMP unreachable and drop the packet).

So there can be specific code that depends on the interface type and
that would check for an obvious loop. This is analogous to the routing
protocols such has IGRP or RIP doing split horizon, which avoid that
problem at the routing level. Basically any time the HA has a route via
the MR but the MR does not know that prefix, packets may ping pong till
TTL.

I think we already discussed adding a check for such loops in the MRHA
tunnel. I do not remember of any outcome. But it's my suggestion to
implementers to actually do it.

Pascal