Настройка Space Gateway
Общие сведения
Space Gateway (шлюз подключения внешних пользователей) - это решение, позволяющее обеспечить удаленный доступ для пользователей виртуальных рабочих столов.
Подробнее о Space Gateway в архитектуре системы VDI и рекомендуемых схемах инсталляции для систем различного масштаба.
Установка Space Gateway
Установку Space Gateway необходимо выполнить в соответствии с инструкцией:
Технические требования к ВМ/ФМ для установки Space Gateway:
-
Оперативная память – не менее 4 Гб.
-
Количество ядер процессора – не менее 4.
-
Объем дискового пространства - не менее 30 ГБ.
-
Сетевой интерфейс – не менее 10 Гбит Ethernet, в количестве не менее одного.
Данная ВМ/ФМ с установленным шлюзом обеспечивает 1000 подключений.
Схемы работы шлюза
Возможны 2 схемы работы шлюза:
- Без NAT.
- С использованием NAT.
Подключение без NAT
Cхема непосредственного подключения к шлюзу (без NAT) используется при развёртывании всей инфраструктуры внутри локальной сети, если не предполагается доступ из Интернета.
В этом случае Публичный IP-адрес шлюза будет соответствовать Виртуальному IP-адресу.
В настройках диспетчера для полей Адрес шлюза и Виртуальный IP указывается одинаковый адрес.
Подключение с использованием NAT
Схема с NAT используется, если предполагается осуществлять подключение к инфраструктуре из Интернета.
В этом случае на маршрутизаторе должна быть выполнена трансляция Публичного IP-адреса на Виртуальный IP-адрес.
Публичный IP-адрес
Публичный IP-адрес - это адрес шлюза. Он прописывается в настройках диспетчера Настройки - Система - Шлюз в поле Адрес шлюза.
Подготовка
Виртуальный IP-адрес назначается на сетевой интерфейс с помощью программы Keepalived.
Конфигурирование (настройка) Keepalived выполняется шлюзом автоматически.
В этой конфигурации всегда будет использован первый сетевой интерфейс в системе.
Возможно добавление нескольких сетевых интерфейсов хосту шлюза. В этом случае также в качестве основного управляющего сетевого интерфейса будет использован первый сетевой интерфейс в системе.
Настройка
1. Проверка, запущены ли необходимые службы
sudo systemctl status vdi-gateway
sudo systemctl status keepalived
2. Просмотр настроек
-
Настройки хранятся в файле
/opt/vdi-gateway/app/settings.db. Это файл базы данных SQLite. Чтобы прочитать его, необходимо установить программуsqlite3:sudo apt install sqlite3 -
Открыть файл настроек:
sqlite3 settings.db -
Получить настройки, выполнив запрос:
select * from settings -
Настройки представляют собой строку
json:{"is_enabled":true,"internal_addrs":["10.254.150.132"],"ssl":false,"disp_addrs":["10.244.32.32"],"disp_port ":4200,"public_addr":"10.254.150.136","virtual_addr":"10.254.150.136","api_port":8000,"balancer_api_port":8002 ,"port_range_start":5900,"port_range_stop":5999,"api_key":"IVNGbmpzZGtmdWV3","cli_key":"U0ZuanNka2Z1ZXch"}
3. Проверка настроек Keepalived
-
Настройки Keepalived хранятся в файле
/etc/keepalived/keepalived.conf.Пример конфигурации Keepalived
global_defs { router_id gw } vrrp_script check_gateway { script "/usr/bin/systemctl is-active --quiet vdi-gateway" } vrrp_instance gateway { state BACKUP interface eth0 virtual_router_id 1 virtual_ipaddress { 10.254.32.222 } track_script { check_gateway } } # Распределение портов по метке 1 virtual_server fwmark 1 { lb_algo rr lb_kind NAT protocol TCP real_server 10.254.32.212 0 { weight 1 } }
4. Работа с API
Интерфейс API шлюза доступен на порте 8000. Дополнительная информация о портах.
В шлюзе есть эндпоинты. Одни предназначены для получения запросов от диспетчера, другие - от клиента.
Для выполнения http-запросов необходимо авторизоваться с помощью токена, который передается в заголовке запроса.
Для этого нажать кнопку Authorize
и ввести ключ авторизации api_key (для диспетчера) или cli_key (для клиента), значение которого можно получить из настроек:
-
api_keyтребуется для выполнения http-запросов от диспетчера:/v3/get_settings//v3/change_settings//v3/get_connections//v3/disconnect//v3/health/
-
cli_keyтребуется для выполнения http-запросов от клиента:/v3/open_connection//v3/connect/
5. Проверка работоспособности туннеля
На хосте шлюза в API выполнить запрос /v3/get_connections/.
В ответе запроса будет список всех соединений, запущенных на данном хосте.
6. Сброс всех запущенных соединений
Закрыть все запущенные соединения на хосте можно перезапуском службы шлюза:
sudo systemctl restart vdi-gateway.service
7. Версия Space Gateway
В интерфейсе работы с API рядом с заголовком Space Gateway отображается номер версии.
Версия 1.6.3 приведена в качестве примера, она может отличаться.
8. Вывод лога в реальном времени
Для мониторинга работы шлюза можно запустить вывод лога в реальном времени командой:
sudo journalctl -u vdi-gateway --follow





