Що таке маска підмережі? Двійковий запис, розрахунок, таблиця

Маска підмережі — це 32-бітне число, яке ділить IPv4-адресу на мережеву частину та частину вузла. Біти зі значенням 1 позначають мережу, біти зі значенням 0 — вузол. Найпоширеніша маска, 255.255.255.0, починається з 24 одиниць, тому її також записують як /24, і вона залишає 254 придатні адреси вузлів.

Спробуйте безкоштовно: Калькулятор підмережі IPv4 Безкоштовно, без реєстрації.

Тож що таке маска підмережі на практиці? Кожен пристрій через маску порівнює власну адресу з адресою призначення й вирішує, чи призначення розташоване в локальній мережі, чи до нього треба йти через маршрутизатор. У цьому посібнику показано двійкове представлення, як обчислити маску, приклад поділу на підмережі, wildcard-маски та повну таблицю. Щоб перевірити будь-який приклад під час читання, введіть його в безкоштовний Калькулятор підмережі IPv4.

Що таке маска підмережі у двійковому вигляді?

IPv4-адреса складається з чотирьох 8-бітних чисел (октетів), і маска підмережі теж. У двійковому записі 255.255.255.0 виглядає так:

11111111.11111111.11111111.00000000

Одиниці завжди стоять спочатку й ідуть без розривів: дійсна маска — це ряд одиниць, за яким іде ряд нулів, і ніколи не суміш. Тому маску можна описати одним числом — кількістю одиниць. Ця коротка форма є довжиною префікса в нотації CIDR: 192.168.1.10/24 означає адресу 192.168.1.10 з маскою 255.255.255.0. Детальніше про CIDR-блоки читайте в статті як обчислити CIDR-блок.

В октеті дійсної маски може бути лише одне з восьми значень:

Одиниць в октеті 1 2 3 4 5 6 7 8
Значення октету 128 192 224 240 248 252 254 255

Нульовий октет (0) — дев’ятий варіант; будь-яке інше число, наприклад 255.255.255.100, робить маску недійсною.

Як маска знаходить мережу: розібраний приклад з AND

Пристрій отримує адресу мережі, поєднуючи IP-адресу та маску побітовою операцією AND: біт результату дорівнює 1 лише тоді, коли обидва вхідні біти дорівнюють 1. Візьмемо 192.168.10.37/26. Маска /26 має 26 одиниць, тобто 255.255.255.192:

IP-адреса    192.168.10.37    11000000.10101000.00001010.00100101
Маска        255.255.255.192  11111111.11111111.11111111.11000000
AND          192.168.10.0     11000000.10101000.00001010.00000000

Перші три октети проходять без змін. В останньому 37 — це 00100101, а маска — 11000000, тож залишаються лише два старші біти, і обидва дорівнюють 0. Адреса мережі — 192.168.10.0.

Широкомовна адреса (broadcast) — це адреса мережі, у якій усі біти вузла встановлено в 1: 00111111 в останньому октеті, тобто 63. Отже, повна картина така:

Параметр Значення
Адреса мережі 192.168.10.0
Перший придатний вузол 192.168.10.1
Останній придатний вузол 192.168.10.62
Широкомовна адреса 192.168.10.63
Усього адрес 64
Придатних вузлів 62

Пристрій з адресою 192.168.10.37/26 надсилає трафік для 192.168.10.50 напряму, бо ця адреса лежить у тій самій /26. Трафік для 192.168.10.70 іде на шлюз за замовчуванням, бо .70 належить до наступного блоку.

Як обчислити маску підмережі

Є дві типові відправні точки: ви знаєте довжину префікса або знаєте, скільки вузлів потрібно мережі.

За довжиною префікса

Запишіть стільки одиниць, скільки вказує префікс, доповніть нулями до 32 бітів і переведіть кожен октет у десяткове число. Для /20:

11111111.11111111.11110000.00000000  =  255.255.240.0

Третій октет містить чотири одиниці, а таблиця вище дає для чотирьох одиниць 240. Скорочений спосіб: префікс показує, скільки повних октетів 255 (20 ÷ 8 = 2, остача 4), а остача визначає значення наступного октету.

За потрібною кількістю вузлів

Кожна підмережа втрачає дві адреси — адресу мережі та широкомовну адресу, тому правило таке:

придатні вузли = 2^h − 2, де h — кількість бітів вузла (нулів у масці).

Знайдіть найменше h, за якого 2^h − 2 не менше за потрібну кількість вузлів, і обчисліть префікс = 32 − h.

Залишайте запас на зростання: перенумерація згодом забирає значно більше зусиль, ніж вибір трохи більшого блоку зараз. Перевірити результат можна в калькуляторі маски підмережі: введіть, наприклад, 10.0.0.0/23 і подивіться першу та останню адресу.

Що таке поділ на підмережі? Ділимо /24 на чотири мережі /26

Поділ на підмережі (subnetting) означає розбиття однієї мережі на менші шляхом зсуву межі між бітами мережі й бітами вузла праворуч. Кожен біт, запозичений у частини вузла, подвоює кількість підмереж і вдвічі зменшує їхній розмір.

Припустімо, у вас є 192.168.10.0/24 (256 адрес) і потрібні чотири окремі мережі, наприклад для працівників, гостей, серверів і камер. Для чотирьох підмереж потрібно 2 запозичені біти (2^2 = 4), тож префікс зростає з /24 до /26, а маска стає 255.255.255.192. Кожна підмережа має 2^6 = 64 адреси, з них 62 придатні:

Підмережа Адреса мережі Діапазон придатних вузлів Широкомовна адреса
1 192.168.10.0/26 192.168.10.1 – 192.168.10.62 192.168.10.63
2 192.168.10.64/26 192.168.10.65 – 192.168.10.126 192.168.10.127
3 192.168.10.128/26 192.168.10.129 – 192.168.10.190 192.168.10.191
4 192.168.10.192/26 192.168.10.193 – 192.168.10.254 192.168.10.255

Адреси мереж зростають кроком 64 — це розмір блоку. Швидко знайти його можна так: 256 мінус значущий октет маски, тобто 256 − 192 = 64. Разом чотири підмережі дають 248 придатних вузлів замість 254, бо кожна витрачає дві адреси на власні адресу мережі та широкомовну адресу.

Wildcard-маски: інверсія маски підмережі

Wildcard-маска (зворотна маска) інвертує кожен біт маски підмережі: нулі позначають біти, які мають збігатися, одиниці — біти, які можуть змінюватися. Її обчислюють, віднімаючи кожен октет від 255, тож 255.255.255.192 перетворюється на 0.0.0.63.

Маршрутизатори Cisco використовують wildcard-маски у списках контролю доступу (ACL) та в командах network протоколу OSPF:

access-list 10 permit 192.168.10.0 0.0.0.63
router ospf 1
 network 192.168.10.0 0.0.0.63 area 0

Обидва рядки стосуються тієї самої /26, що й у прикладі. На відміну від масок підмережі, wildcard-маски в ACL не мусять бути неперервними, але для звичайних підмереж це просто інверсія.

Класова адресація та стандартні маски

До 1993 року IPv4 використовував фіксовані класи, і перший октет адреси визначав її маску:

Клас Перший октет Стандартна маска Префікс
A 1–126 255.0.0.0 /8
B 128–191 255.255.0.0 /16
C 192–223 255.255.255.0 /24

Клас D (224–239) зарезервовано для multicast, клас E (240–255) — для експериментального використання, а 127 відведено під loopback. Оскільки організації могли отримати лише блоки з 256, 65 536 або 16 777 216 адрес, система марнувала адресний простір. Безкласова міждоменна маршрутизація (CIDR) замінила її префіксами довільної довжини, а чинна специфікація — RFC 4632. Сьогодні клас адреси не має технічного значення, хоча старі стандартні маски досі з’являються як запропоноване значення в багатьох вікнах налаштування.

Приватні діапазони адрес та їхні маски

RFC 1918 резервує три блоки для приватних мереж, які не маршрутизуються в публічному інтернеті:

Приватний діапазон Префікс Маска підмережі Усього адрес
10.0.0.0 – 10.255.255.255 10.0.0.0/8 255.0.0.0 16 777 216
172.16.0.0 – 172.31.255.255 172.16.0.0/12 255.240.0.0 1 048 576
192.168.0.0 – 192.168.255.255 192.168.0.0/16 255.255.0.0 65 536

Цілий блок рідко використовують як одну мережу. Типовий домашній маршрутизатор, наприклад, виділяє одну мережу 192.168.1.0/24 або 192.168.0.0/24 з маскою підмережі 255.255.255.0.

Маски підмережі в IPv6

В IPv6 немає масок підмережі з крапками. Мережі записують лише з довжиною префікса, як-от 2001:db8:1234:5678::/64, і /64 — стандартний розмір для одного сегмента LAN, бо автоконфігурація без збереження стану (SLAAC) потребує 64-бітного ідентифікатора інтерфейсу. В IPv6 також немає широкомовної адреси, тож правило «мінус два» не діє.

Типові помилки з масками підмережі

Таблиця масок підмережі: від /8 до /32

У цій таблиці наведено кожен префікс від /8 до /32. Кількість придатних вузлів — 2^(32 − префікс) − 2, з двома винятками: /31 має 2 придатні адреси на з’єднанні «точка — точка» (RFC 3021), а /32 — це один вузол.

Префікс Маска підмережі Wildcard-маска Усього адрес Придатні вузли
/8 255.0.0.0 0.255.255.255 16 777 216 16 777 214
/9 255.128.0.0 0.127.255.255 8 388 608 8 388 606
/10 255.192.0.0 0.63.255.255 4 194 304 4 194 302
/11 255.224.0.0 0.31.255.255 2 097 152 2 097 150
/12 255.240.0.0 0.15.255.255 1 048 576 1 048 574
/13 255.248.0.0 0.7.255.255 524 288 524 286
/14 255.252.0.0 0.3.255.255 262 144 262 142
/15 255.254.0.0 0.1.255.255 131 072 131 070
/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 («точка — точка»)
/32 255.255.255.255 0.0.0.0 1 1 (один вузол)

Перевірте себе за допомогою калькулятора підмережі

Безкоштовний Калькулятор підмережі IPv4 працює повністю у вашому браузері. Введіть адресу з префіксом, наприклад 192.168.10.37/26, або з маскою в десятковому записі після скісної риски, наприклад 10.0.0.0/255.255.0.0, і він покаже:

Для /31 він показує обидві адреси як придатні й без широкомовної адреси, а адреса без маски вважається одним вузлом (/32). Кнопки «Попередній блок» і «Наступний блок» переходять до сусідньої підмережі того самого розміру — це зручно, щоб пройти чотири мережі /26 з прикладу вище. Інструмент підтримує лише IPv4, відхиляє маски з розривами, не приймає маску, відокремлену пробілом, і не обчислює префікс за кількістю вузлів; для цього кроку скористайтеся формулою вище.

Часті запитання

Що означає маска підмережі 255.255.255.0?

Це маска /24: перші три октети ідентифікують мережу, а останній — вузол. Мережа /24 має 256 адрес, з яких 254 можна призначити пристроям, наприклад від 192.168.1.1 до 192.168.1.254 у 192.168.1.0/24.

Як дізнатися маску підмережі свого комп’ютера?

У Windows запустіть ipconfig і знайдіть рядок «Маска підмережі». У Linux команда ip addr показує адресу з префіксом, наприклад 192.168.1.20/24. У macOS ipconfig getoption en0 subnet_mask виводить маску інтерфейсу en0, і її також видно в налаштуваннях мережі.

Чому /31 має дві придатні адреси?

Якщо відняти адресу мережі та широкомовну адресу, у блоці з двох адрес не лишилося б жодного вузла. RFC 3021 дозволяє мережі /31 на з’єднаннях «точка — точка», де широкомовна розсилка не потрібна, тож обидва кінці з’єднання можуть використовувати обидві адреси.

Маска підмережі — це те саме, що шлюз за замовчуванням?

Ні. Маска підмережі визначає, які адреси належать до локальної мережі, а шлюз за замовчуванням — це адреса маршрутизатора, який обробляє все інше. Пристрій спочатку за маскою перевіряє, чи призначення локальне, і надсилає трафік на шлюз лише тоді, коли воно не локальне.

Спробуйте безкоштовно: Калькулятор підмережі IPv4 Безкоштовно, без реєстрації.