[syslinux] RIS and PXELINUX

Mark Dieterich mkd at cs.brown.edu
Wed Mar 20 12:31:10 PST 2002

Well, I'm definitely getting closer...  As hpa suggested, I started sniffing
packets as the machine tried to boot and here is what I saw:

**** NOTE: linuxserver is the dhcp server, w2kserver is the RIS server, and
workstation is the client I'm trying to get PXELINUX installs to work on ****

11:17:23.787348 >  xid:0xb4284a46 secs:4 flags:0x8000 file ""[|bootp]
11:17:23.790017 linuxserver.cs.brown.edu.bootps >  xid:0xb4284a46 secs:4 flags:0x8000 Y:workstation.cs.brown.edu S:godzilla.cs.brown.edu G:router-33.cs.brown.edu ether 0:2:b3:28:4a:46 file ""[|bootp] (DF)
11:17:23.793547 w2kserver.cs.brown.edu.bootps >  xid:0xb4284a46 flags:0x8000 S:w2kserver.cs.brown.edu G:router-33.cs.brown.edu ether 0:2:b3:28:4a:46 file ""[|bootp]
11:17:25.783960 >  xid:0xb4284a46 secs:4 flags:0x8000 file ""[|bootp]
11:17:25.786645 linuxserver.cs.brown.edu.bootps >  xid:0xb4284a46 secs:4 flags:0x8000 Y:workstation.cs.brown.edu S:godzilla.cs.brown.edu G:router-33.cs.brown.edu ether 0:2:b3:28:4a:46 file ""[|bootp] (DF)
11:17:25.807018 arp who-has router-33.cs.brown.edu tell workstation.cs.brown.edu
11:17:25.807545 arp reply router-33.cs.brown.edu is-at 0:7:84:47:74:9
11:17:25.808081 workstation.cs.brown.edu.bootpc > w2kserver.cs.brown.edu.4011:  (request) xid:0xb4284a46 secs:4 C:workstation.cs.brown.edu file ""[|bootp]
11:17:25.810521 w2kserver.cs.brown.edu.4011 > workstation.cs.brown.edu.bootpc:  (reply) xid:0xb4284a46 C:workstation.cs.brown.edu S:w2kserver.cs.brown.edu sname "GIGAN.cs.b"[|bootp]
11:17:25.816358 workstation.cs.brown.edu.2070 > w2kserver.cs.brown.edu.tftp:  44 RRQ "OSChooser\i386\startrom.com"

... continues into RIS installation ...

Interesting that the w2kserver AND the linuxserver are both responding.  I 
know the w2kserver is NOT configured to hand out dhcp addresses for this
machine, so this must be a hidden RIS feature.  My best guess at this point is
that the client is ignoring the next-server line in the dhcp.conf file and/or
the RIS server is handing out some piece of information needed by the client
to install, which is not being handed out by the dhcp server (running linux).

I got to poking around with dhcpd.conf file on the linuxserver and decided to
try the PXEclient install version.  So I modified it to include this one
machine I was testing in a group:

group {
    next-server linuxserver.cs.brown.edu;
    filename "/tftpboot/pxelinux.0";
    option dhcp-class-identifier "PXEClient";

    host workstation {
        hardware ethernet 00:02:b3:28:4a:46;
        fixed-address workstation;

Afer making these changes to the dhcp config file, the workstation no longer
started a RIS install :) and RIS still worked on the rest of the clients!
So I went and got a copy of the PXE server from 
http://www.kano.org.uk/projects/pxe and installed this.  I managed to get
the PXE boot menu loading!  However, the boot still fails because it can't
locate a boot server.  Here is a dump of the network traffic:

15:24:35.912764 >  xid:0xb4284a46 secs:4 flags:0x8000 [|bootp]
15:24:37.886329 >  xid:0xb4284a46 secs:4 flags:0x8000 [|bootp]
15:24:37.909372 arp who-has router-33.cs.brown.edu tell workstation.cs.brown.edu
15:24:37.910920 arp reply router-33.cs.brown.edu is-at 0:7:84:47:74:9
15:24:37.911461 workstation.cs.brown.edu.bootpc > linuxserver.cs.brown.edu.4011:  (request) xid:0xb4284a46 secs:4 C:workstation.cs.brown.edu [|bootp]
15:24:37.914232 linuxserver.cs.brown.edu.4011 > workstation.cs.brown.edu.bootpc:  (reply) xid:0xb4284a46 secs:4 S:linuxserver.cs.brown.edu [|bootp] (DF)
15:24:42.807815 workstation.cs.brown.edu.4011 > SGI-DOG.MCAST.NET.4011:  udp 548
15:24:44.751908 workstation.cs.brown.edu.4011 > SGI-DOG.MCAST.NET.4011:  udp 548
15:24:48.706439 workstation.cs.brown.edu.4011 > SGI-DOG.MCAST.NET.4011:  udp 548
15:24:54.638273 workstation.cs.brown.edu.4011 > SGI-DOG.MCAST.NET.4011:  udp 548
15:25:02.548223 workstation.cs.brown.edu.bootpc >  xid:0xb4284a46 secs:14 flags:0x8000 C:workstation.cs.brown.edu [|bootp]
15:25:04.524666 workstation.cs.brown.edu.bootpc >  xid:0xb4284a46 secs:15 flags:0x8000 C:workstation.cs.brown.edu [|bootp]
15:25:08.479225 workstation.cs.brown.edu.bootpc >  xid:0xb4284a46 secs:17 flags:0x8000 C:workstation.cs.brown.edu [|bootp]
15:25:14.411059 workstation.cs.brown.edu.bootpc >  xid:0xb4284a46 secs:20 flags:0x8000 C:workstation.cs.brown.edu [|bootp]

I've installed the tftp-hpa server and tested with a standalone client to 
make sure it was serving up files properly.   I'm not exactly sure what all is
going on in this step.  The workstation appears to be searching for a server
via multicast and then broadcast???

I can feel we are close here, just a few missing pieces...

Any suggestions?



More information about the Syslinux mailing list