Re: [Idr] I-D Action: draft-ietf-idr-error-handling-03.txt

Jakob Heitz <jakob.heitz@ericsson.com> Mon, 10 December 2012 18:09 UTC

Return-Path: <jakob.heitz@ericsson.com>
X-Original-To: idr@ietfa.amsl.com
Delivered-To: idr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5246621F8596 for <idr@ietfa.amsl.com>; Mon, 10 Dec 2012 10:09:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.577
X-Spam-Level:
X-Spam-Status: No, score=-6.577 tagged_above=-999 required=5 tests=[AWL=0.022, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uoURIwsjzxE7 for <idr@ietfa.amsl.com>; Mon, 10 Dec 2012 10:09:08 -0800 (PST)
Received: from imr4.ericy.com (imr4.ericy.com [198.24.6.9]) by ietfa.amsl.com (Postfix) with ESMTP id 9DE3C21F853B for <idr@ietf.org>; Mon, 10 Dec 2012 10:09:08 -0800 (PST)
Received: from eusaamw0712.eamcs.ericsson.se ([147.117.20.181]) by imr4.ericy.com (8.14.3/8.14.3/Debian-9.1ubuntu1) with ESMTP id qBAIJ7YF014564; Mon, 10 Dec 2012 12:19:12 -0600
Received: from EUSAAHC006.ericsson.se (147.117.188.90) by eusaamw0712.eamcs.ericsson.se (147.117.20.181) with Microsoft SMTP Server (TLS) id 8.3.279.1; Mon, 10 Dec 2012 13:08:58 -0500
Received: from EUSAAMB109.ericsson.se ([147.117.188.126]) by EUSAAHC006.ericsson.se ([147.117.188.90]) with mapi id 14.02.0318.001; Mon, 10 Dec 2012 13:08:58 -0500
From: Jakob Heitz <jakob.heitz@ericsson.com>
To: Chris Hall <chris.hall@highwayman.com>, "idr@ietf.org" <idr@ietf.org>
Thread-Topic: [Idr] I-D Action: draft-ietf-idr-error-handling-03.txt
Thread-Index: AQHNyBxqy9fEwUYlVUSnx1DosT0Aspf0/iwAgBcupYCAADNcgP//yMCqgAGK/gCAAJrggIAA4PUAgAAGNdyAAlGBgIAACv4AgADlMQD//9+bDYAAaouA//+t2dA=
Date: Mon, 10 Dec 2012 18:08:56 +0000
Message-ID: <2F3EBB88EC3A454AAB08915FBF0B8C7E10DD99@eusaamb109.ericsson.se>
References: <20121121191321.6164.6887.idtracker@ietfa.amsl.com> <50AD2986.90705@cisco.com> <058b01cdd3b4$9f5193b0$ddf4bb10$@highwayman.com> <8ED5B0B0F5B4854A912480C1521F973A0F4940@xmb-rcd-x13.cisco.com> <94913EE5-2864-4EE2-B474-9631430B1E22@ericsson.com> <068701cdd478$2cf01cf0$86d056d0$@highwayman.com> <CAEGVVtBy-zdLz8hVajLnuAqgzfgQHrseK4r-N9=pOZGtqV7LbA@mail.gmail.com>, <074d01cdd536$173f5830$45be0890$@highwayman.com> <9474D8DC-30FF-4C52-9504-15CBCC47E7D8@ericsson.com> <07df01cdd661$f28ef7c0$d7ace740$@highwayman.com> <36E98AE5-3EF8-4738-9982-42B9CA0BAAF5@rob.sh>, <005001cdd6da$099f1e90$1cdd5bb0$@highwayman.com> <828AAFF5-0260-4AA6-BBDC-6C1F69919837@ericsson.com> <009001cdd6ff$1c982530$55c86f90$@highwayman.com>
In-Reply-To: <009001cdd6ff$1c982530$55c86f90$@highwayman.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [147.117.188.135]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [Idr] I-D Action: draft-ietf-idr-error-handling-03.txt
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Inter-Domain Routing <idr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/idr>, <mailto:idr-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/idr>
List-Post: <mailto:idr@ietf.org>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/idr>, <mailto:idr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 10 Dec 2012 18:09:09 -0000

On Monday, December 10, 2012 9:52 AM, Chris Hall <mailto:chris.hall@highwayman.com> wrote:

> Jakob Heitz wrote (on Mon 10-Dec-2012 at 16:31 +0000);
>> If, at the time a bgp speaker detects a malformation in a received
>> UPDATE, it has completely parsed at least one of:
>> . Withdrawn routes section
>> . NLRI
> 
> Sure.  The draft states that the 'Message Length', 'Withdrawn Routes
> Length' and 'Total Attributes Length' must be consistent -- ie
> correctly "framed".  And anything in the (vanilla IPv4 Unicast)
> Withdrawn Routes and the NLRI sections must be internally consistent
> prefixes.  So, if there is anything there, it can be parsed entirely
> separately from the attributes.
> 
>> . MP_REACH
>> . MP_UNREACH
> 
> For the receiver to have parsed one or both of these, the sender must
> have sent them before the first malformed attribute.
> 
> If the sender is unchanged (which I recall you were keen on) how is it
> certain that either or both these attributes will precede the first
> broken one ? 

It is not certain.
Once you have a malformed update, NOTHING is certain.
We limit the damage and call for human intervention.

> 
>> then it assumes that there are no more of these following.
> 
> So, the presence, say, of an MP_REACH_NLRI attribute is deemed to
> guarantee that no MP_UNREACH_NLRI will follow ?

No.

> 
> I can quite believe that, in practice, few BGP implementations (if
> any) send more than one of the above forms of NLRI in a single UPDATE
> message. 
> 
> But that is not a requirement of the RFC or the draft -- so the
> receiver is not (strictly speaking) entitled to assume it.

It assumes the best it can to limit the damage.

> 
> What is the receiver supposed to do if it has not found any NLRI at
> the point that it hits a malformed attribute ?

Reset the session.

> 
>> A capability to say so adds nothing.
>> The router will behave exactly the same way.
> 
> So, the receiver scans the attributes, and on the first malformed one
> it stops.  Yes ?  Or, perhaps it ploughs on to the end stepping past
> malformed attributes, and truncating the final attribute if it
> overruns the 'Total Attributes Length'.  Yes ?

It doesn't stop.
If the malformation is when reading NLRI in any of
the places, it resets the session.

> 
> If there are any NLRI visible (and valid), then they can all be
> "treated-as-withdraw".  Yes ? 

No.
If an NLRI type attribute is completely parsed
and the malformation is not in a subsequent one
and the other conditions in the draft, then we treat as withdraw.

> 
> Any NLRI that might be in the UPDATE, but are not visible because of
> the malformed attributes, are simply ignored.  Yes ?

yes.
Again:
Once you have a malformed update, NOTHING is certain.
We limit the damage and call for human intervention.

> 
> OK... if that is the procedure, the capability is redundant.  [I take
> issue with the procedure, but won't rehearse that, again, here.]
> 
> However, the draft comes out strongly against simply ignoring the NLRI
> in a broken update.  The draft also requires session-reset if the NLRI
> found in the UPDATE are not 100% valid.  The procedure I understand
> you to be describing (and correct me if I have misunderstood) does not
> appear to be consistent with that.
> 
>> Either way, human intervention is required to restore correct
>> routing.
> 
> Sure.  I think the issue is how to avoid/minimise incorrect routeing
> in the meantime.  Also, I kinda suspect that the human bean will be
> greatly assisted if it is clear which NLRI have been affected (and
> which definitely have not). 

The human bean will not rely on ANY routes or information
from the broken session.

> 
> Chris



-- 
Jakob Heitz.