=====Mikrotik IPN=====
===Самостоятельная активация сессия IPN абонентом===
Добавить правила для перенаправления на клиентский кабинет для подключения к IPN
/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
====Инициализация и контроль правил шейпера====
# /usr/abills/libexec/billd checkspeed mikrotik RECONFIGURE=1 NAS_IDS=1
Дополнительные параметры
|NAT=1 | Поднять маскарадинг для всех адрес листов |
|SKIP_NAT_IPS=xxx.xxx.xxx.xxx | Не маскарадить обращения к адресу |
|NAS_IDS=1 | Номер сервера доступа |
**config.pl**
- Пример правила открытия доступа для модуля Ipn
**abills/libexec/config.pl**
Для типа сервера - mikrotik-dhcp:
$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}"';
**Сертификат SSH (/usr/abills/Certs/id_rsa.abills_admin) должен быть доступен абоненту под которым работает веб сервер **
====Подсчет трафика====
Устанавливаем пакет [[abills:docs:manual:other:flowtools:ru#freebsd|flow-tools]]
Вносим в **/etc/crontab**
*/5 * * * * root /usr/abills/libexec/traffic2sql 2 flowdir=/usr/abills/var/log/ipn/
подробно о [[abills:docs:modules:ipn:ru|IPN]]
=== Настройка Mikrotik для подсчета трафика ===
**Слушать и отправлять flow пакеты на сервер для их подальшей обработки с помощью колектора (flow-tools)**
Через консоль
/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 ;
ether3 - интерфейс на котором слушать\\
10.0.0.10 - адрес сервера обработки flow пакетов (Сервер биллинга)
====Включение активных пользователей====
Данная команда автоматически включает всех пользователей с положительным депозитом или правами получать сервис. Активируются только те пользователи у которых прописан IP адрес сервиса Internet. Также обязательно на IPN серверах доступа прописать пулы адресов для таких пользователей чтобы система знала на каких серверах доступа активировать абонентов.
# /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 - Отображать команды но не выполнять |
**config.pl**
^$conf{IPN_DHCP_ACTIVE}=1; | Включать сервис для всех IP адресов прописанных в IP (DHCP) секции абонента. С начало включаются адреса Internet сервиса если они не равны 0.0.0.0, а потом адреса IP сервиса. |
====Контроль активных соединений====
Контролем активных соединений и отключением абонентов с негативным депозитом занимается программа [[abills:docs:manual:periodic:periodic#billd|billd]]