Steve Oliphant
2002-Sep-04  16:09 UTC
[syslinux] PXE-E55 ProxyDHCP - No reply to request on port 4011
Hi:
First - pxelinux works great - got it up and running 
with few problems.
However - I ran into a snag, I am assuming I have
a configuration issue.  Here are the details.
Using:  syslinux-1.75
        dhcp-3.0pl1
        tftp-hpa-0.29
A lot of what I have done is from:
http://frank.harvard.edu/~coldwell/diskless
dhcpd.conf:
# DHCP configuration file for DHCP ISC 3.0
ddns-update-style none;
# Definition of PXE-specific options
# Code 1: Multicast IP address of boot file server
# Code 2: UDP port that client should monitor for MTFTP responses
# Code 3: UDP port that MTFTP servers are using to listen for MTFTP requests
# Code 4: Number of seconds a client must listen for activity before trying
#         to start a new MTFTP transfer
# Code 5: Number of seconds a client must listen before trying to restart
#         a MTFTP transfer
option space PXE;
option PXE.mtftp-ip               code 1 = ip-address;
option PXE.mtftp-cport            code 2 = unsigned integer 16;
option PXE.mtftp-sport            code 3 = unsigned integer 16;
option PXE.mtftp-tmout            code 4 = unsigned integer 8;
option PXE.mtftp-delay            code 5 = unsigned integer 8;
option PXE.discovery-control      code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr   code 7 = ip-address;
# option PXE.magic                  code 208 = string;
# option PXE.configfile             code 209 = text;
# option PXE.pathprefix             code 210 = text;
# option PXE.reboottime             code 211 = unsigned integer 32;
subnet 192.168.104.0 netmask 255.255.255.0 {
  class "pxeclients" {
    match if substring (option vendor-class-identifier, 0, 9) =
"PXEClient";
    option vendor-class-identifier "PXEClient";
    vendor-option-space PXE;
#    option domain-name-servers 192.168.110.4, 192.168.110.5, 208.244.225.2;
#    option domain-name "novadigm.com";
    # At least one of the vendor-specific PXE options must be set in
    # order for the client boot ROMs to realize that we are a PXE-compliant
    # server.  We set the MCAST IP address to 0.0.0.0 to tell the boot ROM
    # that we can't provide multicast TFTP (address 0.0.0.0 means no
    # address).
    option PXE.mtftp-ip 0.0.0.0;
    # This is the name of the file the boot ROMs should download.
    filename "pxelinux.0";
    # This is the name of the server they should get it from.
    next-server 192.168.104.141;
  }
  pool {
    max-lease-time 86400;
    default-lease-time 86400;
    range 192.168.104.55 192.168.104.56;
    deny unknown clients;
  }
  host node1 {
    hardware ethernet 00:01:03:1f:8c:39;
    fixed-address 192.168.104.55;
  }
  host node2 {
    hardware ethernet 00:50:da:64:41:54;
    fixed-address 192.168.104.56;
  }
#
#  [...]
#
}
/tftpboot directory listing:
[steveo at pxelinux steveo]$ ls -l /tftpboot
total 8666
-rw-r--r--    1 root     root       776786 Apr 19 14:38 initrd.img
-rw-r--r--    1 root     root       556336 Apr 19 14:38 initrd.img.orig
-rw-r--r--    1 root     root       823725 Aug 12 16:42 linux
drwxr-xr-x    2 root     root         1024 Jul 24 11:01 old
-rw-rw-r--    1 1026     101         10052 Jun 15 00:46 pxelinux.0
drwxr-xr-x    7 root     root         1024 Sep  4 10:34 pxelinux.cfg
-rw-r--r--    1 root     root      5856770 Aug 28 11:32 rootfs.gz
-rw-r--r--    1 root     root       802662 Apr 19 14:44 vmlinuz
/tftpboot/pxelinux.cfg directory listing:
[steveo at pxelinux steveo]$ ls -l /tftpboot/pxelinux.cfg
total 6
-rw-r--r--    1 root     root          137 Aug 12 13:25 C0A868
drwxr-xr-x    2 root     root         1024 Aug 14 11:01 good
drwxr-xr-x    2 root     root         1024 Sep  4 10:34 good2
drwxr-xr-x    2 root     root         1024 Aug 14 16:16 rh
drwxr-xr-x    2 root     root         1024 Jul 25 17:35 save
drwxr-xr-x    2 root     root         1024 Aug 12 13:25 save1
Contents of C0A868:
(note: APPEND line is wrapped)
[steveo at pxelinux steveo]$ cat /tftpboot/pxelinux.cfg/C0A868
DEFAULT linux
APPEND initrd=rootfs.gz root=/dev/ram0 rw
ip=192.168.104.55:192.168.104.141:192.
168.104.1:255.255.255.0:pxeclient:eth0:off
I also added a tftp line for port 4011 in the services file in order to
try to fix this problem:
tftp            69/tcp
tftp            69/udp
tftp            4011/tcp
tftp            4011/udp
Here is the problem:
I have two machines - one boots fine, the other one does not
differences are in the MBA/PXE versions:
Machine 1:
MBA: 4.0, PXE: 2.0 MAC: 00:01:03:1f:8c:39
Boots fine - no problems
Machine 2:
Originally had:
MBA: 3.2, PXE: 1.99J MAC: 00:50:da:64:41:54
Would not respond to the DHCP Server
I upgraded the firmware to:
MBA: 4.3, PXE: 2.20  MAC: 00:50:da:64:41:54
Now I get the following messages:
Client ID: 192.168.104.56 Netmask: 255.255.255.0 DHCP 192.169.104.141
PXE-E55 ProxyDHCP No reply to request on Port 4011
It appears that I am missing something but I am not sure what since
one machine works fine but the other one does not.
Any Ideas??
Steve Oliphant
Novadigm, Inc.
201-512-7821
H. Peter Anvin
2002-Sep-04  16:48 UTC
[syslinux] PXE-E55 ProxyDHCP - No reply to request on port 4011
Steve Oliphant wrote:> > I upgraded the firmware to: > > MBA: 4.3, PXE: 2.20 MAC: 00:50:da:64:41:54 > > Now I get the following messages: > > Client ID: 192.168.104.56 Netmask: 255.255.255.0 DHCP 192.169.104.141 > PXE-E55 ProxyDHCP No reply to request on Port 4011 > > It appears that I am missing something but I am not sure what since > one machine works fine but the other one does not. >I would try to *NOT* use the PXE option space -- see the documentation. There is firmware out there that don't accept that unless you have a full PXE server running. -hpa
H. Peter Anvin
2002-Sep-04  17:25 UTC
[syslinux] PXE-E55 ProxyDHCP - No reply to request on port 4011
Steve Oliphant wrote:> > option space PXE; > option PXE.mtftp-ip code 1 = ip-address; > option PXE.mtftp-cport code 2 = unsigned integer 16; > option PXE.mtftp-sport code 3 = unsigned integer 16; > option PXE.mtftp-tmout code 4 = unsigned integer 8; > option PXE.mtftp-delay code 5 = unsigned integer 8; > option PXE.discovery-control code 6 = unsigned integer 8; > option PXE.discovery-mcast-addr code 7 = ip-address; > # option PXE.magic code 208 = string; > # option PXE.configfile code 209 = text; > # option PXE.pathprefix code 210 = text; > # option PXE.reboottime code 211 = unsigned integer 32; >Incidentally, the PXELINUX configuration options are *not* part of the PXE configuration space, which is a vendor-option-space. The PXELINUX configuration options live in a site-option-space, and so need to be kept separate. It looks, above, that you're trying to do MTFTP and so you already have at least one PXE-specific server installed. It seems that for PXE, there really is "all or nothing" -- either don't use any PXE options and use simple DHCP/TFTP, or run a full PXE server. -hpa