Коли справа доходить до налаштування мереж у 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).

  1. IP в бінарці: 11000000.10101000.00000001.00001111
  2. Маска в бінарці: 11111111.11111111.11111111.00000000
  3. Результат (Мережа): 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 або об’єднанні офісів стежте, щоб локальні адреси мереж не збігалися, інакше маршрутизація працювати не буде.