Простой способ понять это:
В IPv4:
Представьте себе строку из 256 * 256 * 256 * 256 (или 2 ^ 32) возможных IP-адресов.
[] [] [] [] .................. [] [] []
256*256*256*256 total IP adresses
Он имеет маску подсети 0.0.0.0 (или 0000 0000 0000 0000 0000 0000 0000 0000 в двоичном виде).
Все биты, которые не маскируются, могут использоваться для предоставления IP-адреса в этой сети.
Возможные адреса в этой единственной сети:
0000 0000 0000 0000 0000 0000 0000 0000 (<- NETMASK, здесь ничего не маскируется ...)
0000 0000 0000 0000 0000 0000 0000 (IP 0.0.0.0) до
1111 1111 1111 1111 1111 1111 1111 1111 (IP 255.255.255.255)
Вся эта сеть начинается с IP 0.0.0.0 и продолжается до IP 255.255.255.255
Каждый бит в маске подсети разделит строку на 2 равные части.
Первый бит в маске подсети разделит его на 2 равные части, каждая с IP-адресами 128 * 256 * 256 * 256 (или 2 ^ 31):
[] [] [] .......... [] [] [] | [] [] ........... [] []
128*256*256*256 IP Adresses 128*256*256*256 IP Adr
Это имеет маску подсети 128.0.0.0 (или 1000 0000 0000 0000 0000 0000 0000 0000 в двоичном виде).
Все биты, которые не маскируются, могут использоваться для предоставления IP-адреса в этой сети.
Таким образом, вы можете иметь 2 подсети, и для каждой подсети у вас есть 31 бит доступных IP-адресов.
Для первой подсети (та, где за маской сети стоит '0')
1000 0000 0000 0000 0000 0000 0000 (<- NETMASK)
0000 0000 0000 0000 0000 0000 0000 (IP 0.0.0.0) -
0111 1111 1111 1111 1111 1111 1111 1111 (IP 127.255.255.255)
и для 2-й подсети (та, где за маской сети стоит '1')
1000 0000 0000 0000 0000 0000 0000 (<- NETMASK)
1000 0000 0000 0000 0000 0000 0000 (IP 128.0.0.0) -
1111 1111 1111 1111 1111 1111 1111 1111 (IP 255.255.255.255)
Следующий дополнительный бит в маске подсети делит обе стороны на 2 равные части по 2 ^ 30 IP-адресов каждый
И так далее...
Таким образом, если вы попытаетесь назначить, скажем, подсеть / 3, это означает, что вы провели 3 итерации деления, в результате чего получилось 2 ^ 3 = 8 подсетей. Каждая подсеть может быть только одним из 8 подразделений всей линейки машин. Они не могут пересекаться. Каждый начинается после первого.
[] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... [] | [] ... []
32*256*256*256 or 2^30 IP Adresses each.
Это имеет маску подсети 0.0.0.0
Таким образом, для первой подсети (та, где за маской сети стоит «000»)
1110 0000 0000 0000 0000 0000 0000 0000 (<- NETMASK)
0000 0000 0000 0000 0000 0000 0000 (IP 0.0.0.0) -
0001 1111 1111 1111 1111 1111 1111 1111 (IP 31.255.255.255)
и для 2-й подсети (та, где за маской сети стоит '001')
1110 0000 0000 0000 0000 0000 0000 (NETMASK)
0010 0000 0000 0000 0000 0000 0000 (IP 32.0.0.0) -
0011 1111 1111 1111 1111 1111 1111 1111 (IP 63.255.255.255)
...
и для 7-й подсети (та, где за маской сети стоит «110»)
1110 0000 0000 0000 0000 0000 0000 (NETMASK)
1100 0000 0000 0000 0000 0000 0000 (IP 192.0.0.0) -
1101 1111 1111 1111 1111 1111 1111 1111 (IP 223.255.255.255)
и для 8-й подсети (та, где за маской сети стоит «111»)
1110 0000 0000 0000 0000 0000 0000 (NETMASK)
1110 0000 0000 0000 0000 0000 0000 (IP 224.0.0.0) до
1111 1111 1111 1111 1111 1111 1111 1111 (IP 255.255.255.255)
Если вы продолжаете добавлять бит в маску сети, вы продолжаете делить: подсеть / 32 выделяет одну машину.
Но помните, что вы не можете иметь только машины:
чтобы все работало, часть диапазона подсети зарезервирована:
для каждой подсети «0 бит со значением 1» и «все биты со значением 1» обычно зарезервированы для широковещательной передачи, поэтому обычно в подсети доступно только nb_of_possible_adresses_in_the_subnet-2 IP-адреса для реальных машинных интерфейсов. И лучше всего быть интерфейсом шлюза, который имеет другой интерфейс в других сетях, что позволяет вам использовать его в качестве шлюза для доступа к этим другим сетям (и всему, через шлюзы этих других сетей)