Подробный гайд: Маска подсети в IPv4
Гайд по маске подсети в IPv4: что это, как считать сеть, хосты, broadcast, как subnetting работает на практике, таблицы и примеры.
Подробный гайд: маска подсети в IPv4
1. Что такое маска подсети
Маска подсети — это 32-битное значение, которое говорит, какая часть IP-адреса относится к сети, а какая — к хосту внутри этой сети.
Например:
IP: 192.168.1.10
Маска: 255.255.255.0
Это означает:
192.168.1— часть сети;.10— часть хоста. То есть устройство с адресом192.168.1.10находится в сети192.168.1.0/24.
2. Зачем нужна маска подсети
Маска подсети нужна, чтобы:
- Определять, находится ли получатель в той же сети.
- Разделять большие сети на подсети.
- Экономно использовать IP-адреса.
- Настраивать маршрутизацию.
- Задавать диапазоны в DHCP, ACL, firewall, VLAN и т.д.
Пример:
У хоста:
IP: 192.168.1.10/24
Маска: 255.255.255.0
Он хочет отправить пакет на:
192.168.1.50
Маска показывает, что оба адреса находятся в одной сети:
192.168.1.0
Значит, пакет можно отправлять напрямую, без маршрутизатора.
Если же адрес назначения:
192.168.2.50
То это уже другая сеть:
192.168.2.0
Значит, пакет нужно отправлять через шлюз по умолчанию.
3. Форматы записи маски подсети
Маска подсети может записываться в двух основных форматах.
3.1. Десятичный формат
Например:
255.255.255.0
3.2. CIDR-формат
Например:
/24
Запись /24 означает, что в маске 24 бита равны единице.
Примеры:
/8 = 255.0.0.0
/16 = 255.255.0.0
/24 = 255.255.255.0
/25 = 255.255.255.128
/26 = 255.255.255.192
/27 = 255.255.255.224
/28 = 255.255.255.240
/29 = 255.255.255.248
/30 = 255.255.255.252
/31 = 255.255.255.254
/32 = 255.255.255.255
4. Двоичное представление маски
IPv4-адрес состоит из 32 бит.
#### Например:
192.168.1.10
в двоичном виде:
11000000.10101000.00000001.00001010
Маска /24:
11111111.11111111.11111111.00000000
или в десятичном виде:
255.255.255.0
Единицы в маске означают сетевую часть, нули — хостовую часть.
5. Важное правило маски
Классическая корректная маска подсети состоит из подряд идущих единиц, а затем подряд идущих нулей.
Пример правильной маски:
11111111.11111111.11111111.11000000
Это:
255.255.255.192
или:
/26
Пример неправильной маски:
11111111.11111111.11000000.11111111
Здесь после нулей снова идут единицы. В обычных сетях такая маска не используется.
6. Таблица значений октетов маски
Каждый октет маски может принимать только определённые значения:
| Десятичное значение | Двоичное значение | Сколько бит сети в октете |
|---|---|---|
| 0 | 00000000 | 0 |
| 128 | 10000000 | 1 |
| 192 | 11000000 | 2 |
| 224 | 11100000 | 3 |
| 240 | 11110000 | 4 |
| 248 | 11111000 | 5 |
| 252 | 11111100 | 6 |
| 254 | 11111110 | 7 |
| 255 | 11111111 | 8 |
Это очень помогает быстро переводить / в маску.
Пример:
/26
Это:
8 + 8 + 8 + 2 = 26
Значит:
255.255.255.192
7. Как маска определяет адрес сети
Адрес сети получается с помощью побитовой операции AND между IP-адресом и маской.
Пример:
IP: 192.168.1.130
Маска: 255.255.255.128
В двоичном виде последний октет IP:
130 = 10000010
Последний октет маски:
128 = 10000000
Операция AND:
10000010
10000000
--------
10000000
Результат:
128
Значит, адрес сети:
192.168.1.128
8. Адрес сети, broadcast и диапазон хостов
Для каждой подсети есть несколько важных адресов.
8.1. Адрес сети
Это первый адрес подсети. Он формируется, когда все биты хостовой части равны 0.
Например:
192.168.1.0
Этот адрес обычно не назначается хосту.
8.2. Broadcast-адрес
Это последний адрес подсети. Он формируется, когда все биты хостовой части равны 1.
Например:
192.168.1.255
Используется для отправки пакета всем хостам в подсети.
8.3. Диапазон доступных адресов хостов
Это адреса между адресом сети и broadcast.
Пример для сети:
192.168.1.0/24
- Адрес сети:
192.168.1.0 - Первый хост:
192.168.1.1 - Последний хост:
192.168.1.254 - Broadcast:
192.168.1.255
9. Основные формулы
Если длина префикса равна P, например /24, то:
Количество бит хоста = 32 - P
Для /24:
32 - 24 = 8 бит хоста
Всего адресов в подсети:
2^8 = 256
Обычно доступных адресов хостов:
2^8 - 2 = 254
Два адреса вычитаются:
- адрес сети;
- broadcast.
Исключения:
/31может использоваться для point-to-point линков по RFC 3021;/32используется для одного хоста или маршрута.
10. Таблица популярных масок подсети
| Префикс | Маска подсети | Wildcard | Всего адресов | Доступно хостов |
|---|---|---|---|---|
| /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 |
| /17 | 255.255.128.0 | 0.0.127.255 | 32 768 | 32 766 |
| /18 | 255.255.192.0 | 0.0.63.255 | 16 384 | 16 382 |
| /19 | 255.255.224.0 | 0.0.31.255 | 8 192 | 8 190 |
| /20 | 255.255.240.0 | 0.0.15.255 | 4 096 | 4 094 |
| /21 | 255.255.248.0 | 0.0.7.255 | 2 048 | 2 046 |
| /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 для P2P |
| /32 | 255.255.255.255 | 0.0.0.0 | 1 | 1 |
11. Как быстро считать подсети
Очень полезное понятие — размер блока.
Если маска заканчивается не на границе октета, используем формулу:
Размер блока = 256 - значение маски в изменяемом октете
Пример:
/26
Маска:
255.255.255.192
Изменяемый октет — последний.
256 - 192 = 64
Значит, подсети будут идти блоками по 64 адреса:
0-63
64-127
128-191
192-255
12. Пример расчёта сети по IP и маске
Дано
IP: 192.168.1.130/25
Шаг 1. Определяем маску
/25 = 255.255.255.128
Шаг 2. Считаем размер блока
256 - 128 = 128
Шаг 3. Определяем сеть
Блоки:
0-127
128-255
IP 130 попадает во второй блок.
Значит:
Сеть: 192.168.1.128/25
Шаг 4. Определяем broadcast
Broadcast — последний адрес блока:
192.168.1.255
Шаг 5. Определяем диапазон хостов
192.168.1.129 - 192.168.1.254
Итог:
IP: 192.168.1.130/25
Маска: 255.255.255.128
Сеть: 192.168.1.128
Broadcast: 192.168.1.255
Хосты: 192.168.1.129 - 192.168.1.254
13. Пример с маской /22
Дано
IP: 172.16.45.77/22
Шаг 1. Маска
/22 = 255.255.252.0
Шаг 2. Изменяемый октет
Меняется третий октет:
252
Шаг 3. Размер блока
256 - 252 = 4
Шаг 4. Определяем сеть
Третий октет IP:
45
Блоки:
0-3
4-7
8-11
...
40-43
44-47
48-51
45 попадает в блок:
44-47
Значит:
Сеть: 172.16.44.0/22
Шаг 5. Broadcast
172.16.47.255
Шаг 6. Диапазон хостов
172.16.44.1 - 172.16.47.254
Итог:
IP: 172.16.45.77/22
Маска: 255.255.252.0
Сеть: 172.16.44.0
Broadcast: 172.16.47.255
Хосты: 172.16.44.1 - 172.16.47.254
14. Разделение сети на подсети
Допустим, есть сеть:
192.168.1.0/24
Её нужно разделить на 4 подсети.
Шаг 1. Сколько бит нужно занять под подсети
Нужно 4 подсети:
2^n = 4
n = 2
Занимаем 2 дополнительных бита.
Исходный префикс был /24, новый будет:
/24 + 2 = /26
Шаг 2. Новая маска
/26 = 255.255.255.192
Шаг 3. Размер блока
256 - 192 = 64
Шаг 4. Подсети
| Подсеть | Адрес сети | Диапазон хостов | Broadcast |
|---|---|---|---|
| 1 | 192.168.1.0/26 | 192.168.1.1 - 192.168.1.62 | 192.168.1.63 |
| 2 | 192.168.1.64/26 | 192.168.1.65 - 192.168.1.126 | 192.168.1.127 |
| 3 | 192.168.1.128/26 | 192.168.1.129 - 192.168.1.190 | 192.168.1.191 |
| 4 | 192.168.1.192/26 | 192.168.1.193 - 192.168.1.254 | 192.168.1.255 |
Каждая подсеть:
64 адреса всего
62 доступных хоста
15. Подбор маски под количество хостов
Частая задача: нужно обеспечить определённое количество хостов в подсети.
Формула:
2^h - 2 >= требуемое количество хостов
где h — количество бит хоста.
Пример 1. Нужно 50 хостов
Ищем минимальное h:
2^5 - 2 = 30
Мало.
2^6 - 2 = 62
Подходит. Значит, нужно 6 бит хоста.
Префикс:
32 - 6 = /26
Маска:
255.255.255.192
Пример 2. Нужно 100 хостов
2^6 - 2 = 62
Мало.
2^7 - 2 = 126
Подходит.
Значит:
32 - 7 = /25
Маска:
255.255.255.128
Пример 3. Нужно 800 хостов
2^9 - 2 = 510
Мало.
2^10 - 2 = 1022
Подходит.
Значит:
32 - 10 = /22
Маска:
255.255.252.0
16. VLSM — маски переменной длины
VLSM, Variable Length Subnet Masking, — это когда внутри одной сети используются подсети разного размера.
Это удобно, когда есть разные сегменты:
- серверы — много адресов;
- пользователи — много адресов;
- Wi-Fi — много адресов;
- линки между маршрутизаторами — мало адресов;
- управление — немного адресов.
Пример VLSM
Исходная сеть:
192.168.20.0/24
Нужно разместить:
60 хостов
25 хостов
10 хостов
2 хоста
Важно: сначала выделяем самую большую подсеть.
1. Подсеть на 60 хостов
Нужно минимум 60 доступных адресов.
Подходит /26:
2^6 - 2 = 62
Параметры:
Сеть: 192.168.20.0/26
Маска: 255.255.255.192
Хосты: 192.168.20.1 - 192.168.20.62
Broadcast: 192.168.20.63
2. Подсеть на 25 хостов
Следующий свободный адрес:
192.168.20.64
Нужно минимум 25 хостов.
Подходит /27:
2^5 - 2 = 30
Параметры:
Сеть: 192.168.20.64/27
Маска: 255.255.255.224
Хосты: 192.168.20.65 - 192.168.20.94
Broadcast: 192.168.20.95
3. Подсеть на 10 хостов
Следующий свободный адрес:
192.168.20.96
Нужно минимум 10 хостов.
Подходит /28:
2^4 - 2 = 14
Параметры:
Сеть: 192.168.20.96/28
Маска: 255.255.255.240
Хосты: 192.168.20.97 - 192.168.20.110
Broadcast: 192.168.20.111
4. Подсеть на 2 хоста
Следующий свободный адрес:
192.168.20.112
Для двух хостов обычно используется /30.
Параметры:
Сеть: 192.168.20.112/30
Маска: 255.255.255.252
Хосты: 192.168.20.113 - 192.168.20.114
Broadcast: 192.168.20.115
Для point-to-point линков также может использоваться /31, если оборудование поддерживает RFC 3021.
17. Сводная таблица VLSM-примера
| Назначение | Требуется хостов | Префикс | Адрес сети | Диапазон хостов | Broadcast |
|---|---|---|---|---|---|
| Большая сеть | 60 | /26 | 192.168.20.0/26 | 192.168.20.1 - 192.168.20.62 | 192.168.20.63 |
| Средняя сеть | 25 | /27 | 192.168.20.64/27 | 192.168.20.65 - 192.168.20.94 | 192.168.20.95 |
| Малая сеть | 10 | /28 | 192.168.20.96/28 | 192.168.20.97 - 192.168.20.110 | 192.168.20.111 |
| Линк | 2 | /30 | 192.168.20.112/30 | 192.168.20.113 - 192.168.20.114 | 192.168.20.115 |
18. Классовые сети: историческая справка
Раньше IPv4 делился на классы.
| Класс | Диапазон первых октетов | Маска по умолчанию |
|---|---|---|
| A | 1 - 126 | 255.0.0.0 |
| B | 128 - 191 | 255.255.0.0 |
| C | 192 - 223 | 255.255.255.0 |
| D | 224 - 239 | Multicast |
| E | 240 - 255 | Зарезервировано |
Сейчас в основном используется CIDR, то есть бесклассовая адресация. Поэтому нельзя просто смотреть на первый октет и автоматически считать маску. Нужно смотреть фактический префикс, например /26, /22, /27.
19. Частные IP-адреса
Частные адреса используются внутри локальных сетей и не маршрутизируются напрямую в интернете.
| Диапазон | Префикс | Количество адресов |
|---|---|---|
| 10.0.0.0 - 10.255.255.255 | 10.0.0.0/8 | 16 777 216 |
| 172.16.0.0 - 172.31.255.255 | 172.16.0.0/12 | 1 048 576 |
| 192.168.0.0 - 192.168.255.255 | 192.168.0.0/16 | 65 536 |
Примеры:
192.168.0.0/24
192.168.1.0/24
10.10.0.0/16
172.16.5.0/24
20. Специальные адреса и маски
/32
255.255.255.255
Означает один конкретный IP-адрес.
Пример:
192.168.1.10/32
Используется для:
- loopback;
- host route;
- управления;
- firewall-правил.
/31
255.255.255.254
Используется для point-to-point соединений по RFC 3021.
В классическом понимании в /31 нет отдельных адресов сети и broadcast, но оба адреса могут использоваться как адреса интерфейсов.
Пример:
192.168.100.0/31
Адреса:
192.168.100.0
192.168.100.1
/30
255.255.255.252
Часто используется для линков между маршрутизаторами.
Всего адресов:
4
Доступно хостов:
2
Пример:
192.168.100.0/30
- Сеть:
192.168.100.0 - Первый хост:
192.168.100.1 - Второй хост:
192.168.100.2 - Broadcast:
192.168.100.3
0.0.0.0/0
Это маршрут по умолчанию.
Означает:
любой адрес IPv4
Используется как default route.
127.0.0.0/8
Loopback-адреса.
Чаще всего используется:
127.0.0.1
Это локальный адрес устройства.
169.254.0.0/16
APIPA.
Адреса вида:
169.254.x.x
Windows/Linux/macOS могут автоматически назначить такой адрес, если DHCP-сервер недоступен.
21. Wildcard-маска
Wildcard-маска — это обратная маска подсети.
Она часто используется в:
- ACL;
- OSPF;
- firewall-правилах;
- некоторых настройках сетевого оборудования.
Формула:
Wildcard = 255.255.255.255 - маска подсети
Примеры:
| Маска | Wildcard |
|---|---|
| 255.255.255.0 | 0.0.0.255 |
| 255.255.255.128 | 0.0.0.127 |
| 255.255.255.192 | 0.0.0.63 |
| 255.255.255.224 | 0.0.0.31 |
| 255.255.252.0 | 0.0.3.255 |
| 255.0.0.0 | 0.255.255.255 |
Пример:
Маска:
255.255.255.0
Wildcard:
0.0.0.255
Это означает, что первые три октета должны совпадать точно, а последний может быть любым.
Например:
192.168.1.0 0.0.0.255
покрывает адреса:
192.168.1.0 - 192.168.1.255
22. Агрегирование маршрутов
Иногда несколько сетей можно объединить одной записью.
Пример:
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
Их можно суммировать в:
192.168.0.0/22
Почему?
Третий октет:
0 = 00000000
1 = 00000001
2 = 00000010
3 = 00000011
Первые 6 бит третьего октета совпадают:
000000
Итого общий префикс:
16 бит первых двух октетов + 6 бит третьего = 22
Поэтому:
192.168.0.0/22
включает сети:
192.168.0.0/24
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
23. Как проверить маску в Windows
Команды:
ipconfig
ipconfig /all
route print
В PowerShell:
Get-NetIPAddress
или:
Get-NetIPAddress | Select-Object IPAddress, PrefixLength, InterfaceAlias
Пример вывода:
IPv4 Address: 192.168.1.10
Subnet Mask: 255.255.255.0
Get-NetIPAddress | Select-Object IPAddress, PrefixLength, InterfaceAliasили:
IPAddress: 192.168.1.10
PrefixLength: 24
24. Как проверить маску в Linux
Команды:
ip addr
ip -brief addr
ip route
Пример вывода:
inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
Это означает:
IP: 192.168.1.10
Маска: /24
Broadcast: 192.168.1.255
Если установлена утилита ipcalc:
ipcalc 192.168.1.10/26
25. Пример настройки интерфейса на Cisco-подобном оборудовании
interface GigabitEthernet0/0
ip address 192.168.1.1 255.255.255.192
no shutdown
Это назначает интерфейсу:
IP: 192.168.1.1
Маска: 255.255.255.192
То есть интерфейс находится в подсети:
192.168.1.0/26
26. Как понять, что два адреса в одной подсети
Алгоритм:
- Берём IP и маску.
- Применяем побитовое AND.
- Получаем адрес сети.
- Делаем то же самое для второго адреса.
- Если адреса сети совпадают — устройства в одной подсети.
Пример:
Хост A:
192.168.1.10/24
Хост B:
192.168.1.200/24
Общая сеть:
192.168.1.0
Значит, они в одной подсети.
Хост C:
192.168.2.200/24
Сеть:
192.168.2.0
Значит, это другая подсеть.
27. Частые ошибки
Ошибка 1. Несоответствие маски и префикса
Например, написано:
/24
но указана маска:
255.255.0.0
Это ошибка.
/24 должно быть:
255.255.255.0
Ошибка 2. Назначение адреса сети хосту
Например:
192.168.1.0/24
Это адрес сети. Обычно его не следует назначать компьютеру или серверу.
Ошибка 3. Назначение broadcast-адреса хосту
Например:
192.168.1.255/24
Это broadcast. Его нельзя использовать как обычный адрес хоста.
Ошибка 4. Пересечение подсетей
Например:
192.168.1.0/24
и внутри неё пытаются создать:
192.168.1.128/25
Это не отдельная независимая сеть, а часть первой. Такие подсети нельзя использовать одновременно без корректного разделения.
Ошибка 5. Шлюз по умолчанию вне подсети
Если хост имеет адрес:
192.168.1.10/24
то шлюз должен быть в той же сети, например:
192.168.1.1
Шлюз вида:
192.168.2.1
без дополнительной маршрутизации не подойдёт.
Ошибка 6. Путать маску и wildcard
Маска:
255.255.255.0
Wildcard:
0.0.0.255
Это разные вещи.
Ошибка 7. Думать только классовыми масками
Например, видеть адрес:
172.16.10.5
и автоматически считать:
255.255.0.0
Но на практике он может быть:
172.16.10.0/24
или даже:
172.16.10.0/26
Смотрите фактический префикс.
28. Практические задания
Задание 1
Дано:
192.168.10.200/27
Найти:
- маску;
- адрес сети;
- broadcast;
- диапазон хостов.
Задание 2
Дано:
172.16.20.77/20
Найти:
- маску;
- адрес сети;
- broadcast;
- диапазон хостов.
Задание 3
Есть сеть:
192.168.5.0/24
Нужно получить минимум 6 подсетей.
Вопросы:
- какой префикс использовать;
- сколько подсетей получится;
- сколько хостов будет в каждой подсети.
Задание 4
Нужно разместить 800 хостов в одной подсети. Какой минимальный префикс подойдёт?
Задание 5
Какая wildcard-маска у /26?
29. Ответы на задания
Ответ 1
192.168.10.200/27
Маска:
255.255.255.224
Размер блока:
256 - 224 = 32
Блоки:
0-31
32-63
64-95
96-127
128-159
160-191
192-223
224-255
200 попадает в блок:
192-223
Результат:
Сеть: 192.168.10.192/27
Хосты: 192.168.10.193 - 192.168.10.222
Broadcast: 192.168.10.223
Ответ 2
172.16.20.77/20
Маска:
255.255.240.0
Размер блока по третьему октету:
256 - 240 = 16
Блоки:
0-15
16-31
32-47
...
20 попадает в блок:
16-31
Результат:
Сеть: 172.16.16.0/20
Хосты: 172.16.16.1 - 172.16.31.254
Broadcast: 172.16.31.255
Ответ 3
Исходная сеть:
192.168.5.0/24
Нужно минимум 6 подсетей.
2^3 = 8
Занимаем 3 бита.
Новый префикс:
/27
Маска:
255.255.255.224
Получится 8 подсетей:
192.168.5.0/27
192.168.5.32/27
192.168.5.64/27
192.168.5.96/27
192.168.5.128/27
192.168.5.160/27
192.168.5.192/27
192.168.5.224/27
В каждой подсети:
30 доступных хостов
Ответ 4
Нужно 800 хостов.
Проверяем:
/23 = 510 хостов
Мало.
/22 = 1022 хоста
Подходит.
Ответ:
/22
Маска:
255.255.252.0
Ответ 5
/26 соответствует маска:
255.255.255.192
Wildcard:
0.0.0.63
30. Шпаргалка для быстрого расчёта
Если дано:
IP/префикс
делайте так:
- Переведите префикс в маску.
- Найдите изменяемый октет.
3. Посчитайте размер блока:
256 - значение маски в изменяемом октете
4. Найдите сеть:
floor(значение октета / размер блока) * размер блока
5. Broadcast:
начало блока + размер блока - 1
6. Диапазон хостов:
сеть + 1 ... broadcast - 1
31. Краткий итог
- Маска подсети делит IP-адрес на сеть и хост.
/24означает 24 единичных бита в маске.255.255.255.0— это то же самое, что/24.- Адрес сети получается операцией AND между IP и маской.
- Broadcast — последний адрес подсети.
- Количество хостов обычно считается как:
2^h - 2
- Для
/31и/32есть особые случаи. - VLSM позволяет использовать подсети разного размера.
- Нельзя назначать хостам адрес сети и broadcast.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.