About subnet mask
Маска подсети (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.