Задаем скорость
Проверяем тарифные планы , в каждом тарифном плане должны присутствовать настроенные "Интервалы" и "Тариф трафика" с указанной скоростью для ТП.
Авторизация по SSH ключу
Для выполнения команд нужно создать SSH сертификат с пустым паролем и залить его на Mikrotik по ftp.
Перед созданием сертификата убедитесь что на Mikrotik'е включён сервис ftp, ssh.
Загружаем ключи и сертификаты :
Code Block | ||
---|---|---|
| ||
# shell MIKROTIK_USERNAME='логин_для_микротика' MIKROTIK_IP='айпи_адрес_микротика' /usr/abills/misc/certs_create.sh ssh abills_admin -UPLOAD_FTP ${MIKROTIK_USERNAME}@${MIKROTIK_IP} # спросит пароль, загрузит ключи |
На Микротике создаем пользователя и подключаем ему наш сгенерированный ключ :
Code Block | ||
---|---|---|
| ||
[admin@mikrotik]> user add name=abills_admin group=write [admin@mikrotik]> user ssh-keys import public-key-file=id_rsa.abills_admin.pub user=abills_admin |
Проверяем с биллинг сервера правильно ли мы все сделали (в консоль должно вывести name: MikroTik) :
Code Block | ||
---|---|---|
| ||
ssh -l abills_admin -i /usr/abills/Certs/id_rsa.abills_admin ${MIKROTIK_IP} "/system identity print" |
Самостоятельная активация сессии IPN абонентом
Добавить правила для перенаправления на клиентский кабинет для подключения к IPN :
Code Block | ||
---|---|---|
| ||
/ip firewall nat add chain=dstnat action=dst-nat to-addresses=10.0.0.10 to-ports=80 protocol=tcp src-address=192.168.6.0/24 dst-address=0.0.0.0/0 dst-port=80 |
Инициализация и контроль правил шейпера
Code Block | ||
---|---|---|
| ||
/usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1 NAS_IDS=1 |
Параметры для скрипта :
Ключ | Значение |
---|---|
NAT=1 | Поднять маскарадинг для всех адрес листов |
SKIP_NAT_IPS=xxx.xxx.xxx.xxx | Не маскарадить обращения к адресу |
NAS_IDS=1 | Номер сервера доступа |
Пример правила открытия доступа для модуля Ipn (тип сервера - mikrotik_dhcp)
Warning |
---|
Сертификат SSH (/usr/abills/Certs/id_rsa.abills_admin) должен быть доступен пользователю под которым работает веб сервер |
abills/libexec/config.pl
Code Block | ||
---|---|---|
| ||
$conf{IPN_FW_START_RULE}='SUDO=/usr/local/bin/sudo; CMD="${SUDO} /usr/abills/libexec/linkupdown ipn up getif %LOGIN %IP %DEBUG > /dev/null 2>&1"; if [ "${NAS_TYPE}" = "mikrotik_dhcp" ]; then CMD="/usr/abills/libexec/linkupdown mikrotik up - %LOGIN %IP NAS_HOST=${NAS_MNG_IP_PORT} NAS_MNG_USER=${NAS_MNG_USER}"; elif [ "${NAS_MNG_IP_PORT}" != "" ]; then CMD="/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.${NAS_MNG_USER} ${NAS_MNG_USER}@${NAS_MNG_IP_PORT} \"${CMD}\""; fi; eval "${CMD}"'; $conf{IPN_FW_STOP_RULE}='SUDO=/usr/local/bin/sudo; CMD="${SUDO} /usr/abills/libexec/linkupdown ipn down getif %LOGIN %IP %DEBUG > /dev/null 2>&1"; if [ "${NAS_TYPE}" = "mikrotik_dhcp" ]; then CMD="/usr/abills/libexec/linkupdown mikrotik down - %LOGIN %IP NAS_HOST=${NAS_MNG_IP_PORT} NAS_MNG_USER=${NAS_MNG_USER}"; elif [ "${NAS_MNG_IP_PORT}" != "" ]; then CMD="/usr/bin/ssh -o StrictHostKeyChecking=no -i /usr/abills/Certs/id_rsa.${NAS_MNG_USER} ${NAS_MNG_USER}@${NAS_MNG_IP_PORT} \"${CMD}\""; fi; eval "${CMD}"'; |
Подсчет трафика
Необходимо установить и настроить пакет flow-tools по инструкции : Установка flow-tools
Вносим в /etc/crontab
Code Block | ||
---|---|---|
| ||
*/5 * * * * root /usr/abills/libexec/traffic2sql 2 flowdir=/usr/abills/var/log/ipn/ |
Настройка Mikrotik для подсчета трафика
Нам нужно настроить Микротик чтоб он слушал и отправлял flow пакеты на биллинг сервер для их последующей обработки с помощью колектора (flow-tools).
В консоли Микротика :
Code Block | ||
---|---|---|
| ||
/ip traffic-flow set enabled=yes /ip traffic-flow target add address=10.0.0.10:9996 version=5 /ip traffic-flow set interfaces=ether3 active-flow-timeout=30m inactive-flow-timeout=15s cache-entries=4k enabled=yes ; |
в данном случае нам интересны 2 параметра :
ether3 | интерфейс на котором слушать |
10.0.0.10 | адрес сервера обработки flow пакетов (Сервер биллинга) |
Включение активных пользователей
Данная команда автоматически включает всех пользователей с положительным депозитом или правами получать сервис.
Активируются только те пользователи у которых прописан IP адрес сервиса Internet. Также обязательно на IPN серверах доступа
прописать пулы адресов для таких пользователей чтобы система знала на каких серверах доступа активировать абонентов.
Code Block | ||
---|---|---|
| ||
/usr/abills/libexec/periodic monthly MODULES=Ipn LOGON_ACTIVE_USERS |
Параметры скрипта :
Параметр | Значение |
---|---|
NAS_IDS=1,2 | Идентификаторы серверов доступа. По умолчанию система переинициализирует пользователей на всех серверах доступа с типом 'ipcad' |
TP_ID=3,6 | Номера тарифных планов для активации. По умолчанию все |
LOGIN=test,test3 | Логины пользователей. По умолчанию все |
GID=1 | Группы пользователей |
DEBUG=… | Дебаг режимы 1-4 Детализация процесса 5 - Отображать команды на выполнение 6 - Отображать команды но не выполнять |
В конфиге abills/libexec/config.pl опция :
$conf{IPN_DHCP_ACTIVE}=1; | Включать сервис для всех IP адресов прописанных в IP (DHCP) секции абонента. С начало включаются адреса Internet сервиса если они не равны 0.0.0.0, а потом адреса IP сервиса. |
Контроль активных соединений
Контролем активных соединений и отключением абонентов с негативным депозитом занимается программа billd
Добавление нового пользователя
При добавлении нового пользователя на "Шаг 3" - "Internet+" , в IPoE / DHCP Option 82 → Активация IPN ставим галку и продолжаем регистрацию дальше как обычно.