This may have been answered already here but I am unable to find a clear explanation on this matter. Here is the deal:
I am implementing an IP schema for a customer with VLSM. Very simple subnetting of a /24 for 3 subnets and it ends up leaving me with 77 unused/wasted IP addresses.
10.3.9.0/24 is the main network.
I subnet first with the largest subnet to 10.3.9.0/25. Network boundary for next network is 10.3.9.128. This is my next subnet, 10.3.9.128/27. This then ends at boundary 10.3.9.160, which is my 3rd subnet with CIDR 10.3.9.160/28, ending at .175. Each of these subnet CIDRs is issued based on host requirements.
So since the 3rd subnet ends at 10.3.9.175, that leaves me with 77 IP addresses that I want to add another spare subnet to provide them for future available use. Here is my confusion with this. It seems that I can only do a /28 that allows for 14 usable hosts at this last network boundary of .175, but this does not maximize the remaining IP address space until 10.3.9.255 because it ends at .191 and still leaves a lot of leftover IP addresses.
My ideal would be to have the last reserved 4th subnet be a 10.3.9.176/26 so I can get 62 usable IP addresses and have it ending at .240. Thus, only wasting 14 IP addresses, or even better, allocated furthermore those 14 IP addresses for one last 5th subnet with a CIDR of /28!
Here is the proof:
reliance ~ >> ipcalc 10.3.9.176/28
Address: 10.3.9.176 00001010.00000011.00001001.1011 0000
Netmask: 255.255.255.240 = 28 11111111.11111111.11111111.1111 0000
Wildcard: 0.0.0.15 00000000.00000000.00000000.0000 1111
=>
Network: 10.3.9.176/28 00001010.00000011.00001001.1011 0000
HostMin: 10.3.9.177 00001010.00000011.00001001.1011 0001
HostMax: 10.3.9.190 00001010.00000011.00001001.1011 1110
Broadcast: 10.3.9.191 00001010.00000011.00001001.1011 1111
Hosts/Net: 14 Class A, Private Internet
reliance ~ >> ipcalc 10.3.9.176/27
Address: 10.3.9.176 00001010.00000011.00001001.101 10000
Netmask: 255.255.255.224 = 27 11111111.11111111.11111111.111 00000
Wildcard: 0.0.0.31 00000000.00000000.00000000.000 11111
=>
Network: 10.3.9.160/27 00001010.00000011.00001001.101 00000
HostMin: 10.3.9.161 00001010.00000011.00001001.101 00001
HostMax: 10.3.9.190 00001010.00000011.00001001.101 11110
Broadcast: 10.3.9.191 00001010.00000011.00001001.101 11111
Hosts/Net: 30 Class A, Private Internet
reliance ~ >> ipcalc 10.3.9.176/26
Address: 10.3.9.176 00001010.00000011.00001001.10 110000
Netmask: 255.255.255.192 = 26 11111111.11111111.11111111.11 000000
Wildcard: 0.0.0.63 00000000.00000000.00000000.00 111111
=>
Network: 10.3.9.128/26 00001010.00000011.00001001.10 000000
HostMin: 10.3.9.129 00001010.00000011.00001001.10 000001
HostMax: 10.3.9.190 00001010.00000011.00001001.10 111110
Broadcast: 10.3.9.191 00001010.00000011.00001001.10 111111
Hosts/Net: 62 Class A, Private Internet
Specifically looking at my third output, why does it compute to network ID boundaries going backwards to .128? I think it is because it is using the block size of the CIDR with FLSM and not VLSM! I want to be able to arbitrarily have the network ID start at the boundary I define, in this case being .176, and then apply the CIDR I want to it and have it subnet from that network ID forward towards .255 as long as their is enough space.
Is it that most subnetting tools do not employ VLSM but rather work of FLSM based on block size increments? But that does not mean I cannot do what I am trying to do here by and it work as long as I ensure my VLSM subnetting has no overlaps or am I mistaken?