Re: [v6ops] Please review the No IPv4 draft

Owen DeLong <owen@delong.com> Tue, 15 April 2014 16:38 UTC

Return-Path: <owen@delong.com>
X-Original-To: v6ops@ietfa.amsl.com
Delivered-To: v6ops@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7C4771A07D3 for <v6ops@ietfa.amsl.com>; Tue, 15 Apr 2014 09:38:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.037
X-Spam-Level: **
X-Spam-Status: No, score=2.037 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_ADSP_ALL=0.8, DKIM_SIGNED=0.1, J_CHICKENPOX_57=0.6, RP_MATCHES_RCVD=-0.272, SPF_PASS=-0.001, T_DKIM_INVALID=0.01] autolearn=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 XG1TiHaFCUGJ for <v6ops@ietfa.amsl.com>; Tue, 15 Apr 2014 09:38:12 -0700 (PDT)
Received: from owen.delong.com (owen.delong.com [IPv6:2620:0:930::200:2]) by ietfa.amsl.com (Postfix) with ESMTP id 174F81A079F for <v6ops@ietf.org>; Tue, 15 Apr 2014 09:38:12 -0700 (PDT)
Received: from owens-mbp.meeting.arin.net (unknown.servercentral.net [50.31.214.180] (may be forged)) (authenticated bits=0) by owen.delong.com (8.14.2/8.14.2) with ESMTP id s3FGXugk006472 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Tue, 15 Apr 2014 09:33:57 -0700
X-DKIM: Sendmail DKIM Filter v2.8.3 owen.delong.com s3FGXugk006472
DKIM-Signature: v=1; a=rsa-sha1; c=simple/simple; d=delong.com; s=mail; t=1397579638; bh=cOvb789JdCte908FF4ckb1HK5Dc=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=kltFWNTJV6vYeDv1GuI41ZT9GWzsmQ6r3+TgE2/hXDPUp67jVqK0f/aAmp+qXirDh YN5aD4lViKZbLBey13VaPRXnru1BiQnE3W8OLOCKtlcHlHqSgsWhZdMh/hHWwfcGO+ i9F9S7Xc46O712tUPE2q49iH3pIt3B8o3cyWpmMg=
Content-Type: text/plain; charset="windows-1252"
Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\))
From: Owen DeLong <owen@delong.com>
In-Reply-To: <C3DC2027-A532-4A2C-852E-A1329098B080@nominum.com>
Date: Tue, 15 Apr 2014 09:33:55 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <F7EB3B20-F92D-42C8-839C-9D3A7DE7F4C1@delong.com>
References: <534BF5A5.5010609@viagenie.ca> <534BFA08.3030404@foobar.org> <49EA8AC9-D5C5-4FE5-9A10-0CD574782F0F@nominum.com> <534C07FC.8000907@foobar.org> <F08AF14D-22C6-4F4C-9388-670EB4CD8453@nominum.com> <534C17B8.8030209@foobar.org> <534C27C9.80701@viagenie.ca> <20140414194824.GY43641@Space.Net> <534C3F7D.3040406@viagenie.ca> <20140414201231.GZ43641@Space.Net> <23F575A3-E00D-410E-9929-7377B7CAA623@nominum.com> <82E804C3-725D-415A-87C3-512073774C6F@delong.com> <C3DC2027-A532-4A2C-852E-A1329098B080@nominum.com>
To: Ted Lemon <ted.lemon@nominum.com>
X-Mailer: Apple Mail (2.1874)
X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0rc1 (owen.delong.com [192.159.10.2]); Tue, 15 Apr 2014 09:33:58 -0700 (PDT)
Archived-At: http://mailarchive.ietf.org/arch/msg/v6ops/MTe9QMamhWCjDtJz5X-YbM3-KOo
Cc: v6ops@ietf.org
Subject: Re: [v6ops] Please review the No IPv4 draft
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.15
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: <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, 15 Apr 2014 16:38:17 -0000

On Apr 15, 2014, at 8:37 AM, Ted Lemon <ted.lemon@nominum.com> wrote:

> On Apr 14, 2014, at 11:51 PM, Owen DeLong <owen@delong.com> wrote:
>> Calling it the wrong thing while advocating an even more wrong thing is equally absurd.
> 
> When I call it the wrong thing, I mean that it doesn't work well (and I explained that).  In practice, not in theory.   You are claiming that adding the capability to shut off DHCPv4 is even more wrong, but you haven't explained why.   So when we weigh the two considerations next to each other, one of which is substantiated by everybody's daily experience of Linux networking, and the other of which is purely speculative and not substantiated by any reasoning that would lead us to think it is true, then despite the fact that, if it were true, it would be worse, we should, logically, weigh the other consideration more heavily.

No, I am not. I am claiming that putting DHCPv4 instructions into DHCPv6 (and/or RA) is even more wrong.

I’m all for adding an ICMP4 or DHCPv4 message to execute that task.

I have, in fact explained why and so has Gert and so have several other people. You are choosing to ignore us while simultaneously disagreeing with us, but that doesn’t change the fact that we have, in fact, done so.

However, to summarize:

1.	It makes little sense to me to try and turn off DHCPv4 using an IPv6 message when it can much more cleanly be
	done with a very simple IPv4 message.

2.	A client which is a “problem” as you describe the problem statement is a client which is sending DHCPv4REQUEST
	messages. Therefore, an appropriate way to identify and rectify such a problem is to send an IPv4 packet in
	response to the DHCPv4REQUEST message which says “STOP THAT”. Such a message could either be a
	new DHCP response type or an ICMP message indicating that the DHCPv4 service is unavailable.

3.	Others have raised a concern that forged ICMP based “STOP THAT” messages in IPv4 could:
	1.	Bypass DHCP Snooping safeguards
	2.	Serve as a DoS vector

4.	The concerns expressed in 3 received the following response:
	1.	The IPv6 based message would also bypass IPv4 DHCP snooping
	2.	Require clients which receive both a “STOP THAT” message and a DHCPOFFER to act on the Offer
		and ignore the “STOP THAT” message for some time.

5.	You argued that it is more difficult to implement changes to the DHCPv4 state machine than to implement something
	where the IPv6 DHCP or RA client would somehow pass a message to the upstream “glue code” whatever that may be
	on any given platform which would then cause it to kill off the DHCPv4 process on the client (and possibly shut down
	other aspects of the IPv4 stack on the client as well).

	I don’t buy that argument as I believe it would be pretty simple to add code to DHCPv4 clients that essentially does the following:

		...
		if (DHCP_SHUTDOWN_RECEIVED)
		{
			/* code here to listen for other DHCP responses over the next n seconds (probably n<30) */
			if (DHCP_OFFER_RECEIVED) break;
			/* If needed, any clean-up code before terminating the DHCPv4 process and/or to shutdown the IPv4 stack */
			exit(0);
		}
		…

	On the other hand, what you propose requires:

		1.	Add options to RA
		2.	Add options to DHCPv6
		3.	Update every RA implementation to somehow pass receipt of this option up to “glue code”
		4.	Update every DHCPv6 implementation to somehow pass receipt of this option up to “glue code”
		5.	Update glue code to deal with all possible variants of how the RA/DHCPv6 information may be passed up to that glue code.
		6.	Update glue code to properly terminate all possible variants of DHCPv4 client which may be running on the host.
		7.	Update glue code to do any other tasks required to shutdown IPv4 on the applicable interface on the host.

	I’ll note that in many cases, the DHCPv4, DHCPv6, RA, and “glue code” come in multiple variants and even in one set of variants,
	each of those 4 items may have different maintainers and/or different organizations/persons responsible for said maintenance.

	As near as I can tell the draft does not standardize any of the APIs necessary for the communications in the above 7 steps.

> For comparison, suppose you were to assert that there's a significant risk of giant bunnies leaping out into the road when driving on any interstate highway in the U.S.  We could definitely say that if such a statement were true, it would require us to change our driving habits.   And yet we likely would not change our driving habits, because you have given us no reason to think it's true.

If you simply want to bloviate while misrepresenting what has been said, then I see little point in the discussion.

Owen