Re: [v6ops] Scope of Unique Local IPv6 Unicast Addresses (Fwd: New Version Notification for draft-gont-6man-ipv6-ula-scope-00.txt)

Brian E Carpenter <> Thu, 07 January 2021 02:51 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4B1343A1466; Wed, 6 Jan 2021 18:51:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.361
X-Spam-Status: No, score=-2.361 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, NICE_REPLY_A=-0.262, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Nk7zQNkHuFPd; Wed, 6 Jan 2021 18:51:30 -0800 (PST)
Received: from ( [IPv6:2607:f8b0:4864:20::532]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id F34E53A1290; Wed, 6 Jan 2021 18:51:29 -0800 (PST)
Received: by with SMTP id n10so3776321pgl.10; Wed, 06 Jan 2021 18:51:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=MjSqEhTYe1vxKIVIBvOA0nU2xqkroFuWVOMOrhqZrF8=; b=pfKxrkkGSrh6u54LS3Z56aA3ebPneo9lcaRcdFjLdSzczDGXrTajOe46nnVNSe/3VL YAcsFYS8Tdr3GzasBUbgwLu/3DAccNGDUfoCIGknLMoCGZxxCYJ9AOuklJspdtEqWa9x 6UPegYD6yMTGkI7uRZR048BWZcdTXmD8pO/Zx5J2c0hPERHb11wTVAHtHQeg3V0lc/Rk y+JmRtniROAwkGuV8pqUkjIyg6z2i7zu5YmvWm0fHbHxI4O6CXQruuOXGzcWZEhYigNZ QvUus4b7ud4/mMeSDNi4GNe+60iPsVkGfdEBgFAKRQ8qNtPm+J+XpCI/Za5yDvPR5+bt or4Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=MjSqEhTYe1vxKIVIBvOA0nU2xqkroFuWVOMOrhqZrF8=; b=XPnTgXp78gwEmaGLFT5jD2yiwTfEsSCD7XhjhNgJ3RkbMzrL6WfyGFHjRb0rY62qg6 Ykd1waAGdIfTl3i7EiduWRp+DIREiTuKRH+C3/rZMokxYqur30yG8t6/vlLpF/WZ1Rhu B5jsl9bJgT+KsT9o2+wgXqpO1MEeYXJSJD3PafpAkxPUfZ6IugyhCCURbR9dIjUPM5qw WMr1Fdi8QUTRoXuq3Z++mqiW4nKbfsEIn0J29/kLXX9Mu1o48SXdPlsOr2Uw3k8pJSmv LFH9x7WHuvxplWKTA41Nzdcy3GMNFrpQC4hf6he4QCCyAXZO9ZK6lpqKvqczyZfLQ9RF +xWA==
X-Gm-Message-State: AOAM532yaT+egs47YX592PrMCMORnZlWDaVumcDmY1754NIC1CFyJYp7 tl3vEileTR8vMXta4XkzNajC8O80uxAg3A==
X-Google-Smtp-Source: ABdhPJyURsbqfGBfI1Lxv4Iy0mxzcxiFO4J5qOgZiAq9FXzt9ELy/gWQwjX1twdd9pbYG770pac4cA==
X-Received: by 2002:a63:1863:: with SMTP id 35mr7710055pgy.191.1609987889112; Wed, 06 Jan 2021 18:51:29 -0800 (PST)
Received: from [] ([]) by with ESMTPSA id p16sm3381582pju.47.2021. (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Jan 2021 18:51:28 -0800 (PST)
To: Fernando Gont <>, Lorenzo Colitti <>, Mark Smith <>
Cc: IPv6 Operations <>, 6MAN <>
References: <> <> <> <> <> <>
From: Brian E Carpenter <>
Message-ID: <>
Date: Thu, 7 Jan 2021 15:51:23 +1300
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable
Archived-At: <>
Subject: Re: [v6ops] Scope of Unique Local IPv6 Unicast Addresses (Fwd: New Version Notification for draft-gont-6man-ipv6-ula-scope-00.txt)
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: v6ops discussion list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 07 Jan 2021 02:51:31 -0000

On 07-Jan-21 11:23, Fernando Gont wrote:
> On 6/1/21 18:30, Brian E Carpenter wrote:
>> Portmanteau reply to multiple messages:
>> On 06-Jan-21 20:07, Lorenzo Colitti wrote: ...
>>> So I guess I'm somewhere between 1) and 3). The specs are
>>> consistent but they fail to consider human behaviour, so they don't
>>> actually work in practice.
> [...]
>> The problem is largely theoretical, and educational for people who
>> train IPv4 users in IPv6 terminology and practices. As Fernando has
>> pointed out, the use of the word "global" is confusing for something
>> that has L for "local" in its name.
> There is indeed a terminology issue, which ends up making it complicated 
> to explain e.g. the concept of "scope" as a result.
>> On 07-Jan-21 01:17, Ted Lemon wrote: ...
>>> GUA: “valid everywhere on the internet scope” ULA: “not valid
>>> everywhere scope” LLA: “valid only on this link scope”
>> Friendly amendment:
>> GUA: valid everywhere ULA: Unique Limited-domain Address LLA: valid
>> only on this link
> Would certainly also work.
>> On 07-Jan-21 04:13, Philip Homburg wrote: ...
>>> Some things don't need fixing even if they are not 100% correct.
>> +1
> My take is that if the topics is confusing for us, we cannot expect it 
> to be any better for others.
>> On 07-Jan-21 05:26, Gert Doering wrote: ...
>>> Why should applications, or anything that is not an admin, care if
>>> an address is a ULA or a GUA?
>> It depends on what you mean by "application". I've written code that
>> explicitly prefers a ULA, and I could imagine a security spec saying
>> "prefer ULA". But anyway, it's not really a problem, is it? (It's
>> annoying to me that in Python, a ULA has .is_global == False, but I
>> managed to code round that error.)
> The question is: Is it an error?

According to the addressing architecture and the ULA definition, it's
an error. It's also a tricky one to fix, because who knows what running
code might depend on it?

A test for ULA-ness in Python, using only the address properties that the
ipaddress module already defines, is:

def is_ula(a):
    """Test for ULA"""
    return (a.is_private and not a.is_link_local
             and not a.is_loopback
             and not a.is_unspecified)

which also, not coincidentally, returns True for RFC1918 addresses.
(Of course you could equally well do a bit-mask test.)

> I've just checked the most "up to date" textbook that I have at hand on 
> IPv6. Page 335 has a subsection entitled "Global addresses versus ULAs".
> The discussion in the textbook is indeed fine.
> Could one actually make the case that e.g. Python's library should 
> change? If it did, it would be counter intuitive. It would match 
> RFC4193/4291, but not RFC4007, e.g. the textbook I've checked, and the 
> intuitive meaning of private/global.

That's of course exactly why the term "globally reachable" was added
by RFC8190. My objection to the Python library is not that it provides
the property .is_private, which is very clear, but that it asserts that
is False. Because according to the Proposed Standard RFCs,
ULAs are both private and global.

Unfortunately I don't think it's reasonable to ask for a non-backwards-
compatible change in the Python library. If you were maintaining such
a widely used library, would you want to break compatibility?
> FWIW, I don't think there's a problem with how ULAs work. But I do think 
> that the terminology problem does have ramifications.