> From: Brian Buchanan on Wednesday, July 13, 2005 3:01 PM
> Subject: [Ltsp-discuss] PXE ignores DHCP Option 66 TFTP Server Name??
>
> Is there something about PXE that insists that the TFTP server must be on
> the DHCP server's IP, even if you set the DHCP option 66 "TFTP
> server name"
> to a different IP?
>
> I have a working LTSP test server, I've put it onto my production network,
> but disabled it's DHCP server.  The main DHCP server is a Windows 2000 box
> and on it I've created a reservation for the test LTSP client, and set
> Option 66, but the client won't boot (No response from TFTP server).
>
> I grabbed a windows TFTP server, put it on the DHCP server,
> copied over the
> pxelinux.0 file and the LTSP client boots fine (downloading the pxelinux.0
> file from the DHCP server).
>
> The only other element that might be coming into play is we have Microsoft
> RIS setup (on yet another server), but those services have been
> disabled for
> the duration of this testing; not sure if I missed something else
> to disable
> RIS or not.
>

Quick Answer: My NIC's PXE code was too old.

Long Answer:

I was using the IBM Etherjet PCI Adpater P/N: 34L199 FRU: 34L1109

http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndo
cid=MIGR-4GMTR7

This is an Intel EtherPro network card, based on the 82559 chip.

Intel makes their Intel Boot Agent available for download.

http://downloadfinder.intel.com/scripts-df-external/Product_Filter.aspx?Prod
uctID=412&lang=eng

I downloaded the boot agent (PROBOOT.exe) ver 4.1.15 and extracted the
files, copying all but userguide.zip to a dos boot disk.

Once booted off the floppy, I ran ibautil -all -upgrade to upgrade the boot
agent.  ibautil prompted to save the previous code.

It seems I went from a version 2.29 (I didn't actually get a chance to write
it down, that's from the saved filename) to Version 4.1.15.

Finally, everything works as it should.

Just for further information, I had verified that my Windows 2000 DHCP
server was sending the correct settings with tcpdump and dhcpdump

http://freshmeat.net/projects/dhcp-utils/

tcpdump -lenx -s 1500 -i eth1 'ether host 00:04:ac:d3:8f:47' \
  ' and (port bootps or port bootpc or port tftp)' \
  | dhcpdump

  TIME: 08:54:01.228413
    IP: 0.0.0.0.68 (00:04:ac:d3:8f:47) >  (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: add38f47
  SECS: 1024
 FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 00:04:ac:d3:8f:47:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  55 ( 13) Parameter Request List      1 (Subnet mask)
                                              3 (Routers)
                                             60 (Vendor class identifier)
                                             43 (Vendor specific info)
                                             67 (Bootfile name)
                                            128 (???)
                                            129 (???)
                                            130 (???)
                                            131 (???)
                                            132 (???)
                                            133 (???)
                                            134 (???)
                                            135 (???)

OPTION:  57 (  2) Maximum DHCP message size 1260
OPTION:  97 ( 17) UUID/GUID                 00ffffffffffffff ........
                                            ffffffffffffffff ........
                                            ff               .
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010201           ...
OPTION:  60 ( 32) Vendor class identifier   PXEClient:Arch:00000:UNDI:002001

---------------------------------------------------------------------------
  TIME: 08:54:01.228941
    IP: 10.1.0.9.67 (00:03:47:a5:87:c6) >  (ff:ff:ff:ff:ff:ff)
    OP: 2 (BOOTPREPLY)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: add38f47
  SECS: 0
 FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 10.1.8.3
SIADDR: 10.1.0.15
GIADDR: 0.0.0.0
CHADDR: 00:04:ac:d3:8f:47:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: /lts/2.4.26-ltsp-3/pxelinux.0.
OPTION:  53 (  1) DHCP message type         2 (DHCPOFFER)
OPTION:   1 (  4) Subnet mask               255.255.0.0
OPTION:  58 (  4) T1                        604800 (7d)
OPTION:  59 (  4) T2                        1058400 (1w5d6h)
OPTION:  51 (  4) IP address leasetime      1209600 (2w)
OPTION:  54 (  4) Server identifier         10.1.0.9
OPTION:   3 (  4) Routers                   10.1.0.4
OPTION:  67 ( 30) Bootfile name             /lts/2.4.26-ltsp-3/pxelinux.0


You can see that DHCP option 66 is not requested by PXE, but it is passed
back by the DHCP server in the SIADDR field.

http://www.faqs.org/rfcs/rfc1541.html

I also learned that ISC's dhcpd.conf's next-server option is equivalent
Windows DHCP server Option 66 Boot Server Host Name

Finally, I captured the DHCP request/ response after the PXE upgrade, and
it's signifcantly different, including a request for option 66.

  TIME: 12:34:42.578494
    IP: 0.0.0.0.68 (00:04:ac:d3:8f:47) >  (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: add38f47
  SECS: 4
 FLAGS: 7f80
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 00:04:ac:d3:8f:47:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  55 ( 36) Parameter Request List      1 (Subnet mask)
                                              2 (Time offset)
                                              3 (Routers)
                                              4 (Time server)
                                              5 (Name server)
                                              6 (DNS server)
                                             11 (Resource location server)
                                             12 (Host name)
                                             13 (Boot file size)
                                             15 (Domainname)
                                             16 (Swap server)
                                             17 (Root path)
                                             18 (Extensions path)
                                             22 (Maximum datagram reassembly
size)
                                             23 (Default IP TTL)
                                             28 (Broadcast address)
                                             40 (NIS domain)
                                             41 (NIS servers)
                                             42 (NTP servers)
                                             43 (Vendor specific info)
                                             50 (Request IP address)
                                             51 (IP address leasetime)
                                             54 (Server identifier)
                                             58 (T1)
                                             59 (T2)
                                             60 (Vendor class identifier)
                                             66 (TFTP server name)
                                             67 (Bootfile name)
                                            128 (???)
                                            129 (???)
                                            130 (???)
                                            131 (???)
                                            132 (???)
                                            133 (???)
                                            134 (???)
                                            135 (???)

OPTION:  57 (  2) Maximum DHCP message size 1260
OPTION:  97 ( 17) UUID/GUID                 00ffffffffffffff ........
                                            ffffffffffffffff ........
                                            ff               .
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010201           ...
OPTION:  60 ( 32) Vendor class identifier   PXEClient:Arch:00000:UNDI:002001
---------------------------------------------------------------------------
  TIME: 12:34:42.579244
    IP: 10.1.0.9.67 (00:03:47:a5:87:c6) >  (ff:ff:ff:ff:ff:ff)
    OP: 2 (BOOTPREPLY)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: add38f47
  SECS: 0
 FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 10.1.8.3
SIADDR: 10.1.0.15
GIADDR: 0.0.0.0
CHADDR: 00:04:ac:d3:8f:47:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: /lts/2.4.26-ltsp-3/pxelinux.0.
OPTION:  53 (  1) DHCP message type         2 (DHCPOFFER)
OPTION:   1 (  4) Subnet mask               255.255.0.0
OPTION:  58 (  4) T1                        604800 (7d)
OPTION:  59 (  4) T2                        1058400 (1w5d6h)
OPTION:  51 (  4) IP address leasetime      1209600 (2w)
OPTION:  54 (  4) Server identifier         10.1.0.9
OPTION:   3 (  4) Routers                   10.1.0.4
OPTION:   6 (  8) DNS server                10.1.0.9,10.1.0.1
OPTION:  15 ( 13) Domainname                interfast.ca
OPTION:  17 ( 25) Root path                 10.1.0.15:/opt/ltsp/i386
OPTION:  66 ( 10) TFTP server name          10.1.0.15
OPTION:  67 ( 30) Bootfile name             /lts/2.4.26-ltsp-3/pxelinux.0

I hope some of that helps someone else in the future.

._. Brian




-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_____________________________________________________________________
Ltsp-discuss mailing list.   To un-subscribe, or change prefs, goto:
      https://lists.sourceforge.net/lists/listinfo/ltsp-discuss
For additional LTSP help,   try #ltsp channel on irc.freenode.net

Reply via email to