Приветствуем вас, коллеги! Сегодня мы детально разберем одну из наиболее классических и в то же время коварных проблем системного администрирования в среде 1С:Предприятие — совместное использование двух однотипных многопользовательских аппаратных ключей защиты (например, двух сетевых ключей серии ORGL8 на 5 пользователей каждый) для суммирования доступных лицензий.
Довольно часто возникает ситуация, когда в организации уже есть несколько USB-ключей малой емкости и возникает необходимость задействовать их одновременно, чтобы сервер 1С успешно раздавал лицензии со всех имеющихся ключей. Давайте разберем по шагам, почему простая установка обоих ключей в один сервер не работает и как правильно настроить сетевое окружение и конфигурационные файлы для решения этой задачи.
Рассмотрим первоначальную ошибку, с которой сталкиваются многие администраторы: попытку физически подключить оба USB-ключа к одному серверу. Выясним причину, почему это не работает. Дело в том, что служба HASP License Manager (HASP LM), запущенная на одном физическом или виртуальном компьютере, технически не способна работать более чем с одним ключом одинаковой серии (например, ORGL8). При поиске ключей менеджер лицензий обнаружит только один из них (первый инициализированный в системе), а второй ключ будет попросту проигнорирован. В утилите Aladdin Monitor вы увидите только один активный ключ.
Проанализируем, как ведет себя сервер приложений 1С:Предприятие при обращении к сетевым ключам. Согласно архитектуре платформы, действуют жесткие правила:
ORGL8, он зафиксирует подключение к нему. Когда на этом ключе свободные лицензии закончатся, сервер 1С не пойдет искать в сети второй ключ этой же серии, даже если тот абсолютно свободен.Таким образом, простое размещение двух сетевых ключей в локальной сети на разных компьютерах без специальной настройки не решит проблему: пользователи займут лицензии только с одного ключа, а при попытке остальных подключиться возникнет ошибка: "Информационная база не найдена" или "Не найдена лицензия".
Чтобы обойти системное ограничение платформы и задействовать оба ключа по 5 пользователей (получив в сумме 10 лицензий), мы применим комбинированную схему:
При такой конфигурации сервер 1С сначала заберет 5 лицензий с локального ключа, а при их исчерпании сможет обратиться по сети ко второму ключу через HASP LM, получив еще 5 лицензий. Давайте рассмотрим детальную настройку этой схемы.
Когда в сети работает менеджер лицензий, важно явно идентифицировать его, чтобы исключить хаотичный опрос ключей платформой. На компьютере, где установлен второй ключ и запущен HASP LM, нам необходимо отредактировать конфигурационный файл сервера лицензий — nhsrv.ini.
Этот файл обычно находится в каталоге установки HASP LM (если служба работает как системная, ищите файл в папках C:\Windows\System32 или C:\Windows\SysWOW64). Откроем его и зададим уникальное имя нашему менеджеру лицензий в секции [NHS_SERVER]:
[NHS_SERVER]
NHS_SERVERNAMES = LM002
Также рекомендуется ограничить диапазон обслуживаемых IP-адресов в секции [NHS_IP], чтобы менеджер лицензий работал только в вашей целевой подсети:
[NHS_IP]
NHS_IP_LIMIT = 192.168.0.*
Теперь перейдем к настройке сервера приложений 1С:Предприятие. Нам нужно жестко указать ему, где именно в сети искать второй (сетевой) ключ защиты. Для этого мы будем редактировать конфигурационный файл nethasp.ini.
Перейдем в каталог конфигурации платформы на сервере 1С. Путь по умолчанию для 64-битной версии платформы:
C:\Program Files\1cv8\conf\nethasp.ini
Если этого файла там нет, скопируйте его шаблон из папки шаблонов установки платформы или создайте заново. Нам необходимо отключить устаревшие протоколы NetBIOS и IPX, оставить только TCP/IP и явно прописать адрес компьютера со вторым ключом. Рассмотрим пример заполнения этого файла:
[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.11
NH_SERVER_NAME = LM002
NH_USE_BROADCAST = Disabled
Разберем параметры подробнее:
NH_SERVER_ADDR — указывает точный IP-адрес компьютера, в который установлен второй ключ (в нашем примере это 192.168.0.11).NH_SERVER_NAME — указывает уникальное имя менеджера лицензий, которое мы ранее прописали в nhsrv.ini на втором компьютере (LM002).NH_USE_BROADCAST = Disabled — отключает широковещательный опрос сети. Это критически важно: сервер 1С не должен тратить время на сканирование всей сети, он должен сразу обращаться по конкретному IP-адресу к нужному менеджеру лицензий.NH_NETBIOS = Disabled и NH_IPX = Disabled — предотвращают конфликты имен NetBIOS в локальной сети, из-за которых службы HASP LM могут аварийно прекращать работу или выдавать ошибки дублирования имен в системном журнале Windows.Сетевые ключи HASP общаются с платформой 1С по протоколу TCP и UDP через порт 475. Нам необходимо убедиться, что этот порт открыт на всех узлах нашей схемы:
После проведения всех настроек перезапустите службу сервера 1С:Предприятие и службу HASP License Manager на втором компьютере. Теперь мы можем запустить сеансы пользователей и проанализировать распределение лицензий в консоли администрирования серверов 1С:
nethasp.ini.Описанный выше метод является отличным рабочим решением для физических ключей, но если ваша инфраструктура масштабируется, рекомендуем обратить внимание на альтернативные и более гибкие варианты:
На этом настройка совместной работы ключей защиты успешно завершена! Мы рассмотрели все тонкости конфигурирования файлов nethasp.ini и nhsrv.ini, разобрали ограничения платформы 1С и решили проблему нехватки лицензий.