Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:other:freeradiusdhcp_stepbystep [2013/09/01 13:45] 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===== | ||
Строка 62: | Строка 64: | ||
$AUTH{dhcp}='Mac_auth'; | $AUTH{dhcp}='Mac_auth'; | ||
+ | # использовать для DHCP leases записей базу | ||
+ | $conf{DHCPHOSTS_LEASES}='db'; | ||
+ | # включить авторизацию по порту и коммутатору | ||
+ | $conf{DHCPHOSTS_PORT_BASE}=1; | ||
по умолчанию система контролирует дублирование маков, чтобы это обойти нужно в '' Настройки / SQL Commander '' сделать | по умолчанию система контролирует дублирование маков, чтобы это обойти нужно в '' Настройки / SQL Commander '' сделать | ||
Строка 103: | Строка 108: | ||
====Управления пользователем==== | ====Управления пользователем==== | ||
+ | |||
+ | ===Заведение абонента для авторизации по MAC коммутатора и и порту=== | ||
+ | |||
+ | **Завести учётную запись абонента** | ||
+ | * ( '' / Клиенты/ Логины/ Добавить '') | ||
+ | * Создать ему услугу Internet | ||
+ | * Прописать в услуге IP/DHCP параметры: | ||
+ | * сеть абонента | ||
+ | * порт | ||
+ | * коммутатор | ||
+ | |||
+ | |||
''/ Клиенты / Логины / Информация / Сервисы / IP (DHCP)''\\ | ''/ Клиенты / Логины / Информация / Сервисы / IP (DHCP)''\\ | ||
Строка 123: | Строка 140: | ||
- | ===Заведение абонента для авторизации по MAC коммутатора и и порту=== | ||
- | **Завести учётную запись абонента** | ||
- | * ( '' / Клиенты/ Логины/ Добавить '') | ||
- | * Создать ему услугу Internet | ||
- | * Прописать в услуге IP/DHCP параметры: | ||
- | * сеть абонента | ||
- | * порт | ||
- | * коммутатор | ||
\\ | \\ | ||
Если абонент успешно авторизировался в журнале активных сессий появляется об этом запись ''/ Мониторинг/ Internet/''. Если абоненту не удаётся авторизироваться нужно проверить журнал ошибок подключения ''/ Отчёт/ Internet/ Ошибка/'' \\ | Если абонент успешно авторизировался в журнале активных сессий появляется об этом запись ''/ Мониторинг/ Internet/''. Если абоненту не удаётся авторизироваться нужно проверить журнал ошибок подключения ''/ Отчёт/ Internet/ Ошибка/'' \\ | ||
+ | [[/abills:docs:modules:dhcphosts:ru?&#spisok_oshibok_avtorizacii|Список ошибок подключения]] | ||
+ | \\ | ||
- | Edge-Core ES-3528M | ||
- | Huawei S2318TP-EI | ||
- | D-link..." - что это за выражения? Куда их вписывать? Правильно ли я понял, что это параметры добавляемые в поле "RADIUS Параметры (,)" при создании нового сервера доступа, в качестве которого будет выступать свитч? | ||
- | "Данные о домене, DNS, NetMask, шлюзе система берёт в настройках DHCP сетей (/ System configuration/ DHCP Networks/), или можно их у казать в радиус парах сервера доступа." - как она оттуда их берет, тем более, что сеть для тестовых целей я туда еще не добавлял? | + | ====Мониторинг активных сессий==== |
- | Для тестовых целей выделена сеть 193.176.251.192/28. Ее я кстати указал как дополнительный тестовый IP Pool. | + | '' / Мониторинг/ Internet/ '' |
+ | |||
+ | Отображаются активные сессии абонентов | ||
+ | |||
+ | \\ | ||
- | "Дополнительные Radius Пары" - где они прописываются? | + | ====Мониторинг резерва адресов==== |
- | Идем дальше. | + | '' / Мониторинг/ 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 на неопределенное время. | ||