Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
abills:docs:modules:dhcphosts:ru [2016/09/07 12:10]
asmodeus [Возможности]
abills:docs:modules:dhcphosts:ru [2017/05/17 11:42] (текущий)
anton [IP guard]
Строка 284: Строка 284:
   * Создание статической ARP таблицы   * Создание статической ARP таблицы
  
-  $conf{DHCPHOSTS_RECONFIGURE}='/​usr/​bin/​scp -o StrictHostKeyChecking=no -i /​usr/​abills/​Certs/​id_dsa.abills_admin '.+  $conf{DHCPHOSTS_RECONFIGURE}='/​usr/​bin/​scp -o StrictHostKeyChecking=no -i /​usr/​abills/​Certs/​id_rsa.abills_admin '.
     '/​usr/​local/​etc/​dhcpd.conf '.     '/​usr/​local/​etc/​dhcpd.conf '.
     '​abills_admin\@10.10.20.16:/​usr/​local/​etc/​dhcpd.conf;​ '.     '​abills_admin\@10.10.20.16:/​usr/​local/​etc/​dhcpd.conf;​ '.
-  '/​usr/​bin/​scp -o StrictHostKeyChecking=no -i /​usr/​abills/​Certs/​id_dsa.abills_admin /​usr/​abills/​var/​ipguard '.+  '/​usr/​bin/​scp -o StrictHostKeyChecking=no -i /​usr/​abills/​Certs/​id_rsa.abills_admin /​usr/​abills/​var/​ipguard '.
     '​abills_admin\@10.10.20.16:/​usr/​abills/​var/​ipguard;​ '.     '​abills_admin\@10.10.20.16:/​usr/​abills/​var/​ipguard;​ '.
-  '/​usr/​bin/​ssh -o StrictHostKeyChecking=no -i /​usr/​abills/​Certs/​id_dsa.abills_admin abills_admin\@10.10.20.16 "/​usr/​local/​bin/​sudo /​usr/​local/​etc/​rc.d/​isc-dhcpd restart;'​ .+  '/​usr/​bin/​ssh -o StrictHostKeyChecking=no -i /​usr/​abills/​Certs/​id_rsa.abills_admin abills_admin\@10.10.20.16 "/​usr/​local/​bin/​sudo /​usr/​local/​etc/​rc.d/​isc-dhcpd restart;'​ .
   '/​bin/​cat /​usr/​abills/​var/​ipguard | /​usr/​bin/​awk \'\$1 !~ /#/ { print \$2 \" \" \$1 }\' > /​usr/​abills/​var/​arp_static ;'.   '/​bin/​cat /​usr/​abills/​var/​ipguard | /​usr/​bin/​awk \'\$1 !~ /#/ { print \$2 \" \" \$1 }\' > /​usr/​abills/​var/​arp_static ;'.
   ' /​usr/​local/​bin/​sudo /​usr/​sbin/​arp -ad ;'.   ' /​usr/​local/​bin/​sudo /​usr/​sbin/​arp -ad ;'.
Строка 298: Строка 298:
 **Загрузка ARP  таблицу ​ на Mikrotik** \\ **Загрузка ARP  таблицу ​ на Mikrotik** \\
  
-  $conf{DHCPHOSTS_RECONFIGURE}='/​bin/​cat /​usr/​abills/​var/​ipguard | /​usr/​bin/​awk \'\$1 !~ /#/ { print "/ip arp add address="​ \$2 " mac-address="​ \$1 " interface=Norq-ETH " } \' | /​usr/​bin/​ssh -t -i /​usr//​abills/​Certs/​id_dsa.abills_admin abills_admin@10.0.0.3';​+  $conf{DHCPHOSTS_RECONFIGURE}='/​bin/​cat /​usr/​abills/​var/​ipguard | /​usr/​bin/​awk \'\$1 !~ /#/ { print "/ip arp add address="​ \$2 " mac-address="​ \$1 " interface=Norq-ETH " } \' | /​usr/​bin/​ssh -t -i /​usr//​abills/​Certs/​id_rsa.abills_admin abills_admin@10.0.0.3';​
  
   ​   ​
Строка 414: Строка 414:
  
  
-=====Freeradius DHCP==== 
-__**Freeradius DHCP не может одновременно работать с isc-dhcp, по этому перед запуском Freeradius DHCP отключите isc dhcp, если он включён**__ \\ 
  
-{{http://abills.net.ua/img/dhcp_freeradius.gif}} \\+====Включение шейпера (ipoe_shapper)==== 
 +Ограничение пропускаемой полосы занимается **/usr/abills/libexec/ipoe_shapper.pl**.\\ 
 +Программа работает в режиме демона и каждый 10 секунд проверяет нет ли новых сессий в мониторинге биллинга и заносит IP  адреса новых абонентов в таблицы шейпера. \\ 
 +В режиме IPN_SHAPPER программа для каждого нового подключения выполняет поднятие правил шейпера програмами IPN управления ($conf{IPN_FW_START_RULE}). Также в этом режиме выполняются правила $conf{IPN_FILTER}.
  
-Для более ​гибкой ​раздачи IP адресов был разработан новый механизм выдачи ​адресов используя функции DHCP FreeRadius. +Программа не следить за депозитом или возможность доступа абонентаона выполняете поднятие ​шейпера для активных абонентов. Функции авторизации возложены на авторизатора функции слежения на программу **billd** .
-Преимущества модуля: +
-  * Работа ​в реальном времени,​ не нужны перезагрузки и формирования файлов конфигурации +
-  * Раздача динамических адресов Mikr +
-  * Отсутствие ​привязки к MAC адресу ​абонента +
-  * Авторизация учитывая параметры: коммутатор, ​порт, vlan. Параметры могут учитываться все или ​по отдельности в зависимости от их указания в профайле абонента +
-  * Ведение гостевой сети для ​не авторизированных абонентов и абонентов с отрицательным балансом +
-  * Авторегистрация новых абонентов +
-  * Специально разработанный шейпер для данного модуля (ipoe_shapper.pl -  для шейпера используется ​механизм  ​dummynet). +
-  * Работает со всем оборудованием которое поддерживает DHCP Option 82 (RFC 3046) +
-  ​[[abills:​docs:​nas:​mikrotik:​dhcp|Работа с Mikrotik DHCP сервером ]]+
  
 +Правила шейпера при завершении сесии возложены на контролер сессий **billd**.
  
-**Как работает** \\ 
-  * для активных абонентов существуют пулы адресов из которых они выдаются,​ конечно если не прописан адрес на абонента статически (то есть прописано 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 
- 
- 
- ​Обязательно внесите изменения в **dictionary.dhcp** 
-  * удалить секцию 
- 
-  ATTRIBUTE ​     DHCP-Relay-Agent-Information ​           82      tlv 
-  ​ 
-  BEGIN-TLV ​      ​DHCP-Relay-Agent-Information 
-  ... 
-  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 
- 
- 
-\\ 
-Если все прошло успешно при старте 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}='​-';​ | Так как производители оборудования (коммутаторов) не всегда придерживаются стандартов при формирование запросов 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{DHCPHOSTS_AUTH_PARAMS}=1;​ |Авторизация по совокупности заполненных параметров MAC,​PORT,​VLAN,​NAS_ID \\ **При использовании данной опции отключите $conf{DHCPHOSTS_PORT_BASE} **  | 
-^$conf{DHCPHOSTS_GUEST_STATIC_IP}=1;​ |По умолчанию через каждый алайв период система выдаёт ​ гостевому абоненту новые ​ IP адрес. При включении данной опции система постоянно выдаёт тот же  IP что прописан в аккаунте (IP/​DHCP) ​ | 
- 
- 
-**После внесения каких либо изменений по модулю в конфигурационный файл перезагружайте RADIUS** 
- 
- 
- 
- 
-  * [[abills:​docs:​modules:​dhcphosts_expr:​ru|Примеры Выражений]] 
- 
-Данные о домене,​ 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: | Мак адресе коммутатора | 
- 
- 
-**если нужна динамическая выдача адресов обязательно выберите пул для коммутатора ** 
- 
- 
-====Включение шейпера (ipoe_shapper)==== 
-Ограничение пропускаемой полосы занимается **/​usr/​abills/​libexec/​ipoe_shapper.pl**.\\ 
-Программа работает в режиме демона и каждый 10 секунд проверяет нет ли новых сессий в мониторинге биллинга и заносит IP  адреса новых абонентов в таблицы шейпера. \\ 
-В режиме IPN_SHAPPER программа для каждого нового подключения выполняет поднятие правил шейпера програмами IPN управления ($conf{IPN_FW_START_RULE},​$conf{IPN_FW_STOP_RULE}). Также в этом режиме выполняются правила $conf{IPN_FILTER} 
  
 Параметры \\ Параметры \\