Re: [dhcwg] draft-ietf-dhc-dhcpv6-opt-netboot-05 - how to proceed?

Thomas Huth <THUTH@de.ibm.com> Sat, 10 October 2009 15:10 UTC

Return-Path: <THUTH@de.ibm.com>
X-Original-To: dhcwg@core3.amsl.com
Delivered-To: dhcwg@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 3BEF53A682C for <dhcwg@core3.amsl.com>; Sat, 10 Oct 2009 08:10:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.59
X-Spam-Level:
X-Spam-Status: No, score=-2.59 tagged_above=-999 required=5 tests=[AWL=0.009, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8EY1Z-gVhsFQ for <dhcwg@core3.amsl.com>; Sat, 10 Oct 2009 08:10:05 -0700 (PDT)
Received: from mtagate3.de.ibm.com (mtagate3.de.ibm.com [195.212.17.163]) by core3.amsl.com (Postfix) with ESMTP id 33FDD3A67B1 for <dhcwg@ietf.org>; Sat, 10 Oct 2009 08:10:05 -0700 (PDT)
Received: from d12nrmr1707.megacenter.de.ibm.com (d12nrmr1707.megacenter.de.ibm.com [9.149.167.81]) by mtagate3.de.ibm.com (8.13.1/8.13.1) with ESMTP id n9AFBmdc013962 for <dhcwg@ietf.org>; Sat, 10 Oct 2009 15:11:48 GMT
Received: from d12av05.megacenter.de.ibm.com (d12av05.megacenter.de.ibm.com [9.149.165.216]) by d12nrmr1707.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id n9AFBa632326680 for <dhcwg@ietf.org>; Sat, 10 Oct 2009 17:11:48 +0200
Received: from d12av05.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av05.megacenter.de.ibm.com (8.14.3/8.13.1/NCO v10.0 AVout) with ESMTP id n9AFBZ32028054 for <dhcwg@ietf.org>; Sat, 10 Oct 2009 17:11:35 +0200
Received: from d12ml072.megacenter.de.ibm.com (d12ml072.megacenter.de.ibm.com [9.149.166.115]) by d12av05.megacenter.de.ibm.com (8.14.3/8.13.1/NCO v10.0 AVin) with ESMTP id n9AFBZiB028051 for <dhcwg@ietf.org>; Sat, 10 Oct 2009 17:11:35 +0200
In-Reply-To: <AD61797F-DB2D-4889-8888-5339521ADE8F@nominum.com>
References: <200910062234.AAA07005@TR-Sys.de> <AD61797F-DB2D-4889-8888-5339521ADE8F@nominum.com>
X-KeepSent: 029AB4A7:6EEA954A-C125764B:004E95CE; type=4; name=$KeepSent
To: dhcwg@ietf.org
X-Mailer: Lotus Notes Release 8.5 December 05, 2008
Message-ID: <OF029AB4A7.6EEA954A-ONC125764B.004E95CE-C125764B.00536F30@de.ibm.com>
From: Thomas Huth <THUTH@de.ibm.com>
Date: Sat, 10 Oct 2009 17:11:19 +0200
X-MIMETrack: Serialize by Router on D12ML072/12/M/IBM(Release 8.0.1|February 07, 2008) at 10/10/2009 17:11:35
MIME-Version: 1.0
Content-type: text/plain; charset="ISO-8859-1"
Content-transfer-encoding: quoted-printable
Subject: Re: [dhcwg] draft-ietf-dhc-dhcpv6-opt-netboot-05 - how to proceed?
X-BeenThere: dhcwg@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <dhcwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/dhcwg>
List-Post: <mailto:dhcwg@ietf.org>
List-Help: <mailto:dhcwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 10 Oct 2009 15:10:07 -0000

Ted Lemon <Ted.Lemon@nominum.com> wrote on 07/10/2009 02:57:11:

> On Oct 6, 2009, at 3:34 PM, ah@tr-sys.de wrote:
> >
>
> Thanks, that helps to make sense of it.   What do you think about the
> idea of just grouping the URI in with the boot parameters?   Also, you
> said that the client might need more than one bootfile, but the
> current draft doesn't provide any way to differentiate, unless it's in
> the bootfile parameters.  Consequently, I understood that the various
> different bootfile parameters were options to try, not files to be
> loaded in sequence.

Right. So maybe we should discuss first what basic functionality shall be
provided by DHCP for network booting before we continue discussing how the
options should exactly look like.

I think there are two basic approaches:

1) The full-blown approach:
(basically what Alfred Hönes described)
DHCPv6 shall support all kind of boot scenarios. The options should provide
the possibility to load different kind of files into memory before starting
the kernel/bootloader, e.g. one or more binaries, a ram-disk, configuration
files, etc. ... maybe there would also be the need to specify the address
in the RAM of the client where the file should be loaded to (e.g. to
specify where to put the ram-disk to), or the need to closer specify the
type of binary images (e.g. if it's for a slave processor like a DSP) and
various kind of other parameters...
Beside the possibility to load multiple images, it would also be nice to
specify some kind of redundancy for every file that should be downloaded.
I.e. if one file server is busy or down, there should be a possibility to
specify an alternative download server for each file.

2) The keep-it-simple approach:
(basically what we did until now after we've been told to get rid of the
sub-option a year ago)
DHCPv6 shall just support downloading one executable for booting. That's
either directly the OS kernel, or it could be a secondary stage boot loader
which then can implement the more complex boot scenarios like loading
ram-disks etc.
Here it would still be nice to also implement some kind of download
redundancy for that single file in case the file server is busy or down
(that's why we allowed the bootfile-url option to occur multiple times).

**** How is it done in DHCPv4? ***

AFAIK DHCPv4 only offers the possibility to specify one single boot image.
For more complex scenarios, there are secondary stage boot loaders, like
"yaboot" on PowerPC machines, a program that can load ram-disks and
config-files before starting the OS kernel. That all basically means the
second, keep-it-simple approach.

Then there is also the PXE extension for DHCPv4, which extends DHCPv4 by a
lot of additional functionality. I think this is not completely what I
described with the "full-blown" approach above, but it resembles it at
least a little bit (lots of additional DHCP options for lots of additional
features).

**** Now where to go from here for DHCPv6? ***

If we decide to do approach 1), that basically means a complete rewrite of
our draft, with a lot of additional brain-storming about what's needed for
all possible scenarios, and to do a modular, extensible option layout like
the sub-options that we used in the first versions of our draft.
Honestly, at least I currently don't have the spare time to lead such a
discussion and rewrite of the draft. And after reading the PXE spec, which
is IMHO very complex and sometimes hard to understand (what can easily end
up in wrong implementations), I think it's not a good idea to introduce
such a complex interface into DHCPv6 - so I'd prefer to leave the complex
scenarios to the secondary stage bootloaders.

So if we decide to do approach 2) instead, that means we could state that
there is only the possibility to load one image via DHCPv6, and that the
multiple bootfile URL options are just there for redundancy reasons. Then
we could remove the "precedence" field from the bootfile parameter option
again, since all the images on the different servers should be the same and
thus also be provided with the same kernel parameters! The bootfile
parameter options then must only be given once (or not at all), the ugly
linking between the options is gone, and hopefully everybody is happy
again...

What do you think?

Mit freundlichen Grüßen / Kind regards,
   Thomas Huth
                                                                           
    IBM Deutschland                 Vorsitzender des Aufsichtsrats:        
    Research & Development GmbH     Martin Jetter                          
    Schönaicher Str. 220            Geschäftsführung: Erich Baier          
    71032 Böblingen                 Sitz der Gesellschaft: Böblingen       
    Tel.: +49-7031-16-2183          Registergericht: Amtsgericht           
                                    Stuttgart, HRB 243294