[syslinux] Problem in getting tftp transfer to succeed
Josef Siemes
jsiemes at web.de
Sun Apr 13 08:52:51 PDT 2003
Hi,
Louis Van den Broek <vandenbroek.y at skynet.be> schrieb am 13.04.03 11:18:05:
>
> Setup:
> Server: Mac OS X Server which serves dhcp and tftp requests
> client: Acer with PXE boot agent 4.0.19
> file to transfer: -rw-r--r-- 1 root wheel 10988 Apr 12 13:50
> pxelinux.0
>
> The default tftpd daemon doesn't support the tsize option (I think,
> look at the packet trace at the end, it reports the file isn't found,
> but I think this is because of tsize ... but I could be wrong)
Hmm. Seems your client doesn't like the server? See below.
> Now when I try to load pxelinux.0 with the Acer PXE client I get the
> following error: Missing mode.
Never seen that.
> Here is the packet trace ...
>
> [xserve:/usr/libexec] yves% sudo tcpdump -i en0 -s 0 -X host
> 192.168.1.10
> tcpdump: listening on en0
> 10:42:49.273193 192.168.1.1.bootps > 192.168.1.10.bootpc:
> xid:0x40ab183f flags:0x8000 Y:192.168.1.10 S:192.168.1.1 sname "xserve"
> vend-rfc1048 DHCP:OFFER SID:192.168.1.1 LT:3564 SM:255.255.255.0
> DG:192.168.1.1 NS:192.168.1.1 DN:"" BF:"/private/tftpboot/pxelinux.0"
> 10:42:50.316668 192.168.1.1.bootps > 192.168.1.10.bootpc:
> xid:0x40ab183f flags:0x8000 Y:192.168.1.10 S:192.168.1.1 sname "xserve"
> vend-rfc1048 DHCP:ACK SID:192.168.1.1 LT:3564 SM:255.255.255.0
> DG:192.168.1.1 NS:192.168.1.1 DN:"" BF:"/private/tftpboot/pxelinux.0"
> 10:42:50.321376 arp who-has 192.168.1.1 tell 192.168.1.10
> 10:42:50.321402 arp reply 192.168.1.1 is-at 0:3:93:db:7c:6
> 10:42:50.321473 192.168.1.10.2070 > 192.168.1.1.tftp: 45 RRQ
> "/private/tftpboot/pxelinux.0"
These all look ok.
> 10:42:50.341634 192.168.1.1.49234 > 192.168.1.10.2070: udp 14
> 0x0000 4500 002a 4070 0000 4011 b6f7 c0a8 0101 E..*@p.. at .......
> 0x0010 c0a8 010a c052 0816 0016 cea0 0006 7473 .....R........ts
> 0x0020 697a 6500 3130 3938 3800 ize.10988.
OACK packet: 'tsize is 10988'.
> 10:42:50.341752 192.168.1.10.2070 > 192.168.1.1.49234: udp 17
> 0x0000 4500 002d 0003 0000 1411 2362 c0a8 010a E..-......#b....
> 0x0010 c0a8 0101 0816 c052 0019 b0d2 0005 0000 .......R........
> 0x0020 5446 5450 2041 626f 7274 6564 0000 c595 TFTP.Aborted....
> 0x0030 e0e5 ..
Client responds with 'TFTP ERR' (Errorcode 0: 'TFTP Aborted).
> 10:42:50.343263 192.168.1.10.2071 > 192.168.1.1.tftp: 22 RRQ ""
> 0x0000 4500 0032 0004 0000 1411 235c c0a8 010a E..2......#\....
> 0x0010 c0a8 0101 0817 0045 001e e59e 0001 006f .......E.......o
> 0x0020 6374 6574 0062 6c6b 7369 7a65 0031 3435 ctet.blksize.145
> 0x0030 3600 375d 80b8 6.7]..
That's really funny: The client left out the filename!
> 10:42:50.344614 192.168.1.1.49235 > 192.168.1.10.2071: udp 17
> 0x0000 4500 002d 4071 0000 4011 b6f3 c0a8 0101 E..- at q..@.......
> 0x0010 c0a8 010a c053 0817 0019 50ac 0005 0004 .....S....P.....
> 0x0020 4d69 7373 696e 6720 6d6f 6465 00 Missing.mode.
So the server responds 'Missing mode' (it requires a tftp filename, and
misses the zero-lengt name. So it seems that 'octet' is taken as the
filename, and missing from the options - so the 'mode'-field with
octet/netascii is missing.
> Packet trace with original tftpd:
[see above ...]
> 10:18:12.051520 192.168.1.10.2070 > 192.168.1.1.tftp: 45 RRQ
> "/private/tftpboot/pxelinux.0"
> 10:18:12.190504 192.168.1.1.49189 > 192.168.1.10.2070: udp 516
First Data packet from the server.
> 0x0020 5446 5450 2041 626f 7274 6564 0000 a478 TFTP.Aborted...x
> 0x0030 ab84 ..
Client aborts?!?
> 10:18:12.192161 192.168.1.10.2071 > 192.168.1.1.tftp: 22 RRQ ""
And issues the same empty RRQ?
> 10:18:12.202722 192.168.1.1.49190 > 192.168.1.10.2071: udp 19
Server responds 'file not found'
This should have worked for the first transfer anyway, because the
tsize option isn't required by the pxe rom, it's only used for pxelinux
itself. So the tftp transfer for pxelinux.0 should have succeeded,
regardless of the standard or tftp-hpa tftp server. Only the
pxelinux tftp requests (for /private/tftpboot/pxelinux.cfg/default e.g)
depend on the tsize option.
So I think this is a more general problem - maybe even with your network
card. Could you perhaps try to set this up under a linux server, and after
that switch back to MacOS? I think noone tried this under MacOS already
(anyone?), though tftp-hpa also works on Solaris, AIX and even cygwin.
Regards,
Josef
______________________________________________________________________________
UNICEF bittet um Spenden fur die Kinder im Irak! Hier online an
UNICEF spenden: https://spenden.web.de/unicef/special/?mc=021101
More information about the Syslinux
mailing list