Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 2

У процесі перших п'яти кроків, описаних у статті Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 1 ми об'єднали віртуальною мережею три географічно віддалені один від одного вузли. Один з яких розташований у фізичній мережі, два інших - у двох рознесених ДЦ.  

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 2
Це не зайняло багато часу, хоча кожен із цих вузлів і додавався в мережу по одному. А як бути, якщо до віртуальної мережі ZeroTier потрібно підключити не один, а всі вузли, що знаходяться у фізичній мережі? Таке завдання постало якось переді мною, коли я спантеличив питанням організації доступу з віртуальної мережі до мережного принтера і маршрутизатора. 

Спробував використати описаний вище спосіб - вийшло не швидко і скрізь просто. Наприклад, мережевий принтер просто так не підключиш. Mikrotik - ZeroTier не підтримує. Що робити? Багато погугливши і проаналізувавши матч, я дійшов висновку, що потрібно організовувати мережевий міст.

Мережевий міст (також бридж з англ. bridge) - мережний пристрій другого рівня моделі OSI, призначений для об'єднання сегментів (підмережі) комп'ютерної мережі в єдину мережу.

Історією про те, як я це зробив, я і хочу поділитися в цій статті. 

Що нам варте, міст побудувати…

Для початку мені, як адміністратору, варто було визначитися — який вузол у мережі виступатиме як бридж. Вивчивши варіанти, я зрозумів, що ним може бути будь-який комп'ютерний пристрій, який має можливість організації мосту між мережевими інтерфейсами. Їм може стати як маршрутизатор - пристрій під керуванням OpenWRT або обладнання серії RUT компанії Teltonika, і звичайний сервер чи комп'ютер. 

Спочатку я звичайно розглядав можливість використання маршрутизатора з OpenWRT на борту. Але враховуючи той факт, що існуючий Mikrotik мене повністю влаштовує, хоча і не підтримує інтеграцію з ZeroTier, а перекручуватися і «танцювати з бубном» дуже не хочеться, я, як мережевий мост вирішив використовувати комп'ютер. Зокрема, постійно підключений до фізичної мережі Raspberry Pi 3 Model B під керуванням останньої версії Raspbian - ОС на базі Debian Buster.

Для можливості організації бриджу, на пристрої повинен бути доступний один інтерфейс, що не використовується іншими сервісами. У моєму випадку основний Ethernet вже був задіяний, тому я організував другий. Використовуючи для цього завдання USB-Ethernet адаптер на базі чіпсету RTL8152 від Realtek.

Після приєднання адаптера до вільного порту USB, оновлення та перезавантаження системи:

sudo apt update && sudo apt upgrade -y
sudo reboot

я перевірив, чи бачить система USB Ethernet адаптер:

sudo lsusb

Проаналізувавши отримані дані

Bus 001 Device 004: ID 0bda:8152 Realtek Semiconductor Corp. RTL8152 Fast Ethernet Adapter
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

я із задоволенням зазначив, що Device 004 якраз мій адаптер.

Далі уточнив, який мережевий інтерфейс присвоєно цьому адаптеру:

dmesg | grep 8152

[    2.400424] usb 1-1.3: New USB device found, idVendor=0bda, idProduct=8152, bcdDevice=20.00
[    6.363837] usbcore: registered new interface driver r8152
[    6.669986] r8152 1-1.3:1.0 eth1: v1.09.9
[    8.808282] r8152 1-1.3:1.0 eth1: carrier on

виявилося eth1 🙂 І мені вже можна налаштовувати його та мережевий міст. 

Чим власне я і зайнявся за наступним алгоритмом:

  • Встановив пакети керування мережним мостом:
    sudo apt-get install bridge-utils
  • встановив ZeroTier ONE:
     

    curl -s https://install.zerotier.com | sudo bash
  • Підключив його до існуючої мережі ZeroTier:
    sudo zerotier-cli join <Network ID>
  • Виконав команду відключення управління IP-адресами та маршрутами ZeroTier:
    sudo zerotier-cli set <networkID> allowManaged=0

Далі на своєму мережевому контролері:

В Мережі клікнув на деталь, знайшов та перейшов за посиланням v4AssignMode і відключив автопризначення IP-адрес, знявши позначку з чек-боксу Auto-assign from IP Assignment Pool

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 2
Після цього авторизував вузол, що підключається, задавши назву і відзначивши чек-бокси Уповноважений и Active Bridge. IP-адреса не призначала.

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 2
Потім повернувся до налаштування мережного мосту на вузлі, навіщо відкрив для редагування через термінал файл конфігурації мережевих інтерфейсів:

sudo nano /etc/network/interfaces

Куди додав наступні рядки

auto eth1
allow-hotplug eth1
iface eth1 inet manual

auto br0
allow-hotplug br0
iface br0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
        gateway 192.168.0.1
        network 192.168.0.0
        broadcast 192.168.0.255
        dns-nameservers 127.0.0.1
        bridge_ports eth1 ztXXXXXXXX
        bridge_fd 0
        bridge_maxage 0

Де eth1 — підключений адаптер USB Ethernet, якому IP-адреса не призначала.
br0 - створюваний мережевий міст з призначеною постійною IP-адресою з діапазону адрес моєї фізичної мережі.
ztXXXXXXXX - Ім'я віртуального інтерфейсу ZeroTier, який дізнався по команді:

sudo ifconfig

Після введення інформації зберіг файл конфігурації та перевантажив мережеві сервіси командою:

sudo /etc/init.d/networking restart

Для перевірки працездатності моста виконав команду:

sudo brctl show   

За отриманими даними, бридж піднявся.

bridge name	bridge id		STP enabled	interfaces
br0		8000.00e04c360769	no		eth1
							ztXXXXXXXX

Далі перейшов на мережевий контролер завдання маршруту.

Для чого у списку вузлів мережі перейшов за посиланням Призначення IP мережевого мосту. Далі у вікні клікнув Managed routes. Перейшов на нову сторінку, де як Мета вказав 0.0.0.0 / 0, а як Шлюз — IP-адреса мережевого моста з діапазону адрес мережі організації, заданий раніше. У моєму випадку 192.168.0.10

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 2
Підтвердив введені дані та почав перевіряти мережеву зв'язність вузлів, пропінгувати з вузла фізичної мережі вузол у віртуальній мережі та навпаки.

Ось, власне, і все!

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

Про налаштування мережевого мосту на стороні вузла під керуванням MS Windows та інших дистрибутивів Linux окремо розповідати в цій статті не буду - в інтернеті повно матеріалів на цю тему. Що ж до налаштування на стороні мережевого контролера — вона ідентична вищеописаній.

Хочу лише відзначити, що Raspberry PI — бюджетний та зручний інструмент при об'єднанні мереж із ZeroTier, причому не лише як стаціонарне рішення. Наприклад, аутсорсери можуть використовувати передналаштований мережевий міст на основі Raspberry PI для швидкого об'єднання фізичної мережі клієнта з віртуальними на базі ZeroTier.

На цьому дозволю цю частину оповіді завершити. Чекаю на запитання, відгуки та коментарі — бо саме на їх основі буду будувати зміст наступної статті. А поки що пропоную вам спробувати організувати власну віртуальну мережу за допомогою приватного мережевого контролера з GUI на основі VDS з маркетплейсу на сайті RUVDS. Тим більше, що для всіх нових клієнтів діє безкоштовний тестовий період – 3 дні!

-> Вступ. Теоретична частина. Інтелектуальний Ethernet комутатор для планети Земля
-> Практичний посібник з будівництва віртуальних мереж. Частина 1
-> Практичний посібник з будівництва віртуальних мереж. Частина 2

Powered by ZeroTier. Практичний посібник з будівництва віртуальних мереж. Частина 2

Джерело: habr.com

Додати коментар або відгук