Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
abills:docs:modules:dhcphosts:freeradius_dhcp:ru [2016/09/07 12:11]
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 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]]