Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:modules:dhcphosts:ru [2016/08/13 15:39] asmodeus [Настройка оборудования] |
abills:docs:modules:dhcphosts:ru [2017/05/17 11:42] (текущий) anton [IP guard] |
||
---|---|---|---|
Строка 15: | Строка 15: | ||
* Гостевой вход | * Гостевой вход | ||
* Авто активация и включение активных абонентов (при использовании вместе с модулем [[abills:docs:modules:Ipn:ru|Ipn]]) | * Авто активация и включение активных абонентов (при использовании вместе с модулем [[abills:docs:modules:Ipn:ru|Ipn]]) | ||
+ | * [[abills:docs:modules:dhcphosts:freeradius_dhcp:ru|Freeradius DHCP]] - Иновационная система управления адресами | ||
====Установка==== | ====Установка==== | ||
Строка 283: | Строка 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 ;'. | ||
Строка 297: | Строка 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'; |
| | ||
Строка 413: | Строка 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} | ||
Параметры \\ | Параметры \\ | ||
Строка 617: | Строка 494: | ||
=====Настройка оборудования===== | =====Настройка оборудования===== | ||
- | [[abills:docs:modules:dhcphosts:switch_configure:ru|Настройка оборудования]] | + | * [[abills:docs:modules:dhcphosts:switch_configure:ru|Настройка оборудования]] |