спасибо
> foreach id in [ /caps-man registration-table find where uptime > 1h ] do={ foreach mac in [ /caps-man registration-table get $id value-name=mac-address ] do={ /caps-man access-list add action=accept comment="AUTO::TIMEOUT" mac-address=$mac place-before=[ /caps-man access-list find where comment~"SIGNAL-LEVEL-REJECT" ] }; };
> /caps-man access-list print
Flags: X - disabled
# INTERFACE MAC-ADDRESS MAC-ADDRESS-MASK ACTION
0 ;;; AUTO::TIMEOUT
A0:32:99:9A:28:C0 accept
1 ;;; AUTO::TIMEOUT
C0:17:4D:37:DF:14 accept
2 ;;; AUTO::TIMEOUT
E0:62:67:2B:98:CC accept
3 ;;; AUTO::TIMEOUT
80:A5:89:90:D6:DD accept
4 ;;; ==SIGNAL-LEVEL-REJECT==
any reject
Прям меня задела эта тема :) Вспомнил, что такое скрипты - в Вашем случае действие должно быть reject - но подход не правильный, syslog - будет завален сообщениями о reject-е при подключении клиентов. Правильно, найти по mac-у dhcp lease, взять оттуда ip-адрес и вкинуть address-list который будет действовать сутки и используется в правиле, разрешающим доступ в инет.