Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
abills:docs:other:freeradiusdhcp_stepbystep [2013/09/01 13:17] asmodeus создано |
abills:docs:other:freeradiusdhcp_stepbystep [2017/04/28 18:59] (текущий) anton [Настройка Freeradius] |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
В предполагается что базовая система ABillS уже установлена ([[abills:docs:manual:install:ru|Универсальная установка]]). | В предполагается что базовая система ABillS уже установлена ([[abills:docs:manual:install:ru|Универсальная установка]]). | ||
- | ====Настройка Freeradius==== | + | \\ |
- | Копируем конфигурационный файл файл работы с DHCP | + | |
- | cp /usr/abills/misc/freeradius/v2/dhcp.conf raddb/sites-enabled/ | + | |
- | также в файле заменяем %DHCP_SERVER_IP% на ip адрес Вашего сервера | + | __**Freeradius DHCP не может одновременно работать с isc-dhcp, по этому перед запуском Freeradius DHCP отключите isc dhcp если он включён**__ \\ |
- | подключаем словарь работы с dhcp | ||
- | **raddb/dictionary** | ||
- | $INCLUDE /usr/local/share/freeradius/dictionary.dhcp | + | =====Установка freeradius===== |
- | В словаре делаем следующие правки | + | **FreeBSD** |
- | - удалить секцию | + | cd /usr/ports/net/freeradius2 && make install clean |
+ | |||
+ | **Linux** | ||
+ | |||
+ | Лучше всего собрать с исходников. Сборки которые идут в дистрибутивах не всегда стабильно работают | ||
+ | ====Настройка Freeradius==== | ||
+ | Копируем конфигурационный файл файл работы с DHCP | ||
- | ATTRIBUTE DHCP-Relay-Agent-Information 82 tlv | + | cp /usr/abills/misc/freeradius/v2/dhcp.conf /usr/local/freeradius/etc/raddb/sites-enabled/ |
- | BEGIN-TLV DHCP-Relay-Agent-Information | + | |
- | ... | + | |
- | END-TLV DHCP-Relay-Agent-Information | + | |
- | - добавить секцию | + | также в файле заменяем %DHCP_SERVER_IP% на ip адрес Вашего сервера |
- | ATTRIBUTE DHCP-Relay-Agent-Information 82 octets | + | подключаем словарь работы с dhcp |
- | ATTRIBUTE DHCP-Agent-Circuit-Id 0x0152 octets | + | |
- | ATTRIBUTE DHCP-Agent-Remote-Id 0x0252 octets | + | |
+ | **raddb/dictionary** | ||
+ | |||
+ | $INCLUDE /usr/local/freeradius/share/freeradius/dictionary.dhcp | ||
Если все правильно сделано при старте радиуса в режиме отладки видит что он слушает 67 порт | Если все правильно сделано при старте радиуса в режиме отладки видит что он слушает 67 порт | ||
Строка 38: | Строка 38: | ||
Listening on dhcp address 192.168.1.41 port 67 as server dhcp | Listening on dhcp address 192.168.1.41 port 67 as server dhcp | ||
+ | |||
+ | Если нет строчки ''Listening on dhcp...'', вставьте в конец radiusd.conf | ||
+ | $INCLUDE sites-enabled/dhcp.conf | ||
=====Настройка ABillS===== | =====Настройка ABillS===== | ||
+ | Загружаем дамп базы | ||
+ | |||
+ | # mysql --default-character-set=utf8 -D abills < db/Dhcphosts.sql | ||
+ | |||
+ | Устанавливаем модуль авторизации | ||
# cp Mac_auth.pm /usr/abills/Abills/mysql/ | # cp Mac_auth.pm /usr/abills/Abills/mysql/ | ||
- | Прописываем авторизацию для серверов доступа с типом DHCP через Mac_auth.pm | + | Подключение модуля. abills/libexec/config.pl |
+ | |||
+ | @MODULES = ( | ||
+ | 'Dhcphosts' | ||
+ | ); | ||
+ | |||
+ | Прописываем авторизацию для серверов доступа с типом DHCP через Mac_auth.pm | ||
\\ | \\ | ||
Строка 51: | Строка 64: | ||
$AUTH{dhcp}='Mac_auth'; | $AUTH{dhcp}='Mac_auth'; | ||
+ | # использовать для DHCP leases записей базу | ||
+ | $conf{DHCPHOSTS_LEASES}='db'; | ||
+ | # включить авторизацию по порту и коммутатору | ||
+ | $conf{DHCPHOSTS_PORT_BASE}=1; | ||
+ | по умолчанию система контролирует дублирование маков, чтобы это обойти нужно в '' Настройки / SQL Commander '' сделать | ||
- | Затем: | + | ALTER TABLE dhcphosts_hosts DROP KEY mac; |
+ | ALTER TABLE dhcphosts_hosts DROP KEY ip; | ||
- | "Примеры Выражений | + | После всех выше перечисленных настроек в меню ''/ Клиенты / Логины /'' появится меню **IP (DHCP)** Если у Вас не появилось данное меню значит у вас ограничены права на данный модуль. Для включения прав ''/ Настройки / Администраторы''. |
- | Edge-Core ES-3528M | ||
- | Huawei S2318TP-EI | ||
- | D-link..." - что это за выражения? Куда их вписывать? Правильно ли я понял, что это параметры добавляемые в поле "RADIUS Параметры (,)" при создании нового сервера доступа, в качестве которого будет выступать свитч? | ||
- | "Данные о домене, DNS, NetMask, шлюзе система берёт в настройках DHCP сетей (/ System configuration/ DHCP Networks/), или можно их у казать в радиус парах сервера доступа." - как она оттуда их берет, тем более, что сеть для тестовых целей я туда еще не добавлял? | + | ===Настройка сервера доступа=== |
+ | Для авторизации по порту и коммутатору нужно завести коммутаторы в систему как сервера доступа | ||
- | Для тестовых целей выделена сеть 193.176.251.192/28. Ее я кстати указал как дополнительный тестовый IP Pool. | ||
- | "Дополнительные Radius Пары" - где они прописываются? | + | ''/Настройки/ Сервер доступу/''\\ |
+ | |||
+ | |IP:| IP адрес коммутатора. | | ||
+ | |Name: | Название | | ||
+ | |Type: | dhcp | | ||
+ | |Mac: | Мак адресе коммутатора | | ||
+ | |||
+ | |||
+ | ===Заведение сетей абонентов=== | ||
+ | Абоненты с управлением на ethernet уровне обязательно должны быть присвоены к сетям во время их регистрации в системе ABillS. Заведение сетей ''/ Настройка / IP (DHCP) Сети'' | ||
+ | |||
+ | |||
+ | ^Network name: | Название сети | | ||
+ | ^Network address: | Сетевой адрес. \\ (Например: 10.10.1.0) | | ||
+ | ^NETMASK: | Маска сети | | ||
+ | ^Default router: | Маршрут по умолчанию. | | ||
+ | ^IP Range: | Диапазон выдаваемых адресов. | | ||
+ | ^Static: | При включении данной опции ip адреса пула раздаются как статические при регистрации услуги в данной dhcp сети, если опции нету система автоматически подставляет в конфигурационный файл range xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx для данной сети | | ||
+ | ^Phone: | Номер телефона координатора сети | | ||
+ | ^DNS: | DNS (Domain Name Server). Сервер доменных имён | | ||
+ | ^DOMAINNAME: | Домен по умолчанию | | ||
+ | ^Disable: | Отключить сеть | | ||
+ | ^Guest VLAN: | Гостевой влан для данной сети. Используется программой snmp_utills.pl для переноса должников в гостевой влан. | | ||
+ | |||
+ | |||
+ | |||
+ | ====Управления пользователем==== | ||
+ | |||
+ | ===Заведение абонента для авторизации по MAC коммутатора и и порту=== | ||
+ | |||
+ | **Завести учётную запись абонента** | ||
+ | * ( '' / Клиенты/ Логины/ Добавить '') | ||
+ | * Создать ему услугу Internet | ||
+ | * Прописать в услуге IP/DHCP параметры: | ||
+ | * сеть абонента | ||
+ | * порт | ||
+ | * коммутатор | ||
+ | |||
+ | |||
+ | ''/ Клиенты / Логины / Информация / Сервисы / IP (DHCP)''\\ | ||
+ | |||
+ | {{:abills:docs:modules:dhcphosts:dhch_user.png?200|}} \\ | ||
+ | |||
+ | Заведение пользователя для выдачи адреса DHCP-сервером | ||
+ | ^Host name:| Название хоста | | ||
+ | ^Networks: | Сеть | | ||
+ | ^IP: | IP-адрес, который выдавать клиенту | | ||
+ | ^Auto: | Авто присвоение следующего свободного адреса из сети клиенту. Адреса автоматически выбираются из поля IP Range сети. | | ||
+ | ^MAC: | MAC клиента | | ||
+ | ^Expire: | Время окончания действия правила | | ||
+ | ^Disable: | Блокировать | | ||
+ | ^Comments: | Комментарии | | ||
+ | ^**Option 82**| | ||
+ | ^Port | Порт комутатора | | ||
+ | ^VID | Vlan ID| | ||
+ | ^NAS | Привязать к коммутатору | | ||
+ | ^Активации IPN: | Активировать для данного IP услугу IPN (IPoE). При включении этой опции клиент будет автоматически активироваться при положительно депозите и активном статусе услуги Internet | | ||
+ | |||
+ | |||
+ | |||
+ | \\ | ||
+ | Если абонент успешно авторизировался в журнале активных сессий появляется об этом запись ''/ Мониторинг/ Internet/''. Если абоненту не удаётся авторизироваться нужно проверить журнал ошибок подключения ''/ Отчёт/ Internet/ Ошибка/'' \\ | ||
+ | |||
+ | [[/abills:docs:modules:dhcphosts:ru?&#spisok_oshibok_avtorizacii|Список ошибок подключения]] | ||
+ | |||
+ | \\ | ||
+ | |||
+ | |||
+ | ====Мониторинг активных сессий==== | ||
+ | |||
+ | '' / Мониторинг/ Internet/ '' | ||
+ | |||
+ | Отображаются активные сессии абонентов | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ====Мониторинг резерва адресов==== | ||
- | Идем дальше. | + | '' / Мониторинг/ DHCP/ '' |
- | Настройка сервера доступа | + | Отображаются зарезервированные IP адреса и параметры подключения абонентов: коммутатора, порт, VLAN, MAC адрес |
- | /Сиcтема/Сервер доступу/ | + | |
- | Для тестовых целей мы разместили свитч D-Link (DES-3200-18, Firmware: Build 1.28.009). Управление свитчом доступно по адресу 192.168.50.10. На него выведен vlan1022. На свитче применил включение dhcp по инструкции. | + | ====Определение не стандартных параметров Option 82==== |
- | #Маршрутизатор по умолчанию | + | Если система автоматически не может определить параметры Вашего коммутатора (скорее всего производители коммутатора отдают параметры опции 82 не придерживаясь стандарта) можно воспользоваться выражениями авто определения параметров или написать свои собственные для данной модели. За дополнительные выражения отвечает опция $conf{DHCPHOSTS_EXPR}. |
- | create iproute default 192.168.50.254 | + | |
- | # адрес DHCP сервера | + | |
- | config dhcp_relay add ipif System 192.162.111.4 | + | |
- | config dhcp_relay option_82 state enable | + | |
- | enable dhcp_relay | + | |
- | и сохранил настройки (save). | + | ^$conf{DHCPHOSTS_EXPR}='-'; | Использовать дополнительные выражения для получения корректных данных с запросов от комутаторов в которых параметры опции 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{DHCP_FREERADIUS_DEBUG} |
- | IP: 192.168.50.10 | + | ^$conf{DHCP_FREERADIUS_DEBUG}=1; | Режимы отладки \\ 1 - Режим сессий (файл: /tmp/rad_dhcp) \\ 2 - Режим ответов авторизации. (Файл: /tmp/rad_reply) \\ 3 - Режим выражений для проверки параметров Option 82 (Файл /tmp/dhcphosts_expr) | |
- | Название: Switch_192.168.50.10_TEST | + | |
- | Radius NAS-Identifier: - что сюда писать то? В документации информации не нашел. | + | |
- | Описание: Свитч для тестов | + | |
- | Тип: dhcp DHCP FreeRadius in DHCP mode | + | |
- | MAC: 84:c9:b2:03:f5:4c | + | |
- | Модель: пусто | + | |
- | Авторизация: SQL | + | |
- | External Accounting: ничего не выбрано. | + | |
- | Alive (sec.): 0 | + | |
- | Управление: | + | |
- | IP:PORT: 192.168.50.10:23 | + | |
- | Пользователь и пароль указаны для доступа по телнет. | + | |
- | RADIUS Параметры (,) - вписал сюда из "документации" вот это (как для Dlink DES-3200-26 для Hw A1,B1 Firmware Version1.28.009): | ||
- | DHCP-Relay-Agent-Information:0x(01)(06)0004([0-9a-f]{4})d{2}([0-9a-f]{2})(02)(080006)([0-9a-f]{12}):ID,SIZE,VLAN,PORT,ID,SIZE,MAC; | ||
- | После этого я отправился создать тестового пользователя. | ||
- | Логин sw_test | ||
- | (UID: 2838) | ||
- | На шаге добавления пользователя "Шаг: 3 Internet" мой квест под названием "познай FreeRadius-DHCP" зашел в тупик, ибо я надеялся тут увидеть выбор сервера доступа (свитча), и/или выбор номера порта на свитче в который включен мой тестовый абонент. Но ничего подобного я не увидел. Поэтому: | ||
- | Уважаемые разработчики! | + | =====Шейпер и открытие доступа===== |
- | Данный модуль (расширение) стоит 450 долларов. Согласитесь, это немалые деньги. Мы купим этот модуль у вас, поскольку понимаем ценность перехода на систему статической выдачи адресов уходя от PPPoE. Вот только покупать "кота в мешке" не хочется. Пожалуйста, без обид, но именно так выглядит сейчас данный модуль без четко прописанной документации к нему. Пожалуйста, отнеситесь с пониманием, и либо напишите вменяему документацию "как для дибилов", пошагово разжевывая все моменты процесса настройки или же, выполните самостоятельную настройку нашего тестового свитча, доведите его до _работоспособного_ состояния, чтобы мы затем по готовому примеру смогли дальше настроить все остальные коммутаторы. | + | Для шейпинга существует программа **ipoe_shaper.pl ** она поднимает активные сессии через **linkupdown** |
- | После суток ковыряний, у меня остается очень много непоняток по настройке, которые я тут не изложил. Голова пухнет. И если откровенно, не до конца даже понятна схема и логика работы сего модуля. Я понимаю, что документировать продукт - это долго, неинтересно и есть дела более важные. Но продукт то коммерческий. Как ни крути, толковая дока к нему должна прилагаться. | + | cd /usr/abills/libexec/ |
+ | ln -s ../Abills/modules/Dhcphosts/ipoe_shaper.pl | ||
- | Я прошу вас, помогите с настройкой! | ||
- | Тестовый свитч, как я уже писал выше D-Link DES-3200-18 по адресу 192.168.50.10. | ||
- | Доступен он как с сервера доступа 192.162.111.3, так и с биллинг сервера 192.162.111.4 (маршрут в сеть 192.168.50.0/24 задан через route). Логин и пароль для доступа к свитчу вбиты в настройках серверов доступа. | ||
- | Какая еще нужна информация? Мы готовы ее предоставить! | ||
- | Естественно, переход с PPPoE на FreeRadius-DHCP - процесс не моментальный. Поэтому необходимо будет сохранить в первое время параллельную работу двух способов предоставления услуги. После отладки и тестирований на тестовом свитче мы будем осуществлять плавный перевод абонентов на новую схему работы. Правда, будут и такие абоненты, которые останутся на PPPoE на неопределенное время. | ||