Re: [v6ops] Stateful SLAAC (draft-ietf-v6ops-unique-ipv6-prefix-per-host)

Lorenzo Colitti <lorenzo@google.com> Thu, 09 November 2017 02:58 UTC

Return-Path: <lorenzo@google.com>
X-Original-To: v6ops@ietfa.amsl.com
Delivered-To: v6ops@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 42B4C129B16 for <v6ops@ietfa.amsl.com>; Wed, 8 Nov 2017 18:58:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 QtK4qEGN_HCq for <v6ops@ietfa.amsl.com>; Wed, 8 Nov 2017 18:58:37 -0800 (PST)
Received: from mail-it0-x229.google.com (mail-it0-x229.google.com [IPv6:2607:f8b0:4001:c0b::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 97CE7129AA8 for <v6ops@ietf.org>; Wed, 8 Nov 2017 18:58:34 -0800 (PST)
Received: by mail-it0-x229.google.com with SMTP id 72so9445931itl.5 for <v6ops@ietf.org>; Wed, 08 Nov 2017 18:58:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=mLMKWIwUrHFcKTmKNKiwljf5/2STafD2ozRAOQZspvA=; b=F4LSPEHYkv0TuJEvPnhQhm1bonUNPr+2a0mAe9qlYjywaa7E+cF2YvzdS4b8FMNd7h DbIH7hprq6Lo+9HoHbqkGOKbwEBM7C7ilIBMJH4FoHv2XxBuiqtNxSOR4Qe4xDppj9h7 kcznn5se7cFbKrj3BoNz4s9e4Jyw15HH8Z+lzJd/MJmuQkwt3pF/HtAb2X2eccp21FRS lYyotesfsHqwNYZUxDBkOqVUUETOyUT2C3wkfdmIclgkPJvX5w3vFDF2DT7YWwqPss0O k6+qMuTv5MRDSAhsOiCBpKx5CgMXD25VvZR+KZtHVYvnXK1KqWhTRQVy/Y0kxg0XhhyI 87jQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=mLMKWIwUrHFcKTmKNKiwljf5/2STafD2ozRAOQZspvA=; b=psvKmrqlru5W5tHPE0dVSdZpiLDt6ltCHmMQ+QzAs0i8ucy0PExax4ZyGchLnTUNm7 n/YGBAdfewv4g8cI0ONdDe9GFpARA0SzDkDc5zTi2zfL8AJXF1m4Zz7OIMxy56fuLFrn zS2SFZK55kFLs0AuKvCb2rpy7zzLYm7dWLu281D+9JNybrJzlZkC9T6iwyME1Q+XBKdO nzv2BMTenMtcv4NziUSei1BZ7rOLYUZR3twcHi8o/YijLyVBAnNWX93BRMbgo1cR4JAG bTn6KACUFiNdXqxvZt+jcbyPVU4p98IXBfKjab2AZ5cwqvqddmU0m7gYfu6yBDCJYMbY XEdg==
X-Gm-Message-State: AJaThX4BS0elgU5NoIz8nXj04kea69d9lTh9L+6sv51auhe+nqdG+4mx sBQH/CgzrdEncnT+nM92ioHqCAZoM9+KpdjyNWe0zw==
X-Google-Smtp-Source: ABhQp+TOVJ1qA/lhlyCmwjwm8qAy3XOHEhbxP2QYZWG7LgzeGN8MEIcsGJ1xD3pSLzhMhtVf12GVT26EGCiWwm3dmIo=
X-Received: by 10.36.70.76 with SMTP id j73mr3563244itb.32.1510196313447; Wed, 08 Nov 2017 18:58:33 -0800 (PST)
MIME-Version: 1.0
Received: by 10.107.82.19 with HTTP; Wed, 8 Nov 2017 18:58:12 -0800 (PST)
In-Reply-To: <be9724f5-2ff5-d90c-2749-ecae2c628b78@si6networks.com>
References: <be9724f5-2ff5-d90c-2749-ecae2c628b78@si6networks.com>
From: Lorenzo Colitti <lorenzo@google.com>
Date: Thu, 09 Nov 2017 11:58:12 +0900
Message-ID: <CAKD1Yr0_a2Qm8U4oK+BQU57DeDUD9i-o_+G+YhnH4pVXRxmxxQ@mail.gmail.com>
To: Fernando Gont <fgont@si6networks.com>
Cc: IPv6 Operations <v6ops@ietf.org>, "6man-ads@tools.ietf.org" <6man-ads@ietf.org>, "v6ops-ads@ietf.org" <v6ops-ads@ietf.org>, "6man@ietf.org" <6man@ietf.org>, draft-ietf-v6ops-unique-ipv6-prefix-per-host@tools.ietf.org
Content-Type: multipart/alternative; boundary="001a1144b0eccea886055d83fa1e"
Archived-At: <https://mailarchive.ietf.org/arch/msg/v6ops/jtn911Uh1Ec3AwImS706tHTwyx8>
Subject: Re: [v6ops] Stateful SLAAC (draft-ietf-v6ops-unique-ipv6-prefix-per-host)
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: v6ops discussion list <v6ops.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/v6ops>, <mailto:v6ops-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/v6ops/>
List-Post: <mailto:v6ops@ietf.org>
List-Help: <mailto:v6ops-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/v6ops>, <mailto:v6ops-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Nov 2017 02:58:39 -0000

On Tue, Nov 7, 2017 at 6:13 AM, Fernando Gont <fgont@si6networks.com> wrote:

> While reviewing this document a few days ago, I found that Section 4
> (page 5) contains what is a protocol spec, rather than an operational
> BCP. It contains rules regarding how to set the link-layer address (to a
> unicast address) for IPv6 multicasted RAs, and how a SLAAC router should
> now remember which prefix has been "leased" to which node -- something
> that seems to be way outside of the v6ops charter, and that should have
> been done in 6man, instead.
>

I don't see how this is a protocol change. Sending RAs unicast is already
allowed by RFC 4861, so this is just an operational practice.

Looking at diffs, it seems this additional text was incorporated very
> recently, in version -09 of the I-D, published in mid September
> (<https://tools.ietf.org/rfcdiff?url2=draft-ietf-v6ops-
> unique-ipv6-prefix-per-host-09.txt>).
> It seems to be that this change is way beyond what the authors
> originally proposed
>

The additional text did not actually change this practice at all. It simply
clarified what has always been a fundamental premise of this operational
practice: if you want to give each host its own prefix, you need to ensure
that the RA with that prefix is only received by that host.

1) The protocol spec specified in this document requires the SLAAC
> router to keep state of the "leased" prefixes -- what seems a major
> change to SLAAC, which now would be kind of as stateful as DHCPv6.
>

This is a bizarre claim. The first-hop router must always have fully
up-to-date state on all the prefixes it is sending RAs for, otherwise it
cannot fulfill its fundamental purpose of forwarding traffic to those
prefixes. The word "stateless" in SLAAC applies to addresses configured to
the host, not how routers route traffic.

2) There are scenarios in which multiple nodes might receive the same
> packet -- say a NIC let's the packet through because it is in
> promiscuous mode -- wich could possibly lead to two nodes configuring
> the same prefix.
>

Why do you say promiscuous mode is a problem? Even in promiscuous mode,
network stacks already understand which packets are being send to the host
network stack and which are not. For example, in the linux networking
stack, well before the packet ever gets to the ICMPv6 protocol handlers
that would process incoming RAs, ipv6_rcv does:

if (skb->pkt_type == PACKET_OTHERHOST) {
kfree_skb(skb);
return NET_RX_DROP;
}

3) What happens if the SLAAC router crashes and reboots, loosing state
> of the "leased" prefixes?
>

You seem to be assuming that the router does not store the prefixes in
stable storage. It's certainly the case that if you want this scheme to
work across router crashes, then you need to ensure that the prefixes are
stored somewhere. That sort of seems self-evident, but we could add it to
the text.

4) How are prefixes selected? And, what's the minimum size of the pool
> of prefixes for the selection algorithm not to break due two "prefix
> collisions"? Does the selection algorithm have any specific properties?
>

I see no reason why this should be in scope for this document.