Что такое маска подсети и 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
/26→ маска:255.255.255.192(11111111.11111111.11111111.11000000)- Хостовых бит: 32 − 26 = 6. Количество адресов: 2⁶ = 64. Количество хостов: 64 − 2 = 62
- Адрес сети (побитовое AND IP и маски):
192.168.1.100 AND 255.255.255.192=192.168.1.64 - Broadcast (адрес сети + все хостовые биты = 1):
192.168.1.127 - Диапазон хостов:
192.168.1.65—192.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-адресом и маской. Также часто спрашивают, сколько хостов помещается в подсеть с заданной маской.