Что такое /24 /16 в ip-адресах?

Добро пожаловать в наше сообщество!
На сайте вы можете создавать открытые и закрытые группы для обсуждения различных тем.
Регистрация

Mr.FMR

Администратор
9 Апр 2020
50
0
8
Необходимо заблокировать все адреса: 109.207.13.X то есть от 109.207.13.0 до 109.207.13.255.

/16, /24 - это обозначение классов сетей.

Переписывать матчасть не буду, поэтому почитайте здесь.

Поэкспериментировать и наглядно понять правильность понимания можно вот тут.

Что касается упомянутого "109.207.13.X то есть от 109.207.13.0 до 109.207.13.255", то это сеть класса C, т.е. 109.207.13.0/24 с маской подсети 255.255.255.0 (где /24 означает представление маски в десятичной форме, а именно с ее двоичной формы записи 11111111.11111111.11111111.00000000, т.е. маска 24 бит из возможных 32-х, и количество возможных хостов в этой подсети, как в твоем случае, как раз 256, т.е. от 0 до 255 включительно).

Эх.. Раз пошла такая пьянка - режь последний огурец..

Итак, что такое /24: IP адрес (IPv4) представляет собой адрес, состоящий из 4 байтов (32-х бит, т.е. 4х8 бит, разделенных точкой), где его формат записи в двоичной форме выглядит как 11000000.10101000.00000000.00000001. А десятичной форме аналогичная запись выглядит как запись из 4-х чисел от 0 до 255 включительно, где 255 - это максимальное число, которое можно выразить в 8-ми битах, т.е. 255 в двоичном формате будет выглядеть так: 11111111. Т.е. некоторый IP, скажем 192.168.0.1, будет выглядеть в двоичной форме так: 11000000.10101000.00000000.00000001. Если взять сеть 192.168.0.0/24 и выбрать любой IP адрес из диапазона 192.168.0.0 - 192.168.0.255, то для конкретного IP адреса любого из этих 256 возможных хостов (теоретически от 0 до 255 включительно) маска подсети будет выглядеть следующим образом: 11111111.11111111.11111111.00000000 (255.255.255.0 в десятичной форме), что означает что 3х8=24 бита (слева направо) в адресе - это биты, указывающие на адрес подсети, а последние 8 битов отведены на IP адреса хостов в подсети, т.е. от 0 до 255 (что равняется 256-ти, и 256 - это число всех возможных комбинаций от 00000000 до 11111111).

Теперь дальше и глубже: допустим, что не требуется все 256 хостов в одной подсети, а хочется разделить пространство на еще 2 подсети (по 128 хостов в каждой). Тогда можно разделить эту сеть так: маска подсети будет 255.255.255.128 (т.е. 11111111.11111111.11111111.10000000 или же /25 - по количеству битов слева направо) и получаем сети с 128 хостами в каждой: 0-127 в одной (Network 192.168.0.0 с Broadcast Address 192.168.0.127) и 128-255 (Network 192.168.0.128 с Broadcast Address 192.168.0.255) в другой.

Добавлю еще для понимания (не вдаваясь в подробности операций с двоичными данными), выражаясь простыми словами для быстрой калькуляции в уме: раз IPv4 адрес состоит всегда из 4х8=32 бит, и если маска подсети в каком-то конкретном случае занимает, скажем, 24 бит (те, что слева направо), то 32-24=8 бит идут под диапазон для IP адресов хостов (читай компьютеров, сетевых принтеров, прочих устройств, имеющих свой IPv4). И для того, чтобы посчитать в данном случае каково количество возможных хостов для каждой подсети с данной маской, то надо 2 возвести в степень 8 (где 8 - количество нулей в маске), т.е. результатом будет 256. Если взять сеть 192.168.0.0/26, то само собой количество нулей будет равняться 6-ти (32-26), то количество хостов будет 2^6=64, маска - 255.255.255.192, а количество подсетей будет в данном диапазоне будет равняться 4-м (4х64 в каждой).

Внимательный заметит, даже не вдаваясь в подробности, что сумма количества возможных хостов в подсети и последнее число в маске в сумме дают 256, а количество подсетей - это 256, разделенное на 64 (количество хостов в каждой подсети, где 256 и 64 - только для данного примера! - почему, надо понять самому, хотя бы по аналогии с/16, приведенным ниже) и сделает логические выводы.

Ну и исходя из вышеперечисленного нетрудно разложить следующее: /16 (так называемый Class B) - это когда возможны 65536 (2^16) хостов в одной подсети, т.е. маска выглядит так: 11111111.11111111.00000000.00000000, т.е. адрес сети занимает 8х2=16 бит (слева), а под IP адреса хостов выделено тоже 8х2=16 (все возможные комбинации от 00000000.00000000 до 11111111.11111111, т.е. как раз 65536 штук) значения бит из адреса (справа). Т.е. диапазон IP адресов хостов в десятичной форме выглядит так: от 192.168.0.0 до 192.168.255.255, где маска подсети /16, т.е. 255.255.0.0

Ну и так далее..

Что касается "Подскажите пожалуйста как правильно?" - если речь идет о .htaccess, то смело можете использовать Deny и указывать 109.207.13.0/24.
Код:
order allow,deny
allow from all
deny from 109.207.13.0/24
Если речь идет о блокировке в каких-нибудь Cisco или Juniper - то это тогда в их документацию и на РутКод :)