| Оглавление |
|---|
Для управления данным функционалом нужен
...
модуль Freeradius DHCP.
Начиная в версии 0.74 есть альтернатива для Freeradius DHCP. - управление через mikrotik_dhcp_leases.pl
Управление DHCP серверами на Mikrotik'e
При данной схеме работы DHCP запросы клиентов приходят на Mikrotik DHCP, затем Mikrotik их трансформирует в radius запрос и отправляет на RADIUS сервер где происходит авторизация пакета и отправка результата на Mikrotik. После получения результата от RADIUS сервера Mikrotik формирует пакет DHCP для клиента.
...
Динамическая и статическая раздача 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
Подсчет трафика
...
Настройка mikrotik
Для начала надо в микротике включить клиента netflow
...
| Примечание | ||
|---|---|---|
| ||
| Версия NetFlow 5 |
Сервис mikrotik_ipoe
Подсчет трафика осуществляется системным процессом mikrotik_ipoe
| Предупреждение |
|---|
| Перед установкой системного юнита, в файле config.pl уже должны быть прописаны параметры иначе сервис завершится с ошибкой! |
Установка сервиса
Копируем системный юнит
| Блок кода | ||
|---|---|---|
| ||
cp /usr/abills/misc/collector/mikrotik_ipoe.service /etc/systemd/system/ |
Проверяем что путь до сервиса правильный
| Блок кода | ||||
|---|---|---|---|---|
| ||||
[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
|
Сохраняем и активируем
| Блок кода | ||
|---|---|---|
| ||
systemctl daemon-reload
systemctl enable mikrotik_ipoe
systemctl start mikrotik_ipoe |
Удаление системного юнита
| Блок кода | ||
|---|---|---|
| ||
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 нужно перезапустить коллектор |
| Блок кода | ||
|---|---|---|
| ||
systemctl restart mikrotik_ipoe |
Шейпер
| Примечание |
|---|
| Временно! Включение шейпера для ROS7 осуществляется не только через интервалы, но и передачу параметров RADIUS, напрямую с тарифного плана |
Возможные ошибки
Нет связи с радиусом
| Блок кода |
|---|
/log print 17:28:45 dhcp,error ONU: radius authentication failed for 40:ED:98:60:33:59: RADIUS server is not responding |
...

