Если кому интересно, то задачу решил так:В firewall правила с prefix-list:
term 21 {
from {
source-prefix-list {
ACCEPT-IP-CLIENTS;
}
destination-prefix-list {
DISCARD-IP-RESOURCES;
}
}
then accept;
}
term 22 {
from {
destination-prefix-list {
DISCARD-IP-RESOURCES;
}
}
then {
discard;
count discard-ip-count;
}
}
таким образом моя задача свелась только к добавлению/удалению ip-адресов в соответсвующие prefix-list:
set policy-options prefix-list ACCEPT-IP-CLIENTS 1.2.3.4/32
set policy-options prefix-list DISCARD-IP-RESOURCES 10.10.10.111/32
для внешнего доступа сделал юзера с ограниченным доступом:
login {
class POLICYEDIT {
permissions [ admin configure routing routing-control view ];
}
user pe {
uid 2001;
class POLICYEDIT;
authentication {
encrypted-password "***"; ## SECRET-DATA
}
}
}
доступ к свитчу отсуществяется по ssh (скриптом написанным на php), c дальнейшим запуском junoscript shell-а скрытой командой: "netconf", попыткой получить эксклюзивные права на редактирование и в успешном варианте редактированием нужных мне prefix-list-ов.
Набор передаваемых junoscript команд примерно такой:
<rpc message-id='1'>
<lock><target><candidate/></target></lock>
</rpc>
<rpc message-id='2'><edit-config> <target><candidate/> </target><config>
<configuration>
<policy-options>
<prefix-list>
<name>ACCEPT-IP-CLIENTS</name>
<prefix-list-item>
<name>1.2.3.4/32</name>
</prefix-list-item>
</prefix-list>
</policy-options>
</configuration>
</config></edit-config> </rpc>
<rpc message-id='3'><commit/></rpc>
<rpc message-id='4'><discard-changes/></rpc>
<rpc message-id='5'><unlock/></rpc>
<rpc message-id='6'><close-session/></rpc>
Оф. дока по netconf: http://www.juniper.net/documentation/en_US/junos/information...
Хорошее описание для быстрого старта есть непосредственно на opennet: https://www.opennet.dev/tips/2540_junoscript_junos_script_net...
Всем спасибо.