Калькулятор IPv4
Введите адрес с префиксом — и получите маску, адрес сети, широковещательный, первый и последний узел. Ползунок двигает границу сети по битам, кнопки ниже делят сеть на равные части. Всё считается арифметикой на месте, ничего не спрашивая у сервера.
185.135.41.5/24255.255.255.00.0.0.255обратная маска, для ACL185.135.41.0185.135.41.255185.135.41.1185.135.41.254256254минус сеть и широковещательный185.135.41.1 — 185.135.41.254публичныйBисторическое делениеМаршрутизируется в интернете. Виден снаружи как есть.
Цветом — 24 бита сети, приглушённо — 8 бит номера узла. Граница между ними и есть префикс.
Шесть формул, и больше ничего
Адрес IPv4 — это 32 бита, разбитые на четыре байта только для удобства чтения. Всё остальное получается из двух чисел: самого адреса и длины префикса.
1. Адрес — одно число
Четыре октета — это разряды числа по основанию 256, как цифры в обычном числе, только крупнее. 185.135.41.5 внутри выглядит так:
185·2²⁴ + 135·2¹⁶ + 41·2⁸ + 5 = 3 112 642 821Поэтому «следующий адрес» — это просто плюс единица, и переход через границу октета (10.0.0.255 → 10.0.1.0) не требует особых правил.
2. Маска из префикса
Префикс /p означает p единиц слева и нули справа. Отсюда точечная запись маски и берётся:
маска = 2³² − 2⁽³²⁻ᵖ⁾
/24 → 2³² − 2⁸ = 255.255.255.0Обратная задача так же однозначна: маску переводят в двоичный вид и считают единицы подряд. Единицы обязаны идти без разрывов — иначе это не маска.
3. Адрес сети — побитовое И
Там, где в маске единица, бит адреса остаётся; где ноль — обнуляется. Номер узла стирается, номер сети остаётся:
сеть = адрес AND маска
185.135.41.5 AND 255.255.255.0
= 185.135.41.0Отсюда важное следствие: любой адрес из сети даёт один и тот же адрес сети. Вводите .5 или .200 — результат совпадёт.
4. Широковещательный — побитовое ИЛИ
Обратная маска (wildcard) — это маска с перевёрнутыми битами. Заполняем ею всю узловую часть единицами:
wildcard = NOT маска = 0.0.0.255
bcast = сеть OR wildcard = 185.135.41.255Wildcard нужен не только здесь: правила ACL и OSPF на оборудовании Cisco пишутся именно обратной маской.
5. Сколько узлов
Под номер узла осталось 32 − p бит, значит адресов в сети столько:
всего = 2⁽³²⁻ᵖ⁾
узлам = 2⁽³²⁻ᵖ⁾ − 2
/24 → 256 − 2 = 254Минус два — это адрес самой сети (все нули в узловой части) и широковещательный (все единицы). Ни тот, ни другой узлу не назначают.
6. Первый и последний
Раз края заняты служебными адресами, рабочий диапазон — всё между ними:
первый = сеть + 1 = 185.135.41.1
последний = bcast − 1 = 185.135.41.254Исключения два. У /31 оба адреса рабочие (RFC 3021, звено между маршрутизаторами), у /32 адрес ровно один — это отдельный узел, а не сеть.
Каждый бит удваивает число сетей
Забрать бит у узловой части и отдать его сетевой — это и есть разбиение на подсети. Сетей становится вдвое больше, каждая — вдвое меньше. Из одной /24 получается две /25, четыре /26, восемь /27; узлов в них 126, 62 и 30 соответственно.
Разные части можно резать по-разному: филиалу на 100 машин — /25, звену между маршрутизаторами — /30 или /31. Это называется VLSM, маска переменной длины, и именно она пришла на смену классам. Кнопки «разбить на» в калькуляторе показывают результат сразу, вместе с диапазонами каждой части.
Обратная операция — объединение. Две соседние /25 складываются в /24 только если первая начинается на границе, кратной своему размеру: 192.168.1.0/25 и 192.168.1.128/25 — складываются, а 192.168.1.64/26 и 192.168.1.128/26 — нет, между ними разрыв.
Префиксы, маски и размеры
Подсвечены три строки, которые встречаются чаще прочих: /24 — обычная сеть офиса или квартиры, /30 — классическое звено между маршрутизаторами, /32 — один узел.
| Префикс | Маска | Обратная маска | Всего адресов | Узлам |
|---|---|---|---|---|
| /8 | 255.0.0.0 | 0.255.255.255 | 16 777 216 | 16 777 214 |
| /16 | 255.255.0.0 | 0.0.255.255 | 65 536 | 65 534 |
| /20 | 255.255.240.0 | 0.0.15.255 | 4 096 | 4 094 |
| /22 | 255.255.252.0 | 0.0.3.255 | 1 024 | 1 022 |
| /23 | 255.255.254.0 | 0.0.1.255 | 512 | 510 |
| /24 | 255.255.255.0 | 0.0.0.255 | 256 | 254 |
| /25 | 255.255.255.128 | 0.0.0.127 | 128 | 126 |
| /26 | 255.255.255.192 | 0.0.0.63 | 64 | 62 |
| /27 | 255.255.255.224 | 0.0.0.31 | 32 | 30 |
| /28 | 255.255.255.240 | 0.0.0.15 | 16 | 14 |
| /29 | 255.255.255.248 | 0.0.0.7 | 8 | 6 |
| /30 | 255.255.255.252 | 0.0.0.3 | 4 | 2 |
| /31 | 255.255.255.254 | 0.0.0.1 | 2 | 2 |
| /32 | 255.255.255.255 | 0.0.0.0 | 1 | 1 |
Адреса, которые не ваши
Часть пространства IPv4 расписана заранее. Калькулятор подписывает такой адрес сразу — чтобы «публичный» адрес из чужого диапазона не обнаружился уже в работе.
| Диапазон | Что это | Чем важно |
|---|---|---|
| 10.0.0.0/8 | частный, RFC 1918 | 16 777 216 адресов. Столько, что в него влезает любая корпоративная сеть. |
| 172.16.0.0/12 | частный, RFC 1918 | Это 172.16–172.31, а не весь 172.x. Ошибка встречается чаще всех остальных. |
| 192.168.0.0/16 | частный, RFC 1918 | Диапазон домашних роутеров. 256 сетей по /24. |
| 100.64.0.0/10 | CGNAT, RFC 6598 | Общий NAT провайдера. Выглядит как публичный, но наружу вас по нему не найдут. |
| 127.0.0.0/8 | петля | Весь /8, а не только 127.0.0.1: 127.1.2.3 тоже отвечает сам себе. |
| 169.254.0.0/16 | link-local, APIPA | Узел присвоил адрес сам, не найдя DHCP. Видите такой — ищите, почему молчит сервер. |
| 224.0.0.0/4 | многоадресный | Рассылка группе: OSPF, mDNS, IPTV. Узлу такой адрес не назначают. |
| 255.255.255.255 | широковещательный | Всем в своём сегменте. Через маршрутизатор не проходит. |
Классы: почему их помнят и почему ими не считают
До 1993 года маска не передавалась вовсе — её угадывали по первому октету адреса. Класс A (1–126) означал /8, класс B (128–191) — /16, класс C (192–223) — /24. Класс D (224–239) отдан многоадресной рассылке, класс E (240–255) зарезервирован и таким и остался.
Схема была расточительной: организации, которой нужны 300 адресов, класс C уже не хватало, а класс B давал 65 534 — с запасом в двести раз. Адреса кончались, и на смену пришёл CIDR (RFC 1518 и 1519): маска стала передаваться явно, а её длина — любой. С тех пор запись 185.135.41.5/24 самодостаточна, и класс из неё ничего не добавляет.
Калькулятор показывает класс с пометкой «историческое» по одной причине: в разговоре и в старых конфигурациях он всё ещё встречается. Брать из него маску нельзя — сеть определяет только префикс.
Шесть ошибок, которые стоят вечера
«172.x — это частный диапазон»
Частный только 172.16.0.0/12, то есть 172.16–172.31. Адрес 172.32.0.1 публичный и принадлежит кому-то в интернете. Именно этим ошибка и опасна: сеть работает, пока не понадобится достучаться до настоящего владельца адреса.
Маска с дыркой
255.255.0.255 записывается, но маской не является: единицы обязаны идти подряд. Иначе сеть перестаёт быть непрерывным диапазоном, а маршрутизация умеет работать только с ними. Калькулятор такую маску отвергает.
Ведущий ноль в октете
010 в некоторых системах читается как восьмеричное 8, а не как 10. Отсюда классический сюрприз: пинг «10.0.0.010» уходит на 10.0.0.8. Поэтому адрес с ведущим нулём здесь считается ошибкой ввода, а не адресом.
Минус два — не всегда
У /31 оба адреса рабочие: RFC 3021 разрешил отдавать под звено между маршрутизаторами два адреса вместо четырёх. У /32 адрес ровно один — так описывают отдельный узел, маршрут к нему или адрес на loopback-интерфейсе.
Шлюз из чужой сети
Шлюз обязан лежать внутри своей же сети: при 192.168.1.10/24 шлюз 192.168.2.1 недостижим, потому что пакет к нему уйдёт не в канал, а сначала будет искать маршрут — которого нет. Проверяется одним взглядом на адрес сети в калькуляторе.
Разные маски на одном сегменте
Узел с /24 и узел с /25 в одном сегменте видят разные границы сети. Первый считает второго соседом, второй первого — чужаком за маршрутизатором. Трафик уходит, ответы не возвращаются, и выглядит это как «интернет через раз».
Калькулятор считает арифметикой по 32-битному представлению адреса, а не подставляет значения из таблицы: маска, сеть, широковещательный и границы диапазона выводятся теми же шестью формулами, что описаны выше. Соседний стенд про дисковые массивы — RAID.