svn commit: r314948 - in head: lib/libstand sys/boot/i386/libi386

Andriy Gapon avg at FreeBSD.org
Thu Jun 1 14:17:19 UTC 2017


On 27/05/2017 15:56, Baptiste Daroussin wrote:
> On Fri, May 26, 2017 at 12:27:45PM +0300, Andriy Gapon wrote:
>> On 09/03/2017 08:01, Mariusz Zaborski wrote:
>>> Author: oshogbo
>>> Date: Thu Mar  9 06:01:24 2017
>>> New Revision: 314948
>>> URL: https://svnweb.freebsd.org/changeset/base/314948
>>>
>>> Log:
>>>   Try to extract the RFC1048 data from PXE. If we get enough info we can skip
>>>   the bootp(). It removes unnecessary DHCP request from pxeloader.
>>>   
>>>   Submitted by:	kczekirda
>>>   Sponsored by:	Oktawave
>>>   Initiated by:	Matthew Dillon
>>>   Reviewed by:	smh, gnn, bapt, oshogbo
>>>   MFC after:	3 weeks
>>>   Differential Revision:	https://reviews.freebsd.org/D9847
>>
>> Sorry for being late to the party, but this being head hopefully not too late.
>>
>> I am not sure that I agree with the spirit of this change.
>>
>> There are network boot setups that do depend on the "unnecessary" DHCP request
>> from pxeboot.  For example, a DHCP server could be configured to return a
>> different set of parameters depending on a particular PXE client.  I personally
>> use a configuration where the DCHP server sends a boot menu[*] to a PXE client
>> that's built into network cards.  If a FreeBSD boot is selected and pxeboot is
>> started, then the server sends parameters required for the FreeBSD boot
>> (root-path, etc) in response to the request from pxeboot.
>> I don't see how I can keep that working after this change.
>>
>> Additionally, as far as I can tell, we only get cached
>> PXENV_PACKET_TYPE_BINL_REPLY.  This might cause a problem in environments where
>> a separate PXE server (Proxy DHCP) is used.  In that case the reply might not
>> have the network configuration information which would actually be in
>> PXENV_PACKET_TYPE_DHCP_ACK.
>> An example of such a setup is described here:
>> https://n0dy.com/blog/2014/09/14/network-booting-with-dnsmasq-in-proxy-mode/
>> Using a separate PXE server is not uncommon in corporate environments too.
>>
>> In general, I think that the change was not thought through to cover scenarios
>> beyond the basic unattended, FreeBSD-only, single DHCP server network boots.
>> That scenario is, of course, very common, but it is not the only one.
>>
>> At minimum, I would like to have a compile time option to control whether
>> pxeboot should send a DHCP request of its own or rely entirely on the cached
>> information.  Or maybe pxeboot could be smart enough to do the former if the
>> cached reply is missing some required information like the root-path.
>> Right now, there is no bootp(BOOTP_PXE) under any conditions.
>>
>> And my apologies again for missing the original discussion.
>> My focus was somewhere else at the time.
>>
>> [*] It uses PXE_BOOT_MENU and PXE_MENU_PROMPT vendor options for that.
>>
>> References:
>> http://www.pix.net/software/pxeboot/archive/pxespec.pdf
> 
> I should have been all fixed in head (including some sugar added)
> 
> Can you confirm?

Yes, I can.  Thank you!
My setup works again.
I have some further local changes for which I will open a differential review
(or a few of them) soon.


-- 
Andriy Gapon


More information about the freebsd-net mailing list