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/udpto 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).