Jeremy Cioara's Three Step Subnetting Process ----------------------- -- BASED ON NETWORKS -- ----------------------- example: 200.5.1.0/24, make 50 networks. 1. Convert the number of networks needed to binary. e.g. 50 networks, takes 6 bits: 128 64 32 16 8 4 2 1 0 0 [1] - - - - - 2. Reserve the bits in the given range's mask and find your increment. (increment is last network bit in the current octet) starts with a /24, 24+6 = /30. Network bits end at /30, leaving two bits. Increment is 4. (1, 2, [4]) 3. Use the increment to generate network ranges. 200.5.1.0 - 3 200.5.1.4 - 7 etc -- examples -- 150.5.0.0/16, make 90 subnets 7 bits needed, /23. increment is 2. 150.5.0.0 - 150.5.1.255 150.5.2.0 - 150.5.3.255 150.5.4.0 - 150.5.5.255 -- 10.0.0.0/8, make 10 subnets. 10 needs 4 bits, so /12. Increment is 16. 10.0.0.0 - 10.15.255.255 10.16.0.0 - 10.31.255.255 10.32.0.0 - 10.47.255.255 -------------------- -- BASED ON HOSTS -- -------------------- 1. Convert the number of hosts needed to binary. same as above, just use the hosts instead of networks. 25 is achievable with 5 bits. 2. Reserve bits in the mask and find the increment. This is like the previous method except we're reserving host bits instead of networks bits. Take from the right instead of from the left. Fill in whatever bits are left with 1s for the network portion. e.g. I need 25 hosts per subnet on a /24. 128 64 32 16 8 4 2 1 0 0 0 1 - - - - <- reserve the last 5 bits of the mask. 11111111.11111111.11111111.11XXXXXX <- /27 3. Use increment to generate ranges. DON'T FORGET TO ACCOUNT FOR THE NETWORK AND BROADCAST ADDRESSES! ---------------------------------------------------------------- -- examples -- ---------------------------------------------------------------- 192.168.5.0/24 needing 25 hosts 25 needs 5 bits, leaving 3 for network. /24 + 3 = /27. Increment is 32. 192.168.5.0 - 192.168.5.31 192.168.5.32 - 192.168.5.63 192.168.5.64 - 192.168.5.91 ---------------------------------------------------------------- 192.168.1.0/24 needs 75 hosts. 128 64 32 16 8 4 2 1 0 1 - - - - - - Needs 7 bits, making the increment 128. 11111111.11111111.11111111.1XXXXXXX or /25 mask 192.168.1.0 - 192.168.1.127 ---------------------------------------------------------------- 172.30.0.0/16 need 80 hosts. 128 64 32 16 8 4 2 1 0 1 0 1 0 0 0 0 Needs 7 bits, increment is 128 in the last octet. 11111111.11111111.11111111.1XXXXXXX 172.30.0.0 - 172.30.0.127 172.30.0.128 ---------------------------------------------------------------- 172.16.0.0/16 needs 2000 hosts. solve for 2048 1024 512 256 . 128 64 32 16 8 4 2 1 0 1 - - - - - - - - - - hosts need 11 bits, leaving 5. new mask is 16+5 = /21 255.255.248.0 128 + 64 + 32 + 16 + 8 = 248 ---------------------------------------------------------------- 10.0.0.0/8 needs 1000 hosts 512 256 . 128 64 32 16 8 4 2 1 11111111.XXXXXXXX.XXXXXXYY.YYYYYYYY reserve 10 bits for hosts, leaving 14 for mask. new mask is /8 + 14 = /22 increment is 4 in the third octet. 10.0.0.0 - 10.0.3.255 10.0.4.0 - 10.0.7.255 10.0.8.0 - 10.0.11.255 ---------------------------------------------------------------- 200.5.1.0/24 needs 50 hosts 6 bits for 50 hosts. leaves 2 bits for mask, so /26. Increment is 64. 200.5.1.0 - 200.5.1.63 200.5.1.64 - 200.5.1.127 200.5.1.128 - 200.5.1.191 ---------------------------------------------------------------- 150.5.0.0/16 needs 200 hosts. 200 needs 8 bits, leaving 8 for mask. new mask is /24 and increment is 1 in the third octet. 150.5.0.0 - 150.5.0.255 150.5.1.0 - 150.5.1.255 150.5.2.0 - 150.5.2.255 ---------------------------------------------------------------- 10.0.0.0/8 needs 4000 hosts 4096 2048 1024 512 256 . 128 64 32 16 8 4 2 1 Needs 12 bits, leaving 12 more bits for mask. New mask is 20, increment is 16 in the third octet. 10.0.0.0 - 10.0.15.255 10.0.16.0 - 10.0.31.255 10.0.32.0 - 10.0.47.255