#homelab#networking#proxmox#pihole#self-hosting

My Networking professor was right (and it took me 5 years to realize)

From ignored Networking classes in college to a home server: how I organized my home network with Pi-hole, Proxmox, and VPN.

My Networking professor was right (and it took me 5 years to realize)

In college, I confess: Computer Networking classes were the ones I paid the least attention to. IP, subnet mask, DNS... "That's infra stuff, developers don't need to know that," I thought.

Years later, here I am — with a server running at home, managing IPs as if it were the most natural thing in the world.


What made me change my mind?

It all started when the number of devices at home exploded. Computer, laptop, cell phones, TV, smart lights, Echo Dots, air conditioning... suddenly I had dozens of things connected and no control over anything.

I wanted to access PC files from my phone, control the house from anywhere, and understand why my internet seemed slow even with a good connection. The answer? A mess of devices competing for bandwidth without any organization.

That's when I decided: I'm going to organize this network.


The General Architecture

After much study and experimentation, I arrived at this structure:

Home network diagram
Home network diagram

Segmentation by function:

  • .2 - .19 → Infrastructure (servers, DNS, automation)
  • .20 - .29 → People (PCs, cell phones, TV)
  • .50 - .59 → IoT Hubs (Echo Dots, air conditioning)
  • .60 - .99 → IoT Endpoints (lights, smart plugs)
  • .100+ → DHCP for visitors

Does it seem excessive? Maybe. But when something goes wrong, I know exactly where to look. And more importantly: I can configure specific rules for each "type" of device.


DNS: The invisible heart of the internet

Here I need to pause to explain something I completely ignored: DNS.

Every time you type "google.com" into your browser, your computer has no idea what that is. It needs to ask a DNS server: "Hey, what's the IP of this google.com thing?". The server responds something like "142.250.79.14", and then the connection happens.

This happens hundreds of times a day — not just when you browse, but when apps check for updates, when your phone "calls home", when your smart TV loads ads...

And this is exactly where the magic happens.


Pi-hole: Goodbye, ads

Pi-hole is a DNS server that runs on your local network. Every DNS request passes through it before going to the internet. And the trick is simple: it has a giant list of domains known for serving ads and trackers.

When someone on the network tries to access ads.facebook.com or tracking.google-analytics.com, Pi-hole simply... doesn't respond. The ad doesn't load. The tracker doesn't work.

This means: YouTube with fewer ads, apps without intrusive banners, and smartphones that stop "calling home" every 5 minutes.

And as a backup, I use Cloudflare's public DNS (1.1.1.1) — if Pi-hole goes down, the internet keeps working.


Proxmox: One computer, multiple systems

Now the question: where does all this run?

Instead of having 5 different computers consuming energy and space, I have a single server with Proxmox VE. It's a virtualization operating system that allows you to create LXC containers and virtual machines that run completely isolated.

Think of it this way: it's like having several computers inside one, each doing its job without interfering with the others.

What runs on my Proxmox:

ServiceFunction
📁 NextcloudMy own "Google Drive" — files synchronized across all devices
🏠 Home AssistantHome automation — I control lights, air conditioning, and monitor sensors
🎬 JellyfinPersonal Netflix — my media library accessible from anywhere
🔒 Pi-hole DNSNetwork-wide ad blocking
🔄 Node-REDVisual automations — I integrate services easily

If a service has a problem, I restart only it. If I want to test something new, I create a container, test it, and delete it if I don't like it. Zero risk to the rest of the system.


VPN: Access from anywhere

One of the functionalities I use most is remote access via OpenVPN. With it, even when I'm away from home (at work, traveling, anywhere), I can access my local network as if I were there.

This means: accessing my files on Nextcloud, controlling the house with Home Assistant, or debugging something on the server — all securely, encrypted.


What I learned from all this?

  1. Networking isn't just theory — understanding how your traffic flows completely changes your perspective on development
  2. Self-hosting is empowering — you control your data, you don't depend on third-party services
  3. You don't need expensive hardware — a used PC or a mini PC works perfectly
  4. Documentation is life — that network diagram saves hours of debugging
  5. Layered security — DNS blocking trackers, VPN encrypting access, segmented network

If you also slept through Networking classes... maybe it's time to wake up. 😉


And you, do you have any homelab projects or ideas to better organize your network? Or mine? Call me and let's chat!