Короткая предыстория.
Я долгое время использовал подсчёт трафика для клиентов через iptables, привязка mac/ip. Пока клиентов было немного, все было хорошо. Число клиентов выросло, у некоторых из них с одной машины ходят несколько человек, начали спрашивать подсчет по пользователю. Из-за того, что я использую несколько подсетей для клиентов и серверов, нужно иметь возможность не снимать деньги за внутренний трафик.
Я начал искать систему биллинга, остановился на ABillS. Все хорошо, трафик можно разделить по зонах, есть только одно НО. Но зоны поддерживаются только для expppd (FreeBSD) (Может еще для mpd, но он тоже только для FreeBSD). А я привык к Linux.
Зачем я это делал.
Патч создавался для подсчета трафика, идущей через pppd по зонах IPv4 адресов.- 0 - зона по умолчанию. В эту зону попадает трафик, что не попал в другие зоны. Эта зона не заполняется IP-диапазонами.
- 1, ... - зоны, в которые попадает трафик, что соответствует внесенным IP-диапазонам.
Патч состоит из трех частей - патча для pppd, патча для ядра и конфигуратора, который загружает зоны в ядро.
Я не вижу смысла создавать отдельный проект где-то на sf или где-либо ещё, поэтому лежит он вместе сABillS, разработчик ABillS его размещает.
Описание можно найти здесь (http://abills.asmodeus.com.ua/wiki/doku.php?id=abills:docs:l...), исходные тексты -
здесь (http://sourceforge.net/project/showfiles.php?group_id=115151...).URL: http://abills.asmodeus.com.ua/wiki/doku.php?id=abills:docs:l...
Новость: http://www.opennet.me/opennews/art.shtml?num=7936
Если используешь pptp или pppoe - чем связка pppd+radius не устраивает?
Внимательно читаем тему. Подсчет трафика с разделением на зоны адресов. В стандартном pppd такого нет.
Как раз биллинг подбираю - что за лицензия у этого Abills - на сайте про это почему-то ни слова нет?
GNU General Public License (GPL)
GNU GPL v2 - в корне исходников.
Стоило мучиться.www.netams.com
Вернее И стоило мучиться?
Видимо, стоило, потому, как лично у меня он показал себя как предельно глючная вещь. Вполне вероятно, что не только у меня мог бы так себя вести.
А у нас при выборе билли так и не нашли того, что нас устроит.
В итоге я чуть переделал ulog-acctd, и написал полностью все свое на postgresql включая 99% логики.
И по зонам, и по времени делит... и по суткам/дням недели. С любой детализацией и т.п.А для проверяющих - имеющее лицензию.
Еще вариант биллинг: http://cherry.aisp.ru/index.php?option=com_frontpage&Itemid=1
там это реализовано
+ ipcad
Люди, ipcad - это хорошо, когда у вас этих зон штук 15 и больше. Тогда действительно им удобно считать. Да, ipcad и в ABillS есть :).Тут вопрос в том, что практически любой провайдер как на Украине, так и в России считает по разным тарифам:
1) Наружный трафик (зона 0 у меня).
2) Украина/Россия (пусть будет 1).
3) Город (2).
4) Локальная сеть (3).Зачем на это наворачивать ipcad? особенно когда IP выдаются динамически? А если несколько клиентов сидит за своим NAT, но хочет, чтоб я им отдельно считал трафик?
Не совсем понятно как считать трафик клиентов раздельно, если она сидят за NAT'ом...
поясните пожалуйста.
Используем VPN соединение (PPtP). В том-то и дело, что считается трафик конкретного пользователя (вернее, сессии для пользователя) - его считает сам pppd.
вы имеете ввиду что сам пользователь из-за ната поднимает свой VPN и им пользуется? или на нате поднимается VPN и потом считается "раздельно" на уровне pppd (хотя как это все-таки для меня загадка).
Если 1й вариант, то разговор о НАТ излишен в принципе.
Нет, наш pppd (NAS) запускается из PoPToP. Клиент у себя в Win настраивает VPN соединение с указанием IP нашего NAS. Я понимаю, что и в этом случае можно считать через ipcad, но зачем? у нас уже есть pppd, который тоже умеет считать, но в стандартной поставке немножко не так как нам надо.
Stas, ваш патч позволяет считать все-таки по именам пользователей или по адресам/зонам? потому как действительно уместен вопрос про нескольких клиентов за NAT'ом
Для каждого пользователя траффик считается по зонам. Пока зоны одинаковые для всех. Если будет время, добавлю ещё дополнительно зоны, задаваемые для каждого отдельно.
Т.е. статистика выглядит так:
---------------------------------------------------------------------------------------
user | zone 0 in | zone 0 out | zone 1 in | zone 1 out | zone 2 in | zone 2 out | ....
user1 | 1021212 | 321212 | 122222222 | 888888 | 2220000 | 333221 | ....
user2 | 2341232 | 324231 | 211111111 | 666666 | 33300000 | 4444444444 | ....
..... | ......... | .......... | ......... | .......... | ......... | .......... | ....
---------------------------------------------------------------------------------------
По поводу NAT - см ответ выше
Если ссумировать все PPPD-Input(Output)-Octets-Zones-x, то полученное значение на сходится с Acct-Input(Output)-Octets. (из примера атрибутов)
Косяк?
Нет. PPPD считает ВЕСЬ траффик, zone counters - только IPv4.
Новый адрес проэкта http://abills.net.ua/
Весч очень нужная. А никак продвинуть патч в основные репозитории ?