Различия

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

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

Следующая версия
Предыдущая версия
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.+
-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 -../​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 на неопределенное время.