Управление аутентификацией и авторизацией пользователей требует обеспечения высокой доступности NAC-системы, т. к. в случае её отказа подключение пользователей и эндпоинтов станет невозможным.
Резервирование Eltex-NAICE выполняется по схеме Active-Active, каждая нода имеет свой собственный IP-адрес. В настройках сетевого оборудования потребуется настроить взаимодействие с двумя RADIUS/TACACS+ серверами. Определение недоступности сервиса будет выполняться со стороны сетевого оборудования. Для настройки схемы с резервирование требуется выделить 4 виртуальных (или физических) сервера: 2 для функционирования сервисов NAICE, 2 для функционирования СУБД PostgreSQL, отвечающей за хранение данных.
Установка обновлением схемы с резервированием на хост, который ранее использовался для работы системы в однохостовом режиме не допускается |
Порядок действий при переходе с однохостовой схемы на схему с резервированием описан в v1.2_3.9.3 Обновление PostgreSQL при переходе со схемы с однохостовой установкой на схему с резервированием.

Для лицензирования схемы с резервированием требуется две лицензии для каждого из хостов NAICE. Лицензии должны иметь уникальные Product ID, но одинаковый ключ лицензии. |
|
Системные требования к серверам описаны в разделе "Установка с резервированием" статьи v1.2_3.1 Системные требования
Возможна онлайн и оффлайн установка.
Установка онлайн возможна на все поддерживаемые типы ОС и описана далее.
Оффлайн установка (закрытый контур) описана в разделе v1.2_3.6.1 Установка схемы с резервированием в закрытом контуре (без использования VRRP)
Для выполнения онлайн установки требуется обеспечить с хостов, на которые выполняется установка, прямой доступ в сеть Интернет (без использования прокси-сервера или иных способов, которые вызывают подмену сертификатов конечных сайтов, к которым выполняется обращение в ходе установки). |
Требуется указывать IP-адреса целевых серверов при выполнении установки! Использование доменных имен не допускается! |
Установка выполняется с помощью двух плейбуков ansible:
install-postgres-cluster.yml.geo-naice-services.yml.Адреса целевых хостов, на которых будет выполнятся установка, определяются в файле inventory/hosts-geo.yml.
Для СУБД PostgreSQL необходимо задать адреса в разделе postgres-cluster:
# Группа хостов для установки postgres-cluster (primary + standby)
postgres-cluster:
hosts:
node_primary:
ansible_host: <IP-адрес хоста-1 PostgreSQL>
ansible_port: 22
ansible_user: <логин пользователя>
ansible_ssh_pass: <пароль пользователя>
ansible_become_password: <пароль для повышения привилегий (sudo)>
forwarded_postgresql_port: 5432
forwarded_ssh_port: 15432
node_standby:
ansible_host: <IP-адрес хоста-2 PostgreSQL>
ansible_port: 22
ansible_user: <логин пользователя>
ansible_ssh_pass: <пароль пользователя>
ansible_become_password: <пароль для повышения привилегий (sudo)>
forwarded_postgresql_port: 5432
forwarded_ssh_port: 15432 |
Для установки сервисов NAICE с резервированием необходимо задать адреса в разделе geo:
# Группа хостов для установки NAICE с резервированием
geo:
hosts:
master_host:
ansible_host: <IP-адрес хоста 1 для NAICE>
ansible_port: 22
ansible_user: <логин пользователя>
ansible_ssh_pass: <пароль пользователя>
ansible_become_password: <пароль для повышения привилегий (sudo)>
backup_host:
ansible_host: <IP-адрес хоста 2 для NAICE>
ansible_port: 22
ansible_user: <логин пользователя>
ansible_ssh_pass: <пароль пользователя>
ansible_become_password: <пароль для повышения привилегий (sudo)> |
При выполнении онлайн установки не требуется указывать данные для доступа к хосту, на котором запускается плейбук в разделе Local actions. Данный раздел используется только при выполнении установки в закрытом контуре. |
Для сервисов NAICE используются три Docker-сети:
Переменные для настройки Docker-сетей находятся в файле group_vars/networks.yml. В нём задаются подсеть, диапазон IP‑адресов и шлюз для каждой сети.
Пример содержимого файла group_vars/networks.yml:
--- # Переменные для настройки Docker сети docker_network_unmasked: subnet: "172.18.0.0/20" ip_range: "172.18.8.0/21" gateway: "172.18.0.1" docker_network_external: subnet: "172.20.0.0/20" ip_range: "172.20.8.0/21" gateway: "172.20.0.1" docker_network_internal: subnet: "172.21.0.0/20" ip_range: "172.21.8.0/21" gateway: "172.21.0.1" |
В примере приведены значения по умолчанию. Если сети пересекаются с существующими сетями в вашей инфраструктуре, то требуется заменить сети в файле group_vars/networks.yml перед установкой NAICE. Инструкция по смене Docker-сетей на уже установленном NAICE приведена в статье V1.2_ru_3.15 Смена Docker-сетей.
Выполнить плейбук:
ansible-playbook install-postgres-cluster.yml -i inventory/hosts-geo.yml |
Результатом выполнения плейбука будет установка СУБД PostgreSQL в кластере на серверах, указанных в node_primary и node_standby. Мастер-нода кластера будет находиться на хосте node_primary.
Проверка состояния кластера PostgreSQL после установки описана в инструкции Диагностика состояния кластера БД PostgreSQL.
Перед установкой необходимо убедиться, что роль Primary принадлежит ноде PostgreSQL, указанной в переменной node_primary "ansible_host". При необходимости выполнить переключение роли Primary. В противном случае установка не сможет быть завершена. |
В настройках подключения к БД сервисов NAICE указываются оба адреса БД, а запись в БД возможна только через Primary-сервер. Обязательным условием является использование в URL параметра
Адреса взаимодействия с БД берутся из значения ansible_host из раздела postgres-cluster файла |
Для установки необходимо выполнить плейбук:
ansible-playbook geo-naice-services.yml -i inventory/hosts-geo.yml |
После завершения установки кластера NAICE контейнеры на обоих нодах должны находиться в состоянии healthy.
На хостах зайти в папку установки (по умолчанию /etc/docker-naice) и убедиться, что контейнеры запущены.
$ sudo docker compose ps -a NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS epg-service naice-build-hosted.registry.eltex.loc/naice/epg-service:1.3-2 "/bin/sh -e /usr/loc…" epg-service 6 minutes ago Up 5 minutes (healthy) naice-aquila naice-release.registry.eltex.loc/naice-aquila:1.2 "java -cp @/app/jib-…" naice-aquila About a minute ago Up About a minute (healthy) 0.0.0.0:8091->8091/tcp, [::]:8091->8091/tcp, 0.0.0.0:49->1049/tcp, [::]:49->1049/tcp naice-bubo naice-release.registry.eltex.loc/naice-bubo:1.2 "java -cp @/app/jib-…" naice-bubo 5 minutes ago Up 3 minutes (healthy) 0.0.0.0:8093->8093/tcp, [::]:8093->8093/tcp naice-castor naice-release.registry.eltex.loc/naice-castor:1.2 "java -Djava.awt.hea…" naice-castor 5 minutes ago Up 3 minutes (healthy) 0.0.0.0:8095->8095/tcp, [::]:8095->8095/tcp naice-cetus naice-release.registry.eltex.loc/naice-cetus:1.2 "java -cp @/app/jib-…" naice-cetus 5 minutes ago Up 3 minutes (healthy) 0.0.0.0:8099->8099/tcp, [::]:8099->8099/tcp naice-gavia naice-release.registry.eltex.loc/naice-gavia:1.2 "java -cp @/app/jib-…" naice-gavia 5 minutes ago Up About a minute (healthy) 0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp naice-gulo naice-release.registry.eltex.loc/naice-gulo:1.2 "java -cp @/app/jib-…" naice-gulo 5 minutes ago Up 3 minutes (healthy) 0.0.0.0:8089->8089/tcp, [::]:8089->8089/tcp naice-lemmus naice-release.registry.eltex.loc/naice-lemmus:1.2 "java -cp @/app/jib-…" naice-lemmus 5 minutes ago Up 3 minutes (healthy) 0.0.0.0:8083->8083/tcp, [::]:8083->8083/tcp naice-lepus naice-release.registry.eltex.loc/naice-lepus:1.2 "java -cp @/app/jib-…" naice-lepus 5 minutes ago Up 3 minutes (healthy) 0.0.0.0:8087->8087/tcp, [::]:8087->8087/tcp, 0.0.0.0:67->1024/udp, [::]:67->1024/udp naice-mustela naice-release.registry.eltex.loc/naice-mustela:1.2 "java -cp @/app/jib-…" naice-mustela 5 minutes ago Up 3 minutes (healthy) 0.0.0.0:8070->8070/tcp, [::]:8070->8070/tcp naice-nats naice-build-hosted.registry.eltex.loc/naice/nats:1.2.2 "docker-entrypoint.s…" nats 6 minutes ago Up 5 minutes (healthy) 4222/tcp, 6222/tcp, 7777/tcp, 8222/tcp naice-ovis naice-release.registry.eltex.loc/naice-ovis:1.2 "java -cp @/app/jib-…" naice-ovis 5 minutes ago Up 3 minutes (healthy) 0.0.0.0:8084->8084/tcp, [::]:8084->8084/tcp naice-phoca naice-release.registry.eltex.loc/naice-phoca:1.2 "java -cp @/app/jib-…" naice-phoca 6 minutes ago Up 5 minutes (healthy) 0.0.0.0:8097->8097/tcp, [::]:8097->8097/tcp naice-radius naice-release.registry.eltex.loc/naice-radius:1.2 "/docker-entrypoint.…" naice-radius 4 minutes ago Up 4 minutes (healthy) 0.0.0.0:1812-1813->1812-1813/udp, [::]:1812-1813->1812-1813/udp, 0.0.0.0:9812->9812/tcp, [::]:9812->9812/tcp naice-sterna naice-release.registry.eltex.loc/naice-sterna:1.2 "/docker-entrypoint.…" naice-sterna About a minute ago Up About a minute (healthy) 0.0.0.0:32888->80/tcp, [::]:32888->80/tcp, 0.0.0.0:8443->444/tcp, [::]:8443->444/tcp naice-ursus naice-release.registry.eltex.loc/naice-ursus:1.2 "java -cp @/app/jib-…" naice-ursus 5 minutes ago Up 4 minutes (healthy) 0.0.0.0:8081->8081/tcp, [::]:8081->8081/tcp naice-vulpus naice-release.registry.eltex.loc/naice-vulpus:1.2 "java -cp @/app/jib-…" naice-vulpus 5 minutes ago Up 3 minutes (healthy) 0.0.0.0:8086->8086/tcp, [::]:8086->8086/tcp naice-web naice-release.registry.eltex.loc/naice-web:1.2 "/docker-entrypoint.…" naice-web About a minute ago Up 59 seconds (healthy) 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:32889->80/tcp, [::]:32889->80/tcp, 0.0.0.0:80->4200/tcp, [::]:80->4200/tcp |
В нормальном состоянии системы функционируют все четыре хоста.

При отказе хоста NAICE 1 будут автоматически выполнены следующие действия:
Для уточнения поведения сетевого оборудования при работе с двумя хостами RADIUS/TACACS+ серверов и корректности настройки необходимо обратиться к документации данного оборудования! |

При отказе хоста БД 1 будут автоматически выполнены следующие действия:

В случае полной утраты одного из хостов требуется предварительно восстановить стартовое состояние: развернуть ОС, настроить IP-адресацию и пользователей, как было ранее, и выполнить процедуру восстановления.
На оставшейся в работе ноде выполнить резервное копирование данных в соответствии с инструкцией: v1.2_3.10 Создание резервной копии данных БД и восстановление данных БД.
Повторно развернуть хост для вышедшей из строя ноды кластера с прежней ОС, адресацией и пользователем.
Выполнить плейбук:
ansible-playbook install-postgres-cluster.yml -i inventory/hosts-geo.yml |
После завершения плейбука проверить состояние кластера БД PostgreSQL, убедиться в его работоспособности и проверить работу авторизации и корректности настроек в GUI.
Повторно развернуть хост для вышедшей из строя ноды кластера с прежней ОС, адресацией и пользователем.
Выполнить плейбук:
ansible-playbook geo-naice-services.yml -i inventory/hosts-geo.yml |
При повторном выполнении установки будет выполнен перезапуск всех сервисов NAICE, что приведет к кратковременному (до 5 мин) перерыву в работе комплекса. Необходимо это учитывать при проведении работ по восстановлению. |
После восстановления убедиться в работе авторизации и корректной работе всех сервисов.