Re: [netmod] Changes to IPv6 zone definition in draft-ietf-netmod-rfc6991-bis-15

Jürgen Schönwälder <jschoenwaelder@constructor.university> Fri, 24 March 2023 13:30 UTC

Return-Path: <jschoenwaelder@constructor.university>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 90951C15152B; Fri, 24 Mar 2023 06:30:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=jacobsuniversity.onmicrosoft.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iP8BNhH4DSF0; Fri, 24 Mar 2023 06:30:07 -0700 (PDT)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20631.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::631]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C3D47C14CE4C; Fri, 24 Mar 2023 06:30:02 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L6Co+3jx7wqiTuVIulDSSDsHi5YKymO7o/43+p10ZgeAjM00GV6WjpJzGArcgOIa0JjToYt6CoAe44i3EHqpURM1Aj0lXrMZy9Tt/GR6M2Be6/v/NwH05xGBmy1XSbbifvBOSLO7YLVSyVK0jwCuvmHS878VqDGhjykx0+DxGNrAKSBUyIXVzR2Z7fcsA35J7QGmPnL1EPi0ct6TnhPifL1cZPWu6FqbmIq6EjT78gCOEshxVjwWxPDtq60sjCkZX47V6tC9mCPi6nk54+jzAFTLHEaqCKxeATLeIb8DIFZpdYybVgzyJIHrlpuRxvLvx1Q9EGsayBhA14Ipg8DSSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=N9V8pUxVqD3Qd3ioFmmEwIaenf2HPM2GPqRHounkmE0=; b=BqcdYzlZLWu9mSckVMKknrNGhfg+5lwo0SUSrT4VToJtR+OvEluxqb9Y4xKBoJHTGKu7vQCECB3OlJX7mX1b58LfAj0kcgyYf2mDKXH2lIy6U1GxenwJXiZJCsUhdCVAAmOXoH2I5saVcelFa9BE+wy+jm8D52f55i8bQq9NHVKBPdJLw1v+bAp7wqdFAbv2HhFTIYgYqhnwonEldGbOgJRCzVS698SG8YssbXlXMdgsR/QVV4uwyqUA5z++27dd5hQhy3j9QNEP+KHOaJVxddWU0+hpHCmg7lxDL93gS7+TweFZQHTtal1MJwUmlvYIyOxYtnYa8gnAk5Fgyknheg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=constructor.university; dmarc=pass action=none header.from=constructor.university; dkim=pass header.d=constructor.university; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jacobsuniversity.onmicrosoft.com; s=selector2-jacobsuniversity-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=N9V8pUxVqD3Qd3ioFmmEwIaenf2HPM2GPqRHounkmE0=; b=dALxgalecWT497h/A9SsXxizUQ1l2I1uQGd7WrIKkKWXH+oxPpOdTyds2vJrtBQRrlTiilZ8UPGfo2N044t7GdHIGl9+I9kE/sa/Jsv6r7fIHKPszOmihY72pqOEOj6j/fzOGVngrt0wQ4Kea4nYXCVtGWam3G4Hca/YaURWB7I=
Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=constructor.university;
Received: from GVXP190MB1991.EURP190.PROD.OUTLOOK.COM (2603:10a6:150:3::6) by AS4P190MB1880.EURP190.PROD.OUTLOOK.COM (2603:10a6:20b:507::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.38; Fri, 24 Mar 2023 13:29:58 +0000
Received: from GVXP190MB1991.EURP190.PROD.OUTLOOK.COM ([fe80::62bb:76a:de40:c7ac]) by GVXP190MB1991.EURP190.PROD.OUTLOOK.COM ([fe80::62bb:76a:de40:c7ac%3]) with mapi id 15.20.6178.038; Fri, 24 Mar 2023 13:29:57 +0000
Date: Fri, 24 Mar 2023 14:29:56 +0100
From: Jürgen Schönwälder <jschoenwaelder@constructor.university>
To: "Rob Wilton (rwilton)" <rwilton@cisco.com>
Cc: "netmod@ietf.org" <netmod@ietf.org>, "draft-ietf-netmod-rfc6991-bis.all@ietf.org" <draft-ietf-netmod-rfc6991-bis.all@ietf.org>, "draft-ietf-6man-rfc6874bis.all@ietf.org" <draft-ietf-6man-rfc6874bis.all@ietf.org>
Message-ID: <20230324132956.pzv3c6dp66ugulxh@anna>
Reply-To: Jürgen Schönwälder <jschoenwaelder@constructor.university>
Mail-Followup-To: "Rob Wilton (rwilton)" <rwilton@cisco.com>, "netmod@ietf.org" <netmod@ietf.org>, "draft-ietf-netmod-rfc6991-bis.all@ietf.org" <draft-ietf-netmod-rfc6991-bis.all@ietf.org>, "draft-ietf-6man-rfc6874bis.all@ietf.org" <draft-ietf-6man-rfc6874bis.all@ietf.org>
References: <BY5PR11MB41966FD2ECEFB84708C5A325B5869@BY5PR11MB4196.namprd11.prod.outlook.com>
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <BY5PR11MB41966FD2ECEFB84708C5A325B5869@BY5PR11MB4196.namprd11.prod.outlook.com>
X-ClientProxiedBy: AM8P189CA0012.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:218::17) To GVXP190MB1991.EURP190.PROD.OUTLOOK.COM (2603:10a6:150:3::6)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: GVXP190MB1991:EE_|AS4P190MB1880:EE_
X-MS-Office365-Filtering-Correlation-Id: 3e525d23-5150-4869-af55-08db2c6bdc48
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: TjxdtGOcKwYTBW2QYFowJv9VcQx37U4aU9MTZ6APYJlQdeck0dQxjEksFpdz8NcNzpVxqZ4O4Rxa7TlTpOCCLqlayGZdYc0Oe1VwfHIS8N0PXMaUpLlalTXJA86lqVRu/x2R0gyFS71qskekXlbKYWmTokd7VV+fQPphlvmuC8l+BjrqBsdkooHXsX48/4BvLXQfMJVz7qRk3I/WT1GZtkvz+PHGMB32SKdAxDP1kFFKNhFxrUJdADXifLkCoGgXdTycKxRVxaSKobceq3RAHWh8UnCWR8sPGUuI4amGpS3QqHIAnrtNn5hVdGYfcalVxglc3YmAumeBRyL+b7toS9dHgDWdxXnqC0ca+psIeC7J0Ch+wkJre9YdwK67Dm9VgKJgqvIPiDcW5Z6zOid+p7DanqrAd73Sf65tXNKs3X5rqlrGT0fOdJg0I6Nf9y7F1b3VKeOYOTIogqjjrn2wXW27pyDt/WB4YUMKk0dtOq/r7tb1NrrtF41JnAG9aesYh+QM4J0i2qsi3BcXPl073sqd6Aqp0tyeKzmqhtS+BVcK+MbLxlIkAeF7hI3aFbAMwJtiI5633ul7i8U8xYemIoBzAaptCSx9YSZVrS7xb8SYSAy7vX4XVzRVqNXrxVdhCWnI9ILp6nSCzWY451+J2tSTjHJexX6F9sICX3rFzzqv4pVokvnxFoxqc+ZmRIIPHUVWSDHxElugil7Uh9Y+wA==
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GVXP190MB1991.EURP190.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230025)(7916004)(346002)(366004)(136003)(376002)(396003)(39860400002)(451199018)(54906003)(86362001)(41300700001)(786003)(478600001)(8936002)(5660300002)(66476007)(41320700001)(66556008)(8676002)(52116002)(66946007)(4326008)(6916009)(316002)(3450700001)(6486002)(2906002)(66899018)(6512007)(40140700001)(6506007)(38350700002)(33716001)(38100700002)(1076003)(9686003)(186003)(26005)(85202003)(83380400001)(85182001)(66574015)(46492015); DIR:OUT; SFP:1101;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: JfBLubaRh7vD3gQKFTTtSFt0r98Sjzxwu7KjCNpRamXZMygQMBJmM437Zw7xVAVlzeQwt9gWfhc1ce8GYwEQyrGF96NSsjRz1h4KzIQQwh9pX0QBnakfYJxtlo81pHzrTLCb18xzKAELmEv1tiug+B5iUpVCAGZjZpWSjIvrh/pFpvN/nfWtunp8EQR9Dv/AgRrxedSyP3eFUNoLPklyDagu3AcvH2CA9Z/aHJmcjZHYzHxU98Vw1a3W/sa0UIEcjigcACD9ZNDOtqpS90sNqEAD6E6IfFrja4+b47C3LEbC0KlbekCjNoM2efjOjAr4JSb98U3bXaJXc5aofri1m4j42q4bIRfMaL5mXLaAAgBX0fGkgIW9g/VJXLYBkgRwsgbDNzoRxEwfPHrxtd7a1cmLmdpsD6eKmEzaJU0wjLPHAdKzfCgd2cFmrTQkZS4yoX0ZFdYByC8li9L/rvWGA1JV5BqUiIB09ma7kuOCY92GIUKyylSRaqVVEg8ZVFWYZMabIjCJYiHmf330/yqPvOQEh6chQFGyuovx8BkygVAe5+NrOvN1U5esWD4PcjQ748lfSPbTAgXO511OPU5EOSdxJWWgzQratI4qE7TznKPLu6b9pdbAPIxZaAvoSJEXT/iTMRPgrvGzL+fQKlakUa0KkW8XDzsf/RMbdSIymZuGZLWm8RudQtypnTkpOY9LlqBqCa5pfDcOW64XQvT98tPx7wGZ13WdGWpa5LdrsaPNVHaEqokFYY0qk2uHtTjBVe+hb1tOWx/95m1nq3UNU4du+SDeqDy2fZkmEjH9OBIHXY7/DuvfEkyR8ZfVOb0B3EEaW87WN4wi/pKG/EH1YY7C+LAANbCZ/wi0PYoFvZa2PjiV183Axv+rmrViKAahOSXHD72Iw0+8Mjm0vuowmDWrQV9tB2JsBFo3er0JwPmMgMhXuHH1lNz0o5rYLRUP0h9+7CdM8tHUFxeUMtLL33oQi+hVTcu3fkP5skKWcHuQCX65R3ynyp4DXojuxaqGbbFWQJ8aVlseG8ql2ZoH5tmeID9VJuQyhbB+Co3tN07lbrVFKrzU/clxlZ3TEP+BQTfN73m7Ca5qI/pdxOhzoRAvbvRY2bh0zGDZ0YypIKIIVAtDn2Tvf9RfX8XjdCofF0Do7s0M1LB0XgT8c495OXz4vQbhi9ZflEHRQ+7DgcVogIrdOnZhJhHYojy+b/TZ7t9WQqu5HaZValP6MqVxW9N4lTDVcb4kPxk27ejtoxl4PotwU1CXK5kiTfuN+sHxWkJS0tt3C0amKd2bsl9Qg3ZqzQi48WQ77TUfAWkFy3UBG6nN18MUZbwqXnoVaKkaaOsAYNg8d1Vl4yBEJf0/ESonlT5oYQHsAfcHpXR+HH4yTdjtXKZywTwRM+RNsPZQ1S/kKyKzPoLlPEzHVfj/EUzBiE5u5H1yOk2niP37oTcEPqy2MVV7erOt0nkwh2ObN2eOOJJnQ9kgRVfkBrHlDshy8dPDjRX+SwUFGDV2HyI7gQioN1lUpbxoKtoX0aFEEvg38rPwPvmSqAtEj4qWWGh4WvQKETqhMCgrxerAoBcxhsshp9TbervG8+JOzzkd4UbWydK/O+NRIZMmT8uu/RigaQEuKWdxHGemmbRRFQk=
X-OriginatorOrg: constructor.university
X-MS-Exchange-CrossTenant-Network-Message-Id: 3e525d23-5150-4869-af55-08db2c6bdc48
X-MS-Exchange-CrossTenant-AuthSource: GVXP190MB1991.EURP190.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2023 13:29:57.4915 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: f78e973e-5c0b-4ab8-bbd7-9887c95a8ebd
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: udSMtNtmGEbs+2MbhK6wZ1VFsF0+GB6XIExJ+OgnD4y6+fcJ5og0cHKRITiRBqaK65sTfZPL3wqN7Y6xwfrGKtL7Iw0S8WULPKVvXbvE20c=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4P190MB1880
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/7Ho2AKieTK-RV5NfateSq8w53yY>
Subject: Re: [netmod] Changes to IPv6 zone definition in draft-ietf-netmod-rfc6991-bis-15
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 24 Mar 2023 13:30:11 -0000

Rob,

using '"(%.+)"' in the IP address types may be the most liberal answer
and in line with the interface YANG module. Applications using
draft-ietf-6man-rfc6874bis will have to resort to %-encodings to deal
with forward slashes and the like, which likely is OK in the web
context.

I do not think we can make the assumption that interface names are
case insensitive. On Linux, it seems very well possible to have
interfaces that only differ in case. But this would be more an issue
for draft-ietf-6man-rfc6874bis and not for YANG data models.

I do not think that defining a new zone name type and then to have
mappings to this new type makes sense. Existing implementations and
APIs use interface names. Deploying a new indirection may take
forever.

Concerning your second question, I believe that changing the canonical
format of typedef is a backwards incompatible change and hence I kept
the numeric version. At the end, both, the zone name and the zone
number have only local significance. The main difference may be that
the name may be more stable than the number across device reboots.  If
I would start from scratch, I would prefer to use the name for this
reason.

/js

PS: The update of the zone pattern is enlarging the zone value space
    and hence I consider this a backwards compatible change according
    to the YANG update rules.

On Wed, Mar 22, 2023 at 01:32:44PM +0000, Rob Wilton (rwilton) wrote:
> Hi Jürgen, Netmod, & rfc6874bis interested parties,
> 
> In my AD review of draft-ietf-netmod-rfc6991-bis-15, Jurgen has proposed a change to definition of the zone-id in the ip-address, ipv4-address, and ipv6-address types.  These changes move the definition somewhat closer to what is in rfc6874bis, but they are still different enough that we don't have wide compatibility.
> 
> I think that it may be useful to have a discussion to see if we can find a technical solution that works both for YANG models and that is compatible with being used in URIs.  Hence, I've separated my AD review comments for these two specific issues into this separate thread to try and ensure that interested parties can be involved in the discussion:
> 
> (2) In RFC 6991:
>      typedef ipv6-address {
>        type string {
>          pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
>                + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
>                + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
>                + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
>                + '(%[\p{N}\p{L}]+)?';
> 
> In draft-ietf-netmod-rfc6991-bis-15, p 27, sec 4.  Internet Protocol Suite Types
>      typedef ipv6-address {
>        type string {
>          pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
>                + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
>                + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
>                + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
>                + '(%[A-Za-z0-9][A-Za-z0-9\-\._~/]*)?';
> 
> I'm not saying that this change is wrong, but this technically looks to be a non-backwards-compatible change (depending on whether interface names could ever use non-ASCII characters).  Where is the set of allowed characters for zone-ids defined?  I couldn't find them in an RFC, RFC 4007 section 11.2 seems to indicate that there is no restriction.  draft-ietf-6man-rfc6874bis, which I'm currently holding a 'discuss' ballot position on, effectively limits the usable character set of zone-ids to the unreserved set in URIs, which seems to match those above except for '/' that is allowed above (and used in many interface names), but not in the URI's unreserved character set.  A further difference is that upper case characters are allowed in this typedef but are not allowed when used in the host part of URIs.
> 
> Update - I've now seen the thread 'ipv6-address in RFC 6991 (and bis)', and Jürgen has put together a useful blog post, thanks!
> 
> Given that "interface-name" in RFC 8343, and the text in RFC 4007 section 11.2, then arguably the safest thing here would be to allow the zone-id to be unrestricted, i.e., "(%.*)?"  However, this would leave draft-ietf-6man-rfc6874bis as only being able to support a small fraction of interface names as zone-ids in URLs.  The authors of draft-ietf-6man-rfc6874bis seem to indicate that it works for all interface names that currently matter for their use case.
> 
> An alternative solution could be to somewhere define the zone-ids in YANG to match the restrictive set in draft-ietf-6man-rfc6874bis (i.e., lower case only, and disallow '/').  I think that this would then require that we recommend a conversion of interface names into draft-ietf-6man-rfc6874bis compatible zone-ids interface-names.  E.g., such a conversion could take the interface name, and change any uppercase characters to lower case, and replace any symbol that isn't in the allowed character set with '_'.  This conversion is effectively one way, and there is a theoretical risk that the converted interface names could collide, but this may be unlikely in practice.  Obviously, this conversation doesn't handle non-ASCII interface names, but I'm not sure how realistic it is that they would be used anyway.
> 
> This general comment also applies for the same change for 'ipv4-address'.
> 
> 
> (3) draft-ietf-netmod-rfc6991-bis-15, p 28, sec 4.  Internet Protocol Suite Types
> 
>          The canonical format of IPv6 addresses uses the textual
>          representation defined in Section 4 of RFC 5952.  The
>          canonical format for the zone index is the numerical
>          format as described in Section 11.2 of RFC 4007.";
> 
> Would it make sense to also change the canonical format for the zone index to be interface name (or converted interface name) rather than numeric id (when used in YANG models)?
> 
> This comment also applies for the same change for 'ipv4-address'.
> 
> 
> Thoughts and comments on these two issues are welcome.
> 
> Regards,
> Rob

-- 
Jürgen Schönwälder              Constructor University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://constructor.university/>