mpare
June 7th, 2010, 09:20 AM
The Problem:
Guest computer receives IP address, Mask, DHCP IP, Gateway IP but fails to capture the TFTP file. The guest outputs error
PXE-E32: TFTP open timeout
PXE-E32: TFTP open timeout
PXE-E32: TFTP open timeout
PXE-M0F: Exiting PXE ROM
There is activity when I do a tcpdump on the server end, which I will post below under "Debug Info."
The Setup:
I'm running Ubuntu 9.10 (32bit) on laptop which is just running as a simple server on the shelf. I've setup DHCP, TFTP, DNS via DNSMasq and openssh-server. I've recorded the steps from a fresh fresh install in two posts on my website, http://paretech.com/node/15 and http://paretech.com/node/16. Basically these two posts outline the steps I took to remove network-manager, configure dnsmasq.
Things seem to be working as I intended, all of my computers (4) on the network are receiving proper IPs, they can connect to the internet, they can ping each other by host names defined in /etc/hosts. The computers that I am trying to netboot are just mother boards for kernel development. I use the same boards in a setup at work that is very similar if not exact to what I'm trying to configure at home.
What I've Tried:
I've tried my best to record the steps I took to make my setup from a clean install in the two posts above. I think they are very accurate. I've done a lot of searching in these forums and through google in general. I've found lots of posts that sound relevant and most seem to deal with iptable configs. I've tried turning off my iptables using the following,
$ iptables -X
$ iptables -t nat -F
$ iptables -t nat -X
$ iptables -t mangle -F
$ iptables -t mangle -X
$ iptables -P INPUT ACCEPT
$ iptables -P FORWARD ACCEPT
$ iptables -P OUTPUT ACCEPT
But it had zero impact on the result.
I also spent some time looking at, https://help.ubuntu.com/community/Installation/QuickNetboot. There they ran through several checks for evaluating the ports but they didn't offer any resolve if things didn't act as purposed.
For example, check if dnsmasq is listening on the bootp port 67...
# sudo netstat -nulp | grep '67'
udp 0 0 0.0.0.0:67 0.0.0.0:* 943/dnsmasq
But when I, check if dnsmasq is listening on the tftp port 69
# sudo netstat -nulp | grep '69'
<no output>
Which leads me to believe that there is something wrong with the listening port 69, at least according to the post at https://help.ubuntu.com/community/Installation/QuickNetboot.
Debugging Info
iptables -L:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 10.1.84.0/24 anywhere
ACCEPT all -- anywhere 10.1.84.0/24
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
some output from # sudo tcpdump -i eth0 ether host 00:24:8C:A8:59:07
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
00:39:27.314326 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:24:8c:a8:59:07 (oui Unknown), length 548
00:39:29.566264 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:24:8c:a8:59:07 (oui Unknown), length 548
00:39:29.629300 ARP, Request who-has barrel tell fish1, length 46
00:39:29.629308 ARP, Reply barrel is-at 00:0f:b0:8c:15:38 (oui Unknown), length 28
00:39:29.629385 IP fish1.2070 > barrel.tftp: 26 RRQ "pxegrub.0" octet tsize 0
00:39:29.629423 IP barrel > fish1: ICMP barrel udp port tftp unreachable, length 62
00:39:31.653139 IP fish1.2071 > barrel.tftp: 26 RRQ "pxegrub.0" octet tsize 0
00:39:31.653173 IP barrel > fish1: ICMP barrel udp port tftp unreachable, length 62
00:39:34.626407 ARP, Request who-has fish1 tell barrel, length 28
00:39:34.626487 ARP, Reply fish1 is-at 00:24:8c:a8:59:07 (oui Unknown), length 46
00:39:35.662830 IP fish1.2072 > barrel.tftp: 26 RRQ "pxegrub.0" octet tsize 0
00:39:35.662866 IP barrel > fish1: ICMP barrel udp port tftp unreachable, length 62
00:39:41.649549 IP fish1.2073 > barrel.tftp: 26 RRQ "pxegrub.0" octet tsize 0
00:39:41.649586 IP barrel > fish1: ICMP barrel udp port tftp unreachable, length 62
00:39:49.613723 IP fish1.2074 > barrel.tftp: 26 RRQ "pxegrub.0" octet tsize 0
00:39:49.613758 IP barrel > fish1: ICMP barrel udp port tftp unreachable, length 62
00:39:59.555281 IP fish1.2075 > barrel.tftp: 31 RRQ "pxegrub.0" octet blksize 1456
00:39:59.555321 IP barrel > fish1: ICMP barrel udp port tftp unreachable, length 67
00:40:04.554551 ARP, Request who-has fish1 tell barrel, length 28
I've also attached my dnsmasq.conf, with some of the mac addy's removed.
Conclusion
So I'm pretty new to Linux and Ubuntu, there is a lot I don't understand. But I have put in several hours of searching, trying, and reading. I know how offensive it can be when someone doesn't try before they post in the forums but I felt like it was time to ask for some help.
If you need any more system information I will be happy to respond back, I probably won't be able to respond back until after 6pm PST 6/7/10 so please ask for what ever data you need and if you don't mind including what you are looking for in that data and then the next logical step. I appreciate your help and value your time.
-Matt
Guest computer receives IP address, Mask, DHCP IP, Gateway IP but fails to capture the TFTP file. The guest outputs error
PXE-E32: TFTP open timeout
PXE-E32: TFTP open timeout
PXE-E32: TFTP open timeout
PXE-M0F: Exiting PXE ROM
There is activity when I do a tcpdump on the server end, which I will post below under "Debug Info."
The Setup:
I'm running Ubuntu 9.10 (32bit) on laptop which is just running as a simple server on the shelf. I've setup DHCP, TFTP, DNS via DNSMasq and openssh-server. I've recorded the steps from a fresh fresh install in two posts on my website, http://paretech.com/node/15 and http://paretech.com/node/16. Basically these two posts outline the steps I took to remove network-manager, configure dnsmasq.
Things seem to be working as I intended, all of my computers (4) on the network are receiving proper IPs, they can connect to the internet, they can ping each other by host names defined in /etc/hosts. The computers that I am trying to netboot are just mother boards for kernel development. I use the same boards in a setup at work that is very similar if not exact to what I'm trying to configure at home.
What I've Tried:
I've tried my best to record the steps I took to make my setup from a clean install in the two posts above. I think they are very accurate. I've done a lot of searching in these forums and through google in general. I've found lots of posts that sound relevant and most seem to deal with iptable configs. I've tried turning off my iptables using the following,
$ iptables -X
$ iptables -t nat -F
$ iptables -t nat -X
$ iptables -t mangle -F
$ iptables -t mangle -X
$ iptables -P INPUT ACCEPT
$ iptables -P FORWARD ACCEPT
$ iptables -P OUTPUT ACCEPT
But it had zero impact on the result.
I also spent some time looking at, https://help.ubuntu.com/community/Installation/QuickNetboot. There they ran through several checks for evaluating the ports but they didn't offer any resolve if things didn't act as purposed.
For example, check if dnsmasq is listening on the bootp port 67...
# sudo netstat -nulp | grep '67'
udp 0 0 0.0.0.0:67 0.0.0.0:* 943/dnsmasq
But when I, check if dnsmasq is listening on the tftp port 69
# sudo netstat -nulp | grep '69'
<no output>
Which leads me to believe that there is something wrong with the listening port 69, at least according to the post at https://help.ubuntu.com/community/Installation/QuickNetboot.
Debugging Info
iptables -L:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 10.1.84.0/24 anywhere
ACCEPT all -- anywhere 10.1.84.0/24
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
some output from # sudo tcpdump -i eth0 ether host 00:24:8C:A8:59:07
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
00:39:27.314326 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:24:8c:a8:59:07 (oui Unknown), length 548
00:39:29.566264 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from 00:24:8c:a8:59:07 (oui Unknown), length 548
00:39:29.629300 ARP, Request who-has barrel tell fish1, length 46
00:39:29.629308 ARP, Reply barrel is-at 00:0f:b0:8c:15:38 (oui Unknown), length 28
00:39:29.629385 IP fish1.2070 > barrel.tftp: 26 RRQ "pxegrub.0" octet tsize 0
00:39:29.629423 IP barrel > fish1: ICMP barrel udp port tftp unreachable, length 62
00:39:31.653139 IP fish1.2071 > barrel.tftp: 26 RRQ "pxegrub.0" octet tsize 0
00:39:31.653173 IP barrel > fish1: ICMP barrel udp port tftp unreachable, length 62
00:39:34.626407 ARP, Request who-has fish1 tell barrel, length 28
00:39:34.626487 ARP, Reply fish1 is-at 00:24:8c:a8:59:07 (oui Unknown), length 46
00:39:35.662830 IP fish1.2072 > barrel.tftp: 26 RRQ "pxegrub.0" octet tsize 0
00:39:35.662866 IP barrel > fish1: ICMP barrel udp port tftp unreachable, length 62
00:39:41.649549 IP fish1.2073 > barrel.tftp: 26 RRQ "pxegrub.0" octet tsize 0
00:39:41.649586 IP barrel > fish1: ICMP barrel udp port tftp unreachable, length 62
00:39:49.613723 IP fish1.2074 > barrel.tftp: 26 RRQ "pxegrub.0" octet tsize 0
00:39:49.613758 IP barrel > fish1: ICMP barrel udp port tftp unreachable, length 62
00:39:59.555281 IP fish1.2075 > barrel.tftp: 31 RRQ "pxegrub.0" octet blksize 1456
00:39:59.555321 IP barrel > fish1: ICMP barrel udp port tftp unreachable, length 67
00:40:04.554551 ARP, Request who-has fish1 tell barrel, length 28
I've also attached my dnsmasq.conf, with some of the mac addy's removed.
Conclusion
So I'm pretty new to Linux and Ubuntu, there is a lot I don't understand. But I have put in several hours of searching, trying, and reading. I know how offensive it can be when someone doesn't try before they post in the forums but I felt like it was time to ask for some help.
If you need any more system information I will be happy to respond back, I probably won't be able to respond back until after 6pm PST 6/7/10 so please ask for what ever data you need and if you don't mind including what you are looking for in that data and then the next logical step. I appreciate your help and value your time.
-Matt