IP-адресация: IPv4 и CIDR
Изучаем устройство IPv4-адреса, почему классы адресов ушли в прошлое и как их заменил CIDR.
IPv4-адрес — это 32-битное число, обычно записываемое как четыре десятичных октета через точку, например
192.168.1.10.
Что такое IPv4-адрес
IPv4-адрес — это 32 бита, разбитые на 4 байта (октета) по 8 бит. Каждый октет — число от 0 до 255. Всего адресов 2³² ≈ 4,3 миллиарда. По нынешним меркам это мало, отсюда дефицит IPv4 и переход на IPv6 (о нём отдельный урок).
Адрес логически делится на две части: номер сети (общий для всех устройств подсети) и номер хоста (уникальный внутри сети). Где проходит граница между ними — определяет маска подсети.
Адрес — это просто число
Запись через точки удобна людям, но по сути IP-адрес — одно 32-битное число. Это легко показать на Python через стандартный модуль ipaddress:
import ipaddress
a = ipaddress.ip_address('192.168.1.10')
print('Адрес: ', a)
print('Как число: ', int(a))
print('В двоичном: ', format(int(a), '032b'))
print('Обратно из числа:', ipaddress.ip_address(3232235786))
Вывод:
Адрес: 192.168.1.10 Как число: 3232235786 В двоичном: 11000000101010000000000100001010 Обратно из числа: 192.168.1.10
Видно, что 192.168.1.10 и число 3232235786 — одно и то же. Именно с числами оперирует «железо»; точечная запись — лишь удобная форма для людей.
Почему классы (A/B/C) устарели
Раньше адреса делили на жёсткие классы:
| Класс | Первый октет | Сетей / хостов |
| A | 0–127 | мало сетей, ~16 млн хостов каждая |
| B | 128–191 | средние сети, ~65 тыс. хостов |
| C | 192–223 | много сетей, 254 хоста |
Проблема: классы слишком грубые. Компании на 2000 машин класс C (254 хоста) мал, а класс B (65 тыс.) — расточительно велик: тысячи адресов простаивают. Жёсткие границы транжирили и без того дефицитное адресное пространство.
CIDR: гибкая граница сети
В 1993 году классы заменили на CIDR (Classless Inter-Domain Routing). Идея: граница между «сетью» и «хостом» может проходить где угодно, а не только на границе октетов. Её задают суффиксом /N — числом бит, отведённых под номер сети.
192.168.1.0/24 -> 24 бита на сеть, 8 на хост -> 256 адресов
192.168.1.0/26 -> 26 бит на сеть, 6 на хост -> 64 адреса
10.0.0.0/8 -> 8 бит на сеть, 24 на хост -> ~16 млн адресов
Запись /24 называется префиксом. Чем больше число, тем меньше хостов в сети. Это даёт точную нарезку: нужно ровно 500 адресов — берём /23 (512), а не целый класс B.
Зачем это веб-разработчику
CIDR-нотацию вы встретите в настройках firewall и security groups («разрешить доступ из 10.0.0.0/8»), в VPN, в конфигах облаков (AWS VPC, подсети). Понимание, что /24 — это 256 адресов, экономит часы при настройке инфраструктуры.
Итог
- IPv4 — 32-битное число, ~4,3 млрд адресов, записывается четырьмя октетами.
- Адрес делится на номер сети и номер хоста.
- Классы A/B/C устарели — слишком грубое деление, трата адресов.
- CIDR (
/N) задаёт гибкую границу сети по числу бит.