sonkilla Опубликовано 5 июня, 2010 (изменено) · Жалоба Доброго времени суток всем! Поднял связку fedora10X64+pppoe+freeradius+abills все заработало и вроде норм.Но встала проблема что если клиент качает файл больше 2х гигов его автоматом скидывает абиллс.Поправил это дело так, в /usr/abills/libexec/config.pl закоментировал $conf{MAX_SESSION_TRAFFIC} = 2047;(в дальнеишем пробывал ставить значение 0 и на 8мь гигов) и скидывать пересталло но встала другая проблема абиллс перестал щитать траффик после 2х гигов.Стал гуглить нашол что pppd нужно патчить чтоб он обнулял счетчики и мог передавать параметры gigawords для нормального счета.скачал два патча первый официальный http://bugs.gentoo.org/attachment.cgi?id=102981 и второй взятый отсюда http://forum.nag.ru/forum/lofiversion/index.php?t46225.html , пробывал патчить 5ть версий pppd с официального сайта самбы это ppp-2.4.3.tar.gz,ppp-2.4.4.tar.gz,ppp-2.4.4b1.tar.gz,ppp-2.4.5.tar.gz.С первыми 2вумя еще правил main.c чтоб он вообще заработал а остальные просто патчил и ставил.Опытным путем было выяснено что если качать в один паток то до 4х гигов вроде все норм,но если качать в два потока файлы размером 3.2гига то абилс паказывает что скачано 2.65 гига,когда по факту 6.4 гига.Также нашол вот эту тему http://forum.bgbilling.ru/viewtopic.php?f=5&t=2803 тут человек написал даже что то вроде мини хауту но всеравно по ней непрошло.Также в словарях и радиус клиента прописал /etc/radiusclient/dictionary ATTRIBUTE Acct-Input-Gigawords 52 integer ATTRIBUTE Acct-Output-Gigawords 53 integer и в радиусе /usr/local/radiusd/etc/raddb/dictionary ATTRIBUTE Acct-Input-Gigawords 52 integer ATTRIBUTE Acct-Output-Gigawords 53 integer вот логи радиуса /usr/local/var/log/radius/radacct/127.0.0.1/detail-20100605 Sat Jun 5 01:06:50 2010 Acct-Session-Id = "4C095CB715DA00" User-Name = "testuser" Acct-Status-Type = Stop Service-Type = Framed-User Framed-Protocol = PPP Acct-Authentic = RADIUS Acct-Session-Time = 35 Acct-Output-Octets = 33 Acct-Input-Octets = 1822 Acct-Output-Gigawords = 0 Acct-Input-Gigawords = 0 Acct-Output-Packets = 2 Acct-Input-Packets = 22 NAS-Port-Type = Virtual Acct-Terminate-Cause = User-Request Framed-IP-Address = 172.0.0.107 NAS-IP-Address = 127.0.0.1 NAS-Port = 0 Acct-Delay-Time = 0 Timestamp = 1275682010 Request-Authenticator = Verified Перерыл весь гугл и форум абиллса(на нем кстати зарегился два раза с интервалом в два дня но активацию так и неприсылает)информации по моей проблеме очень мало и все неясно,поэтому пишу сюда.Кто сталкивался с таким подскажите в какую сторону капать чтоб абиллс считал любое колличество траффика скаченного клиентом.Пробывал в сервере доступа вписать и Other Nas server и PPPD+Radius plugin(Linux).Может нужно в RADIUS Параметры (,) чтонибудь прописать? Изменено 5 июня, 2010 пользователем sonkilla Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Deytory Опубликовано 7 июня, 2010 · Жалоба Наиболее правильный вариант будет вынести NAS на Mikrotik или Freebsd (mpd). Под ними такой проблемы - нет. Неоднократно эта проблема обсуждалась здесь Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sonkilla Опубликовано 7 июня, 2010 (изменено) · Жалоба Насчет Mikrotikа и FreeBSD c mpd я в курсе но хотелось бы решить проблему с помощью линукса и ppp.Форум абиллса как я уже писал выше весь перерыл нашол темы с подобной проблемой но увы решения ненашол.Сегодня благодаря техподдержки абиллса мою учетку активировали и я задал там тот же вопрос но пока тишина.Если у когонибудь есть какие нибудь советы или соображения куда капать буду очень благодарен. Изменено 7 июня, 2010 пользователем sonkilla Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
MagMike Опубликовано 9 июня, 2010 · Жалоба проблема-то, насколько я понимаю, в том, что у pppd (а точнее, даже в самом ядре) счетчики октетов - 32битные. поэтому в самом pppd, когда он обновляет счетчики в своих внутренних структурах, надо вести учет того, что произошло переполнение разрядности и как только это происходит - увеличивать на 1 счетчики Gigawords. а потом еще надо "научить" плагин radius заполнять атрибуты Acct-Input-Gigawords и Acct-Output-Gigawords Все это моё imho. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 9 июня, 2010 · Жалоба http://forum.nag.ru/forum/index.php?showto...mp;hl=Gigawords Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sonkilla Опубликовано 10 июня, 2010 · Жалоба проблема-то, насколько я понимаю, в том, что у pppd (а точнее, даже в самом ядре) счетчики октетов - 32битные. поэтому в самом pppd, когда он обновляет счетчики в своих внутренних структурах, надо вести учет того, что произошло переполнение разрядности и как только это происходит - увеличивать на 1 счетчики Gigawords. а потом еще надо "научить" плагин radius заполнять атрибуты Acct-Input-Gigawords и Acct-Output-Gigawords Все это моё imho. неподскажите поточней как научить ? ведь я прописал в словарях радиусклиента и радиусаATTRIBUTE Acct-Input-Gigawords 52 integer ATTRIBUTE Acct-Output-Gigawords 53 integer Вчера просидев всю ночь собрал еще один сервак на базе Fedora Core 11 i386.Подключил его NAS сервером.Скачал и поставил отсюда http://koji.fedoraproject.org/koji/buil ... dID=172812 готовый пакет с пропатченным ppp gigawords.Первым пунктом тут написано * Mon May 10 2010 - Jiri Skala <jskala@redhat.com> 2.4.4-13 - removed ppp-2.4.3 from sources - fixes #521167 - RFE: Gigawords support in ppp Все завелось авторизация проходит и все работает,но картина отсталась таже,выкачеваю свои 6.4 гига но фрирадиус в стоп пакете получает в парах гигавордса понулям в итоге биллинг ничего непосчитал. Стоп пакет Wed Jun 9 04:47:45 2010 Acct-Session-Id = "4C0ED3360FA200" User-Name = "tester5" Acct-Status-Type = Stop Service-Type = Framed-User Framed-Protocol = PPP Acct-Authentic = RADIUS Acct-Session-Time = 803 Acct-Output-Octets = 3521443950 Acct-Output-Gigawords = 0 Acct-Input-Octets = 55787909 Acct-Input-Gigawords = 0 Acct-Output-Packets = 2402237 Acct-Input-Packets = 1357477 NAS-Port-Type = Virtual Acct-Terminate-Cause = User-Request Framed-IP-Address = 172.16.0.123 NAS-IP-Address = 127.0.0.1 NAS-Port = 0 Acct-Delay-Time = 0 Timestamp = 1276040865 Request-Authenticator = Verified В /usr/abills/libexec/config.pl $conf{MAX_SESSION_TRAFFIC} = 0;(пробывал разное прописывать тут что нужно вообще чтоб стояло?) может еще чтонибудь сюда надо? в словарях попрежнему радиусклиента и фрирадиуса ATTRIBUTE Acct-Input-Gigawords 52 integer ATTRIBUTE Acct-Output-Gigawords 53 integer сверху параметры обрез скорости каторые кстати работают. Есть советы? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nuclearcat Опубликовано 10 июня, 2010 · Жалоба Есть советы?Acct-Interim-Interval есть? попробовать 30 или 60 (второе если у юзера скорость ниже 500 Мбит) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 10 июня, 2010 · Жалоба Смотреть radacct detail, приходят ли Gigawords в Interim-Update. Лично у меня - приходят =). Дальше пробовать в Acct.pm в обработку Alive-пакетов всунуть логирование (очень удобно - Data::Dumper). Нужная переменная - $RAD (если что - я не виноват, пишу по памяти :)). Да, ещё - патчей на Gigawords мелькало несколько. У меня заработал только один. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sonkilla Опубликовано 10 июня, 2010 · Жалоба Есть советы?Acct-Interim-Interval есть? попробовать 30 или 60 (второе если у юзера скорость ниже 500 Мбит) щас стоит ATTRIBUTE Acct-Interim-Interval 85 integerменяю на ATTRIBUTE Acct-Interim-Interval 30 integer а также на ATTRIBUTE Acct-Interim-Interval 60 integer при запуске радиуса с параметром -X вываливаеться вот такая ошибка тут инклюдит модули и т.д я это опущу а дальше including configuration file /usr/local/radiusd//etc/raddb/sites-enabled/inner-tunnel main { allow_core_dumps = no } including dictionary file /usr/local/radiusd//etc/raddb/dictionary Errors reading dictionary: dict_init: /usr/local/radiusd//etc/raddb/dictionary[50]: dict_addattr: Duplicate attribute name Acct-Interim-Interval хатя какой нафиг дубликат если параметр Acct-Interim-Interval только один там.Как только меняю назад как было на с 30 или 60 на 85 ATTRIBUTE Acct-Interim-Interval 85 integer все сразу жжужит и пашет как невчем небывало и про дубликат забывает. Да кстати фрирадиус версия 2.1.9 Смотреть radacct detail, приходят ли Gigawords в Interim-Update. вот что в радакте (тут скаченно было 6.4) Fri Jun 11 00:45:59 2010 Acct-Session-Id = "4C1140AA087E00" User-Name = "test3" Acct-Status-Type = Start Service-Type = Framed-User Framed-Protocol = PPP Acct-Authentic = RADIUS NAS-Port-Type = Virtual Framed-IP-Address = 172.16.1.188 NAS-IP-Address = 127.0.0.1 NAS-Port = 0 Acct-Delay-Time = 0 Timestamp = 1276199159 Request-Authenticator = Verified Fri Jun 11 01:09:00 2010 Acct-Session-Id = "4C1140AA087E00" User-Name = "test3" Acct-Status-Type = Stop Service-Type = Framed-User Framed-Protocol = PPP Acct-Authentic = RADIUS Acct-Session-Time = 1381 Acct-Output-Octets = 2745633208 Acct-Output-Gigawords = 0 Acct-Input-Octets = 107733477 Acct-Input-Gigawords = 0 Acct-Output-Packets = 4757548 Acct-Input-Packets = 2612079 NAS-Port-Type = Virtual Acct-Terminate-Cause = User-Request Framed-IP-Address = 172.16.1.188 NAS-IP-Address = 127.0.0.1 NAS-Port = 0 Acct-Delay-Time = 0 Timestamp = 1276200540 Request-Authenticator = Verified несовсем понял что это за параметр и откуда он береться что то нужно в словарь прописать? Лично у меня - приходят =). Дальше пробовать в Acct.pm в обработку Alive-пакетов всунуть логирование (очень удобно - Data::Dumper). Нужная переменная - $RAD (если что - я не виноват, пишу по памяти :)). тут пожалуйста поподробней если можно. Да, ещё - патчей на Gigawords мелькало несколько. У меня заработал только один. какой именно если несложно выложите?попробывал все что нашол как писал выше а сейчас на готовой рпмке с офф сайта уже пропатченной. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 11 июня, 2010 · Жалоба щас стоит ATTRIBUTE Acct-Interim-Interval 85 integerменяю... Зачем? О_овот что в радакте(тут скаченно было 6.4) ... У вас Alive не ходят (они же - Interim-Update). Насколько я понимаю, пересчет Gigawords происходит как раз во время отправки Alive.Лезем в свойства сервера доступа в abills, пишем в RADIUS параметры: Acct-Interim-Interval=60 Остальное пока не трогаем. Передергиваем соединение, смотрим, появятся ли Alive. Выглядят примерно так: ... Acct-Status-Type = Interim-Update ... Насчет патчей не подскажу - у меня это уже крутится в mpd5, остальное безвозвратно проепотеряно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Abram Опубликовано 11 июня, 2010 · Жалоба ВНЕЗАПНО, документация! http://abills.net.ua/wiki/doku.php/abills:..._приходят_alive Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sonkilla Опубликовано 11 июня, 2010 · Жалоба Спасибо за совет.Сделал как вы написали и запахало.Думал помогло да не тут то было.почемуто перестала появляться статистика.Тоесть в в мониторинге я вижу что юзер сидит,и в радакт логе тоже есть,и в радиусе вижу как заходит, а в журнале последние входы и использованно ничего нет.Слил все конфиги в бекап и перевесил все с нуля и ось в том числе.Решил с бекапов конфиги невостанавливать а заного по офф документации и форуму поставить.Все поставил вроде пашет но вышла странная проблема что если я меняю $conf{MAX_SESSION_TRAFFIC} = 2047; на любое число выше или вообще каменчу то при коннекте все проходит авторизацию и пускает в сеть но через секунду выкидывает и винда пишет Неудаёться связаться с Test(это имя подключения) Ожидаеться повторное подключение .Ни ошибки ни фига больше непишет.В логах все тишина.вот вывод radiusd -X Listening on authentication address * port 1812 Listening on accounting address * port 1813 Listening on command file /usr/local/radiusd//var/run/radiusd/radiusd.sock Listening on proxy address * port 1814 Ready to process requests. rad_recv: Access-Request packet from host 127.0.0.1 port 45523, id=229, length=94 Service-Type = Framed-User Framed-Protocol = PPP User-Name = "tester3" CHAP-Challenge = 0x29d13e87db34ced250264c36f87643c2a5ea6458 CHAP-Password = 0x0a4498cf47ac8b010b4b2aab46e0e5ae4d NAS-IP-Address = 127.0.0.1 NAS-Port = 0 +- entering group authorize {...} ++[preprocess] returns ok Exec-Program output: Auth-Type := Accept Exec-Program-Wait: value-pairs: Auth-Type := Accept Exec-Program: returned: 0 ++[abills_preauth] returns ok ++[mschap] returns noop [files] users: Matched entry DEFAULT at line 1 ++[files] returns ok Exec-Program output: Acct-Interim-Interval = 60, Session-Timeout = 1627513, PPPD-Upstream-Speed-Limit = 0, Octets-Direction = 0, Framed-IP-Address = 172.16.0.156, Session-Octets-Limit = 2148532224, Framed-IP-Netmask = 255.255.255.255, PPPD-Downstream-Speed-Limit = 0, Exec-Program-Wait: value-pairs: Acct-Interim-Interval = 60, Session-Timeout = 1627513, PPPD-Upstream-Speed-Limit = 0, Octets-Direction = 0, Framed-IP-Address = 172.16.0.156, Session-Octets-Limit = 2148532224, Framed-IP-Netmask = 255.255.255.255, PPPD-Downstream-Speed-Limit = 0, Exec-Program: returned: 0 ++[abills_auth] returns ok Found Auth-Type = Accept Auth-Type = Accept, accepting the user WARNING: Empty post-auth section. Using default return values. Sending Access-Accept of id 229 to 127.0.0.1 port 45523 Acct-Interim-Interval = 60 Session-Timeout = 1627513 PPPD-Upstream-Speed-Limit = Bridge-No Octets-Direction = Route-IP-No Framed-IP-Address = 172.16.0.156 Session-Octets-Limit = 2148532224 Framed-IP-Netmask = 255.255.255.255 PPPD-Downstream-Speed-Limit = Send-Auth-None Finished request 0. Going to the next request Waking up in 4.9 seconds. rad_recv: Accounting-Request packet from host 127.0.0.1 port 45067, id=230, length=99 Acct-Session-Id = "4C12BEB70FBC00" User-Name = "tester3" Acct-Status-Type = Start Service-Type = Framed-User Framed-Protocol = PPP Acct-Authentic = RADIUS NAS-Port-Type = Virtual Framed-IP-Address = 172.16.0.156 NAS-IP-Address = 127.0.0.1 NAS-Port = 0 Acct-Delay-Time = 0 +- entering group preacct {...} ++[preprocess] returns ok Exec-Program output: Exec-Program: returned: 0 ++[abills_acc] returns ok +- entering group accounting {...} [detail] expand: /usr/local/radiusd//var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d -> /usr/local/radiusd//var/log/radius/radacct/127.0.0.1/detail-20100612 [detail] /usr/local/radiusd//var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands to /usr/local/radiusd//var/log/radius/radacct/127.0.0.1/detail-20100612 [detail] expand: %t -> Sat Jun 12 03:54:47 2010 ++[detail] returns ok ++[unix] returns ok [radutmp] expand: /usr/local/radiusd//var/log/radius/radutmp -> /usr/local/radiusd//var/log/radius/radutmp [radutmp] expand: %{User-Name} -> tester3 ++[radutmp] returns ok [attr_filter.accounting_response] expand: %{User-Name} -> tester3 attr_filter: Matched entry DEFAULT at line 12 ++[attr_filter.accounting_response] returns updated Sending Accounting-Response of id 230 to 127.0.0.1 port 45067 Finished request 1. Cleaning up request 1 ID 230 with timestamp +4 Going to the next request Waking up in 4.8 seconds. rad_recv: Accounting-Request packet from host 127.0.0.1 port 56603, id=231, length=147 Acct-Session-Id = "4C12BEB70FBC00" User-Name = "tester3" Acct-Status-Type = Stop Service-Type = Framed-User Framed-Protocol = PPP Acct-Authentic = RADIUS Acct-Session-Time = 1 Acct-Output-Octets = 0 Acct-Output-Gigawords = 0 Acct-Input-Octets = 529 Acct-Input-Gigawords = 0 Acct-Output-Packets = 0 Acct-Input-Packets = 3 NAS-Port-Type = Virtual Acct-Terminate-Cause = NAS-Request Framed-IP-Address = 172.16.0.156 NAS-IP-Address = 127.0.0.1 NAS-Port = 0 Acct-Delay-Time = 0 +- entering group preacct {...} ++[preprocess] returns ok Exec-Program output: Exec-Program: returned: 0 ++[abills_acc] returns ok +- entering group accounting {...} [detail] expand: /usr/local/radiusd//var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d -> /usr/local/radiusd//var/log/radius/radacct/127.0.0.1/detail-20100612 [detail] /usr/local/radiusd//var/log/radius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands to /usr/local/radiusd//var/log/radius/radacct/127.0.0.1/detail-20100612 [detail] expand: %t -> Sat Jun 12 03:54:48 2010 ++[detail] returns ok ++[unix] returns ok [radutmp] expand: /usr/local/radiusd//var/log/radius/radutmp -> /usr/local/radiusd//var/log/radius/radutmp [radutmp] expand: %{User-Name} -> tester3 ++[radutmp] returns ok [attr_filter.accounting_response] expand: %{User-Name} -> tester3 attr_filter: Matched entry DEFAULT at line 12 ++[attr_filter.accounting_response] returns updated Sending Accounting-Response of id 231 to 127.0.0.1 port 56603 Finished request 2. Cleaning up request 2 ID 231 with timestamp +5 Going to the next request Waking up in 3.7 seconds. Cleaning up request 0 ID 229 with timestamp +4 Ready to process requests. где я опять накасячил? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
snark Опубликовано 12 июня, 2010 · Жалоба Наиболее правильный вариант будет вынести NAS на Mikrotik или Freebsd (mpd). Под ними такой проблемы - нет. ... и поставить этот биллинг Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
sonkilla Опубликовано 12 июня, 2010 · Жалоба Наиболее правильный вариант будет вынести NAS на Mikrotik или Freebsd (mpd). Под ними такой проблемы - нет.... и поставить этот биллинг Спасибо за советы.Микротик неочеь понравился,поставил оттестил все завелось но непонятно до конца как все работает,команды урезаны,а через винбокс тыкать галачками и получить результата непоняв как это все работает как то нехочеться.mpd думаю более верное решение тут будет.Насчет ссылки что вы дали покручу посмотрю. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
~AsmodeuS~ Опубликовано 12 сентября, 2011 · Жалоба Наиболее правильный вариант будет вынести NAS на Mikrotik или Freebsd (mpd). Под ними такой проблемы - нет.... и поставить <a href="http://stasoft.net/" target="_blank">этот</a> биллинг а потом потом опять вернуться на abills ) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...