====== День/Ночь для Accel ======
Только для debian
===== Установка модуля 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 для того что бы сервер ацеля смог получать необходимую информацию.\\
Замените 10.0.0.1 на IP ацеля с которого он будет подключаться к базе
Данные команды вводятся в консоле **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\\
{{:billing:howto:тариф.jpg?nolink&|}}\\
Время можно не трогать так как скрипт его не учитывает.
==== Полисер ====
Установим mysql-client:\\
apt-get install mysql-client
Скачаем {{:billing:howto:policer.tar.gz|архив}} с файлами и распакуем его\\
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
содержат общую информацию по установленным скоростям, количеству срабатываний и т.д.