Freeradius DHCP не может одновременно работать с isc-dhcp, по этому перед запуском FreeradiusDHCP отключите isc dhcp, если он включён
Для более гибкой раздачи IP адресов был разработан новый механизм выдачи адресов используя функции DHCP FreeRadius.
Преимущества модуля:
Работа в реальном времени, не нужны перезагрузки и формирования файлов конфигурации
Раздача динамических адресов Mikrotik
Отсутствие привязки к MAC адресу абонента
Авторизация учитывая параметры: коммутатор, порт, vlan. Параметры могут учитываться все или по отдельности, в зависимости от их указания в профайле абонента
Ведение гостевой сети для не авторизированных абонентов и абонентов с отрицательным балансом
Авторегистрация новых абонентов
Специально разработанный шейпер для данного модуля (ipoe_shapper.pl - для шейпера используется механизм dummynet)
Работает со всем оборудованием, которое поддерживает DHCP Option 82 (RFC 3046)
Как работает:
Абонентское устройство подключается к сети через коммутатор или несколько коммутаторов по технологии IPoE. При включении сетевого устройства отправляется запрос на получение IP адреса.
Возможны следующие схемы подключения:
Абонент - Коммутатор - Билинг сервер с Freeradius DHCP
Абонент - Коммутатор - Mikrotik (DHCP Relay) - Билинг сервер с Freeradius DHCP
Для активных абонентов существуют пулы адресов из которых они выдаются, конечно если не прописан адрес на абонента статически (то есть прописано 0.0.0.0). Адреса выдаются с прикреплённых к серверу доступа пулов адресов
Для должников и незарегистрированных абонентов выдаются адреса из пулов гостевых IP
По окончанию периода аренды адреса адрес абонента считается свободным и может выдаваться другому абоненту
Если абонент постоянно работает и, по правилам DHCP, через половину leases периода отправляет пакет подтверждения, то его сессия продолжается
Под это все сделан шейпер, который поднимает правила для активных абонентов, может поднимать на сервера FreeBSD, Linux, а также на коммутаторах и есть поддержка использовать независимые внешние программы для шейпера
Конечно же, поддержка Option 82 c возможностью задавать шаблоны распознавания параметров коммутаторов, так как не все производители оборудования придерживаются стандартов
Включение и настройка
$AUTH{dhcp}='Mac_auth';
Скопировать модуль каталог билинга
cp Mac_auth.pm /usr/abills/Abills/mysql/
по умолчанию система контролирует дублирование маков, чтобы это обойти нужно в Настройка>SQL Commander сделать
ALTER TABLE dhcphosts_hosts DROP KEY mac; ALTER TABLE dhcphosts_hosts DROP KEY ip;
Настройка радиус
Скопировать файл конфигурации в конфигурационный каталог /usr/local/etc/
cp /usr/abills/misc/freeradius/v2/dhcp.conf raddb/sites-enabled
Убедитесь то в raddb/dictionary подключён модуль dictionary.dhcp
если не подключён, - добавьте строку:
$INCLUDE /usr/local/share/freeradius/dictionary.dhcp # Debian $INCLUDE /usr/local/freeradius/share/freeradius/dictionary.dhcp
Заполнить %DHCP_SERVER_IP%
vim /usr/local/freeradius/etc/raddb/sites-enabled/dhcp.conf
Если все прошло успешно при старте radiusd -X программа покажет, что открыла 67 порт для dhcp запросов.
Listening on dhcp address 192.168.1.41 port 67 as server dhcp
Дополнительные опции
$conf{DHCPHOSTS_PORT_BASE}=1; | Авторизовать абонента с учётом его порта подключения (SWITCH,PORT). Мак адрес не учитывается. Система следит чтобы на порту было не больше 1 автоматизированного абонента |
---|---|
$conf{DHCPHOSTS_SWITCH_MAC_AUTH}='1,2,…'; | Список коммутаторов, в которых принудительно авторизировать по MAC адресу при включённой опции $conf{DHCPHOSTS_PORT_BASE} |
$conf{DHCPHOSTS_GUEST_POOLS}='VLAN:POOL_ID:EXT_PARAMS' | Объявление гостевого пула адресов. Данный пул выдаётся не авторизированным абонентам и абонентам с отрицательным балансом. Параметры: |
$conf{DHCPHOSTS_LEASES}='db'; | Включение в мониторинга leases сессий |
$conf{DHCP_FREERADIUS_DEBUG}=1; | Режимы отладки 1 - Режим сессий (файл: /tmp/rad_dhcp) 2 - Режим ответов авторизации. (Файл: /tmp/rad_reply) 3 - Режим выражений для проверки параметров Option 82 (Файл /tmp/dhcphosts_expr) |
$conf{AUTH_EXPR}='-'; | Регулярные выражения |
$conf{AUTH_PARAMS}=1; | Авторизация по совокупности заполненных параметров MAC,PORT,VLAN,NAS_ID При использовании данной опции отключите $conf{DHCPHOSTS_PORT_BASE} |
$conf{DHCPHOSTS_GUEST_STATIC_IP}=1; | По умолчанию, через каждый алайв период система выдаёт гостевому абоненту новые IP адрес. При включении данной опции система постоянно выдаёт тот же IP что прописан в аккаунте (IP/DHCP) |