Клиент туннеля установлен, профиль действителен, а помощник по-прежнему сбоит на команде brctl. Переустановка пакета VPN этого не исправляет, потому что отсутствующая программа не входит в туннель. Она входит в локальный скрипт моста, и скрипт требует инструмент, который текущая система больше не поставляет по умолчанию. Две проблемы кажутся связанными только потому, что скрипт запускается при подключении.

Отсутствующая вспомогательная программа — не неисправность туннеля

Начните с точного вызова и его окружения. Команда, которая есть в вашей интерактивной оболочке, может отсутствовать в ограниченном пути поиска службы, поэтому ошибка «не найдено» может означать две разные вещи. Запустите command -v brctl от имени пользователя службы и прочитайте юнит, который запускает скрипт с помощью systemctl cat openvpn-bridge-helper или его эквивалента. Текст ошибки обычно называет отсутствующий бинарный файл, и это имя — зависимость, которую нужно решить.

Переустановка клиента туннеля даёт туннель, а не утилиту моста. Это отдельные пакеты с отдельными сопровождающими.

Что делал brctl и почему он устарел

Инструмент создавал и администрировал мосты Ethernet в Linux: addbr создавал мост, а addif подключал порт. Руководство Debian помечает его устаревшим и указывает на мостовые инструменты iproute2, которые покрывают больше. Устаревший не значит удалённый везде, и наличие более нового инструмента не делает буквальный вызов brctl в скрипте успешным.

Значит, вопрос не в том, хорош ли brctl. Вопрос в том, поддерживается ли скрипт до сих пор и какой пакет, если он есть, поставляет для него ваш дистрибутив.

Два честных варианта: поддерживать или переносить

Поддерживать — значит установить документированную зависимость из поддерживаемого пакета вашего дистрибутива и подтвердить происхождение скрипта, ожидаемую версию и путь исполнения. Это удовлетворяет отсутствующий исполняемый файл и ничего больше: имена мостов, план адресов и поведение очистки в скрипте остаются непроверенными. Переносить — значит переписать предполагаемые операции под поддерживаемую конфигурацию сети. Создание моста, подключение портов, адресация хоста и активация звена — четыре отдельные изменения, а псевдоним в оболочке с brctl на другую утилиту не является переводом.

Эквиваленты в iproute2 коротки: ip link add name br-vpn type bridge создаёт мост, а ip link set tap0 master br-vpn подключает порт.

Запишите, какой вариант вы выбрали и кто владеет скриптом. Наполовину перенесённый помощник, который вызывает оба инструмента, хуже любого из них.

Посмотрите на проект моста прежде обоих

Мост Ethernet подходит проекту, которому нужны передача Ethernet и партнёры TAP. Установка мостовых утилит не превращает маршрутизируемое подключение TUN в мост, и поддерживаемый маршрутизируемый профиль не стоит гнуть под несвязанный скрипт. Если профиль маршрутизирует, выясните, почему помощник моста вообще запускается.

Прежде чем трогать настоящий мост, сохраните путь управления и определите единственного владельца конфигурации сети.

Затем прочитайте следующую ошибку после исправления зависимости. Локальная настройка моста, удалённая аутентификация и разрешённый трафик через результат — три отдельных исхода, и только один из них когда-либо касался brctl.

Похожие статьи