2

I'm trying to install FOG in Docker (via boot2docker for Windows) at my workplace as a bit of a learning exercise. FOG has a handy little script that installs everything for you, and that works great on an Ubuntu server, but I'm having troubles getting it running in Docker

I've pulled Ubuntu 12.04, because that's the recommended version for FOG. Everything seems to be running great, and I can use tftp localhost in the container to get files, and I can use tftp in my Windows 8.1 host to get files from the container (e.g. tftp 127.0.0.1 GET boot.txt) but when I try and do the same on another machine, it just times out.

I've tried the following things:

  • Open up UDP port 69 in boot2docker (via VirtualBox > boot2docker-vm > Settings > Network > Port Forwarding > Add UDP port 69 (and even tried with various local and guest IP addresses, such as 0.0.0.0, 127.0.0.1 and 10.13.0.14, which is the machine's IP address)
    • I also added a bunch of of UDP ports, including 58162, 43595 and 59037, which I saw in the TFTP data when I checked in Wireshark. On top of that, I tried this with both elevated and unelevated privileges in Windows 8.1
  • Completely disable the firewall in Windows 8.1 on both ends.
  • Set the network type in VirtualBox to Bridged mode (it's back on NAt, as it was before)
  • Used tcpdump inside the Docker to confirm that the packets are coming in from the remote machine (they are, and the server is sending a reply, but the packets aren't escaping the container)
  • Using Wireshark on Windows 8.1 to look for traffic. I can see TFTP data coming IN from my remote machine, but no replies coming BACK to my remote machine
  • Checked for a firewall in Ubuntu (there is none, it's a pretty stripped back version for Docker)
  • Tried visiting FOG's web interface from a different machine (that works great, I can add new images to FOG and so forth)
  • Tried installing a TFTP server on a blank Ubuntu install in Docker (e.g. not running the FOG install script). Still no good
  • Ran my image with -p 69:69/udp to explicitly allow the port through
  • Installed iptables to explicitly let UDP port 69 out
  • Checked my work network's firewall and switches to see if port 69 was blocked -- it wasn't (as TFTP traffic was reaching the docker host)
  • From my host, I ran tftp <ip address of another machine on the network running Wireshark> GET boot.txt. I saw TFTP traffic coming in (but because it wasn't running a TFTP server, it returned an error)
  • In the past we've had FOG running on a server, but it was decommissioned to give more resources to things like the email server and such.
  • I tried the docker image on my Ubuntu 14.04 laptop (so, using 14.04 as the host and my docker container as the guest) and it worked, so the issue seems to be with Windows, though I'm not sure where to go from here

So the issue seems to be that TFTP packets aren't escaping Windows (but HTTP traffic IS escaping).

Any suggestions?

1

In the end, I wound up moving my Docker image to an Ubuntu laptop I had sitting around. Now my TFTP server works perfectly with zero modification, so the issue was almost certainly something to do with either Virtualbox, Windows or boot2docker (though I'm not sure about the last one).

I'll post my question on a more relevant stackexchange (now that I know it's not a docker issue) and if I get an answer, I'll update this one so others can benefit

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.