Re: [v6ops] DHCPv6/SLAAC Make Hosts Confusing-//RE: new draft: draft-liu-bonica-v6ops-dhcpv6-slaac-problem

Mark ZZZ Smith <markzzzsmith@yahoo.com.au> Tue, 29 October 2013 08:47 UTC

Return-Path: <markzzzsmith@yahoo.com.au>
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 4324511E814E for <v6ops@ietfa.amsl.com>; Tue, 29 Oct 2013 01:47:31 -0700 (PDT)
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=[AWL=0.200, BAYES_00=-2.599, FROM_LOCAL_NOVOWEL=0.5]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HxsEEpu8js00 for <v6ops@ietfa.amsl.com>; Tue, 29 Oct 2013 01:47:26 -0700 (PDT)
Received: from nm45-vm1.bullet.mail.bf1.yahoo.com (nm45-vm1.bullet.mail.bf1.yahoo.com [216.109.115.60]) by ietfa.amsl.com (Postfix) with ESMTP id CBFE711E8146 for <v6ops@ietf.org>; Tue, 29 Oct 2013 01:47:24 -0700 (PDT)
Received: from [98.139.215.140] by nm45.bullet.mail.bf1.yahoo.com with NNFMP; 29 Oct 2013 08:47:24 -0000
Received: from [98.139.212.250] by tm11.bullet.mail.bf1.yahoo.com with NNFMP; 29 Oct 2013 08:47:23 -0000
Received: from [127.0.0.1] by omp1059.mail.bf1.yahoo.com with NNFMP; 29 Oct 2013 08:47:23 -0000
X-Yahoo-Newman-Property: ymail-3
X-Yahoo-Newman-Id: 934308.28677.bm@omp1059.mail.bf1.yahoo.com
Received: (qmail 56994 invoked by uid 60001); 29 Oct 2013 08:47:23 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com.au; s=s1024; t=1383036443; bh=/vfzMgNeSI3KYyQVGfnGlU7GgSepDOG1koA8iE7vliw=; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:References:Message-ID:Date:From:Reply-To:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=IVtWw5JiiSZ8BVC1NuHHDbisT/3x3h0kv+VtqlKOeFVksjjdaZWeTYjbjrATBW26ZM0fMIcO0jSUGyJDAOJrciL+AO/IxwO1vOmEuAZXw9VEzsTPho2Tr2Szq4IlGhyKkC8/KuVSD8BRiY1XFvhiTbIcz9ATjNQt3p2jWrp1yBM=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com.au; h=X-YMail-OSG:Received:X-Rocket-MIMEInfo:X-Mailer:References:Message-ID:Date:From:Reply-To:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=heIf+VI9g7i/7on9uWn2ZJnyzz3Ox+QQcVT2h/A47FEY8VkRqIywCB4HWVng0ksfD9rNItCiHLfMHiifNCHrsYyFZ0tgcrpHSrpUaIoRPdUvLdZB5otI5UFwq99Ds/wZSTKlzYNfi1sic0LVrFjLjVLMq5iCKUPJXwM5kCq0eTU=;
X-YMail-OSG: zFyWrsMVM1mfo_45er.zVNep5hQE4pkCNFBdgpgpio8ZMLD h7j35o6PC..fmilEEAxlfdd070EMS18qMYXoRUrw50vmFwdeg1HwUk5Cv6_k UmXvRz.qEEq0GJR1IVCqQ5ubgZO4FQJVpqdjYKueOPQBabJz4FKwO_oWCqBu qEhMsuphhTm2V2Dn6hB6i3ulAGDfVgmVQZJXxcCp0wQlgbLqAV..fVRwfnCE i5EigbUVjXHQxv6cg9vRsFyCmtMl2hymwAgA0vbzsT8Lpla_TxSoFjrXjEoB rYnecwPHz5PjDlCydEwM0AMZrN5MTrnjDo4A1_7srPoIXx6TR9rB3HAyDX6k _AXIJSHH5rTWQwhxQfIXTHpowepBpBwjK59n67d15aVkdqkuShXRH_3br7vR BRd3C4OUzIn1DOSl.ahdNgZa9i6HBx7v1myzlDDpxFInSKhzLRSPkOBp7lt4 oGVGpU3I5LeMn3U3junXlA4OvIoIgACB8LtypTYLSmI.A1v0xwV7uXW5U57R _wkxlt.2QD77H5q20XA4zU9oSI49WxuhTCbXcwoQN5bi_WL0ZBEh6kVrqFyl 6n7ImEvyPN5.v279d3Is7vCTmO_5SNEV.LiqlDBurNzjBIQ--
Received: from [150.101.221.237] by web142501.mail.bf1.yahoo.com via HTTP; Tue, 29 Oct 2013 01:47:23 PDT
X-Rocket-MIMEInfo: 002.001, SGksCgpBIGZldyBvdGhlciBwb2ludHM6CgotIFJvZ3VlIERIQ1B2NiBzZXJ2ZXJzIGFyZSBhbHNvIGEgcG90ZW50aWFsIGlzc3VlLCBzbyB0aGlzIHNvcnQgb2YgcHJvYmxlbSBpc24ndCBleGNsdXNpdmUgdG8gUkFzLsKgCgotIERIQ1B2NiB1c2VzIG11bHRpY2FzdCBmb3IgSW5mb3JtYXRpb24tUmVxdWVzdCBtZXNzYWdlcyBmb3Igc3RhdGVsZXNzIERIQ1B2NiBzZXJ2aWNlIGFuZCBTb2xpY2l0IG1lc3NhZ2VzIGZvciBzdGF0ZWZ1bCBESENQdjYgc2VydmljZSwgc28gYSBsaW5rIHN1ZmZlcmluZyBmcm9tIGUBMAEBAQE-
X-Mailer: YahooMailWebService/0.8.160.587
References: <CE8E8EC3.59F3A%victor@jvknet.com> <06601039-CAFD-49B0-918B-A8ACD51B978D@fugue.com> <alpine.OSX.2.00.1310281905440.11422@ayourtch-mac> <CAKD1Yr0qLd7syFizEUMa6DM2a2LY6Rv5GSFyoQAs4Pir6gcNkA@mail.gmail.com>
Message-ID: <1383036443.56704.YahooMailNeo@web142501.mail.bf1.yahoo.com>
Date: Tue, 29 Oct 2013 01:47:23 -0700
From: Mark ZZZ Smith <markzzzsmith@yahoo.com.au>
To: Lorenzo Colitti <lorenzo@google.com>, Andrew Yourtchenko <ayourtch@cisco.com>
In-Reply-To: <CAKD1Yr0qLd7syFizEUMa6DM2a2LY6Rv5GSFyoQAs4Pir6gcNkA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: "v6ops@ietf.org" <v6ops@ietf.org>, Dave Thaler <dthaler@microsoft.com>, Ted Lemon <mellon@fugue.com>, "Ole Troan (otroan)" <otroan@cisco.com>, "draft-liu-bonica-v6ops-dhcpv6-slaac-problem@tools.ietf.org" <draft-liu-bonica-v6ops-dhcpv6-slaac-problem@tools.ietf.org>
Subject: Re: [v6ops] DHCPv6/SLAAC Make Hosts Confusing-//RE: new draft: draft-liu-bonica-v6ops-dhcpv6-slaac-problem
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: Mark ZZZ Smith <markzzzsmith@yahoo.com.au>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 29 Oct 2013 08:47:31 -0000

Hi,

A few other points:

- Rogue DHCPv6 servers are also a potential issue, so this sort of problem isn't exclusive to RAs. 

- DHCPv6 uses multicast for Information-Request messages for stateless DHCPv6 service and Solicit messages for stateful DHCPv6 service, so a link suffering from excessive multicast traffic drops may also prevent DHCPv6 working reliably or quickly.

I'm a bit confused by "something that works well on the 10base2-type shared bus and even the today's wired ethernet, but looks quite miserable on the WiFi media without the ugly special tricks". My understanding is that Internet protocols of all types are to be designed with the assumption of the possibility of a low level of packet loss. If the packet loss is too high, then link-layer designers are advised to use link-layer reliability mechanisms, as per advised in RFC3819. I'm interested in details of the "ugly special tricks" if they're more than proprietary wifi link-layer multicast reliability mechanisms. 

General lack of Wifi multicast performance is the motive behind the following draft - replication and link-layer unicasting of unsolicited RAs could be used on Wifi to make them more reliable.

MLDv2 Procedures for Link-Layer Unicast Delivery of Multicast IPv6
http://tools.ietf.org/html/draft-smith-mldv2-link-unicast-00



- "While architecturally "pure", the reliability and timing of the routing resiliency provided by the RAs is far below those achieved by FHRP protocols which are used in today's networks predominantly." This seems to suggest that you can't run VRRP/HSRP if you're using RAs. I don't think they're mutually exclusive, as long as the RAs come from the virtual router link-local address, rather than the routers' physical interface link-local addresses.

Regards,
Mark.


>________________________________
> From: Lorenzo Colitti <lorenzo@google.com>
>To: Andrew Yourtchenko <ayourtch@cisco.com> 
>Cc: "draft-liu-bonica-v6ops-dhcpv6-slaac-problem@tools.ietf.org" <draft-liu-bonica-v6ops-dhcpv6-slaac-problem@tools.ietf.org>; "v6ops@ietf.org" <v6ops@ietf.org>; Ted Lemon <mellon@fugue.com>; Ole Troan (otroan) <otroan@cisco.com>; Dave Thaler <dthaler@microsoft.com> 
>Sent: Tuesday, 29 October 2013 3:53 PM
>Subject: Re: [v6ops] DHCPv6/SLAAC Make Hosts Confusing-//RE: new draft:    draft-liu-bonica-v6ops-dhcpv6-slaac-problem
> 
>
>
>Andrew, those are good points, though from the perspective of protocol design I think semantics and functionality are a bit more important than performance. Once you have the semantics right you can look at improving performance (e.g., via QoS, prioritization, queue isolation, etc. etc.), but if the semantics are wrong it's hard to fix that.
>
>
>So, semantics I think you forgot:
>
>
>1. DHCPv6 makes it very hard to update client information from the network side.
>
>
>You can use reconfigure, but that requires authentication (clients MUST discard reconfigure messages that aren't authenticated). I don't know if anyone actually implements authentication. Also, it requires that the server know the DUID of the client. How do you do this if the client has never talked to you before, (e.g., if you booted after the client)? You'd have to have all the DHCPv6 servers on link communicate with each other.
>
>Also, it's not clear to me how you would implement reconfigure in a stateless environment, since the server doesn't know which clients are still there and not all clients (none?) implement RFC 4242.
>
>
>For an example of why this is useful, consider a homenet. You have two routers on the same link that share state via a routing protocol. Router A is unplugged. Router B knows this and wants to tell the client "don't use router A as DNS server any more". How do you do this? Using an RA you can just send out a message with a lifetime of zero. How do you do it with DHCPv6?
>
>
>
>
>2. DHCPv6 doesn't support multiple sources of information.
>
>
>In particular, stateful DHCPv6 requires that the client choose one of the advertise messages it receives. The spec doesn't prevent it from starting a new transaction with a transaction ID, but I don't know what the original server would do if it received such a message. The RFC doesn't seem to specify this very well, if at all.
>
>
>
>
>3. You can do per-client configuration using RA as well.
>
>
>There's nothing preventing routers from replying to RS packets with unicast RAs, so per-client configuration is possible. There's also nothing stopping you from causing an RS to trigger a provisioning (e.g., radius) request to a server asking for configuration parameters for that client - for example, giving it its own VLAN and its own /64. (I've built networks that do this, so I know it works). So your "it's not possible to jump" assertion is not entirely true. It's true that RAs can't jump by themselves, but the information requests can.
>
>
>
>
>I'm also don't think the "multicast doesn't work in congested networks" argument is valid. In a network where multicast is so overloaded that it's completely broken, it's not just RAs that will fail. NSes will get dropped too; MDNS won't work; basically, the network is broken. That said, unicast RAs don't have this problem.
>
>
>I'd be happy to contribute to a draft documenting these issues. Andrew, were you going to start one?
>
>
>
>On Tue, Oct 29, 2013 at 4:17 AM, Andrew Yourtchenko <ayourtch@cisco.com> wrote:
>
>On Thu, 24 Oct 2013, Ted Lemon wrote:
>>
>>
>>Anyway, that's the rhetorical position I'm going to stake out for now. I'm curious to see if anybody can come up with a reason to disagree that doesn't simplify to either "I hate RA" or "I hate DHCP."
>>>
>>
I'll take a shot at outlining the differences as I see them between the two, and the factors that may influence the "I hate RA" or "I hate DHCP" reply in each particular case...
>>
>>1) Interworking with different L2 topologies
>>
>>RA is "server-initiated, send once, receive many, no confirmation" abstraction - something that works well on the 10base2-type shared bus and even the today's wired ethernet, but looks quite miserable on the WiFi media without the ugly special tricks (802.11 provides reliable delivery for unicast frames, and does not provide one for multicast frames, also the physical speeds are different and even the contention management and the speed/modulation can be different as well).
>>
>>DHCPv6 is "client-initiated, send once, receive once, confirmation" abstraction. This may be wasteful on the low-bandwidth links that provide bus topology, but maps extremely well onto scenarios like WiFi - as it allows to maintain somewhat familiar mode of operation to wired ethernet.
>>
>>This is where the p2p, acknowledged nature of DHCPv6 may be beneficial - on a crowded large-scale WiFi, without dirty tricks, you simply will not get the SLAAC working because the multicast RAs will get crunched by the interference.
>>
>>Alternatively, in a very mobile environment and the RFC-compliant router, multicast solicited RAs might make a significant portion of your traffic - which, due to a difference in modulation, etc. may eat way more bandwidth than if they were sent unicast.
>>
>>2) Acknowledged vs. unacknowledged
>>
>>DHCPv6 needs at least 2 packets. RA is just one packet.
>>
>>RA Plus: RA is quicker
>>
>>RA Minus: you have to take care that it is legitimate router and not your evil neighbor sending you the RAs you take the configuration from.
>>
>>DHCPv6 Plus: works well in the noisy/lossy environments
>>
>>DHCPv6 minus: takes at least 1 RTT to the server.
>>
>>
>>3) Client initiated vs. server initiated
>>
>>Despite of the division above, RA can be client-initiated, to some extent, with RS, and DHCPv6 can be server-initiated, to some extent, with "Reconfigure" messages.
>>
>>If we treat these as "nudge" messages, the behavior of the sending and receiving parties is similar - the "nudge" message causes the orderly protocol exchange to occur before the due time.
>>
>>The part that is different, though, is that RA, due to its "send once, receive many" nature, can aggregate the "nudge" messages, so intuitively seems best for a scenario with a very large number of the hosts, as it should have self-stabilizing properties, compared to DHCPv6.
>>
>>This "self-stabilizing" property intuitively seems to make RA safer to use, IFF it is used in purely "multicast" fashion.
>>However, refer to (1) for the interaction with the underlying media.
>>
>>4) Centralized coordination vs. distributed coordination
>>
>>RA, due to its "send once, receive many" nature, in its pure form necessarily can not dictate a per-client settings, but rather can only advise the domain the client would pick from (SLAAC).
>>
>>DHCPv6 on the other hand, due to its p2p nature is by default well suited for the individual per-client tweaking.
>>
>>The distributed nature can be a blessing if you do not care about who gets which address and a curse if you need to account everyone strictly.
>>
>>NB: address assignment does not mean that the hosts will always use those addresses - e.g. it's perfectly possible to statically configure a different address, but we talk just homogenous standards-compliant well-behaved hosts for simplicity sake).
>>
>>That's why I do not use the word "control" but use the word "coordination".
>>
>>5) Involvement or not into routing
>>
>>RAs are a mechanism to provide some form of reliability for the routing in an independent fashion to the reasonably unsophisticated hosts. DHCPv6 was specifically denied any involvement in the routing.
>>
>>While architecturally "pure", the reliability and timing of the routing resiliency provided by the RAs is far below those achieved by FHRP protocols which are used in today's networks predominantly.
>>
>>This might create a dissonance between those who want to ensure RAs are used for routing, and those who do not see any use of them in that regard - with the corresponding contention of adding anything routing-related into DHCPv6.
>>
>>
>>6) Server locality
>>
>>Both DHCPv6 and RA are inherently link-local mechanisms, however DHCPv6 has a means to "jump" over multiple hops by use of the relays. This means RA *has* to be distributed, while DHCPv6 can be both centralized and distributed. Frequently it is made centralized because of other benefits that centralized administration brings, but almost any router today can run a DHCPv6 server on the box with no problem.
>>
>>7) Programming: UDP vs. ICMP
>>
>>For a random programmer today, coding a server to receive the data on a UDP socket is a more familiar exercise than working with ICMP. Disclaimer: the value of "random" was chosen to be "me" for arbitrary reasons. This point is more of a rathole and a personal preference, probably. I think I remember Dave Thaler saying one of the mechanisms in Windows was way easier to extend than the other, but I do not remember which.
>>
>>8) Separate vs. unified management
>>
>>If DHCPv4 and routing is managed by the different groups in the organization, then conceivably the "server" people will not like to have their work go away and similarly "router" guys are happy to get rid of yet another point of coordination and argument. This is where the "I hate $protocol" should definitely pop up. Add here the concerns from the previous 7 points.
>>
>>HTH.
>>
>>
>>--a
>>
>>_______________________________________________
>>v6ops mailing list
>>v6ops@ietf.org
>>https://www.ietf.org/mailman/listinfo/v6ops
>>
>
>
>_______________________________________________
>v6ops mailing list
>v6ops@ietf.org
>https://www.ietf.org/mailman/listinfo/v6ops
>
>
>