Plan a non-overlapping CIDR range for 4 clouds (AWS, GCP, Azure, DigitalOcean) across 3 environments (dev, staging, prod). Document the allocation in a CIDR table that survives 10x growth and supports cross-cloud peering.
Hints
2^(32-N) - 5, not -2.**Expected output (excerpt)**
| Cloud | Env | Parent CIDR | AZ-a Subnet | AZ-b Subnet | AZ-c Subnet |
|---|---|---|---|---|---|
| AWS | prod | 10.0.0.0/16 | 10.0.0.0/20 | 10.0.16.0/20 | 10.0.32.0/20 |
| AWS | staging | 10.1.0.0/16 | 10.1.0.0/20 | 10.1.16.0/20 | 10.1.32.0/20 |
| AWS | dev | 10.2.0.0/16 | 10.2.0.0/20 | 10.2.16.0/20 | 10.2.32.0/20 |
| GCP | prod | 10.16.0.0/16 | 10.16.0.0/20 | 10.16.16.0/20 | 10.16.32.0/20 |
| ... | ... | ... | ... | ... | ... |
## Stretch goals
**Stretch goals**
- Add a 5th cloud (e.g. Oracle Cloud) without renumbering anything else.
- Reserve a /20 per environment for Kubernetes pod CIDRs (which often need to be disjoint from node CIDRs).
- Include IPv6 dual-stack ranges using ULA fd00::/8 and document the mapping.
- Write a Python script that takes your plan as JSON and verifies non-overlap programmatically with the `ipaddress` module.
- Extend the plan to support a transit hub VPC (e.g. AWS TGW) at 10.255.0.0/16 reserved for inter-cloud traffic.