Калькулятор IP-підмереж: CIDR і діапазон хостів
Розрахуйте параметри IPv4-підмережі за адресою та префіксом CIDR: адресу мережі й широкомовну адресу, діапазон доступних хостів, маску підмережі та wildcard-маску.
IP Subnet Calculator
Results
Subnet Mask in Binary
Results follow RFC 791 (IPv4 addressing), RFC 4632 (CIDR notation), RFC 950 with RFC 919 and RFC 922 (network and broadcast reservation), and RFC 3021 (/31 point-to-point links).
Документація
Калькулятор IP-підмереж
Калькулятор IP-підмереж визначає мережеві параметри адреси IPv4 і довжини префікса. За цими двома вхідними даними він знаходить мережеву адресу, широкомовну адресу, діапазон придатних для використання адрес вузлів, маску підмережі та маску підстановки.
Що робить калькулятор
Інструмент приймає адресу IPv4, записану як чотири числа, розділені крапками, наприклад 192.168.1.10, і довжину префікса від 0 до 32. Також можна ввести обидва значення разом у форматі CIDR, наприклад 192.168.1.10/24: частина /24 автоматично переміститься в поле префікса.
Калькулятор повертає:
- Нотація CIDR: мережу у форматі адреса/префікс, наприклад 192.168.1.0/24.
- Мережева адреса: перша адреса в блоці. Вона позначає саму мережу.
- Широкомовна адреса: остання адреса в блоці. Повідомлення, надіслане на неї, досягає кожного вузла в підмережі.
- Діапазон придатних для використання адрес вузлів: перша й остання адреси, які пристрій може фактично використовувати.
- Придатні для використання вузли і загальна кількість адрес: скільки адрес містить блок і скільки з них доступно для пристроїв.
- Маска підмережі і маска підстановки: маска у форматі з крапками, наприклад 255.255.255.0, та її інверсія, 0.0.0.255.
- Маска підмережі, розписана побітово, по вісім бітів у кожному октеті.
Результати відповідають RFC 791 (адресація IPv4), RFC 4632 (нотація CIDR), RFC 950 разом із RFC 919 та RFC 922 (резервування мережевої та широкомовної адрес), а також RFC 3021 (з'єднання точка-точка /31).
Як працює поділ на підмережі
Адреса IPv4 — це 32-бітове число. Її записують як чотири октети, кожен з яких містить 8 бітів і має значення від 0 до 255. Довжина префікса ділить ці 32 біти на дві частини. Перші біти, кількість яких визначає префікс, позначають мережу. Решта бітів позначають вузол усередині цієї мережі.
Мережа /24 використовує 24 біти для мережевої частини та залишає 8 бітів для вузлів. Вісім бітів вузла дають 2⁸ = 256 адрес. Мережа /26 залишає лише 6 бітів вузла, тому містить 2⁶ = 64 адреси.
Маска підмережі записує цей самий поділ як адресу: біт 1 для кожного мережевого біта та біт 0 для кожного біта вузла. Для /24 це 255.255.255.0. Маска підстановки інвертує кожен біт маски підмережі. Списки контролю доступу маршрутизаторів, зокрема на обладнанні Cisco, зіставляють адреси за допомогою масок підстановки, тому інструмент показує обидві маски.
Формула підмережі
Для довжини префікса p від 0 до 30 калькулятор застосовує такі правила, визначені RFC 950 і RFC 4632:
- Маска підмережі = старші p бітів 32-бітового слова, встановлені в 1.
- Мережева адреса = IP-адреса AND маска підмережі (побітова операція AND зберігає біт лише там, де обидва вхідні значення мають 1).
- Широкомовна адреса = мережева адреса OR маска підстановки (кожен біт вузла встановлено в 1).
- Загальна кількість адрес = 2⁽³²⁻ᵖ⁾.
- Придатні для використання вузли = 2⁽³²⁻ᵖ⁾ − 2. Віднімання вилучає мережеву та широкомовну адреси, які резервують RFC 950 і RFC 919.
- Перша придатна для використання адреса вузла = мережева адреса + 1. Остання придатна для використання адреса вузла = широкомовна адреса − 1.
Для двох довжин префікса діють інші правила. Мережа /31 містить рівно 2 адреси, і RFC 3021 робить обидві придатними для використання вузлами на з'єднанні точка-точка, без широкомовної адреси. /32 позначає одну адресу: 1 загальна, 1 придатна для використання, без широкомовної адреси. У цих двох випадках інструмент називає першу адресу «База префікса» замість «Мережева адреса», оскільки жоден із блоків не резервує адресу для позначення мережі.
Кожен результат отримують арифметично з одного 32-бітового числа. Інструмент не перелічує адреси по одній, тому мережа /0, що охоплює всі 4 294 967 296 адрес IPv4, обчислюється так само швидко, як і мережа /32.
Приклад обчислення
Для адреси 10.128.7.33 із довжиною префікса /26:
- Маска підмережі: 26 одиничних бітів, за якими йдуть 6 нульових бітів, утворюють 11111111,11111111.11111111,11000000, що відповідає 255.255.255.192.
- Мережева адреса: виконаємо AND адреси з маскою. Перші три октети залишаються без змін. В останньому октеті 33 у двійковому записі має вигляд 00100001; операція AND з 11000000 дає 00000000, тобто 0. Мережева адреса — 10.128.7.0, тому нотація CIDR — 10.128.7.0/26.
- Широкомовна адреса: встановимо всі 6 бітів вузла в 1. Останній октет стає 00111111, тобто 63. Широкомовна адреса — 10.128.7.63.
- Кількість: 2⁶ = 64 загальні адреси, а 64 − 2 = 62 придатні для використання вузлами.
- Діапазон адрес вузлів: від 10.128.7.1 до 10.128.7.62.
- Маска підстановки: інверсія маски підмережі, 0.0.0.63.
Другий приклад зі стандартними вхідними даними інструмента, 192.168.1.10/24: мережа 192.168.1.0, широкомовна адреса 192.168.1.255, вузли від 192.168.1.1 до 192.168.1.254, 254 придатних для використання вузлів із 256 загальних адрес, маска підмережі 255.255.255.0, маска підстановки 0.0.0.255.
Правила, яких дотримується інструмент
Октети з нульовими префіксами відхиляються. Інструмент відхиляє 010.1.1.1, а не читає її як 10.1.1.1. Це зроблено навмисно. Функція POSIX inet_aton, на якій ґрунтуються ping, curl і більшість засобів розпізнавання адрес операційних систем, сприймає октет із початковим нулем як вісімкове число, тому 010.1.1.1 для цих програм означає 8.1.1.1. Жодне припущення про десятковий або вісімковий запис не узгоджується з усіма засобами обробки, тому інструмент не приймає жодного з них. Префікс, записаний як /08, відхиляється з тієї самої причини.
Кількість вузлів зменшується на два. Деякі калькулятори повідомляють розмір блока як кількість вузлів. Цей інструмент дотримується RFC 950: у будь-якому блоці від /0 до /30 частина вузла, що складається лише з нулів, позначає мережу, а частина, що складається лише з одиниць, є широкомовною адресою. Тому обидві адреси виключаються, і мережа /24 має 254 придатних для використання вузлів, а не 256.
Мережа /31 має два придатні для використання вузли. У старих текстах, написаних до RFC 3021 (опублікованого у 2000), мережу /31 називають непридатною, оскільки після віднімання двох зарезервованих адрес не залишається нічого. RFC 3021 скасував обидва резервування для з'єднань точка-точка, а маршрутизатори підтримують це вже десятиліттями, тому інструмент повідомляє про 2 придатні для використання вузли без широкомовної адреси.
Приймається будь-який префікс від /0 до /32. /0 є дійсним блоком, що охоплює весь простір IPv4, відповідно до запису 0.0.0.0/0 у таблицях маршрутизації як маршруту за замовчуванням.
Лише IPv4. IPv6 (RFC 4291) використовує 128-бітові адреси та іншу нотацію, тому не входить до сфери цього інструмента. Інструмент також не позначає діапазони спеціального призначення, як-от приватні адреси або адреси зворотного зв'язку (RFC 6890); він виконує лише арифметичні обчислення адрес.
Поширені запитання
Скільки придатних для використання вузлів має мережа /24? 254. Мережа /24 залишає 8 бітів вузла, що дає 2⁸ = 256 адрес. Дві зарезервовано: мережеву та широкомовну адреси. Для пристроїв залишається 254 адреси.
Що таке маска підстановки? Побітова інверсія маски підмережі. Там, де маска підмережі має 1, маска підстановки має 0, і навпаки. Для маски 255.255.255.0 маска підстановки має вигляд 0.0.0.255. Списки контролю доступу на багатьох маршрутизаторах використовують маски підстановки, щоб описувати адреси, яких стосується правило.
Чому для мережі /31 не показується широкомовна адреса? Мережа /31 містить лише дві адреси. Резервування однієї для мережі й однієї для широкомовної адреси не залишило б нічого, тому RFC 3021 визначає /31 як з'єднання точка-точка, де обидві адреси є адресами вузлів і широкомовної адреси немає. Калькулятор повідомляє про 2 придатні для використання вузли та позначає широкомовну адресу як непридатну.
Чому 010.1.1.1 відхиляється, а не читається як 10.1.1.1? Тому що операційні системи по-різному трактують звичайний десятковий запис. POSIX inet_aton читає октет із початковим нулем як вісімкове число, тому для більшості систем 010 означає 8. Відхилення вхідних даних — єдиний варіант, який не може непомітно відрізнятися від того, як це зробить власний комп'ютер користувача.
У чому різниця між загальною кількістю адрес і придатними для використання вузлами? Загальна кількість адрес — це повний розмір блока, 2 у степені (32 мінус довжина префікса). Кількість придатних для використання вузлів дорівнює цьому числу мінус дві зарезервовані адреси, за винятком /31 (обидві адреси придатні) та /32 (єдина адреса є адресою вузла).
Що означає мережева адреса 192.168.1.10/24? Це 192.168.1.0, отримана збереженням перших 24 бітів адреси та встановленням бітів вузла в нуль. Вона ідентифікує підмережу як єдине ціле й не може бути призначена пристрою.
Джерела
- Postel, J. «RFC 791: Internet Protocol». IETF, 1981.
- Mogul, J., і J. Postel. «RFC 950: Internet Standard Subnetting Procedure». IETF, 1985.
- Mogul, J. «RFC 919: Broadcasting Internet Datagrams». IETF, 1984.
- Fuller, V. і T. Li. «RFC 4632: Classless Inter-domain Routing (CIDR)». IETF, 2006.
- Retana, A. та ін. «RFC 3021: Using 31-Bit Prefixes on IPv4 Point-to-Point Links». IETF, 2000.