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

"Templin, Fred L" <Fred.L.Templin@boeing.com> Wed, 19 July 2017 08:50 UTC

Return-Path: <Fred.L.Templin@boeing.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 C1563131C21 for <ipv6@ietfa.amsl.com>; Wed, 19 Jul 2017 01:50:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.219
X-Spam-Level:
X-Spam-Status: No, score=-4.219 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, 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 VN6S-m5vQ6mT for <ipv6@ietfa.amsl.com>; Wed, 19 Jul 2017 01:50:41 -0700 (PDT)
Received: from phx-mbsout-01.mbs.boeing.net (phx-mbsout-01.mbs.boeing.net [130.76.184.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CC676131C3B for <ipv6@ietf.org>; Wed, 19 Jul 2017 01:50:40 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by phx-mbsout-01.mbs.boeing.net (8.14.4/8.14.4/DOWNSTREAM_MBSOUT) with SMTP id v6J8oeQp057263; Wed, 19 Jul 2017 01:50:40 -0700
Received: from XCH15-06-10.nw.nos.boeing.com (xch15-06-10.nw.nos.boeing.com [137.136.239.219]) by phx-mbsout-01.mbs.boeing.net (8.14.4/8.14.4/UPSTREAM_MBSOUT) with ESMTP id v6J8oaGm057251 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=FAIL); Wed, 19 Jul 2017 01:50:36 -0700
Received: from XCH15-06-08.nw.nos.boeing.com (2002:8988:eede::8988:eede) by XCH15-06-10.nw.nos.boeing.com (2002:8988:efdb::8988:efdb) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Wed, 19 Jul 2017 01:50:35 -0700
Received: from XCH15-06-08.nw.nos.boeing.com ([137.136.238.222]) by XCH15-06-08.nw.nos.boeing.com ([137.136.238.222]) with mapi id 15.00.1263.000; Wed, 19 Jul 2017 01:50:35 -0700
From: "Templin, Fred L" <Fred.L.Templin@boeing.com>
To: james woodyatt <jhw@google.com>, 6MAN Working Group <ipv6@ietf.org>
Subject: RE: In consideration of I-D.templin-6man-rio-redirect
Thread-Topic: In consideration of I-D.templin-6man-rio-redirect
Thread-Index: AQHTAAqYiPckzv4gME6Aj7m1B2sutqJa1WkA
Date: Wed, 19 Jul 2017 08:50:35 +0000
Message-ID: <4a50273fd30849c8836ebc1dda0076d3@XCH15-06-08.nw.nos.boeing.com>
References: <2C483555-4761-4149-B00D-DAA04CEE13E5@google.com>
In-Reply-To: <2C483555-4761-4149-B00D-DAA04CEE13E5@google.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [137.136.248.6]
Content-Type: multipart/alternative; boundary="_000_4a50273fd30849c8836ebc1dda0076d3XCH150608nwnosboeingcom_"
MIME-Version: 1.0
X-TM-AS-MML: disable
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/brBFzdyV0a9kimWax_tJ3wh0ss4>
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: Wed, 19 Jul 2017 08:50:44 -0000

Hi James,

To what you said very well in your message, I will add that this draft complements
the notion of giving a /64 to each host as has been discussed widely in recent list
messages. There needs to be some way for neighbors to discover the /64s of
peers on the link, and shipping the /64s around in RIOs in IPv6 ND messages is
IMHO the right way to go when running a dynamic routing protocol is impractical.

As to use cases, consider a large LAN with lots of hosts that have received /64s.
A specific example that comes to mind is the IETF conference SSIDs. So, I agree
that we should bring this in as a wg document so we can address these use cases.

Thanks - Fred

From: ipv6 [mailto:ipv6-bounces@ietf.org] On Behalf Of james woodyatt
Sent: Tuesday, July 18, 2017 2:12 PM
To: 6MAN Working Group <ipv6@ietf.org>
Subject: In consideration of I-D.templin-6man-rio-redirect

Dear 6MAN,

We exhausted our available time discussing <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>>