Это старая версия документа.
Freeradius DHCP
Freeradius DHCP не может одновременно работать с isc-dhcp, по этому перед запуском Freeradius DHCP отключите isc dhcp, если он включён
Для более гибкой раздачи IP адресов был разработан новый механизм выдачи адресов используя функции DHCP FreeRadius. Преимущества модуля:
- Работа в реальном времени, не нужны перезагрузки и формирования файлов конфигурации
- Раздача динамических адресов Mikr
- Отсутствие привязки к MAC адресу абонента
- Авторизация учитывая параметры: коммутатор, порт, vlan. Параметры могут учитываться все или по отдельности в зависимости от их указания в профайле абонента
- Ведение гостевой сети для не авторизированных абонентов и абонентов с отрицательным балансом
- Авторегистрация новых абонентов
- Специально разработанный шейпер для данного модуля (ipoe_shapper.pl - для шейпера используется механизм dummynet).
- Работает со всем оборудованием которое поддерживает DHCP Option 82 (RFC 3046)
Как работает
- для активных абонентов существуют пулы адресов из которых они выдаются, конечно если не прописан адрес на абонента статически (то есть прописано 0.0.0.0). Адреса выдаются с прикреплённых к серверу доступа пулов адресов.
- для должников и незарегистрированных абонентов выдаются адреса из пулов гостевых IP
- по окончанию периода оренды адреса адрес абонента считается свободным и может выдаваться другому абоненту
- если абонент постоянно работает и по правилам DHCP через половину лиз периода отправляет пакет подтверждения то его сесия продолжается
- под это все сделан шейпер который поднимает правила для активных абонентов, может поднимать на сервера FreeBSD, Linux, а также на коммутаторах и есть поддержка использовать независимые внешние программы для шейпера
- конечно же поддержка Option 82 c возможностью задавать шаблоны распознавания параметров коммутаторов, так как не все производители оборудования придерживаются стандратов
Включение и настройка
config.pl
Прописать ниже переменной %AUTH=();
$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
Если все прошло успешно при старте 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,…'; | Список коммутаторов в которых принудительно авторизировать по мак адресу при включённой опции $conf{DHCPHOSTS_PORT_BASE} |
$conf{DHCPHOSTS_GUEST_POOLS}='VLAN:POOL_ID:EXT_PARAMS' | Объявление гостевого пула адресов. Данный пул выдаётся не авторизированным абонентам и абонентам с отрицательным балансом. Параметры: VLAN - Влан абонента POOL_ID - Номер пула адресов в системе ABillS (заводится / Система/ Сервер доступа/ IP Pools) EXT_PARAMS - Дополнительные радиус параметры для данного пула. Система предоставляет возможность заводить на каждый Vlan свой гостевой пул. Правила пулов разделяются точкой с запятой (;). Пример: $conf{DHCPHOSTS_GUEST_POOLS}='0:3:DHCP-Router-Address=10.22.0.1,DHCP-Subnet-Mask=255.255.252.0,DHCP-Domain-Name-Server=192.168.111.254'; |
$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{DHCPHOSTS_AUTH_PARAMS}=1; | Авторизация по совокупности заполненных параметров MAC,PORT,VLAN,NAS_ID При использовании данной опции отключите $conf{DHCPHOSTS_PORT_BASE} |
$conf{DHCPHOSTS_GUEST_STATIC_IP}=1; | По умолчанию через каждый алайв период система выдаёт гостевому абоненту новые IP адрес. При включении данной опции система постоянно выдаёт тот же IP что прописан в аккаунте (IP/DHCP) |
После внесения каких либо изменений по модулю в конфигурационный файл перезагружайте RADIUS
Данные о домене, DNS, NetMask, шлюзе система берёт в настройках DHCP сетей (/ Настройка / DHCP Сети/
), или можно их у казать в радиус парах сервера доступа (/Настройка /Сервер доступа
).
Дополнительные Radius Пары (указываются в Настройка /Настройка /Сервер доступа
)
DHCP-Domain-Name-Server='8.8.8.8' | адрес DNS сервера |
---|---|
DHCP-Subnet-Mask=255.255.255.255 | маска сети |
DHCP-Server-IP-Address='10.2.0.1' | Адрес шлюза |
DHCP-Router-Address='10.2.0.1' | Адрес шлюза |
Assign-Ports='1,24,25,' | Определение разрешённых портов коммутатора. По умолчанию разрешены все порты |
Настройка сервера доступа
/Настройка/ Сервер доступу/
IP: | IP адрес коммутатора. |
Name: | Название |
Alive: | Время длительности перед повторным запросом IP (По умолчанию 600) |
Type: | dhcp |
Mac: | Мак адресе коммутатора |
если нужна динамическая выдача адресов обязательно выберите пул для коммутатора