My Home Network

https://github.com/dnburgess/vpshardening

My Home Network Sub-netting

⚠️ Alternatives You Could Use — But Should Avoid

SubnetWhy to avoid
10.0.0.0/24Used everywhere by VPNs (e.g., Meraki, AWS default VPCs)
192.168.1.0/24Default on 99% of routers
192.168.0.0/24Default for modems and IOT hubs
172.17.0.0/16Used by Docker bridge networks
100.64.0.0/10Not RFC1918 (CGNAT range — avoid)

📦 TL;DR Summary

  • 172.16.x.x: Ideal for Proxmox, LXC, DNS, Vaultwarden, Tunnels — fewer overlaps
  • 10.x.x.x: Ideal for business, VPNs, and things you might interconnect externally
  • 192.168.x.x: Still great for local LANs, IOT, guest — but keep clean and limited

If you want to lean into 10.0.0.0/8 for everything, that’s totally fine — it’s RFC1918 and designed for large internal networks (up to 16 million IPs). You just need to apply some structure so it remains

  • 🔍 Human-readable
  • 🧱 Hierarchically segmented
  • 🔐 Secure and scalable

🧠 Optional: Hierarchical Encoding

For large homelabs/MSPs, you can “encode” purpose into the second octet:

Subnet RangeMeaningExamples
10.0.x.xCore InfraManagement, DNS, NTP
10.10.x.xApplication LayerInternal apps/services
10.20.x.xAccess LayerAdmin LANs, Staff Devices
10.30.x.xExternal AccessCloudflared, VPN, guest Wi-Fi
10.40.x.xClient NetworksBusiness zones
10.90.x.xIOT and junkUntrusted or limited devices
10.99.x.xMonitoring/AlertingWazuh, Graylog, Prometheus

🔐 Firewalling and Routing

With this all-10.0.x.x structure:

  • Inter-VLAN routing is deny-by-default; allow only what’s explicitly needed
  • Group firewall policies by subnet prefix:
    • 10.0.1.0/24 → 10.0.5.0/24 = DNS allowed
    • 10.0.70.0/24 → ANY = VPN admin full access
    • 10.0.71.0/24 → 10.0.40.0/24 = VPN guest → Internet only Use UniFi groups or OPNsense aliases to apply logic efficiently.
Link to original

VM/Container IDs

RangePurpose
100–199Core infrastructure (DNS, NTP, etc.)
Security stack (Vaultwarden, Wazuh
Reverse proxies, tunnels
200–299Homelab services
300–399
400–499Public/EXPOSED apps
500–599Business apps (internal)
600–699Business DMZ
700–799VPN services
800–899
900–999Temporary/lab/testing

VLANs

VLANNameSubnetPurposeNotes
1MGMT10.0.0.0/24Switches, APs, controllers, out-of-bandNo Internet, VPN access only
5HOMELAB10.0.5.0/24Proxmox nodes, test infraNon-exposed apps, dev, lab
10EXPOSED10.0.10.0/24Public-facing apps via tunnelNo direct WAN access
15VAULT10.0.15.0/28Bitwarden, Vault, secretsHighly restricted
20LAN10.0.20.0/24Laptops, desktops, mobile devicesFull access w/ outbound DNS
30IOT10.0.30.0/24Cameras, smart TVs, Google Home, etc.No inter-VLAN access
40GUEST10.0.40.0/24Guest Wi-FiInternet only via NAT
50TUNNEL10.0.50.0/28Cloudflared, reverse proxy, auth layerOnly inbound to EXPOSED/VAULT
60BUSINESS-DMZ10.0.60.0/24Public-facing biz apps/APIsReverse proxy target zone
61BUSINESS-SERV10.0.61.0/24Internal-only business servicesNo WAN unless whitelisted
70VPN-ADMIN10.0.70.0/24Admin VPN clientsCan access all zones
71VPN-GUEST10.0.71.0/24Guest VPN clientsInternet + optional LAN access
72VPN-BIZ10.0.72.0/24Business site-to-site or remote accessAccess to biz zones only

Network Zones

Zone GroupVLANsNotes
Zone_Infra1 (MGMT), 5 (HOMELAB)Proxmox, DNS, logging, NTP, etc.
Zone_Public10 (EXPOSED), 60 (DMZ)Accessible from TUNNEL only
Zone_Private20 (LAN), 61 (BUSINESS-SERV)Workstations, Laptops, Biz apps
Zone_Restricted15 (VAULT), 30 (IOT)Minimal access, logging required
Zone_VPN70–72VPN routes (mapped based on user intent)

Reverse Proxies

Transclude of Pangolin-Compared-to-NPM+

🔥 UniFi Firewall Rules (Sample Logic)

🔐 Deny by Default