dm765 Posted October 29, 2009 Posted October 29, 2009 (edited) Добрый день уважаемые коллеги! В системе работает несколько ВПН серверов и один Радиус. Пользователи авторизуются и получают динамические ИП адреса на Радиус-сервере. Радиус сервер работает на: radius# uname -aFreeBSD 7.1-RELEASE radius# pkg_info freeradius-1.1.7_3 В качестве ВПН сервера выступает Микротик. Одновременно обычно работает 20 пользователей, т.е. 20 PPtP сессий. В конфиге радиуса задан пул на 254 ИП адреса. Периодически возникает проблема при подключении пользователя - сервер не может выдать ИП адрес. Решается удалением файлов db.user_ip_pool и db.user_ip_pool_index и перезагрузкой процесса radiusd. В radiusd.conf относительно пулов адресов прописано так ippool user_ip_pool { range-start = 192.168.54.1 range-stop = 192.168.54.254 netmask = 255.255.255.0 cache-size = 260 session-db = ${raddbdir}/db.user_ip_pool ip-index = ${raddbdir}/db.user_ip_pool_index override = no maximum-timeout = 0 } Edited October 29, 2009 by dm765 Вставить ник Quote
SmalleR Posted October 29, 2009 Posted October 29, 2009 Не используйте для этого радиус! Зачем он нужен? Пропишите IP пул в настройках ppp профиля в Mikrotik. Вставить ник Quote
terrible Posted October 29, 2009 Posted October 29, 2009 SmalleR, +1 Если адреса динамические - пусть их задаёт PPP сервер, если статические - задавайте радиусом Вставить ник Quote
dm765 Posted October 29, 2009 Author Posted October 29, 2009 У меня 1 блок ИП адресов (с 192.168.54.1 по 192.168.54.254) на несколько ВПН серверов и у каждого пользователя свои ограничения по скорости. Поэтому удобнее когда адреса выдаются централизовано из одного источника. Все адреса динамические. Когда в качестве ВПН серверов использовался MPD5 то такой проблемы замечено не было. Вставить ник Quote
terrible Posted October 29, 2009 Posted October 29, 2009 Не понял, причем тут IP адреса и ограничения скорости? У вас чем скорость ограничивается? Вставить ник Quote
dm765 Posted October 29, 2009 Author Posted October 29, 2009 Пользователи получают адреса из пула с 192.168.54.1 по 192.168.54.254 Скорость ограничивает радиус. Запись для пользователя в радиусе test User-Password == "teые", Pool-Name := "user_ip_pool" Mikrotik-Rate-Limit += "4096k/4096k" Вставить ник Quote
SmalleR Posted October 29, 2009 Posted October 29, 2009 У меня 1 блок ИП адресов (с 192.168.54.1 по 192.168.54.254) на несколько ВПН серверов и у каждого пользователя свои ограничения по скорости. Поэтому удобнее когда адреса выдаются централизовано из одного источника. Все адреса динамические. Когда в качестве ВПН серверов использовался MPD5 то такой проблемы замечено не было. А как бордер узнаёт, каким "ВПН сервером" сейчас обслуживается клиент с выданным IP адресом из одного блока? Mikrotik-Rate-Limit += "4096k/4096k"Зачем тогда знать IP для ограниичения скорости, если используется этот атрибут? Вставить ник Quote
mousus Posted October 29, 2009 Posted October 29, 2009 а разве радиус у вас не базой на postgresql/mysql работает?? помоему выдавать адреса из базы можно, немного подправив саму базу и хранимые процедуры в ней отвечающие за ответ радиусу Вставить ник Quote
dm765 Posted October 29, 2009 Author Posted October 29, 2009 Пользователь подключается к одному из ВПН серверов (через механизм Raund Robin на ДНС), для того чтобы создалось PPTP соединение, ВПН сервер передает запрос на Радиус и если юзернэйм и пароль правильные, то передает микротику ИП адрес из указанного своего пула и параметр ограничения скорости для этого пользователя. В результате создается PPTP соединение для этого юзэрнэйма, с ИП адресом который выдал Радиус и ограничением скорости который также выдал Радиус. Ограничение скорости привязано к юзэрнэйму. Зачем тогда знать IP для ограниичения скорости, если используется этот атрибут?Не понял этого вопроса. а разве радиус у вас не базой на postgresql/mysql работает?Базы нет, все пользователи и их ограничения хранятся в текстовом файле. Складывается такое ощущение, что выданные радиусом ИП адреса, после использования не возвращаются обратно в пул. Вставить ник Quote
dm765 Posted October 29, 2009 Author Posted October 29, 2009 Чем можно прочитать db.user_ip_pool и db.user_ip_pool_index эти файлы? Вставить ник Quote
mousus Posted October 29, 2009 Posted October 29, 2009 ну если у вас всё настолько тривиально то вам сюда http://code.google.com/p/cakebilling/ Вставить ник Quote
dm765 Posted October 29, 2009 Author Posted October 29, 2009 ну если у вас всё настолько тривиально то вам сюда http://code.google.com/p/cakebilling/ Это к какому вопросу? Вставить ник Quote
SmalleR Posted October 29, 2009 Posted October 29, 2009 Складывается такое ощущение, что выданные радиусом ИП адреса, после использования не возвращаются обратно в пул. Похоже, что это не очень природно для Radius. Вставить ник Quote
dm765 Posted October 29, 2009 Author Posted October 29, 2009 Чем можно прочитать db.user_ip_pool и db.user_ip_pool_index эти файлы?С этим разобрался. Остается вопрос - почему же радиус отказывается выдавать ИП адрес, если аутентификация прошла? Вставить ник Quote
networks Posted October 29, 2009 Posted October 29, 2009 Сделайте лучше через sql, это даст вам больше гибкости :) Вставить ник Quote
dm765 Posted October 29, 2009 Author Posted October 29, 2009 (edited) Хотелось бы все же с этим вопросом разобраться. Може у кого и были подобные проблемы. Сделайте лучше через sql, это даст вам больше гибкости :)Если есть возможность, укажите пожалуйста ссылочку на рабочий конфиг Радиус + МуSQL, если я правильно понял. Edited October 29, 2009 by dm765 Вставить ник Quote
terrible Posted October 30, 2009 Posted October 30, 2009 freeradius.org -> wiki radiusd debug Вставить ник Quote
dm765 Posted November 2, 2009 Author Posted November 2, 2009 С проблемой разобрался. Уточните еще, как Вы понимаете параметр в настройках ip pool override = no Вставить ник Quote
terrible Posted November 4, 2009 Posted November 4, 2009 (edited) Вероятно он отвечает за выдачу IP адреса с пула. Если стоит yes - то он будет выдавать один и тот-же IP сразу нескольким абонентам, если no - то проверять, выдал ли он его или нет. В вашем случае, возможно, радиус уже выдал один ип, и для другого абонента должен выдать такой-же, но не выдаёт благодаря этой настройке (что правильно). IAS по крайней мере работает именно так. Edited November 4, 2009 by terrible Вставить ник Quote
MagMike Posted November 5, 2009 Posted November 5, 2009 Чем можно прочитать db.user_ip_pool и db.user_ip_pool_index эти файлы? rlm_ippool_tool Вставить ник Quote
dm765 Posted November 24, 2009 Author Posted November 24, 2009 Ребята спасибо за внимание к вопросу, но походу проблема не снялась с повестки...ИП адреса все же заканчиваются. Заметил еще такую вещь, что например команда radwho показывает 13 активных сессий (и это совпадает с числом сессий на серверах доступа), а rlm_ippool_tool 60 выданных ИП адресов. В идеале должно же количество активных сессий = числу выданных ИП? Вставить ник Quote
rus-p Posted November 26, 2009 Posted November 26, 2009 Чему у вас равен maximum-timeout ? Получает ли радиус от микротика accounting-stop, после того как пользователь закрывает сессию ? Вставить ник Quote
dm765 Posted November 27, 2009 Author Posted November 27, 2009 1. Радиус получает от микротика accounting-stop , все сессии закрываются корректно. 2. maximum-timeout = 0 Вставить ник Quote
rus-p Posted November 30, 2009 Posted November 30, 2009 (edited) Тогда только дебаг и логи. Потеря стоповых udp пакетов достаточно распространена. Бороться с этим можно, например, перейдя в sql. Либо порыться в настройках миктотика и найти там таймаут на сессию, тогда это же время указать в радиусе, чтоб раз в сутки например ресетилась сессия. Cекция accounting в радиусе работает ? Edited November 30, 2009 by rus-p Вставить ник Quote
dm765 Posted December 2, 2009 Author Posted December 2, 2009 (edited) accounting работает. В микротике есть session-timeout , но это время было не активировано.. Активировал, поставил 00:00 посмотрим результат... Edited December 2, 2009 by dm765 Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.