Маска подсети и CIDR: подробное объяснение
Маска подсети сообщает устройству, какая часть адреса IPv4 определяет сеть, а какая — узел. Нотация CIDR записывает ту же информацию в виде косой черты и числа, например /24, что означает: первые 24 бита относятся к сетевой части. Маска 255.255.255.0 и префикс /24 — это два способа записать одно и то же.
Маска в двоичном виде
Адрес IPv4 состоит из 32 бит. Маска подсети — это последовательность единичных битов, за которой следует последовательность нулевых. Единичные биты обозначают сетевую часть, нулевые — часть узла. Длина префикса равна количеству единичных битов.
/24 11111111.11111111.11111111.00000000 = 255.255.255.0
/26 11111111.11111111.11111111.11000000 = 255.255.255.192
/20 11111111.11111111.11110000.00000000 = 255.255.240.0
Каждый октет маски принимает одно из девяти значений: 0, 128, 192, 224, 240, 248, 252, 254 или 255. Это суммы битов слева направо: 128, 128+64=192, 192+32=224 и так далее.
Количество битов узла равно 32 - prefix. Всего в подсети 2^(host bits) адресов. Обычно два из них использовать нельзя: первый — это адрес сети, последний — широковещательный адрес. Поэтому число пригодных для использования адресов равно 2^(host bits) - 2.
Разбор примера: 192.168.10.37/26
Найдём адрес сети, широковещательный адрес и диапазон узлов для 192.168.10.37/26.
- Маска равна
255.255.255.192. Частично используется только последний октет. - Размер блока равен
256 - 192 = 64. Подсети в последнем октете начинаются с 0, 64, 128 и 192. - Значение 37 лежит между 0 и 63, поэтому подсеть начинается с 0.
| Параметр | Значение |
|---|---|
| Адрес сети | 192.168.10.0 |
| Первый доступный узел | 192.168.10.1 |
| Последний доступный узел | 192.168.10.62 |
| Широковещательный адрес | 192.168.10.63 |
| Всего адресов | 64 (26) |
| Доступных узлов | 62 |
Результат можно проверить побитовой операцией И: адрес сети — это адрес И маска. В последнем октете 37 — это 00100101, а 192 — 11000000; результат И равен 00000000, то есть 0. Любой пример можно проверить с помощью калькулятора подсетей.
Шпаргалка по CIDR от /8 до /32
| CIDR | Маска подсети | Всего адресов | Доступных узлов |
|---|---|---|---|
| /8 | 255.0.0.0 | 16,777,216 | 16,777,214 |
| /9 | 255.128.0.0 | 8,388,608 | 8,388,606 |
| /10 | 255.192.0.0 | 4,194,304 | 4,194,302 |
| /11 | 255.224.0.0 | 2,097,152 | 2,097,150 |
| /12 | 255.240.0.0 | 1,048,576 | 1,048,574 |
| /13 | 255.248.0.0 | 524,288 | 524,286 |
| /14 | 255.252.0.0 | 262,144 | 262,142 |
| /15 | 255.254.0.0 | 131,072 | 131,070 |
| /16 | 255.255.0.0 | 65,536 | 65,534 |
| /17 | 255.255.128.0 | 32,768 | 32,766 |
| /18 | 255.255.192.0 | 16,384 | 16,382 |
| /19 | 255.255.224.0 | 8,192 | 8,190 |
| /20 | 255.255.240.0 | 4,096 | 4,094 |
| /21 | 255.255.248.0 | 2,048 | 2,046 |
| /22 | 255.255.252.0 | 1,024 | 1,022 |
| /23 | 255.255.254.0 | 512 | 510 |
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /29 | 255.255.255.248 | 8 | 6 |
| /30 | 255.255.255.252 | 4 | 2 |
| /31 | 255.255.255.254 | 2 | 2 (двухточечные каналы, RFC 3021) |
| /32 | 255.255.255.255 | 1 | 1 (один узел) |
Обратные (wildcard) маски
Обратная маска (wildcard) — это инверсия маски подсети: каждый бит меняется на противоположный. Там, где в маске подсети стоит 1, в обратной маске стоит 0, и наоборот. Маршрутизаторы и межсетевые экраны (например, списки доступа Cisco и операторы network в OSPF) используют обратные маски, где бит 0 означает «должен совпадать», а бит 1 — «любое значение».
/24, маска 255.255.255.0, даёт обратную маску0.0.0.255/26, маска 255.255.255.192, даёт обратную маску0.0.0.63/20, маска 255.255.240.0, даёт обратную маску0.0.15.255
Быстрый способ вычислить её: вычтите каждый октет маски из 255.
Разделение /24 на четыре подсети /26
Возьмём сеть для документации 198.51.100.0/24. Если добавить к префиксу два бита, получится 22 = 4 подсети по 64 адреса в каждой.
| Подсеть | Сеть | Диапазон доступных адресов | Широковещательный адрес |
|---|---|---|---|
| 1 | 198.51.100.0/26 | 198.51.100.1 – 198.51.100.62 | 198.51.100.63 |
| 2 | 198.51.100.64/26 | 198.51.100.65 – 198.51.100.126 | 198.51.100.127 |
| 3 | 198.51.100.128/26 | 198.51.100.129 – 198.51.100.190 | 198.51.100.191 |
| 4 | 198.51.100.192/26 | 198.51.100.193 – 198.51.100.254 | 198.51.100.255 |
Все четыре подсети вместе вмещают 4 × 62 = 248 доступных узлов против 254 в одной сети /24. Разница в шесть адресов — это дополнительные адреса сети и широковещательные адреса. Разбиение на подсети полезно, чтобы отделить отделы, серверы и гостевой Wi-Fi, а также чтобы ограничить широковещательный трафик.
Соглашения о префиксах IPv6
В IPv6 используется та же запись с косой чертой, но правила планирования другие. Поскольку адресное пространство огромно, узлы не считают. Распространённые соглашения таковы:
- /64 для каждой обычной локальной сети (LAN). Такие механизмы, как SLAAC (автоматическая настройка адреса), требуют 64-битной части узла. Не используйте более длинный префикс в обычной LAN.
- /56 или /48 для клиента или площадки. Блок /48 содержит 65,536 сетей /64, а /56 — 256.
- /32 — типичное выделение для интернет-провайдера, а
2001:db8::/32— диапазон для документации. - /128 — один адрес, как /32 в IPv4.
Например, площадка с блоком 2001:db8:abcd::/48 может использовать 2001:db8:abcd:1::/64 для одной VLAN и 2001:db8:abcd:2::/64 для следующей.
Что почитать ещё
Основы адресации изложены в статье что такое IP-адрес. Чтобы быстро рассчитать любую сеть, воспользуйтесь калькулятором подсетей.