Три способа работать с несколькими VPN без путаницы
Последовательное переключение, рабочее пространство для каждого клиента и общий шлюз требуют разного объёма координации. Выберите один и запишите передачу.
Два клиентских туннеля, один ноутбук и вкладка браузера, которая всё ещё авторизована там, где не должна. Сложная часть работы через несколько частных сетей — не подключение; это понимание того, какому контексту принадлежит окно при переключении. Рабочее пространство отвечает на этот вопрос: одна личность, один набор приложений, одна политика резолвера и одно место, куда смотреть, когда что-то разрешается неправильно. В плохой день это разница между пятиминутной правкой и утечкой данных.
Решите, одновременна ли работа
Если ответ нет, остановитесь здесь и используйте простейшую доступную схему. Одно одобренное подключение за раз, подключаемое и отключаемое через клиент, которому принадлежит профиль, устраняет целый класс отказов, прежде чем хоть один из них может произойти.
Именно одновременность повышает стоимость: перекрывающиеся префиксы, две политики резолвера и два набора состояния приложений нужно разделять намеренно, а не по времени.
Запишите требование честно, потому что желание избежать переподключения — не то же самое, что потребность в обеих сетях одновременно.
Последовательность — самая дешёвая схема
Последовательная работа не требует дополнительной инфраструктуры, а её режим отказа — устаревшая сессия, а не конфликт маршрутизации. Дисциплина в передаче: завершите операцию, закройте то, что держит подключение, отключитесь и подтвердите следующее подключение, прежде чем начать работу.
Вкладка браузера или терминал, которые остаются открытыми, не переносят свой сетевой контекст. Их следующий запрос идёт туда, куда машина маршрутизирует сейчас, и это может быть другой клиент.
Помечайте профили по клиенту, а не по протоколу, и держите владельца учётных данных видимым в имени профиля. Профиль с именем work2 ничего никому не говорит в момент поспешного переключения.
Преимущество этой схемы в том, что она поддаётся аудиту. В любой момент существует один сетевой контекст, и журнал показывает, когда он изменился.
Рабочее пространство на клиента стоит изоляции
Виртуальная машина или удалённая среда разработки на клиента собирает клиент, приложения и имена в одном месте. Переключение становится сменой окна, а не сменой сети, и два контекста не могут протечь друг в друга через заблудившийся маршрут.
Это не бесплатно. Теперь вы поддерживаете две или три системы, ставите на них патчи и решаете, где живут файлы и учётные данные. Виртуальная машина также выходит в интернет через хост, поэтому её внешний путь — по-прежнему путь вашего ноутбука.
Проверьте, что клиент и любая политика состояния устройства допускают эту среду, прежде чем строить на ней привычку. Клиент, который отказывается работать в виртуальной машине, — факт, который нужно обнаружить рано.
Общий шлюз — это инфраструктура
Отдельный маршрутизатор, несущий выбранный трафик, превращает проблему в проектирование сети. Он хорошо работает, когда нескольким людям нужна одна и та же клиентская сеть, и отказывает, когда кто-то относится к нему как к волшебной коробке, удерживающей каждого клиента отдельно.
Один шлюз, переключающий свой активный туннель, — это единый общий контекст с очередью, а не несколько независимых сетей. Назовите, кто может его менять, каким источникам он служит и что происходит, когда двум людям одновременно нужны разные клиенты. Без этого ответа шлюз становится источником простоев, которыми никто не владеет. Он также становится местом, где кто-то тихо отключает проверку, чтобы уложиться в срок.
Запишите передачу в запись
Запись не обязана быть изощрённой; она должна быть достаточно конкретной, чтобы кто-то другой мог её повторить. В Linux пространство имён — техническая версия той же идеи, со своими интерфейсами и собственной таблицей маршрутизации.
Эти команды создают пространство имён, запускают в нём команду и показывают, какие подключения сейчас держит настольный клиент:
sudo ip netns add customer-a
sudo ip netns exec customer-a ip route
nmcli connection show --active
Приложения по-прежнему нужно запускать внутри пространства имён, а конфигурация резолвера в нём — отдельный файл. Изоляция интерфейсов не изолирует буфер обмена, агент SSH или смонтированный общий ресурс, и именно эти утечки люди забывают.
Выберите наименьшую схему, которая сохраняет действительно нужное вам разделение, и держите переход видимым: заголовок окна, приглашение терминала, имя профиля и владелец учётных данных должны совпадать, прежде чем будет отправлен любой приватный запрос.