A /29 has the netmask 255.255.255.248 and holds 8 addresses, 6 of them usable hosts. Every /29 starts on a multiple of 8: 10.0.0.8/29 has network 10.0.0.8, hosts 10.0.0.9 to 10.0.0.14, and broadcast 10.0.0.15.
The numbers
Network 10.0.0.8/29
Broadcast 10.0.0.15
Netmask 255.255.255.248
Wildcard 0.0.0.7
First host 10.0.0.9
Last host 10.0.0.14
How it fits
A /24 holds 32 /29s and a /28 holds two. A /29 splits into 2 /30s or 4 /31s.
Where you’ll see it
The smallest subnet on Azure and Google Cloud. Both accept a /29 as their smallest IPv4 subnet (AWS stops at /28), and each keeps its own share of the 8. Azure reserves the first four addresses and the last; Google Cloud the first two and the last two. In 10.0.0.8/29:
Azure .8 .9 .10 .11 .15 3 usable, .12 to .14
Google Cloud .8 .9 .14 .15 4 usable, .10 to .13
An ISP’s static block. Business internet plans often come with a public /29. Take 203.0.113.8/29: .8 and .15 are the network and broadcast addresses, .9 to .14 are the six hosts, and the ISP’s router takes one of those as your gateway. That leaves the 5 usable addresses the plan advertises.
Gotchas
- “Usable” depends on who’s counting. The textbook /29 has 6 usable hosts, Azure leaves 3, Google Cloud 4, and an ISP block 5 once the gateway is set. When a form, a quote or a capacity plan says “usable”, find out which.
- The gateway comes from the ISP. The router address in a static block is fixed by the provider. Configure hosts with the netmask
255.255.255.248and that gateway, not with a /24 guessed from the first three octets.
In your stack
# Terraform: the second /29 of a /24
cidrsubnet("10.0.0.0/24", 5, 1) # "10.0.0.8/29"
# Google Cloud: a /29 subnet
gcloud compute networks subnets create tiny --network=main --region=us-central1 --range=10.0.0.8/29
# Linux: one of the five public addresses, if the ISP's router is 203.0.113.9
ip addr add 203.0.113.10/29 dev eth0
ip route add default via 203.0.113.9
import ipaddress
[str(h) for h in ipaddress.ip_network("203.0.113.8/29").hosts()]
# ['203.0.113.9', '203.0.113.10', ..., '203.0.113.14']