In consideration of I-D.templin-6man-rio-redirect

james woodyatt <jhw@google.com> Tue, 18 July 2017 21:12 UTC

Return-Path: <jhw@google.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 CEAC3127B73 for <ipv6@ietfa.amsl.com>; Tue, 18 Jul 2017 14:12:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 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_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham 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 eyp5Xh6jUJGA for <ipv6@ietfa.amsl.com>; Tue, 18 Jul 2017 14:12:25 -0700 (PDT)
Received: from mail-wr0-x22d.google.com (mail-wr0-x22d.google.com [IPv6:2a00:1450:400c:c0c::22d]) (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 E8890126CD6 for <ipv6@ietf.org>; Tue, 18 Jul 2017 14:12:24 -0700 (PDT)
Received: by mail-wr0-x22d.google.com with SMTP id y43so46740484wrd.3 for <ipv6@ietf.org>; Tue, 18 Jul 2017 14:12:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:mime-version:subject:message-id:date:to; bh=zAR0TsW3o28TYF5KkJprTr3WaYZisfJZpUn0jVnLfFA=; b=Q2UdBn/KlCkmzhQDhbSQrFZKTTA58op0CnSSobmPZbdMFQeSil3qWuKCJNNBL5jCkZ r/FYwxXodXE16cPTLHy7UUXHrDC51ys1QS3AU37wfBTgMtSMb4l02IlZPMolEqlveNVG pfTNkgCuCiR3yDL/1FZdgPN+mRpVYKHG1rKGRLOkQZyOqhheAIyePBksfzIjyRHlBxl2 VeWECCgcCA+uCp2OYVkAjuoq+x3LU975NDeiRHRm7nQ/xzuZNGCya0omB0sEcYwIGwYB 1SI4c71YvF3DMdeSr1JrG2jbm7xqdfwPfi2cuLwdI5p3YBF48TRxs8b5k2u97zc6KcbR Bh6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:message-id:date:to; bh=zAR0TsW3o28TYF5KkJprTr3WaYZisfJZpUn0jVnLfFA=; b=dM5yLIq4d6oQ+mdSPdCAaLdVdclw3Wqpn6UXTlvgUQEo6bctB2sxWXrGmzV738/xm+ XIVgNH+pZCrypqaXWo0uliPODhs911dRW4KNX8w54RrjI6+RWbUKaGL+u9nh5QbREwcu OiCPP++yNx7qa0VolBquI23GDrqtmKzn+mR2/J+jKrce0yRpoUutfSLywxNeIrovB097 n7fQyqb95IzkJ62wCoxLNmp8nHDVQ6dAw2CeKbe/2UXmQje8h1eFV/UGBmjEaDMGSemx 87sx0kdR416Ec1/l144FgZL53NApXLXOmsxwHtxoiV2ZSrDjLoG6xOZu1qPxUZqyeuFP Xrhw==
X-Gm-Message-State: AIVw113g53oprOS80EtEqP6UYcEm21/31diIVasS89mIH3ECOLSpXyUI OfVwXs1eo8jgQyW+jZ5Jbw==
X-Received: by 10.28.180.70 with SMTP id d67mr3186270wmf.121.1500412342964; Tue, 18 Jul 2017 14:12:22 -0700 (PDT)
Received: from ?IPv6:2001:67c:1232:144:ecdf:ba71:7ab0:a322? ([2001:67c:1232:144:ecdf:ba71:7ab0:a322]) by smtp.gmail.com with ESMTPSA id 24sm4185279wrw.0.2017.07.18.14.12.22 for <ipv6@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 18 Jul 2017 14:12:22 -0700 (PDT)
From: james woodyatt <jhw@google.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_0571F7F9-DD35-43C5-B413-07FA90795062"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: In consideration of I-D.templin-6man-rio-redirect
Message-Id: <2C483555-4761-4149-B00D-DAA04CEE13E5@google.com>
Date: Tue, 18 Jul 2017 23:12:21 +0200
To: 6MAN Working Group <ipv6@ietf.org>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/0xDvgc7TokSiHxRywcR-dqnG9aw>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.22
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: Tue, 18 Jul 2017 21:12:28 -0000

Dear 6MAN,

We exhausted our available time discussing <https://tools.ietf.org/html/draft-templin-6man-rio-redirect <https://tools.ietf.org/html/draft-templin-6man-rio-redirect>> in the session yesterday, and since this draft seems to both Fred and me to be ready for working group adoption, I’d like to prompt further discussion on the list toward that end. Some participants would like further clarifications about the reasoning behind the technical choices we made in this draft, and I hope we can do that here on the list. I’m going to use a Q&A format to present various paraphrased versions of the questions we’ve noted in talking without other participants, and try to provide more satisfying answers here.

Question: What is this draft *really* about? I’m just all confused about its basic problem statement.

Answer: Most popular host IPv6 implementations, e.g. Linux, Darwin, Windows, et cetera, have host route tables capable of representing routes more specific than a simple default route, but RFC 4191 hasn’t been widely adopted in default configurations— so, the "Type C” hosts it defines, which process RIO options in RA messages, are not commonly deployed in general purpose hosts. I mean, yes, you can turn it on with a sysctl variable or some such advanced configuration parameter, but out of the box? No, it’s not enabled. This draft is *really* all about revising RFC 4191— in a completely backward compatible way— to make automatically and dynamically updating host route tables with information from the network more appropriate for widespread deployment in general purpose hosts. In other words, we hope Linux, FreeBSD, Windows and the like will adopt this, and turn it on by default out of the box.

Question: So why isn’t RFC 4191 good enough as it is? Why do we need to revise it?

Answer: One reason host implementations are not Type C in default configurations is the concern about “rogue advertisers” poisoning host route tables then using that as a platform to mount attacks on the security associations in various kinds of cryptographic protocols. The perception (arguably a misperception, but let’s leave that aside) is that it’s not always safe in general purpose hosts to process RIO options in RA messages. Our draft introduces new features to the existing protocol to narrow the attack surface on hosts that process RIO options so that simple RA guards can be deployed on links to block rogue advertisers and hosts will still optimize transmission for sending to the best router for specific destinations.

Question: Why even do this with ICMPv6 neighbor discovery at all? Couldn’t you just provision host route tables with stateful DHCPv6 options?

Answer: That’s an *excellent* question, because it illustrates the situation very well! The simple answer is “for all the same reasons we don’t configure hosts with Default Router addresses using DHCPv6,” while the complete answer is that host routing tables often need to be dynamically updated in response to dynamic routing protocol events, and that would mean a tight coupling between the DHCPv6 server and the dynamic routing protocol agent so that DHCPv6 Reconfigure messages can be sent to prompt hosts to make Information-request messages for route table updates in a timely manner. And there is the whole fate-sharing thing. Plus, a couple other points: a) the ICMPv6 neighbor and router discovery protocols are the natural place in the IPv6 architecture for doing this stuff; and b) it has some attractive qualities in typical host implementations, which handle ICMPv6 entirely inside the kernel, whereas DHCPv6 and various dynamic routing protocols are usually implemented as daemons.

Question: In the draft, Figure 1: "Classical Redirection Scenario” is confusing. Is the Target a router too? What kind of node is the Source?

Answer: The draft uses Source and Target here because it’s talking about the names of the fields in the ND Redirect packet where the IPv6 address of the relevant interface on the corresponding nodes shown in the diagram. The node labeled Target is a gateway— with one interface on the link with the Router (which sends the ND Redirect to Source for Target), and another interface on the link with the hosts H1, H2, H3, et cetera. The gateway need not be a dynamic router, i.e. a gateway that uses a routing protocol like RIP, OSPF, IS-IS or Babel. It could be a simple gateway that obtains its prefix delegation from Router with DHCPv6-PD, and it’s an important point that the Source that processes RIO elements doesn’t have any need to know how the gateway obtained the prefix to which it forwards packets, or how the routing domain is controlled and managed. In the simple case, the Source node is just a host, and it neither needs nor “wants” to participate in the dynamic routing protocol used by the Router and the Target nodes.

Question: Why are you using NS/NA for the RIO confirmation lockstep? Why not use RS/RA instead?

Answer: In fact, the draft has a whole section about that, §4.2.6 “Why NS/NA?” and paraphrasing here: mainly because, to send RA messages entails delay and rate limiting that do not apply when sending NA messages. Also, RA messages are typically multicast, which is less reliable on many wireless link types, but these interactions are better done with unicast from Target directly to Source without any delays. Finally, if simple RA guards are deployed without whitelisting all the potential targets that may receive DHCPv6-PD delegations, then those RA messages will be filtered out and the system won’t work. Better to use NS/NA interchanges here, and keep the system simple.

Question: Okay, this makes a lot more sense now that you’ve explained things more clearly! Can you update the draft with all this?

Answer: Yes! Let’s adopt the draft as a working group item, then we can debate the best way to clarify the text so that it conveys all this as clearly as possible! Can we please adopt the draft as a working group item? That would be excellent. Let’s do that right away.


--james woodyatt <jhw@google.com <mailto:jhw@google.com>>