Лимитизация траффика работает частично.

Установка, настройка, поддержка
Ответить
xoy
Сообщения: 14
Зарегистрирован: Ср фев 25, 2009 10:24 am

Лимитизация траффика работает частично.

Сообщение xoy »

Устанновлен биллинг, с дневными лимитами в тарифном плане.
ubuntu804 + abills041 из CVS + pptpd

Для пользователя с ограничением трафика в 15мб. за одну сессию позволяет скачать неограниченное количество трафика. но если сессию разорвать в ручную подключиться более не дает.

Причем проблема в том, что радиус штампы от клиента регулярно получает - вывод делаю по логу radacct/detail-xxxxxx.

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

Thu Apr  9 12:28:32 2009
        Acct-Session-Id = "49DDAC4B79C700"
        User-Name = "ak2"
        Acct-Status-Type = Interim-Update
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Acct-Authentic = RADIUS
        Acct-Session-Time = 1381
        Acct-Output-Octets = 24142750
        Acct-Input-Octets = 3170574
        Acct-Output-Packets = 31729
        Acct-Input-Packets = 25866
        Calling-Station-Id = "192.168.0.104"
        NAS-Port-Type = Async
        Framed-IP-Address = 172.16.0.89
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 3
        Acct-Delay-Time = 0
        Client-IP-Address = 192.168.0.199
        Acct-Unique-Session-Id = "2ecbe792975dbff9"
        Timestamp = 1239265712


Thu Apr  9 12:29:32 2009
        Acct-Session-Id = "49DDAC4B79C700"
        User-Name = "ak2"
        Acct-Status-Type = Interim-Update
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Acct-Authentic = RADIUS
        Acct-Session-Time = 1441
        Acct-Output-Octets = 25462695
        Acct-Input-Octets = 3323908
        Acct-Output-Packets = 33335
        Acct-Input-Packets = 27164
        Calling-Station-Id = "192.168.0.104"
        NAS-Port-Type = Async
        Framed-IP-Address = 172.16.0.89
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 3
        Acct-Delay-Time = 0
        Client-IP-Address = 192.168.0.199
        Acct-Unique-Session-Id = "2ecbe792975dbff9"
        Timestamp = 1239265772

Thu Apr  9 12:35:32 2009
        Acct-Session-Id = "49DDAC4B79C700"
        User-Name = "ak2"
        Acct-Status-Type = Interim-Update
        Service-Type = Framed-User
        Framed-Protocol = PPP
        Acct-Authentic = RADIUS
        Acct-Session-Time = 1801
        Acct-Output-Octets = 25465095
        Acct-Input-Octets = 3326537
        Acct-Output-Packets = 33395
        Acct-Input-Packets = 27225
        Calling-Station-Id = "192.168.0.104"
        NAS-Port-Type = Async
        Framed-IP-Address = 172.16.0.89
        NAS-IP-Address = 127.0.0.1


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

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

2009-04-09 12:28:32	49DDAC4B79C700	1	0 Bt	0 Bt	0 Bt	0 Bt
2009-04-09 12:29:32	49DDAC4B79C700	1	0 Bt	0 Bt	0 Bt	0 Bt
Может быть проблема в этом? Как заставить радиус всоевремено рубить сесию?
Последний раз редактировалось xoy Вс апр 12, 2009 6:20 pm, всего редактировалось 1 раз.

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Сообщение Abram »

Ещё раз проверить словари RADIUS-а. Скорее всего, либо в freeradius, либо у radiusclient в словаре нет нужных записей.

offtopic: Я б не стал поднимать это всё под убунтой. Не доросла она. :roll:

xoy
Сообщения: 14
Зарегистрирован: Ср фев 25, 2009 10:24 am

Сообщение xoy »

клиентский

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

ATTRIBUTE	User-Name		1	string
ATTRIBUTE	Password		2	string
ATTRIBUTE	CHAP-Password		3	string
ATTRIBUTE	NAS-IP-Address		4	ipaddr
ATTRIBUTE	NAS-Port-Id		5	integer
ATTRIBUTE	Service-Type		6	integer
ATTRIBUTE	Framed-Protocol		7	integer
ATTRIBUTE	Framed-IP-Address	8	ipaddr
ATTRIBUTE	Framed-IP-Netmask	9	ipaddr
ATTRIBUTE	Framed-Routing		10	integer
ATTRIBUTE	Filter-Id		11	string
ATTRIBUTE	Framed-MTU		12	integer
ATTRIBUTE	Framed-Compression	13	integer
ATTRIBUTE	Login-IP-Host		14	ipaddr
ATTRIBUTE	Login-Service		15	integer
ATTRIBUTE	Login-TCP-Port		16	integer
ATTRIBUTE	Reply-Message		18	string
ATTRIBUTE	Callback-Number		19	string
ATTRIBUTE	Callback-Id		20	string
ATTRIBUTE	Framed-Route		22	string
ATTRIBUTE	Framed-IPX-Network	23	ipaddr
ATTRIBUTE	State			24	string
ATTRIBUTE	Session-Timeout		27	integer
ATTRIBUTE	Idle-Timeout		28	integer
ATTRIBUTE	Termination-Action	29	integer
ATTRIBUTE	Called-Station-Id	30	string
ATTRIBUTE	Calling-Station-Id	31	string
ATTRIBUTE	Acct-Status-Type	40	integer
ATTRIBUTE	Acct-Delay-Time		41	integer
ATTRIBUTE	Acct-Input-Octets	42	integer
ATTRIBUTE	Acct-Output-Octets	43	integer
ATTRIBUTE	Acct-Session-Id		44	string
ATTRIBUTE	Acct-Authentic		45	integer
ATTRIBUTE	Acct-Session-Time	46	integer
ATTRIBUTE	Acct-Input-Packets	47	integer
ATTRIBUTE	Acct-Output-Packets	48	integer
ATTRIBUTE	Acct-Terminate-Cause	49	integer
ATTRIBUTE	Chap-Challenge		60	string
ATTRIBUTE	NAS-Port-Type		61	integer
ATTRIBUTE	Port-Limit		62	integer
ATTRIBUTE	Connect-Info		77	string

ATTRIBUTE	Huntgroup-Name		221	string
ATTRIBUTE	User-Category		1029	string
ATTRIBUTE	Group-Name		1030	string
ATTRIBUTE	Simultaneous-Use	1034	integer
ATTRIBUTE	Strip-User-Name		1035	integer
ATTRIBUTE	Fall-Through		1036	integer
ATTRIBUTE	Add-Port-To-IP-Address	1037	integer
ATTRIBUTE	Exec-Program		1038	string
ATTRIBUTE	Exec-Program-Wait	1039	string
ATTRIBUTE	Hint			1040	string

ATTRIBUTE	Expiration		  21	date
ATTRIBUTE	Auth-Type		1000	integer
ATTRIBUTE	Menu			1001	string
ATTRIBUTE	Termination-Menu	1002	string
ATTRIBUTE	Prefix			1003	string
ATTRIBUTE	Suffix			1004	string
ATTRIBUTE	Group			1005	string
ATTRIBUTE	Crypt-Password		1006	string
ATTRIBUTE	Connect-Rate		1007	integer


ATTRIBUTE	Acct-Interim-Interval	85	integer
ATTRIBUTE	Session-Octets-Limit	227	integer
ATTRIBUTE	Octets-Direction	228	integer

ATTRIBUTE	PPPD-Upstream-Speed-Limit	230	integer
ATTRIBUTE	PPPD-Downstream-Speed-Limit	231	integer
ATTRIBUTE	PPPD-Upstream-Speed-Limit-1	232	integer
ATTRIBUTE	PPPD-Downstream-Speed-Limit-1	233	integer
ATTRIBUTE	PPPD-Upstream-Speed-Limit-2	234	integer
ATTRIBUTE	PPPD-Downstream-Speed-Limit-2	235	integer
ATTRIBUTE 	PPPD-Upstream-Speed-Limit-3 	236 	integer
ATTRIBUTE 	PPPD-Downstream-Speed-Limit-3 	237 	integer

VALUE		Service-Type		Login-User		1
VALUE		Service-Type		Framed-User		2
VALUE		Service-Type		Callback-Login-User	3
VALUE		Service-Type		Callback-Framed-User	4
VALUE		Service-Type		Outbound-User		5
VALUE		Service-Type		Administrative-User	6
VALUE		Service-Type		NAS-Prompt-User		7

VALUE		Framed-Protocol		PPP			1
VALUE		Framed-Protocol		SLIP			2

VALUE		Framed-Routing		None			0
VALUE		Framed-Routing		Broadcast		1
VALUE		Framed-Routing		Listen			2
VALUE		Framed-Routing		Broadcast-Listen	3

VALUE		Framed-Compression	None			0
VALUE		Framed-Compression	Van-Jacobson-TCP-IP	1

VALUE		Login-Service		Telnet			0
VALUE		Login-Service		Rlogin			1
VALUE		Login-Service		TCP-Clear		2
VALUE		Login-Service		PortMaster		3

VALUE		Acct-Status-Type	Start			1
VALUE		Acct-Status-Type	Stop			2
VALUE		Acct-Status-Type	Accounting-On		7
VALUE		Acct-Status-Type	Accounting-Off		8

VALUE		Acct-Authentic		RADIUS			1
VALUE		Acct-Authentic		Local			2
VALUE		Acct-Authentic		PowerLink128		100

VALUE		Termination-Action	Default			0
VALUE		Termination-Action	RADIUS-Request		1

VALUE		NAS-Port-Type		Async			0
VALUE		NAS-Port-Type		Sync			1
VALUE		NAS-Port-Type		ISDN			2
VALUE		NAS-Port-Type		ISDN-V120		3
VALUE		NAS-Port-Type		ISDN-V110		4

VALUE           Acct-Terminate-Cause    User-Request            1
VALUE           Acct-Terminate-Cause    Lost-Carrier            2
VALUE           Acct-Terminate-Cause    Lost-Service            3
VALUE           Acct-Terminate-Cause    Idle-Timeout            4
VALUE           Acct-Terminate-Cause    Session-Timeout         5
VALUE           Acct-Terminate-Cause    Admin-Reset             6
VALUE           Acct-Terminate-Cause    Admin-Reboot            7
VALUE           Acct-Terminate-Cause    Port-Error              8
VALUE           Acct-Terminate-Cause    NAS-Error               9
VALUE           Acct-Terminate-Cause    NAS-Request             10
VALUE           Acct-Terminate-Cause    NAS-Reboot              11
VALUE           Acct-Terminate-Cause    Port-Unneeded           12
VALUE           Acct-Terminate-Cause    Port-Preempted          13
VALUE           Acct-Terminate-Cause    Port-Suspended          14
VALUE           Acct-Terminate-Cause    Service-Unavailable     15
VALUE           Acct-Terminate-Cause    Callback                16
VALUE           Acct-Terminate-Cause    User-Error              17
VALUE           Acct-Terminate-Cause    Host-Request            18

VALUE		Auth-Type		Local			0
VALUE		Auth-Type		System			1
VALUE		Auth-Type		SecurID			2
VALUE		Auth-Type		Crypt-Local		3
VALUE		Auth-Type		Reject			4

VALUE		Auth-Type		Pam			253
VALUE		Auth-Type		None			254

VALUE		Fall-Through		No			0
VALUE		Fall-Through		Yes			1
VALUE		Add-Port-To-IP-Address	No			0
VALUE		Add-Port-To-IP-Address	Yes			1

серверный

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

$INCLUDE	/usr/share/freeradius/dictionary

ATTRIBUTE	Session-Octets-Limit		227	integer

ATTRIBUTE	Octets-Direction		228	integer

ATTRIBUTE	PPPD-Upstream-Speed-Limit	230	integer
ATTRIBUTE	PPPD-Downstream-Speed-Limit	231	integer
ATTRIBUTE	PPPD-Upstream-Speed-Limit-1	232	integer
ATTRIBUTE	PPPD-Downstream-Speed-Limit-1	233	integer
ATTRIBUTE	PPPD-Upstream-Speed-Limit-2	234	integer
ATTRIBUTE	PPPD-Downstream-Speed-Limit-2	235	integer
ATTRIBUTE	PPPD-Upstream-Speed-Limit-3	236	integer
ATTRIBUTE	PPPD-Downstream-Speed-Limit-3	237	integer
ATTRIBUTE	Acct-Interim-Interval		85	integer
Еще раз проверил, про синтаксис табами в курсе.
Где? что нитак?

Abram
Сообщения: 157
Зарегистрирован: Чт мар 26, 2009 11:31 am
Контактная информация:

Сообщение Abram »

Запусти freeradius -fX и посмотри, передается ли корректно Session-Octets-Limit (есть ли там значение). И обращает ли твой NAS на него внимание :)

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

ну а можно ещё просто заглянуть в /var/run/radattr.pppX подключённого клиента... или где там оно у тебя в убунте лежит...

и ващето... что имеется ввиду?
Для пользователя с ограничением трафика в 15мб. за одну сессию
что-то я не припомню в тарифных планах ограничение трафика на сессию... на день, неделю, месяц - помню... а вот на сессию - не помню... ткни пальчиком ;)
Любой тупик - это тщательно замаскированный выход.

xoy
Сообщения: 14
Зарегистрирован: Ср фев 25, 2009 10:24 am

Сообщение xoy »

ну а можно ещё просто заглянуть в /var/run/radattr.pppX подключённого клиента... или где там оно у тебя в убунте лежит...
содержимое

Acct-Interim-Interval 60
Session-Timeout 1266577
PPPD-Upstream-Speed-Limit 15
Octets-Direction 1
Framed-IP-Address 172.16.0.87
Session-Octets-Limit 52428800
Framed-IP-Netmask 255.255.255.255
PPPD-Downstream-Speed-Limit 15

я так понимаю до NAS значение доходит.
Далее кем обрабатывается? Что значит обращает-ли на него внимание нат?

что-то я не припомню в тарифных планах ограничение трафика на сессию... на день, неделю, месяц - помню... а вот на сессию - не помню... ткни пальчиком
вобще-то знаки припенания там стоят не зря.
з.ы.
Для нас-а(ппп - соеденения) понятия месяца, недели, дня не существует. Оно существутет только для абилса. Соответственно абилс выщитывает оставшийся лимит трафика и устанавливает этим параметром - Session-Octets-Limit на сессию.

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение ran »

Соответственно абилс выщитывает оставшийся лимит трафика и устанавливает этим параметром - Session-Octets-Limit на сессию.
совершенно верно... когда-то (года 2 назад) когда я юзал чистый Dv у меня это работало без проблем... поскольку щас юзаю Ipn + Dv мне лично этот лимит не нужен (я его принудительно в 0 устанавливаю) посему как оно щас обстоит с этим ничё сказать не могу - по-идее должно работать ;)
Любой тупик - это тщательно замаскированный выход.

LKharlamov
Сообщения: 142
Зарегистрирован: Пт окт 24, 2008 4:22 pm
Откуда: Челябинск
Контактная информация:

Сообщение LKharlamov »

Решил проверить у себя разъединяется ли впн соединение, выставил в тарифе дневное ограничение 1 МБ, подключился, скачал 5, соединение не разорвалось, в /var/run/radattr.ppp3:

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

Framed-Protocol PPP
Framed-Compression Van-Jacobson-TCP-IP
Acct-Interim-Interval 60
Session-Timeout 1173114
Octets-Direction 1
Framed-IP-Address 172.16.0.77
Session-Octets-Limit 1048576
Framed-IP-Netmask 255.255.255.255
MS-CHAP2-Success \361S=B7AA98CC4FD1A3D0B0BF7357FD306FF299DF3B28
MS-MPPE-Recv-Key \367+)\373 a\014\345s\303|\003\325\005\224p,\317Q.<\002P\343ERh_\325\276(\037<@
MS-MPPE-Send-Key \375VUGh\0219+\316\313\255\330\203\333\330\020\354\034\330\310\\221\360Q\233cX\2015\326^\273\\003
MS-MPPE-Encryption-Policy
MS-MPPE-Encryption-Types
Так то функция это полезная, и потому хотелось бы с ней разобраться штобы работала... Я так понимаю до ppp параметр Session-Octets-Limit доходит, интересно он сам должен понимать што если ему в переменной Session-Octets-Limit прислали некоторое количество байт, то по достижении этой цифры он должен разорвать впн-соединение?

Ran, может быть на ppp не наложено какогонить патча для того чтобы он понимал это? типа как вот здесь написано:
http://www.unixfaq.ru/index.pl?req=qs&id=413

В моём дистрибутиве (ubuntu 8.04) включены следующие патчи:

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

008_pathnames.h.diff.diff
close_dev_ppp.diff
ppp-2.3.11-oedod.dif.diff
pppoe_readme.diff
010_scripts_README.diff.diff
fix_close_fd0.diff
ppp-2.4.2-stripMSdomain.diff
readable_connerrs.diff
011_scripts_redialer.diff.diff
fix_linkpidfile.diff
pppdump_use_zlib.diff
resolv.conf_no_log.diff
018_ip-up_option.diff.diff
fix_mschapv2_ppp.diff
pppdump_z_no_deflate.diff
setevn_call_file.diff
atm_resolver_light.diff
fix_null_pppdb.diff
pppoatm_cleanup.diff
syslog_local2.diff
chat_man.diff
load_ppp_generic_if_needed.diff
pppoatm_fix_mtu.diff
zzz_config.diff
cifdefroute.dif.diff
no_crypt_hack.diff
pppoe_cleanup.diff
zzz_man_typos.diff
В конце прошлого года помню с тобой накладывали патч ppp-2.4.2-ifname.diff, может и в данной ситуации нехватает ещо какого-нить патчика?

LKharlamov
Сообщения: 142
Зарегистрирован: Пт окт 24, 2008 4:22 pm
Откуда: Челябинск
Контактная информация:

Сообщение LKharlamov »

В исходниках пакета ppp есть упоминания про переменные Session-Octets-Limit и Octets-Direction, так што видимо дело не в патчах :( Может быть пакет должен быть собран с какойнить опцией? И как интересно узнать поддерживает ли текущая собраная версия эту опцию на самом деле?

LKharlamov
Сообщения: 142
Зарегистрирован: Пт окт 24, 2008 4:22 pm
Откуда: Челябинск
Контактная информация:

Сообщение LKharlamov »

Вроде разобрался шо к чему, сессии рвуться, осталось разобраться с атрибутом Octets direction:
viewtopic.php?p=17262#17262

xoy
Сообщения: 14
Зарегистрирован: Ср фев 25, 2009 10:24 am

Сообщение xoy »

LKharlamov писал(а):Вроде разобрался шо к чему, сессии рвуться, осталось разобраться с атрибутом Octets direction:
viewtopic.php?p=17262#17262
Спасибо, у меня тоже заработало.
Кстати хочу заметить, что параметр в нутри абиллса обрабатывается правильно. Так как, после выроботки и обключения боле не пускает.
А вот пппд передается не тот.

xoy
Сообщения: 14
Зарегистрирован: Ср фев 25, 2009 10:24 am

Сообщение xoy »

~AsmodeuS~ писал(а): # Octets-Direction
VALUE Octets-Direction Sum 0
VALUE Octets-Direction Input 1
VALUE Octets-Direction Output 2
VALUE Octets-Direction MaxOveral 3
VALUE Octets-Direction MaxSession 4


добавил работу с параметром

$conf{octets_direction}
Спасибо ~AsmodeuS~ за сделанные исправления и LKharlamov за помощь в поиске бага.

Можно подробней как заюзать данное исправлеине?
Куда что прописовать?

Ответить