Как настроить раздачу лицензий 1С при использовании двух аппаратных ключей HASP и файлов nethasp.ini?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В сетевой инфраструктуре 1С:Предприятия нередко возникает ситуация, когда на разных серверах установлены многопользовательские USB-ключи защиты HASP (например, один ключ на 100 лицензий, а второй на 5 лицензий). Администраторы часто сталкиваются с проблемой: клиенты успешно берут лицензии с одного сервера, но когда они заканчиваются, автоматического переключения на второй доступный ключ не происходит, и пользователи получают ошибку о нехватке лицензий. Разберем по шагам, почему возникает такое поведение, как правильно сконфигурировать менеджеры лицензий и какие существуют практические способы решения этой проблемы.

Анализ алгоритма работы сетевого драйвера HASP

Для понимания сути проблемы выясним причину, по которой клиент 1С не переключается на второй ключ. Алгоритм сетевого драйвера HASP при опросе менеджеров лицензий (HASP License Manager) работает следующим образом:

  1. Клиентское приложение считывает список адресов или имен менеджеров из файла nethasp.ini.
  2. Клиент опрашивает первый менеджер в списке. Если служба менеджера лицензий доступна по сети и отвечает на запрос, между клиентом и сервером лицензирования устанавливается контакт.
  3. Если на этом первом менеджере все доступные лицензии заняты другими пользователями, он возвращает клиенту статус об отсутствии свободных мест.
  4. Ключевая особенность: получив официальный ответ от менеджера о том, что лицензии исчерпаны, драйвер защиты прекращает дальнейший поиск и возвращает ошибку пользователю. Опрос следующего IP-адреса из списка выполняется драйвером только в случае полного отсутствия сетевого ответа (таймаут соединения или остановленная служба).

Таким образом, аппаратные ключи одной серии не умеют динамически суммироваться или балансировать нагрузку «на лету» средствами клиентского драйвера, если клиенту явно доступны оба сервера лицензирования в рамках одного списка.

Шаг 1. Именование менеджеров лицензий через nhsrv.ini

Если в одной локальной сети одновременно работают два менеджера лицензий HASP, каждому из них необходимо задать уникальное имя, чтобы исключить конфликты широковещательных пакетов. Имя задается в конфигурационном файле nhsrv.ini, который располагается в каталоге установки менеджера лицензий (по умолчанию C:\Program Files (x86)\Aladdin\HASP LM\) либо в системной папке Windows\System32, если менеджер установлен в качестве службы Windows.

Рассмотрим правила формирования имени менеджера лицензий:

  1. Имя может содержать только символы латинского алфавита и цифры.
  2. Длина имени не должна превышать 7 символов.

На первом сервере (где установлен ключ на 100 лицензий) в файле nhsrv.ini пропишем:


[NHS_SERVER]
NHS_SERVERNAMES = LM1

На втором сервере (где установлен ключ на 5 лицензий) в файле nhsrv.ini укажем другое имя:


[NHS_SERVER]
NHS_SERVERNAMES = LM2

Важно: после внесения изменений в файл nhsrv.ini обязательно перезапустим службу HASP Loader на обоих серверах, чтобы новые имена вступили в силу.

Шаг 2. Настройка файла nethasp.ini на клиентских машинах

Файл nethasp.ini управляет тем, как клиент 1С ищет лицензии по сети. Он должен располагаться в каталоге conf платформы. Для 32-разрядных версий клиента путь выглядит как C:\Program Files (x86)\1cv8\conf\nethasp.ini, а для 64-разрядных — C:\Program Files\1cv8\conf\nethasp.ini.

Чтобы избежать задержек при запуске и исключить неконтролируемый широковещательный опрос сети, отключим неиспользуемые протоколы и широковещание, явно указав параметры TCP/IP:


[NH_COMMON]
NH_TCPIP = Enabled
NH_IPX = Disabled
NH_NETBIOS = Disabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.1
NH_SERVER_NAME = LM1
NH_USE_BROADCAST = Disabled
NH_TCPIP_METHOD = TCP_OR_UDP

Обратим внимание на используемые параметры:

  1. Параметр NH_TCPIP = Enabled включает работу протокола TCP/IP.
  2. Параметры NH_IPX = Disabled и NH_NETBIOS = Disabled исключают поиск по устаревшим сетевым протоколам.
  3. Параметр NH_USE_BROADCAST = Disabled запрещает широковещательный поиск по всей подсети, направляя запросы строго на указанный IP-адрес.
  4. Менеджер лицензий HASP взаимодействует с клиентами по порту 475 (UDP и TCP). Проверим, чтобы данный порт не блокировался сетевыми экранами и брандмауэром Windows.

Варианты решения проблемы распределения лицензий

Поскольку объединить два физических ключа в единый пул с автоматическим переполнением через nethasp.ini невозможно, рассмотрим рабочие практические сценарии организации лицензирования:

Вариант 1. Сегментация пользователей по серверам и файлам nethasp.ini

Разделим группы пользователей на уровне конфигурационных файлов. Например, если в компании используются два сервера терминалов, на первом терминальном сервере в nethasp.ini пропишем обращение исключительно к LM1 (ключ на 100 лицензий), а на втором терминальном сервере (или для отдельной выделенной группы рабочих станций) укажем обращение к LM2 (ключ на 5 лицензий). Это гарантирует, что каждая группа задействует свой выделенный пул без взаимных блокировок.

Вариант 2. Раздача клиентских лицензий через кластер серверов 1С

В свойствах каждой информационной базы в консоли администрирования серверов 1С:Предприятия присутствует параметр «Разрешить выдачу лицензий сервером 1С:Предприятия». Проанализируем различия двух схем:

  1. Раздача через HASP License Manager: клиентское приложение запрашивает лицензию напрямую с ключа. При этом один пользователь в рамках одной терминальной сессии может запустить несколько баз 1С, расходуя всего одну лицензию с ключа.
  2. Раздача средствами сервера 1С: сервер 1С самостоятельно забирает лицензии с доступных ему ключей и выдает их клиентам. В этом случае лицензия расходуется на каждое отдельное соединение (сеанс). Если пользователи работают с несколькими базами одновременно, расход лицензий возрастет.

Вариант 3. Апгрейд ключей защиты или переход на программные лицензии

Наиболее надежным и масштабируемым решением является консолидация пула лицензий:

  1. Апгрейд USB-ключей: через обслуживающего партнера 1С выполняется замена нескольких аппаратных ключей на один ключ большей емкости (например, объединение ключей на 100 и 5 лицензий в один ключ на 300 лицензий).
  2. Программные лицензии: в отличие от аппаратных ключей HASP, программные лицензии 1С (пин-коды) не имеют ограничений на суммирование. Любое количество комплектов программных лицензий можно активировать на сервере 1С, и платформа автоматически объединит их в единый общий пул.

Диагностика доступности ключей

Для контроля работы службы лицензирования и проверки видимости ключей в сети используем специализированную утилиту Aladdin Knowledge Systems Monitor (AKS Monitor). Запустив утилиту на рабочем месте пользователя, убедимся, что:

  1. Оба менеджера лицензий определяются по своим сетевым именам (LM1 и LM2).
  2. Корректно отображается общее количество доступных лицензий на каждом из ключей.
  3. Таблица активных сессий отображает реальные подключения пользователей, что подтверждает корректную сетевую связность по порту 475.
← На главную