About subnet mask

11 Created on 16 June 2025 at 16:28

Маска подсети (Subnet Mask) — это 32 битный идентификатор сети, который является дополнением к IP адресу.

  • Состоит из четырех октетов по 8 бит.
  • Служит для обозначения границы между хостовой и сетевой частью.

IP адрес 192.168.0.66 c маской 255.255.255.0

  • 192.168.0 — сетевая часть адреса
  • 66 — идентификатор устройства в этой сети (хостовая часть)

Маска подсети указывает, сколько бит в IP-адресе используется для сетевой части и сколько для хостовой.

  • Маска 255.255.255.0 говорит, что на сеть будет приходиться 24 бита.

Маску подсети можно записывать в формате CIDR (Classless Inter-Domain Routing), где /24 означает, что 24 бита выделены под сеть, а оставшиеся 8 битов — под хосты:

  • 192.168.0.66/24

Маска подсети помогает компьютерам и маршрутизаторам определять, могут ли два устройства общаться напрямую, или же нужно использовать маршрутизатор (router) для передачи данных между ними.

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

Типы масок

В зависимости от нужд организации и количества устройств в сети выбираются различные маски подсети.

  • Резервируется первый адрес (все биты в хостовой части равны 0) — это идентификатор сети, например, 192.168.1.0

  • Резервируется последний адрес (все биты в хостовой части равны 1) — это широковещательный (broadcast) адрес, например, 192.168.1.255

Например, 255.255.255.0 (или же CIDR /24)

  • 2 в 8 степени = 256 адресов.
  • В сети могут быть до 254 устройства, потому что 24 бита адреса будут представлять сеть, а последние 8 битов (хостовая часть) могут быть использованы для устройств (от 1 до 254).

255.255.0.0 (/16)

  • В сети может быть до 65,534 устройств (поскольку 16 бит используются для сети, а 16 — для хостов).

255.0.0.0 (/8)

  • Очень большая сеть, которая может включать до 16 миллионов устройств.
  • Например, сеть 10.0.0.0 с маской 255.0.0.0 охватывает адреса от 10.0.0.1 до 10.255.255.254.

Нестандартные маски

Иногда часть октета может забрать сетевая часть адреса.

Чтобы правильно разделить сетевые и хостовые части, нужно представить маску в двоичном виде:

Если /24 это:

255.255.255.0 —> 11111111.11111111.11111111.00000000

То /26:

11111111.11111111.11111111.11000000 —> 255.255.255.192

  • один октет не может содержать более 8 бит.
  • три октета полные — 24 бита.
  • нужно занять еще два бита в следующем октету —> 11000000
  • 11000000 в десятичной системе это 192

В сети с такой маской доступно всего 64 адреса, где 0 это идентификатор сети, 63 broadcast адрес.

  • Для хостов остается 62 адреса.

Проще рассчитать через остаток адресов хостовой части:

Для адреса 192.168.10.10/26:

  • 32 - 26 = 6 бит для хостов
  • 2 в 6 степени это 64 адреса доступно — запоминаем этот шаг подсети.
  • 255 - 64 = 192
  • 255.255.255.192 — маска в стандартном виде

Диапазон адресов в этой сети:

  • 192.168.10.0 — 192.168.10.63 — первый диапазон подсети и сюда подпадает адрес.
  • Значит 192.168.10.0 — идентификатор сети.
  • 192.168.10.63 — Broadcast.

Более сложный пример

Если хостовая часть IP адреса занимает все 8 бит октета, ее можно откинуть сразу задать 0 для сети.

Например, адрес 172.16.50.200/22:

  • 32 - 22 = 10 бит хостовая часть.
  • 4 октет полностью занят хостами: 10 - 8 = 2 бита в 3 октете для хостов.
  • 2 х 2 = 4 адреса хостовой части в 3 октете — это же и шаг.
  • 256 - 4 = 252 — 3 октет сетевой части.
  • 255.255.252.0 — маска подсети 22 бита

172.16.0.0 — 172.16.3.0 — первый диапазон сетей.

Нужно дойти до диапазона сетей, куда входит целевой адрес адрес.

172.16.48.0 — 172.16.53.0 — нужный диапазон сетей в 22 бита.

172.16.48.0/22 — идентификатор сети. 172.16.53.255/22 — broadcast это сети.

Wildcard

Wildcard mask (маска инверсии) — это маска, используемая в сетевых устройствах для фильтрации IP-адресов.

В отличие от обычной маски подсети, где 1 обозначает часть сети, а 0 — хостов в двоичном представлении, в wildcard mask всё наоборот:

0 означает, что бит должен совпадать (фиксированное значение). 1 означает, что бит может быть любым (игнорируется).

Зная маску сети, легко вычислить wildcard маску путем вычитания из 32 битной маски текущую маску.

Например, для маски подсети 255.255.255.192

  • 255.255.255.255 - 255.255.255.192 = 0.0.0.63

Broadcast адрес

Broadcast (широковещание, трансляция) — это метод передачи данных, при котором сообщение отправляется всем устройствам в сети одновременно, а не только определенному получателю.

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

Каждая сеть имеет свой широковещательный адрес, который обычно представляет собой последний IP-адрес в подсети.

Когда все биты хостовой части равны 1: это число 255 — 11111 в двоичной системе. * Например, 192.168.0.255 — это broadcast адрес.

Когда устройство отправляет пакет с адресом 192.168.1.255, это означает, что пакет будет доставлен всем устройствам в сети 192.168.1.0/24.