Как перестать считать маски подсетей в уме и начать жить

29 авг 2026
849
238
10
2 месяца

В любой команде есть человек, который со скоростью калькулятора отвечает на вопрос «сколько адресов в /26?» и мгновенно говорит, входит ли 10.0.13.37 в диапазон 10.0.12.0/22. Я не такой человек. Каждый раз, когда нужно разобраться с сетью, я открываю Python и начинаю щёлкать битами. Пока не наткнулся на cidr.xyz.

Что это вообще такое

cidr.xyz — CIDR-калькулятор и визуализатор подсетей от разработчика под ником yuvadm. Проекту уже прилично сколько лет: репозиторий создан в декабре 2015-го, и с тех пор к нему прилипло около 850 звёзд и 238 форков. Сам сервис живёт на cidr.xyz и работает целиком в браузере.

Идея простая до безобразия: вы вводите IP-адрес и маску (хоть в CIDR-нотации, хоть в классическом виде 255.255.255.0), а страница мгновенно показывает всё, что можно вытащить из этой пары. Первая строчка после ввода — уже готовый CIDR-суффикс, который можно скопировать в конфиг.

Что показывает калькулятор

Разберу на примере. Вводим 10.0.13.37 с маской /22. На выходе получаем:

  • Сетевой и широковещательный адрес
  • Первый и последний используемый адрес хоста
  • Количество хостов в подсети
  • Адрес и маску в двоичном виде, побитно
  • Wildcard-маску (ту самую 0.0.3.255, без которой не пишутся ACL)
  • Формат «диапазон всего» — привычная строка для pfSense или Cisco-конфигов
  • Двоичную маску в десятичном виде

Звучит как описание любого ipcalc, но тут есть вещь, которая отличает cidr.xyz от сотни похожих тулов — визуализация. Под полями ввода рисуется разрядная сетка: 32 бита адреса и 32 бита маски, разбитые на октеги. Биты, отвечающие за сеть и за хост, подсвечиваются разными цветами.

Реклама

И вот тут наступает момент озарения. Раньше я знал, что /22 означает 22 бита сети, но держал это в голове как абстрактное знание. На cidr.xyz видно, как прыгает граница между сетевой и хостовой частью, когда тянешь маску от /24 к /21. Сразу понимаешь, почему 10.0.13.37/22 означает сеть 10.0.12.0 — третий октет 13 в двоичном виде это 00001101, а при маске /22 первые шесть бит третьего октета замораживаются сетью, остальные шесть бит отданы хостам. Никакая таблица не даёт такого ощущения «а, вот оно что».

Кому это пригодится

В первую очередь тем, кто готовится к собеседованию или сертификации. Вопросы про VLSM и разбиение сетей есть в CCNA, и понимать битовую арифметику там действительно нужно.

Во-вторых, админам и SRE при работе с конфигами. Быстро проверить, что wildcard-маска для ACL вычислена верно, что диапазон 172.16.0.0/12 действительно заканчивается на 172.31.255.255 — задача на десять секунд.

В-третьих, всем остальным, кто раз в месяц сталкивается с сетью и раз в месяц забывает, как это делается. Я в этой категории.

Под капотом

Проект написан на TypeScript, используется React и Next.js. README лаконичен до предела — всего два раздела, но для запуска локальной копии этого достаточно:

npm install
npm run dev

После этого инструмент доступен на localhost:3000, и можно ковыряться в коде или дорабатывать под себя. Например, я всерьёз думал о том, чтобы добавить расчет числа подсетей при делении на заданное количество. Это тот редкий случай, когда кодовая база настолько компактна, что пул-реквест реально поднять за вечер.

Деплой автоматизирован: ветка master разлетается через Cloudflare Workers. Лицензия MIT, так что при желании можно и форкнуть, и встроить куда-то себе.

Немного критики

Без ложки дёгтя не обойтись. Функционал заточен под IPv4, IPv6-адреса калькулятор не принимает. Если вы живёте в мире fd00::/8, этот инструмент вам не помощник. Двоичная визуализация тоже иногда перегружает: при беглом взгляде на мигающую таблицу бит легко заскочить не туда. И да, 850 звёзд — это не миллион, проект известен в узких кругах, но и не забыт: последний коммит в ветке master был недавно, репозиторий живой.

Стоит ли пробовать

Однозначно да, если вы: готовитесь к сетевому собеседованию; делаете конфиги для сетевого оборудования; хотите наконец визуально понять, как маска подсети режет адресное пространство. Просто добавьте cidr.xyz в закладки рядом с переводчиком — пригодится.

А если хочется чего-то большего, форкните репозиторий и допилите IPv6. Судя по компактности кода, это вполне посильная задача для выходных.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.