HomeLab Networking Upgrade [and progress update] !
Where We Started...
Way back in October of 2022, I began the creation of a personal project. A HomeLab. With this project, I planned on expediting my learning, hosting my own services, and getting into a wonderful new hobby!
When it started, my "Lab" really boiled down to one single reused and abused Lenovo ThinkPad L440 laptop. Boasting a staggeringly weak early i3 processor, and a screaming 8GB of RAM...it knew it was perfect for large-scale virtualization (jokes...of course).
With this laptop, I delved into Proxmox, PiHole, Windows NAS shares, basic network configuration etc. Backing up my mighty laptop, was the classic $40 Walmart-purchased router that you see here. It features NO VLAN Support, NO Subnetting Support, and no advanced customization of any kind. What it did, though, was give me a gateway to the internet. Armed with such a tool, I could tinker with all manner of .iso images on my tiny Proxmox hypervisor. This modest setup was the beginning of a passion for learning Information Technology!
The Upgrade:
<Hardware>
As can be seen from the topmost picture of this article, my hardware has come a long way since October. From a folding table and some empty boxes, to a genuine rack with business-class equipment! From the top, my rack includes the TP-Link Jetstream TL-SG3428 L2+ switch and two Dell PowerEdge R510 Servers that had been retired from an enterprise environment (this means iDRAC management!). Towards the bottom I have 2 *unused* Dell PowerVault MD1000 units. They generally remain off due to the excessive amount of heat and noise that they produce. Lastly, at the bottom of my rack, sits my Lenovo ThinkPad L440 laptop...still on, still connected, and waiting for a new purpose!
The scale of this upgrade is hard to overstate. The switch is amazing, and even includes 4 SFP ports for fiber uplink, if I so decide to make that switch! With gigabit connectivity, the potential bandwidth of THIS switch FAR exceeds that of the integrated switch on the old Archer Router. The Dell servers are also a huge bonus! Though they bare the same model designation, they differ in terms of configuration. The first R510, which I will call ServerA, boasts dual Intel Xeon X5650 CPUs clocked at 2.67Ghz for a total of 12 physical cores. It also has 80GB of installed RAM and 6 total Gigabit NICs, not counting the iDRAC. The other server, which I will call ServerB, boasts a single Intel Xeon E5649 CPU clocked at 2.533Ghz with 12 Physical Cores. It has 24GB of RAM and 2 Gigabit NICs (integrated iDRAC express). Though these servers are older and weaker than most offerings today, they provide a fantastic sandbox for somebody unfamiliar with real enterprise server hardware, like myself. It has been on these boxes, that I have learned virtually everything that I have used to better my IT knowledge today!
<Software / OS>
It's all well and good to have such beefy hardware in the server rack, but what good is it if it doesn't run anything of note? It is time to talk about my current software setup, and how it has improved from a simple one-Proxmox laptop situation, starting from the most important part...routing.
My network isn't much use without robust routing. Thankfully, I have made quite the improvement in that department. My routing is now being handled by the famed Pfsense Community Edition routing software. Based on the rock-solid OpenBSD operating system, this enterprise-quality routing package includes a fully customizable firewall, VLAN support, Subnetting support, syslog integrations, UTM plugins, network monitoring, and so much more! This isn't the coolest part, though. The best part about my Pfsense setup, is that it is not running on any kind of physical appliance. My Pfsense router is entirely virtual.
The virtualization of my routing solution provides a great segue into another pertinent software facet of my HomeLab, what are Servers A & B doing? Well, they are serving as hypervisors! This explanation may be best set out in bullet points:
SERVER A:
SERVER B:
<Wireless>
As I am sure you can imagine, Dell R510 rackmount servers do not come with wireless radios built into them, and a virtualized Pfsense box can't exactly accept any wireless clients. So, where do I broadcast an SSID? How do I utilize Wi-Fi?
This question is answered by the triumphant return of my TP-Link Archer AX1500 wireless router! As it turns out, it can be configured to act as a wireless access point and bridge! In this mode, it disables its DHCP server, internal firewall, and all traffic shaping / QoS behaviors. It simply broadcasts a single SSID and that is it. Luckily, that is all I need (for now)!
领英推荐
The Process:
In this section of the article, I will attempt to give a high-level explanation of my migration process. Since I manage everything from my desktop computer, doing this changeover was tricky, and had to be done in pieces so as not to accidentally lock myself out of the GUIs of a major appliance due to not being able to route to my rack from my desk. That being said, the process went something like this:
HAVING actual server hardware made this process go so much more smoothly. For example, being able to manage my Dell servers from OUT of band using the iDRACs was crucial. It allowed me to remote into them to make configuration changes WITHOUT having to have a physical display, or even while the hypervisors were experiencing issues. Even so, there were definitely still MANY speed bumps along the way. I will describe two of the main ones here!
<Issue 1: HyperV Software Incompatibility>
Believe it or not, Microsoft HyperV has a software compatibility issue with Pfsense's latest stable build. This is due to the usage of a technology called Reactive Segment Coalescing (RSC). In short, this feature attempts to reduce host CPU utilization and increase network throughput by combining multiple TCP segments into fewer, larger segments. For reasons that are still not clear to me, or the Pfsense forums, leaving this feature on causes my WAN side speeds to plummet to nearly Dial-Up level numbers ~56Kbps. Furthermore, this feature can only be disabled from Powershell. In case anybody happens across this article with the same issue, here is the command:
get-vmswitch -name * | set-vmswitch -EnableSoftwareRsc $false
After disabling this feature, I watched my throughput balloon back up to expected rates! I also found that it helped to disable any hardware offloading being performed by the Pfsense virtual machine. This was at the suggestion of many seasoned forum-goers.
<Issue 2: Changing IP Information on Linux Server Guests>
Fortunately, this one was not so much of an issue as it was a gap in my knowledge. I had to learn some YAML syntax to be able to properly change over the IP configurations of some of my virtual guests. Specifically my TP-Link Omada controller, which runs on Ubuntu Server. After reading some documentation, and learning some YAML, I was able to properly write a new configuration file for "networkd" within Ubuntu Server 22.04 LTS!
What Did I Learn?
I want to take a minute here, as the article winds down, to list out some of the more notable things that I learned during this nearly day-long process of upgrading, reconfiguring, migrating, and re-racking various components of my HomeLab:
I learned more than just these items, but this is a great overview of some of the highlights of the project! Writing this now, I am left with a network that makes sense, is ordered properly, and runs flawlessly (insofar as current testing has revealed). HomeLab is still the best and most fun way to learn anything in Tech, and it has given me the opportunity to learn a plethora of amazing skills; I can't wait to see what else I can add to it, and I already have some ideas!
What's Coming Next?
I want to wrap up with a list of some ideas for what is coming next in my personal lab here. Now that I have a properly organized network, I am looking to see how far I can push the limits on my legacy server hardware.
There are more things that I am looking to do and, very soon, I will be taking my HomeLab ambitions to the cloud! Microsoft Azure and Oracle Cloud are on my to-do list for technologies to learn.
Thank you for reading to the end of this article. This was a much more casual / blog-style post and I like that! I will continue to publish more articles as I learn new things, attempt new experiments, and grow as an Engineer / Technician! Please comment and let me know what things I should try or what I can do better!
Thank you,
Tyler Sell
IT professional with strong critical thinking skills excited to provide quality technical support to systems/end-users and be a driving force in implementing technical improvements for an organization.
1 年This is awesome, Tyler. There is a ton of helpful info here, the article itself is very well-written too! ??
Gov. Cybersecurity Engineer | A.A.S Computer Eng. | Net+ | Sec+
1 年Dielle D. You should try out Pfsense or OPNsense! They are fantastic! I learned more in one night than in months of courses!