company_banner

Powered by ZeroTier. Практическое руководство по строительству виртуальных сетей. Часть 2

    В процессе первых пяти шагов, описанных в статье Powered by ZeroTier. Практическое руководство по строительству виртуальных сетей. Часть 1 мы объединили виртуальной сетью три географически удалённых друг от друга узла. Один из которых расположен в физической сети, два других — в двух разнесённых ДЦ.  


    Это не заняло много времени, хотя каждый из этих узлов и добавлялся в сеть по-одному. А как быть, если к виртуальной сети 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

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

    В Networks кликнул на detail, нашёл и перешёл по ссылке v4AssignMode и отключил автоназначение IP-адресов, сняв отметку с чек-бокса Auto-assign from IP Assignment Pool


    После этого авторизовал подключаемый узел, задав название и отметив чек-боксы Authorized и Active Bridge. 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. Перешёл на новую страницу, где в качестве Target указал 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 дня!

    -> Введение. Теоретическая часть. Интеллектуальный Ethernet-коммутатор для планеты Земля
    -> Практическое руководство по строительству виртуальных сетей. Часть 1
    -> Практическое руководство по строительству виртуальных сетей. Часть 2

    RUVDS.com
    RUVDS – хостинг VDS/VPS серверов

    Комментарии 0

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое