Адресация в IP-сетях давно перестала быть тайной за семью печатями, однако именно маски и префиксы остаются тем местом, где аккуратная бухгалтерия превращается в инструмент управления. Каждый, кто настраивает маршрутизатор, фиксирует границу между сетевой частью адреса и частью хостов, и эта граница выражается одним коротким числом после косой черты. Понимание бинарной природы этой записи позволяет считать емкость блоков без калькулятора, делить одну сеть на отделы и понимать, почему провайдер выдаёт клиенту именно тот префикс, который выдаёт. В статье разбирается механика CIDR, классовая эпоха и её закат, ручной счёт подсетей, приватные диапазоны, суммарные маршруты и практика домашнего разбиения.
Что скрывается за записью с косой чертой
IPv4-адрес состоит из 32 битов, разбитых на четыре октета по восемь битов. Маска подсети делит набор на две части: слева располагаются биты сети, справа биты хостов. Запись /24 означает, что первые 24 бита зафиксированы как идентификатор сети, а оставшиеся 8 битов принадлежат станциям. Восемь битов дают 2 в степени 8, то есть 256 адресов, от 0 до 255 в последнем октете. Точная та же граница записывается десятично как 255.255.255.0, потому что каждый октет, полностью состоящий из единиц, равен 255.
Бинарная природа маски жёсткая: единицы всегда идут сплошной полосой слева, нули такой же полосой справа. Маска 255.255.128.0 допустима, потому что её двоичная форма содержит семнадцать единиц подряд, а маска 255.0.255.0 невозможна из-за разрыва сплошной последовательности. Этот закон сплошности и рождает запись через число: гораздо короче сказать 24 единицы, чем три полных октета. Длина префикса прямо переводится в ёмкость: чем больше префикс, тем меньше сеть. /25 вдвое меньше /24, /30 в шестьдесят четыре раза меньше. Каждый шаг вправо по шкале делит популяцию адресов на два, и этот бинарный сдвиг скоро становится рефлексом.
Из двухсот пятидесяти шести адресов в /24 два обычно снимаются с поста. Первый адрес нумерует саму сеть, и его никогда не присваивают станции. Последний адрес называется широковещательным: пакеты на него принимает каждый узел сегмента одновременно. Дополнительно один адрес почти всегда занимает шлюз, через который трафик уходит наружу. В результате типичный домашний /24 питает двести пятьдесят три живых устройства, и для квартиры этого более чем достаточно.
Классовая эра и рождение CIDR
Первичная схема адресации делила пространство на жёсткие классы. Класс A занимал первый октет на сеть и давал миллионы хостов, класс B фиксировал два октета и отпускал около шестидесяти пяти тысяч станций, класс C резервировал три октета и позволял лишь 254 узла. Организация, которой требовалось пятьсот компьютеров, вынужденно брала класс B и выбрасывала почти шестьдесят четыре тысячи адресов. Тёплые девяностые годы показали, что при таком расточительстве дефицит наступит гораздо раньше, чем растиражируется техника.
Answer пришёл в виде бесклассовой междоменной маршрутизации, известной как CIDR. Граница сети перестала зависеть от первых битов адреса и стала объявляться префиксом произвольной длины. Один и тот же участок адресного пространства мог делиться на /28 и на /19, если так требовала топология. Законодательные последствия оказались двойственными: адресное текание резко замедлилось, а таблицы маршрутов стали компактнее благодаря объединению соседних сетей в единую запись. Классы остались лишь в учебниках как история, и современный маршрутизатор живёт исключительно в мире префиксов.
Ручной счёт подсетей без калькулятора
Техника ручного расчёта сводится к проговариванию размера блока. Возьмём /27: тридцать два бита минус двадцать семь дают пять битов хостов, это 32 адреса в блоке. Сеть 192.168.1.0/27 проглатывает адреса с 0 по 31, следующая начинается на 32 и утыкается в 63, затем 64-95, 96-127, и так до конца октета. Внутри каждого блока первый адрес служит именем сети, последний рассылается как широковещательный сигнал, а между ними сидят тридцать станций. Такое разбиение делает понятным, почему проекты любят границы кратные степеням двойки: сеть нельзя начать с произвольного адреса 40, лишь с кратного размеру блока.
Аналогично /29 содержит 8 адресов, из которых полезно шесть; /30 содержит 4 адреса, из которых полезно два. Эта крошечная четвёрка исторически обожаема связями точка-точка, потому что на линки связывания не нужно расходовать больше пары живых адресов. Современный подход разрешает также и /31 по соответствующему стандарту, но традиционная школота признаёт именно /30. Запоминание шкалы от /8 до /30 даёт независимость от веб-калькуляторов, которые, кстати, небесполезны для проверки, но в полевых условиях мозг должен щёлкать сеть быстрее.
Набор масок для заучивания выглядит следующим образом:
- /8 - 16 777 216 адресов, маска 255.0.0.0
- /16 - 65 536 адресов, маска 255.255.0.0
- /20 - 4 096 адресов, маска 255.240.0.0
- /22 - 1 024 адреса, маска 255.252.0.0
- /23 - 512 адресов, маска 255.254.0.0
- /24 - 256 адресов, маска 255.255.255.0
- /25 - 128 адресов, маска 255.255.255.128
- /26 - 64 адреса, маска 255.255.255.192
- /27 - 32 адреса, маска 255.255.255.224
- /28 - 16 адресов, маска 255.255.255.240
- /29 - 8 адресов, маска 255.255.255.248
- /30 - 4 адреса, маска 255.255.255.252
Каждый октет маски в третьем и четвёртом разряде соответствует либо 128, либо 64, либо 32 - бинарному сдвигу на единичку вправо. Кто видит двоичную таблицу, тот мгновенно переводит 240 в 16 адресов и 252 в 4 адреса.
VLSM и расчёт отделов одной организации
Переменная длина маски подсети позволяет нарезать один полученный блок под разные аудитории, не бросая в урну избыток. Пусть фирма располагает сетью 10.20.0.0/22, где помещается тысяча двадцать четыре адреса. Бухгалтерии достаточно шестидесяти адресов: для неё выделяется 10.20.0.0/26, из которого рабочими являются шестьдесят два. Отдел разработки занимает сотню станций и получает 10.20.1.0/25, то есть 126 живых позиций. Маленькой группе аналитиков хватает 10.20.1.128/28: шестнадцать адресов, четырнадцать хостов. Оставшееся пространство остаётся резервом для новых кабинетов. При планировании полезно начинать разметку с самого крупного сегмента и двигаться в сторону мелких, тогда границы автоматически попадают на кратные размеру блока координаты и никакой дрейф адресов не случается.
Суммарная маршрутизация и экономия записей
Именно границы на степенях двойки позволяют аккумулировать десятки мелких сетей в один префикс. Если провайдеру принадлежит пространство от 203.0.113.0 до 203.0.255.255, то глобальная сеть маршрутизирует лишь одну строку 203.0.0.0/16 вместо двухсот пятидесяти шести независимых /24. Каждое устройство в сердце интернета экономит энергию поиска, и длина таблицы перестаёт стремиться к хаосу. Занимательно, что длина префикса определяет детализацию маршрута: более конкретный префикс всегда побеждает менее конкретного, поэтому внутри общего /16 можно запустить корректирующую /24 с иным шлюзом. Эта логика longest prefix match и делает CIDR гибким механизмом, а разукрупнение сетей - страшным сном архитектора.
Приватные диапазоны и маршрутизация внутри дома
Документ RFC1918 отдал три блока под внутреннее употребление: 10.0.0.0/8 с почти семнадцатью миллионами адресов, 172.16.0.0/12 с миллионом с хвостиком, 192.168.0.0/16 с шестьюдесятью пятью тысячами. Разрешение пользоваться этими телами без согласования решило задачу нехватки, но породило и косвенное следствие: приватные станции не маршрутизируются в глобальной сети напрямую и потому выходят наружу через преобразование адресов NAT. Функция NAT фактически истолковывается как щит приватности, хотя задумывалась как средство множественного переиспользования сокета. Внутри домашней сети 192.168.0.0/24 маршрутизатор занимает адрес 192.168.0.1, станции селятся в диапазоне 192.168.0.2-254, а широковещательный адрес 192.168.0.255 работает гонцом ко всем соседям. Если жилплощадь крупная и нагружена устройствами, осмысленным является разбиение: основной сегмент 192.168.0.0/25 для компьютеров, 192.168.0.128/26 для умной техники, 192.168.0.192/28 для гостей, остаток в резерв. Каждый кусок - цельная сеть со своим шлюзом, и политика межсегментных прав роутера определяет, видят ли гости принтер.
Почему провайдер выдаёт одну точку /32
Провайдерская инженерия дорожает каждой записью маршрута и каждым занятым адресом, поэтому абонентское подключение точка-точка часто звучит как /32: устройство клиента фиксируется единственным адресом, а следующий шаг задаётся объектом соседа вне ограничений классической маски. На слушателе меньше расхода, в таблице абонентского оборудования меньше места, в протоколах меньше широковещательного шума, ведь с /32 broadcast отсутствует как класс. Эта экономия перекликается с повальным решением /31 на интерконнектах и делает адресный голод чуть менее давящим, пока IPv6 дозревает в тени.
Понимание бинарного сдвига освобождает от технической атмосферы вокруг сетей. знания шкалы блоков способствуют быстрому выделению сегментов, чтению чужих конфигураций и диагностике конфликтов адресов, пока современные калькуляторы используются как точная линейка, а не как костыль.
Практическая числовая таблица наизусть. Держать в голове стоит немногое: /24 имеет 256 адресов, /25 делит её пополам на 128, /26 даёт 64, /27 - 32, /28 - 16, /30 - блок из четырёх адресов с двумя полезными (актуально для точек-точек), а сеть /31 чтёт два адреса без всякого широковещания, что стандартизовано для связей маршрутизаторов напрямую. Под расчёт любой маски лежит бинарная логика: поднять два в степень числа битов хостовой части и отнять пару служебных значений. Тот, кто единожды понял правило простейших сдвигов, больше не злится на калькуляторы подсетей - он просто считает быстрее, чем они показывают диалог.
Почему классовая эпоха умерла. До CIDR адреса живые классы: сеть класса A занимала 16 миллионов адресов почти независимо от потребности, а класс C 256 - и таблицы росли от излишеств, логически бы неизбежных. Бесклассовая маршрутизация заменила жёсткие границы гибкими префиксами, остановила исчерпание адресного пространства и дала агрегированию, которым пользуются глобальные провайдеры по сей день. Это урок промышленный: ограничения хороши ровно постольку, поскольку заставляют людей разумно проектировать.
VLSM и нарезка жилой сети. Домашний маршрутизатор предприятия выигрывает от внимательной нарезки: одна сеть рабочих мест /25, одна гостевая /26, одна интернет-вещей /27 и точечный канал к серверу /30. Каждая отмечена своими привилегиями брандмауэра, и изменение одной никого не тревожит остальных. Метод этот не усложнён: сначала считают требуемое количество хостов, потом смотрят ближайшую степень двойки с запасом порядка два-три раза, после чего расписывают распоряжения по стыковкам. Наблюдая эту картину, инженер видит, как арифметика превращается в устойчивость: сгенерированная ревизия схемы мало того, что работает, но и допускает послабления в будущем.
Напоследок стоит одно замечание по культуре схемы подсети: разделять отделы элементом логики сети, а не просто увеличивать VLAN по настроению. Адресные планы строятся по иерархии регионов, филиалов и функций, и удачная нотация сокращает маршрутизацию до одной строки на каждом уровне, сохраняя расширение в преддверии применения подсетей налево и направо. Так устроены зрелые сети: битовые таблицы не требуют диалогов, они отвечают только при явном запросе, который запрограммирован на самом первом этапе задания.
Именно на этом этапе формируется привыклание планировать маршрутизацию так, чтобы таблица была компактной и её перечитывание не требовалось часто: ответственный деятель внутри планирует ставки сведения адресов к маршрутам, которые длятся дольше срока жизни сессии, а контейнерная видимость частных диапазонов решает судьбу без войны конфликтов. Зрелая схема несоразмерно переносит ввод в эксплуатацию мелочь, называемую просто подсчётом: число адресов, границы диапазонов, граница широковещания.