Основи мереж: розуміння IPv4 та масок
Коли справа доходить до налаштування мереж у Linux, розуміння IP-адресації - це база, без якої неможливо рухатися далі. Можна наосліп копіювати параметри інтерфейсів, але краще один раз розібратися в логіці підмереж.
Розглянемо, як влаштовані адреси та за яким принципом працюють маски.
IP-адреси#
Для нас IP-адреса виглядає як чотири числа, розділені крапками (наприклад, 172.29.35.1). Проте система сприймає її як суцільний 32-бітний рядок з одиниць та нулів.
Кожна адреса складається з двох частин:
- Ідентифікатор мережі (Network ID): спільна частина для всіх пристроїв у межах одного сегмента.
- Ідентифікатор вузла (Host ID): унікальний номер конкретного комп’ютера або сервера.
Межу між цими частинами визначає маска підмережі.
Як працює маска#
Маска це такий самий 32-бітний блок, де одиниці вказують на частину мережі, а нулі на частину для адрес пристроїв. Одиниці в масці завжди йдуть підряд, без розривів.
Приклад у двійковій системі#
Візьмемо популярну маску 255.255.255.0. У бінарному вигляді вона виглядає так:
11111111.11111111.11111111.00000000
Тут ми бачимо 24 одиниці.
Запис через префікс (CIDR)#
Замість довгого запису 255.255.255.0 часто використовують короткий - /24. Це число просто вказує на кількість одиниць у масці.
/24означає 24 одиниці та 8 нулів (24 + 8 = 32)./30означає 30 одиниць та 2 нулі.
Розрахунок мережі: Операція AND#
Щоб дізнатися адресу мережі, операційна система виконує побітове “і” (AND) між IP-адресою та маскою.
Правило AND: Результат дорівнює 1 тільки якщо обидва біти дорівнюють 1. В усіх інших випадках - 0.
Математичний приклад#
Маємо IP 192.168.1.15 та маску 255.255.255.0 (/24).
- IP в бінарці:
11000000.10101000.00000001.00001111 - Маска в бінарці:
11111111.11111111.11111111.00000000 - Результат (Мережа):
11000000.10101000.00000001.00000000 (192.168.1.0)
Кількість хостів, формула розрахунку#
Щоб зрозуміти, скільки пристроїв можна вмістити в підмережу, треба порахувати кількість нулів у масці. Позначимо їх як n.
Формула кількості доступних адрес для хостів:
2^n - 2
Ми віднімаємо дві адреси, тому що перша адреса (усі нулі в частині хоста) це адреса мережі, а остання адреса (усі одиниці в частині хоста) це Broadcast (широкомовна адреса).
Популярні варіанти масок:#
| Префікс | Кількість хостів | Призначення |
|---|---|---|
| /30 | 2 | З’єднання точка-точка (наприклад, між двома роутерами) |
| /24 | 254 | Стандарт для невеликих офісних або домашніх мереж |
| /22 | 1022 | Великі сегменти для дата-центрів або великих офісів |
Кілька практичних порад#
- Використовуйте
ipcalcабо наш IPv4 калькулятор. У будь-якому дистрибутиві GNU/Linux ця утиліта найкращий помічник. Введітьipcalc 10.0.0.1/22, і ви побачите повну розкладку мережі в зручному вигляді. - Плануйте на перспективу. Якщо ви створюєте підмережу для відділу, де зараз 10 людей, не варто обмежуватися маскою
/28(14 хостів). Краще залишити простір для розширення. - Уникайте перекриттів. При налаштуванні VPN або об’єднанні офісів стежте, щоб локальні адреси мереж не збігалися, інакше маршрутизація працювати не буде.