UTM + pptp + динамические IP

Технические вопросы по UTM 5.0
wingman
Сообщения: 136
Зарегистрирован: Чт дек 07, 2006 15:36
Контактная информация:

UTM + pptp + динамические IP

Сообщение wingman »

Никто не поделится удобоваримым рецептом раздачи динамики? На форуме обчитался, а конкретики никакой не нашел =)

Что есть: несколько pptp-NAS'ов (микротики, но, думаю, это непринципиально). На данный момент львиная доля юзеров натятся, какое-то количество получает статические внешние IP.
В билинге у всех услуга "передача IP-траффика" с вколоченными туда серыми либо реальными IP.
Авторизация через freeradius.


Недавно получили внешнюю подсетку /21, надо осваивать =)
Что хочется:
1. Задавать Ip-пулы на NAS-ах. Чтобы бордеру не приходилось хранить кучу маршрутов (ospf или iBgp), а указать подсеть via NAS, а NAS'ом регулировать выдочу ипов.
2. Избежать косяков с учетом трафика в билинге. Несмотря на засилие безлимитов, есть всё ещё большое число юзеров с лимитными тарифами, а также с тарифами, которые ограничиваются по скорости после определенной перекачки.
3. Оооочень хочется, чтобы непосредственно в билинге много менять не пришлось. В идеале -- чтобы если в услуге IP "серый" - выдавался IP из пула, если IP статический из внешнего диапазона -- выдавался именно он.

Кто-нибуть может что-нибуть посоветовать? =)

Аватара пользователя
TiRider
Сообщения: 568
Зарегистрирован: Сб июн 07, 2008 12:43

Сообщение TiRider »

Ну вариантов много. Можно скажем сделать несколько пулов "серых" и "белых" ипов. Затем на нескольких NAS'ах сделать авторизацию, и прописать правила фаервола. После, у пользователя в услугах принудительно указать сервер на который он должен коннектится если ип "белый" или "серый"... ну и соответственно раздача ипов из пулов.

Как то так...

Arti
Сообщения: 266
Зарегистрирован: Пн окт 01, 2007 02:44

Сообщение Arti »

По рецептом понимается готовое решение которое осталось только внедрить?

wingman
Сообщения: 136
Зарегистрирован: Чт дек 07, 2006 15:36
Контактная информация:

Сообщение wingman »

Arti писал(а):По рецептом понимается готовое решение которое осталось только внедрить?
Было бы конечно идеально, но так не бывает.
А вот подводные камни и пути их отхода те, кто уже внедрял у себя, могли бы обозначить. Не очень правильно учиться на своих ошибках, если можно на чужих, верно ведь? =)

TiRider писал(а):Ну вариантов много. Можно скажем сделать несколько пулов "серых" и "белых" ипов. Затем на нескольких NAS'ах сделать авторизацию, и прописать правила фаервола. После, у пользователя в услугах принудительно указать сервер на который он должен коннектится если ип "белый" или "серый"... ну и соответственно раздача ипов из пулов.

Как то так...
Ненене. Серые не нужны вообще. Прописывать нас, на который нужно коннектиться - тоже бред, у всех юзеров прописано одно: vpn.провайдер.name

MiO
Сообщения: 303
Зарегистрирован: Ср окт 01, 2008 23:34

Сообщение MiO »

могу рассказать о похожей схеме balanser 'at' gmail.com

wingman
Сообщения: 136
Зарегистрирован: Чт дек 07, 2006 15:36
Контактная информация:

Сообщение wingman »

MiO писал(а):могу рассказать о похожей схеме balanser 'at' gmail.com
Мыло ушло =)

Arti
Сообщения: 266
Зарегистрирован: Пн окт 01, 2007 02:44

Сообщение Arti »

wingman писал(а): Было бы конечно идеально, но так не бывает.
А вот подводные камни и пути их отхода те, кто уже внедрял у себя, могли бы обозначить. Не очень правильно учиться на своих ошибках, если можно на чужих, верно ведь? =)
дело в том, что у кого подобные схемы действительно работают - предпочитают помалкивать :)

Я сам работаю на той же самой проблемой именно в таких же начальных условиях.

Как я вижу решение:

viewtopic.php?t=6980&postdays=0&postorder=asc&start=15

viewtopic.php?t=158&start=15

Можно конешно попробывать заливать трафик в систему, но мне такой вариант совсем не нравится.

wingman
Сообщения: 136
Зарегистрирован: Чт дек 07, 2006 15:36
Контактная информация:

Сообщение wingman »

Косяк вылез...

У нас диапазон внешников 109.206.x.x/19
Радиус принимает аттрибуты Framed-IP-Address правильно, пихает их в билинг в нетаповском формате, НО, блин, не лезут ж)
Максимальное число поля Framed_IP_Address [ int(11) ] составляет 2147483647. Поставил в базе на это поле аттрибут 'UNSIGNED', мой переформированный в формат нетапа IP влез: 4269854... - но билинг по-прежнему не жуёт его; видимо, ещё и внутрях у него INT зашит.

Радиус запихивает IP в базу так (находил много раз тут на форуме):

Код: Выделить всё

(INET_ATON(CONCAT_WS('.',SUBSTRING_INDEX('109.206.128.x','.',-1),
SUBSTRING_INDEX(SUBSTRING_INDEX('109.206.128.x','.',-2),'.',1),
SUBSTRING_INDEX(SUBSTRING_INDEX('109.206.128.x','.',2),'.',-1),
SUBSTRING_INDEX('109.206.128.x','.',1))))
)
Если не переворачивть октеты задом наперёд, то места в INT'е хватает, но сам билинг видит ипы задом наперёд. Например, в отчете по dialup: x.128.206.109

Кто-нибуть может что-нибуть подсказать?

Arti
Сообщения: 266
Зарегистрирован: Пн окт 01, 2007 02:44

Сообщение Arti »

UTM - это один большой капец...

Как сделать средствами sql не знаю - типы там приводятся так себе... Попробуйте хронимимик сделать - ничего другого в голуву не приходит.

wingman
Сообщения: 136
Зарегистрирован: Чт дек 07, 2006 15:36
Контактная информация:

Сообщение wingman »

Arti писал(а):UTM - это один большой капец...

Как сделать средствами sql не знаю - типы там приводятся так себе... Попробуйте хронимимик сделать - ничего другого в голуву не приходит.
Если кому надо будет, мне коллега набросал хранимую процедуру для mysql:

Код: Выделить всё

DELIMITER $$

DROP FUNCTION IF EXISTS `INET_ATON_UTM` $$
CREATE FUNCTION `INET_ATON_UTM` (ip VARCHAR (16)) RETURNS INT
    DETERMINISTIC
BEGIN
  DECLARE r1 INT UNSIGNED;

SET r1 = INET_ATON(CONCAT_WS('.',SUBSTRING_INDEX(ip,'.',-1),  SUBSTRING_INDEX(SUBSTRING_INDEX(ip,'.',-2),'.',1),  SUBSTRING_INDEX(SUBSTRING_INDEX(ip,'.',2),'.',-1),  SUBSTRING_INDEX(ip,'.',1))) ;

IF r1 > 268435455 THEN
 RETURN IFNULL(NULL, CAST(r1-0x100000000 AS SIGNED));
ELSE
 RETURN r1;
END IF;

END $$

DELIMITER ;

wingman
Сообщения: 136
Зарегистрирован: Чт дек 07, 2006 15:36
Контактная информация:

Сообщение wingman »

Начал реализовывть на utm_radius, freeradius без кучи костылей прикрутить так и не вышло...

Несколько вопросов.
Реально ли сделать, чтобы IP-адреса выдавал NAS, а не УТМ? Если не задать в УТМе пула, радиус плюется ошибкой:

Код: Выделить всё

 Info  &#58; Apr 27 20&#58;56&#58;46 UT&#58; session_timeout <1047794> session_limit <964000> old_session_timeout <961394>
 Info  &#58; Apr 27 20&#58;56&#58;46 UT&#58; session_timeout > session_limit or session_timeout - old_session_timeout too small. Breaking ...
И сессия обрывается через секунду.

Если же задавать пулы и распределять их из УТМа... То стрёмно ;)
Допустим, что будет в ситуации, когда один из NAS'ов повиснет либо ребутнётся, т.е. не будет корректного завершения сессии? IP-адрес останется в подвешенном состоянии?


-------------------

Правка:
Итоговый вопрос: как заставить utm_radius отдавать сразу RFC'шный аттрибут Framed-Pool ? Без него NAS не знает, что выдавать клиенту.
Изначально он отдаёт проприетарный Cisco-AVPair "ip:addr-pool", который микротик не знает =)

wingman
Сообщения: 136
Зарегистрирован: Чт дек 07, 2006 15:36
Контактная информация:

Сообщение wingman »

Это решилось вколачиванием пула по-умолчанию в микротик...

Ещё вопрос.
Допустим, в услуге стоИт "лимит одновременных сессий=1".
При этом NAS, допустим, зависает. Что делать в этом случае? utm_radius, насколько я понимаю, не умеет обнулять сессии у себя в "мозгах" при отсутствии interim-update'ов?

mikkey finn
Сообщения: 1612
Зарегистрирован: Пт ноя 10, 2006 15:23

Сообщение mikkey finn »

если врубить в конфигах апдейт-интервал больше 60 секунд, то он будет сессию контролировать по Interim update.

wingman
Сообщения: 136
Зарегистрирован: Чт дек 07, 2006 15:36
Контактная информация:

Сообщение wingman »

mikkey finn писал(а):если врубить в конфигах апдейт-интервал больше 60 секунд, то он будет сессию контролировать по Interim update.
Супер, спасибо большое, тестим =)

wingman
Сообщения: 136
Зарегистрирован: Чт дек 07, 2006 15:36
Контактная информация:

Сообщение wingman »

При таком способе раздачи динамики таблица ip_groups забивается не хуже dhs_sessions_log. Но последнюю хоть архивировать теперь можно. А вот безопасно ли удалять записи из ip_groups where is_deleted=1?

Ответить