Messages in this thread |  | | Date | Fri, 7 Feb 1997 20:52:11 +0100 (MET) | From | Jakub Saternus <> | Subject | Bootpd under 2.0.28 and 2.1.25 (a problem) |
| |
Hello, This is a more or less detailed description of my problem with 2.1.25 and bootpd. Well to cut it short---it does not work. If you're interested in solving the problem (probably not only for me) then read on.
Part I %%%%%%%%%%%%%%%%%%%%
`uname -a`: Linux saturnus 2.1.25 #3 Mon Feb 3 15:35:05 MET 1997 i586
`netstat -r`: Kernel routing table Destination Gateway Genmask Flags Metric Ref Use Iface pla-net.pl * 255.255.255.0 U 0 0 0 eth0 default * 0.0.0.0 U 0 0 0 eth0
`arp -a`: Address HW type HW address Flags Mask 192.168.1.1 UNSPEC 00:00:00:00:00:00 MP *
(Trying to alter the arp table with `arp -s ...` is a waste of time.)
==== BOOTPC run on the server ==== Running `bootpc' under 2.1.25 with the following server mask specified gives the same (correct) result: # bootpc --debug --server 192.168.1.255 --hwaddr 00409522AFAF # bootpc --debug --server 192.168.255.255 --hwaddr 00409522AFAF # bootpc --debug --server 192.255.255.255 --hwaddr 00409522AFAF
>>>> Got family=1 (Ether=1) hardware addr is :00 40 95 22 AF AF plen = 300 plen - sizeof(struct bootp) = 0
00 : 0x63 0x82 0x53 0x63 0x01 0x04 0xFF 0xFF 08 : 0xFF 0x00 0x02 0x04 0xFF 0xFF 0xF1 0xF0 16 : 0x06 0x04 0xC0 0xA8 0x01 0x01 0xFF 0x00 24 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 32 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 40 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 48 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 56 : 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Size = 300 SERVER=192.168.1.1 IPADDR=192.168.1.2 BOOTFILE='/export/root/jupiter/vmlinuz' NETMASK=255.255.255.0 NETWORK=192.168.1.0 BROADCAST=192.168.1.255 TIMEOFFSET=-3600 DNSSRVS='192.168.1.1' <<<<
At the same time `in.bootpd' (version 2.4.3 compiled under 2.1.23) reports via syslogd: >>>> Feb 7 18:05:34 saturnus in.bootpd[712]: ioctl SIOCSARP: Invalid argument Feb 7 18:10:12 saturnus last message repeated 7 times <<<<
But the following command fails completely, though as I understand it should not as the diskless client is not oblidged to know the netmask. # bootpc --debug --server 255.255.255.255 --hwaddr 00409522AFAF
>>>> Got family=1 (Ether=1) hardware addr is :00 40 95 22 AF AF
No response from BOOTP server In FatalError(), errno was 2 Unable to locate an IP address for this host. ***Please report this problem**
[Unable to continue]
Will now loop forerver, break out of this to fix <<<<
One more note: tcpdump running all the time on anoter console did not show any activity on udp level apart from `whod' and `sunrpc' daemons but see the next section about a diskless client talking via the ehternet cable.
==== Bootrom code run from a floppy on another machine ==== The code has been taken from `netboot' package v0.3. At the server console I see this dump of toxic load:
tcpdump: listening on eth0 19:34:08.764025 0.0.0.0.bootpc > 255.255.255.255..bootps: xid:0xb4fe1200 S:255.255.255.255 [|bootp] 19:34:09.714217 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x86511300 S:255.255.255.255 [|bootp] 19:34:10.702901 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x584e1300 S:255.255.255.255 [|bootp] 19:34:11.691528 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x2a251300 S:255.255.255.255 [|bootp] 19:34:12.680257 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0xfc051300 S:255.255.255.255 [|bootp] (snip) 19:34:34.430904 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x83a1300 S:255.255.255.255 [|bootp] 19:34:35.419513 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0xda401300 S:255.255.255.255 [|bootp] 19:34:36.408196 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0xac511300 S:255.255.255.255 [|bootp] 19:34:37.396831 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x7e1c1300 S:255.255.255.255 [|bootp] 19:34:38.385520 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x50511300 S:255.255.255.255 [|bootp]
31 packets received by filter 0 packets dropped by kernel
Part II %%%%%%%%%%%%%%%%%%%%%%
Now let me reboot and do the same thing again under 2.0.28.
`uname -a`: Linux saturnus 2.0.28 #12 Mon Jan 20 22:35:52 MET 1997 i586
`netstat -r`: Kernel routing table Destination Gateway Genmask Flags Metric Ref Use Iface localhost * 255.255.255.255 UH 0 0 2 lo pla-net.pl * 255.255.255.0 U 0 0 2 eth0 default * 0.0.0.0 U 0 0 1 lo
`arp -a`: (no output)
And now the final surprise: Everything works great under 2.0.28. I get to the later stages of tftp and all. The same programs, the same libs, the same machine, even I am the same. But the kernel seems to be not quite the same. And so do the network services.
I just start off from my diskless client and all is OK:
tcpdump: listening on eth0 19:56:02.789309 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0x377b1300 S:255.255.255.255 [|bootp] 19:56:03.739309 0.0.0..0.bootpc > 255.255.255.255.bootps: xid:0x9d61300 S:255.255.255.255 [|bootp] 19:56:03.749309 saturnus.bootps > jupiter.bootpc: xid:0x377b1300 Y:jupiter S:saturnus [|bootp] 19:56:03.759309 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0xc99a1300 S:255.255.255.255 [|bootp] (snip) 19:56:03.809309 saturnus.bootps > jupiter.bootpc: xid:0xa7f1300 Y:jupiter S:saturnus [|bootp] 19:56:03.809309 saturnus.bootps > jupiter.bootpc: xid:0xca7b1300 Y:jupiter S:saturnus [|bootp] 19:56:07.969309 jupiter.1024 > saturnus.tftp: 37 RRQ "/export/root/jupiter/vml"[|tftp] 19:56:08.489309 saturnus.1039 > jupiter.1024: udp 516 19:56:08.489309 jupiter.1024 > saturnus.1039: udp 4 (snip)
1957 packets received by filter 0 packets dropped by kernel
During the whole process of bootp'ing `in.bootpd` reports no error messages.
Epilog %%%%%%%%%%%%%%%
I have read some posts about the built-in loopback interface and some arp changes that probably cause the whole mess but it just as well could be one of Murphy's Laws. I hope there is someone out there who can explain all this to me.
Thank you, Jakob.
$a __o _(\<._ Jakob Saternus IFA UAM <skuba@hum.amu.edu.pl> (_)/ (_) PGP Public Key via 'finger'; `ed' rulez .
|  |