URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 13280
[ Назад ]

Исходное сообщение
"OpenNews: Учет трафика в Linux используя ipcad"

Отправлено opennews , 15-Янв-06 21:30 
Александр Кузнецов рассказал (http://www.nixp.ru/articles/linux_traffic_with_ipcad) о том как решить задачу учета проходящего через шлюз трафика, используя ipcad (http://sourceforge.net/projects/ipcad) (симулирует cisco ip accounting) и несколько простых скриптов формирующих помесячные отчеты на основе получаемых по rsh "ip accounting" данных.

URL: http://www.nixp.ru/articles/linux_traffic_with_ipcad
Новость: http://www.opennet.me/opennews/art.shtml?num=6795


Содержание

Сообщения в этом обсуждении
"Учет трафика в Linux используя ipcad"
Отправлено sash , 15-Янв-06 21:30 
по-моему такой метод неприменим в условиях офиса, когда стандартной схемой является шлюз(NAT)+прокси(squid), а если к тому же есть transparent proxy?

"Учет трафика в Linux используя ipcad"
Отправлено rippy , 16-Янв-06 11:48 
>по-моему такой метод неприменим в условиях офиса, когда стандартной схемой является шлюз(NAT)+прокси(squid),
>а если к тому же есть transparent proxy?

Почему? добавьте опцию capture-ports enable; и разделяйте подсчет на интерфейсах. Суммарный трафик от шлюза будет на внешнем, клиентский (с учетом от прокси) на внутренних.

Понятное дело, что степень агрегирования уменьшается и объем данных будет рости


"Учет трафика в Linux используя ipcad"
Отправлено Аноним , 16-Дек-07 17:05 
>по-моему такой метод неприменим в условиях офиса, когда стандартной схемой является шлюз(NAT)+прокси(squid),
>а если к тому же есть transparent proxy?

Для решение проблемы УЧЁТ+SQUID просмотрите нашу заготовку, по кране мере опробовали её и она нормально работает :) Да не на ipcad собрано, но как раз для малых офисов подходит.
http://www.office-control.org


"OpenNews: Учет трафика в Linux используя ipcad"
Отправлено Maxim Chirkov , 15-Янв-06 21:58 
У ipcad есть одна логичная, но ощущаемая через наступания на грабли, особенность. Если интерфейсы выбираются по маске (например, "vlan*") и для некоторых из них есть алиасы,  то для них трафика будет посчитан в N раз больше, т.е. для каждого алиасы в логах будет дубликат данных.
Для обхода проблемы был создан небольшой патч (отправлен автору ipcad, но похоже где-то затерялся), вместо звездочки вводящий более строгую маску (например, vlan[0-9][0-9][0-9][0-0]):

diff -u --recursive --new-file ipcad-3.6.6/cfglex.l ipcad-3.6.6-new/cfglex.l
--- ipcad-3.6.6/cfglex.l        2005-03-22 14:57:25 +0500
+++ ipcad-3.6.6-new/cfglex.l    2005-08-08 16:45:56 +0600
@@ -66,7 +66,7 @@
                ipcacfglval.tv_char = strdup(yytext);
                return TOK_STRING;
        }
-       [a-z]+[_0-9*]*  {
+       [a-z]+[_0-9\*\[\]\-]*   {
                ipcacfglval.tv_char = strdup(yytext);
                return TOK_STRING;
        }
diff -u --recursive --new-file ipcad-3.6.6/headers.h ipcad-3.6.6-new/headers.h
--- ipcad-3.6.6/headers.h       2005-03-22 14:57:25 +0500
+++ ipcad-3.6.6-new/headers.h   2005-08-08 17:09:49 +0600
@@ -251,4 +251,7 @@
#define        MIN(a,b)        ((a)<(b)?(a):(b))
#endif /* MIN */

+#undef IFNAMSIZ
+#define IFNAMSIZ 32
+
#endif /* __HEADERS_H__ */
diff -u --recursive --new-file ipcad-3.6.6/psrc.c ipcad-3.6.6-new/psrc.c
--- ipcad-3.6.6/psrc.c  2005-03-22 14:57:25 +0500
+++ ipcad-3.6.6-new/psrc.c      2005-08-08 17:02:03 +0600
@@ -62,11 +62,12 @@
        /*
         * Initialize packet source descriptors.
         */
-       if(strchr(ifname, '*')) {
+//     if(strchr(ifname, '*')) {
+       if(strchr(ifname, '*') != NULL || strchr(ifname, '[') != NULL){
                /*
                 * The interface does not exist, so it might be dynamic.
                 */
-               fprintf(stderr, "[DYNAMIC] ");
+               fprintf(stderr, "[DYNAMIC] /%s/ ", ps->ifName);
                ps->process_ptr = process_dynamic;
                ps->print_stats = print_stats_dynamic;
                ps->iface_type = IFACE_DYNAMIC;


"Учет трафика в Linux используя ipcad"
Отправлено pavlinux , 15-Янв-06 23:18 
Всё прекрасно, вот ещё бы написал как
RRDTools через GNUplot прикрутить.
И тогда бы получился MRTG :)
  Ну что сказать, у Opennet продвижение, от
сбора антиквариата переходят к обсуждению новых моделей велосипедов. (например с ручным приводом).


"Учет трафика в Linux используя ipcad"
Отправлено Kid , 16-Янв-06 01:13 
это, простите, баловство.
такой метод подсчёта совершенно неприменим, если за этот самый трафик вам надо собирать с людей деньги, причем не по факту, а по предоплате и с отключением по нулю

"Учет трафика в Linux используя ipcad"
Отправлено xxx , 16-Янв-06 02:25 
это ведь учет трафика, а не система биллинга

"Учет трафика в Linux используя ipcad"
Отправлено Zhernakov Artem , 16-Янв-06 14:51 
Давно использую ipcad для подсчета трафика все прекрасно работает, написал скриптик небольшой на perl который выводит мне отчеты в html за каждый день и суммарный за месяц да еще сохраняет мне полный дамп всех пакетов котрые прошли через внешний интерфейс, чтоб если что ;) можно было провести разбор полётов.

"Учет трафика в Linux используя ipcad"
Отправлено BARSiK , 12-Фев-07 13:47 
>Давно использую ipcad для подсчета трафика все прекрасно работает, написал скриптик небольшой
>на perl который выводит мне отчеты в html за каждый день
>и суммарный за месяц да еще сохраняет мне полный дамп всех
>пакетов котрые прошли через внешний интерфейс, чтоб если что ;) можно
>было провести разбор полётов.

хотелось бы попробовать, не хочу изобретать велосипед, и билинг мне не нужен
а для отчетов было бы не плохо


"Учет трафика в Linux используя ipcad"
Отправлено Halyva , 16-Янв-06 15:09 
>по-моему такой метод неприменим в условиях офиса, когда стандартной схемой является шлюз(NAT)+прокси(squid), а если к тому же есть transparent proxy?
И в чём же сдесь проблема? ВСё прекрасно будет работать, поверь мне. Ты просто будешь смотреть трафик который идёт к конкретному пользователю.
На счёт mrtg то он на скока я помню (по крайней мере по Linux) ppp интерфейсы слушать то ли не умеет, то ли слушает их неправильно.
это, простите, баловство.
>такой метод подсчёта совершенно неприменим, если за этот самый трафик вам надо собирать с людей деньги, причем не по факту, а по предоплате и с отключением по нулю
Кто тебе мешает парсить сливать данные с rsh в файл, а потом парсить его как хочешь. У меня такая система работала как экспериментальная какое то время. Если денег не жалко то в принципе люди уходят в небольшой минус и на офис (т.е. на человек 30 )достаточно хорошо работает. Если надо на большое количество человек и более реального времени, то Вам тогда надо на один из банеров которые находяться чуток Выше!

"Учет трафика в Linux используя ipcad"
Отправлено Kid , 16-Янв-06 21:23 
>>по-моему такой метод неприменим в условиях офиса, когда стандартной схемой является шлюз(NAT)+прокси(squid), а если к тому же есть transparent proxy?
>И в чём же сдесь проблема? ВСё прекрасно будет работать, поверь мне.
>Ты просто будешь смотреть трафик который идёт к конкретному пользователю.
>На счёт mrtg то он на скока я помню (по крайней мере
>по Linux) ppp интерфейсы слушать то ли не умеет, то ли
>слушает их неправильно.
>это, простите, баловство.
>>такой метод подсчёта совершенно неприменим, если за этот самый трафик вам надо собирать с людей деньги, причем не по факту, а по предоплате и с отключением по нулю
>Кто тебе мешает парсить сливать данные с rsh в файл, а потом
>парсить его как хочешь. У меня такая система работала как экспериментальная
>какое то время. Если денег не жалко то в принципе люди
>уходят в небольшой минус и на офис (т.е. на человек 30
>)достаточно хорошо работает. Если надо на большое количество человек и более
>реального времени, то Вам тогда надо на один из банеров которые
>находяться чуток Выше!


ага...я начну файлик метров на 650 в один поток сливать и пока я не закончу, будьте уверены - ни в какую статистику это не попадёт...


"Учет трафика в Linux используя ipcad"
Отправлено rippy , 17-Янв-06 08:20 
>ага...я начну файлик метров на 650 в один поток сливать и пока
>я не закончу, будьте уверены - ни в какую статистику это
>не попадёт...

да ладно?


"Учет трафика в Linux используя ipcad"
Отправлено Halyva , 17-Янв-06 15:19 
>ага...я начну файлик метров на 650 в один поток сливать и пока
>я не закончу, будьте уверены - ни в какую статистику это
>не попадёт...
Это уже как ipcad настроишь и как часто будеш парсить так сказать rsh.log. Если будешь парсить каждые 6 секунд то всё окей будет! Минус в мегабайтах будет равен
скорость канала [Mbit/сек]*6[сек].

"Учет трафика в Linux используя ipcad"
Отправлено maury , 16-Янв-06 16:54 
хорошо скрещевается с Netflow коллектором http://netflow.cesnet.cz, гораздо более элегантное решение, и статистика интереснее,
netflow ведь :)

"Учет трафика в Linux используя ipcad"
Отправлено se , 17-Янв-06 11:56 
>хорошо скрещевается с Netflow коллектором http://netflow.cesnet.cz, гораздо более элегантное решение, и статистика
>интереснее,
>netflow ведь :)
хм, а разве сам ipcad не является netflow коллектором?
зачем его с кем-то скрещивать?
ipcad + flow-tools и вперёд.

"Учет трафика в Linux используя ipcad"
Отправлено Halyva , 17-Янв-06 15:21 
>>хорошо скрещевается с Netflow коллектором http://netflow.cesnet.cz, гораздо более элегантное решение, и статистика
>>интереснее,
>>netflow ведь :)
>хм, а разве сам ipcad не является netflow коллектором?
>зачем его с кем-то скрещивать?
>ipcad + flow-tools и вперёд.
Действительно. Отличный коллектор который могет по NetFlow слать куда угодно!
[root@XXXXX /]# ipcad -v
IP Accounting Daemon. ipcad Version 3.6.6
Import {BPF/LIBPCAP/ULOG/LIBIPQ/DIVERT/TEE}; Export {console/file/RSH/NetFlow}
Copyright (c) 2001, 2002, 2003, 2004 Lev Walkin <vlm@lionet.info>

"Учет трафика в Linux используя ipcad"
Отправлено Аноним , 17-Янв-06 17:43 
Умеет ли ipcad  динамически создаваемыми интерфейсами работать например tun*? а с вланами?

"Учет трафика в Linux используя ipcad"
Отправлено Halyva , 17-Янв-06 18:20 
>Умеет ли ipcad  динамически создаваемыми интерфейсами работать например tun*? а с
>вланами?
А как ты сам думаешь. Почитай спецификацию.
ipcad uses raw BPF devices (/dev/bpf*), PCAP library (pcap(3)), Linux iptables' ULOG (>=2.4.18-pre8) and IPQ (libipq(3)), BSD divert(4) and tee packet sources.

"Учет трафика в Linux используя ipcad"
Отправлено Аноним , 17-Янв-06 18:57 
у меня в ipcad статистика льётся через iptables -j ULOG. потом самописный скрипт на перле по rsh раз в 5 минут забирает статистику и льёт в постгрес. успевает не сильно напрягаясь обработать 2-3 терабайта в месяц.

"Учет трафика в Linux используя ipcad"
Отправлено replicant , 18-Янв-06 14:22 
аналогично, причем не с одного сервака льется в "сборочный коллектор", а дальше лопатится раз в 5 минут скриптами биллинговой системы ... легко обмолачивает огромные объемы трафика (тем более часть трафика можно скинуть в нафик прямо в iptables, если мешает и надо считать только входящий)

"Учет трафика в Linux используя ipcad"
Отправлено Радист , 19-Янв-06 03:41 
А у меня все еще проще: для каждого нового tun запускаю tcpdump а с него все перенаправляю в скрипт, который мне все и считает. Самое приятное - что я сам решаю, что считать, как считать, и каким образом это все перекладывать в базу данных и т.п. И самое приятное - загрузка при 100 мегабитах в секунду - не более 8-10% (FreeBSD AMD64 3Ghz)

"Ошибка в статье"
Отправлено Lev Walkin , 19-Янв-06 12:15 
В статье рекомендуется делать rsh localhost dump за минуту до полуночи, а потом clear, соответственно, в первую минуту после.

Это неправильное решение, которое логично теряет две минуты трафика.

Правильным решением было бы просто в полночь запускать следующие две команды:

rsh localhost cle ip acco
rsh localhost sh ip acco checkpoint

Которые делают следующее:
1. "clear ip accounting" перемещает активную таблицу аккаунтинга в специальную "банку", где данные более не изменяются и хранятся в замороженом виде.
2. "show ip accounting checkpoin" показывает содержимое этой банки.

Команда "dump" в ipcad'е практически никогда не бывает нужна.


"Учет трафика в Linux используя ipcad"
Отправлено Аноним , 19-Янв-06 13:29 
какие такие раз в сутки ? вполне реально даже раз в минуту траф снимать. хотя оставил запас и собираю раз в 5 минут.

"Учет трафика в Linux используя ipcad"
Отправлено Аноним , 17-Фев-06 19:23 
root:/home/dexx/temp/ipcad-3.7# rsh localhost help
Permission denied.

что мне делать?


"Учет трафика в Linux используя ipcad"
Отправлено rippy , 20-Фев-06 10:38 
>root:/home/dexx/temp/ipcad-3.7# rsh localhost help
>Permission denied.
>
>что мне делать?

разрешить трафик через lo0?


"Учет трафика в Linux используя ipcad"
Отправлено sshaitan , 02-Мрт-06 13:46 
Посоветуйте, какой нибудь анализатор логов (простенький билинг) для обработки логов(этих самых дампов или чекпоинтов) ipcad.

"Учет трафика в Linux используя ipcad"
Отправлено SASA , 02-Мрт-06 17:50 
>Посоветуйте, какой нибудь анализатор логов (простенький билинг) для обработки логов(этих самых дампов
>или чекпоинтов) ipcad.
awstats
для просмотра, например: http://awstats.sourceforge.net/awstats.mail.html
НО.....
Вопрос.
как бы прикрутить время к логам. не использую iptables

"Учет трафика в Linux используя ipcad"
Отправлено laden , 14-Мрт-06 19:02 
Ребят вопрос такой у меня стоит дебиан 3р1_в1.
Поставил ипкад из пакета .деб
Все бы хорошо, но почему то не подкючается rsh пишет мол у тебя и порт то такой не открыт ( 22 ) и фуфел ты полный. По нетстату смотрю, да действительно никто не слушает 22 порт, но сам ипкад висит на порту (514 как я понял он разный бывает).
Во всех статьях что нашел вроде пишут что должен стартовать ссш сервак(ипкад*овский), но нет его у меня хоть ты тресни в нетстате/ При этом сам ипкад пишет что все ок Configured RSH Server listening at xx.xx.xx.xx

"Учет трафика в Linux используя ipcad"
Отправлено rippy , 14-Мрт-06 19:12 
>Ребят вопрос такой у меня стоит дебиан 3р1_в1.
>Поставил ипкад из пакета .деб
>Все бы хорошо, но почему то не подкючается rsh пишет мол у
>тебя и порт то такой не открыт ( 22 ) и
>фуфел ты полный. По нетстату смотрю, да действительно никто не слушает
>22 порт, но сам ипкад висит на порту (514 как я
>понял он разный бывает).
>Во всех статьях что нашел вроде пишут что должен стартовать ссш сервак(ипкад*овский),
>но нет его у меня хоть ты тресни в нетстате/ При
>этом сам ипкад пишет что все ок Configured RSH Server listening
>at xx.xx.xx.xx

netstat -n|grep 514

rsh 127.0.0.1 show ip acco
?


"Учет трафика в Linux используя ipcad"
Отправлено laden , 14-Мрт-06 19:56 
>>...(сожрала крыса)
>>нашел вроде пишут что должен стартовать ссш сервак(ипкад*овский),
>>но нет его у меня хоть ты тресни в нетстате/ При
>>этом сам ипкад пишет что все ок Configured RSH Server listening
>>at xx.xx.xx.xx
>
>netstat -n|grep 514
ТУТ надо бы добавить -l так как я еще ничего не установил/
>
>rsh 127.0.0.1 show ip acco
>?
tcp        0      0 127.0.0.1:514           0.0.0.0:*               LISTEN
Мммм и что? Вроде бы rsh без ключа -п коннектитца на 22 порт.


"Учет трафика в Linux используя ipcad"
Отправлено rippy , 14-Мрт-06 20:05 
>>netstat -n|grep 514
>ТУТ надо бы добавить -l так как я еще ничего не установил/
>
>>
>>rsh 127.0.0.1 show ip acco
>>?
>tcp        0    
>  0 127.0.0.1:514        
>   0.0.0.0:*        
>       LISTEN
>Мммм и что? Вроде бы rsh без ключа -п коннектитца на 22
>порт.

Вам нужно посредством протокола rsh присоединиться к localhost (127.0.0.1) на 514 порт (на котором висит ipcad). Вот уж не знаю, как задать это в дебиане, но ИМХО если вы знаете ключи rsh, то сделать это не трудно. Что происходит после rsh 127.0.0.1 show ip acco ? трафик в фаерволе через локалхост разрешен?


"Учет трафика в Linux используя ipcad"
Отправлено laden , 14-Мрт-06 20:15 
>>...(сгрызли мыши)
>Вам нужно посредством протокола rsh присоединиться к localhost (127.0.0.1) на 514 порт
>(на котором висит ipcad). Вот уж не знаю, как задать это
>в дебиане, но ИМХО если вы знаете ключи rsh, то сделать
>это не трудно.
Да так оно и есть. Хорошо делаю так rsh -p 514 localhost help
Выводит
potato:/home/laden# rsh -p 514 localhost help
ssh: connect to host localhost port 514: Connection refused
> Что происходит после rsh 127.0.0.1 show ip acco
>? трафик в фаерволе через локалхост разрешен?
Фаервол вообще не настраивал единственное добавил запрет на порты 137:139 и все
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       tcp  --  anywhere             anywhere            tcp spts:netbios-ns:netbios-ssn

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination



"Учет трафика в Linux используя ipcad"
Отправлено laden , 14-Мрт-06 20:17 
ИЗВИНЯЮСЬ!!! ВОТ что выводит
ssh_exchange_identification: Connection closed by remote host
>Выводит
>potato:/home/laden# rsh -p 514 localhost help
ssh_exchange_identification: Connection closed by remote host
>> Что происходит после rsh 127.0.0.1 show ip acco
>>? трафик в фаерволе через локалхост разрешен?

"Учет трафика в Linux используя ipcad"
Отправлено rippy , 14-Мрт-06 20:19 
>ИЗВИНЯЮСЬ!!! ВОТ что выводит
>ssh_exchange_identification: Connection closed by remote host
>>Выводит
>>potato:/home/laden# rsh -p 514 localhost help
>ssh_exchange_identification: Connection closed by remote host
>>> Что происходит после rsh 127.0.0.1 show ip acco
>>>? трафик в фаерволе через локалхост разрешен?

icq175121548


"Учет трафика в Linux используя ipcad"
Отправлено laden , 14-Мрт-06 20:42 
>>ИЗВИНЯЮСЬ!!! ВОТ что выводит
>>ssh_exchange_identification: Connection closed by remote host
>>>Выводит
Для пользователей linux. Оказалась есть фишка Что rsh это обычный ssh, а нам нужен именно протокол связи rsh. Для debian я нашел в пакетах rsh-client.
После установки пишем
netkit-rsh localhost show ip accounting
И радуемся.

"Учет трафика в Linux используя ipcad"
Отправлено krz , 21-Мрт-06 10:56 
У меня rsh пароль просит
оказалось что в системе отсутствует файл /etc/hosts.equiv
создал его, не помогло. что ему еще нада???

"Учет трафика в Linux используя ipcad"
Отправлено rigger , 28-Сен-06 14:09 
Извеняюсь, что малясь не в тему..
Кто-нибудь сталкивался может с такой проблемой при сборке ipcad-3.7
./configure --prefix=/usr/ --sysconfdir=/etc/ && make
main.o(.text+0x2b8):/usr/local/src/ipcad-3.7/main.c:264: undefined reference to `ap_signal'
main.o(.text+0x2c6):/usr/local/src/ipcad-3.7/main.c:265: more undefined references to `ap_signal' follow
collect2: ld returned 1 exit status
make: *** [ipcad] Ошибка 1
Пытаюсь водрузить на slackware10.2
также стоит libpcap-0.9.5, tcpdump-3.9.5
Заранее благодарен.

"Учет трафика в Linux используя ipcad"
Отправлено Timege , 15-Мрт-07 17:38 
>У меня rsh пароль просит
>оказалось что в системе отсутствует файл /etc/hosts.equiv
>создал его, не помогло. что ему еще нада???
apt-get install rsh-client (у тебя стоит видимо ssh)


"Учет трафика в Linux используя ipcad"
Отправлено J0hn , 18-Янв-07 16:44 
За это отдельное спасибо

"Учет трафика в Linux используя ipcad"
Отправлено Серж , 10-Апр-07 10:52 
Братья, дайте кто-нить скриптик для вывода логов ипкада в веб-интерфейс, очень надо!

Спасибо.


"Учет трафика в Linux используя ipcad"
Отправлено Temik , 28-Окт-07 14:44 
Здравствуйте!

Пожалуйста подскажите в чем собсно трабл:)

Есть Mandriva2007+ipcad. Причем ipcad собирается из исходников без ошибок, корректно стартует и ведет свой dump.
При выполнении rsh localhost help(да и любой другой ipcad-овской команды)
Всегда пишет:
connect to address 127.0.0.1 port 544: Connection refused
trying normal rsh (/usr/bin/rsh)

Было сделано следующее:
1.rpm -e rsh-0.17-15mdk.i586 (после удаления команда rsh выполнялась с тем же результатом)
2. Были удалены все файлы rsh, rsh.krb5,rsh.netkit(команда rsh не выполнялась:))
3.  rpm -ivh rsh-0.17-15mdk.i586.rpm (после установки пакета rsh localhost help(и другие команды) стали восприниматься как и полагается)

Решение кривое конечно, но как иначе я сам не знаю(начинающий я пользователь).
(Кстати, при использовании Linux Mandriva 2008 free(установка без выбора отдельных пакетов) таких проблем с ipcad нет)
Если кто знает в чем ,была проблема с rsh в Mandrive2007(и как ее правильно решать?!),пожалуйста, объясните.
Многие вам будут очень благодарны!


"Учет трафика в Linux используя ipcad"
Отправлено rippy , 28-Окт-07 14:52 
разреши в firewall прохождение трафика через lo0


"Учет трафика в Linux используя ipcad"
Отправлено Temik , 28-Окт-07 15:03 
>разреши в firewall прохождение трафика через lo0

В firewall все ACCEPT по умолчанию. Тут вроде  в сторону alternatives надо копать.
А как копать не наю:)
Да и работает rsh localhost <command>.


"Учет трафика в Linux используя ipcad"
Отправлено gavru , 12-Май-08 23:00 
Простое решениепроблем учёта и минимум настроек
http://traffpro.ru