skip to content

You are setting the IPv4 addressing standard for a new AWS organization that will hold dozens of accounts and VPCs. How do you allocate CIDR ranges, and what are you optimizing for?

level: principalimportance: nice to knowfreq 30%

answer

  1. one decision you cannot undo
  2. allocated, not chosen by teams
  3. group so ranges collapse into one
  4. include on-prem and partners
  5. space is free, renumbering is not

basics

~20 s

Give every VPC a non-overlapping slice of one organization-wide private supernet, sized with headroom and grouped so ranges summarize per region and environment. Overlap is the one decision you cannot reverse cheaply, so a central registry governs allocation.

solid answer

~50 s

I treat the address plan as a write-once decision and optimize for two things: no overlap, ever, and summarizable grouping. Overlap is the only mistake here with no cheap fix — two VPCs holding the same range can never be given routed connectivity, and the remedy is renumbering live systems. So I reserve one large private supernet for the whole estate, subdivide it by region and then by environment or account tier, and allocate each VPC a contiguous slice from its group so remote routes can be expressed as a few summary ranges instead of dozens of specifics. I include the on-premises and partner ranges in the same plan, because those collide too. Allocation goes through a registry rather than a wiki page — AWS VPC IP Address Manager exists for exactly this and can enforce it at provisioning time. Then I size generously, since address space costs nothing and renumbering costs an outage.

go deeper

for a junior

Know that VPC CIDR ranges should never overlap when networks might one day be connected, and that ranges come from a plan rather than being picked per project.

for a middle

Explain why overlap blocks routed connectivity outright, why subnet and VPC CIDRs are effectively immutable, and how that makes generous initial sizing the cheap option.

for a senior

Design a concrete hierarchy — supernet, region, environment, VPC — that summarizes into few routes, and account for on-premises and partner ranges as part of the same address space.

for a principal

Own the governance and the tradeoff: allocation enforced at provisioning time rather than by convention, tiered sizing against finite private space, deliberate unallocated headroom, and an honest account of what you do when overlap is unavoidable.

## Why this is a principal-level question Every other networking decision in AWS is reversible. You can re-route, re-tier, re-size instances, replace gateways. The address plan is the one artefact that gets baked into every VPC, every remote route, every firewall rule and every partner agreement, and undoing a bad one means renumbering running systems. Interviewers ask it because the answer reveals whether you think in terms of an estate over years or a diagram for today. ## The single hard constraint: no overlap Routed connectivity between networks requires unambiguous addresses. If two VPCs both use `10.0.0.0/16`, no routing construct can tell their `10.0.1.5` apart, so they cannot be joined. This is not an AWS limitation you can pay to remove; it is how IP routing works. The consequences show up years later, usually at the worst moment: an acquisition, a partner integration, a merge of two business units that each independently chose `10.0.0.0/16` because it is the example in every tutorial. So rule one is that address ranges are **allocated, not chosen**. No team picks its own CIDR. ## Structure the space so routes summarize A flat pool of non-overlapping ranges avoids collisions but produces sprawl: every remote route table ends up listing every VPC. Instead, carve hierarchically, so that whole groups can be expressed as one range: ``` 10.0.0.0/8 the estate 10.0.0.0/12 region A 10.0.0.0/14 region A / production 10.0.0.0/16 prod VPC 1 10.1.0.0/16 prod VPC 2 10.4.0.0/14 region A / non-production 10.16.0.0/12 region B ``` Now a rule that says "production in region A" is one prefix, not twenty. Fewer, coarser entries mean smaller route tables, simpler security rules, and reviews a human can actually read. Leave whole branches unallocated on purpose — the empty space is the plan's ability to absorb the next region or business unit without breaking summarization. ## Size for the decade, not the sprint Address space inside a VPC is free. There is no charge for a large CIDR, no performance difference, and no operational tax. What is expensive is being wrong downwards: subnets cannot be resized, VPC primary CIDRs cannot be shrunk, and adding a secondary CIDR later fragments the plan and forces route updates everywhere the VPC is reachable from. So allocate a VPC more than it needs, and leave unallocated space *inside* each VPC CIDR too, so future subnet tiers do not require an extension. The counter-pressure is real: RFC 1918 space is finite, and an estate that hands out a /16 to every sandbox exhausts `10.0.0.0/8` faster than it thinks. That is the actual tradeoff you are being asked about — headroom per VPC versus total addresses available — and the answer is tiering: production VPCs get generous allocations, ephemeral and sandbox environments get small ones from a separate pool that can be recycled, and the carrier-grade NAT range `100.64.0.0/10` is available as overflow for workloads that never need to be reached from corporate networks. ## Govern it with a system, not a spreadsheet A wiki page of allocations decays within a quarter. AWS VPC IP Address Manager (IPAM) is the purpose-built service: you define hierarchical pools, share them to accounts, and VPC creation draws its CIDR from the pool rather than from someone's memory, with allocations and utilisation tracked centrally. The important property is not the reporting — it is that provisioning without an allocation becomes impossible, which is the only control that survives organisational growth. ## Know the escape hatches, and their cost Sometimes overlap is unavoidable: you acquire a company, or a partner will not renumber. The honest answer is that you then stop trying to route between the networks and expose *services* instead of *networks*, or introduce address translation at the boundary. Both are real options and both are worse than having planned properly, which is the point to land: every escape hatch here is more expensive than the allocation discipline that would have avoided it. ## What to say last Summarise the optimization targets in order: correctness (no overlap), longevity (headroom and unallocated gaps), simplicity (summarizable hierarchy), and enforcement (allocation from a central pool at provisioning time). That ordering — rather than a specific prefix layout — is what the question is really testing.

  • Why not simply give every VPC a /16 and stop worrying about sizing?
    Because RFC 1918 space is finite and an estate of hundreds of VPCs exhausts 10.0.0.0/8 quickly, at which point new allocations break the hierarchy you built for summarization. Tier instead: generous ranges for long-lived production VPCs, small recyclable ones for ephemeral environments, and an overflow range for workloads never reached from corporate networks.
  • An acquisition arrives using the same private range you do. What now?
    Accept that routing between them is impossible without renumbering, and choose the least-bad boundary. Either the acquired estate renumbers over time, or you expose specific services across the boundary rather than joining the networks, or you translate addresses at the edge. All three cost more than the allocation discipline that prevents the situation.
  • What makes a central allocation system better than a documented convention?
    Enforcement at provisioning time. A convention depends on every team reading it and every reviewer noticing a violation; a pool that VPC creation draws from makes an unregistered allocation impossible. AWS VPC IP Address Manager provides hierarchical pools, sharing across accounts and utilisation tracking, so the registry cannot drift from reality.

It is street numbering for a city you have not finished building: cheap to plan, ruinous to redo once every address is printed on business cards.

saying these in an interview costs you the question

  • Lets each team pick its own VPC CIDR
  • Ignores on-premises and partner ranges in the plan
  • Assumes overlapping ranges can be fixed by routing later
  • Sizes VPCs to today's instance count
  • Tracks allocations only in a wiki page

context