Настройка SoftEther VPN Bridge

Оцените статью

Для объединения нескольких географически распределенных подсетей при помощи SoftEther используется компонент SoftEther VPN Bridge и сегодня мы в краце рассмотрим как настроить объединение несколько виртуальных сетей (LXD хост).

Подготовка сети хоста

Установка необходимых пакетов

# apt-get update && apt-get upgrade
# apt-get install net-tools bridge-utils traceroute

Настройка моста при помощи NetPlan

Добавляем в конфигурацию NetPlan сетевой мост и не ключаем в него интерфейсы, но назначаем для адреса. Первый адрес это подсеть с выходом в интернет с хоста LXD, а второй адрес это адрес виртуальной сети SoftEther.

network:
  version: 2
  bridges:
    v-bridge:
      dhcp4: no
      addresses: [ "10.101.3.1/24", "10.101.5.9/24" ]
  ethernets:
    ens34:
      addresses: [ 185.135.81.157/22 ]
      nameservers:
          addresses:
          - 8.8.8.8
          - 8.8.4.4
          search: []
      routes:
      -   to: default
          via: 185.135.80.1

Сервис SystemD для организации доступа в интернет для LXC-контейнеров /etc/systemd/system/lxd-nat.service.

[Unit]
Description=NAT network for LXD
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/iptables -t nat -A POSTROUTING -s 10.101.3.0/24 -o ens34 -j MASQUERADE

[Install]
WantedBy=multi-user.target

Активируем и запускаем сервис.

# systemctl enable lxd-nat
# systemctl start lxd-nat

Установка и базовая настройка LXD

Выполняем инициализацию LXD и на этапе настройки указываем мост по умолчанию, но при этом не используем DHCP, так-как в нашей сети уже есть DHCP-сервер, а вся виртуальная сеть плоский мост и следовательно LXC-контейнеры получат адрес от центрального DHCP-сервера.

# lxd init 
Would you like to use LXD clustering? (yes/no) [default=no]: 
Do you want to configure a new storage pool? (yes/no) [default=yes]: 
Name of the new storage pool [default=default]: 
Name of the storage backend to use (zfs, btrfs, ceph, cephobject, dir, lvm) [default=zfs]: dir
Would you like to connect to a MAAS server? (yes/no) [default=no]: 
Would you like to create a new local network bridge? (yes/no) [default=yes]: no
Would you like to configure LXD to use an existing bridge or host interface? (yes/no) [default=no]: yes
Name of the existing bridge or host interface: v-bridge
Would you like the LXD server to be available over the network? (yes/no) [default=no]: 
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]: 
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:

Контейнер LXD для запуска SoftEther Bridge

Создаем контейнер для запуска SoftEther Bridge.

# lxc launch ubuntu:24.04 srv-lxc-prod-rain-07

Настраиваем сеть в контейнере при помощи NetPlan.

network:
    version: 2
    ethernets:
        eth0:
          dhcp4: false
          dhcp6: false
          addresses:
            - 10.101.3.2/24
          routes:
            - to: default
              via: 10.101.3.1
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4]

Не забудьте разрешить Forward на хосте и проверьте доступность доступа в интернет из контейнера.

Установка SoftEther Bridge

Обратите внимание, что для SoftEther нет GUI клиента для Linux и вам придется или использовать консоль для управления или использовать отдельную машину с консолью установленной на OS Windows.

Загрузить SoftEther VPN Bridge можно по адресу https://www.softether.org/5-download. Для установки вам потребуется скачать архив, распаковать его и запустить .install из каталога с приложением. Но так-же обратите внимание, что вам необходимо установить дополнительно пакеты для сборки.

# apt-get install gcc make

Собираем и проводим тестовый запуск

# cd /opt/vpnbridge/
# ./.install.sh
# ./vpnbridge start

Останавливаем VpnBribge и делаем сервис для автозапуска при старте контейнера.

# ./vpnbridge stop

Сервис для автозапуска SoftEther (/etc/systemd/system/vpnbridge.service)

[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=forking
ExecStart=/opt/vpnbridge/vpnbridge start
ExecStop=/opt/vpnbridge/vpnbridge stop
# Optionally, add a delay to ensure the start process fully completes
# ExecStartPost=/bin/sleep 3s

[Install]
WantedBy=multi-user.target

Настраиваем автозапуск и запускаем.

# systemctl enable vpnbridge.service
# systemctl start vpnbridge.service
# systemctl status vpnbridge.service

Проброс портов до контейнера при помощи утилиты socat

Для проброса порта управления SoftEther (порт 5555) я использую утилиту socat которую запускаю в виде сервиса.

Скрипт для запуска утилиты /usr/local/bin/socat-start.sh

#!/bin/sh

/usr/bin/socat TCP-LISTEN:`echo $1 | awk -F"-" '{ print $2 }'`,fork TCP:`echo $1 | awk -F"-" '{ print $1 }'`:`echo $1 | awk -F"-" '{ print $2 }'`

Сервис запуска /etc/systemd/system/socat@.service

[Unit]
Description=Socat port forward for port %i

[Service]
ExecStart=/usr/local/bin/socat-start.sh %i
Type=simple

[Install]
WantedBy=multi-user.target

Пример запуска.

# systemctl start socat@10.101.2.3-5555.service
# systemctl enable socat@10.101.2.3-5555.service
# systemctl status socat@10.101.2.3-5555.service

Настройка подключения SoftEther VPN Bridge к SoftEther VPN Server

Настройка пользователя на сервере

Выбираем виртуальный хаб

Выбираем виртуальный хаб

Переходим в управление пользователями

Переходим в управление пользователями

Задаем имя пользователя и пароль для пользователя от имени которого будет происходить подключение сетевого моста

Задаем имя пользователя и пароль для пользователя от имени которого будет происходить подключение сетевого моста

Настройка подключения сетевого моста к серверу

Создаем подключение утилитой правления к сетевому мосту

Создаем подключение утилитой правления к сетевому мосту

Обратите внимание, что порт 5555 и пароль не указываем так-как его надо будет указать при первом подключении

Обратите внимание, что порт 5555 и пароль не указываем так-как его надо будет указать при первом подключении

Настраиваем соединение с использованием мастера настройки. Режим работы site-to-site.

 Режим работы site-to-site

Задаем параметры подключения от имени созданного сервисного пользователя.

Настройка подключения

Указываем центральный хост, имя пользователя и пароль.

Указываем центральный хост, имя пользователя и пароль.

Проверяем, что соединение установлено.

Проверяем, что соединение установлено.

Выбираем устройство к которому будем строить мост.

Выбираем устройство к которому будем строить мост.

Вот собственно и все настройки.

Теперь можно проверить, что LXD получет параметры IP с центрального DHCP-сервера и другие устройства в сети доступны.

root@srv-prod-rain-04:~# lxc launch ubuntu:24.04
Creating the instance
Instance name is: legible-krill           
Starting legible-krill
root@srv-prod-rain-04:~# lxc ls
+----------------------+---------+--------------------+------+-----------+-----------+
|         NAME         |  STATE  |        IPV4        | IPV6 |   TYPE    | SNAPSHOTS |
+----------------------+---------+--------------------+------+-----------+-----------+
| legible-krill        | RUNNING | 10.101.5.93 (eth0) |      | CONTAINER | 0         |
+----------------------+---------+--------------------+------+-----------+-----------+
| srv-lxc-prod-rain-07 | RUNNING | 10.101.3.2 (eth0)  |      | CONTAINER | 0         |
+----------------------+---------+--------------------+------+-----------+-----------+

Related Posts

Установка и настройка Zabbix-Proxy

Зачем вообще связывться с zabbix-proxy и тут может быть огромное количчество причин и основная, это отсутствие полноценной сетевой связанности между филиалами или неустойчивая работа канала связи. Следовательно мониторить состояние инфраструктуры…

NetPlan работа с сетевыми мостами

Netplan — это утилита для декларативной настройки сети в Linux (широко используется в Ubuntu, начиная с 17.04). Она преобразует YAML‑конфигурации в настройки для бэкенд‑систем (networkd или NetworkManager). Основные понятия Подготовка…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You Missed

Настройка SoftEther VPN Bridge

Установка и настройка Zabbix-Proxy

Установка и настройка Zabbix-Proxy
NetPlan работа с сетевыми мостами
Проект Rain (Часть первая)

Базовая настройка DHCP-сервера в Linux

Базовая настройка DHCP-сервера в Linux

Настройка лицензирования терминального сервера Windows (Windows Server 2025)

Настройка лицензирования терминального сервера Windows (Windows Server 2025)