Re: [pcp] This solution is feasible?答复: What's the final conclusion?答复: [Technical Errata Reported] RFC6887 (3887)

Dan Wing <dwing@cisco.com> Fri, 14 February 2014 03:24 UTC

Return-Path: <dwing@cisco.com>
X-Original-To: pcp@ietfa.amsl.com
Delivered-To: pcp@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5166A1A00B8 for <pcp@ietfa.amsl.com>; Thu, 13 Feb 2014 19:24:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.76
X-Spam-Level:
X-Spam-Status: No, score=-8.76 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, CHARSET_FARAWAY_HEADER=3.2, CN_BODY_35=0.339, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, MIME_8BIT_HEADER=0.3, MIME_CHARSET_FARAWAY=2.45, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.548, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FCtMJTDND8I0 for <pcp@ietfa.amsl.com>; Thu, 13 Feb 2014 19:24:13 -0800 (PST)
Received: from mtv-iport-1.cisco.com (mtv-iport-1.cisco.com [173.36.130.12]) by ietfa.amsl.com (Postfix) with ESMTP id 39BEA1A003B for <pcp@ietf.org>; Thu, 13 Feb 2014 19:24:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=14739; q=dns/txt; s=iport; t=1392348252; x=1393557852; h=mime-version:subject:from:in-reply-to:date:cc: content-transfer-encoding:message-id:references:to; bh=i/vqcI4a+4HfR+O4WzyffTuJcnbHnwzhhax/UuFB7x8=; b=Rr2GwHYXF/j9s4AN5yAfBiqBdddry7EzfCE9cPgpi9xrIo4yKn4rR1YK AaQxaiiG0aXA2WwJQ3EFRCwvZwKAsYnNEviVqzURkJO/BRIoY1U5EnZFj b/xGd82DXqFcObjRcGn56upTT3vHm4xzbqlKzwE1hI59qpEySvOUlRkqN Y=;
X-IronPort-AV: E=Sophos;i="4.95,842,1384300800"; d="scan'208";a="102424989"
Received: from mtv-core-3.cisco.com ([171.68.58.8]) by mtv-iport-1.cisco.com with ESMTP; 14 Feb 2014 03:24:12 +0000
Received: from sjc-vpn5-1629.cisco.com (sjc-vpn5-1629.cisco.com [10.21.94.93]) by mtv-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id s1E3O7Mu016498; Fri, 14 Feb 2014 03:24:08 GMT
Content-Type: text/plain; charset="GB2312"
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
From: Dan Wing <dwing@cisco.com>
In-Reply-To: <1DA8CEC3F3E989439069663C05A865D334F97BCE@nkgeml508-mbx.china.huawei.com>
Date: Thu, 13 Feb 2014 19:24:07 -0800
Content-Transfer-Encoding: quoted-printable
Message-Id: <D388899F-B28D-465D-8AEB-AAE0BC3E3F11@cisco.com>
References: <20140212033032.D4F0A7FC395@rfc-editor.org> <B5316AA3-9CFD-4E25-822B-401F9DE36765@cisco.com> <F8F3C26A-FC50-486A-8EFF-DA2C08178524@nominum.com> <1DA8CEC3F3E989439069663C05A865D334F97AE6@nkgeml508-mbx.china.huawei.com> <B12D7908-1773-4DC9-8474-90532F328E21@cisco.com> <1DA8CEC3F3E989439069663C05A865D334F97B15@nkgeml508-mbx.china.huawei.com> <315A4314-038C-4304-BB90-8DC75FFFF9B3@cisco.com> <1DA8CEC3F3E989439069663C05A865D334F97B71@nkgeml508-mbx.china.huawei.com> <06F690E9-CCC1-4CC1-A7B5-07E0042EFE0A@cisco.com> <1DA8CEC3F3E989439069663C05A865D334F97B88@nkgeml508-mbx.china.huawei.com> <80955F6E-204D-4B6B-BE45-9C1A0F0DD072@cisco.com> <1DA8CEC3F3E989439069663C05A865D334F97BCE@nkgeml508-mbx.china.huawei.com>
To: "Zhangzhan (Channy)" <channy.zhang@huawei.com>
X-Mailer: Apple Mail (2.1510)
Archived-At: http://mailarchive.ietf.org/arch/msg/pcp/at-KfWE0uqKjf31jZDK3sooaKV8
Cc: Stuart Cheshire <cheshire@apple.com>, Brian Haberman <brian@innovationslab.net>, PCP Working Group <pcp@ietf.org>
Subject: Re: [pcp] This solution is feasible?答复: What's the final conclusion?答复: [Technical Errata Reported] RFC6887 (3887)
X-BeenThere: pcp@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: PCP wg discussion list <pcp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/pcp>, <mailto:pcp-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/pcp/>
List-Post: <mailto:pcp@ietf.org>
List-Help: <mailto:pcp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/pcp>, <mailto:pcp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 14 Feb 2014 03:24:20 -0000

On Feb 13, 2014, at 5:56 PM, "Zhangzhan (Channy)" <channy.zhang@huawei.com> wrote:

> PCP Client    	      	           PCP	Server	
> ----------    	      	           ----------
>    |                                   |
>    |---MAP w/LEARN_ZONES option------->|
>    |                                   |
>    |                   (one mapping is created)
>    |                                   |
>    |<--mapped to zone=1, total zones=3-|
>    |                                   |
>    |--GET_ZONE 1 details-------------->|
>    |<--zone 1 details------------------|
>    |                                   |
>    |--GET_ZONE 2 details-------------->|
>    |<--zone 2 details------------------|
>    |                                   |
>    |--GET_ZONE 3 details-------------->|
>    |<--zone 3 details------------------|
>    |                                   |
>    |--MAP, ZONE=2--------------------->|
>    |<-ok-------------------------------|
>    |                                   |
>    |--MAP, ZONE=3--------------------->|
>    |<-ok-------------------------------|
>    |                                   |
> 
> I think this solution has one problem.
> Based on RFC6887, we add a new LEARN_ZONES option, and client send this option message firstly to get zone number of PCP server. 
> It seems that pcp client know the server has more than one ZONEs in advance.

No, it doesn't.  LEARN_ZONE would be in the optional-to-process range, so the PCP client can safely send that option with any MAP request.  If the PCP server understands LEARN_ZONE, it includes LEARN_ZONE information in the response.  I show that the LEARN_ZONE information would merely indicate the number of zones supported.  If the PCP server does not understand LEARN_ZONE, the PCP server omits the LEARN_ZONE option from the response, but otherwise creates the requested MAP normally (that is, the PCP server behaves as if the optional-to-process LEARN_ZONE was not in the request at all).

This gives good backwards and forwards compatibility.


> But in actual network pcp client how to get this information? 
> I think that supplementing on the basis of the existing is a better way for protocol compatibility.
> 
> Refer to your idea chart, my idea chart is as follows:
> 
> PCP Client    	      	           PCP	Server	
> ----------    	      	           ----------
>    |                                   |
>    |---MAP/PEER request--------------->|
>    |                                   |
>    |                 (have more than one ZONEs)
>    |                                   |
>    |<-----MULTIPLE_ZONES resultcode----|
>    |                                   |
>    |--GET_ZONE Opcode----------------->|
>    |<--------------all zones detail----|
>    |                                   |
>    |--MAP/PEER zone 1----------------->|
>    |                                   |
>    |                       (mapping to zone 1)
>    |                                   |
>    |<--ok------------------------------|
>    |                                   |
>    |--MAP/PEER zone 2----------------->|
>    |                                   |
>    |                       (mapping to zone 2)
>    |                                   |
>    |<--ok------------------------------|
>    |                                   |
>    |--MAP/PEER zone 3----------------->|
>    |                                   |
>    |                       (mapping to zone 3)
>    |                                   |
>    |<--ok------------------------------|
>    |                                   |
> 
> 
> Based on your idea, my idea to make the following change:
> 
> PCP Client    	      	           PCP	Server	
> ----------    	      	           ----------
>    |                                   |
>    |---MAP/PEER request--------------->|
>    |                                   |
>    |                 (have more than one ZONEs)
>    |                                   |
>    |<----MULTIPLE_ZONES resultcode
>          ZONES_NUM option(zones=3)-----|

So, that is an error message.    Existing PCP clients will be unable to create any sort of mapping.  That seems undesirable, as it forces PCP clients to understand how to handle zones, or else they cannot function.  If that is the desire, it is better to create an entirely new opcode instead of overloading MAP as I proposed.  I don't think such a failure is desirable.  Why force zone-unaware PCP clients to fail?

-d


>    |                                   |
>    |--GET_ZONE 1 details-------------->|
>    |<--zone 1 details------------------|
>    |                                   |
>    |--GET_ZONE 2 details-------------->|
>    |<--zone 2 details------------------|
>    |                                   |
>    |--GET_ZONE 3 details-------------->|
>    |<--zone 3 details------------------|
>    |                                   |
>    |--MAP/PEER zone 1----------------->|
>    |                                   |
>    |                       (mapping to zone 1)
>    |                                   |
>    |<--ok------------------------------|
>    |                                   |
>    |--MAP/PEER zone 2----------------->|
>    |                                   |
>    |                       (mapping to zone 2)
>    |                                   |
>    |<--ok------------------------------|
>    |                                   |
>    |--MAP/PEER zone 3----------------->|
>    |                                   |
>    |                       (mapping to zone 3)
>    |                                   |
>    |<--ok------------------------------|
>    |                                   |
> 
> The coupling degree of this idea is smaller, or not?
> 
> 
> -----邮件原件-----
> 发件人: Dan Wing [mailto:dwing@cisco.com] 
> 发送时间: 2014年2月14日 1:45
> 收件人: Zhangzhan (Channy)
> 抄送: Ted Lemon; PCP Working Group; Stuart Cheshire; mohamed.boucadair@orange.com Boucadair; Reinaldo Penno; pselkirk@isc.org; Brian Haberman; Dave Thaler
> 主题: Re: This solution is feasible?答复: What's the final conclusion?答复: [Technical Errata Reported] RFC6887 (3887)
> 
> 
> On Feb 12, 2014, at 11:06 PM, Zhangzhan (Channy) <channy.zhang@huawei.com> wrote:
> 
>> This solution is feasible?
>> 
>> We define a new result code, such as MULTIPLE_ZONES, and define a new Opcode, such as GET_ZONE.
>> If the PCP server have more than one ZONE, reply a MULTIPLE_ZONES result code message when receiving any PCP requests.
>> The client receives the result code, must send a GET_ZONE Opcode request message.
>> The PCP server must replay a message which contains the list of all ZONE ID information.
>> Then the client get the ZONE ID information, sends request messages (PEER or MAP) which include ZONEID option. If there are N zones, client must send N request messages.
>> Finally The PCP server can be selected the different address pools according to the ZONEID information and create multiple different mapping tables.
>> If the zone information is changed in PCP server, mapping tables must be deleted and create new mapping table when receiving renewing messages from clients.
> 
> Seems like a good first cut, but I don't like breaking backwards compatibility with existing PCP clients.  Backwards compatibility is broken in that second step (the step starting with "If the PCP server have more than one ZONE ...").  Better would be if the PCP client tries to do zone discovery when it sends its first MAP (such as an PCP option), as that doesn't change state machine much.   Here is what I am thinking (view with fixed-width font):
> 
> PCP Client    	      	           PCP	Server	
> ----------    	      	           ----------
>    |                                   |
>    |---MAP w/LEARN_ZONES option------->|
>    |                                   |
>    |                   (one mapping is created)
>    |                                   |
>    |<--mapped to zone=1, total zones=3-|
>    |                                   |
>    |--GET_ZONE 1 details-------------->|
>    |<--zone 1 details------------------|
>    |                                   |
>    |--GET_ZONE 2 details-------------->|
>    |<--zone 2 details------------------|
>    |                                   |
>    |--GET_ZONE 3 details-------------->|
>    |<--zone 3 details------------------|
>    |                                   |
>    |--MAP, ZONE=2--------------------->|
>    |<-ok-------------------------------|
>    |                                   |
>    |--MAP, ZONE=3--------------------->|
>    |<-ok-------------------------------|
>    |                                   |
> 
> 
> -d
> 
> 
>> 
>> -----邮件原件-----
>> 发件人: Dan Wing [mailto:dwing@cisco.com] 
>> 发送时间: 2014年2月13日 14:22
>> 收件人: Zhangzhan (Channy)
>> 抄送: Ted Lemon; PCP Working Group; Stuart Cheshire; mohamed.boucadair@orange.com Boucadair; Reinaldo Penno; pselkirk@isc.org; Brian Haberman; Dave Thaler
>> 主题: Re: What's the final conclusion?答复: [Technical Errata Reported] RFC6887 (3887)
>> 
>> 
>> On Feb 12, 2014, at 10:14 PM, "Zhangzhan (Channy)" <channy.zhang@huawei.com> wrote:
>> 
>>> This draft is proposed in 2011, but has expired, no refresh or replacement?
>> 
>> That's right.
>> 
>>> The PEER mode include remote address maybe can be selected correct zone.
>>> 
>>> The MAP mode only through the filter option to identify, if contains more than one filter in one PCP message, and these filters maybe belong to different zones. 
>>> And an address pool may contain a number of different segments address blocks, the filter maybe not be able to identify zones.
>>> 
>>> The ZONEID option should be a good solution, but the client to get the zones information is a very difficult thing, because zones in CGN is hidden for a client and no business relations. Zones maybe be changed, how to keep the synchronization is a problem.
>> 
>> That problem needs to be solved anyway, no matter if it's called ZONEID or called something else.
>> 
>> -d
>> 
>> 
>>> 
>>> -----邮件原件-----
>>> 发件人: Dan Wing [mailto:dwing@cisco.com] 
>>> 发送时间: 2014年2月13日 10:23
>>> 收件人: Zhangzhan (Channy)
>>> 抄送: Ted Lemon; PCP Working Group; Stuart Cheshire; mohamed.boucadair@orange.com Boucadair; Reinaldo Penno; pselkirk@isc.org; Brian Haberman; Dave Thaler
>>> 主题: Re: What's the final conclusion?答复: [Technical Errata Reported] RFC6887 (3887)
>>> 
>>> 
>>> On Feb 12, 2014, at 5:29 PM, Zhangzhan (Channy) <channy.zhang@huawei.com> wrote:
>>> 
>>>> Maybe you misunderstand me.
>>>> There is only one router for NAT and PCP.
>>>> If the NAT gateway device (such as CGN) is PCP Server and has two or more out interfaces to internet were doing different nat conversion in the ISP. 
>>>> Maybe using NAT address pool A, B, C... And the routing entries to internet on NAT gateway is equivalent default route. In this case, the out interface is uncertain, fully in accordance with the equivalent route selection.
>>>> If no PCP, service traffic can be selected out interface according to the destination address and do different NAT conversion.
>>>> But the PCP message is in before the normal service traffic. And PCP MAP mode message does not include the destination address, the NAT gateway device how to choose the out interfaces and the different NAT address pools? 
>>>> Based on the current PCP protocol, I think that can't be solved. Or what I understand something wrong?
>>> 
>>> With such a network topology, you are correct that the current MAP opcode doesn't work.  We need something different.  Would http://tools.ietf.org/html/draft-penno-pcp-zones be a viable solution?
>>> 
>>> -d
>>> 
>>> 
>>>> 
>>>> -----邮件原件-----
>>>> 发件人: Dan Wing [mailto:dwing@cisco.com] 
>>>> 发送时间: 2014年2月13日 9:02
>>>> 收件人: Zhangzhan (Channy)
>>>> 抄送: Ted Lemon; PCP Working Group; Stuart Cheshire; mohamed.boucadair@orange.com Boucadair; Reinaldo Penno; pselkirk@isc.org; Brian Haberman; Dave Thaler
>>>> 主题: Re: What's the final conclusion?答复: [Technical Errata Reported] RFC6887 (3887)
>>>> 
>>>> 
>>>> On Feb 12, 2014, at 4:49 PM, "Zhangzhan (Channy)" <channy.zhang@huawei.com> wrote:
>>>> 
>>>>> "Indeed, it has been discussed."
>>>>> 
>>>>> What's the final conclusion to the discussion? 
>>>>> 
>>>>> How PCP applies in the Dual-Egress NAT scene?
>>>>> 
>>>>> Could you please share it? 
>>>> 
>>>> I removed the RFC Editor from the thread.
>>>> 
>>>> PCP client needs to communicate to both of the NATs independently.  Which the same host (the PCP client) needs to know how to do anyway to send its TCP SYN to one ISP or the other ISP -- to send its TCP SYNs to different networks, the host must have routing entries.  The PCP client can use those same routing entries to know there are two routers on the network, and send PCP messages to those two routers separately.
>>>> 
>>>> -d
>>>> 
>>>> 
>>>>> 
>>>>> -----邮件原件-----
>>>>> 发件人: Ted Lemon [mailto:ted.lemon@nominum.com] 
>>>>> 发送时间: 2014年2月13日 0:13
>>>>> 收件人: Dan Wing
>>>>> 抄送: RFC Errata System; Zhangzhan (Channy); Stuart Cheshire; mohamed.boucadair@orange.com Boucadair; Reinaldo Penno; pselkirk@isc.org; Brian Haberman; Dave Thaler; PCP Working Group
>>>>> 主题: Re: [Technical Errata Reported] RFC6887 (3887)
>>>>> 
>>>>> On Feb 12, 2014, at 10:15 AM, Dan Wing <dwing@cisco.com> wrote:
>>>>>> It seems appropriate to discuss this question on the PCP mailing list, pcp@ietf.org.
>>>>> 
>>>>> Indeed, it has been discussed.   This isn't really an appropriate topic for an erratum.
>>>>> 
>>>> 
>>> 
>> 
>