Space Gateway
Общие сведения
Space Gateway (шлюз подключения внешних пользователей) - это решение, позволяющее обеспечить удаленный доступ для пользователей виртуальных рабочих столов.
Space Gateway является компонентом экосистемы Space и одним из элементов Space VDI. Шлюз подключений внешних пользователей предоставляет доступ к внутренним ресурсам через единую точку входа при подключении к удаленным рабочим столам по протоколам RDP и GLINT из внешней сети по отношению к внутренней сети инфраструктуры Space VDI.
Шлюз устанавливает соединение между Space Client и ВМ/ФМ, а также выступает посредником в передаче данных между Space Client и Space Disp, обеспечивая дополнительную функциональность и перенаправление портов.
Подробнее о Space Gateway в архитектуре системы VDI и рекомендуемых схемах инсталляции для систем различного масштаба.
Технические требования к ВМ/ФМ для установки
На каждую 1000 подключений через шлюз необходимо обеспечить ВМ/ФМ с установленным шлюзом:
-
Оперативная память – не менее 4 Гб.
-
Количество ядер процессора – не менее 4.
-
Объем дискового пространства - не менее 30 ГБ.
-
Сетевой интерфейс – не менее 10 Гбит Ethernet, в количестве не менее одного.
Установка с помощью qcow2
Установочный образ
Образ ВМ (в формате qcow2) с установленным шлюзом подключений внешних пользователей и данные для доступа предоставляются по запросу через личный кабинет.
Внимание
Повторное использование шлюза с другим экземпляром Space Disp не допускается.
Для установки шлюза подключений внешних пользователей необходимо:
-
Скачать любым удобным способом образ ВМ, предоставленный по запросу в ЛК.
-
Открыть Web-интерфейс SpaceVM и выполнить вход в систему.
-
Перейти в раздел Хранилища - Файлы и нажать
Загрузить из файловой системы. -
В открывшемся окне необходимо выбрать файл, пул данных и подтвердить выбор кнопкой ОК.
-
Убедиться, что файл успешно загружен и исправен.
-
Перейти к подробной информации о файле, нажав на его название.
-
Нажать Импортировать.
-
В открывшемся окне настроить импорт файла в диск и подтвердить кнопкой ОК.
-
Убедиться, что файл успешно импортирован в диск и исправен.
-
Создать ВМ, соответствующую требованиям, согласно инструкции.
На втором шаге создания ВМ (Добавление виртуального диска) необходимо добавить диск, импортированный ранее из файла.
Установка ОС
Установка ОС не требуется. Файл (импортированный в диск), полученный в личном кабинете, уже содержит установленную ОС и шлюз подключений внешних пользователей.
-
Убедиться, что ВМ с установленным шлюзом исправна.
-
Проверить и сохранить IP-адрес ВМ с установленным шлюзом для дальнейшей настройки.
При использовании нескольких интерфейсов необходимо сохранить каждый из адресов.
Обновление
Актуальная версия шлюза
Актуальная версия шлюза подключений внешних пользователей предоставляется по запросу через личный кабинет.
Для обновления шлюза подключений внешних пользователей необходимо:
-
Запросить файл с установленным шлюзом актуальной версии.
-
В интерфейсе Space Disp отключить использование шлюза внешних подключений.
-
Загрузить файл в SpaceVM, импортировать в диск и подключить к ВМ со шлюзом.
Диск, подключенный ранее (не актуальная версия), необходимо удалить.
-
В интерфейсе Space Disp включить использование шлюза внешних подключений.
Внимание
Требуется повторное применение настроек после обновления.
Описание процесса установки/обновления
Совместно с vdi-gateway устанавливаются его зависимости:
- python3.
- keepalived.
- logrotate.
- console-cyrillic.
- space-cli.
Далее происходит настройка systemd службы и настраивается logrotate.
Параметры службы:
- Рабочая директория: /opt/vdi-gateway/app
- Пользователь: root
- Порт: 8000
- Логи: в файле /opt/vdi-gateway/journal.log
Примечание
Службы logrotate и keeplived запускаются от root.
Служебные порты
Для корректной работы шлюза внешних подключений необходимо предоставить доступ к указанным портам.
Порты для доступа
| Порт | Описание | Внутренняя сеть | Балансировщик |
|---|---|---|---|
| 8000 | внутренний порт API-управления шлюзом | + | + |
| 4300 | туннель между шлюзом и диспетчером без привязки к ВМ | + | + |
| 443 | порт подключения тонкого клиента к шлюзу | - | + |
| 8002 | порт клиента с балансировщиком шлюза | + | + |
| 8003 | статистика | + | + |
| 5900-5999* | порты для подключения к ВМ по умолчанию | + | + |
| 3240 | порты для перенаправления USB-устройств | + | + |
*- данные порты установлены по умолчанию и являются конфигурируемыми, необходимо открыть доступ для диапазона, который используется Space Disp.
Внимание
Не допускается использование служебных портов при конфигурации диапазона портов для подключения к ВМ и ФМ.
При подключении Space Client к Space Disp через шлюз подключения внешних пользователей необходимо обеспечить каждому соединению 2 порта:
-
Для протокола удаленного доступа.
-
Для перенаправления USB-устройств (USB-IP).
Конфигурация
Общие сведения
Шлюз подключений внешних пользователей не подразумевает отдельной конфигурации пользователем. При вводе настроек на диспетчере настройки шлюзов применяются автоматически. Ранее добавленные шлюзы выключаются. Если в процессе конфигурации шлюза допущена ошибка, то он выключается, а ранее добавленный - включается, при этом диспетчер применяет верную конфигурацию.
Продолжительность конфигурации не должна превышать несколько минут.
Масштабирование и отказоустойчивость
Для отказоустойчивости рекомендуется использовать несколько экземпляров шлюза. При недоступности или выходе из строя одного или нескольких экземпляров, при условии, что один экземпляр исправен, система сохранит работоспособность.
Создание и использование более одного экземпляра шлюза внешних подключений пользователя не является обязательным условием, но рекомендуется две ВМ для отказоустойчивости и распределения нагрузки.
Режим мультишлюза и балансировка нагрузки
Внимание
Функционал является экспериментальным.
При возникновении ошибок рекомендуется обратиться к Авторизованному Центру Технической Поддержки производителя. Центр предоставляет поддержку по вопросам установки, настройки и функционирования продуктов экосистемы Space.
Благодаря использованию виртуального IP-адреса и балансировщика нагрузки шлюз может быть запущен на нескольких хост-машинах, объединенных одним виртуальным IP-адресом.
Балансировщик нагрузки на шлюзе реализован на базе Linux Virtual Server (LVS) — это модуль ядра Linux, который поддерживает балансировку как TCP-, так и UDP-трафика. LVS интегрируется с Keepalived для настройки и управления правилами балансировки. Keepalived также обеспечивает высокую доступность через протокол VRRP, позволяя шлюзу переключаться между хостами с помощью перенаправления виртуального IP.
Входящий трафик на шлюзах маркируется с помощью iptables и ipset на основе портов, а затем LVS распределяет этот трафик по хостам шлюза, заранее определяя, какие хосты обслуживают конкретные порты.
Особенности работы:
-
Все запросы от диспетчера и клиента (кроме изменения конфигурации шлюза) обрабатываются через балансировщик и публичный IP-адрес шлюза.
-
Запрос, пришедший на хост, за которым закреплен публичный IP-адрес, автоматически балансируется средствами Linux Virtual Server на случайный хост-шлюз.
Логирование и диагностика:
Для проверки состояния компонентов шлюза используются команды:
systemctl status vdi-gateway— состояние службы шлюза.systemctl status keepalived— состояние службы виртуального IP.
Настройка со стороны Space Disp
Для настройки необходимо перейти в основной раздел меню Настройки - Система - Шлюз и нажать Редактировать.
-
Переключатель Шлюз.
Отвечает за состояние шлюза.
-
Начало диапазонов портов и Конец диапазонов портов.
Внимание
Не допускается использование служебных портов при конфигурации диапазона портов для подключения к ВМ и ФМ.
Определяют, какой диапазон портов будет использоваться при подключении к ВМ шлюзом для передачи.
Если диапазон, например, 5900-5901, то будут задействованы только два указанных порта. Другие порты подключения не будут задействованы.
Диапазон портов рекомендуется рассчитывать на каждое соединение и заведомо задавать больше планируемого к использованию.
-
Адрес шлюза.
Адрес, по которому будет выполняться подключение Space Client. Этот адрес указывается и в настройках клиента для подключения через шлюз.
Если настроен NAT, то необходимо указывать публичный адрес.
Если NAT не используется, значения параметров Адрес шлюза и Виртуальный IP должны совпадать.
Внимание
При настройке NAT на маршрутизаторе для работы со шлюзом публичный адрес должен транслироваться на виртуальный IP.
-
Виртуальный IP.
Адрес, по которому будет осуществляться взаимодействие с несколькими экземплярами шлюза.
Виртуальный IP автоматически назначается одному из экземпляров шлюза (этот экземпляр будет выполнять роль балансировщика).
Если балансировщик недоступен или вышел из строя, виртуальный IP автоматически назначается другому экземпляру шлюза.
-
Внутренние адреса.
Адреса экземпляров шлюза (IP-адреса или FQDN-адреса ВМ с установленным шлюзом).
Внимание
При использовании на ВМ со шлюзом нескольких сетевых интерфейсов необходимо, чтобы значение в поле Внутренние адреса совпадало с адресом первого сетевого интерфейса ВМ со шлюзом.
-
Адреса диспетчера.
Адреса узлов Space Disp в роли Leader и Manager (IP-адреса или FQDN-адреса).
Для применения настроек необходимо нажать Сохранить изменения.
В журнале событий фиксируются события с общими сведениями, предупреждения и ошибки.
Space CLI
Space CLI недоступно на шлюзе установленном в формате deb-пакета.
Для шлюза внешних подключений доступен набор команд в Space CLI.
Смена сертификатов
Для изменения сертификатов необходимо выполнить замену ключей vdidefault.crt и vdidefault.key
в каталоге /opt/vdi-gateway/app/vdi_ssl/ новыми, сохранив прежние названия.
После изменения сертификатов необходимо перезапустить службу.
Перенаправление устройств
Перенаправление USB-устройств и Web-камеры описано в документации Space Client.
Логирование
Для управления логированием шлюза необходимо:
-
Подключиться к ВМ с установленным шлюзом и авторизоваться учетными данными.
-
Включить системную консоль командой:
bash -
Выполнить команду:
sudo journalctl -u vdi-gateway
Для просмотра событий в реальном времени выполнить команду:
sudo journalctl -u vdi-gateway --follow
Для сохранения в файл выполнить команду:
sudo journalctl -u vdi-gateway > log.txt
Лог шлюза доступен в файле /opt/vdi-gateway/journal.log.

