Jump to content
Калькуляторы

Вопрос по настройке динамических адресов в Радиусе Быстро заканчивается пул динамических адресов

Добрый день уважаемые коллеги!

В системе работает несколько ВПН серверов и один Радиус. Пользователи авторизуются и получают динамические ИП адреса на Радиус-сервере.

Радиус сервер работает на:

radius# uname -a

FreeBSD 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 by dm765

Share this post


Link to post
Share on other sites

Не используйте для этого радиус! Зачем он нужен?

Пропишите IP пул в настройках ppp профиля в Mikrotik.

Share this post


Link to post
Share on other sites

SmalleR, +1

Если адреса динамические - пусть их задаёт PPP сервер, если статические - задавайте радиусом

Share this post


Link to post
Share on other sites

У меня 1 блок ИП адресов (с 192.168.54.1 по 192.168.54.254) на несколько ВПН серверов и у каждого пользователя свои ограничения по скорости. Поэтому удобнее когда адреса выдаются централизовано из одного источника. Все адреса динамические.

 

Когда в качестве ВПН серверов использовался MPD5 то такой проблемы замечено не было.

Share this post


Link to post
Share on other sites

Не понял, причем тут IP адреса и ограничения скорости? У вас чем скорость ограничивается?

Share this post


Link to post
Share on other sites

Пользователи получают адреса из пула с 192.168.54.1 по 192.168.54.254

Скорость ограничивает радиус.

Запись для пользователя в радиусе

test User-Password == "teые", Pool-Name := "user_ip_pool"

Mikrotik-Rate-Limit += "4096k/4096k"

Share this post


Link to post
Share on other sites
У меня 1 блок ИП адресов (с 192.168.54.1 по 192.168.54.254) на несколько ВПН серверов и у каждого пользователя свои ограничения по скорости. Поэтому удобнее когда адреса выдаются централизовано из одного источника. Все адреса динамические.

 

Когда в качестве ВПН серверов использовался MPD5 то такой проблемы замечено не было.

А как бордер узнаёт, каким "ВПН сервером" сейчас обслуживается клиент с выданным IP адресом из одного блока?

 

Mikrotik-Rate-Limit += "4096k/4096k"
Зачем тогда знать IP для ограниичения скорости, если используется этот атрибут?

Share this post


Link to post
Share on other sites

а разве радиус у вас не базой на postgresql/mysql работает?? помоему выдавать адреса из базы можно, немного подправив саму базу и хранимые процедуры в ней отвечающие за ответ радиусу

Share this post


Link to post
Share on other sites

Пользователь подключается к одному из ВПН серверов (через механизм Raund Robin на ДНС), для того чтобы создалось PPTP соединение, ВПН сервер передает запрос на Радиус и если юзернэйм и пароль правильные, то передает микротику ИП адрес из указанного своего пула и параметр ограничения скорости для этого пользователя. В результате создается PPTP соединение для этого юзэрнэйма, с ИП адресом который выдал Радиус и ограничением скорости который также выдал Радиус. Ограничение скорости привязано к юзэрнэйму.

 

Зачем тогда знать IP для ограниичения скорости, если используется этот атрибут?
Не понял этого вопроса.

 

а разве радиус у вас не базой на postgresql/mysql работает?
Базы нет, все пользователи и их ограничения хранятся в текстовом файле.

 

Складывается такое ощущение, что выданные радиусом ИП адреса, после использования не возвращаются обратно в пул.

Share this post


Link to post
Share on other sites

Чем можно прочитать db.user_ip_pool и db.user_ip_pool_index эти файлы?

Share this post


Link to post
Share on other sites
Складывается такое ощущение, что выданные радиусом ИП адреса, после использования не возвращаются обратно в пул.

Похоже, что это не очень природно для Radius.

Share this post


Link to post
Share on other sites
Чем можно прочитать db.user_ip_pool и db.user_ip_pool_index эти файлы?
С этим разобрался.

 

Остается вопрос - почему же радиус отказывается выдавать ИП адрес, если аутентификация прошла?

Share this post


Link to post
Share on other sites

Сделайте лучше через sql, это даст вам больше гибкости :)

Share this post


Link to post
Share on other sites

Хотелось бы все же с этим вопросом разобраться. Може у кого и были подобные проблемы.

 

Сделайте лучше через sql, это даст вам больше гибкости :)
Если есть возможность, укажите пожалуйста ссылочку на рабочий конфиг Радиус + МуSQL, если я правильно понял.
Edited by dm765

Share this post


Link to post
Share on other sites

С проблемой разобрался.

Уточните еще, как Вы понимаете параметр в настройках ip pool

override = no

Share this post


Link to post
Share on other sites

Вероятно он отвечает за выдачу IP адреса с пула. Если стоит yes - то он будет выдавать один и тот-же IP сразу нескольким абонентам, если no - то проверять, выдал ли он его или нет. В вашем случае, возможно, радиус уже выдал один ип, и для другого абонента должен выдать такой-же, но не выдаёт благодаря этой настройке (что правильно).

 

IAS по крайней мере работает именно так.

Edited by terrible

Share this post


Link to post
Share on other sites

Чем можно прочитать db.user_ip_pool и db.user_ip_pool_index эти файлы?

rlm_ippool_tool

Share this post


Link to post
Share on other sites

Ребята спасибо за внимание к вопросу, но походу проблема не снялась с повестки...ИП адреса все же заканчиваются.

Заметил еще такую вещь, что например команда radwho показывает 13 активных сессий (и это совпадает с числом сессий на серверах доступа), а rlm_ippool_tool 60 выданных ИП адресов.

В идеале должно же количество активных сессий = числу выданных ИП?

 

 

Share this post


Link to post
Share on other sites

Чему у вас равен maximum-timeout ?

Получает ли радиус от микротика accounting-stop, после того как пользователь закрывает сессию ?

 

Share this post


Link to post
Share on other sites

1. Радиус получает от микротика accounting-stop , все сессии закрываются корректно.

 

2. maximum-timeout = 0

Share this post


Link to post
Share on other sites

Тогда только дебаг и логи.

Потеря стоповых udp пакетов достаточно распространена. Бороться с этим можно, например, перейдя в sql.

Либо порыться в настройках миктотика и найти там таймаут на сессию, тогда это же время указать в радиусе, чтоб раз в сутки например ресетилась сессия.

Cекция accounting в радиусе работает ?

Edited by rus-p

Share this post


Link to post
Share on other sites

accounting работает.

В микротике есть session-timeout , но это время было не активировано..

Активировал, поставил 00:00 посмотрим результат...

Edited by dm765

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this