Перейти к содержимому
Калькуляторы
Выложите, если можно, скрипты для привязки сего чуда к Abills. Буду очень благодарен.
Выкладывал на форуме Abills. Там, правда, кое-чего нету, но при желании дописывается за полчаса.

да - там есть - рабочее !

НЕмного в сторону! но в тему !

Abram - тут проскакивало что вы DHCP демона на перле реализовываете (или реализировали) - мы тоже этим занимаемся!

Кроме того тут проскакивал дхцп костыль к ЛИСГ - который тоже по тому же принципу работает

есть одни вопрос! - если конечно сталкивались.....

 

У нас перловый демон должен слушать не один интерфейс а все интерфейсы - на брас сходятся вланы! С одним интерфейсом всё работает прекрасно - но когда дело доходит до нескольких - то есть проблема определить с какого интерфейса пришёл дхцп запрос - чтобы правильно ему бродкастно отдать! Сталкивались ? решали ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У нас перловый демон должен слушать не один интерфейс а все интерфейсы - на брас сходятся вланы! С одним интерфейсом всё работает прекрасно - но когда дело доходит до нескольких - то есть проблема определить с какого интерфейса пришёл дхцп запрос - чтобы правильно ему бродкастно отдать! Сталкивались ? решали ?

А в чем смысл перлового демона, если туда сходится пачка vlan-ов? Чем ISC не устроил?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У нас перловый демон должен слушать не один интерфейс а все интерфейсы - на брас сходятся вланы! С одним интерфейсом всё работает прекрасно - но когда дело доходит до нескольких - то есть проблема определить с какого интерфейса пришёл дхцп запрос - чтобы правильно ему бродкастно отдать! Сталкивались ? решали ?
А в чем смысл перлового демона, если туда сходится пачка vlan-ов? Чем ISC не устроил?

гибко раздавать адреса - интегрировать с базой и т д! можна крутить вертеть как угодно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У нас перловый демон должен слушать не один интерфейс а все интерфейсы - на брас сходятся вланы! С одним интерфейсом всё работает прекрасно - но когда дело доходит до нескольких - то есть проблема определить с какого интерфейса пришёл дхцп запрос - чтобы правильно ему бродкастно отдать! Сталкивались ? решали ?
А в чем смысл перлового демона, если туда сходится пачка vlan-ов? Чем ISC не устроил?

гибко раздавать адреса - интегрировать с базой и т д! можна крутить вертеть как угодно

Слишком много логики надо писать. Вы себе не представляете даже, СКОЛЬКО там подводных камней.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выкладывал на форуме Abills. Там, правда, кое-чего нету, но при желании дописывается за полчаса.
Ссылка мертвая. Можно на почту gdir1212[at]gmail.com

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выкладывал на форуме Abills. Там, правда, кое-чего нету, но при желании дописывается за полчаса.
Ссылка мертвая. Можно на почту gdir1212[at]gmail.com

Пардон, но уже все проепролюблено :(. Найду - сброшу куда-нибудь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Перехали с фрирадиуса на радиус биллинга (ланбиллинг), лог засыпало ошибками.

Jan 28 05:24:31 shaper ISG[6915]: No more servers to retry for 'x.x.246.107', give up
Jan 28 05:24:31 shaper ISG[6915]: No more servers to retry for 'x.x.238.88', give up
Jan 28 05:24:31 shaper ISG[6915]: No more servers to retry for 'x.x.237.214', give up
Jan 28 05:24:31 shaper ISG[6915]: No more servers to retry for 'x.x.247.69', give up
Jan 28 05:24:32 shaper ISG[6915]: No more servers to retry for 'x.x.233.21', give up
Jan 28 05:24:32 shaper ISG[6915]: No more servers to retry for 'x.x.232.214', give up

 

Непонимаю в чём дело.

 

Радиус по этим клиентам нормально отдаёт информацию.

shaper:/var/log#radtest х.х.237.214 х.х.237.214 192.168.90.200 1812 blscrns
Sending Access-Request of id 149 to 192.168.90.200 port 1812
        User-Name = "х.х.237.214"
        User-Password = "х.х.237.214"
        NAS-IP-Address = х.х.226.11
        NAS-Port = 1812
rad_recv: Access-Accept packet from host 192.168.90.200 port 1812, id=149, length=65
        Session-Timeout = 86400
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Class = 0x3030303734303031
        Acct-Interim-Interval = 60
        Class = 0x343030302f34303030

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Внимание, грабли! В коммитах от 16-17 февраля изменено поведение RADIUS-атрибута Class.

changeset:   36:00dc45285358
tag:         tip
user:        sysoleg
date:        Thu Feb 17 09:37:34 2011 +0300
summary:     Use 'Class' RADIUS-attribute as per RFC

changeset:   35:edb6de789e20
user:        sysoleg
date:        Wed Feb 16 22:57:24 2011 +0300
summary:     Don't use 'Class' attribute to store rate limiting information, please see README for 'Cisco-Account-Info = QU;cir;normal burst;D;cir;normal burst'

 

Теперь вместо Class=xxx/yyy передаем Cisco-Account-Info=QU;cir;normal burst;D;cir;normal burst .

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проект еще жив ?

Изменено пользователем kww

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Во всяком случае все работает :)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проект еще жив ?

Да, и не так давно даже были коммиты. Умник втихую пилит :).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

"недавно" очень растяжимое понятие. last commit 5 weeks ago...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

За проектом наблюдаю практически с самого начала, но наконец-то нашлось время потестировать его. Возник вопрос, может кто подскажет... Многократное прочтение README не помогло. Одна из основных задач - смена скорости несколько раз в сутки как без участия пользователей, так и при помощи турбо-кнопки. Как я понимаю, без CoA тут не обойтись.

берем последнюю версию из git'а

Смотрим README

In "Change of Authorization" messages you can currently change only
this attributes of session:
   * Class (the attribute is using in lISG for rate policing)

но

Don't use 'Class' attribute to store rate limiting information, please see README for 'Cisco-Account-Info = QU;cir;normal burst;D;cir;normal burst'

через атрибут "Class" скорость передавать больше не удастся?

при попытке передать CoA:

xx@nas1:# echo NAS-Identifier="10.10.10.1",User-Name="10.10.10.10",Class="5000/5000" | radclient -x 127.0.0.1:3799 coa apple
Sending CoA-Request of id 211 to 127.0.0.1 port 3799
       NAS-Identifier = "10.10.10.1"
       User-Name = "10.10.10.10"
       Class = 0x353030302f35303030
rad_recv: CoA-ACK packet from host 127.0.0.1 port 3799, id=211, length=20

но Rate-in/Rate-out у сессии все также остается нулевым.

Как в новом атрибуте Class передать скорость осталось неясным даже после прочтения RFC

README:

Attribute:      Class = cookie_value
Description:         Standard attribute (as per RFC). String up to 32 chars.
Example:             Class = user_id_31

ткните пожалуйста носом, хоть примерно, как динамически применять новые параметры скорости?

или единственный выход - это найти ту версию, где скорость передавалась в атрибуте "Class" ?

 

PS: пришлось пока поставить одну из предыдущих версий, где скорость передается через атрибут "class", там CoA работает нормально

Изменено пользователем C@T

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

C@T,

В одном из последних коммитов было изменение. Видимо, не попало в README.

В Class теперь можно вписывать только классы трафика, определенные в конфиге, а скорость нужно писать в Cisco-Account-Info.

Т.е. либо указываем класс трафика из конфига, в котором уже есть всё (и скорость тоже), либо по старинке, вручную, через Cisco-Account-Info.

 

Как-то так:

/bin/echo NAS-IP-Address=$nasip,Acct-Session-Id=$session,Cisco-Account-Info=\"QU\;$speed_out\;$burst_out\;D\;$speed_in\;$burst_in\" |/usr/local/bin/radclient -d /etc/freeradius -x $nasip:3799 coa $naspw

Кстати, не забываем экранировать спецсимволы. Я на этом когда-то долго топтался :). В Perl, например, получается такая строчка (именно так используется и работает у меня):

print ("/bin/echo NAS-IP-Address=$nasip,Acct-Session-Id=$session,Cisco-Account-Info=\\\"QU\\\;$speed_out\\\;$burst_out\\\;D\\\;$speed_in\\\;$burst_in\\\" |/usr/local/bin/radclient -d /etc/freeradius -x $nasip:3799 coa $naspw");

Кроме всего прочего, есть ещё одни грабли. В Class скорость раньше указывалась в килобитах, а в Cisco-Account-Info - в битах. Соответственно, перед приёмом внутрь подстановкой переменных скорости нужно на 1024 умножить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Abram,

большое спасибо! Класс трафика из конфига передать так и не удалось пока-что, но зато работает все остальное!

Осталось самое сложное - все это как-то с BGbilling связать )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно узнать - как у вас реализованно следующее :

 

1. Стоп сессии при отрицательном балансе абонента

2. Смена скорости (в частности через сервисы/классы)

Это задачи биллинга.

1. Отсылать PoD-пакет для остановки сессии.

2. Отсылать CoA для смены скорости/класса. Либо, как вариант - указывать класс в Access-Accept, в котором уже есть интервалы. Но лично мне удобней первое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Abram,

большое спасибо! Класс трафика из конфига передать так и не удалось пока-что, но зато работает все остальное!

Осталось самое сложное - все это как-то с BGbilling связать )

Удалось ли связать с вышеназванным биллингом?? Очень интересует сей вопрос :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Abram,

большое спасибо! Класс трафика из конфига передать так и не удалось пока-что, но зато работает все остальное!

Осталось самое сложное - все это как-то с BGbilling связать )

Удалось ли связать с вышеназванным биллингом?? Очень интересует сей вопрос :-)

 

Всё работает без какого либо шаманства.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

http://dl.dropbox.com/u/12495607/web_auth_v2.patch

Редирект неавторизованных сессий на страницу авторизации.

Если кому надо - просьба проверить и отписаться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

умы помогите! :)

понадобилось получать детализацию. сразу говорю - у меня нат и надо детализацию реальника во внешку. ктонить через ULOG собирал?

какое правило для iptables прописать?

допустим входящий отловил так:

iptables -t mangle -I PREROUTING -d xxx.xxx.xxx.xxx -j ULOG --ulog-nlgroup 1

а вот как быть с исходящим? ни в одной таблице не нашел :( все время серый на внешку

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

MARTINii,

Сразу перед правилами, заворачивающими на nat skeleton. Должно прокатить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

http://dl.dropbox.com/u/12495607/web_auth_v2.patch

Редирект неавторизованных сессий на страницу авторизации.

Если кому надо - просьба проверить и отписаться.

Попробовал ваш патч.

1. При успешной авторизации IP всё равно попадает в таблицу web_auth и редиректится

2. Редирект получается зацикленным, то есть получается что iptables постоянно редиректит уже отредирекченный запрос. До сервера авторизации куда надо редиректить запросы не доходят

3. В скрипте исправил параметры "add" "del" "flush" на "--add" "--del" "--flash" так-как синтаксис у ipset у меня другой

 

На чём тестирую:

OS: ArchLinux

kernel = 2.6.32-lts

iptables = v1.4.12.1

ipset v4.5, protocol version 4.

Perl = v5.14.1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

http://dl.dropbox.com/u/12495607/web_auth_v2.patch

Редирект неавторизованных сессий на страницу авторизации.

Если кому надо - просьба проверить и отписаться.

Попробовал ваш патч.

1. При успешной авторизации IP всё равно попадает в таблицу web_auth и редиректится

2. Редирект получается зацикленным, то есть получается что iptables постоянно редиректит уже отредирекченный запрос. До сервера авторизации куда надо редиректить запросы не доходят

3. В скрипте исправил параметры "add" "del" "flush" на "--add" "--del" "--flash" так-как синтаксис у ipset у меня другой

 

На чём тестирую:

OS: ArchLinux

kernel = 2.6.32-lts

iptables = v1.4.12.1

ipset v4.5, protocol version 4.

Perl = v5.14.1

 

1. Закоментировал строку в коде и стало работать как надо

out:
   my $username = ISG::long2ip($ev->{'ipaddr'});
   do_log("err", "No more servers to retry for '$username', give up");
#    web_auth("--add", $username);
   return 0;

2.Сервер авторизации должен быть доступен из сети а не через Linux ISG, тогда никаких проблем с редиректом.

 

Abram, большое спасибо за патч!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

mnemonic,

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

Да, сервер должен быть доступен из сети.

При успешной авторизации IP всё равно попадает в таблицу web_auth и редиректится

Т.е. если от RADIUS-а приходит Access-Accept? Странно. Было, после CoA не обнулялось - уже исправил.

В скрипте исправил параметры "add" "del" "flush" на "--add" "--del" "--flash" так-как синтаксис у ipset у меня другой

У меня тоже Arch, ipset v6.8, protocol version: 6 - более свежий.

 

Я веб-авторизацию еще немного доделал - на днях выложу патч.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В лог постоянно сыпятся сообщения вида.

Sep 26 18:55:16 localhost ISG[1330]: No more servers to retry for 'X.X.127.101', give up

 

Для изменения скорости сессии использую:

 

echo NAS-Identifier="192.168.13.101",User-Name="X.X.127.101",Class=2048/2048|radclient -x 192.168.13.101 coa apple

 

для удаления

 

echo NAS-Identifier="192.168.13.101",User-Name="X.X.127.101" |radclient -x 192.168.13.101 disconnect apple

 

Для одной сессий всё прокатывает.

Если сессий несколько то выдаётся ошибка:

Sending Disconnect-Request of id 137 to 192.168.13.101 port 3799
       NAS-Identifier = "192.168.13.101"
       User-Name = "X.X.127.101"
rad_recv: Disconnect-NAK packet from host 192.168.13.101 port 3799, id=137, length=26
       Error-Cause = Session-Context-Not-Found

 

Может кто сталкивался с подобным!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.