accomodating broken pxe client

Carl Karsten carl at personnelware.com
Tue Oct 2 19:59:51 UTC 2007


The proper response to this post is probably "throw it out" or "boot from a 
floppy."  But for kicks, I am wondering if I can get the on board pxe routine to 
be useful by throwing all the tftp related options into the dhcp response.  I 
have seen a number of screwy clients, wouldn't mind being able to accommodate them.

For instance, this message:
PXE-EA1: No PXE server found, using standard boot file.
went away by setting
         option vendor-class-identifier "PXEClient" ;

below is my current config, and some dhcpdump.

And as long as we are on the subject, anyone know how I can copy the rom code 
into a file and run it in a VM?  qemu seems to support the nic.

Or, is there a way to boot into an OS (probably dos6 so that the cpu is in the 
right mode) and call into the boot rom code such that if it returns, it can be 
run again without haing to reboot, wait for POST, etc.

Carl K

host sahara {
         # 8255/7/8/9 Eternet Pro 100
         hardware ethernet 00:40:ca:11:3c:6c ;
         option host-name "sahara" ;
         option vendor-class-identifier "PXEClient" ;
         next-server 192.168.1.7;
         filename "pxelinux.0" ;
         server-name shaz;
         option tftp-server-name shaz;
                  }

root at shaz:/var/www/temp # tcpdump -lenx -s 1500 ether host 00:40:ca:11:3c:6c | 
dhcpdump
   TIME: 14:55:36.130823
     IP: > (00:40:ca:11:3c:6c) > BOOTP/DHCP (ff:ff:ff:ff:ff:ff,)
     OP: 1 (BOOTPREQUEST)
  HTYPE: 1 (Ethernet)
   HLEN: 6
   HOPS: 0
    XID: ca113c6c
   SECS: 0
  FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 00:40:ca:11:3c:6c:00:00:00:00:00:00:00:00:00:00
  SNAME: .
  FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  55 (  4) Parameter Request List      1 (Subnet mask)
					      3 (Routers)
					     60 (Vendor class identifier)
					     43 (Vendor specific info)
					
OPTION:  57 (  2) Maximum DHCP message size 1260
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010200           ...
OPTION:  60 (  9) Vendor class identifier   PXEClient
---------------------------------------------------------------------------
   TIME: 14:55:37.000885
     IP: > (00:90:27:8e:5f:af) > BOOTP/DHCP (00:40:ca:11:3c:6c,)
     OP: 2 (BOOTPREPLY)
  HTYPE: 1 (Ethernet)
   HLEN: 6
   HOPS: 0
    XID: ca113c6c
   SECS: 0
  FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 192.168.1.13
SIADDR: 192.168.1.7
GIADDR: 0.0.0.0
CHADDR: 00:40:ca:11:3c:6c:00:00:00:00:00:00:00:00:00:00
  SNAME: shaz.
  FNAME: pxelinux.0.
OPTION:  53 (  1) DHCP message type         2 (DHCPOFFER)
OPTION:  54 (  4) Server identifier         192.168.1.7
OPTION:  51 (  4) IP address leasetime      43200 (12h)
OPTION:   1 (  4) Subnet mask               255.255.255.0
OPTION:   3 (  4) Routers                   192.168.1.1
OPTION:  60 (  9) Vendor class identifier   PXEClient
---------------------------------------------------------------------------
   TIME: 14:55:37.007585
     IP: > (00:40:ca:11:3c:6c) > BOOTP/DHCP (ff:ff:ff:ff:ff:ff,)
     OP: 1 (BOOTPREQUEST)
  HTYPE: 1 (Ethernet)
   HLEN: 6
   HOPS: 0
    XID: ca113c6c
   SECS: 0
  FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 00:40:ca:11:3c:6c:00:00:00:00:00:00:00:00:00:00
  SNAME: .
  FNAME: .
OPTION:  53 (  1) DHCP message type         3 (DHCPREQUEST)
OPTION:  50 (  4) Request IP address        192.168.1.13
OPTION:  55 (  4) Parameter Request List      1 (Subnet mask)
					      3 (Routers)
					     60 (Vendor class identifier)
					     43 (Vendor specific info)
					
OPTION:  57 (  2) Maximum DHCP message size 1260
OPTION:  54 (  4) Server identifier         192.168.1.7
OPTION:  93 (  2) Client System             0000             ..
OPTION:  94 (  3) Client NDI                010200           ...
OPTION:  60 (  9) Vendor class identifier   PXEClient
---------------------------------------------------------------------------
   TIME: 14:55:37.017139
     IP: > (00:90:27:8e:5f:af) > BOOTP/DHCP (00:40:ca:11:3c:6c,)
     OP: 2 (BOOTPREPLY)
  HTYPE: 1 (Ethernet)
   HLEN: 6
   HOPS: 0
    XID: ca113c6c
   SECS: 0
  FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 192.168.1.13
SIADDR: 192.168.1.7
GIADDR: 0.0.0.0
CHADDR: 00:40:ca:11:3c:6c:00:00:00:00:00:00:00:00:00:00
  SNAME: shaz.
  FNAME: pxelinux.0.
OPTION:  53 (  1) DHCP message type         5 (DHCPACK)
OPTION:  54 (  4) Server identifier         192.168.1.7
OPTION:  51 (  4) IP address leasetime      43200 (12h)
OPTION:   1 (  4) Subnet mask               255.255.255.0
OPTION:   3 (  4) Routers                   192.168.1.1
OPTION:  60 (  9) Vendor class identifier   PXEClient
---------------------------------------------------------------------------
   TIME: 14:55:37.017791
     IP: who-has (00:40:ca:11:3c:6c) > tel (ff:ff:ff:ff:ff:ff,)
     OP: 0 (wrong specified)
  HTYPE: 0 (wrong specified)
   HLEN: 0
   HOPS: 0
    XID: 00000000
   SECS: 0
  FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.1.13
SIADDR: 192.168.1.7
GIADDR: 0.0.0.0
CHADDR: 00:40:ca:11:3c:6c:00:00:00:00:00:00:00:00:00:00
  SNAME: shaz.
  FNAME: pxelinux.0.
---------------------------------------------------------------------------
   TIME: 14:55:37.017844
     IP: > (00:90:27:8e:5f:af) > ICM (00:40:ca:11:3c:6c,)
     OP: 0 (wrong specified)
  HTYPE: 0 (wrong specified)
   HLEN: 0
   HOPS: 0
    XID: 00000000
   SECS: 0
  FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 192.168.1.7
GIADDR: 0.0.0.0
CHADDR: 00:40:ca:11:3c:6c:00:00:00:00:00:00:00:00:00:00
  SNAME: shaz.
  FNAME: pxelinux.0.

(repeat the last frame till the client times out.)




More information about the dhcp-users mailing list