Home Network Setup

Home Network Setup

Most people have a sensible home/apartment network setup. A modem, a standard router with Wi-Fi built in, and that’s it. Maybe a mesh network if you’re fancy or some Ethernet running to a few computers. God how I wish that was me sometimes.

But alas, I am a nerd. I must have networks that are entirely overkill. This page describes in excruciating detail my networks and hopefully can clue you in on the fun networks I’ve built in my spare time.

Last updated: August 2023

Home Network:

Internet Setup:

My inbound internet is via Optimum, and I’m on their 1 Gig cable plan. Advertised speeds are 940 Mbps down and 50 Mbps up. You really don’t need the 1 Gig in many circumstances, but it’s very handy for finishing downloads as fast as possible. Unfortunately since I’m using an Arris TM1602 modem, maximum speeds are about 850 Mbps down. I tried using a SB8200 modem to get those full speeds, but Optimum didn’t allow it on the network (probably because our account is broken and their systems think we still have VoIP service, and the SB8200 is a data-only modem)

Optimum as an ISP is fine for what it’s worth. I’m not expecting fiber to hit my area anytime soon, so it works.

I’ve considered getting Starlink as a backup WAN (we do live in an area with little cell service, and summer thunderstorms can knock out power for days), but at $139/mo, it’s just too expensive to sit around doing nothing for most of the time.

Networking Setup:

My Home Network can be best described as trying to be as professional as possible while also being as lazy as possible. It’s a SOHO setup mostly on Ubiquiti equipment, as even though their products definitely have some major flaws, they’re generally reliable and sell at a good pricepoint.

Router: UniFi Dream Machine Pro ($379) - This is an upgrade from the EdgeRouter-X that used to power the entire network. I got it on a Black Friday sale for $299, and it’s a good router for what it’s worth. The router part is rock solid, no issues to be found. Everything on top of that is, debatable. The Web UI is fine, statistics are classic Ubiquiti (meaning they’re inaccurate), and there’s enough customization stuff that fits my needs beyond a standard home router. The UDM Pro also runs the UniFi Talk software for the phones in the house.

Subnets & IPs: Over a summer some time ago, I transitioned my LAN from 192.168.1.0/24 to 10.0.0.0/16. This allows for better separation of devices on the network. For instance, servers have their own /24 subnet, networking equipment has their own /24 subnet, static IP devices have their own /24 subnet, and I expanded my DHCP server onto a /22 subnet (although it could work just as well on a /24). There’s plenty of room for expansion in the future, or even further separation onto /24 subnets.

APs: 1x UAP-nanoHD, 2x UAP-AC-Pros ($199 for nanoHD, $358 for AC-Pros when bought) - My home runs on a 3 AP setup, covering most parts of the house nicely. The latest addition is the nanoHD in my bedroom, where 95% of the WiFi traffic comes from. It’s able to reach peak speeds of about 550-600 Mbps on modern devices, which is quite impressive. Otherwise, the remaining two APs are the AC-Pros from 2018, which have been running reliably since. Wi-Fi coverage in the house is good, although roaming gets confusing now since it’s rare to see 2 bars of Wi-Fi anywhere inside.

Coax “backbone”: 3x goCoax MoCA 2.5 adapters ($180) - I don’t have Ethernet in my house, but what I do have is coaxial running to the places that need it the most. MoCA 2.5 is some black magic I will never understand, but I’m able to get a full 1Gbps link from equipment in the Router Room to my bedroom, which have had a goCoax “Node” since December 2020. A third node was installed in June 2021 in the office, replacing a NanoStation short-throw link that maxed out at ~400 Mbps.

Switches: 1x USW Flex Minis ($29) - One flex mini switch sits up in a home office to split off internet for a few devices. The other Flex Mini was formerly in my bedroom, but this was reassigned to my apartment.

Phones: 1x (formally 2x) UVP-Touch ($158) - As part of trying to get my own modem (and generally lower costs in the long run to pay for all this) - in June 2021, I did what any sane person would do, and buy into a (now not so) beta system called UniFi Talk. Two handsets are on the network - one in the Router Room that’s also an office, and one in the Office that’s really an office. Each phone has a separate line. So far, the phones have worked reliably. I’m using a Twilio Elastic SIP Trunk, as I calculated that using Twilio on a pay-per-minute basis is cheaper than UniFi Talk’s flat rate of $10/line. So far the cost savings have been great, the phone bill is on average about $5/mo for both lines!

In early 2023 due to low usage on one of the lines, I went ahead and moved that phone over to my apartment.

Server Setup:

As of 2023, there are no more servers running on my Home Network! I’ve found zero need to keep the Mac Mini that previously stood to do UPS monitoring, and as such, that’s the end of an era.

Apartment Network:

“My Apartment Network can be described as a more reasonable setup for my needs” is what I said in October 2022. It’s now May 2023 and the network has ballooned past any reasonable need and it’s getting to be overkill. lol.

It should be mentioned that I live alone and do not have roommates. In addition to the fact that I just prefer living alone and enjoy my own company, this also means that I can go ham on the network here without being at the mercy of other people (roommates) using it. It’s quite the win-win.

Internet Setup:

Inbound internet for the apartment is Spectrum, and I’m on their 500 Mbps plan. Advertised speeds are 500 Mbps down and 20 Mbps up. Now, I reach about 480 Mbps down (but I think I’m being limited by DPI on the UDR…more on this later) and 22-23 Mbps up in reality. The upload speed has really been the achilles heel of this entire network, uploading files is so slow that usually I just go to my college campus (with symmetrical gig) to upload big files. Additionally, Spectrum’s very odd peering with CDNs usually means I can only pull 200 Mbps from major CDNs (and Azure is even worse - sometimes it crawls along at 30-40 Mbps).

The modem running the show is the Arris SB8200 mentioned earlier. No issues at all, aside from long reboot times of about 5-8 minutes (Not sure whether this is a Spectrum or modem issue).

At least Spectrum offers IPv6 which is a win compared to Optimum. And it’s a HUGE win - Spectrum lets you get a whole /56 block of IPv6 addresses which is ludacrous (of course you can make your router grab a /64 block or lower, but I set my router to do /56).

Networking Setup:

Router/AP: UniFi Dream Router ($199): After taking ages to hunt down a UDR in summer 2022, I was able to get stock of one and make it the main router/AP for my apartment. One year later, it’s…holding up? Back in June 2022, the UDR did the trick(ish), aside from flakey updates in the apps.

Since Summer 2022, Spectrum gave everyone in Worcester an extra 100 Mbps of download bandwidth, I added a Talk phone to the network (then removed it a year later), and this has definitely pushed the router beyond its limits. With the Talk phone on the router, the Wi-Fi literally went down whenever I pulled 450+ Mbps from a wired device (it seems like the router can handle 500 Mbps without a Talk phone okay though). DPI became, and still remains horribly inaccurate (I don’t pull 1.7 TB of data daily). The flakey updates in the apps become extra flakey when you dare pull more than 200 Mbps of download bandwidth. I’ve also tried turning off some IDS/IPS settings but that hasn’t helped.

Oh, and now whenever I pull 400+ Mbps down on the network for any extended period of time, I get sporadic alerts from the UniFi app saying my internet was restored after a brief outage.

Anyway, I’m planning on swapping the UDR and the UDM Pro between my home and apartment, as it’s very clear I’m very rapidly outgrowing the UDR and that I was eating 95% of home network bandwidth when I lived there. I’ve also thought about potentially buying a used dual-NIC computer (or honestly repurposing another computer and adding a 2nd ethernet port via PCIe) to run OPNsense or PFsense for routing purposes, but for now that hasn’t manifested.

Subnets: Basically the same setup as my home network. The network runs on a 10.0.0.0/16 subnet, and a /22 subnet for DHCP, and a /24 block that I use for static IPs (such as servers). There’s a 10.2.0.0/24 subnet for IoT devices as well.

SSIDs: Two SSIDs on my network - One is a combined 2.4/5 GHz SSID for the main subnet and an IoT SSID that’s 2.4 GHz only for the IoT subnet.

Switches: 1x UniFi Flex Switch Mini ($29), 1x EdgeRouter-X - I ended up running Ethernet in my apartment! I tried my best to disguse my 50-ft white ethernet cable just above my (mostly) white wall trim using quite a lot of small command hooks (every 3/4 foot or so, but a lot closer around bends and such). The wire eventually lands in my office where my apartment server and desktop sit, terminating at the UniFi Flex Switch. And since the UDR has 2 PoE ports and the Flex Mini can run exclusively off of PoE power, that means one wire for power and data!

Later on, I put the ER-X I’ve had for probably 5 years now on my desk so I can hardwire anything into the network without needing to play the “fish an Ethernet cable to the Flex Mini behind my desk” game (pending a GoTY award, I think it’ll win over Tears of the Kingdom) and it does that job without a problem.

Phones: 0x UVP-Touch - At some point over Spring break in 2023, I stole one of the phones from my home because my dad was never using it and I was like damn, I want a desk phone in my apartment (because I made rational decisions). And now I have a desk phone that I never use. Now, the great thing about UniFi Talk is that you can set your ringback tone to be anything. In my case, I set it to Sweden by C418 because why not. So as a fun little party trick I’m like oh, call this number and bam. You just got Sweden’d. that’s why I have my desk phone.

And then Massachusetts charges a $7.50/mo tax for emergency calling. Plus Twilio’s $1.15/mo fee for numbers. Given the extremely low usage of this phone, I removed it in August 2023 since this party trick was eating money I could use for Starbucks.

Server Setup:

Since October 2022 and after some trips to MicroCenter, there’s now what I classify as servers and custom-built IoT running on my network, so I’ll be separating the two in this section.

Servers in my apartment consist of anything that isn’t a 1U server and that’s modestly power efficient.

Apartment Server 1 (ferdinand2): OptiPlex 3060

  • Intel Core i5-8500 with 6 cores & 6 threads

  • 32 GB of DDR4 2400 MHz RAM

  • 1 TB primary boot drive, 4 TB UrBackup HDD

  • GitLab VM (rick) - Ubuntu Server 20.04 VM w/ 8 GB of RAM allocated, running GitLab CE to deploy code onto my servers via CI pipelines. It is named after Rick, the IT guy at my high school who came after Fernando.

  • Backup VM - Windows Server 2022 (that I definitely paid for) w/ 8 GB of RAM allocated, running Auto Backups Stage 2, Google Drive/Dropbox Live Backups, Remote Terminal Server

  • Runs UrBackup, Netdata, OctoCam Backend, Auto Backups Stage 1

  • Runs Ubuntu 22.04

The main workhorse of the apartment is a SFF OptiPlex 3060 I bought on eBay for about $180. It’s quite a nifty little machine and honestly, old Optiplexes always make for a good home server. It’s been rock solid reliable since I got it in October 2022 and added some more RAM.

In August 2023, I upgraded my main PC to 2 TB of PCIe SSD storage from 1 TB, so the old SSD became ferdinand2’s new boot SSD.

Now, this server is called ferdinand2 because it is the direct replacement to ferdinand, the previous workhorse server I had.

Ferdinand - my beloved 1U server (April 2021 - June 2022)

Ferdinand (the name drawing inspiration from Ferdnando, the IT guy at my high school, I thought he was Fernando, called the server that, remembred it was Fernando, but Ferdinand stuck) was (well, is, just in a closet) a 1U server that I for whatever reason spent $200 of my money to buy off of eBay during my freshman year of college.

I really don’t know why I bought a 1U server.

Fast forward a week and all of a sudden I’m walking across the quad lugging a 20 pound server (I’m a CS major and still have no muscles please do NOT judge) to my dorm. I never had any intention to keep the server in my dorm, it was just temporary before bringing it home.

Anyway, I fire up this server and oh my lord it was an experience. Having a 1U server about 10 feet away from you blaring with 5 fans at 6,000 RPM at IDLE is something I wish you all can experience. Don’t even forget that this thing POSTs with the fans at practically full tilt (~12,000 RPM) and it sounds like a plane about to take off. I have a video of when I first ran Cinebench on this thing and the fans ramping up to about 13k RPM and you can see the concern in my face about how loud this server was. At full tilt you could hear this server in the hallway of my dorm. Mind you, my dorm had bricks for walls and pretty heavy metal doors.

My roommate probably thought I was insane (and for good reason, I am). Cole, if you’re reading this, clearly I haven’t gotten any better since freshman year.

Anyway, after a quick Minecraft session (I specifically bought a Quadro K620 & the PCIe riser for this server for this purpose), the server was set up and ready to go home where it served as the workhorse of my needs for a year and a half. Ferdinand lived in the guest room at home because, again, this server was LOUD. But when I moved into an apartment off-campus and didn’t have a guest room for Ferdinand, well, Ferdinand had to be decommissioned. While Ferdinand lived a short life as an in-production server, it sure was the most memorable server of them all. The random RAID failure on a Precision T3503 (when I was touring colleges in Ohio of all places) comes in a close second.

Thankfully this Optiplex is a pretty good server and I’ll probably keep it for at least another two or so years, and as such, it bears the name Ferdinand 2 (ferdinand2 is the hostname) in homage to its successor, ferdinand. Anyway, where were we?

This server runs quite a few things. Namely, it’s running a UrBackup server for my Windows PCs in the apartment and Web/Mail VPS, the OctoCam backend, my GitLab instance (on a VM), and stage 1 of the automatic backup system.

In May 2023, I moved backup PC duties over to a Windows Server VM on ferdinand2 because the Media PC was simply never being used as a media PC (because I really don’t watch anything on the big TV unless it’s the bachelor or the bachelorette), and was just another computer that was always on. I also completely eliminated the backer upper system’s stage 1 to stage 2 transfers in the process, and it works pretty well all things considered!

Apartment Server 2/Media PC: Custom Gaming PC

  • Intel Core i5-6500 with 4 cores & 4 threads

  • 12 GB of DDR4 2400 MHz RAM (previously 16GB)

  • 256 GB primary boot drive (previously 480GB), 5 TB external backup HDD

  • NVIDIA GTX 1060 3GB

  • Runs Auto Backups Stage 2, Google Drive/Dropbox Live Backups, Remote Terminal Server

  • Runs Windows 11

Previously the primary apartment server, my custom gaming PC from 2016 is now on duty as the media PC slash backup machine.

Because Smart TV manufacturers still cannot get it through their heads that a good Smart TV experience requires not the cheapest MediaTek SoC on the market, I have a dedicated machine attached to my TV. Why? Well, my TV is a year old and therefore it takes about one light year to boot Netflix on it because cheap SoCs gonna be cheap SoCs. Doesn’t help my Smart TV is a Google TV running full Android (instead of Roku which would’ve been a way better decision…anyway!)

So, to avoid the mess that is my smart TV, I have this PC attached to contain my sanity. This PC works great for streaming any sort of content in 4K without issue and very smoothly, the GTX 1060 handles this video decoding like a champ. And hey, since there’s actual graphical power behind the computer, lighter game titles work fantastic (think Jackbox, Stardew, etc). And it’s just convenient to have a dedicated machine attached to the TV to avoid finding my laptop, finding an adapter, finding a power brick, plugging it all in, blegh. It’s super convenient.

This machine was serving as a de-facto Windows terminal PC that was always turned on in my apartment, but then I realized ferdinand2 is also always on, and it might be best to leave this machine mostly offline to save power since I don’t watch a ton of TV. As such, duties for terminal servers & backups are now the problem of the VM on ferdinand2.

Apartment Server 3: Raspberry Pi 4

  • CPU of the Raspberry Pi 4 (clocked at 1.5 GHz for my unit, it is not a later revision that goes up to 1.8 GHz)

  • 4 GB of RAM

  • 64 GB primary boot drive

  • Runs Pi-hole, Grafana, InfluxDB

  • Runs Raspbian 11

Last but not least, we have the Raspberry Pi 4 that actually is pulling some duty and not sitting around doing nothing. I actually drove to my local MicroCenter and bought the PoE+ hat (since the UDR is PoE+ enabled, might as well use the PoE!) and it’s pretty nifty! I also bought more things there but you will soon learn what those things are.

Anyway, the Pi 4 hosts Grafana & InfluxDB for whole apartment climate monitoring (especially beyond the 3-day retention period that How Hot 2 has), and because it allows monitoring from a special ESP32 that can’t always be on. The Pi 4 also acts as the collector for 2/3 sensors in the apartment (also for backwards compatibility with the HH2 stack).

Now, the Pi 4 use to also do environment collection for How Hot (as the sensor stack in the living room). However, I quickly learned the PoE hat really doesn’t have any pin passthrough for the I2C pins I need. I use to have a Pi 3B to do sensor collection but that has taken the form of an ESP32.

Custom IoT things:

Now, I for one made the promise to myself not to introduce any IoT into my home network. This policy was rightfully ignored over at my apartment. However…however…I do have some custom IoT things on my network that are pretty cool.

Most of the custom IoT stuff is the result of finding out that Micro Center sells devboards and Pis…and it just so happens that Cambridge is a one hour drive from Worcester (depending on the gods of the Mass Pike), or a 30 minute commute from the office I was in for my internship.

I’ve now made three field trips to MicroCenter in one summer. One of those was during finals week. We don’t talk about my planning skills.

Anywho, because I control the code on these IoT devices, they get the honor of running on the primary network (and not the IoT network!).

PyWeather 3:

If you’ve looked around my website you may have seen PyWeather 3, my custom e-ink weather display. It currently sits in the entryway for my apartment so that I can quickly check the weather when I walk around my apartment trying to find my keys before I leave because my brain is allergic to remembering where my keys are.

PyWeather 3 currently runs atop a Raspberry Pi 3A that I got during the Micro Center field trip. It use to run on a Pi 3B+ but you really don’t need a Pi 3B+ to push updates to an e-ink display every 5 minutes.

The ESP32 Network of Climate Sensors:

Inside my apartment are THREE ESP32 boards from Adafruit (covering the Living Room, Bedroom, and Office) with various amounts of sensors plugged into each one. They collect data every 5 minutes, upload it to Influx/the HH2 API, and sleep for the rest of the time. I can then check the data on Grafana for all three sensors, or the How Hot Is It In My Apartment 2 website (for just the living room).

You can check out more details in the project called How Hot Is It In My Apartment 3.

The naming isn’t getting confusing at all.

OctoCam:

OctoCam is my custom timelapse-making webcam that is stuck to a window. It is technically an IoT device. You should check out its project page as it has a lot more details.

Normal IoT things:

While I would love to have custom IoT for everything my apartment, unfortunately I don’t have all the free time in the world. So, I also have normal smart gadgets. My smart apartment centers around Google Home as between Amazon Alexa and Apple HomeKit, it has good compatibility with third-party systems while not having such egregious privacy violations to the extent that Amazon does (Google is still pretty bad though, just marginally better).

  • 2x Google Nest Hub 2nd Gen - one in the living room and one in the bedroom.

  • 2x Govee Wi-Fi RGB strips - one in the living room and one in the bedroom.

  • 1x GE Smart Plug to control the lamp in my bedroom (i use the lamp more than the RGB strips and that’s all you get to hear)

  • Smart Window AC units for Living Room and Bedroom (for AC in summer only)

  • A not smart Window AC unit in my office…but I might make it smart eventually by pointing a Pi with an IR transmitter at it so I can remotely change the temperature/turn it off and on.

  • Nest Learning Thermostat 3rd Generation (for heating in winter only)

  • Dyson Air Purifier

  • SimpliSafe Security System with 4 indoor cameras (disclosure: I work for SimpliSafe so I received this security system for free)

  • TCL Google TV

  • HP LaserJet Printer

A year on and I can say that all the IoT services are still running. Except for the window AC, sort of. It moved from HE Smart to Tuya Smart with no real notice (the notice was my 13 Pro Max refusing to download the HE Smart app cause it wasn’t on the app store anymore), and the window AC’s Google integration kinda breaking so the temperature wheel goes from 0-255 and reads like 151 when it’s actually set to 66 degrees. So now it’s really only good for turning on/off the AC.

Wow, you made it to the end, congrats! That’s my apartment network. It’s definitely something to behold but I think it’s a perfect manifestation of all the nerd in me that makes me who I am.

Some former mentions to former servers:

  • HomeNAS (Home Server 0) - Was a Mac Mini 2012 running FreeNAS. Lasted for about a year - but it’s back since July 2021!

  • Home Server 1 - Was a 2009 Dell Precision T3503 with a dual-core Xeon. Lasted for about two years. Pulled duty as many things (backup server, web server, etc etc)

  • Home Server 2 - Was a Raspberry Pi 3B(?). Pulled duty as a Pi-hole. Lasted for about a year and a half.

  • Home Server 3 - Was a old eMachines with a Pentium. Didn’t do much. Was a SoftEther VPN server at a time, I guess. I eventually decommissioned it as the board probably has cap issues, requiring you to wait about 10 minutes to boot it up from plugging power in. This wasn’t handy in situations with AC loss, as the server wouldn’t turn itself back on.

  • Home Server 4 - Was a Raspberry Pi 4 (at a point) and a HP Slimline. The Pi 4 was the UniFi controller - lasted up until August 2020. The HP Slimline was the OctoCam server, among other things, and lasted until May 2021.

  • Home Server 5 - Was a Raspberry Pi 3B+. Pulled duty as a SoftEther VPN server, which worked pretty well for single-user use. That lasted until August 2020, but was reinstated in June 2021 for UPS monitoring + redundant Pi-Hole, then “pulled” again in August 2021.

  • Home Server 6 - Was Ferdinand, the 1U server. Pulled duty as the everything server from March 2021 - June 2022, but retired due to how loud it is. Nonetheless, ferdinand is the most infamous home server of them all. The name Ferdinand pulls inspiration from Fernando who was the IT guy at my high school. I thought his name was Ferdinand, named the server, then remembered it was Fernando but Ferdinand stuck.

  • Home Server 7 - Referred to as the Backup VM (as it has the IP 10.0.1.77 on my network)

  • Home Server 8 - The IPMI Interface for HS6 (as it has the IP 10.0.1.78 on my network)

  • Home Server 9 - The Pi-hole as mentioned above. Also HS6 & HS9. Nice.

  • Other equipment not mentioned here - Old iMac G4 as a Debian 6 server, Dell Dimension 4600 as a server at some point.

And some former mentions to networking gear:

  • Asus RT-AC68R - Was the primary router for about 5-6 years. It actually still had the highest peak download speeds (at ~700 Mbps from the router to my Asus PCE-68 Wi-Fi card). Ran stock firmware, DD-WRT, and AdvancedTomato (now defunct)

  • Linksys E3000 - Was the primary router from 2010-2014.

There were various points in the network history with different setups - I’ll need to go back into the WordPress history for this page and try to summarize them. My favorite was an all Pi setup (HS2/4/5) that lasted for about 4-6 months.