Последнее
  • L2Bridge L2Bridge — кроссплатформенное приложение для объединения удалённых Ethernet-сегментов в единую виртуальную L2-сеть поверх UDP. Соединения защищены криптографической аутентификацией, а передаваемый трафик шифруется. ПАРАМЕТРЫ ДЛЯ РЕЖИМА…
  • Сервера облачного гейминга Игровые серверы доступны на платформе MTS Fog Play. Запускайте современные игры даже на слабом ПК — вся нагрузка выполняется на мощном игровом оборудовании, а вам…
  • Killing Floor 2 Проект представляет собой набор серверов Killing Floor 2, ориентированный на стабильную и долговременную работу. На данный момент доступно 22 игровых сервера с различными режимами. Основу составляют серверы с…
  • Bat скрипт для быстрой…   Принцип работы со скриптом: запускаем скрипт от имени администратора (актуально для семейства Windows старше XP) вводим адрес ntp сервера который хотим задать вводим время…
  • Поддержка ipv6   Теперь ко всем серверам нашего ресурса, поддерживающих данную возможность, можно получить доступ по протоколу ipv6.   P.S. Оценить работу сайта по протоколу ipv6 можно,…
Разработка / Сервисы

L2Bridge

L2Bridge — кроссплатформенное приложение для объединения удалённых Ethernet-сегментов в единую виртуальную L2-сеть поверх UDP. Соединения защищены криптографической аутентификацией, а передаваемый трафик шифруется.

Лог изменений

Репозиторий проекта L2Bridge
BodGit ↗
Блок схема взаимодействия
Справка по ключам
ПАРАМЕТРЫ ДЛЯ РЕЖИМА СЕРВЕРА
-server Активировать режим выделенного L2-коммутатора (сервера)
-host string Сетевой интерфейс для привязки сокета (дефолт: «0.0.0.0»)
-port string UDP порт для приема подключений (дефолт: «25000»)
-pool string Диапазон виртуальных IP для выдачи узлам (дефолт: «10.50.0.0/16»)
-bwl string Лимит пропускной способности общий/на клиента в Мбит/с (дефолт: 10/3)
-key string Приватный ключ сервера Ed25519 в Hex (32 байта/64 символа)
ПАРАМЕТРЫ ДЛЯ РЕЖИМА КЛИЕНТА
-remote string IP или домен сервера (дефолт: зашит в программу). Порт можно не указывать (дефолт: 25000)
-room string Идентификатор игровой комнаты для изоляции трафика (дефолт: «PUBLIC»)
ПАРАМЕТРЫ ОТЛАДКИ
-debug Включить подробные отладочные логи
ВНУТРЕННИЕ СИСТЕМНЫЕ ПАРАМЕТРЫ
-service Используется ОС при автозапуске в качестве службы Windows
ИНФОРМАЦИОННЫЕ
-help Справка по ключам
-verison Версия сборки

L2-сеть

  • Unicast
  • Broadcast
  • Multicast
  • Unknown Unicast
  • MAC learning
  • Forwarding Database (FDB)

Виртуальные комнаты

Изоляция подключений с помощью RoomID. Каждая комната представляет собой отдельную виртуальную L2-сеть, поэтому клиенты разных комнат не видят трафик друг друга.

Блок схема комнат

Защищённый транспорт

  • Ed25519 handshake
  • X25519 ECDH
  • ChaCha20-Poly1305
  • SessionID validation
  • MachineID binding

Управление трафиком

  • Ограничение пропускной способности
  • Ограничение PPS для клиентов и сервера
  • Ограничение L2 Flood-трафика
  • Token Bucket
  • Контроль burst-нагрузки
  • Защита от злоупотреблений

IPv4 / IPv6

  • IPv4
  • IPv6
  • Dual-stack UDP
  • Поддержка нескольких публичных IP-адресов сервера

Windows

Запуск cервера

Терминал:
C:\l2bridge_windows_amd64.exe -server -port 25000 -pool 10.50.0.0/16
Службы:
sc create L2Bridge binPath="C:\l2bridge_windows_amd64.exe -server -port 25000 -pool 10.50.0.0/16 -service" start=auto && sc start L2Bridge

Запуск клиента

Терминал:
C:\l2bridge_windows_amd64.exe -remote 1.2.3.4:25000 -room test
Службы:
sc create L2Bridge binPath="C:\l2bridge_windows_amd64.exe -remote 1.2.3.4:25000 -room test -service" start=auto && sc start L2Bridge
Ярлык:
"C:\l2bridge_windows_amd64.exe" -remote 1.2.3.4:25000 -room test
Создание ярлыка

Linux

Запуск cервера

Терминал:
sudo ./l2bridge_linux_amd64 -server -port 25000 -pool 10.50.0.0/16
Systemd > /etc/systemd/system/l2bridge.service:
[Unit]
Description=L2 Bridge Server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
LogsDirectory=%N
LogsDirectoryMode=0750
ExecStart=/usr/bin/l2bridge_linux_amd64 -server
Restart=always
RestartSec=3
StandardOutput=append:/var/log/%N/%N.log
StandardError=append:/var/log/%N/%N-error.log
[Install]
WantedBy=multi-user.target

Запуск клиента

Терминал:
sudo ./l2bridge_linux_amd64 -remote 1.2.3.4:25000 -room "test"
Кнопка запуска:
sudo /usr/local/bin/l2bridge_linux_amd64 -room test
Создание кнопки запуска

Написать ответ

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


7 + 3 =