From: Brian B. <bri...@in...> - 2005-07-14 16:40:54
|
> 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 |