[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Idr] [Fwd: I-D Action:draft-chen-rfc4893bis-00.txt]
Rob,
Rob Shakir wrote:
On Mon, Jan 26, 2009 at 05:08:01PM -0800, Enke Chen wrote:
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.
We do not agree with your statement that this is "over supply of
information" as an AS_CONFED_SET/SEQUENCE is garbage data outside of the
network making use of confederations, and infact it could be considered
harmful misinformation if the neighbouring network also makes use of
confederations.
We do, however, agree that your suggested method for handling the
presence of an AS_CONFED_SET/SEQUENCE is suitable for dealing with this
specific bug, and comparatively easy to implement. Fom an operational
perspective, this is also probably the best way to deal with the
specific case since there are a large number of JunOS devices deployed
that may to continue to insert AS_CONFED_SET/SEQUENCE into AS4_PATH in
the future.
We therefore accept the new handling of this specific error condition as
being a necessary evil.
Good.
Section 6 of the new draft defines handling for a general error case
with behaviour that we do not believe is safe. Considering that the
AS4_PATH is mechanism for transporting unsupported AS_PATH information
through a number of AS4-unaware devices we must bear in mind that there
is a reconciliation process with AS_PATH. Given the role of AS_PATH in
loop prevention we feel that general lax treatment of AS4_PATH may have
harmful concequences in the future.
We feel that the general behaviour on an error should be the withdrawal
of the path, as discarding the attribute is equivalent in effect to
discarding part of the AS_PATH and may cause loops.
Yes, indeed. A routing loop may (or may not) occur when the AS4_PATH
should carry useful info but is either malformed or is absent.
There is no perfect solution here. There are some tradeoffs, however,
between accepting the route and rejecting the route:
o rejecting the route would guarantee disruption (i.e., loss of
connectivity).
o accepting the route would maintain connectivity, but may (or may
not) introduce a routing loop.
Take for example the
case when an BGP speaker in a 32bit AS receiving an invalid AS4_PATH
attribute. With the AS4_PATH unreadable and therefore discarded the BGP
speaker cannot know if its AS number was in the path. The only loop free
options are:
(a) treat it as a withdrawal
(b) treat any AS_TRANS in the AS_PATH as the local AS
(c) drop the session.
Option c is the behaviour that has led us to needing a change to the
RFC, so is obviously unacceptable.
Why is Option C "obviously unacceptable"?
I think the reason is that it would result in loss of connectivity for
all the routes over the session, and can be used as a remote attack vehicle.
In the case of a malform AS4_PATH attribute, rejecting the route would
also result in the loss of connectivity, and thus can also be used as a
remote attack vehicle.
Considering the following factors:
1) the tradeoffs,
2) especially the concern for the remote attack,
3) AS4_PATH being optional,
I believe that what is proposed in the draft (accepting the routes) is
more preferred than rejecting the route.
Admittedly, a malformed AS4_PATH attribute would fall into the category
of inconsistency and would subject to the risks described in the document:
---------------------------------------------------------------------------------------
9. Security Considerations
The inconsistency between the AS_PATH attribute and the AS4_PATH
attribute can create loss of the AS path information, and potential
routing loops in certain cases as discussed in the document. This
could be exploited by an attacker.
---------------------------------------------------------------------------------------
Regards, -- Enke
Option a and b are equivalent since the AS4_PATH attribute would not be
present if there wasn't an AS_TRANS in the AS_PATH.
While your "be liberal in what you accept" approach is commendable, and
often an excellent idea, a line does need to be drawn. We cannot and
should not extend the standards with special cases every time someone
makes an implementation error or we risk creating an RFC that's almost
impossible to implement without making further silly mistakes.
Kind regards,
Jonathan Oddy (Hostway UK)
Rob Shakir (GX Networks)
_______________________________________________
Idr mailing list
Idr at ietf.org
https://www.ietf.org/mailman/listinfo/idr