Маска сети и подсети (255.255.255.0) – что это такое и для чего нужна?

Передача данных

Как вы, наверное, знаете – информация в сети передается пакетами, примерно также как на почте. В пакете также есть и заголовок, где прописаны два адреса:

  • Source IP – от кого отсылается пакет.
  • Destination IP – к кому отсылать пакет.

Никакой маски в передаваемой информации нет, также сам адрес представлен в чистом виде без точек, запятых и без каких-либо разделителей – «голые» 4 байта. И тут сразу встает вопрос – а для чего тогда вообще нужна маска подсети, и где её применяют? – Вот мы и подошли к самой сути. В пакете информации маски нет.

Маска подсети (Mask) – позволяет понять компьютеру или другому сетевому устройству, в какой границе он находится по отношению к другим устройствам. Чтобы он понимал – что те или иные устройства находятся в одной с компьютером сети или нет. Если говорить вообще сельским языком: «С нашего двора или нет?!».

Для чего это вообще нужно? А нужно это для того, чтобы можно было отправлять пакеты информации напрямую. Например, если вы живете в одном городе с другом, то вам проще и быстрее сходить к нему в гости и передать что-то лично в руки. Но если друг живет за пределом города, то проще уже отправить посылку с помощью почты.

Аналогично все происходит в сети. Если устройство находится в пределах одной подсети (можно говорить и просто «сети»), то отправка идет напрямую. Если же устройство находится где-то там, то пакет отправляется через шлюз.

Теперь давайте посмотрим, какой же вид имеет маска сети. Самое главное правило, что при переводе в двоичный код (1 и 0), мы можем видеть строгое разделение единиц (1) и нулей (0).

Таблица масок

То есть, идут сначала единицы, а потом нули. Не может быть такого, что 1 и 0 постоянно меняются и чередуются: «101010001». При этом идет определенное число единиц (1), а уже потом какое-то число нулей (0). Вот как раз число нулей и является длиной маски. Компьютер определяет границу, достаточно просто. Он переводим IP и маску в двоичный код и просто побитово перемножает два этих числа.

В итоге мы получаем адрес подсети – 192.168.8.0. Есть ещё одно понятие – «направленный броадкаст». Его можно получить, если перевести последние используемые байты в биты, а потом нули заменить на единицы, а единицы на нули. Тогда у нас получится число 192.168.15.255.

В итоге у нас получается диапазон от 192.168.8.1 до 192.168.15.254. Можно также записать более коротко как 192.168.8.0/21. В итоге все начальные единицы – это адрес или префикс сети (192.168.х.х). Длина префикса – это начальное количество единиц и нулей до последних сплошных нулей. А все нули, которые идут в самом конце – это идентификатор хоста внутри сети.

В итоге компьютер отсылает пакет второму устройству. Если второе устройство находится в той же подсети, то отправка идет напрямую. Если же второй аппарат находится в другой сети, то пакет отправляется маршрутизатору, который чаще всего выступает шлюзом. Обычно первый сегмент сети и является шлюзом. В нашем случае – это 192.168.8.1.

Давайте расскажу на примере обычного Wi-Fi роутера и локальной домашней сети. Дома стоит маршрутизатор, к которому подключены: компьютер, ноутбук, смартфон и телевизор. Роутер раздает настройки сети и присваивает им свои IP и маску. Как я и говорил ранее, чаще всего используется: 255.255.255.0.

Если компьютер отправит пакет напрямую одному из локальных устройств, то пакет отправится сразу к адресату. Но если в пакете будет указан IP, который не находится в этой сети, то он поступит сначала к шлюзу, а именно к роутеру, а он, в свою очередь, отправит его дальше в интернет сеть.

В больших организациях всё куда сложнее, так как между сетями может быть достаточно много шлюзов, хостов, а также других важных устройств. Именно поэтому IT инженеру нужно заранее просчитывать все возможные варианты резервации IP для каждого сетевого устройства.

Преобразуйте десятичное представление сетевой маски в двоичную. Затем подсчитайте количество смежных 1 бит, начиная с самого значащего бита в первом октете (т. Е. Левая сторона двоичного числа).

255.255.248.0   in binary: 11111111 11111111 11111000 00000000
                           -----------------------------------
                           I counted twenty-one 1s             -------{amp}gt; /21

Префикс 128.42.5.4 с сетевой маской 255.255.248.0 равен /21.

Сетевой адрес является логическим И соответствующих битов в двоичном представлении IP-адреса и сетевой маски. Выровняйте биты в обоих адресах и выполните логическое И на каждой паре соответствующих битов. Затем преобразуйте отдельные октеты результата обратно в десятичную.

128.42.5.4      in binary: 10000000 00101010 00000101 00000100
255.255.248.0   in binary: 11111111 11111111 11111000 00000000
                           ----------------------------------- [Logical AND]
                           10000000 00101010 00000000 00000000 ------{amp}gt; 128.42.0.0

Как вы можете видеть, сетевой адрес 128.42.5.4/21 равен 128.42.0.0

Вы не указали достаточно информации для подсчета подсети для этой сети; как правило, вы создаете подсети путем перераспределения некоторых битов хоста в виде сетевых битов для каждой подсети. Много раз нет ни одного правильного способа подсети блока … в зависимости от ваших ограничений может существовать несколько допустимых способов подсети блока адресов.

Предположим, что мы разделим 128.42.0.0/21 на 4 подсети, которые должны содержать не менее 100 хостов каждый …

В этом примере мы знаем, что вам нужен хотя бы префикс /25, содержащий 100 хостов; Я выбрал a /24, потому что он попадает на границу октета. Обратите внимание, что сетевой адрес для каждой подсети берет биты хоста из родительского сетевого блока.

Биты хоста = Журнал 2 (Число хостов) = Журнал 2 (100) = 6.643

Так как адреса IPv4 имеют ширину 32 бита, и мы используем биты хоста (т.е. младшие значащие биты), просто вычитаем 7 из 32 для вычисления минимального префикса подсети для каждой подсети … 32 – 7 = 25.

Поскольку нам нужно всего четыре подсети из всего блока 128.42.0.0/21, мы могли бы использовать /23 подсети. Я выбрал /23, потому что нам нужны 4 подсети … т. Е. Добавлены еще два бита в маску сети.

Это равноправный ответ на ограничение, используя /23 подсети из 128.42.0.0/21 …

Чтобы найти максимальное количествохосты, посмотрите количество бинарных битов в указанном выше номере узла. Самый простой способ сделать это – вычесть длину сетевой маски от 32 (количество бит в адресе IPv4). Это дает вам количество бит хоста в адресе. В этот момент …

Максимальное количество хостов = 2 ** (32 – netmask_length) – 2

Причина, по которой мы вычитаем 2 выше, заключается в том, что зарезервированы номера хостов all-ones и all-zeros. Номер хоста all-zeros – это номер сети; номер хоста all-ones – широковещательный адрес.

Используя пример подсети 128.42.0.0/21 выше, количество хостов …

Максимальное количество хостов = 2 ** (32 – 21) – 2 = 2048 – 2 = 2046

Проще всего сделать, чтобы преобразовать оба в двоичный файл и найти самую длинную строку сетевых битов из левой части адреса.

128.42.5.4      in binary: 10000000 00101010 00000101 00000100
Host bit mask            : 00000000 00000000 00000111 11111111
                           ----------------------------------- [Logical AND]
                           00000000 00000000 00000101 00000100 -----{amp}gt; 0.0.5.4

В этом случае минимальная сетевая маска будет /25

ПРИМЕЧАНИЕ. Если вы попытаетесь начать с правой стороны, не обманывайте себя только потому, что вы найдете один соответствующий столбец бит; могут существовать несогласованные биты за пределами этих совпадающих битов. Честно говоря, самым безопасным делом является запуск с левой стороны.

Оцените статью
Финансовый консультант