Re: Objection to draft-ietf-6man-rfc4291bis-07.txt

Tore Anderson <> Thu, 02 March 2017 14:36 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 2F38C129493 for <>; Thu, 2 Mar 2017 06:36:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id kUkAZytwSOPX for <>; Thu, 2 Mar 2017 06:36:15 -0800 (PST)
Received: from ( [IPv6:2a02:c0:1001:100::145]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 4D5901294E8 for <>; Thu, 2 Mar 2017 06:36:14 -0800 (PST)
Received: from [2a02:fe0:c420:6ae::c68] (port=42034 helo=envy) by with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <>) id 1cjRpz-00015s-QR; Thu, 02 Mar 2017 15:36:11 +0100
Date: Thu, 2 Mar 2017 15:36:11 +0100
From: Tore Anderson <>
To: Lorenzo Colitti <>
Subject: Re: Objection to draft-ietf-6man-rfc4291bis-07.txt
Message-ID: <20170302153611.36506f85@envy>
In-Reply-To: <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-redhat-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <>
Cc: james woodyatt <>, 6man WG <>
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 02 Mar 2017 14:36:17 -0000

* Lorenzo Colitti

> On Thu, Mar 2, 2017 at 8:11 PM, Tore Anderson <> wrote:
> > > So really, you can't express this type of configuration using
> > > only an IPv6 address and a prefix length, because they don't
> > > provide enough information to do that. "2001:db8:0:c0:2:100::/80"
> > > by itself is not enough: you need one more piece of information,
> > > which is the length of the NAT64 prefix.
> >
> > I'm not exactly sure what you're saying here? RFC7915 does currently
> > work, and hosts participating in a network using RFC7915 do not
> > need to know the length of the translation prefix.
> Oh, I see. It works if you ensure that all the hosts and translators
> agree on how to calculate the suffix,

Yes, apart from the fact that the hosts usually don't need to
«calculate» anything or even have any awareness of the translation
taking place:

For outbound flows from a host with an IPv4-translatable IPv6 address
to the IPv4 internet, a DNS64 recursor would typically take care of
that calcuation. This works exactly the same as if you're using
Stateful NAT64 instead.

For inbound flows to such a host it only has to respond normally to the
source address in the incoming IPv6 request packet - which may or may
not be an IPv4-embedded IPv6 address. Again, this works same as with
Stateful NAT64 (assuming the NAT64 device allows inbound flows from the
IPv4 network in the first place, e.g., using static BIB entries).

> and no two hosts have IPv6 addresses that differ only in the suffix.
> IPv6 addresses that don't have this property experience
> unidirectional connectivity to IPv4, and can cause packets to be sent
> by third parties to the host that has the correct suffix. Fair enough.

Indeed, if you arbitrarily start setting the bits RFC6052 says should be
all 0 you will have successfully shot yourself in the foot. (Not that I
believe this is relevant to the discussion at hand.)

> > Well, the point is that in order to ensure compatibility with SIIT
> > such an «exception» would need to _always_ apply, and then it's not
> > really much of an exception anymore.
> How about an exception for IPv6-translatable addresses, then? I don't
> think it's essential that the host know that the addresses are
> IPv6-translatable.

Exactly, you'd need an exception for IPv4-translatable IPv6 addresses.

But if you're coding up an host OS IPv6 stack you can't differentiate
between IPv4-translatable IPv6 addresses and «normal» IPv6 addresses.
After all there's no flag or property that tells the host stack that a
given IPv6 address is IPv4-translatable or not.

An OS/IPv6 stack implementer therefore has no choice but to make this
«exception» apply to *all* IPv6 addresses, allowing addresses to be
configured with arbitrary-length IIDs, thus making the exception the