New: the Homelab Planning Bundle. Both planners together for $19.99 instead of $27.98Save $7.99GET THE BUNDLE

Homelab Addiction

Free tool

Homelab IP & VLAN planner

Plan the networks for your lab in one go. Pick an address range and the VLANs you need, and you get the subnet, gateway, static range and DHCP pool for each one, ready to copy into your router.

Pick your address range

Start from a private range your ISP router and VPN don’t already use. The 10.x range gives you the most room.

Private ranges only

254 usable addresses each

10.0.40.x is VLAN 40

.254 works too

10.0.0.0/16 has room for 255 networks of 254 addresses each, one per third octet from 1 to 255, so you can add VLANs later without renumbering anything.

Choose your networks

Tap a network to add it. Change any VLAN ID or size in its row and everything below updates.

  • Switches, access points, hypervisor UIs

    Subnet 10.0.10.0/24

  • Proxmox, NAS, Docker hosts

    Subnet 10.0.20.0/24

  • Your laptops and phones

    Subnet 10.0.30.0/24

  • Smart plugs, TVs, speakers

    Subnet 10.0.40.0/24

  • Visitors, internet only

    Subnet 10.0.50.0/24

  • PoE cameras, no internet

    Subnet 10.0.60.0/24

  • Anything open to the internet

    Subnet 10.0.70.0/24

Split each subnet

Static addresses for servers and network gear, DHCP for everything else. The same split is used for every network.

Room for 98 fixed devices

On a bigger network the pool runs to its own last address

Your Pi-hole or AdGuard Home

Your address plan

Every network in one table. Switch the view to get the same plan as Markdown or CSV.

VLANNetworkSubnetGatewayStatic rangeDHCP poolUsable
10Management10.0.10.0/2410.0.10.110.0.10.2 – 10.0.10.9910.0.10.100 – 10.0.10.254254
20Servers10.0.20.0/2410.0.20.110.0.20.2 – 10.0.20.9910.0.20.100 – 10.0.20.254254
30Trusted10.0.30.0/2410.0.30.110.0.30.2 – 10.0.30.9910.0.30.100 – 10.0.30.254254
40IoT10.0.40.0/2410.0.40.110.0.40.2 – 10.0.40.9910.0.40.100 – 10.0.40.254254
50Guest10.0.50.0/2410.0.50.110.0.50.2 – 10.0.50.9910.0.50.100 – 10.0.50.254254
60Cameras10.0.60.0/2410.0.60.110.0.60.2 – 10.0.60.9910.0.60.100 – 10.0.60.254254
70DMZ10.0.70.0/2410.0.70.110.0.70.2 – 10.0.70.9910.0.70.100 – 10.0.70.254254

Who can reach whom

Read across. Each cell says whether a device on that row can start a connection to the network in the column. Replies to allowed traffic always get back.

Which network can start a connection to which. Rows are the source, columns the destination.
From ↓ To →ManagementServersTrustedIoTGuestCamerasDMZInternet
ManagementSame VLANAllowBlockAllowBlockAllowAllowAllow
ServersBlockSame VLANBlockHA onlyBlockNVR onlyBlockAllow
TrustedAdmin portsAllowSame VLANAllowBlockBlockAllowAllow
IoTBlockDNS onlyBlockSame VLANBlockBlockBlockAllow
GuestBlockBlockBlockBlockSame VLANBlockBlockAllow
CamerasBlockBlockBlockBlockBlockSame VLANBlockBlock
DMZBlockBlockBlockBlockBlockBlockSame VLANAllow
  • AllowOpen to the whole network
  • LimitedOnly the ports or host named in the cell
  • BlockDropped by the firewall
  • Same VLANStays inside the VLAN, never hits the firewall
Show the rules as text
# Starter firewall rules from the HomelabAddiction IP & VLAN planner
# Written for OPNsense; pfSense uses the same names. Rules apply top to bottom
# on the interface the traffic arrives on, and the first match wins.
#
# Create these aliases first (Firewall > Aliases):
#   RFC1918        Network(s)  10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
#   admin_ports    Port(s)     22, 443, 8006, 8443
#   home_assistant Host(s)     your Home Assistant IP
#   nvr            Host(s)     your NVR (Frigate, Blue Iris...) IP
#
# Before you save: make sure you can still reach the firewall from Management
# or Trusted. Only those two are allowed to its admin pages below.

## Interface MANAGEMENT  (VLAN 10, 10.0.10.0/24)
 1. Pass   TCP/UDP  MANAGEMENT net  ->  MANAGEMENT address  port 53       DNS on the gateway
 2. Pass   any      MANAGEMENT net  ->  SERVERS net
 3. Pass   any      MANAGEMENT net  ->  IOT net
 4. Pass   any      MANAGEMENT net  ->  CAMERAS net
 5. Pass   any      MANAGEMENT net  ->  DMZ net
 6. Block  any      MANAGEMENT net  ->  RFC1918                     every other private network
 7. Pass   any      MANAGEMENT net  ->  any                         the internet

## Interface SERVERS  (VLAN 20, 10.0.20.0/24)
 1. Pass   TCP/UDP  SERVERS net  ->  SERVERS address  port 53       DNS on the gateway
 2. Pass   any      home_assistant  ->  IOT net       Home Assistant only
 3. Pass   any      nvr  ->  CAMERAS net       the NVR only
 4. Block  any      SERVERS net  ->  This Firewall               keeps the GUI and SSH private
 5. Block  any      SERVERS net  ->  RFC1918                     every other private network
 6. Pass   any      SERVERS net  ->  any                         the internet

## Interface TRUSTED  (VLAN 30, 10.0.30.0/24)
 1. Pass   TCP/UDP  TRUSTED net  ->  TRUSTED address  port 53       DNS on the gateway
 2. Pass   TCP      TRUSTED net  ->  MANAGEMENT net  port admin_ports
 3. Pass   any      TRUSTED net  ->  SERVERS net
 4. Pass   any      TRUSTED net  ->  IOT net
 5. Pass   any      TRUSTED net  ->  DMZ net
 6. Block  any      TRUSTED net  ->  RFC1918                     every other private network
 7. Pass   any      TRUSTED net  ->  any                         the internet

## Interface IOT  (VLAN 40, 10.0.40.0/24)
 1. Pass   TCP/UDP  IOT net  ->  IOT address  port 53       DNS on the gateway
 2. Pass   TCP/UDP  IOT net  ->  10.0.20.53  port 53       your DNS server
 3. Block  any      IOT net  ->  This Firewall               keeps the GUI and SSH private
 4. Block  any      IOT net  ->  RFC1918                     every other private network
 5. Pass   any      IOT net  ->  any                         the internet

## Interface GUEST  (VLAN 50, 10.0.50.0/24)
 1. Pass   TCP/UDP  GUEST net  ->  GUEST address  port 53       DNS on the gateway
 2. Block  any      GUEST net  ->  This Firewall               keeps the GUI and SSH private
 3. Block  any      GUEST net  ->  RFC1918                     every other private network
 4. Pass   any      GUEST net  ->  any                         the internet

## Interface CAMERAS  (VLAN 60, 10.0.60.0/24)
 1. Pass   TCP/UDP  CAMERAS net  ->  CAMERAS address  port 53       DNS on the gateway
 2. Block  any      CAMERAS net  ->  This Firewall               keeps the GUI and SSH private
 3. Block  any      CAMERAS net  ->  RFC1918                     every other private network
    (no pass rule to the internet: the default deny drops it)

## Interface DMZ  (VLAN 70, 10.0.70.0/24)
 1. Pass   TCP/UDP  DMZ net  ->  DMZ address  port 53       DNS on the gateway
 2. Block  any      DMZ net  ->  This Firewall               keeps the GUI and SSH private
 3. Block  any      DMZ net  ->  RFC1918                     every other private network
 4. Pass   any      DMZ net  ->  any                         the internet
Homelab Planning Bundle: the Rack Planner & Documentation Kit and the Build Cost & Power Planner together for $19.99.

Homelab Planning Bundle

Now price the whole build

Two planners in one download. One works out what your lab will cost to buy and to run. The other maps where every part goes in the rack.

  • Build Cost & Power Planner: Excel workbook with parts list, budget, power cost, and build phases
  • Rack Planner & Documentation Kit: 17-page printable and fillable PDF
  • Filled example build, so you can see every formula working
  • Quick-start guide in A4 and US Letter

$19.99$27.98 bought separatelySave $7.99

Nothing hidden

How the plan is worked out

Each line uses the IoT network from the example above, so you can check any row by hand.

Subnet
base network, with the VLAN ID as the third octet10.0.0.0 + VLAN 40 = 10.0.40.0/24
Usable addresses
2 ^ (32 − prefix) − 22 ^ (32 − 24) − 2 = 254
Gateway
first usable address in the subnet10.0.40.0 + 1 = 10.0.40.1
Static range
gateway + 1 up to the static end you set10.0.40.2 – 10.0.40.99 = 98 addresses
DHCP pool
pool start up to broadcast − 110.0.40.100 – 10.0.40.254 = 155 leases
Room to grow
third octets from 1 to 255 that no network uses yet255 − 7 networks = 248 more

Before you copy it into your router

What will bite you

01

Skip 192.168.0.x and 192.168.1.x

Most ISP routers, hotels and offices use them. Plan your lab on one and your VPN can’t tell home from the network you’re sitting on.

02

Leave VLAN 1 empty

It’s the default on every switch, so any port you forgot to set lands there. Give management its own VLAN instead.

03

Casting stops at the VLAN edge

Chromecast, AirPlay and printers find each other with mDNS, which stays inside one VLAN. Turn on an mDNS repeater if Trusted needs to see IoT.

04

Keep static IPs out of the DHCP pool

If the router can hand out an address you also set by hand, two devices end up fighting over it. The planner keeps the two ranges apart.

Questions

IP & VLAN planner FAQ

Why match the VLAN ID to the third octet?

So you can read the VLAN straight off an address. 10.0.40.23 is on VLAN 40, and you never have to look it up. It needs a base of /16 or bigger, and VLAN IDs from 1 to 255; turn it off if yours go higher and the networks are packed in order instead.

Is a /24 too big for a homelab VLAN?

No. A /24 gives each network 254 addresses, and the 10.x range has room for 255 of them, so a smaller subnet saves nothing at home. It does leave you renumbering the day a network outgrows it. Use a /25 or smaller only where you know the device count will stay low.

Should I use 10.x, 172.16.x or 192.168.x?

All three are private ranges that never appear on the internet. 10.x has the most room. Whichever you choose, stay off 192.168.0.x, 192.168.1.x and 10.0.0.x: ISP routers, hotels and offices use them, and a VPN can’t reach your lab while you sit on a network with the same addresses. Docker also claims 172.17.x for its default bridge.

Will this work with OPNsense, pfSense and UniFi?

The address plan works with any router. The firewall rules are written the way OPNsense names things, and pfSense uses the same names. UniFi’s zone-based firewall groups networks into zones instead, so use the reach matrix as the policy and build the zones to match it.

Is anything I type saved or sent anywhere?

No. The planner runs in your browser and your addresses are never sent anywhere. The page records that the planner was used, and which format you exported, without the values you entered.

Newsletter

Get the next tested guide in your inbox

One email when a new guide or tool goes up. You can leave with one click.

Enter your email address to receive the Homelab Addiction newsletter.