Gymterview
junior

Что такое маска подсети и CIDR? Как разбивать сеть на подсети?

Маска подсети (Subnet Mask) — 32-битное число, определяющее, какая часть IP-адреса является адресом сети, а какая — адресом хоста. В двоичном виде маска представляет собой непрерывную последовательность единиц (сетевая часть), за которой следуют нули (хостовая часть).

CIDR (Classless Inter-Domain Routing) — компактная нотация записи IP-адреса с указанием длины сетевого префикса (количества бит сетевой части), заменившая устаревшую классовую адресацию.

Аналогия из жизни: представьте почтовый адрес «г. Москва, ул. Ленина, д. 5». Маска подсети — это правило, определяющее, где заканчивается название улицы (сеть) и начинается номер дома (хост). CIDR — это краткая запись этого правила.

Примеры масок

Маска Двоичный вид CIDR Кол-во хостов
255.0.0.0 11111111.00000000.00000000.00000000 /8 16 777 214
255.255.0.0 11111111.11111111.00000000.00000000 /16 65 534
255.255.255.0 11111111.11111111.11111111.00000000 /24 254
255.255.255.240 11111111.11111111.11111111.11110000 /28 14

Важно: количество хостов = 2^(32−prefix) − 2. Два адреса зарезервированы: адрес сети (все хостовые биты = 0) и широковещательный адрес (все хостовые биты = 1).

Нотация CIDR

  • 192.168.1.0/24 означает: первые 24 бита — адрес сети, остальные 8 — хостовая часть
  • Заменил устаревшую классовую адресацию (класс A = /8, класс B = /16, класс C = /24)
  • Позволяет гибко нарезать сети нужного размера

Как вычислить адреса подсети (пошаговый пример)

Дано: 192.168.1.100/26

  1. /26 → маска: 255.255.255.192 (11111111.11111111.11111111.11000000)
  2. Хостовых бит: 32 − 26 = 6. Количество адресов: 2⁶ = 64. Количество хостов: 64 − 2 = 62
  3. Адрес сети (побитовое AND IP и маски): 192.168.1.100 AND 255.255.255.192 = 192.168.1.64
  4. Broadcast (адрес сети + все хостовые биты = 1): 192.168.1.127
  5. Диапазон хостов: 192.168.1.65192.168.1.126

Пошагово для последнего октета:

Пример
100 в двоичном: 01100100
Маска (посл. октет): 11000000
AND:                  01000000 = 64  (адрес сети)
Broadcast:            01111111 = 127 (все хостовые биты = 1)

Разбиение сети на подсети

Если нужно разделить 10.0.0.0/24 (254 хоста) на 4 подсети:

  • Нужно дополнительно 2 бита для адресации 4 подсетей (2² = 4)
  • Новая маска: /24 + 2 = /26 (62 хоста в каждой подсети)
Подсеть Диапазон хостов Broadcast
10.0.0.0/26 .1.62 .63
10.0.0.64/26 .65.126 .127
10.0.0.128/26 .129.190 .191
10.0.0.192/26 .193.254 .255

Для Java-разработчика

  • Понимание подсетей необходимо для настройки Docker-сетей, Kubernetes pod/service CIDR, firewall-правил, конфигурации серверов
  • Docker по умолчанию использует подсеть 172.17.0.0/16 для bridge-сети
  • Kubernetes обычно выделяет отдельные CIDR для Pod-сети и Service-сети

Вывод

Маска подсети и CIDR — основа IP-адресации. Умение вычислять адрес сети, broadcast и диапазон хостов — базовый навык для любого инженера, работающего с сетевой инфраструктурой.

На собеседовании: могут попросить вычислить адрес сети и broadcast для заданного IP/CIDR. Ключевая операция — побитовое AND между IP-адресом и маской. Также часто спрашивают, сколько хостов помещается в подсеть с заданной маской.