Re: [Apn] Issues to be closed #33-#38

"Pengshuping (Peng Shuping)" <pengshuping@huawei.com> Mon, 21 February 2022 07:46 UTC

Return-Path: <pengshuping@huawei.com>
X-Original-To: apn@ietfa.amsl.com
Delivered-To: apn@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C784F3A09EE; Sun, 20 Feb 2022 23:46:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level:
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 AmJQLzTsGPpK; Sun, 20 Feb 2022 23:46:45 -0800 (PST)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6A6E33A0A07; Sun, 20 Feb 2022 23:46:45 -0800 (PST)
Received: from fraeml712-chm.china.huawei.com (unknown [172.18.147.207]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4K2DlX4ss5z67wSH; Mon, 21 Feb 2022 15:42:00 +0800 (CST)
Received: from canpemm100005.china.huawei.com (7.192.105.21) by fraeml712-chm.china.huawei.com (10.206.15.61) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Mon, 21 Feb 2022 08:46:41 +0100
Received: from canpemm500008.china.huawei.com (7.192.105.151) by canpemm100005.china.huawei.com (7.192.105.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Mon, 21 Feb 2022 15:46:39 +0800
Received: from canpemm500008.china.huawei.com ([7.192.105.151]) by canpemm500008.china.huawei.com ([7.192.105.151]) with mapi id 15.01.2308.021; Mon, 21 Feb 2022 15:46:39 +0800
From: "Pengshuping (Peng Shuping)" <pengshuping@huawei.com>
To: "adrian@olddog.co.uk" <adrian@olddog.co.uk>, 'apn' <apn@ietf.org>
CC: "rtgwg@ietf.org" <rtgwg@ietf.org>, 'Bob Hinden' <bob.hinden@gmail.com>, 'Daniel Voyer' <daniel.voyer@bell.ca>
Thread-Topic: Issues to be closed #33-#38
Thread-Index: AdgdWcKKQeIXXf3qRLaKgScGIx25/gGbLViAAMqX1iA=
Date: Mon, 21 Feb 2022 07:46:39 +0000
Message-ID: <ec41642e8b394af791c56e80fe203781@huawei.com>
References: <77b657dbd7c8412381815802c7caa01e@huawei.com> <019f01d82409$87e81870$97b84950$@olddog.co.uk>
In-Reply-To: <019f01d82409$87e81870$97b84950$@olddog.co.uk>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.112.41.150]
Content-Type: multipart/alternative; boundary="_000_ec41642e8b394af791c56e80fe203781huaweicom_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/apn/Sgim12VMs8jcyUrXaujqgSGVUMk>
Subject: Re: [Apn] Issues to be closed #33-#38
X-BeenThere: apn@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Application-aware Networking <apn.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apn>, <mailto:apn-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/apn/>
List-Post: <mailto:apn@ietf.org>
List-Help: <mailto:apn-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apn>, <mailto:apn-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 21 Feb 2022 07:46:51 -0000

Dear Adrian,

Truly appreciate your thoughtful reply and valuable suggestions!

We will revise and update the drafts accordingly to capture all the key points here.

Thank you!

Best Regards,
Shuping

From: Adrian Farrel [mailto:adrian@olddog.co.uk]
Sent: Thursday, February 17, 2022 10:21 PM
To: Pengshuping (Peng Shuping) <pengshuping@huawei.com>; 'apn' <apn@ietf.org>
Cc: rtgwg@ietf.org; 'Bob Hinden' <bob.hinden@gmail.com>; 'Daniel Voyer' <daniel.voyer@bell.ca>
Subject: RE: Issues to be closed #33-#38

Hi Shuping,

I think I missed responding to this. Thanks for your patience.

> All the issues to be closed are going to be listed in this link
> https://github.com/APN-Community/Issues/issues.
> Following the issues we posted before, we post our responses
> to the issues #32-#38 this week. These issues are the last set
> of issues summarized in the Chairs' Summary section at the
> end of the BoF. Thanks to the Chairs for their sharp and clear
> summary which have captured almost all the key issues over
> the BoF.

I really like your mode of work here: driving through the issues but raising them on the list to ensure that there is visibility.
Shuping> Thank you.

> Please either leave your comments in the mailing list or directly
> in the github, so we can finally close these issues. Thank you!

Responses and thoughts in line.


> 33. Why APN is needed when there are multiple existing
> mechanisms, just as DetNet and Network Slicing? #33
> https://github.com/APN-Community/Issues/issues/33
>
> In the latest version of this gap analysis draft
> https://datatracker.ietf.org/doc/html/draft-peng-apn-scope-gap-analysis-03,
> a few new subsections have been added to further
> clarify the differences between APN and the existing
> mechanisms such as DetNet and Network Slicing which
> are both resource partitioning techniques.

This is a really important distinction between resource partitioning and traffic steering.
I see Sections 6.7 (DetNet) and 6.8 (Network Slicing), and these are fine (IMHO) descriptions of the uses of identifiers in those technologies.
But I don't see the term "resource partition" anywhere. The term "steering" is used well in the scope discussion.
You may find a reference to draft-ietf-teast-rfc3272bis helpful to distinguish these different concepts.

(Although, maybe some of this belongs in the APN framework draft.)

By the way, while I had the draft open, I notice you're using the old version of the BCP 14 boilerplate, and you need to move it from the document header down into Section 2.1

> 34. How privacy affects APN, especially about accidental breach
> of privacy and subversion of decapsulation? #34
> https://github.com/APN-Community/Issues/issues/34
>
> This draft https://datatracker.ietf.org/doc/draft-li-apn-framework/
> specifies that the APN marking will be encapsulated in the outer
>tunnel encapsulation and removed together with the tunnel
> encapsulation at the end of each tunnel. In the same draft, we
> have also listed the APN Attribute Conveying Requirements
> https://datatracker.ietf.org/doc/html/draft-li-apn-framework-04#section-5.1,
> the [REQ 1d] is that "APN ID MUST be acquired from the
> existing available information of the packet header without
> interference into the payload." APN works within a limited
> domain and the APN ID will be only meaningful to this network
> domain. The interpretation of the values of these fields is a local
> matter within the APN domain.

Parts of this are very good.

-          The APN ID does not use information from within the packet payload

-          The APN ID only uses information from the packet header

-          The context of the APN ID is limited to within the APN domain

However, the APN ID is set according to policies within the domain. For example, the policy may be that a certain pair of sender/receiver addresses comprise a priority flow between prestigious users. That policy would be converted to a specific APN ID (or more likely APN Attribute including an APN ID) that would get special treatment in the network. So an attacker might learn about the APN markings that indicate priority traffic, spot such packets, and look to see who is sending/receiving them.

Thus, the really important part of what you have said is that APN is only applied to an edge-to-edge IP-in-IP encapsulation. That is, you tunnel across the APN domain.
What that means is that the source and destination addresses of the packet are the end points of the tunnel (i.e., the domain edges), and nothing about the payload source and destination can be deduced.

Furthermore (and I don't think you say this), encryption could be used on the encapsulated packet as it is carried across the APN domain. That would mean that someone inspecting a packet, discovering it is receiving "gold" treatment, and trying to work out who/what qualifies as "gold" would not be able to see the end-to-end packet.

This substantially reduces the privacy concerns.

I still wonder whether the write-up of these points could be clearer and easier. It is enough that you have addressed all the issues, but it is better if the reader can see the concern and then be lead step by step through the solution.

> 35. Use cases need to explain more about what is needed from the APN
> attribute and what policies are applied in the network. We need more
> detailed "killer" use case examples. #35
> https://github.com/APN-Community/Issues/issues/35
>
> In the latest version of this draft
> https://datatracker.ietf.org/doc/html/draft-li-apn-framework-04<https://datatracker.ietf.org/doc/html/draft-li-apn-framework-04#section-6>,
> we provided an illustration section introducing a concrete
> use case, which covers the APN ID design, the APN ID configuration
> at the network edge, and the SLA guarantee in the backbone
> network such as network measurement and traffic steering.
> The benefits of using APN in this use case are also introduced.

Yes! That was what was needed.

> Several concrete use cases that could benefit from APN have
> also been recorded in IETF drafts and already presented in previous
> meetings.
> - https://tools.ietf.org/html/draft-liu-apn-edge-usecase
> - https://tools.ietf.org/html/draft-zhang-apn-acceleration-usecase
> - https://tools.ietf.org/html/draft-yang-apn-sd-wan-usecase

These are good documents, but what they don't do is say "Therefore we need the APN Attribute to carry the following information."


> 36. The APN attribute should not become a way of carrying
> arbitrary metadata. It is not clear at this stage what information
> needs to be in the APN attribute versus what information could
> be in the APN attribute. #36
> https://github.com/APN-Community/Issues/issues/36
>
> Yes, we agree that the APN attribute should not become a way
> of carrying arbitrary metadata. The APN Header is specified in
> this draft https://datatracker.ietf.org/doc/draft-li-apn-header/.
> The carried APN ID and the APN Parameters are also defined.
> The APN Attribute Conveying Requirements are also specified
> in this draft https://datatracker.ietf.org/doc/html/draft-li-apn-framework-04#section-5.1.

Right, so the header draft defines a field that can contain APN parameters. This is, free-format data and you can understand why some people might think that *any* data could be included in there.

In fact, the content of the APN-Para field is determined by the setting of the APN-Para-Type field (a 16 bit field) enabling 16 different parameter formats to be defined and included.

What stops me writing a draft tomorrow describing bit 7 to mean "User's home phone number, height, shoe size, computer serial number"? Or any other meta-data? Indeed, why would I even need to write a draft?

So, there is another constraint: each APN Parameter field is exactly 32 bits. That means I would need several fields to carry my metadata. But still, the option is open.

I think you can tighten this up by:

-          Asking for an IANA registry to track the bits

-          Making the assignment policy for that registry "IETF Review"

This does not stop arbitrary metadata, but it gives the IETF control over it.

You might also describe the expected behavior when an APN-Para-Type field is set and the processing node does not understand the meaning. I think that, because each Parameter field is 32 bits, I can simply ignore and step over the parameters I don't understand.

> 37. We also need more understanding of how APN is
> relevant in encrypted environments.  #37
> https://github.com/APN-Community/Issues/issues/37
>
> The APN attribute is acquired based on the existing information in
> the packet header such as 5-tuple (might be 2-tuple in an encrypted
> environment) and QinQ (S-VLAN and C-VLAN) at the edge devices of
> the APN domain, added to the data packets along with the tunnel
> encapsulation. This means that APN does not need to rely on the
> encrypted payload of the packet. Moreover, in this draft
> https://datatracker.ietf.org/doc/html/draft-li-apn-framework-04#section-5.1,
> we have also listed the APN Attribute Conveying Requirements,
> the [REQ 1d] is that "APN ID MUST be acquired from the existing
> available information of the packet header without interference
> into the payload."

Right. It is not just the encryption of the payload, but those three fields of the 5-tuple.
As you say, if there is encryption, the APN processing will be limited to less information.

I suggest that you turn the text the other way round so that you say that APN processing is based on:

-          Source and destination addresses

-          Incoming L2 (or MPLS) encapsulation

-          Incoming physical/virtual port information

-          The other fields of the 5-tuple if they are not encrypted

I think you also have to say that if the APN packet is itself encrypted (e.g., the APN tunnel across the APN domain uses IPsec) then the APN Attribute MUST NOT be encrypted.

> 38. Should APN be applied to multiple transport/underlay protocols
> or should it be better to pick just one and use it in all APN-enabled
> networks? #38
> https://github.com/APN-Community/Issues/issues/38
>
> Currently the APN Header and its encapsulation in the IPv6 data plane
> are described in https://datatracker.ietf.org/doc/draft-li-apn-header/
> and https://datatracker.ietf.org/doc/draft-li-apn-ipv6-encap/,
> respectively.
>
> We want to focus on the IPv6 data plane where we believe APN will
> be most useful. However, in developing the APN Header, we want to
> do it in a generic way so that it is available for use in other data plane
> encapsulations should that turn out to be valuable. Designing a
> generic APN Header will not damage its value and use in IPv6, and
> seems to be the correct architectural solution to be future-proofed
> and most useful within the IETF.

I agree with this approach. It seems sensible.

It would be good to be sure that the drafts say this clearly.

Thanks,
Adrian