What Is an IP Address?
Every device on a network needs a unique identifier — that's an IP address. IPv4 addresses are 32-bit numbers written as four octets (0–255) separated by dots. Think of it as a street address: the network portion is the street, the host portion is the house number.
192 . 168 . 1 . 50 └──────────────┘ └───┘ Network portion Host (street) (house number) Your homelab device: 192.168.1.50 Your gateway: 192.168.1.1 Your network: 192.168.1.0/24
Private vs Public Ranges
Not all IPs are reachable from the internet. Three ranges are reserved for private use — your router uses NAT to translate between private and public addresses.
Private ranges (not routable on internet): 10.0.0.0/8 → 10.0.0.0 – 10.255.255.255 172.16.0.0/12 → 172.16.0.0 – 172.31.255.255 192.168.0.0/16 → 192.168.0.0 – 192.168.255.255 Special: 127.0.0.1 → loopback (this machine) 169.254.x.x → APIPA (no DHCP found — bad sign) 0.0.0.0 → "any" address (used in routing/binding)
CIDR Notation & Subnet Masks
The /24 after an IP address is CIDR notation — it tells you how many bits are the network portion. The rest are host bits. More bits for network = smaller subnet = fewer hosts.
CIDR Subnet Mask Total IPs Usable Hosts
/24 255.255.255.0 256 254
/25 255.255.255.128 128 126
/26 255.255.255.192 64 62
/28 255.255.255.240 16 14
/30 255.255.255.252 4 2 ← point-to-point links
Rule: Total IPs - 2 = usable hosts
(network address + broadcast address are reserved)Homelab Subnet Patterns
A flat 192.168.1.0/24 works fine for a small homelab, but segmenting by function gives you better control and security. Here's a common pattern:
192.168.1.0/24 — Main LAN (servers, management) 192.168.10.0/24 — VMs / containers 192.168.20.0/24 — IoT / untrusted devices 192.168.30.0/24 — Personal devices (DHCP pool) Static assignments (reserve by MAC or configure manually): 192.168.1.1 — Gateway / router 192.168.1.100 — Proxmox hypervisor 192.168.1.120 — NPM / Authelia VM
Checking Your Own IPs
# Show all interfaces and IPs (Linux) ip addr show ip addr show eth0 # Quick IP summary hostname -I # Show routing table ip route show # Default gateway ip route | grep default
≈·*•—[ A|S ]—•*·≈