[netmod] question regarding IPv6 address format / canonical

Mikael Abrahamsson <swmike@swm.pp.se> Fri, 07 December 2018 08:21 UTC

Return-Path: <swmike@swm.pp.se>
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 E00F112875B for <netmod@ietfa.amsl.com>; Fri, 7 Dec 2018 00:21:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.301
X-Spam-Level:
X-Spam-Status: No, score=-4.301 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_MED=-2.3, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=swm.pp.se
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 Zay6bjPD1VPC for <netmod@ietfa.amsl.com>; Fri, 7 Dec 2018 00:21:02 -0800 (PST)
Received: from uplift.swm.pp.se (ipv6.swm.pp.se [IPv6:2a00:801::f]) (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 54B5512426A for <netmod@ietf.org>; Fri, 7 Dec 2018 00:21:02 -0800 (PST)
Received: by uplift.swm.pp.se (Postfix, from userid 501) id E0ABAAF; Fri, 7 Dec 2018 09:20:59 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=swm.pp.se; s=mail; t=1544170859; bh=KMKO+V7JYdt5emjWaLHI8wF2hDrpl2At06dolBKAtmk=; h=Date:From:To:Subject:From; b=vMezcUpkcwwubUWZGqJjzFAbFGwJxm+Im2N4jjrt6v4abNiZR2RS0Wxx3QV0F1Yic BppeSaeEkumYNtp7ibWJJgChaC+YLJly1s+Oq0UIpSEnvmIlW+o43bORjY++JkKXYr +t2sd+6nZ7iJ7Q0TBKPZfzgycuj0NFYQIDHTBFAE=
Received: from localhost (localhost [127.0.0.1]) by uplift.swm.pp.se (Postfix) with ESMTP id DC98E9F for <netmod@ietf.org>; Fri, 7 Dec 2018 09:20:59 +0100 (CET)
Date: Fri, 07 Dec 2018 09:20:59 +0100
From: Mikael Abrahamsson <swmike@swm.pp.se>
To: netmod@ietf.org
Message-ID: <alpine.DEB.2.20.1812070913070.8891@uplift.swm.pp.se>
User-Agent: Alpine 2.20 (DEB 67 2015-01-07)
Organization: People's Front Against WWW
MIME-Version: 1.0
Content-Type: text/plain; format="flowed"; charset="US-ASCII"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/fQw1uf_LM8x7ubYLLhZKbRmwQ7w>
Subject: [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:21:05 -0000

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

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).

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"?

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";
    }


-- 
Mikael Abrahamsson    email: swmike@swm.pp.se