ARM64 Home Lab – LXC, DNS and DHCP – Part 1

Edit 2019/04/23 – I can’t keep track of all the comments on social media, leave a reply below if you have a question.

I’ve wanted a small homelab for some time, I don’t currently have much space and I had a need for multiple hosts.

I decided to go down the ARM route as this was going to be Linux based and ARM hardware is cheap, easy to source, low powered and tiny!

I went for 2x FriendlyARM Fire Pi Nano 3’s, these are pretty powerful little boards and can be purchased and shipped to the UK for around £35.
Specs wise they have 8x ARM64 cores and 1GB DDR3 RAM.

I needed a “Router” as I use a shared internet connection and only have access to WIFI. I used a PI Zero W for this with a OTG Ethernet Adapter – This one to be precise

I also needed a switch, as much as a Managed switch would have been nice they all tend to be fairly large and costly so I went for a cheap and small NETGEAR GS305-100UKS 5-Port Gigabit Switch

All of this is powered using a SPLAKS USB Charger

Software wise I went for a lite install of Raspbian for the Pi Zero and Armbian Stretch for the Fire Pi’s.

The Pi Zero runs DHCP and the USB ethernet port acts as the uplink for the FirePi’s. This was achieved using the following commands:

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

I will go over the rest of the config in another post.

I installed LXC on the FirePI’s and created a network bridge on each of them for the containers.

DHCP on the PI Zero means that the containers come up with an IP address and are ready to go, DHCP is only configured on the eth0 port of the PI so the main network is not effected.

The PI Zero is also used as a “Jump Box” via SSH to access the container hosts and containers.

And this is what it all looks like!

Network Diagram
Finished product – I’ll get a better image ASAP!

All of the guides and tutorials I do on this blog will be on this setup, the first of which will be the configuration of this setup so check back later!

Please let me know below if you have any questions!


  1. Thanks for checking out the ARM64 architecture with nanoPi. I’ve built a small MPI cluster with mpi4py support and with 4units managed to get 128-400 threads with 4kB load and 11us ping.

Leave a comment

Your email address will not be published. Required fields are marked *