Click to See Complete Forum and Search --> : PXE Boot Access Violation - Ubuntu Edgy with TFTPD-HPA


JohnnyXmas
04-03-2007, 11:15 AM
Hello All,

I've searched through the forums for this subject and tried several different suggestions \ solutions that I found, and have Googled around a bit but to no avail:


I'm running Ubuntu Edgy Eft on a Dell Precision 340 (I don't think specs apply to the problem, but can be provided if need be). The machine's purpose is to serve both DHCP addresses and PXE boot images. For these purposes, I am running dhcp3-server and tftpd-hpa.

DHCP works with no problems, and PXE clients are able to obtain an address, send the request for the boot file, and receive a response. The problem I am having is the PXE server appears to be denying access to the necessary files. I receive the following error \ info messages on the client computers (which incidentally are IBM Thinkpad T23's):

PXE-T02: Forbidden Directory
PXE-E3C: TFTP Error - Access Violation
PXE-M0F: Exiting Intel PXE ROM

I went as far as to chmod 777 the entire TFTPBOOT directory, but this did not help at all. Here are the contents of some files I'm sure will be helpful:

inetd.conf:
#:BOOT: Tftp service is provided primarily for booting. Most sites
# run this only on machines acting as "boot servers."


tftp dgram udp wait root /usr/sbin/in.tftpd -s /var/lib/tftpboot -r blksize




dhcpd.conf:
# PC Line
subnet 192.168.1.0
netmask 255.255.255.0
{
authoritative;
ignore client-updates;
allow unknown-clients;
range 192.168.1.101 192.168.1.28;
filename "/pxelinux.0";
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
}



Also, here is a copy of the tcpdump starting from the point at which the DHCP request first comes through:

root@PXE-server:/etc/init.d# tcpdump -i eth0 -vvv
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
07:59:39.280992 IP (tos 0x0, ttl 20, id 0, offset 0, flags [none], proto: UDP (17), length: 576) 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:d0:59:b5:7a:0d (oui Unknown), length: 548, xid:0x5ab57a0d, secs:4, flags: [Broadcast] (0x8000)
Client Ethernet Address: 00:d0:59:b5:7a:0d (oui Unknown) [|bootp]
07:59:39.283365 arp who-has 192.168.1.101 tell 192.168.1.1
07:59:40.003480 IP (tos 0x10, ttl 64, id 0, offset 0, flags [none], proto: UDP (17), length: 328) 192.168.1.1.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length: 300, xid:0x5ab57a0d, secs:4, flags: [Broadcast] (0x8000)
Your IP: 192.168.1.101
Server IP: 192.168.1.1
Client Ethernet Address: 00:d0:59:b5:7a:0d (oui Unknown) [|bootp]
07:59:40.283362 arp who-has 192.168.1.101 tell 192.168.1.1
07:59:40.351747 IP (tos 0x0, ttl 20, id 1, offset 0, flags [none], proto: UDP (17), length: 576) 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:d0:59:b5:7a:0d (oui Unknown), length: 548, xid:0x5ab57a0d, secs:4, flags: [Broadcast] (0x8000)
Client Ethernet Address: 00:d0:59:b5:7a:0d (oui Unknown) [|bootp]
07:59:40.357830 IP (tos 0x10, ttl 64, id 0, offset 0, flags [none], proto: UDP (17), length: 328) 192.168.1.1.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length: 300, xid:0x5ab57a0d, secs:4, flags: [Broadcast] (0x8000)
Your IP: 192.168.1.101
Server IP: 192.168.1.1
Client Ethernet Address: 00:d0:59:b5:7a:0d (oui Unknown) [|bootp]
07:59:40.358264 arp who-has 192.168.1.1 tell 192.168.1.101
07:59:40.358293 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: ICMP (1), length: 48) 192.168.1.1 > 192.168.1.101: ICMP echo request, id 49176, seq 0, length 28
07:59:40.358302 arp reply 192.168.1.1 is-at 00:06:5b:de:2a:7b (oui Unknown)
07:59:40.358366 IP (tos 0x0, ttl 20, id 2, offset 0, flags [none], proto: UDP (17), length: 56) 192.168.1.101.2070 > 192.168.1.1.tftp: [udp sum ok] 28 RRQ "/pxelinux.0" octet tsize 0
07:59:40.367613 IP (tos 0x0, ttl 64, id 19534, offset 0, flags [none], proto: UDP (17), length: 52) 192.168.1.1.32768 > 192.168.1.101.2070: [bad udp cksum 7f58!] UDP, length 24
07:59:40.367799 IP (tos 0x0, ttl 20, id 3, offset 0, flags [none], proto: UDP (17), length: 61) 192.168.1.101.2071 > 192.168.1.1.tftp: [udp sum ok] 33 RRQ "/pxelinux.0" octet blksize 1456
07:59:40.368883 IP (tos 0x0, ttl 64, id 19535, offset 0, flags [none], proto: UDP (17), length: 52) 192.168.1.1.32768 > 192.168.1.101.2071: [bad udp cksum 7e58!] UDP, length 24
07:59:45.359337 arp who-has 192.168.1.101 tell 192.168.1.1



I notice there that right after the boot file is requested, bad checksums are being reported, and I wasn't sure if that was trivial or not. It certainly would make sense if it applied, though the problem appears to be more privledge-related. As i mentioned above, I spent the better part of a day googling for answers, and can't find anything that works to correct this problem. Your ideas and suggestions would be greatly appreciated.