Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes-11.txt
John Leslie <john@jlc.net> Mon, 10 October 2005 15:17 UTC
Received: from localhost.localdomain ([127.0.0.1] helo=megatron.ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1EOzOh-0002Jq-R3; Mon, 10 Oct 2005 11:17:03 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by megatron.ietf.org with esmtp (Exim 4.32) id 1EOzOg-0002Jg-BY for idr@megatron.ietf.org; Mon, 10 Oct 2005 11:17:02 -0400
Received: from ietf-mx.ietf.org (ietf-mx [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id LAA23743 for <idr@ietf.org>; Mon, 10 Oct 2005 11:16:59 -0400 (EDT)
Received: from mailhost.jlc.net ([199.201.159.9]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1EOzYa-00024g-Mg for idr@ietf.org; Mon, 10 Oct 2005 11:27:17 -0400
Received: by mailhost.jlc.net (Postfix, from userid 104) id BE0E8E04BB; Mon, 10 Oct 2005 11:16:50 -0400 (EDT)
Date: Mon, 10 Oct 2005 11:16:50 -0400
From: John Leslie <john@jlc.net>
To: Paul Jakma <paul@clubi.ie>
Subject: Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes-11.txt
Message-ID: <20051010151650.GB45489@verdi>
References: <200510071641.j97GfgG21459@merlot.juniper.net> <Pine.LNX.4.63.0510100013110.3396@sheen.jakma.org>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <Pine.LNX.4.63.0510100013110.3396@sheen.jakma.org>
User-Agent: Mutt/1.4.1i
X-Spam-Score: 0.0 (/)
X-Scan-Signature: ded6070f7eed56e10c4f4d0d5043d9c7
Cc: idr@ietf.org
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Inter-Domain Routing <idr.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/idr>, <mailto:idr-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www1.ietf.org/pipermail/idr>
List-Post: <mailto:idr@ietf.org>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/idr>, <mailto:idr-request@ietf.org?subject=subscribe>
Sender: idr-bounces@ietf.org
Errors-To: idr-bounces@ietf.org
Paul Jakma <paul@clubi.ie> wrote: > > 1. Surely the questions raised in the implementation report should > first be at least examined, if not addressed? To be specific, Juniper reports: ] ] Are there parts of the specification that are unclear where the ] implementor had to exercise some judgement that may impact ] interoperability? ] * It isn't clear what to do if the information in the old as-path ] is inconsistent with the information in the new as-path. It seems to me that NEW_AS_PATH information inconsistent with AS_PATH information MUST be discarded. Can't we say so? ] * There some places where AS numbers are used where it wasn't ] clear how to deal with 4-octet as-numbers (e.g. extended ] communities). This isn't clear to me, either. ] * It isn't spelled out that this capability cannot be dynamically ] negotiated. Actually, I _can_ think how to dynamically negotiate it, but it seems like a bad idea. > (concerns 5.2.3 at least, see 3.). ] ] Note that a route may have traversed a series of autonomous systems ] with 2-octet AS numbers and OLD BGP speakers only. In that case, if ] the route carries a NEW_AS_PATH attribute, this attribute may not ] have been updated since the route left the last NEW BGP speaker. The ] trailing AS path information (representing autonomous systems with ] 2-octet AS numbers and OLD BGP speakers only) is contained only in ] the current AS_PATH attribute (encoded in the leading part of the ] AS_PATH attribute). This AS path information should be prepended to ] the NEW_AS_PATH attribute to construct the exact AS path information. This last sentence is inconsistent with discarding NEW_AS_PATH information which is inconsistent with AS_PATH information. ] Similarly, a NEW BGP speaker should be prepared to receive the ] NEW_AGGREGATOR attribute from an OLD BGP speaker. In that case, the ] AGGREGATOR attribute is ignored and the NEW_AGGREGATOR contains the ] exact information about the aggregating node. I find this worrisome. Any OLD BGP speakers will have been quite unaware of the meaning of NEW-AGGREGATOR attributes they pass on. I don't think we can ensure they _never_ introduce or modify an AGGREGATOR attribute. I would be more comfortable if we examined any NEW-AGGREGATOR attribute to clarify ambiguity in 2-octet numbers in the AGGREGATOR attribute. There is a philosophical question here: whether we're retrofitting 4-octet AS numbers into an existing system, or whether we're piecing together a new system of 4-octet AS numbers with some fudging of how we tunnel through existing systems. Personally, I prefer the first. > 2. Section 5.3 should be deleted, I'm not sure how this draft could > ever mandate behaviour for OLD speakers, when OLD specifically is > defined to be those peers which do not implemented the extensions > defined in the draft. ;) ] ] In all other cases the speaker MUST encode Autonomous System numbers ] as 2-octet entities in both the AS_PATH and the AGGREGATOR attribute ] in the updates it sends to the peer, and MUST assume that these ] attributes in the updates received from the peer encoded Autonomous ] System numbers as 2-octet entities. Our problem is discerning a meaning for "all other cases". I don't think there _is_ a clear meaning here. The section title suggests we're specifying what an OLD BGP speaker MUST do; and that's simply wrong. Deleting the secton seems easiest... > 3. NEW_AS_PATH parsing/actions are barely specified. > > Eg: > > NEW NEW NEW OLD OLD NEW > AS256---AS200000---AS512---AS1024---AS2048---AS4096 > > According to 5.2.2, AS512 should create an AS_PATH attribute for > AS1024 that preserves the path-length by representing each 4-byte ASN > with AS_TRANS, and should construct NEW_AS_PATH as per AS_PATH (the > AS_PATH as received previously presumably). So AS1024 would receive: > > AS_PATH: seq(512,AS_TRANS,256) > NEW_AS_PATH: seq(200000,256) Actually, I don't think it's clear whether this NEW_AS_PATH should or should not contain 512. > AS4096 would receive: > > AS_PATH: seq(2048,1024,512,AS_TRANS,256) > NEW_AS_PATH: seq(200000,256) > > 5.2.3 states that: > > "<leading part of AS_PATH information> should be prepended to the > NEW_AS_PATH attribute to construct the exact AS path information." > > Where "leading part" are those ASN that are only 2-byte and OLD. But > we're not told how one should deduce where this leading part > finishes. The simplistic approach of "closest AS_TRANS marks end of > leading part", This is a very bad algorithm. We cannot, IMHO, ensure that AS_TRANS will not somehow get inserted into a path without there being a corresponding entry in NEW_AS_PATH. Thus, assuming that the closest AS_TRANS is the demarcation cannot give dependable results. (However, Paul is exploring a different problem:) > which is suggested by definition of "leading part" would give us: > > seq(2048,1024,512,200000,256) > > Which is the correct result, however the method is wrong. Imagine if > the 200000 and 256 are the other way around: > > AS_PATH: seq(2048,1024,512,256,AS_TRANS) > NEW_AS_PATH: seq(256,200000) > > Using previous method would give: > > seq(2048,1024,512,256,256,200000) > > Which result is wrong :). Obviously, one should use the n #-of-ASNs > in the *NEW_AS_PATH* as the *trailing* part of the real AS_PATH > information and override the last n ASNs in the AS_PATH. So why > doesn't the draft state this? ;) Paul's algorithm looks safer... But IMHO we'd be poorly advised to blindly adopt it either. Instead, we'd do well to match the trailing n ASNs, substituting 4-octet ASNs for AS_TRANS while the match remains good -- and dropping back to the original AS_PATH if the match fails. (There is a weird case where the matching 4-octet AS _is_ AS_TRANS, which IMHO is _not_ an error.) > I.e. The full process should preferably be *documented* in the draft, > but at a minimum this vague (if not slightly misleading) 'prepend > leading part of AS_PATH' language should be removed. I'd frankly prefer a full algorithm: otherwise we can't put very much confidence in the result. But I'll admit that differing algorithms _might_ not be especially harmful, so long as they preserve the AS_PATH _length_... > Also, if a process to reconcile AS_PATH and NEW_AS_PATH is to be > described (I think it should ;) ), obvious questions arise, as > one responder to the implementation report hints at: > > a) Should/Must the "overriden" ASNs in the AS_PATH be reconciled > against the NEW_AS_PATH ASNs which are replacing them? (I, of course, don't believe the should be "overridden" -- merely disambiguated.) > b) If so, what if they can /not/ be reconciled? We're poorly advised to leave _that_ question "as an exercise to the student". I'm convinced that regardless of what we spec, NEW BGP speakers _will_ receive AS_TRANS entries with no disambiguating NEW_AS_PATH entry. This doesn't seem fatal: the worst effect which jumps out is failure to detect loops (which seems fairly innocuous: detecting loops where none exist would be a much more serious failing). -- John Leslie <john@jlc.net> _______________________________________________ Idr mailing list Idr@ietf.org https://www1.ietf.org/mailman/listinfo/idr
- [Idr] WG Last Call on draft-ietf-idr-as4bytes-11.… Yakov Rekhter
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Geoff Huston
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Tony Tauber
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Tony Li
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Paul Jakma
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… vijay gill
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Tony Li
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Ran Liebermann
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… John Leslie
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Paul Jakma
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Pekka Savola
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Enke Chen
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Jeffrey Haas
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… John Leslie
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Curtis Villamizar
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Paul Jakma
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Paul Jakma
- [Idr] Revised text on how to construct the AS pat… Enke Chen
- [Idr] Re: Revised text on how to construct the AS… Paul Jakma
- Re: [Idr] Revised text for the 4-byte AS draft - … Geoff Huston
- Re: [Idr] Revised text for the 4-byte AS draft - … Jeffrey Haas
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… John Leslie
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… John Leslie
- Re: [Idr] Revised text on how to construct the AS… John Leslie
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Curtis Villamizar
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Tony Li
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Curtis Villamizar
- Re: [Idr] Revised text for the 4-byte AS draft - … Geoff Huston
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Geoff Huston
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Curtis Villamizar
- [Idr] Re: Revised text on how to construct the AS… Enke Chen
- Re: [Idr] Revised text on how to construct the AS… Enke Chen
- Re: [Idr] WG Last Call on draft-ietf-idr-as4bytes… Geoff Huston
- Re: [Idr] Re: Revised text on how to construct th… Paul Jakma
- Re: [Idr] Revised text on how to construct the AS… John Leslie