Re: RFC4941bis: consequences of many addresses for the network

Fernando Gont <fgont@si6networks.com> Thu, 23 January 2020 14:33 UTC

Return-Path: <fgont@si6networks.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4D03E1207FC for <ipv6@ietfa.amsl.com>; Thu, 23 Jan 2020 06:33:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 6zS-qYH1oPpl for <ipv6@ietfa.amsl.com>; Thu, 23 Jan 2020 06:32:58 -0800 (PST)
Received: from fgont.go6lab.si (fgont.go6lab.si [91.239.96.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 46340120133 for <ipv6@ietf.org>; Thu, 23 Jan 2020 06:32:58 -0800 (PST)
Received: from [192.168.100.103] (unknown [186.183.3.105]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by fgont.go6lab.si (Postfix) with ESMTPSA id 137F986325; Thu, 23 Jan 2020 15:32:51 +0100 (CET)
Subject: Re: RFC4941bis: consequences of many addresses for the network
To: otroan@employees.org
Cc: 6man WG <ipv6@ietf.org>
References: <03C832CE-7282-4320-BF1B-4CB7167FE6BE@employees.org> <e936078e-01f9-0254-a8d0-4095455154ac@si6networks.com> <D85412DF-4B03-4790-9E39-968D50ECF86B@employees.org>
From: Fernando Gont <fgont@si6networks.com>
Message-ID: <6410fa9a-d470-050d-fc7a-74f983c94860@si6networks.com>
Date: Thu, 23 Jan 2020 11:32:19 -0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1
MIME-Version: 1.0
In-Reply-To: <D85412DF-4B03-4790-9E39-968D50ECF86B@employees.org>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/CZgrkS0d7hA8BJzU-TRY--7zgLM>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 23 Jan 2020 14:33:00 -0000

On 23/1/20 11:11, otroan@employees.org wrote:
[....]
> 
>>> While reviewing RFC4941bis
>>> (https://tools.ietf.org/html/draft-ietf-6man-rfc4941bis) I think I
>>> found one gap.
>>> A discussion of the consequences of a host having many (active)
>>> addresses on the network.
>>> A 4941bis implementation following the defaults, would at the maximum
>>> use 8 active addresses. (Valid lifetime of one week and one new
>>> address per day.)
>>> Shorter regeneration intervals or other approaches like a new address
>>> per connection could lead to dramatic numbers.
>>
>> I guess we could add a small note to e.g. Section 4, along
>> the lines of:
>>
>> "Use of an extremely large number of IPv6 addresses (as would result if
>> an implementation were to override TEMP_PREFERRED_LIFETIME with a much
>> shorter value) may have negative implications on some network devices,
>> and/or may lead to traffic from the offending addresses being policed by
>> devices enforcing port security (e.g. SAVI [REF]). A discussion on
>> possible approaches to allow for unconstrained use of IPv6 addresses can
>> be found in [RFC7934]"
>>
>>
>> Note: RFC7934 is *Very* relevant to this discussion.
> 
> I don't think 7934 uses the words "unconstrained". There is always going to be a limit.

They do use "can address unlimited endpoints, subject to network 
limitations". That said, of course I agree with you in this respect.



> The network operator's response to this might 8273. In which case the privacy aspect changes quite a lot.

At the end of the day, you are always at the mercy of the network operator.




>>> If we use Ethernet as an example, each new address requires state in
>>> the network. In the ND cache in first-hop routers, and in SAVI
>>> binding tables in bridges. Given ND's security properties these
>>> tables must be policed by the network. A host with a very liberal
>>> address regeneration policy might be viewed as performing an attack.
>>
>> That's true, indeed. But isn't that sort of a design principle of SLAAC? -- i.e., kind of "anarchy" when it comes to host configuration?
> 
> Absolutely. Just that temporary addresses changes the equation quite a bit.
> A network might be willing to serve a small set of addresses to a host, but with temporary addresses there are really no limit.

I'd argue that that's a potential problem intrinsic to slaac, rather 
than temporary addresses.

Datapoint: I have some apps explicitly meant to circumvent security 
controls. RFC4941 is not enough, because address generation is bound to 
time (and OS implementations set a lower bound). So essentially I do 
one-address-per-application (configure the address, explicitly bind it 
when issuing connections, then remove it).



> If you do an address per transport connection, would you expect the network to serve that?
> And if it doesn't, how is the host supposed to detect it? An happy eyeballs approach?
> Right now that is completely unspecified in 4941bis (and sure it also was in 4941).
> Question is if we should (try to) fix that?

I think that at least a "warning note" on the topic would be desirable. 
That's one option. Another option might be to enforce an upper limit on 
the time regeneration frequency (although I'd expect that it would be 
virtually impossible to come up with an agreeable value)



>> SAVI with SLAAC is essentially telling nodes "do what you please", and then punishing nodes when they don't do what you *expect* or *wished*.
> 
> 
>>> SLAAC is also missing a mechanism to release an address. Which leads
>>> me to think that the address regeneration interval must not be
>>> shorter than the ND cache scavenger timeout (which in many networks
>>> is high to avoid cache churn and high level of address
>>> re-resolutions).
>>
>> Which probably begs the question as why we don't make DHCPv6 mandatory, and add fill the necessary gaps there, so that a network that is to be operated as a managed network can apply policy to hosts, as needed. (yes, I did mean what I've just said :-) )
>>
>> Put another way: SLAAC doesn't enforce any sort of policy on the network. Even attempts to *suggest* policy (e.g. draft-gont-6man-managing-slaac-policy) were shot down.
>>
>> We also published draft-gont-6man-address-usage-recommendations to discuss the topic in a more general way. The suggestion was to take it to TAPS, where it somehow vanished.
>>
>> So my personal conclusion is that one could certainly add a note like the one I suggested above. But other than that, I think further discussion of the topic belongs to a different document. -- We could revive draft-gont-6man-address-usage-recommendations if desired. -- in fact, it's kind of a shame that there hasn't been further work in that area.
> 
> For the purpose of 4941bis I would also be fine with a more ellaborate note expanding on the issues.

That sounds sensible. Unless I hear a specific text proposal beforehand, 
I will come back with suggested text later today.



> And I would also prefer that we suggested some strategies hosts can use to deal with this. There is already text in 4941bis regarding DAD. But the recommended behaviour when receiving DAD "rejects" seems a little harsh currently.

Wouldn't *this* be more of a slaac issue than a rfc4941bis one?

-- 
Fernando Gont
SI6 Networks
e-mail: fgont@si6networks.com
PGP Fingerprint: 6666 31C6 D484 63B2 8FB1 E3C4 AE25 0D55 1D4E 7492