Re: [netmod] question regarding IPv6 address format / canonical

Ladislav Lhotka <lhotka@nic.cz> Fri, 07 December 2018 08:46 UTC

Return-Path: <lhotka@nic.cz>
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 458E312875B for <netmod@ietfa.amsl.com>; Fri, 7 Dec 2018 00:46:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7
X-Spam-Level:
X-Spam-Status: No, score=-7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nic.cz
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 vOobAKJob5yc for <netmod@ietfa.amsl.com>; Fri, 7 Dec 2018 00:46:33 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (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 8ECB5124BF6 for <netmod@ietf.org>; Fri, 7 Dec 2018 00:46:33 -0800 (PST)
Received: from birdie (unknown [IPv6:2001:1488:fffe:6:1f99:257b:62cc:c0d5]) by mail.nic.cz (Postfix) with ESMTPSA id CF16A62679 for <netmod@ietf.org>; Fri, 7 Dec 2018 09:46:31 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1544172391; bh=G6ZOMnvJgi3DGmcLhxh8QqsimvCLOPGXzaOOFptCJEI=; h=From:To:Date; b=VMzXwNtGQzLuMtwj0Saydex/qXHckOIkaWID/+Gs23sfngN20/Jwe4QxRh1Azqh8Q H5pa7806JeUlZixNqM4fzjU4hZTfK7ZonBGcTpgBNDCHERoGAbJ1jveXT3rVS2VTvC 8kf+PgD9S4wAtm9vexBblUvfABIyluxm5KDJWYdw=
Message-ID: <5ea8671bd7642bb39732dd60d3077c5642f435a5.camel@nic.cz>
From: Ladislav Lhotka <lhotka@nic.cz>
To: netmod@ietf.org
Date: Fri, 07 Dec 2018 09:46:31 +0100
In-Reply-To: <alpine.DEB.2.20.1812070913070.8891@uplift.swm.pp.se>
References: <alpine.DEB.2.20.1812070913070.8891@uplift.swm.pp.se>
Organization: CZ.NIC
Content-Type: text/plain; charset="UTF-8"
User-Agent: Evolution 3.30.2
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: clamav-milter 0.99.2 at mail
X-Virus-Status: Clean
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/yxUcKNx4iWbBAaJoj4pTucPHb2g>
Subject: Re: [netmod] question regarding IPv6 address format / canonical
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
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, 07 Dec 2018 08:46:36 -0000

Hi Mikael,

On Fri, 2018-12-07 at 09:20 +0100, Mikael Abrahamsson wrote:
> Hi,
> 
> we've had an interesting interop problem, and we don't know if this is a 
> client, server, or just interop problem. However, I thought I'd bring it 
> to the attention here.
> 
> The server produced an output that was in the format of:
> 
> 2a00:db8:1:2:3::5:0

Correct - this is the canonical value.

> 
> When the client then asked for information about this object it used:
> 
> 2a00:db8:1:2:3:0:5:0
> 
> The netconf server then returned no answer, because it didn't consider 
> these to be the same (string match).

This is a bug in server implementation.

> 
> I have included what I think is relevant text below, it seems the client 
> reformatted the address into canonical format. However, the description 
> below seems to indicate that all those IPv6 types are ok. If the server 
> must use canonical format, is there a MUST somewhere that says so?
> 
> What does it mean that something is a "canonical format"?

It is the value that the server (conceptually) uses internally. See sec. 9.1 in
RFC 7950.

Lada

> 
> https://tools.ietf.org/html/rfc6021
> 
> typedef ipv6-address {
>       type string {
> ....
>       }
>       description
>        "The ipv6-address type represents an IPv6 address in full,
>         mixed, shortened, and shortened-mixed notation.  The IPv6
>         address may include a zone index, separated by a % sign.
>         The zone index is used to disambiguate identical address
>         values.  For link-local addresses, the zone index will
>         typically be the interface index number or the name of an
>         interface.  If the zone index is not present, the default
>         zone of the device will be used.
> 
>         The canonical format of IPv6 addresses uses the compressed
>         format described in RFC 4291, Section 2.2, item 2 with the
>         following additional rules: the :: substitution must be
>         applied to the longest sequence of all-zero 16-bit chunks
>         in an IPv6 address.  If there is a tie, the first sequence
>         of all-zero 16-bit chunks is replaced by ::.  Single
>         all-zero 16-bit chunks are not compressed.  The canonical
>         format uses lowercase characters and leading zeros are
>         not allowed.  The canonical format for the zone index is
>         the numerical format as described in RFC 4007, Section
>         11.2.";
>       reference
>        "RFC 4291: IP Version 6 Addressing Architecture
>         RFC 4007: IPv6 Scoped Address Architecture
>         RFC 5952: A Recommendation for IPv6 Address Text Representation";
>     }
> 
> 
-- 
Ladislav Lhotka
Head, CZ.NIC Labs
PGP Key ID: 0xB8F92B08A9F76C67