Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

Для управления данным функционалом нужен модуль модуль Freeradius DHCP.

Начиная в версии 0.74 есть альтернатива для Freeradius DHCP. - управление через mikrotik_dhcp_leases.pl
Управление DHCP серверами на Mikrotik'e

...

  • Динамическая и статическая раздача IP адресов

  • Option 82 (Удобная система интеграции с любым нестандартным оборудованием)

  • Нарезка скорости абонентам

  • Гостевой доступ

Настройка

Скопировать модуль

...

config.pl

Блок кода
$AUTH{mikrotik_dhcp}='Mac_auth2';
$ACCT{mikrotik_dhcp}='Mac_auth2';
Примечание
данная опция должна быть обязательно под опцией %AUTH=();

Так как DNS, маска сети и шлюз прописываются на Mikrotik (/ IP / DHCP Servers/ Networks ) и их нельзя изменить через RADIUS.

...

Примечание: сеть, которая должна будет выдаваться абоненту - должна быть предварительно записана на BRAS'e.

Настройка DHCP

через терминал

Блок кода
/ip dhcp-server add interface=ether2 address-pool=static-only authoritative=after-2sec-delay use-radius=yes lease-time=10m disabled=no
/radius add address=192.168.1.62 secret=secretpass timeout=3000ms authentication-port=1812 accounting-port=1813 service=dhcp

с помощью Winbox


IP > DHCP Server > New DHCP Server

...

Блок кода
Sending Access-Accept of id 19 to 193.106.59.230 port 55118
        Mikrotik-Address-List = "CLIENTS_12"
        Session-Timeout = 300
        Framed-IP-Address = 10.10.1.200


Пример выражения


Блок кода
$conf{AUTH_EXPR}='Agent-Circuit-Id:0x0004(\S{4})\d{2}([0-9a-f]{2}):VLAN,PORT;Agent-Remote-Id:0x0006([0-9a-f]{12}):MAC;'
. 'Agent-Circuit-Id:0x([0-9a-f]{4})\d{2}([0-9a-f]{4})$:VLAN,PORT_DEC;Agent-Remote-Id:0x([0-9a-f]{12})$:MAC;';

примеры выражений

Шейпер

По умолчанию система производит шейпер по средством правил

Блок кода
	Ascend-Xmit-Rate = 2097152
    Ascend-Data-Rate = 1048576

если включить опцию $conf{INTERNET_EXTERNAL_SHAPPER}=1; (для старых версий $conf{DHCPHOSTS_EXTERNAL_SHAPPER}=1;) система будет производить шейпер через внешние табличные правила и добавлять абонента в адрес лист через

Блок кода
Mikrotik-Address-List = "CLIENTS_67"

где CLIENT_67 это CLIENT_ префикс адрес листа, а 67 ID тарифного плана

ISC-DHCP

При использовании ISC-DHCP настраиваем DHCP RELAY на микротике с помощью Winbox

IP > DHCP RELAY

Image Removed

Подсчет трафика

Подсчет трафика осуществляется через модуль IPN.

...

ISC-DHCP

При использовании ISC-DHCP настраиваем DHCP RELAY на микротике с помощью Winbox

IP > DHCP RELAY

Image Added

Подсчет трафика

Настройка mikrotik

Для начала надо в микротике включить клиента netflow

IP→TrafficFlow

Image Added

Настроить цель, куда отсылать

Targets

Image Added

Примечание
titleОбязательно
Версия NetFlow 5

Сервис mikrotik_ipoe

Подсчет трафика осуществляется системным процессом mikrotik_ipoe

Предупреждение
Перед установкой системного юнита, в файле config.pl уже должны быть прописаны параметры иначе сервис завершится с ошибкой!

Установка сервиса

Копируем системный юнит

Блок кода
languageshell
cp /usr/abills/misc/collector/mikrotik_ipoe.service /etc/systemd/system/

Проверяем что путь до сервиса правильный

Блок кода
languageshell
titlenano /etc/systemd/system/mikrotik_ipoe.service
[Unit]
Description="АСР Казна-39" NetFlow Collector for Mikrotik ROS
After=network.target

[Service]
User=root
WorkingDirectory=/usr/abills/libexec   # Путь до биллинга
ExecStart=perl /usr/abills/libexec/nf52sql.pm   # Путь до сервиса
Restart=always
TimeoutSec=200

[Install]
WantedBy=multi-user.target

Сохраняем и активируем

Блок кода
languageshell
systemctl daemon-reload
systemctl enable mikrotik_ipoe
systemctl start mikrotik_ipoe

Удаление системного юнита

Блок кода
languageshell
systemctl stop mikrotik_ipoe
systemctl disable mikrotik_ipoe
rm nano /etc/systemd/system/mikrotik_ipoe.service
systemctl daemon-reload

Параметры в файле config.pl

ПараметрЗначение

$conf{NETFLOW}=1;

Включение сервиса/выключения сервиса без перезапуска процесса
$conf{NETFLOW_PORT}=9995;Порт, на котором слушать flow от микротика
$conf{NETFLOW_INTERVAL}=15;

Если прошло указанное количество секунд, , независимо от количества накопленных потоков, скрипт выполняет обработку данныхю

По умолчанию 15

$conf{NETFLOW_FLOW_LIMIT}=100;

Если количество накопленных потоков достигает лимита, скрипт немедленно выполняет обработку данных, даже если интервал времени ещё не истёк.

По умолчанию 1000

$conf{NETFLOW_USER_REFRESH_INTERVAL}=60;

Время, в секундах, обновления выполнения скрипта, необходима для "подхватывания" новых абонентов из таблицы internet_online.

По умолчанию 300 (5 минут)

$conf{NETFLOW_NAS_IDS}='59';Номера серверов доступа, через запятую
$conf{FLOW_DIR} = '/usr/abills/var/log/ipn/';Папка для хранения логов
$conf{FLOWTOOLS_IP_AGGREGATION}=0;Ускорение работы скрипта


Предупреждение
После ЛЮБОГО изменения в файле config.pl нужно перезапустить коллектор
Блок кода
languageshell
systemctl restart mikrotik_ipoe

Шейпер

Примечание
Временно! Включение шейпера для ROS7 осуществляется не только через интервалы, но и передачу параметров RADIUS, напрямую с тарифного плана

Image Added

Возможные ошибки

Нет связи с радиусом


Блок кода
/log print
17:28:45 dhcp,error ONU: radius authentication failed for 40:ED:98:60:33:59: RADIUS server is not responding 

...