Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:modules:dhcphosts:freeradius_dhcp:ru [2016/10/04 15:55] asmodeus |
abills:docs:modules:dhcphosts:freeradius_dhcp:ru [2018/04/27 14:16] (текущий) asmodeus [Включение шейпера (ipoe_shapper)] |
||
---|---|---|---|
Строка 7: | Строка 7: | ||
Преимущества модуля: | Преимущества модуля: | ||
* Работа в реальном времени, не нужны перезагрузки и формирования файлов конфигурации | * Работа в реальном времени, не нужны перезагрузки и формирования файлов конфигурации | ||
- | * Раздача динамических адресов Mikr | + | * Раздача динамических адресов Mikrotik |
* Отсутствие привязки к MAC адресу абонента | * Отсутствие привязки к MAC адресу абонента | ||
* Авторизация учитывая параметры: коммутатор, порт, vlan. Параметры могут учитываться все или по отдельности в зависимости от их указания в профайле абонента | * Авторизация учитывая параметры: коммутатор, порт, vlan. Параметры могут учитываться все или по отдельности в зависимости от их указания в профайле абонента | ||
Строка 18: | Строка 18: | ||
**Как работает** \\ | **Как работает** \\ | ||
+ | * Абонентское устройство подключается к сети через комутатор или несколько комутаторов по технологии IPoE. При включении сетевого устройства отправляется запрос на получение IP адреса. | ||
+ | |||
+ | возможны следующие схемы подключения: | ||
+ | |||
+ | ** Абонент - Коммутатор - Билинг сервер с Freeradius DHCP ** | ||
+ | |||
+ | ** Абонент - Коммутатор - Mikrotik (DHCP Relay) - Билинг сервер с Freeradius DHCP ** | ||
+ | |||
* для активных абонентов существуют пулы адресов из которых они выдаются, конечно если не прописан адрес на абонента статически (то есть прописано 0.0.0.0). Адреса выдаются с прикреплённых к серверу доступа пулов адресов. | * для активных абонентов существуют пулы адресов из которых они выдаются, конечно если не прописан адрес на абонента статически (то есть прописано 0.0.0.0). Адреса выдаются с прикреплённых к серверу доступа пулов адресов. | ||
Строка 51: | Строка 59: | ||
**настройка радиус**\\ | **настройка радиус**\\ | ||
Скопировать файл конфигурации в конфигурационный каталог /usr/local/etc/ | Скопировать файл конфигурации в конфигурационный каталог /usr/local/etc/ | ||
- | # cp /usr/abills/misc/freeradius/v2/dhcp.conf raddb/sites-enabled/ | + | # cp /usr/abills/misc/freeradius/v2/dhcp.conf raddb/sites-enabled |
| | ||
Строка 57: | Строка 65: | ||
если не подключён , - добавьте строку : | если не подключён , - добавьте строку : | ||
$INCLUDE /usr/local/share/freeradius/dictionary.dhcp | $INCLUDE /usr/local/share/freeradius/dictionary.dhcp | ||
- | + | # Debian | |
- | + | $INCLUDE /usr/local/freeradius/share/freeradius/dictionary.dhcp | |
- | Обязательно внесите изменения в **dictionary.dhcp** | + | |
- | * удалить секцию | + | |
- | + | ||
- | ATTRIBUTE DHCP-Relay-Agent-Information 82 tlv | + | |
| | ||
- | BEGIN-TLV DHCP-Relay-Agent-Information | + | Заполнить ** %DHCP_SERVER_IP% ** |
- | ... | + | vim /usr/local/freeradius/etc/raddb/sites-enabled/dhcp.conf |
- | END-TLV DHCP-Relay-Agent-Information | + | |
- | + | ||
- | + | ||
- | * добавить секцию | + | |
- | + | ||
- | + | ||
- | ATTRIBUTE DHCP-Relay-Agent-Information 82 octets | + | |
- | ATTRIBUTE DHCP-Agent-Circuit-Id 0x0152 octets | + | |
- | ATTRIBUTE DHCP-Agent-Remote-Id 0x0252 octets | + | |
\\ | \\ | ||
Строка 91: | Строка 85: | ||
^$conf{DHCPHOSTS_LEASES}='db'; | Включение в мониторинга leases сессий | | ^$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{DHCP_FREERADIUS_DEBUG}=1; | Режимы отладки \\ 1 - Режим сессий (файл: /tmp/rad_dhcp) \\ 2 - Режим ответов авторизации. (Файл: /tmp/rad_reply) \\ 3 - Режим выражений для проверки параметров Option 82 (Файл /tmp/dhcphosts_expr) | | ||
- | ^$conf{AUTH_EXPR}='-'; | Так как производители оборудования (коммутаторов) не всегда придерживаются стандартов при формирование запросов DHCP Option 82 в системе была создана возможность задать регулярное выражение для получения нужных параметров из DHCP запроса . Использовать дополнительные выражения для получения корректных данных с запросов от коммутаторов в которых параметры опции 82 отличаются от стандартных. \\ формат выражения через точку с запятой: \\ ** радиус_пара:условия:переменные:hex2ansii;условия переменные.... ** \\ \\ **радиус_пара** - радиус пара запроса \\ **условия** - условия поиска Perl выражение \\ **переменные** - переменные результата VLAN PORT NAS_MAC MAC MAC_DEC (если мак не нужно преобразовывать в шестнадцатеричный из десятеричного) PORT_DEC (если не нужно преобразовывать порт из десятеричного в шестнадцатеричный формата) \\ **hex2ansii** - если указан єтот параметр система перед вычислением нужных переменных преобразует строку с шестнадцатеричного формата в текстовый \\ \\ \\ система при получении параметра проверяет нужно ли использовать внешние выражения если да начинает проходится по списку при попадании в параметры перебор прекращается и система подставляет выбранные VLAN PORT MAC MAC_DEC (если мак не нужно приобразовывать в десятичный форма из шестнадцатиричного) PORT_DEC (если не нужно приобразовывать порт из десятеричного шестнадцатиричного формата) в DHCP-Agent-Circuit-Id и DHCP-Agent-Remote-Id дальше уже идут стандартные процедуры работы с DHCP. При включении выражений система отключает шаблон по умолчанию для распознавания коммутаторов | | + | ^$conf{AUTH_EXPR}='-'; | [[abills:docs:modules:dhcphosts_expr:ru|Регулярные выражения]] | |
- | ^$conf{DHCPHOSTS_AUTH_PARAMS}=1; |Авторизация по совокупности заполненных параметров MAC,PORT,VLAN,NAS_ID \\ **При использовании данной опции отключите $conf{DHCPHOSTS_PORT_BASE} ** | | + | ^$conf{AUTH_PARAMS}=1; |Авторизация по совокупности заполненных параметров MAC,PORT,VLAN,NAS_ID \\ **При использовании данной опции отключите $conf{DHCPHOSTS_PORT_BASE} ** | |
^$conf{DHCPHOSTS_GUEST_STATIC_IP}=1; |По умолчанию через каждый алайв период система выдаёт гостевому абоненту новые IP адрес. При включении данной опции система постоянно выдаёт тот же IP что прописан в аккаунте (IP/DHCP) | | ^$conf{DHCPHOSTS_GUEST_STATIC_IP}=1; |По умолчанию через каждый алайв период система выдаёт гостевому абоненту новые IP адрес. При включении данной опции система постоянно выдаёт тот же IP что прописан в аккаунте (IP/DHCP) | | ||
Строка 129: | Строка 123: | ||
+ | ====Включение шейпера (ipoe_shapper)==== | ||
+ | Ограничение пропускаемой полосы занимается **/usr/abills/libexec/ipoe_shapper.pl**.\\ | ||
+ | Программа работает в режиме демона и каждый 10 секунд проверяет нет ли новых сессий в мониторинге биллинга и заносит IP адреса новых абонентов в таблицы шейпера. \\ | ||
+ | В режиме IPN_SHAPPER программа для каждого нового подключения выполняет поднятие правил шейпера програмами IPN управления ($conf{IPN_FW_START_RULE}). Также в этом режиме выполняются правила $conf{IPN_FILTER}. | ||
+ | |||
+ | Программа не следить за депозитом или возможность доступа абонента, она выполняете поднятие шейпера для активных абонентов. Функции авторизации возложены на авторизатор, а функции слежения на программу **billd** . | ||
+ | |||
+ | Правила шейпера при завершении сесии возложены на контролер сессий **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)\\ | ||
+ | \\ | ||
+ | **/etc/rc.conf** | ||
+ | |||
+ | abills_dhcp_shaper="YES" | ||
+ | abills_dhcp_shaper_nas_ids="1,2" #список серверов доступа для контроля программой ipoe_shaper | ||
+ | интерфейс шейпера ( опционально ) | ||
+ | abills_ipn_if='em0'; | ||
+ | |||
+ | другие параметры [[abills:docs:manual:shaper_start|shaper_start.sh]] | ||
+ | |||
+ | |||
+ | **Отслеживать ошибки выдачи адресов можно через меню**\\ | ||
+ | '' / Отчёт/ Internet/ Ошибка/ '' \\ | ||
+ | \\ | ||
+ | |||
+ | Привязка к серверам доступа осуществляется используя параметр | ||
+ | **DHCP-Gateway-IP-Address** как IP сервера доступа, если этот параметр не найден используется параметр **DHCP-Server-IP-Address**. | ||
+ | Будьте внимательны параметр **Radius NAS-Identifier** не учитывается и если у вас несколько серверов с одинаковым IP система может использовать любой их них в случайном порядке | ||
+ | |||
+ | |||
+ | **Включили сервер но запросы в radius не попадают**\\ | ||
+ | |||
+ | Включили сервер но запросы в радиус не попадают | ||
+ | |||
+ | radiusd -X | ||
+ | |||
+ | пусто | ||
+ | |||
+ | хотя в tcpdump они есть | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | скорее всего не доступен (не пингуется адрес Gateway-IP 172.18.1.1) | ||
+ | |||
+ | Gateway-IP 172.18.1.1 | ||
+ | |||
+ | |||
+ | =====Дополнительно===== | ||
+ | |||
+ | * [[abills:docs:other:freeradiusdhcp_linux|Freeradius DHCP + Linux]] | ||
+ | * [[abills:docs:other:freeradiusdhcp_stepbystep|Freeradius DHCP + FreeBSD]] |