The target system for an OpenBSD 6.0 install, an alix.2d13, is directly
connected to an alix.3x box serving dhcp and tftp.
alix.3x (Server):

# dmesg | head -n 1
OpenBSD 6.0 (GENERIC) #1917: Tue Jul 26 12:48:33 MDT 2016

# ifconfig vr0
vr0: flags=8b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST>
mtu 1500
        lladdr 00:0d:b9:13:3c:30
        index 1 priority 0 llprio 3
        groups: egress
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet 192.168.0.44 netmask 0xffffff00 broadcast 192.168.0.255

# dhcpd vr0

# cat
/etc/dhcpd.conf

option domain-name "fritz.box";
option domain-name-servers 192.168.0.44;
option routers 192.168.0.44;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
server-name "DHCPserver";
server-identifier 192.168.0.44;
next-server 192.168.0.44;
default-lease-time 600;
max-lease-time 600;

#option bootfile-name "pxeboot";

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.80 192.168.0.254;
  filename "pxeboot";
  #host alix_2d13 { hardware ethernet 00:0d:b9:33:d4:5c; }
}
# ls -lR /tftpboot/
total 14100
-rw-r--r--  1 root  wheel    71824 Sep 26 22:40 boot
-rw-r--r--  1 root  wheel  7173390 Sep 26 22:40 bsd.rd
drwxr-xr-x  2 root  wheel      512 Sep 26 22:43 etc
-rw-r--r--  1 root  wheel    81444 Sep 28 09:41 pxeboot

/tftpboot/etc:
total 4
-rw-r--r--  1 root  wheel  46 Sep 27 16:03 boot.conf
# cat /tftpboot/etc/boot.conf
stty com0 38400
set tty com0
boot tftp:bsd.rd

# tftp localhost
tftp> get pxeboot
Received 81965 bytes in 0.1 seconds
tftp>

# #transferred byte count doesn't match file lenth, but the locally
delivered file is fine:
# diff -s pxeboot
/tftpboot/pxeboot

Files pxeboot and /tftpboot/pxeboot are identical

# tftpd -d /tftpboot

tftpd: 192.168.0.81: read request for 'pxeboot'
tftpd: 192.168.0.81: read request for 'pxeboot'
tftpd: 192.168.0.81: read request for 'pxeboot'
tftpd: 192.168.0.81: read request for 'pxeboot'
tftpd: 192.168.0.81: read request for 'pxeboot'
tftpd: 192.168.0.81: Operation timed out
tftpd: 192.168.0.81: Operation timed out
tftpd: 192.168.0.81: read request for 'pxeboot'
tftpd: 192.168.0.81: Operation timed out
tftpd: 192.168.0.81: Operation timed out
tftpd: 192.168.0.81: Operation timed out
tftpd: 192.168.0.81: Operation timed out
tftpd: 192.168.0.81: read request for 'pxeboot'
tftpd: 192.168.0.81: Operation timed out
tftpd: 192.168.0.81: read request for 'pxeboot'
tftpd: 192.168.0.81: Operation timed out
tftpd: 192.168.0.81: read request for 'pxeboot'
tftpd: 192.168.0.81: Operation timed out
tftpd: 192.168.0.81: read request for 'pxeboot'
tftpd: 192.168.0.81: Operation timed out

# #Corresponding tcpdump:
# tcpdump -i vr0
09:44:29.798240 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0xba33d45c
secs:4 flags:0x8000 [|bootp]
09:44:30.805580 alix.fritz.box.bootps > 255.255.255.255.bootpc:
xid:0xba33d45c secs:4 flags:0x8000 Y:192.168.0.81 S:alix.fritz.box ether
00:0d:b9:33:d4:5c sname "DHCPserver" [|bootp] [tos 0x10]
09:44:33.800273 0.0.0.0.bootpc > 255.255.255.255.bootps: xid:0xba33d45c
secs:4 flags:0x8000 [|bootp]
09:44:34.021374 alix.fritz.box.bootps > 255.255.255.255.bootpc:
xid:0xba33d45c secs:4 flags:0x8000 Y:192.168.0.81 S:alix.fritz.box ether
00:0d:b9:33:d4:5c sname "DHCPserver" [|bootp] [tos 0x10]
09:44:34.320566 arp who-has alix.fritz.box tell 192.168.0.81
09:44:34.320671 arp reply alix.fritz.box is-at 00:0d:b9:13:3c:30
09:44:34.320780 192.168.0.81.2070 > alix.fritz.box.tftp: 24 RRQ "pxeboot"
09:44:36.326869 192.168.0.81.2071 > alix.fritz.box.tftp: 24 RRQ "pxeboot"
09:44:40.337057 192.168.0.81.2072 > alix.fritz.box.tftp: 24 RRQ "pxeboot"
09:44:46.324875 192.168.0.81.2073 > alix.fritz.box.tftp: 24 RRQ "pxeboot"
09:44:54.290322 192.168.0.81.2074 > alix.fritz.box.tftp: 24 RRQ "pxeboot"
09:45:04.454216 192.168.0.81.2075 > alix.fritz.box.tftp: 29 RRQ "pxeboot"
09:45:40.489906 192.168.0.81.2076 > alix.fritz.box.tftp: 29 RRQ "pxeboot"
09:46:52.508530 192.168.0.81.2077 > alix.fritz.box.tftp: 29 RRQ "pxeboot"
09:48:40.509010 192.168.0.81.2078 > alix.fritz.box.tftp: 29 RRQ "pxeboot"
09:51:04.491359 192.168.0.81.2079 > alix.fritz.box.tftp: 29 RRQ "pxeboot"

# # From /var/log/daemon:
Sep 28 09:44:29 alix dhcpd[89986]: DHCPDISCOVER from 00:0d:b9:33:d4:5c
via vr0
Sep 28 09:44:30 alix dhcpd[89986]: DHCPOFFER on 192.168.0.81 to
00:0d:b9:33:d4:5c via vr0
Sep 28 09:44:33 alix dhcpd[89986]: DHCPREQUEST for 192.168.0.81 from
00:0d:b9:33:d4:5c via vr0
Sep 28 09:44:34 alix dhcpd[89986]: DHCPACK on 192.168.0.81 to
00:0d:b9:33:d4:5c via vr0


# # Now what happens on target? => Output on serial console of alix target:

$ cu -l /dev/ttyS0 -s 9600
Connected.
PC Engines ALIX.2 v0.99m
640 KB Base Memory
261120 KB Extended Memory

01F0 Master 848A SDCFHS-008G
Phys C/H/S 15538/16/63 Log C/H/S 974/255/63 LBA

Intel UNDI, PXE-2.0 (build 082)
Copyright (C) 1997,1998,1999  Intel Corporation
VIA Rhine III Management Adapter v2.43 (2005/12/15)

CLIENT MAC ADDR: 00 0D B9 33 D4 5C
CLIENT IP: 192.168.0.81  MASK: 255.255.255.0  DHCP IP:
192.168.0.44
GATEWAY IP: 192.168.0.44
PXE-E32: TFTP open
timeout
PXE-E32: TFTP open
timeout
PXE-E32: TFTP open
timeout

PXE-M0F: Exiting Intel PXE ROM.


=> So the target:
- has newest BIOS
- gets a lease
- get's the necessary arp replies
- asks the tftpd for the file
- it's there
- tftp works

- but the file pxeboot is not delivered.


No I don't know what to do next.


I tried to experiment with putting "/pxeboot" in the dhcpd.conf options
instead of "pxeboot" (the docs are not clear which one is necessary for
a file in tftpboot chroot dir), but this kind of change only got me to
this kind of strange tftpd console logs:

tftpd: 192.168.0.81: read request for '/pxeboo'

and later even, although the name in dhcpd.conf was indeed "pxeboot":

tftpd: 192.168.0.81: read request for 'pxeboo'

which strangly persisted some while even across killing and restarting
of dhcpd and powercycling the target.
Which might be a hint to some tftpd uninitialized buffer problem (or so).

Peer

--
Peer Janssen - p...@pjk.de

Reply via email to