Гэта не заняло шмат часу, хоць кожны з гэтых вузлоў і дадаваўся ў сетку па-аднаму. А як быць, калі да віртуальнай сеткі 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, абнаўлення і перазагрузкі сістэмы:
я праверыў, ці бачыць сістэма 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 🙂 І мне ўжо можна наладжваць яго і сеткавы мост.
Чым уласна я і заняўся прытрымліваючыся ніжэйпаказанаму алгарытму:
Выканаў каманду адключэння кіраванне IP-адрасамі і маршрутамі ZeroTier:
sudo zerotier-cli set <networkID> allowManaged=0
Далей на сваім сеткавым кантролеры:
В Сеткі клікнуў на падрабязна, знайшоў і перайшоў па спасылцы v4AssignMode і адключыў аўтапрызначэнне IP-адрасоў, зняўшы адзнаку з чэк-бокса Auto-assign from IP Assignment Pool
Пасля гэтага аўтарызаваў які падключаецца вузел, задаўшы назву і адзначыўшы чэк-боксы. упаўнаважаны и Active Bridge. IP-адрас не прызначаў.
Потым вярнуўся да налады сеткавага маста на вузле, для чаго адкрыў для рэдагавання праз тэрмінал файл канфігурацыі сеткавых інтэрфейсаў:
Дзе 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
Пацвердзіў уведзеныя дадзеныя і стаў правяраць сеткавую складнасць вузлоў, прапінгаваць з вузла фізічнай сеткі вузел у віртуальнай сетцы і наадварот.
Вось уласна і ўсё!
У мяне, праўда, у адрозненне ад прататыпа, з якога былі зроблены скрыншоты, IP-адрасы вузлоў віртуальнай сеткі з таго ж дыяпазону што і IP-адрасы вузлоў у фізічнай. Пры маставым злучэнні сетак гэтую мадэль магчымая, галоўнае каб яны не перасякаліся з адрасамі, якія раздаюцца DHCP-серверам.
Пра наладу сеткавага моста на баку вузла пад кіраваннем MS Windows і іншых дыстрыбутываў Linux асобна распавядаць у гэтым артыкуле не буду – у інтэрнэце поўна матэрыялаў па гэтай тэме. Што ж тычыцца наладкі на баку сеткавага кантролера – яна ідэнтычная вышэйапісанай.
Жадаю толькі адзначыць, што Raspberry PI – бюджэтная і зручная прылада пры аб'яднанні сетак з ZeroTier, прычым, не толькі як стацыянарнае рашэнне. Напрыклад, аўтсорсеры могуць выкарыстоўваць прадналаджаны сеткавы мост на аснове Raspberry PI для хуткага аб'яднання фізічнай сеткі абслугоўванага кліента з віртуальнымі на базе ZeroTier.
На гэтым дазволю гэтую частку апавядання завяршыць. Чакаю пытанняў, водгукаў і каментароў - бо менавіта на іх аснове буду будаваць змест наступнага артыкула. А пакуль прапаную вам паспрабаваць арганізаваць уласную віртуальную сетку з дапамогай прыватнага сеткавага кантролера з GUI на аснове VDS з маркетплэйсу на сайце RUVDS. Тым больш, што для ўсіх новых кліентаў дзейнічае бясплатны тэставы перыяд - 3 дні!