April 16, 2017

Home Lab : Overview

Introduction

Many years ago I grew tired of my primary system doubling as my lab environment. A SysAdmin by trade, it meant regular breakage and rebuilding of my primary system as I tried out new things and ran through “what happens when I do this“ scenarios. Since I was treating my primary system like a server, it also meant that I fell into the trap of focussing so much on the knobs and dials of applications that I didn’t end up learning to actually use them, as a user. At some point I finally realized that what I really needed was a lab environment that was separate from my primary system.

Having already gone through the adventure of trying to pretend that a home AC controlled closet could house actual servers, I wanted to keep things small, quiet, and relatively low power. Initially I went full cloud, and have had various things running at different internet providers. While nice for providing internet accessible services, I still like working with hardware, and there’s something refreshing to being able to control the whole stack of an environment, and minimizing the number of black boxes. It also turns out to be a decent salve for occupational burnout. I won’t get into that topic that right now, leaving it for future posts where it can have the focus it deserves.

I don’t know how many of these posts I’ll end up making, but there are many components that I’ve put together, and continue to modify. To start with, I’m going to cover the internal network. This involved migrating a standard home cable modem and wifi router setup to a managed switch with a dedicated pfSense system. In future posts, I’ll cover Raspberry Pi stacks, and an Intel NUC based vSphere environment, complete with vSAN. Beyond the hardware, I’ll also be covering software components, including the Hashicorp stack, ELK, Kubernetes, and Prometheus. I expect topics to come and go, as I retool things. With that, onto the network.

The Hardware

The Switch

The first place to start with the home network is a managed switch that can provide as many features as possible that are normally found in data center environments. A usual barrier to this is cost, which then leads to feature shaving. Unfortunately the drop off in features is often faster than cost. One happy outlier comes from an unexpected company, Cisco. The SG 300-20 is in a nice sweet spot. The functionality of the SG 300 series is almost at parity with the enterprise Cisco switches. The switch runs a modified version of Cisco’s IOS, and is a full Layer 3 router, including interVLAN routing. It also supports LACP, which is useful when using a NAS such as the QNAP TS-431P.

While 20 ports seems like a lot, when you start adding in a bunch of Raspberry Pis and systems that have multiple network interfaces, they can fill up quickly. If you have some regular dumb switches sitting around, don’t toss them out. They are very handy for using as uplinks for Raspberry Pis specifically. Since the Pis only connect at 100Mb, four or five will easily fit on a single uplinked 1GB dumb switch, which then saves three or four ports on the SG 300.

The Router / Firewall

While the pfSense folks have hardware listed that’s certified, it’s really geared at large organizations that are looking for supported systems. For home use, much cheaper options exist. I went with a QOTOM J1900 bare bones box, and put 8GB of RAM, and a 240GB SSD.

That ends up being overkill for basic router functionality, especially on the storage side. A smaller SSD would work just as well. The 240GB size hit a nice price vs capacity point, and if I ever want to setup a Squid Proxy, the extra storage will become useful.

Next Time : Software

The next post will focus on setting up the network gear, including software installation and configuration.

© Sean Johnson 2017

Powered by Hugo & Kiss.