... RouterOS позволяет устанавливать настройки шейпера и адрес-листров на целые подсети. Это может пригодиться в случае если Вы отдали подсеть абоненту, например юридическому лицу, и условия тарификации должны распространяться сразу на всю сеть. Для реализации Вам потребуется модифицировать стандартную схему: # По статье [Тюнинг стандартной схемы|CarbonBilling:Этап 4, 5. Тюнинг Стандартной схемы под требования провайдера или разработка custom схемы] создайте файл *session* в папке *ubin* OSS директории Вашего NAS и запишите в него листинг скрипта приведённый ниже. # Добавьте абоненту [учетную запись|CarbonBilling:Учетная запись. Создание и изменение.], указав в поле "*IPv4*" [адрес сети|https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%BE%D0%B9_%D0%B0%D0%B4%D1%80%D0%B5%D1%81], а в поле "*Маска*" её префикс. На вкладке "*Дополнительно*" в поле "*Строка дополнительных параметров активации скрипта управления*" сохраните значение "*issubnet*". h1. ubin/session {code}#!/bin/bash . $(dirname $BASH_SOURCE)/../bin/session user_add(){ if [ "$auth_type" == "1" ]; then while send_mikrotik_cmd -s "$nas_ip" "$telnet_login" "$telnet_password" /ip firewall address-list remove numbers=${ip}_crb_auth; do :; done if [ ${user_activate_string} == "issubnet" ]; then send_mikrotik_cmd "$nas_ip" "${telnet_login}" "${telnet_password}" /ip firewall address-list add list=crb_auth_list address=$ip/${mask} comment=${ip}_crb_auth else send_mikrotik_cmd "$nas_ip" "${telnet_login}" "${telnet_password}" /ip firewall address-list add list=crb_auth_list address=$ip comment=${ip}_crb_auth fi fi } user_drop(){ if [ ${user_activate_string} == "issubnet" ]; then send_mikrotik_cmd "$nas_ip" "${telnet_login}" "${telnet_password}" /ip firewall address-list add list=crb_blocked_list address=$ip/${mask} comment=${ip}_crb_blocked else send_mikrotik_cmd "$nas_ip" "${telnet_login}" "${telnet_password}" /ip firewall address-list add list=crb_blocked_list address=$ip comment=${ip}_crb_blocked fi } user_redirect(){ if [ ${user_activate_string} == "issubnet" ]; then send_mikrotik_cmd "$nas_ip" "${telnet_login}" "${telnet_password}" /ip firewall address-list add list=crb_negbal_list address=$ip/${mask} comment=${ip}_crb_negbal else send_mikrotik_cmd "$nas_ip" "${telnet_login}" "${telnet_password}" /ip firewall address-list add list=crb_negbal_list address=$ip comment=${ip}_crb_negbal fi } user_rate_set(){ # Сначала удалим из старого сервиса, потом добавим в новый while send_mikrotik_cmd -s "$nas_ip" "${telnet_login}" "${telnet_password}" /queue simple remove numbers=crb_${ip}; do :; done if [ ${user_activate_string} != "issubnet" ]; then mask=32 fi if [[ -z ${burst_in} || -z ${burst_out} || -z ${burst_threshold} || -z ${burst_time} ]]; then
|