В крупных локальных сетях, где внедрена защищенная IT инфраструктура и используется несколько аппаратных ключей защиты Sentinel HASP (например, серии ORGL8 на 10 и 20 пользователей), часто возникает ситуация, когда один и тот же компьютер при запуске нескольких экземпляров программы 1С:Предприятие потребляет лицензии с разных ключей одновременно. Это приводит к преждевременному исчерпанию лимита лицензий и невозможности работы других пользователей.
Рассмотрим природу этой проблемы и разберем по шагам, опираясь на справочник по администрированию Windows/Linux, как настроить систему так, чтобы один компьютер занимал ровно одну лицензию вне зависимости от количества запущенных информационных баз.
Проанализируем ситуацию: по умолчанию клиентское приложение 1С ищет ключи защиты с помощью широковещательного запроса (Broadcast) по протоколу UDP на порт 475. Если в сети находятся два сервера лицензий (в нашем случае на базе CentOS 7), клиент может получить ответ от обоих. Правило "одна лицензия на один компьютер" безукоризненно работает только в рамках одного менеджера лицензий (HASP License Manager). Если первый экземпляр 1С "зацепился" за сервер А, а второй экземпляр (из-за микрозадержек сети или особенностей широковещания) отправил запрос и получил ответ от сервера Б, система защиты посчитает их разными сессиями в разных "корзинах" лицензий. В итоге будут списаны две лицензии вместо одной.
Также важно учитывать фактор имен серверов. Если на обоих Linux-серверах менеджеры лицензий имеют одинаковые имена по умолчанию, это вносит путаницу в кэширование ответов клиентской частью защиты.
Первым делом нам необходимо жестко ограничить область поиска ключей для клиентских машин. Вместо непредсказуемого широковещания мы будем использовать прямое обращение по IP-адресам. Найдем файл nethasp.ini. В Windows он обычно располагается в папке C:\Program Files\1cv8\conf\ или в папке с конкретной версией платформы. В Linux (если используются тонкие клиенты) — в каталоге установки 1С (автоматизировать процесс развертывания поможет сценарий установки 1С).
Отредактируем секцию [NH_TCPIP] следующим образом:
[NH_COMMON]
NH_TCPIP = Enabled
[NH_TCPIP]
; Указываем конкретные IP-адреса серверов, где установлены ключи
NH_SERVER_ADDR = 192.168.1.10, 192.168.1.11
; Отключаем широковещательный поиск
NH_USE_BROADCAST = Disabled
; Устанавливаем протокол TCP для стабильности
NH_TCPIP_METHOD = TCP
; Ограничиваем время ожидания ответа
NH_SESSION_TIMEOUT = 5
NH_SEND_RCV_TIMEOUT = 5
Разберем подробнее, что дают эти настройки. Параметр NH_SERVER_ADDR заставляет 1С обращаться только к указанным узлам. Отключение NH_USE_BROADCAST гарантирует, что программа не будет пытаться "кричать" в сеть в поисках других ключей. Это не только решает проблему с дублированием лицензий, но и значительно ускоряет запуск 1С, так как исключаются таймауты при ожидании ответов от несуществующих серверов.
Теперь перейдем к настройке серверов на CentOS 7. Чтобы менеджеры лицензий корректно идентифицировались в сети, им нужно присвоить уникальные имена. Это делается в файле конфигурации hasplm.ini (обычно он находится в /etc/hasplm/hasplm.ini или создается вручную в директории бинарного файла).
На первом сервере пропишем:
[NHS_SERVER]
NHS_SERVERNAMES = HASP_SERVER_1
На втором сервере:
[NHS_SERVER]
NHS_SERVERNAMES = HASP_SERVER_2
После внесения изменений обязательно перезапустим службу менеджера лицензий командой:
systemctl restart hasplm (или аналогичной, в зависимости от способа установки драйвера).
Присвоение уникальных имен позволяет механизму защиты на стороне клиента четко понимать, что HASP_SERVER_1 и HASP_SERVER_2 — это разные сущности. В сочетании с настройками nethasp.ini это минимизирует риск ошибочного захвата лицензий из разных источников.
Для мониторинга и тонкой настройки на серверах Linux рекомендуем использовать веб-интерфейс Sentinel Admin Control Center. По умолчанию он доступен по адресу http://localhost:1947. Если вам нужен удаленный доступ к этой панели, в файле hasplm.ini проверьте права доступа.
В интерфейсе ACC мы можем выполнить следующие действия:
nethasp.ini для современных версий драйверов.Проанализируем ситуацию, если на предприятии используются и аппаратные, и программные лицензии. 1С всегда следует строгому алгоритму поиска:
nethasp.ini).Важный момент: если вы хотите, чтобы лицензии выдавал именно клиент (для экономии серверных лицензий или при работе в терминальном режиме), убедитесь, что в настройках информационной базы (в консоли администрирования или при запуске) не стоит приоритет "Разрешить выдачу лицензий сервером 1С".
Для стабильной работы системы защиты рекомендуется:
nethasp.ini.Таким образом, решив проблему с широковещательными запросами и именами серверов, мы приводим систему лицензирования к предсказуемому состоянию, обеспечивая существенную экономию аппаратных лицензий.