-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathnas_actions.txt
36 lines (22 loc) · 3.54 KB
/
nas_actions.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
с шарингом скорости
Добавить абонента - добавляем базовую очередь и деактивируем её
:if ([/queue simple find name=parent_$acc_account_id] ="") do={/queue simple add name=parent_$acc_account_id disabled=yes};
Добавить субаккаунт - добавляем неактивную запись в адрес лист inet_users, добавляем подочередь, если её ещё нет
/ip firewall address-list add list=internet_users address=$subacc_vpn_ip_address disabled=yes comment=acc_$acc_account_id-$subacc_id;{:local new "$subacc_vpn_ip_address/32"; :local res [/queue simple get parent_$acc_account_id target-addresses ]; :if ([:tostr [:find [:toarray $res] $new]] = "") do={:set res ($res + $new)}; /queue simple set parent_$acc_account_id target-address=$res disabled=no;}
Активировать субаккаунт
/ip firewall address-list set [find comment=acc_$acc_account_id-$subacc_id] disabled=no
Деактивировать субаккаунт
/ip firewall address-list set [find comment=acc_$acc_account_id-$subacc_id] disabled=yes
Удалить субаккаунт
/ip firewall address-list remove [find list=acc_$acc_account_id-$subacc_id];{:local new "$subacc_vpn_ip_address/32"; :local old [/queue simple get parent_$acc_account_id target-addresses ]; :local res [:toarray ""]; :foreach i in=[:toarray $old] do={:if ($i != $new) do={:set res ($res + $i)}}; :if ($res!='') do={/queue simple set parent_$acc_account_id target-address=$res} else={/queue simple set $acc_account_id target-address=$res disabled=no}}
Удалить абонента
/queue simple remove [find name=parent_$acc_account_id]
Установить скорость для IPN
/queue simple set $acc_account_id max-limit=$max_limit_tx/$max_limit_rx burst-limit=$burst_limit_tx/$burst_limit_rx burst-threshold=$burst_treshold_tx/$burst_treshold_rx burst-time=$burst_time_tx/$burst_time_rx priority=$priority limit-at=$min_limit_tx/$min_limit_rx disabled=no;
Сбросить VPN сессию
/interface $access_type-server remove [find user=$subacc_username]
---------------------------------
#:if ([/queue simple find name=acc_$user_id]="") do={/queue simple add name=acc_$user_id disabled=yes};:local new "$account_ipn_ip"; :local res [/queue simple get acc_$user_id target-addresses ]; :if ([:tostr [:find [:toarray $res] $new]] = "") do={:set res ($res + $new); /queue simple set acc_$user_id target-address=$res max-limit=$max_limit_tx/$max_limit_rx burst-limit=$burst_limit_tx/$burst_limit_rx burst-threshold=$burst_treshold_tx/$burst_treshold_rx burst-time=$burst_time_tx/$burst_time_rx priority=$priority limit-at=$min_limit_tx/$min_limit_rx disabled=no; }
{:local res [/queue simple get parent_$acc_account_id ]; :if ([:tostr [:find [:toarray $res] $new]] = "") do={:set res ($res + $new); /queue simple set user7 target-address=$res; }}
:if ([/queue simple find name=parent_$acc_account_id] ="") do={/queue simple add name=parent_$acc_account_id disabled=yes};:local new "$account_ipn_ip"; :local res [/queue simple get acc_$user_id target-addresses ]; :if ([:tostr [:find [:toarray $res] $new]] = "") do={:set res ($res + $new); /queue simple set acc_$user_id target-address=$res max-limit=$max_limit_tx/$max_limit_rx burst-limit=$burst_limit_tx/$burst_limit_rx burst-threshold=$burst_treshold_tx/$burst_treshold_rx burst-time=$burst_time_tx/$burst_time_rx priority=$priority limit-at=$min_limit_tx/$min_limit_rx disabled=no; }
без шаринга скорости