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

Ключ

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

...

  • Работа в реальном времени, не нужны перезагрузки и формирования файлов конфигурации

  • Раздача динамических адресов Mikrotik

  • Отсутствие привязки к MAC адресу абонента

  • Авторизация учитывая параметры: коммутатор, порт, vlan. Параметры могут учитываться все или по отдельности, в зависимости от их указания в профайле абонента

  • Ведение гостевой сети для не авторизированных абонентов и абонентов с отрицательным балансом

  • Авторегистрация новых абонентов

  • Специально разработанный шейпер для данного модуля (ipoe_shapper.pl - для шейпера используется механизм dummynet)

  • Работает со всем оборудованием, которое поддерживает DHCP Option 82 (RFC 3046)

  • Работа с Mikrotik DHCP серверомMikrotik DHCP сервером

Как работает:

  • Абонентское устройство подключается к сети через коммутатор или несколько коммутаторов по технологии IPoE. При включении сетевого устройства отправляется запрос на получение IP адреса.

...


config.pl Прописать ниже переменной %AUTH=();

Блок кода
$AUTH{dhcp}='Mac_auth2';

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

Блок кода
cp Mac_auth2.pm /usr/abills/Abills/mysql/

Настройка радиус

Скопировать файл конфигурации в конфигурационный каталог /usr/local/etc/

Блок кода
cp /usr/abills/misc/freeradius/v3/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%

Блок кода

...

nano /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{NAS_PORT_AUTH}=1;Авторизовать абонента с учётом его порта подключения (SWITCH,PORT). Мак адрес не учитывается. Система следит чтобы на порту было не больше 1 авторизированного абонента
$conf{NAS_SECOND_MAC_AUTH}=1;Данная опция расширяет параметр $conf{NAS_PORT_AUTH}=1; Если не находится абонента по порту и комутатору система повторно ищет подходящего абонента по MAC адресу.
$conf{DHCPHOSTS_SWITCH_MAC_AUTH}='1,2,…';Список коммутаторов, в которых принудительно авторизировать по MAC адресу при включённой опции $conf{NAS_PORT_AUTH}
$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{AUTH_EXPR_DEBUG}=1;Режимы отладки 
1 - Режим сессий (файл: /tmp/rad_dhcp
2 - Режим ответов авторизации. (Файл: /tmp/rad_reply) 
3 - Режим выражений для проверки параметров Option 82 (Файл /tmp/dhcphosts_expr)
$conf{AUTH_EXPR}='-';Регулярные выражения
$conf{AUTH_PARAMS}=1;

Авторизация по совокупности заполненных параметров USER_MAC,PORT,VLAN,NAS_ID 
При использовании данной опции отключите $conf{NAS_PORT_BASE}


При включении этой опции внимательно следите чтобы не дублировались комбинации NAS PORT VLAN. При нахождении нескольких учеток по параметрам авторизации система не будет авторизировать такие запросы. Лучший выход из ситуации назначать номер порта -1  для всех учеток где не определен номер порта.


Также в параметре можно жестко задать поля по которым делать поиск

Например

$conf{AUTH_PARAMS}='USER_MAC,VLAN';

Система будет искать по MAC  абонента и VLAN


Доступные поля:

NAS_MAC
USER_MAC
VLAN
SERVER_VLAN
PORT
$conf{INTERNET_GUEST_STATIC_IP}=1;По умолчанию, через каждый алайв период система выдаёт гостевому абоненту новые IP адрес. При включении данной опции система постоянно выдаёт тот же IP что прописан в аккаунте (IP/DHCP)
$conf{INTERNET_STATUS_NEG_DEPOSIT}=1;Выдавать гостевой IP  для абонентов заблокированных по статусу услуги.

После внесения каких либо изменений по модулю в конфигурационный файл перезагружайте RADIUS.

Данные о домене, DNS, NetMask, шлюзе система берёт в настройках DHCP сетей (Настройка>Сервера доступа>IP Pools), или можно их у казать в радиус парах сервера доступа (Настройка>Сервер доступа). 

Дополнительные 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:MAC адрес коммутатора

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

...

Правила шейпера при завершении сессии возложены на контролер сессий billd.

Параметры

-dЗапускать в режиме демона (По умолчанию включено)
LOG_FILE=…Путь к файлу логов
UPDATE_TIME=…Период проверки новых подключений указывается в секундах (По умолчанию 10 секунд)
DEBUG=…Режим отладки 1-7 (Default: 8)
NAS_IDS=Номер сервера доступа, для которого поднимать правила шейпера (По умолчанию: Все)
IPN_SHAPPERВключить режим поднятия шейпера правилами IPN
Блок кода
cd /usr/abills/libexec/ 
ln -s ../Abills/modules/Dhcphosts/ipoe_shapper.pl ipoe_shapper.pl

...

Включение:
перед включением убедитесь что скрипт поднятия шейпера установлен /usr/local/etc/rc.d/shaper_start.sh

Блок кода
title/etc/rc.conf
abills_dhcp_shaper="YES" 
abills_dhcp_shaper_nas_ids="1,2" 

...

#список серверов доступа для контроля программой ipoe_shaper

интерфейс шейпера (опционально)

Блок кода
abills_ipn_if='em0';

Другие параметры shaper_start.sh

Отслеживать ошибки выдачи адресов можно через меню Отчёт>Интернет+>Ошибка
Привязка к серверам доступа осуществляется используя параметр DHCP-Gateway-IP-Address как IP сервера доступа, если этот параметр не найден используется параметр DHCP-Server-IP-Address.

...

Включили сервер но запросы в радиус не попадают

Блок кода
radiusd -X

...

пусто

хотя в tcpdump они есть

Блок кода
tcpdump -vvvv  -i enp0s25 -n port 67
tcpdump: listening on enp0s25, link-type EN10MB (Ethernet), capture size 262144 bytes

14:04:11.786327 IP (tos 0xe0, ttl 255, id 2997, offset 0, flags [none], proto UDP (17), length 328)
    172.18.1.1.67 > 192.168.0.3.67: [udp sum ok] BOOTP/DHCP, Request from 00:00:00:00:11:11, length 300, hops 1, xid 0xb12938e9, Flags [none] (0x0000)
          Gateway-IP 172.18.1.1
          Client-Ethernet-Address 00:00:00:00:11:11
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Discover
            Client-ID Option 61, length 7: ether 00:00:00:00:11:11
            Hostname Option 12, length 4: "nout"
            Vendor-Class Option 60, length 8: "MSFT 5.0"
            Parameter-Request Option 55, length 12:
              Subnet-Mask, Domain-Name, Default-Gateway, Domain-Name-Server
              Netbios-Name-Server, Netbios-Node, Netbios-Scope, Router-Discovery
              Static-Route, Classless-Static-Route, Classless-Static-Route-Microsoft, Vendor-Option
            END Option 255, length 0
            PAD Option 0, length 0, occurs 17

скорее всего не доступен (не пингуется адрес Gateway-IP 172.18.1.1)

Блок кода
Gateway-IP 172.18.1.1


Дополнительно