Planning Static IP Addresses in Your Homelab
A poorly planned homelab network with dynamic IPs becomes frustrating quickly. Services move to new addresses after router restarts, DNS records go stale, and you're constantly checking ip a just to SSH into something. Good IP address management takes 30 minutes to set up and saves hours of confusion later.
Photo by Àlex Folguera on Unsplash
The Core Problem with DHCP
DHCP assigns addresses automatically, which is convenient. But:
- Addresses change when devices restart at different times
- Bookmarks and SSH configs break
- DNS records require manual updates
- Monitoring dashboards need reconfiguration
For homelab infrastructure, consistency is more important than convenience. You want to know that your NAS is always at 10.0.0.20 and your Proxmox host is always at 10.0.0.10.
Two Approaches to Static IPs
DHCP Reservations (Recommended)
DHCP reservations tell your router to always assign the same IP to a device based on its MAC address. The device still uses DHCP, but it always gets the same IP.
Advantages:
- Centralized management (all in the router/DHCP server)
- Easier to document and update in one place
- No configuration on each device
- Works for devices that can't be easily configured (IoT, printers, smart TVs)
How to configure (in most routers):
- Find the device's MAC address
- In router settings: DHCP → Static Leases or Address Reservations
- Add entry: MAC address → IP address
- Save and reconnect the device
For pfSense/OPNsense: Services → DHCP Server → Add static mapping.
True Static IPs (On the Device)
Configure the IP directly on the device's network interface. The device doesn't use DHCP at all.
Advantages:
- Works even if the DHCP server is down
- Device IP is clear from its own configuration
- Useful for servers and infrastructure that needs to be up before the DHCP server
Disadvantages:
- Must be configured per device
- Harder to manage across many devices
- Can create conflicts if someone else assigns the same IP
For servers (Proxmox, TrueNAS, network infrastructure), true static IPs make sense. For workstations and IoT, DHCP reservations are usually better.
IP Address Scheme Planning
A clean address scheme makes your network self-documenting. Common homelab schemes:
Simple Flat Network
For a simple homelab without VLANs:
Subnet: 192.168.1.0/24 (or 10.0.0.0/24)
Gateway/Router: .1
Network infrastructure: .1-.19
Servers/homelab: .20-.99
Personal computers: .100-.149
IoT devices: .150-.199
DHCP range: .200-.249
Reserved: .250-.254
Example:
10.0.0.1 Router/gateway
10.0.0.2 Managed switch
10.0.0.3 Access point
10.0.0.10 Proxmox host 1
10.0.0.11 Proxmox host 2
10.0.0.20 TrueNAS
10.0.0.30 Raspberry Pi (always-on services)
10.0.0.40 Home Assistant
10.0.0.50 Pi-hole / AdGuard
VLAN-Based Network
With VLANs, each network segment gets its own subnet:
10.0.10.x/24 Management VLAN (Proxmox, switches, APs)
10.0.20.x/24 Servers VLAN (NAS, media, databases)
10.0.30.x/24 IoT VLAN (smart home, cameras)
10.0.40.x/24 Guest VLAN
10.0.50.x/24 Trusted clients (personal PCs, phones)
Consistent numbering helps: VLAN 10 → 10.0.10.x, VLAN 20 → 10.0.20.x.
/24 vs. Larger Subnets
A /24 subnet provides 254 usable addresses. Most homelabs never exhaust this. If you're planning for many IoT devices or have multiple physical sites, consider:
- /23 = 510 addresses (10.0.0.0/23 covers 10.0.0.1-10.0.1.254)
- /22 = 1022 addresses
- Multiple /24 subnets (one per VLAN) is usually cleaner than a larger single subnet
Like what you're reading? Subscribe to HomeLab Starter — free weekly guides in your inbox.
DNS and IP Management
Local DNS with Pi-hole or AdGuard Home
Add your static IPs as local DNS entries:
nas.home → 10.0.0.20
proxmox.home → 10.0.0.10
homeassistant.home → 10.0.0.40
Access services by name instead of IP. When an IP changes (if you reconfigure), update the DNS record in one place.
Technitium DNS
Technitium DNS provides a full DNS server with a web UI for managing local records. More powerful than Pi-hole for local DNS if you have complex needs.
Self-Hosted DNS Zones
For a custom TLD (.home, .lan, .internal):
- Configure your router/pfSense to use your local DNS server for resolution
- Add a forwarder for everything else (8.8.8.8 for public DNS)
- Create A records for all your static IPs
Documentation: Don't Skip This
The most important step is writing it down. A simple spreadsheet or network diagram that maps IP → hostname → service is invaluable.
Minimum documentation:
IP Address Hostname Service Location
10.0.0.1 router OPNsense Rack
10.0.0.10 proxmox Proxmox VE Rack U4
10.0.0.20 truenas TrueNAS Scale Rack U6
10.0.0.30 pi4 Home Assistant Shelf
Tools for network documentation:
- Netbox: Full network documentation platform (self-hosted, may be overkill for small labs)
- Home Assistant: Can serve as a simple device registry
- Spreadsheet: Pragmatic and searchable
- Markdown in your homelab wiki: BookStack, Wiki.js, or similar
Reserved Ranges and Avoiding Conflicts
Prevent IP conflicts by:
- Setting your DHCP pool to a range that doesn't overlap with static assignments
- Documenting all static assignments before assigning new ones
- Using different /8 prefixes if connecting multiple networks (10.0.x.x vs 192.168.x.x)
Common router defaults use 192.168.0.x or 192.168.1.x. Using 10.0.0.x or a non-default 192.168.x.x avoids conflicts when VPN-ing into other networks.
Practical First Steps
- Inventory your current network: Log into your router and note which devices have leases
- Choose your scheme: Pick a range, decide on categories
- Configure router DHCP: Set the DHCP dynamic range (e.g., .200-.249), leaving lower addresses for statics
- Assign reservations: For servers and important infrastructure, add DHCP reservations
- Set true static IPs on critical infrastructure: Router, NAS, Proxmox hosts
- Add local DNS entries: Map names to IPs
- Document everything: Spreadsheet or wiki page
The 30 minutes you spend planning your IP scheme now prevents an hour of confusion every time you add a new service to your homelab.
