[syslinux] Chain-loading from WDS to PXELinux on a different tftp server

Spike White spikewhitetx at gmail.com
Fri Dec 26 13:32:21 PST 2014


> Date: Thu, 25 Dec 2014 07:07:52 +0000
> From: Luke Ledgerd <luke.ledgerd at niteco.se>
> To: "syslinux at zytor.com" <syslinux at zytor.com>
> Subject: [syslinux] Chain-loading from WDS to PXELinux on a different
>         tftp    server
> Message-ID: <17ba7ad419d54b6cab685c2cedc3de95 at NI-MAILEX.niteco.se>
> Content-Type: text/plain; charset="us-ascii"
>
> Hey guys,
>
> We are going with WDS to fire up first to get the benefits of targeted M$
deployments. If you have the "handle unknown computers" off on your M$
Distribution point, then you can still use regular WDS which runs next as a
PXE filter (DLL linked into WDS) to fire off anything you want to including
PXELinux.
>
> The stuff I was talking about before with PXELinux not working in EFI-64
was related to the EFI Network Boot Rom trying to connect to the DHCP
server on Port 4011 (PXE server). I could have kept hacking around with
DHCP options, or forced DHCPD to listen on that port, or set up a proper
PXEServer that complies with 3.X of the PXE spec, but it wasn't required
for what we wanted in this environment so I moved on, and let WDS
workaround the problem with EFI + PXELinux I had.
>
> Question.
> 1) Can you kick off PXELinux without a Unix DHCP Server (WDS), and make
it jump to a different tftp server from WDS? That's what I'm going for. I
want the default PATH to include the IP address of a different TFTP server
in PXE Linux.
>
> The new implementation will have to have a separate folder for EFI64,
EFI32, PXE 2.1 because that's what I think WDS demands - or at least for
whatever chainloads the PXELinux off another TFTP server.
>
> 2) As a fallback, PXEChain as I understand requires another DHCP server
>
>
http://www.vcritical.com/2011/06/peaceful-coexistence-wds-and-linux-pxe-servers/
> http://www.syslinux.org/wiki/index.php/Common_Problems#pxechain.com-2
>
> These docs look good by they don't explain how it all plays together with
PXELinux dual booting with EFI/Non EFI shared configuration.
>
> Does PXEChain do everything I want? Can it even a pass configuration file
for PXELinux to start with.pxechain
>
> This looks very interesting - This Russian knows what he is doing....
> http://sysmagazine.com/posts/175669/
>
>
> I'll let you know how I go today with it. We are going for the perfect
setup where SCCM does it's thing if it needs to - else throws back to WDS
-> PXELinux for a computer not targeted for any SCCM PXE Deployment task
sequences, so it's going to be a bit different from the above article.
>
> Why a different TFTP server? We have a NAS that is already setup and
tested and it does a good job of mounting lots of loopback ISO's and
sharing them on TFTP, even if it doesn't support MTFTP and all that.
>
> Cheers,
>
> Luke

Luke, I have considerable experience with this.  We use WDS at work for
PXE (MS-centric shop).  I use pxelinux at home.

I've got WDS working in our test lab w/ UEFI.  As you state, it strongly
wishes to do proxyDHCP (port 4011).  More on this in a bit.

It's quite common to segregate the DHCP server from the TFTP server.
Commonly,
it's because DHCP services is maintained why one team and PXE boot by
another.

What you're desiring is somewhat obscure -- you're wanting your WDS server
to
provide the DHCP service, while you have another server provide TFTP.

Normally, it'd be the other way around; some other server would be providing
DHCP and WDS would be providing TFTP/PXE.  I'd argue for your setup what
you really want is straight MS DHCP service (to provide DHCP).  and point it
to your NAS (for TFTP).

Except that wouldn't work for your known servers.

About proxyDHCP.  I'm loading wdsmfg.efi as the network boot program (NBP).
So some of my tested configurations do the std D-O-R-A to the DHCP server
and
then immediately do a TFTP read request from my TFTP server.  Loading the
boot\x64\wdsmgfw.efi.

However, then it does RA - RA - RA to the WDS server (proxyDHCP port 4011).
I'm convinced it's the wdsmgfw.efi that's doing this.

Here's the best config I found:
   TFTP Server Name (option 66) -- set to WDS server's IP address
   Domain Name (option 15) -- set to DNS domain
   File Name    set to boot\x64\wdsmgfw.efi
   Next Server  set to WDS server's IP address

Also, you might try this config:
   Boot File Name (option 67) -- set to boot\x64\wdsmgfw.efi
   TFTP Server Name (option 66) -- set to WDS server's IP address
   Domain Name (option 15) -- set to DNS domain
   File Name    set to boot\x64\wdsmgfw.efi
   Next Server  set to WDS server's IP address

That second config doesn't work for me, because of a bug in the EFI boot
code of my Intel and Broadcom NICs.  It interprets option 67 as
boot\x64\wdsmgfw.efi\377 .  (Don't want to re-hash this; been discussed
thoroughly in this mailing list before).

Spike White


More information about the Syslinux mailing list