@@ -4,21 +4,35 @@ param location string
44param tags object = {}
55
66
7- // The address prefixes for the subnets - use below CIDR as a reference
8- // /24 subnet = 256 addresses
9- // /23 = 512 addresses (enough for 2 /24 subnets)
10- // /22 = 1024 addresses (enough for 4 /24 subnets)
11- // /21 = 2048 addresses (enough for 8 /24 subnets)
12- // /20 = 4096 addresses (enough for 16 /24 subnets) // This was used for the default VNet address prefix
13- // /19 = 8192 addresses (enough for 32 /24 subnets)
14- // /18 = 16,384 addresses (enough for 64 /24 subnets)
15- // /17 = 32,768 addresses (enough for 128 /24 subnets)
16- // /16 = 65,536 addresses (enough for 256 /24 subnets)
17- // /15 = 131,072 addresses (enough for 512 /24 subnets)
18- // /14 = 262,144 addresses (enough for 1024 /24 subnets)
19- // /13 = 524,288 addresses (enough for 2048 /24 subnets)
20- // /12 = 1,048,576 addresses (enough for 4096 /24 subnets)
21-
7+ // Subnet Classless Inter-Doman Routing (CIDR) Sizing Reference Table (Best Practices)
8+ // | CIDR | # of Addresses | # of /24s | Notes |
9+ // |-----------|---------------|-----------|---------------------------------------|
10+ // | /24 | 256 | 1 | Smallest recommended for Azure subnets |
11+ // | /23 | 512 | 2 | Good for 1-2 workloads per subnet |
12+ // | /22 | 1024 | 4 | Good for 2-4 workloads per subnet |
13+ // | /21 | 2048 | 8 | Good for larger scale, future growth |
14+ // | /20 | 4096 | 16 | Used for default VNet in this solution |
15+ // | /19 | 8192 | 32 | |
16+ // | /18 | 16384 | 64 | |
17+ // | /17 | 32768 | 128 | |
18+ // | /16 | 65536 | 256 | |
19+ // | /15 | 131072 | 512 | |
20+ // | /14 | 262144 | 1024 | |
21+ // | /13 | 524288 | 2048 | |
22+ // | /12 | 1048576 | 4096 | |
23+ // | /11 | 2097152 | 8192 | |
24+ // | /10 | 4194304 | 16384 | |
25+ // | /9 | 8388608 | 32768 | |
26+ // | /8 | 16777216 | 65536 | |
27+ //
28+ // Best Practice Notes:
29+ // - Use /24 as the minimum subnet size for Azure (smaller subnets are not supported for most services).
30+ // - Plan for future growth: allocate larger address spaces (e.g., /20 or /21 for VNets) to allow for new subnets.
31+ // - Avoid overlapping address spaces with on-premises or other VNets.
32+ // - Use contiguous, non-overlapping ranges for subnets.
33+ // - Document subnet usage and purpose in code comments.
34+ // - For AVM modules, ensure only one delegation per subnet and leave delegations empty if not required.
35+ //
2236
2337module network 'network/main.bicep' = {
2438 name : take ('network-${resourcesName }-create' , 64 )
0 commit comments