[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Idr] [Fwd: I-D Action:draft-chen-rfc4893bis-00.txt]



Hi, Rob:

Rob Shakir wrote:
Hi Enke,

Thanks for your reply.

On Mon, Jan 26, 2009 at 03:15:20PM -0800, Enke Chen wrote:
Stripping the confed path segments is pretty straightforward. IMO an implementation that can deal with the merge of AS_PATH and AS4_PATH should have no difficult in implementing the stripping.

I concur that stripping the confed path segments should be straight-forward, but
I feel that considering the bugs that could be feasibly introduced through the
implementation of a new standard is valuable. After all, one could say that 4893
was very clear in terms of forbidding AS_CONFED_SET/SEQUENCE from AS4_PATH, yet
as we have seen here, not all implementations obeyed this.

Here is an excerpt of your proposal posted to the IDR mailing list last week:

-----------------------------------

There are two cases to consider when an invalid AS4_PATH is received:
(1) A path to the prefix is not already known from that neighbour. (2) A path to the prefix has already been learnt from that neighbour; In case (1) we recommend that the BGP speaker should discard the UPDATE and log
the fact. The log entry should include the received AS_PATH and
AS4_PATH to aid in debugging.

In case (2) we recommend that the BGP speaker should treat the UPDATE as a
withdrawal of existing path to the prefix. As per case (1) a log entry should be
raised to indicate that this has occurred.

------------------------------------

The proposal for (1) is incorrect from the protocol aspect. As BGP update is incremental, we can not just hold on to the old info and discard the new info.

The proposal for (2) is ok from the *pure* protocol aspect, but it would cause unnecessary disruption (i.e., loss of connectivity) for this recoverable, non-fatal error.

In the case of (1), there is no old information to hold onto.
 (1) handles the
case whereby a neighbour hands us a new prefix. At the time we receive this
prefix, we have no path in any RIB that would provide us reachability to the
prefix via that neighbour. Hence, when we parse the UPDATE message and find that
there is an invalid AS4_PATH in it, we choose to not treat this path as valid,
and not add it to any RIB. This ties back to my previous comment that we should
perhaps penalise those paths to prefixes which contain invalid routing
information.

Apologies that I did not read your message carefully (missed "not").

Then (1) and (2) is really the same - treat the update as a withdraw.

Combining your comments on (2), and earlier comments - one can be liberal in
terms of accepting any prefix to a neighbour, however, if we have a 4-byte ASN
in the path that is manipulating routing data that is important to it (i.e.
AS4_PATH) incorrectly, should we not treat this as we treat invalid data in the
AS_PATH? I believe our suggested approach (treating the UPDATE as WITHDRAWL) is
closer to how rfc4893 currently deals with the invalid data, but takes into
account the optional transitive nature of AS4_PATH.  Is the intended behaviour
to be permissive in handling invalid AS4_PATH data where we are not so with
AS_PATH? It is worth considering that the loss of connectivity is only to a
prefix that has no valid method of propagating itself via RFC-compliant BGP
speakers.

The particular error involves "over supply of information" which can be repaired by removing the unnecessary information. At the risk of repeating myself, this is a recoverable, non-fatal error. The time-tested principle of "be liberal in what you accept" is precisely for dealing with this kind of non-fatal errors in protocol design.

Thanks. -- Enke

Kind regards,
Rob

--
Rob Shakir                      <rjs at eng.gxn.net>
Network Development Engineer    GX Networks/Vialtus Solutions
ddi: +44208 587 6077            mob: +44797 155 4098
pgp: 0xc07e6deb                 nic-hdl: RJS-RIPE

This email is subject to: http//www.vialtus.com/disclaimer.html

_______________________________________________
Idr mailing list
Idr at ietf.org
https://www.ietf.org/mailman/listinfo/idr