Калькулятор підмереж

IPv4 та IPv6. Усе рахується у вашому браузері — до нас нічого не надсилається.

В IPv6 немає широкомовної адреси, і придатний увесь префікс.

Що насправді означає скісна риска

Усе на цій сторінці випливає з однієї думки. Адреса — це рядок бітів (32 в IPv4, 128 в IPv6), а довжина префікса каже, скільки з цих бітів визначають мережу. Те, що лишилося, визначає вузол усередині неї. У 192.168.1.10/24 перші 24 біти — мережа, останні 8 — вузол; тому ця мережа вміщує 256 адрес, і тому всі адреси від 192.168.1.0 до 192.168.1.255 належать їй.

Ця нотація замінила стару систему класів адрес 1993 року, і згадувати класи варто лише тому, що їхній словник дожив до місць, де йому не місце. «Мережі класу C» більше не існує; існують префікси, і префікс може бути будь-якої довжини. Саме через живучість цієї звички стільки людей вважає кожну мережу /24, а потім дивується /22.

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

Поля й для чого кожне придатне

Адреса мережі
Перша адреса блоку, усі біти вузла нульові. Вона називає мережу, а не машину в ній, — тому у звичайних підмережах IPv4 її не призначають пристроям.
Маска й wildcard-маска
Два записи того самого префікса. Маску (255.255.255.0) просить операційна система; wildcard-маска (0.0.0.255) є її побітовою інверсією і потрібна спискам доступу Cisco та частині маршрутних конфігурацій. Переплутати їх — отримати правило, яке мовчки збігається не з тим трафіком, а це гірше за правило, яке просто не працює.
Широкомовна адреса
Остання адреса, усі біти вузла одиничні. Трафік на неї йде до кожного вузла сегмента. Існує лише в IPv4; IPv6 прибрав широкомовлення повністю й користується натомість групами багатоадресної розсилки.
Перший і останній придатний вузол
Діапазон, який справді можна роздавати, — усе між адресою мережі й широкомовною. На практиці ще одну забирає маршрутизатор, тож адрес, доступних вашим машинам, зазвичай на дві менше за арифметику, а тоді ще на одну.
Кількість вузлів
Двійка в степені кількості бітів вузла мінус адреса мережі й широкомовна. Саме в цьому відніманні живуть винятки — одразу нижче.
Двійкова форма
Варто подивитися хоча б раз. Побачити, як межа префікса падає всередину октету, — це те, після чого поділ мереж перестає бути завченою таблицею й стає очевидним.

Два винятки з правила «мінус два»

У /31 за стандартною арифметикою немає жодного придатного вузла: дві адреси, обидві з'їдені мережею й широкомовленням. Проте з 2000 року цілком законно й звично використовувати /31 на з'єднанні точка-точка між двома маршрутизаторами, де призначені обидві адреси, а поняття мережі й широкомовлення не мають чого описувати, бо учасників рівно двоє. Це економить дві адреси на кожному каналі, а у великій мережі це відчутний обсяг дедалі дорожчого простору IPv4.

/32 — це одна адреса: один вузол, без мережі, без широкомовлення. Ви зустрінете її як loopback-адресу маршрутизатора, у правилі фаєрвола, що відповідає рівно одній машині, і в таблицях маршрутизації як найбільш конкретний можливий маршрут.

Діапазони, які варто впізнавати з погляду

10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
Приватний простір. Можна повторно використовувати в будь-якій мережі, ніколи не маршрутизується в інтернеті. Придивіться до середнього: це 172.16172.31, а не весь 172.x, — межа, яка спричинила чимало випадкових зіткнень адресації.
100.64.0.0/10
Спільний простір для carrier-grade NAT. Якщо ваш маршрутизатор показує адресу з цього діапазону на зовнішньому інтерфейсі, ви за NAT провайдера, і жодне вхідне з'єднання до вас не дійде, — це і є відповідь на велику частку питань «чому в мене не відкривається порт».
169.254.0.0/16
Link-local, адреса, яку пристрій призначає собі сам, коли DHCP не спрацював. Адреса звідси майже завжди означає «я не достукався до сервера DHCP», і діагностувати будь-що інше до усунення цього — марна робота.
127.0.0.0/8
Loopback. Увесь блок, а не лише 127.0.0.1: жодна адреса з цього діапазону не покидає машину.
192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24
Зарезервовано для документації й прикладів. Пишучи інструкції, беріть саме їх, а не вигадуйте адресу, яка комусь реально належить.

Як поділити мережу й не наплутати

Поділ блоку — головна робота калькулятора. Кожен додатковий біт префікса ділить мережу навпіл: /24 стає двома /25, чотирма /26, вісьмома /27. Правило, яке тримає результат у притомному стані, одне: кожна підмережа мусить починатися на своїй межі — /26 на кратному 64, /28 на кратному 16.

Помиляються здебільшого в розмірах. Плануйте під те, що сегмент нестиме за кілька років, а не під сьогоднішнє, але стримуйте рефлекс роздавати всім /24 тільки тому, що воно звичне: каналу точка-точка треба дві адреси, мережі керування на десяток комутаторів не потрібні 254, а щедро роздане на старті — саме те, що потім змушує болісно перенумеровувати все. Беріть різні розміри свідомо: /30 або /31 для каналів, /28 для невеликого серверного сегмента, /24 там, де справді сидять користувачі.

І перевіряйте перекриття, перш ніж закріпити план. Дві підмережі перекриваються щоразу, коли коротший префікс містить довший; у десятковому записі це легко проґавити, а у двійковій формі видно одразу. Перекриття не оголошує про себе — воно просто дає трафік, який доходить куди треба інколи.

Арифметика IPv6 — інша звичка

Математика та сама, а інстинкти інші, бо IPv6 прибирає причину заощаджувати. Правила, які важать на практиці:

Коли мережу сплановано, корисний наступний крок — переконатися, що вона працює обома протоколами. З погляду клієнта на це відповідає тест IPv6, а запит до DNS покаже, чи публікують імена AAAA-записи, без яких дістатися до вас через IPv6 не вийде взагалі.

Нічого з введеного не покидає ваш браузер

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

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

Що означає число після скісної риски?

Це кількість бітів на початку адреси, які визначають мережу; решта визначає вузол усередині неї. У 192.168.1.10/24 перші 24 біти — мережа, лишається 8 бітів і, відповідно, 256 адрес. Неочевидне тут те, що більше число означає меншу мережу: /25 — це половина /24, а не вдвічі більше за неї.

Чому придатних вузлів на два менше за загальну кількість адрес?

Бо перша адреса блоку IPv4 називає саму мережу, а остання є широкомовною адресою сегмента, тож жодну з них не можна віддати машині. На практиці третю забирає маршрутизатор, тому /24 із 256 адресами дає 253 для реальних пристроїв. В IPv6 широкомовної адреси немає, тож там це віднімання не застосовується взагалі.

Чи справді можна взяти /31 для каналу між двома маршрутизаторами?

Так, і це стандартна практика. На каналі точка-точка учасників рівно двоє, тож поняттям мережі й широкомовної адреси нема чого описувати, а обидві адреси можна призначити. Це законно з 2000 року й економить дві адреси на кожному каналі, що у великій мережі швидко складається у відчутну суму тепер, коли простір IPv4 дорогий.

Що таке wildcard-маска і чим вона відрізняється від звичайної?

Це побітова інверсія маски: 255.255.255.0 стає 0.0.0.255. Операційним системам потрібна маска; спискам доступу Cisco й частині маршрутних конфігурацій — wildcard. Обережним тут варто бути через характер відмови: переплутані маски не дають повідомлення про помилку, вони дають правило, яке мовчки збігається не з тим діапазоном адрес.

Чому калькулятор показує адресу мережі не таку, як я ввів?

Бо префікс мусить починатися на своїй межі. /26 охоплює 64 адреси й може починатися лише з кратного 64, тож 192.168.1.50/26 — це не мережа, а вузол усередині 192.168.1.0/26. Калькулятор показує блок, якому адреса насправді належить, — зазвичай саме це й малося на увазі.

Маршрутизатор показує адресу, що починається з 100.64. Вона приватна?

Це спільний простір для carrier-grade NAT, тож фактично так: ви за трансляцією провайдера, а не тримаєте публічну адресу. Практичний наслідок — вхідні з'єднання до вас не доходять, тобто прокидання портів, розміщення чогось у себе й частина однорангових застосунків неможливі, доки провайдер не видасть публічну адресу; зазвичай за запитом або за окрему плату.

Чому для підмережі IPv6 завжди беруть /64?

Бо автоматичне налаштування адрес побудоване навколо 64-бітного ідентифікатора інтерфейса, і довший префікс на звичайному сегменті мережі його ламає. Економити теж немає сенсу: одна /64 містить близько вісімнадцяти квінтильйонів адрес, а майданчик зазвичай отримує від провайдера /48 або /56 — тобто тисячі підмереж /64 на внутрішній розподіл.

Чи потрапляють введені адреси на ваш сервер?

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

Пов'язані перевірки