Re: [v6ops] new draft: draft-colitti-v6ops-host-addr-availability

Ray Hunter <> Tue, 07 July 2015 12:49 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id EDCED1A01CB for <>; Tue, 7 Jul 2015 05:49:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -0.51
X-Spam-Status: No, score=-0.51 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id BJwZUfStVrCL for <>; Tue, 7 Jul 2015 05:49:20 -0700 (PDT)
Received: from ( [IPv6:2001:470:1f15:62e::2]) by (Postfix) with ESMTP id 21A7A1A01AA for <>; Tue, 7 Jul 2015 05:49:20 -0700 (PDT)
Received: from localhost (localhost []) by (Postfix) with ESMTP id 48E7F400E1; Tue, 7 Jul 2015 14:49:19 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id yVTGOOwOyq_P; Tue, 7 Jul 2015 14:49:17 +0200 (CEST)
Received: from Rays-iMac.local (unknown [IPv6:2001:470:1f15:73a:483:f00c:db00:800]) (Authenticated sender: by (Postfix) with ESMTPSA id DCC0640093; Tue, 7 Jul 2015 14:49:16 +0200 (CEST)
Message-ID: <>
Date: Tue, 07 Jul 2015 14:49:15 +0200
From: Ray Hunter <>
User-Agent: Postbox 3.0.11 (Macintosh/20140602)
MIME-Version: 1.0
To: Lorenzo Colitti <>
References: <> <> <> <>
In-Reply-To: <>
Content-Type: multipart/alternative; boundary="------------070309070607050005050707"
Archived-At: <>
Cc: "" <>, "" <>
Subject: Re: [v6ops] new draft: draft-colitti-v6ops-host-addr-availability
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: v6ops discussion list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 07 Jul 2015 12:49:23 -0000

Lorenzo Colitti wrote:
> On Tue, Jul 7, 2015 at 9:02 AM, Fred Baker (fred) < 
> <>> wrote:
>     The statement that I don't see in the document, which would help
>     me personally, is a problem statement. I would guess that the
>     problem statement is "we think some networks are limiting host
>     interfaces to a single IPv6 address." I'd want a little more
>     detail, but I'll bet that's the crux of it.
> Not necessarily "are limiting" today, but "will limit" in the future.
> Suppose that all operating systems of interest to a given network 
> support DHCPv6 and it is thus possible to run a network without SLAAC 
> and without IPv4 without denying service to substantial percentages of 
> users.
> Let's consider what would happen in such a DHCPv6-only network. How 
> many addresses would be available to each host? Because DHCPv6 
> requires an explicit request to the network before an address can be 
> used, the answer is, by definition, "as many as the network 
> administrators decide to make available".
> In some of these networks, the "as many as the network administrators 
> decided to make available" may equate to just one. There could be lots 
> of reasons for this: technical reasons such as "our IPAM and logging 
> systems support only one address per host and it's tied into our legal 
> intercept system so we can only give out one address per host", "we 
> only have enough TCAM entries for one address per host", "one address 
> per host is what we do in IPv4, and we want to be consistent with that".
> If that sounds unreasonable, now consider what would happen in a hotel 
> network that charges $5 per device. How many addresses would be 
> available to hosts on such a network? At best, one for every $5 paid. 
> More likely, if the billing system does not support more than one IPv6 
> address (why would it?), the answer would become "one per MAC address".
> I hope we agree that such networks provide suboptimal service, and 
> that there are a number of things that users would like to do that 
> require either the availability of more than one IPv6 address.
> If we are able to agree on that, then it is a useful statement to 
> make, for two reasons:
> 1. The network administrators might listen to the statement.
> 2. Client and server implementations can implement network 
> configuration protocols such as DHCPv6 in a way that does not lead to 
> this suboptimal scenario.
> Cheers,
> Lorenzo

If I might add some comment to the "problem statement"

I'd like apps and users to be able to enjoy privacy from the "bad guys", 
and also be shielded from general attack and casual scans.

However, I'd also like the "good guys" to be able to track security 
relationships at some abstract level for audit and security purposes.

IMVHO That's still very much an area of "work to be completed" and is 
also the main reason why network operators want to limit the addresses 
in use (rather than the $5 per address reason cited).

As an example, inbound sessions can be clearly directed to a particular 
stable/well known destination address e.g. using DNS. And application 
daemons can generally be configured to listen only on particular 
addresses. But has anyone tried to force apps to use a particular source 
address as a source for related sessions, or "mirror at L7" outbound 
sessions to use the same source address as the destination address of 
the inbound message?

In OSI speak that's the session layer, and we don't really have one.

So the problem isn't just a matter of supporting multiple addresses at 
the network adapter layer; it's a matter of how those addresses are 
bound to apps, and how/when they are selected.

As one example, I recently came across an app that bound quite happily 
to a particular address on a VM adapter for inbound sessions/messages, 
but defaulted to using the first address configured on the underlying VM 
for all outbound sessions (rendering any stateful firewall pretty much 
useless, because the 1st underlying address was at the mercy of the 
cloud operator, who could shift load around between physical machines at 

As another example, I've also come across plenty of firewalls or proxies 
that use NTLM or some other L7 protocol to identify a "user", but are 
then stuck to IP authentication for further follow up sessions, because 
NTLM or equivalent mechanism is either too slow, or not supported on 
that particular app.

You also have the "https first" problem. In some cases/countries it is 
illegal to intercept/break https encryption (e.g. using fake certs). So 
if a user first connects to a proxy for a site that uses https, there's 
no way of authenticating them, and they are blocked until they use a 
standard http session (to another site).

In short: Is there any intention to include a shim (containing some sort 
of nonce) to allow (legitimate) tracking and authentication (within an AS)?
equivalent of http cookie at the network layer?

That could even be stripped when leaving an AS/site boundary to 
alleviate privacy concerns.

Or at least some more clarification on socket binding?

I fear that this isn't as trivial a problem as the draft seems to suggest.