День/Ночь для Accel
Установка модуля ipt_ratelimit
Действуем согласно инструкции https://github.com/aabc/ipt-ratelimit
Устанавливаем необходимые пакеты:
apt-get install -y module-assistant iptables-dev pkg-config git
m-a prepare
Создадим папку /var/mikbill
mkdir /var/mikbill
Перейдем в неё и скачаем код модуля
cd /var/mikbill
git clone https://github.com/aabc/ipt-ratelimit.git
Перейдем в исходники и соберем модуль:
cd ipt-ratelimit
make all install
Обновим информацию в системе
depmod
Проверяем что все успешно выполнив
modinfo xt_ratelimit.ko
Настройка
MySQL
Необходимо создать пользователя в mysql для того что бы сервер ацеля смог получать необходимую информацию.
Данные команды вводятся в консоле mysql сервера!
CREATE USER 'accel'@'10.0.0.1' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON * . * TO 'accel'@'10.0.0.1'; FLUSH PRIVILEGES;
Тарифы
В тарифах необходимо включить шейпера и заполнить информацию о входящей\исходящей
скоростях для интервалов 1 и 2

Время можно не трогать так как скрипт его не учитывает.
Полисер
Установим mysql-client:
apt-get install mysql-client
Скачаем архив с файлами и распакуем его
cd /var/mikbill
wget https://wiki.mikbill.ru/_media/billing/howto/policer.tar.gz
tar xvf policer.tar.gz
Обновим владельца и права:
chown root:root -R /var/mikbill/policer/
chmod +x /var/mikbill/policer/*.sh
Перейдем в папку /var/mikbill/policer
cd /var/mikbill/policer
в файле config.cfg необходимо указать:
# IP адрес ацеля по которому он связан с радиусом BRASIP="10.0.0.1" # Параметры подключения к базе DBADDRESS="10.0.0.2" DBLOGIN="accel" DBPASS="password" DBNAME="mikbill" # В экстренных ситуациях очень сильно ограничить скорость kb # активация запуском скрипта limit_hard.sh # пример: переключение на слабую резервную линию HARD_LIMIT_RX="1024" HARD_LIMIT_TX="1024"
Accel
В настройках ацеля необходимо отключить модуль shaper, активировать модуль pppd_compat и добавить параметры:
[pppd-compat] ip-up=/var/mikbill/policer/interface_up.sh ip-down=/var/mikbill/policer/interface_down.sh radattr-prefix=/tmp/radattr verbose=1
iptables
eth0 - Аплоад интерфейс
rx - имя листа ratelimit для входящего трафика
tx - имя листа ratelimit для исходящего трафика
iptables -A FORWARD -i eth0 -m ratelimit --ratelimit-set rx --ratelimit-mode dst -j DROP iptables -A FORWARD -o eth0 -m ratelimit --ratelimit-set tx --ratelimit-mode src -j DROP
cron
# в 01:00 ночи активируем ночной интервал 00 01 * * * root cd /var/mikbill/policer && ./limit_night.sh > /dev/null 2>&1 # в 09:00 активируем дневной интервал 00 09 * * * root cd /var/mikbill/policer && ./limit_day.sh > /dev/null 2>&1
Debug
После настройки и перезапуска службы ацель, в папке /tmp будут создаваться файлы вида:
ipoe123_shaper.log
где ipoe123 - название интерфейса абонента при авторизации, в него будет заноситься информация какая скорость ему была установлена.
файлы
/proc/net/ipt_ratelimit/rx /proc/net/ipt_ratelimit/tx
содержат общую информацию по установленным скоростям, количеству срабатываний и т.д.