Re: [Idr] Question about RFC4893

Enke Chen <enkechen@cisco.com> Fri, 09 October 2009 18:56 UTC

Return-Path: <enkechen@cisco.com>
X-Original-To: idr@core3.amsl.com
Delivered-To: idr@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 82F193A6841 for <idr@core3.amsl.com>; Fri, 9 Oct 2009 11:56:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level:
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Eiam0DFkeTP6 for <idr@core3.amsl.com>; Fri, 9 Oct 2009 11:56:31 -0700 (PDT)
Received: from sj-iport-1.cisco.com (sj-iport-1.cisco.com [171.71.176.70]) by core3.amsl.com (Postfix) with ESMTP id 5118B3A681B for <idr@ietf.org>; Fri, 9 Oct 2009 11:56:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=enkechen@cisco.com; l=4887; q=dns/txt; s=sjiport01001; t=1255114696; x=1256324296; h=from:sender:reply-to:subject:date:message-id:to:cc: mime-version:content-transfer-encoding:content-id: content-description:resent-date:resent-from:resent-sender: resent-to:resent-cc:resent-message-id:in-reply-to: references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:list-owner:list-archive; z=From:=20Enke=20Chen=20<enkechen@cisco.com>|Subject:=20Re :=20[Idr]=20Question=20about=20RFC4893|Date:=20Fri,=2009 =20Oct=202009=2011:58:15=20-0700|Message-ID:=20<4ACF87C7. 1090404@cisco.com>|To:=20Samita=20Chakrabarti=20<samitac@ ipinfusion.com>|CC:=20ben_april@trendmicro.com,=20idr@iet f.org,=20Enke=20Chen=20<enkechen@cisco.com>|MIME-Version: =201.0|Content-Transfer-Encoding:=207bit|In-Reply-To:=20< 00d801ca490b$65507500$2ff15f00$@com>|References:=20<4ACF6 B32.7030209@trendmicro.com>=20<00d801ca490b$65507500$2ff1 5f00$@com>; bh=7cEhFa/RyCnsxBWiMEO25nqkeRtGM38HNAYOXTslOKo=; b=hPvD8WeCp4U0F+Y6SWTJ5+NKngtS5aBhCjlK5so//hp0NDeu2SNicSII OY1hm3apHfBcokF4xWJPQkIQ5G7UUjdHSOFUJD0AggGZzCWe9kuDA92eB vDmbks8dIjlKWvHPSjcB/XhoQkyds7tSUzwjc1bKpjapfQDR9EsNkGBrk s=;
Authentication-Results: sj-iport-1.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: ApoEAA8lz0qrR7Hu/2dsb2JhbADCfphChCwE
X-IronPort-AV: E=Sophos;i="4.44,533,1249257600"; d="scan'208";a="253709489"
Received: from sj-core-5.cisco.com ([171.71.177.238]) by sj-iport-1.cisco.com with ESMTP; 09 Oct 2009 18:58:16 +0000
Received: from xbh-sjc-221.amer.cisco.com (xbh-sjc-221.cisco.com [128.107.191.63]) by sj-core-5.cisco.com (8.13.8/8.14.3) with ESMTP id n99IwG76021757; Fri, 9 Oct 2009 18:58:16 GMT
Received: from xfe-sjc-211.amer.cisco.com ([171.70.151.174]) by xbh-sjc-221.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 9 Oct 2009 11:58:16 -0700
Received: from [10.21.121.206] ([10.21.121.206]) by xfe-sjc-211.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 9 Oct 2009 11:58:15 -0700
Message-ID: <4ACF87C7.1090404@cisco.com>
Date: Fri, 09 Oct 2009 11:58:15 -0700
From: Enke Chen <enkechen@cisco.com>
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
MIME-Version: 1.0
To: Samita Chakrabarti <samitac@ipinfusion.com>
References: <4ACF6B32.7030209@trendmicro.com> <00d801ca490b$65507500$2ff15f00$@com>
In-Reply-To: <00d801ca490b$65507500$2ff15f00$@com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 09 Oct 2009 18:58:15.0734 (UTC) FILETIME=[7528FD60:01CA4912]
Cc: idr@ietf.org
Subject: Re: [Idr] Question about RFC4893
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Inter-Domain Routing <idr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Fri, 09 Oct 2009 18:56:32 -0000

Samita:

We can argue about the presentation style and other portions in 
RFC4893.  However,  IMO the specific
merge algorithm is complete, and precise,  as I pointed out to Ben.

Please see my comments inlined.

Samita Chakrabarti wrote:
> Hi Ben,
>
> Please see below:
>
>   
>> If the number of AS numbers in the AS_PATH attribute is larger than or
>>     
> equal
>   
>> to the number of AS numbers in the AS4_PATH attribute, then the AS path
>> information SHALL be constructed by taking as many AS numbers and path
>> segments as necessary from the leading part of the AS_PATH attribute, and
>> then prepending them to the AS4_PATH attribute so that the AS path
>> information has an identical number of AS numbers as the AS_PATH
>>     
> attribute.
>   
>>
>> Forgive me, but this all sounds like an awful lot of hand-waving to me.
>>     
> Has
>   
>> anything been done since this RFC was published to better describe in a
>>     
> more
>   
>> formal way the procedure a BGP speaker should follow to re-construct an
>> accurate AS_PATH from the AS4_PATH and AS_PATH attributes? Based on this
>> description I can see more than one way to implement this. I would like to
>> do so correctly, but I need to know what is correct first.
>>
>> Thanks
>> Ben
>>
>>     
> [SC>] 
>
> I agree with you completely this handwaving portion in rfc 4893 is very
> problematic to the implementers who were not directly involved in the making
> of RFC 4893. I was not one of them.  In 2008, I wrote a draft pointing out
> some of the problems we faced during implementation and to request an update
> of the RFC for future interoperability. Also presented the draft at WG in
> Spring 2008 IETF. Rfc4893-bis has considered some of the problems mentioned
> in the draft + others discussed in the working group alias.
> http://wattle.apnic.net/ietf/idref/draft-chakrabarti-idr-rfc4893-mod/
>
> The following interpretation has been made in our implementation after
> talking with some other implementers.
> I believe rfc4893-bis now has the similar text:
> 1.	If the number of ASNs in AS_PATH is less than the number of ASNs in
> AS4_PATH, then NBGP ignores AS4_PATH  information.
> Example:
> AS_PATH:   2 23456
> AS4_PATH: 70000 70001 70002
>   

RFC 4893 has the following text in Sect. 4.2.3:

   If the number of AS numbers in the AS_PATH attribute is less than the
   number of AS numbers in the AS4_PATH attribute, then the AS4_PATH
   attribute SHALL be ignored, and the AS_PATH attribute SHALL be taken
   as the AS path information.

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

I am wondering why this portion needed "interpretation" in your 
implementation.


> 2.	If the number of ASNs in AS_PATH attribute is greater than number of
>
>          ASNs in AS4_PATH attribute, then there must be a few AS_TRANS 
>         numbers in AS_PATH.  Reconstruct AS_PATH based on the AS4_PATH 
>        items corresponding to  AS_TRANS numbers 
>       Examples:
>       AS_PATH: 2,3,6, 8, 23456, 10, 23, 23456
>       AS4_PATH: 65356, 77777
>   

So what exactly is the problem with following RFC 4893 in this case?   
The (AS_PATH, AS4_PATH) is
not really consistent here -- that is, 65356 is not represented in 
AS_PATH, and there is an extra 23456 in
the middle.  Most likely this is a crafted, lab scenario in which there 
is no single "correct" answer.

> 3.	If the number of ASNs in AS_PATH and AS4_PATH attributes is same
> then it most likely means that all the AS numbers are AS4-byte unmappable
> numbers.  Check the count of AS_TRANS numbers in AS_PATH and count of AS
> numbers in AS4_PATH.  If they are the same then reconstruct AS information
> from AS4_PATH only (note this case is for AS num == AS4 num). If number of
> AS_TRANS in AS_PATH is less than the number in AS4_PATH values, then there
> is something wrong done by previous speakers. However, take the non-AS_TRANS
> AS values from AS_PATH  and then prepend them with the AS4 values. Some
> examples will clarify this case:
> AS_PATH:   23456, 23456,  23456
> AS4_PATH: 777777, 66666, 88888
>   

So the merged as-path would consist of the valid AS numbers 777777, 
66666, 88888 based on RFC 4893.
This seems fine.  Isn't it?

> Or
> AS_PATH: 2, 3, 4, 23456
> AS4_PATH: 88888, 99999, 70000, 80000
>   

This again is another inconsistent, artificially crafted scenario.  
Possibly there are more than one "correct"
solutions, some more "correct" than others - depending on how the 
inconsistency was generated. As
the as-path length must be maintained during the merge, no solution can 
possibly include all the valid AS
numbers contained in AS_PATH / AS4_PATH.

RFC 4893 would yield 88888, 99999, 70000, 80000 as the merged one.  Why 
wouldn't it be good enough?

Thanks.    -- Enke