Skip to content

1.5 IPAM: build your address plan

Part 1 · FoundationsOperator⏱ ~35 min▶ Narrated video🖱 Interactive walkthrough🧪 Lab 3 (auto-checked)✓ Knowledge check

Every DNS record and DHCP lease that SpatiumDDI manages hangs off a subnet, and every subnet hangs off the address plan you build in IPAM. Build the tree well and each new VLAN costs you one form, because it picks up its DNS zone and DHCP servers from the level above. Build it badly and you pin the same settings on every subnet by hand. In this module you build Ridgeline College’s plan the way SpatiumDDI expects it.

  • Tell IP spaces, blocks and subnets apart, and say which one holds addresses
  • Pin DNS and DHCP settings once on a block, and read what a subnet inherits from it
  • Lay out a campus with one /24 per VLAN, leaving room to grow
  • Find the reverse zone SpatiumDDI creates for a new subnet, and explain why it makes one per /24

The video builds the plan in the same order as the lab: space, block and subnet, then it finds the reverse zone SpatiumDDI created for the subnet. The walkthrough after it replays the same clicks, so you can rehearse before you touch the lab.

▶ IPAM: build your address plan · 2:23 · narrated, captions on (CC) · recorded on SpatiumDDI 1.0.0-beta.3
Chapters
Transcript

0:00Module 1.5: IPAM, your address plan. You'll build Ridgeline College's plan the way SpatiumDDI expects it: an IP space, an aggregate block that carries the DNS and DHCP settings, and a first subnet that inherits them.

0:17Open IPAM and create an IP space. A space is an independent address domain: subnets inside one space never overlap, but two spaces may overlap each other, much like two VRFs. Ridgeline needs just one, called Campus.

0:34Select the space and add a block: 10.20.0.0/16, the whole campus. Blocks are aggregates. They never hold addresses themselves; they give the tree its shape and carry settings down to everything beneath them.

0:50This is where Ridgeline pins its services. On the DNS tab, stop inheriting, then choose the default server group and the corp.example.edu zone. On the DHCP tab, do the same with the default DHCP group. Every subnet created under this block will inherit both.

1:09Now the first subnet: 10.20.21.0/24, named “Staff VLAN 21”, following Ridgeline's convention of one /24 per VLAN. The gateway is assigned automatically. On the DNS tab, inherit stays on, and the form shows exactly what the subnet inherits from the block.

1:31Open the new subnet. Its address table already marks the network, gateway and broadcast addresses, and the tabs across the top will hold DHCP pools, aliases, NAT and utilization trends as the network grows.

1:46Reverse lookups, from address back to name, need a reverse zone, and you don't have to make this one. When you saved the subnet, SpatiumDDI created 21.20.10.in-addr.arpa in the block's DNS group, because the subnet inherits a DNS group and zone from the block. Every /24 you add under the block gets its own reverse zone the same way.

2:10Ridgeline's address plan now has a space, a campus block with its services pinned, a staff subnet that inherits them, and the subnet's reverse zone. Next, you'll hand out addresses with DHCP.

Step 1 of 28: IPAM

Nice work — walkthrough complete.
Now do it for real in the lab below.

IPAM is a strict containment tree. Each level lives inside the one above it, and only subnets hold addresses, so you build it from the top down.

IPSpaceVRF / routing domain IPBlockaggregate / supernet10.0.0.0/8 IPBlocknested inside the /810.1.0.0/16 Subnetroutable network10.1.2.0/24 IPAddressindividual host IP DHCPScope DHCPPool(s) primary managed unit the only level IP addresses attach to
Each level contains the one below it; addresses attach only to subnets · Adapted from the SpatiumDDI documentation (Apache-2.0)
Level Ridgeline’s Holds addresses? What it’s for
IP space Campus No An independent address domain
Block 10.20.0.0/16 “Ridgeline campus” No Shape, and settings its children inherit
Subnet 10.20.21.0/24 “Staff VLAN 21” Yes A routable network with a gateway
Address 10.20.21.10 print-01 (module 1.7) — One IP for one device

An IP space is an independent address domain. Subnets inside one space can never overlap, but two spaces may overlap each other, much like two VRFs. That makes a space the right home for anything that reuses address space: a partner network, an acquired site, a lab that copies production.

  • Most organizations need one or two spaces. Ridgeline needs one, Campus.
  • A space can pin default DNS and DHCP groups for everything below it. Ridgeline pins nothing on the space and pins at the block instead, so a future block, such as a second campus, can use different servers.
  • The VRF picker on the space’s Networking tab is an annotation that address allocation doesn’t consult. The space itself is what keeps overlapping addresses apart.
  • Overlapping spaces also need their own DNS and DHCP server groups; see the IPAM tips.

A block is an aggregate, such as 10.20.0.0/16 for the whole campus. It never holds addresses itself. It gives the tree its shape and carries settings down to everything beneath it: the DNS server group, the primary zone, the DHCP server group, custom fields and tags.

  • Blocks nest: a /16 can sit inside a /8, and a child block must fit entirely inside its parent.
  • Sibling blocks in the same space can’t overlap.
  • A block’s utilization is rolled up from the subnets beneath it.

Getting Started calls blocks optional, but the New Subnet form needs one. In a space without blocks, it tells you “No blocks in this space. Create a block first.”

A subnet is a routable network with a gateway, and the only level that holds addresses. It’s also where DHCP scopes attach (module 1.6). Two subnets in one space can’t overlap, whichever block they sit under, and a subnet must fit inside its block.

When you create a subnet, SpatiumDDI fills in the basics:

  • Gateway. Leave the field blank (“Auto-assigned if blank”) and the first usable address, 10.20.21.1, becomes the gateway: a reserved row with the hostname gateway. You can move it, or delete it on a transit link that has none.
  • Placeholder rows. The network (10.20.21.0) and broadcast (10.20.21.255) addresses appear in the address table as rows you can’t edit or allocate. /31 and /32 subnets get none (RFC 3021), and Skip network / broadcast / gateway records (loopback, P2P) leaves all three out.
  • Network role. Data, Voice and the other roles are metadata for filters and voice-VLAN checks. They don’t change how DNS or DHCP behave.

Between the rows, the address table draws green free-range rows that show each unallocated range and how many addresses it holds; click one to allocate from it (module 1.7). The Hide network/broadcast and Hide free ranges boxes above the table change only what you see, not what’s allocated.

The subnet’s tabs fill up as the network grows: IP Addresses, DHCP Pools, Aliases, Address Sets and Trend (utilization over time). A NAT tab joins them when the NAT mappings feature is turned on in Features & Integrations; a new install has it off.

The DNS and DHCP tabs of a block or subnet each have an Inherit from parent box, ticked by default. When it’s ticked, the object uses whatever the nearest ancestor pins. When you untick it, you pin the value on this object. DNS and DHCP inherit independently, so a subnet can inherit DNS and still use its own DHCP group.

Ridgeline unticks both boxes on the block and pins its services there. Staff VLAN 21 keeps both boxes ticked, and its DNS tab shows what it inherits:

Setting Where it’s set What Staff VLAN 21 uses
DNS server group Block 10.20.0.0/16 default
Primary DNS zone Block 10.20.0.0/16 corp.example.edu
DHCP server group Block 10.20.0.0/16 default
Reverse zone Created when the subnet is saved, in the inherited DNS group 21.20.10.in-addr.arpa

Every future VLAN subnet under the block gets the same three bindings, plus its own reverse zone, with no extra work. A quick test of your design: could someone create the next subnet knowing only its CIDR and its name? At Ridgeline, yes.

A written plan beats improvising in the create form. Ridgeline’s rule is one /24 per VLAN, numbered 10.20.<VLAN>.0/24, so Staff VLAN 21 is 10.20.21.0/24.

  • The address names the VLAN. Anyone who reads 10.20.21.37 in a log knows it’s on VLAN 21. The third octet stops at 255, so the convention covers VLAN IDs up to 255; plan another block for higher IDs.
  • Leave room to grow. Resize only grows a subnet, and the larger CIDR must contain the old one, fit inside the block and overlap nothing. The smallest step up for 10.20.21.0/24 is 10.20.20.0/23, which takes VLAN 20’s slot. Decide early which VLANs might outgrow a /24, and keep their neighbors free.
  • Give every subnet the same internal layout, so operators know where to look:
Range Ridgeline uses it for Module
.1 The gateway, reserved automatically 1.5
.1–.9 Network infrastructure, excluded from DHCP 1.6
.10–.99 Fixed addresses: print-01 (.10), cam-01 (.20), lab PCs (.30–.39) 1.7, 1.8
.100–.199 The DHCP dynamic pool for staff laptops 1.6
.200–.254 Unassigned, left for growth —

For larger designs, the Subnet Planner (in the sidebar, under IPAM) lets you draft a whole tree and apply it in one transaction.

Reverse lookups, from an address back to a name, need a reverse zone. Its name is the network’s octets reversed under in-addr.arpa: 21.20.10.in-addr.arpa covers only 10.20.21.0/24, while 20.10.in-addr.arpa covers all of 10.20.0.0/16. Reverse zones split cleanly only on octet boundaries (/8, /16 and /24).

You don’t create Ridgeline’s reverse zones by hand. When you save a subnet that has an effective DNS group, its own or one inherited from a block or space, SpatiumDDI creates the matching reverse zone in that group and links it to the subnet. Staff VLAN 21 inherits default from the block, so saving it creates 21.20.10.in-addr.arpa. In the same save, SpatiumDDI publishes the gateway’s PTR record: 10.20.21.1 → gateway.corp.example.edu. The rules behind it:

  • One zone per /24 the subnet spans. A /24 gets its own zone, a /25 shares its /24’s zone with its neighbors, and a /23 gets two. SpatiumDDI never creates one enclosing zone such as 20.10.in-addr.arpa, because that would make it answer for addresses outside the subnet. Growing a subnet with Resize… adds the zones for the new range. Subnets of /16 or wider get one zone per /16 (or /8) they contain.
  • The most specific zone gets each PTR. For each address, SpatiumDDI writes the PTR record into the most specific reverse zone in the subnet’s DNS group that covers it. A zone you create yourself works too, but a hand-made 20.10.in-addr.arpa gets no PTR records from a subnet that has its own 21.20.10.in-addr.arpa.
  • The zone goes where the subnet goes. Moving a subnet to Trash takes its reverse zones with it, unless another subnet still uses one (module 2.4).
  • The opt-out is API-only. To create a subnet without a reverse zone, set skip_reverse_zone when you create it through the API. SpatiumDDI stores the choice on the subnet, so later allocations don’t create the zone either.
Hands-on lab 3 · about 20 min

Build Ridgeline's address plan

You will:

  • Create the Campus IP space
  • Create the 10.20.0.0/16 block with the default DNS group, the corp.example.edu zone and the default DHCP group pinned
  • Create Staff VLAN 21 under the block, inheriting all three
  • Find the reverse zone 21.20.10.in-addr.arpa that SpatiumDDI created for the subnet, and check that BIND9 serves it

Before you start: Lab 2 is done: the zone corp.example.edu exists in the DNS group default.

  1. Open IPAM and click New IP Space (the + in the tree header). Enter the Name Campus and the Description “Ridgeline College campus network”, then click Create.

  2. Select Campus and click Add block. In New IP Block, enter the Network (CIDR) 10.20.0.0/16 and the Name Ridgeline campus.

  3. Open the DNS tab and untick Inherit from parent. Choose the DNS Server Group default and the Primary Zone corp.example.edu..

  4. Open the DHCP tab, untick Inherit from parent and choose the DHCP Server Group default. Click Create Block.

  5. Select 10.20.0.0/16 in the tree and click New Subnet. Enter the Network (CIDR) 10.20.21.0/24 and the Name Staff VLAN 21, leave Gateway blank, and set Network role to Data.

  6. Open the DNS tab and leave Inherit from parent ticked. It reads “Inheriting from parent: 1 group(s), zone: corp.example.edu.” Click Create.

  7. Open 10.20.21.0/24 in the tree. Check that the address table already has rows for the network, the gateway (10.20.21.1) and the broadcast address. The gateway row’s DNS column reads forward DNS skipped: the gateway gets a PTR record but no A record (module 1.7).

  8. Go to DNS, open the default group and its Zones tab, and find 21.20.10.in-addr.arpa. SpatiumDDI created it when you saved the subnet; you don’t add a reverse zone yourself.

  9. In a terminal, check that BIND9 serves the zone and the gateway’s PTR record. Expect a single SOA line, then gateway.corp.example.edu.; if an answer is empty, wait a few seconds and run it again.

    Terminal window
    dig @127.0.0.1 -p 1053 21.20.10.in-addr.arpa SOA +short
    dig @127.0.0.1 -p 1053 +short -x 10.20.21.1
✅ Check your work from the course folder:./lab/check.sh 3
Knowledge check · 6 questions

IPAM: build your address plan

1. Ridgeline takes on a partner network that also uses 10.20.0.0/16. How do you record both without a conflict?

2. What's the block 10.20.0.0/16 "Ridgeline campus" for?

3. You create 10.20.21.0/24 "Staff VLAN 21" under the block and leave the DNS and DHCP tabs on Inherit from parent. Which settings does the subnet use?

4. Staff VLAN 21 is created with Inherit from parent left ticked, so its DNS group and zone both come from the campus block. Which reverse zone does SpatiumDDI create for it automatically?

5. In a brand-new space, the New Subnet form warns "No blocks in this space. Create a block first." What does that tell you?

6. Select all the true statements about IP blocks.

Select all that apply.

  • IPAM features: the hierarchy (§1), gateway auto-assignment and inheritance (§11), and the rules the API enforces (§16)
  • Getting Started, steps 4 and 6–8: the official Ridgeline walk-through, including the automatic reverse zone (it sets the primary zone on the subnet; the course inherits it from the block)
  • DNS features §4: zones, reverse zones, one zone per /24, and how zones bind to subnets
  • GitHub issues #1149 (inheriting subnets get their reverse zone), #1150 (the gateway PTR at creation) and #1840 (one zone per /24)
  • Data model: the IPAM tables and how they relate
  • Tips and tricks: IPAM: inheritance, overlapping spaces and the gateway row
Finished 1.5 IPAM address plan?
Mark it complete to track your progress (stored only in this browser).