Определение простыми словами
До CIDR интернет делили на жёсткие классы: класс A — миллионы адресов, класс C — 256. Это было неудобно: либо слишком много, либо слишком мало. CIDR разрешил указывать произвольную длину сетевой части адреса. Запись после слэша — это число подряд идущих единиц в маске. /24 значит «маска 255.255.255.0», /16 — «255.255.0.0».
Чем больше число после слэша, тем меньше адресов в подсети. /24 — это 256 адресов (включая broadcast и адрес сети), /28 — 16, /30 — всего 4 (типично для point-to-point ссылок). Для глобальной маршрутизации провайдеры объявляют через BGP блоки от /24 и крупнее.
Сравнение (таблица)
| Префикс | Маска | Адресов в сети | Хостов (минус сеть и broadcast) | Типичное применение |
|---|---|---|---|---|
| /30 | 255.255.255.252 | 4 | 2 | point-to-point |
| /29 | 255.255.255.248 | 8 | 6 | маленькая стойка |
| /28 | 255.255.255.240 | 16 | 14 | офисная подсеть |
| /24 | 255.255.255.0 | 256 | 254 | обычный сегмент LAN |
| /16 | 255.255.0.0 | 65 536 | 65 534 | крупный кампус |
| /8 | 255.0.0.0 | 16 777 216 | 16 777 214 | исторический класс A |
Кейсы использования
- Настройка iptables: разрешить SSH только из офисной сети —
iptables -A INPUT -s 203.0.113.0/24 -p tcp --dport 22 -j ACCEPT. - Описание VPC в облаке: 10.0.0.0/16 — общий пул, 10.0.1.0/24 — публичная подсеть, 10.0.2.0/24 — приватная.
- Заявка провайдеру на дополнительные IP: блок /29 даёт шесть полезных адресов на dedicated.
- Настройка WireGuard: AllowedIPs указывают именно в CIDR-нотации.
- Негативный сценарий: в конфиге OpenVPN перепутали /24 и /16 — пользователи получили адреса из чужой сети и потеряли доступ ко внутренним сервисам. Чтобы такого не было, схему адресации проектируют один раз и фиксируют в документации.
Технические детали
В Linux работа с CIDR — это пара команд. Можно проверить принадлежность адреса сети, посчитать диапазон или построить таблицу маршрутизации.
ip addr add 10.10.0.5/24 dev eth0
ip route add 10.20.0.0/16 via 10.10.0.1
ipcalc 192.168.5.0/26
# Network: 192.168.5.0/26
# HostMin: 192.168.5.1
# HostMax: 192.168.5.62
# Broadcast: 192.168.5.63
# Hosts/Net: 62
# проверить, входит ли IP в CIDR
python3 -c "import ipaddress; print(ipaddress.ip_address('10.0.1.5') in ipaddress.ip_network('10.0.0.0/16'))"
Для IPv6 формат тот же, только префиксы крупнее: типичная подсеть для одного сегмента — /64, на хост целиком — /48 или /56. Объединение нескольких сетей в более широкий префикс называется supernetting; разбиение на меньшие — subnetting.
🔥 Где это применяется
Частые вопросы
Чем CIDR отличается от классов A/B/C?
Классы делили адресное пространство жёстко по первому байту. CIDR позволяет произвольную длину префикса и куда экономичнее расходует адреса.
Сколько хостов в подсети /24?
Всего 256 адресов, из них 254 пригодны для хостов: один уходит на адрес сети, один — на broadcast.
Можно ли использовать /31 для point-to-point?
Да, RFC 3021 разрешает /31 на двухточечных линках — там не нужны broadcast и сетевой адрес. Поддерживается на современном оборудовании.