Допустим, вам нужно настроить SAPRouter с SNC для удаленных пользователей, например, людей из другого офиса.
Скачаем и распакуем saprouter (sapcar -xvf) и крипто библиотеку в, например, C:\saprouter .
Пропишем переменные окружения (пример):
SECUDIR=C:\saprouter
SNC_LIB=C:\saprouter\nt-x86_64\sapcrypto.dll
Далее создадим сертификаты и обменяемся ими:
Внимание, имена РЕГИСТРОЧУСТВИТЕЛЬНЫЕ ! CN в данном случае ИМЯ ХОСТА (работает и по короткому имени, без домена). Однако, CN может быть любым и не совпадать с именем машины, а использоваться для удобства понимания.
Сторона инициатора:
sapgenpse get_pse -v -noreq -p local.pse "CN=spb-initiator"
sapgenpse seclogin -p local.pse
sapgenpse export_own_cert -o spb-initiator.cer -p local.pse
Сторона акцептора:
sapgenpse get_pse -v -noreq -p local.pse "CN=msk-acceptor"
sapgenpse seclogin -p local.pse
sapgenpse export_own_cert -o msk-acceptor.cer -p local.pse
Обменяемся сертификатами, запишем в каталог C:\saprouter\nt-x86_64
На стороне инициатора положим файл msk-acceptor.cer , на стороне акцептора положим файл spb-initiator.cer
Выполним команду на стороне инициатора:
sapgenpse maintain_pk -a msk-acceptor.cer -p local.pse
И на стороне акцептора:
sapgenpse maintain_pk -a spb-initiator.cer -p local.pse
Настройки saproutetab:
Инициатор:
# Allow Outbound connections to SAProuter host2 will use SNC
KT "p:CN=msk-acceptor" <IP акцептора> 3299
# Allow all inbound connections
P * * *
Акцептор:
# accept incoming connections from SAProuter1
# with destination sapdp00 and 3298 on any host
KP "p:CN=spb-initiator" * sapdp00
KP "p:CN=spb-initiator" * 3298
Запуск saprouter:
Инициатор:
Saprouter -r -K p:CN=spb-initiator
Акцептор:
Saprouter -r -K p:CN=msk-acceptor
Строка String SAPROUTER в SAP GUI :
/H/<IP инициатора>/H/<IP акцептора>/H/
Проверка:
Инициатор:
niping -c -H /H/<IP инициатора>/S/3299/H/<IP акцептора>/S/3299/H/<IP акцептора>
Акцептор:
niping -s
Получаем сообщение вида:
connect to server o.k.
send and receive 10 messages (len 1000)
------- times -----
avg 12.900 ms
max 13.548 ms
min 12.631 ms
tr 151.405 kB/s
excluding max and min:
av2 12.853 ms
tr2 151.963 kB/s
Если нет - читаем файл dev_rout. Если программа ругается на SNC - вы напутали что-то с сертификатами, наиболее вероятно перепутали инициатора, акцептора и кто какой сертификат ждет.
Если ругается на route permition denied - проверйяте saproutetab, видимо указали не верный IP. Возможно в c:\windows\system32\drivers\etc\services не описан порт sapdp00.
Сапроутеры можно объединять, наиболее часто встречающаяся топология - звезда: один акцептор и много инициаторов.
Проблема: человек из региона приезжает в командировку с прописанной строкой saprouter в центральный офис. Из-за этой строки тут он начинает ходить петлей до своего региона и обратно сюда.
Решение: завести еще один гостевой сапроутер. В DNS назвать везде в регионах хост, например, saprouter. Гостевой сапроутер так же назвать saprouter. Т.о. сотрудник в домашнем регионе и в командировке будет ходить через сапроутеры, только в одном случае по каналу регион-центральный офис, в другом - между двумя локальными сапроутерами центрального офиса.
Инструкция на SCN:
http://wiki.scn.sap.com/wiki/display/Basis/How+to+setup+SNC+connection+between+SAProuters