/30 = 4IP
/29 = 8IP
/28 = 16IP
/27 = 32IP
/26 = 64IP
/25 = 128IP
/24 = 256IP
/23 = 512IP
/22 = 1024IP
/21 = 2048IP
/20 = 4096IP
…
but you cant use the borders so 0 and 255 are not ussable.
so always minus 2
so 192.168.0.1/23 will give you space for clients from 192.168.0.2 to 192.168.1.254 (192.168.0.0 border, 192.168.0.1 Gateway, 192.168.1.255 border)
Or you can also use 2 or more pools so you can use for your DHCP pool1 = 192.168.0.0/24 and second pool2 = 192.168.1.0/24 as the “next pool” and the DPHS will give at the first all adresses from pool1 and than from pool2.
While you could use a single large DHCP pool, I typically use multiple for two reasons:
I have run into some issues from time to time with poorly written clients choking on the .255 and .0 addresses in the middle, so I just avoid handing them out, even if they are technically valid.
I like to leave a 5 IP buffer on both sides of a pool, so I have static IP’s reserved if I ever need them, and if for some reason I need to split them back into /24’s, i don’t have to rebuild as much, and keep things consistent. (i always know 1-5 and 250-254 are reserved)
Is it overkill? Probably. Has it worked great for me? Absolutely. Another thought, if this is for a network where you have a lot of turnover (public hotspots, schools, etc), try turning down the lease time to 6-8h and you will find you can stretch an address pool a lot further.