|
Сконфигурировать 1С для работы с HASP LM на произвольном адресе и порте | ☑ | ||
---|---|---|---|---|
0
f-kons
07.03.14
✎
15:58
|
Сразу скажу - при настройках-по-умолчанию в файлах nhsrv.ini и nethasp.ini все работает (броадкастинг, UDP).
Но мне нужно не это... Проблема: не удается сконфигурировать 1С для работы с менеджером лицензий на произвольном адресе и порте. Для наглядности проблемы специально выбран нестандартный порт (476). Дано: два компьютера в виртуалках. первый - HASP LM, второй - 1С релиз 8.3.4.389. Сервер 1С в сети присутствует (+SQL сервер тоже присутствует). 1. Менеджер лицензий на компьютере с установленным ключом HASP. Компьютер имеет IP адрес 172.16.0.10 и также имеет в ДНС имя LM1 (настроено через запись типа CNAME) Файл конфигурации расположен по пути C:\Windows\SysWOW64\nhsrv.ini (потому что 64-битная ОС, и менеджер лицензий запускается в виде службы. Проверено.) Содержимое файла nhsrv.ini: ;---------------------------------------- [NHS_SERVER] NHS_USERLIST = 250 NHS_SERVERNAMES = LM1 ; Имя менеджера лицензий NHS_HIGHPRIORITY = no [NHS_IP] NHS_USE_UDP = disabled ; запретить UDP NHS_USE_TCP = enabled ; разрешить только TCP NHS_IP_portnum = 476 ; на 476 порте [NHS_IPX] NHS_USE_IPX = disabled [NHS_NETBIOS] NHS_USE_NETBIOS = disabled ;------------------------------------ ИТАК, менеджер лицензий имеет имя LM1, работает по протоколу TCP на порте 476 2. Проверка порта 476 успешна, telnet 172.16.0.10 476 (с компьютера-клиента с 1С) соединяется. Значит менеджер лицензий работает по нужному адресу на нужном порте. Брандмауер отключен на всех компьютерах. 3. 1С релиз 8.3.4.389 на клиенте. Файл nethasp.ini читается процессом 1С по пути C:\Program Files (x86)\1cv8\conf\nethasp.ini (проверено программой Process Monitor) Содержимое файла nethasp.ini: [NH_COMMON] NH_TCPIP = Enabled [NH_TCPIP] NH_SERVER_ADDR = 172.16.0.10 NH_USE_BROADCAST = Disabled NH_TCPIP_METHOD = TCP NH_SERVER_NAME = LM1 NH_PORT_NUMBER = 476 В РЕЗУЛЬТАТЕ 1С не видит менеджера лицензий (сообщение 'не найден ключ защиты'). Программа Aksmon тоже не видит ни одного менеджера лицензий в сети. Причем, если в каталог с программой aksmon скопировать наш nethasp.ini то это не даст никаких результатов, ХОТЯ этот файл читается процессом aksmon.exe (проверено). |
|||
1
vlandev
07.03.14
✎
16:11
|
Емнип NH_SERVER_NAME это не имя хоста , а имя сервиса , которое прописано в NHS_SERVERNAMES в nhsrv.ini , так что в ДНС нет смысла это прописывать , в ДНС можно прописать какое нибудь имя и потом его использовать в NH_SERVER_ADDR
|
|||
2
vlandev
07.03.14
✎
16:14
|
Кстати , вместо C:\Windows\SysWOW64\nhsrv.ini попробуй перекинуть в C:\Windows\nhsrv.ini
Там кады панель запускается и инишник не подхватывается видно по количеству загруженных протоколов. |
|||
3
zva
07.03.14
✎
17:05
|
(0) а если на 476 UDP поменять? раньше у aksmon бага была, что он не видит менджер лицензий, если UDP отключен.
И в nhsrv.ini лучше добавить NHS_IP_LIMIT= 172.16.0.* |
|||
4
vlandev
07.03.14
✎
17:09
|
(3) А зачем в nhsrv.ini добавлять NHS_IP_LIMIT= 172.16.0.* ?
|
|||
5
f-kons
07.03.14
✎
19:25
|
> vlandev
Угу, знаю что NH_SERVER_NAME это имя сервиса, но на всякий случай добавил его и в ДНС (чтоб уж наверняка). В C:\Windows\nhsrv.ini нет смысла кидать, т.к. программа ProcMon показывает, что при старте сервиса 'HASP Loader' читается только C:\Windows\SysWOW64\nhsrv.ini > zva Поменял на UDP порт 476 и включил UDP на HASP LM - не помогло. NHS_IP_LIMIT не вижу смысла настраивать т.к. не хочу ограничивать машины с которых будут приниматься соединения с HASP LM |
|||
6
zva
08.03.14
✎
05:51
|
После изменения на UDP aksmon также ничего не видит?
Некоторые пишут, что смысл есть http://www.64soft.net/2009/12/08/hasp-license-manager-%d1%85%d0%b8%d1%82%d1%80%d0%be%d1%81%d1%82%d0%b8-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b8-%d0%bd%d0%b5%d1%81%d0%ba%d0%be%d0%bb%d1%8c%d0%ba%d0%b8%d1%85-%d0%ba%d0%bb.html |
|||
7
f-kons
08.03.14
✎
08:20
|
> zva
После разрешения TCP+UDP в nhsrv.ini (и перезапуска сервисов) и 'NH_TCPIP_METHOD = UDP' nethasp.ini ничего не изменилось. 1С не находит ключа, aksmon не видит вообще ничего. Повторю - без настроек (при отсутствии файла nethasp.ini и с настройками HASP LM по-умолчанию) 1С находит лицензию, и aksmon видит соединение по UDP и выданную лицензию. Между 1С и HASPLM нет никаких ограничивающих траффик устройств (на одном свитче). |
|||
8
zva
08.03.14
✎
09:13
|
Я бы посоветовал закомментировать NHS_SERVERNAMES = LM1 и в nethasp.ini и в nhsrv.ini если ключ 1 планируется
|
|||
9
f-kons
08.03.14
✎
09:27
|
> zva
Ключей планируется несколько, поэтому и NHS_SERVERNAMES |
|||
10
vlandev
09.03.14
✎
13:02
|
В момент запуска 1С когда используется TCP глянь netstat -an , имеется - ли конекция на хост 172.16.0.10:476
|
|||
11
f-kons
10.03.14
✎
07:57
|
> vlandev
По netstat -an соединения на 172.16.0.10:476 нет. |
|||
12
f-kons
10.03.14
✎
08:33
|
> vlandev
Я с помощью Network Monitor посмотрю и отпишусь |
|||
13
zak555
10.03.14
✎
08:36
|
убрать
NH_SERVER_NAME = LM1 |
|||
14
f-kons
10.03.14
✎
11:38
|
ЭКСПЕРИМЕНТ.
------------ Цели эксперимента: Выяснить возможность конфигурирования связки 1С v8 + HASP LM для работы с разными протоколами и портами. Выяснить возможность одновременной работы нескольких ключей ORGL8 в сети (по информации из интернета одновременная работа нескольких LM в сети возможна когда им присвоены разные имена. Проверю саму возможность работы 1С с именованным сервисом HASP LM). Использованный софт: компьютер с HASP LM: - Эмулятор "Emul x64" с дампом "v8 50 user" (в составе которого идет сертификат '1CFan Community') - HASP LM Service версии 8.32.1.1 от 25.04.2008 г. - ОС Windows Server 2012 R2, загрузка по F8 с отключением обязательной проверки подписи драйверов для нормальной работы эмулятора. компьютер с клиентом 1С: - 1С релиз 8.3.4.389 - ОС Windows Server 2008 SP2 Прочее: - Microsoft Network Monitor 3.4 на компьютере с установленной 1С Оба хоста запускались как виртуальные машины Hyper-V. Начало эксперимента. 1. Запускаю 1С и HASP LM без файлов конфигурации (с настройками по-умолчанию). Удаляю nhsrv.ini на компьютере с HASP LM, удаляю nethasp.ini на компьютере с 1С. Рестартую компьютер с HASP LM (для того чтобы настройки HASP LM по-умолчанию вступили в силу). Запускаю 1С. Запустилось. aksmon показывает, что в сети один LM, на котором использована 1 лицензия. Microsoft Network Monitor показывает, что был отослан пакет на адрес 255.255.255.255 на порт 475 по протоколу UDP (бродкастный), ответ на который пришел с адреса 172.16.0.10 с порта 375 по протоколу UDP. Далее был обмен информацией по протоколу UDP между компьютерами с 1С и HASP LM (порт HASP LM 475). Вывод: с настройками по-умолчанию 1С и HASP LM работают (бродкастный поиск ключа, UDP, порт 475). 2. Настраиваю HASP LM на работу без бродкастного опроса, только по TCP и с портом 476. Перезагружаю компьютер с HASP LM для того чтобы изменения в конфигурации вступили в силу (на всякий случай рестартую не сервис а весь компьютер). Настраиваю nethasp.ini в составе 1С на работу с хостом HASP LM по протоколу TCP с портом 476 без бродкаста. (хост HASP LM с адресом 172.16.0.10 и именем LM1) На хосте с HASP LM с помощью команды 'netstat -an' проверяю, слушается ли порт 475 по TCP. Да, слушается. Запускаю Network Monitor. Запускаю 1С. Network Monitor показывает, что с хоста 1С производятся попытки соединения с хостом HASP LM по протоколу UDP (!!!!) и по порту 476 (бродкастного траффика нет). Естественно, в ответ сообщение ICMP 'port unreachable' что значит порт недоступен. Тоесть, 1С проигнорировала явное указание на использование протокола TCP в файле nethasp.ini а вместо этого использовала протокол UDP, хотя порт использовала тот, что ей указали (476). Вывод: протокол TCP использовать нельзя (1С его не использует даже при явном указании). Ниже привожу содержимое файлов настроек. nhsrv.ini --------- [NHS_SERVER] NHS_USERLIST = 250 NHS_SERVERNAMES = LM1 NHS_HIGHPRIORITY = no [NHS_IP] NHS_USE_UDP = disabled NHS_USE_TCP = enabled NHS_IP_portnum = 476 [NHS_IPX] NHS_USE_IPX = disabled [NHS_NETBIOS] NHS_USE_NETBIOS = disabled nethasp.ini ----------- [NH_COMMON] NH_TCPIP = Enabled [NH_IPX] ; [NH_NETBIOS] ; [NH_TCPIP] NH_SERVER_ADDR = 172.16.0.10 NH_USE_BROADCAST = Disabled NH_TCPIP_METHOD = TCP NH_SERVER_NAME = LM1 NH_PORT_NUMBER = 476 3. Хорошо. Смиримся с тем что TCP нам использовать не получится. Попробуем UDP с нестандартным портом 476. Настраиваю HASP LM: разрешаю как TCP так и UDP, но с портом 476. Перезагружаю машину с HASP LM. Проверяю с помощью 'netstat -an' прослушивается ли порт 476 по протоколам TCP и UDP. Да, прослушивается. Запускаю Network Monitor. Запускаю 1С. Network Monitor показал обмен траффиком между хостом с 1С и хостом с HASP LM по протоколу UDP используя порт 476 (бродкастного траффика не было, сразу же шло обращение к хосту с HASP LM). 1С запустилась ! aksmon не видит ни одного LM в сети, даже если в папку с aksmon скопировать nethasp.ini из папки с 1С. Вывод: 1С можно настроить на использование HASP LM по его адресу в сети, а также нестандартного порта (в нашем случае это 476) и протокола UDP. aksmon при таких условиях не показывает актуальную информацию. 4. Проверяю, играет ли роль указание имени 'LM1' в настройках файла nethasp.ini. Для это в файле nhsrv.ini укажу новый порт 477 для того, чтобы в 1С не использовались кешированные данные с прошлого соединения (1С -ка ведь сначала пытается соединиться с адресом и портом по которому она соединялась в последний раз, а уж потом если не получится лезет в файл nethasp.ini и пытается соединиться с HASP LM с настройками из файла). Перезагружаю машину с HASP LM. Проверяю с помощью 'netstat -an' прослушивается ли порт 477 по протоколу UDP. Да, прослушивается. В файле nethasp.ini на хосте с 1С указываю порт 477 и заведомо неправильное имя LM - 'LM2'. Запускаю 1С. Не запускается - "Не найден ключ". Изменяем в файле nethasp.ini настройку NH_SERVER_NAME обратно на имя 'LM1' (на которое настроен HASP LM в файле nhsrv.ini) Запускаем 1С. Запускается ! Вывод: Имя LM (NHS_SERVERNAMES файла nhsrv.ini а также NH_SERVER_NAME файла nethasp.ini) играет роль. Нужно указывать правильное имя. ИТОГИ: 1С не умеет работать с HASP LM по протоколу TCP. Только по UDP. Порт можно указывать альтернативный. Имя HASP LM играет роль, нужно указывать правильное. aksmon не показывает актуальную информацию при использовании нестандартных портов, даже если ему 'подсунуть' правильно настроенный файл nethasp.ini (а aksmon этот файл читает, проверено программой 'Procmon'. Читает, но не использует прочиатнную информацию о порте) Остается вопрос, можно ли запустить несколько HASP LM на нескольких компьютерах в сети и настроить nethasp.ini так, чтобы перечислить адреса серверов, и чтобы при отсутствии лицензий на одном из серверов лицензии искались бы на следующем по списку сервере. Как только получу возможность это проверить (мне нужен настроенный сервер терминалов для того чтобы в его сеансах назапускать экземпляров 1С, чтобы исчерпать лицензии на одном из ключей [у меня один ключ есть на 10 лиц.] чтобы был задействован второй ключ) то сразу же отпишусь, думаю это не только мне интересно. |
|||
15
zak555
10.03.14
✎
11:44
|
(14) > чтобы исчерпать лицензии на одном из ключей [у меня один ключ есть на 10 лиц.] чтобы был задействован второй ключ)
разнеси ключи по разным машинам с разными IP, на каждый из них менеджер лицензий на клиентах через запятую укажи их NH_SERVER_ADDR и всё заработает |
|||
16
f-kons
11.03.14
✎
10:55
|
>zak555
Да, даже если не присваивать каждому LM уникальное имя с помощью NHS_SERVERNAMES, а просто запустить на нескольких разных компьютерах несконфигурированные LM с ключами и перечислить их IP-шники в NH_SERVER_ADDR то все будет работать. Вот только вопрос - почему (внезапно) 1С может перестать получать лицензии с серверов LM перечисленных в списке, хотя aksmon показывает на них наличие свободных лицензий. |
|||
17
andr_andrey
11.03.14
✎
11:18
|
(0) Стр.287, Руководство администратора
"Параметр NH_TCPIP_METHOD Примечание: Установка параметра в значение TCP игнорируется. Обращение к HASP License Manager всегда выполняется по UDP." |
|||
18
andr_andrey
11.03.14
✎
11:23
|
(16) Тоже столкнулся с подвисанием сеансов LM-сервера на Win7.
Стабильнее только 1С сервер. |
|||
19
f-kons
11.03.14
✎
12:25
|
(17) хорошо тем у кого есть руководство администратора :)
(18) у меня не подвисали.. Просто клиенты в сети внезапно переставали работать - 'Не найдено свободной лицензии', хотя в сети несколько HASP LM с ключами на которых много свободных лицензий (как показывал aksmon), и между LM серверами и клиентами 1С нет никаких файрволлов.. Пока не понял в чем дело. Даже в какую сторону копать не знаю уже. |
|||
20
z80a
11.03.14
✎
12:56
|
(19) Сегодня бился с 'Не найдено свободной лицензии'.
LM выдавал ошибку - receive problem error 10054. Что означает: пакеты приходящие по UDP «битые». Перегрузил все что можно - пока работает. |
|||
21
BICO
11.03.14
✎
13:12
|
(15) сколько не пробовал, всегда лицензии не по списку серверов раздавались, а хаотично, с чем связано не разобрался, может таймаут какой, хз, просто каждого клиента на свой ключ посадил и забыл про это горе.
|
|||
22
BICO
11.03.14
✎
13:14
|
nethasp.ini
[NH_COMMON] NH_TCPIP = Enabled [NH_TCPIP] NH_SERVER_NAME = LM_OLGA NH_USE_BROADCAST = Disabled |
|||
23
BICO
11.03.14
✎
13:15
|
nhsrv.ini
[NHS_SERVER] NHS_SERVERNAMES = LM_OLGA NHS_HIGHPRIORITY = no [NHS_IP] NHS_USE_UDP = yes NHS_USE_TCP = no |
|||
24
BICO
11.03.14
✎
13:16
|
[NH_COMMON]
NH_TCPIP = Enabled админ попросил, хотя как писали выше это не работает. |
|||
25
f-kons
11.03.14
✎
13:33
|
(21) Насколько я понял, когда перечисляешь в nethasp.ini список IP-шников, то происходит то же что и при бродкасте, т.е. 1С направляет каждому из этих серверов пакет. Только при бродкасте пакеты отправляются всем, а при перечислении хостов только этим хостам. Потом от каждого из хостов приходит ответ, потом по какому-то принципу определяется нужный LM-сервер и дальше обмен траффиком идет с ним (смотрел программой Microsoft Network Monitor).
|
|||
26
BICO
11.03.14
✎
14:05
|
(25) в моем случае было так, список серверов 3шт. через ;, на всех ключи по 5 пользователей, одна машина берет на 2 серверах по 1 ключу и всем не хватает. Какой принцип или как настроить список серверов я не понял, читал инет, курил ЖКК, не помогло, раскидал по ключам клиентов и забыл.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |