В процеса на първите пет стъпки, описани в статията обединихме виртуална мрежа три географски отдалечени възли. Един от които се намира в физическа мрежа, два други — в два отдалечени центрове за данни.
Не отне много време, въпреки че всеки от тези възли е добавян в мрежата един по един. А какво да правим, ако за виртуалната мрежа ZeroTier трябва да се свържат не един, а всички възли, намиращи се във физическата мрежа? Такъв въпрос ми възникна веднъж, когато се заех с организацията на достъпа от виртуалната мрежа до мрежовия принтер и маршрутизатора.
Опитах се да използвам описания по-горе метод — не се получи бързо и не навсякъде е просто. Например, мрежовият принтер — просто така не можеш да свържеш. Mikrotik — ZeroTier не поддържа. Какво да правим? След много търсене и анализ на материята, стигнах до извода, че трябва да организирам мрежов мост.
Мрежов мост (също така бридж от английски bridge) — мрежово устройство от второ ниво на модела OSI, предназначено за обединяване на сегменти (подмрежи) на компютърната мрежа в единна мрежа.
С историята как го направих, искам да споделя в тази статия.
Какво ни струва, мост да построим…
Първо, като администратор, трябваше да се определя — кой възел в мрежата ще играе ролята на бридж. Изучавайки вариантите, осъзнах, че може да бъде всяко компютърно устройство, което има възможност за организиране на мост между мрежовите интерфейси. То може да бъде както маршрутизатор — устройство или , така и обикновен сървър или компютър.
В началото, разбира се, разглеждах възможността за използване на маршрутизатор с 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: carrier onОказа се 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

След това авторизирах свързания възел, задавайки име и отбелязвайки чекбоксите Удостоверен и Активен мост. IP адрес не назначавах.

После се върнах към настройката на мрежовия мост на възела, за което отворих за редактиране файла с конфигурация на мрежовите интерфейси чрез терминал:
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 assignment мрежовия мост. След това в отворения прозорец кликнах Managed routes. Преминах на нова страница, където като Цел посочи 0.0.0.0/0, а като Gateway — IP адресът на мрежовия мост от диапазона адреси на организацията, зададен по-рано. В моя случай 192.168.0.10

Потвърдих въведените данни и започнах да проверявам мрежовата свързаност на узлите, пингвайки от узел на физическата мрежа към узел на виртуалната и обратно.
Ето всъщност и всичко!
При мен, обаче, за разлика от прототипа, от който са направени скрийншотите, IP адресите на узлите на виртуалната мрежа са от същия диапазон като IP адресите на узлите в физическата. При мостово свързване на мрежи тази схема е възможна, важното е да не се припокриват с адресите, раздавани от DHCP сървъра.
По конфигурирането на мрежовия мост от страната на узела, управляван от MS Windows и други дистрибуции на Linux, няма да говоря отделно в тази статия — в Интернет има много материал по тази тема. Що се отнася до настройките от страна на мрежовия контролер — тя е идентична на описаната по-горе.
Искам само да отбележа, че Raspberry PI е бюджетен и удобен инструмент при свързването на мрежи с ZeroTier, като не само за стационарно решение. Например, аутсорсите могат да използват предварително настроен мрежов мост на базата на Raspberry PI за бързо свързване на физическата мрежа на обслужвания клиент с виртуалните на базата на ZeroTier.
С това ще завърша тази част от повествованието. Очаквам въпроси, коментари и отзиви — защото именно на тяхна база ще изградя съдържанието на следващата статия. А засега ви предлагам да опитате да организирате собствена виртуална мрежа с помощта на частен мрежов контролер с GUI на базата на VDS от маркетплейса на RUVDS. Освен това всички нови клиенти имат право на безплатен тестов период — 3 дни!
->
->
->
Източник: habr.com
