Hi Hpa and all I am confused about some function of pxelinux and gpxelinux/gpxe. 1, after I read the document (http://edgyu.excess.org/ols/2008/H%20Peter%20Anvin%20-%20x86%20network%20bo oting%3a%20integrating%20gPXE%20and%20PXELINUX.pdf), I knew there are two major module in standard gPXE, PXE BC and UNDI. And I can understand why I need to produce different boot file for different NIC from http://rom-o-matic.net/, because the output file contain different UNDI. But I am really confused that why only one gpxelinux.0 (in syslinux 3.72 package) could support all my NIC (at least 5) in my environment? I guess the gpxelinux.0 use its own PXE BC and call vendor-UNDI from physical PXE ROM, as a result, gpxelinux.0 could support all my NIC(actually, it is supposed to support all NIC which have PXE ROM) Am I right? 2, From rfc5071, pxelinux should request non-standard DHCP option from DHCP server, option 208-211. In my environment, I am using a Microsoft DHCP (Windows 2008). And I tried to set option 67 (boot file name) to publish pxelinux.0 & gpxelinux.0. I used wildpacket(just like Wireshark) to capture the packets btw PXE client and DHCP server. I could not see PXE client request option 208/209/210/211, although I am sure I configured these syslinux-DHCP option on my DHCP Server. Why? I searched the google and official web site, all examples are using a linux-DHCP Server. I am not familiar with linux, and I am not sure if my issue is related to my Micrsoft-DHCP Server. It's appreciated if you can help me out. Thanks in advanced.
--On Tuesday, January 06, 2009 12:19:14 AM +0800 Sean Lv <jie.lv.mvp at gmail.com> wrote:> 2, From rfc5071, pxelinux should request non-standard DHCP option > from DHCP server, option 208-211. In my environment, I am using a > Microsoft DHCP (Windows 2008). And I tried to set option 67 (boot file > name) to publish pxelinux.0 & gpxelinux.0. I used wildpacket(just like > Wireshark) to capture the packets btw PXE client and DHCP server. I could > not see PXE client request option 208/209/210/211, although I am sure I > configured these syslinux-DHCP option on my DHCP Server. Why? I searched > the google and official web site, all examples are using a linux-DHCP > Server. I am not familiar with linux, and I am not sure if my issue is > related to my Micrsoft-DHCP Server.Hrm; RFC5071 doesn't seem to mention this problem, but it should, and the documentation for PXELINUX (PXELINUX.DOC) does mention it. The issue is that PXELINUX doesn't send a DHCP request at all; that's done by the PXE stack, before PXELINUX has even been loaded. Naturally, the PXE stack has no reason to know that you want it to request PXELINUX-specific options, and so does not do so. To make this problem go away, you need to either... (1) Force your DHCP server to send the options in question even though they do not appear in the client's parameter request list, or (2) Tell your DHCP server to provide these options as encapsulated vendor options, which changes both how they are encoded and when they are sent, such that they will be included if the client requests the vendor-encapsulated-options option (which they must, since PXE itself also uses vendor options). The required configuration will differ considerably from one DHCP server to the next; pxelinux.doc describes how to do these things for the ISC DHCP server, but you will need to find some other source of information on how to configure the Microsoft server. -- Jeffrey T. Hutzelman (N3NHS) <jhutz+ at cmu.edu> Carnegie Mellon University - Pittsburgh, PA
Sean Lv wrote:> 1, after I read the document > (http://edgyu.excess.org/ols/2008/H%20Peter%20Anvin%20-%20x86%20network%20bo > oting%3a%20integrating%20gPXE%20and%20PXELINUX.pdf), I knew there are two > major module in standard gPXE, PXE BC and UNDI. And I can understand why I > need to produce different boot file for different NIC from > http://rom-o-matic.net/, because the output file contain different UNDI. > But I am really confused that why only one gpxelinux.0 (in syslinux 3.72 > package) could support all my NIC (at least 5) in my environment? I guess > the gpxelinux.0 use its own PXE BC and call vendor-UNDI from physical PXE > ROM, as a result, gpxelinux.0 could support all my NIC(actually, it is > supposed to support all NIC which have PXE ROM) Am I right?Yes.> 2, From rfc5071, pxelinux should request non-standard DHCP option > from DHCP server, option 208-211. In my environment, I am using a Microsoft > DHCP (Windows 2008). And I tried to set option 67 (boot file name) to > publish pxelinux.0 & gpxelinux.0. I used wildpacket(just like Wireshark) to > capture the packets btw PXE client and DHCP server. I could not see PXE > client request option 208/209/210/211, although I am sure I configured these > syslinux-DHCP option on my DHCP Server. Why? I searched the google and > official web site, all examples are using a linux-DHCP Server. I am not > familiar with linux, and I am not sure if my issue is related to my > Micrsoft-DHCP Server. > > It's appreciated if you can help me out. Thanks in advanced. >PXELINUX doesn't request anything from the DHCP server, *because PXELINUX isn't running yet*. DHCP is done by PXE, so you have to configure your DHCP server to send these options without having had them requested. This is also mentioned in RFC 5071 (fifth paragraph of section 1.) -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf.