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: Найдено новое USB-устройство, idVendor=0bda, idProduct=8152, bcdDevice=20.00
[    6.363837] usbcore: зарегистрирован новый драйвер интерфейса r8152
[    6.669986] r8152 1-1.3:1.0 eth1: v1.09.9
[    8.808282] r8152 1-1.3:1.0 eth1: подключение

Оказа се eth1 🙂 Теперь я могу его настроить и создать сетевой мост. 

Чем я и занялся, следуя указанному алгоритму:

  • Установил пакеты для управления сетевым мостом:
    sudo apt-get install bridge-utils
  • Установил ZeroTier ONE:
     
    curl -s https://install.zerotier.com | sudo bash
  • Подключил его к существующей сети ZeroTier:
    sudo zerotier-cli join
  • Выполнил команду отключения управления IP-адресами и маршрутами ZeroTier:
    sudo zerotier-cli set  allowManaged=0

Далее на своём сетевом контроллере:

В Networks кликнул на детайл, нашёл и перешёл по ссылке 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, а в качестве Gateway — IP-адрес сетевого моста из диапазона адресов сети организации, заданный ранее. В моём случае 192.168.0.10

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

Вот, собственно, и всё!

В отличие от прототипа, с которого были сделаны скриншоты, моих узлов виртуальной сети используют IP-адреса из того же диапазона, что и узлы в физической сети. При мостовом соединении сетей эта модель возможна, главное чтобы их адреса не пересекались с теми, что раздаются DHCP-сервером.

Не буду подробно рассказывать о настройке сетевого моста на узле с MS Windows и других дистрибутивах Linux — в интернете много материалов на эту тему. Что касается сетевого контроллера, то настройка идентична уже описанной.

Хочу отметить, что Raspberry PI является доступным и удобным инструментом для объединения сетей с ZeroTier, и не только как стационарное решение. Например, аутсорсеры могут использовать преднастроенный сетевой мост на основе Raspberry PI для быстрого соединения физической сети клиента с виртуальными, основанными на ZeroTier.

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

-> Въведение. Теоретична част. Интелигентен Ethernet комутатор за планетата Земя
-> Практическо ръководство за изграждане на виртуални мрежи. Част 1
-> Практическо ръководство за изграждане на виртуални мрежи. Част 2

Powered by ZeroTier. Практическо ръководство за изграждане на виртуални мрежи. Част 2

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster