Re: [Idr] Question about RFC4893

Enke Chen <enkechen@cisco.com> Fri, 09 October 2009 19:09 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 D99553A68EA for <idr@core3.amsl.com>; Fri, 9 Oct 2009 12:09:15 -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 6Gq9Y4NDb2Iu for <idr@core3.amsl.com>; Fri, 9 Oct 2009 12:09:14 -0700 (PDT)
Received: from sj-iport-3.cisco.com (sj-iport-3.cisco.com [171.71.176.72]) by core3.amsl.com (Postfix) with ESMTP id 456FE3A6819 for <idr@ietf.org>; Fri, 9 Oct 2009 12:08:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=enkechen@cisco.com; l=5541; q=dns/txt; s=sjiport03001; t=1255115433; x=1256325033; 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=2012:10:32=20-0700|Message-ID:=20<4ACF8AA8. 1050704@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< 4ACF87C7.1090404@cisco.com>|References:=20<4ACF6B32.70302 09@trendmicro.com>=20<00d801ca490b$65507500$2ff15f00$@com >=20<4ACF87C7.1090404@cisco.com>; bh=J5vg3eceyiirj8yahJ6A4s1Idcxfd6Q+9ySfzN05EMM=; b=ZLHnWbxZL12vlB55lCcWzpR+teYsbtWu1y5NjN0RdWpntxkjHv6EAOJ1 b/NYljuQIxZfS3cgwh0A+V1The30Tq+9HOjj5VwsPfneV/UBj0Me5AyB8 HuLM7LDQ8PMzZiUYGAUJKNf48FCvjsyCnFwuTkP2aIR6xPCDDi9Rs4IqD E=;
Authentication-Results: sj-iport-3.cisco.com; dkim=neutral (message not signed) header.i=none
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: ApoEAO8mz0qrRN+J/2dsb2JhbADCdphDhCwEgVg
X-IronPort-AV: E=Sophos;i="4.44,533,1249257600"; d="scan'208";a="195885278"
Received: from sj-core-3.cisco.com ([171.68.223.137]) by sj-iport-3.cisco.com with ESMTP; 09 Oct 2009 19:10:33 +0000
Received: from xbh-sjc-231.amer.cisco.com (xbh-sjc-231.cisco.com [128.107.191.100]) by sj-core-3.cisco.com (8.13.8/8.14.3) with ESMTP id n99JAXbV001689; Fri, 9 Oct 2009 19:10:33 GMT
Received: from xfe-sjc-212.amer.cisco.com ([171.70.151.187]) by xbh-sjc-231.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 9 Oct 2009 12:10:33 -0700
Received: from [10.21.121.206] ([10.21.121.206]) by xfe-sjc-212.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 9 Oct 2009 12:10:32 -0700
Message-ID: <4ACF8AA8.1050704@cisco.com>
Date: Fri, 09 Oct 2009 12:10:32 -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> <4ACF87C7.1090404@cisco.com>
In-Reply-To: <4ACF87C7.1090404@cisco.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-OriginalArrivalTime: 09 Oct 2009 19:10:32.0851 (UTC) FILETIME=[2C841E30:01CA4914]
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 19:09:15 -0000

BTW,  based on the on-line IETF track tool, there has been no change in 
the merge algorithm (Sect 4.2.3) from RFC 4893 to rfc4893bis-00.txt and 
to rfc4893bis-01.txt:

          
http://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-idr-rfc4893bis-00.txt
          
http://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-idr-rfc4893bis-01.txt

Regards,   -- Enke

Enke Chen wrote:
> 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
>
>