The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [Проследить за развитием треда]

"OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от opennews on 23-Авг-05, 08:01 
Посетитель под ником Skif прислал подробную статью (http://www.opennet.dev/base/net/ng_billing_letter.txt.html) с описанием настройки пакета ng_ipacct (ftp://ftp.wuppy.net.ru/pub/FreeBSD/local/kernel/ng_ipacct/) и детальный разбор процесса написания Perl скриптов для учета трафика, записывающих данные в MySQL базу.

URL: http://www.opennet.dev/base/net/ng_billing_letter.txt.html
Новость: http://www.opennet.dev/opennews/art.shtml?num=5954

Cообщить модератору | Наверх | ^

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Аноним on 23-Авг-05, 08:01 
>config SKIF - конфигурирование файла ядра,

эта статья о настройке ng_ipacct или о том как правильно собирать ядро?


>&& make clean && rehash

rehash тут нафик не нужен


>После всех этих манипуляций перезагрузим сервер.

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


>В RELENG_5 ядро многонитевое(multithreads)
и далее по тексту до
>Что ж, скачиваем и распаковываем.

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

>/usr/local/script . Если у вас такой нет, рекомендую
создать.

рекомендую почитать man hier и держать скрипты в ~/bin


>Объясним конструкцию if ... else : если вначале строки присутствует

эта статья о настройке ng_ipacct, о том как правильно собирать ядро или о программировании на perl?


>Загрузка необходимого модуля ng_ether
>Загрузка необходимого модуля ng_socket
>Загрузка необходимого модуля ng_tee

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


>/usr/local/script/ng_stat/log/ng.log

man hier до просветления


>Пятое: Графический или web-интерфейс, для удобоваримого отображения статистики.

ну и где?

Cообщить модератору | Наверх | ^

2. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Alexander (??) on 23-Авг-05, 10:48 
Да уж вата полная - но кому что...

>> ipfw отрабатывает не все пакеты, поступившие в bpf - пакетный фильтр
>> системы.

Че правда? Может ненароком net.inet.ip.fastforwarding=1.

Cообщить модератору | Наверх | ^

18. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от ganduras on 24-Авг-05, 12:33 
>Да уж вата полная - но кому что...
>
>>> ipfw отрабатывает не все пакеты, поступившие в bpf - пакетный фильтр
>>> системы.
>
>Че правда? Может ненароком net.inet.ip.fastforwarding=1.

ну вообще бывает трафик на одном правиле считается два раза, вместо одного. И это происходит даже с использованием конструкции:
<rule body> in recv <interface name>
или
<rule body> out xmit <interface name>
.

На то, что трафик считается у провайдера немного не так, как у подключенного к нему абоненту, может быть несколько причин:
- провайдер может считать ВСЕ пакеты с/на данный MAC адрес или порт абонента;
- если подключение через ethernet, провайдер может считать пакеты с MAC заголовком, а не чистые IP пакеты;
- вы в курсе, что реальный размер пакета может быть больше, чем указан в заголовке IP пакета ? Разные счетчики по разному относятся к данному факту;
- несоответствие размерности килобайта/мегабайта/etc у пользователя и провайдера :) ;
- борзые терялщики трафика, в качестве счетчика;
- невероятные стечения обстоятельств и способностей отдельных личностей ;)

Автору этой статьи большой поклон. База знаний у каждого из читателей далеко не одинакова. Лучше было бы, если статья после своего выхода обзаводилась флеймом "а что это значит ?" и "как это сделать ?" ?

Cообщить модератору | Наверх | ^

3. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Skif (ok) on 23-Авг-05, 11:48 
>>config SKIF - конфигурирование файла ядра,
>
>эта статья о настройке ng_ipacct или о том как правильно собирать ядро?
>

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

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

:)

>
>>В RELENG_5 ядро многонитевое(multithreads)
>и далее по тексту до
>>Что ж, скачиваем и распаковываем.
>

:)
Во первых это не придание объемистости, а пояснение принципов работы нетграфа на разных ветках FreeBSD, во вторых требование редактора ввести сии пояснения
Кстати, а вы сами представляете себе как работает netgraph и ng_ipacct  в частности?

>>/usr/local/script . Если у вас такой нет, рекомендую
>создать.
>
>рекомендую почитать man hier и держать скрипты в ~/bin

Первое, прочтите внимательно статью. Второе, папка /usr/local/script создана для расположения ВСЕХ лично написанных мною скриптов и призвана не захламлять системные папки.
Как по мне это правильный подход для любого админа. Он должен четко знать, где стоит чего-то самопальное. Я этому приучил уже не одного администратора.

>
>
>>Объясним конструкцию if ... else : если вначале строки присутствует
>
>эта статья о настройке ng_ipacct, о том как правильно собирать ядро или
>о программировании на perl?

Внимательно вчитайтесь в название статьи. О системе сбора траффика и ее (системы) написании

>
>
>>Загрузка необходимого модуля ng_ether
>>Загрузка необходимого модуля ng_socket
>>Загрузка необходимого модуля ng_tee
>
>что-то я не понял, зачем грузить модули если они уже вкомпилированы в
>ядро?

А вы внимательностью отличаетесь? Идет проверка наличиствуют ли вкомпиленные опции в ядре, если нет, то выдается информация и происходит загрузка необходимых
>
>
>>/usr/local/script/ng_stat/log/ng.log
>
>man hier до просветления
>
>
>>Пятое: Графический или web-интерфейс, для удобоваримого отображения статистики.
>
>ну и где?

А что реально надо?

Cообщить модератору | Наверх | ^

8. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Pbl6a on 23-Авг-05, 13:28 

>А что реально надо?


да
;)

Cообщить модератору | Наверх | ^

30. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Merlin (??) on 28-Авг-05, 01:19 
>
>>А что реально надо?
>
>
>да
>;)
Да, если не трудно, можно где-то выложить эти скрипты?


Cообщить модератору | Наверх | ^

11. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от AMDmi3 on 23-Авг-05, 17:22 
>папка /usr/local/script создана для расположения ВСЕХ лично
>написанных мною скриптов и призвана не захламлять системные папки.
>Как по мне это правильный подход для любого админа. Он должен четко
>знать, где стоит чего-то самопальное. Я этому приучил уже не одного
>администратора.

~/bin именно для этого и придумали

Cообщить модератору | Наверх | ^

13. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Skif (ok) on 23-Авг-05, 18:29 
>~/bin именно для этого и придумали

Все же останусь при своем мнении. :)
Именно так, а не иначе. ИМХО, гораздо правильнее подход

Cообщить модератору | Наверх | ^

15. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Артур (??) on 23-Авг-05, 20:15 
>>папка /usr/local/script создана для расположения ВСЕХ лично

>~/bin именно для этого и придумали

Поддерживаю Скифа, со своим барохлом обслуживающих скриптов в /usr/local/мое гораздо удобнее поддерживать, бэкапить, работать.
Когда все в одной куче с портами в /usr/local/bin - хрен что найдешь с первого захода.

Cообщить модератору | Наверх | ^

16. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Аноним on 24-Авг-05, 06:44 
Уважаемые доны не знают что такое ~/ ?
Да не в /bin, не в /usr/bin и не в /usr/local/bin, разуйте глаза! В ~/,  домашнем каталоге пользователя, от которого эти скрипты запускаются, создается каталог bin. Имхо, именно это unix-way, ибо не захламляются потенциально экспортируемые каталоги.

А вот держать логи в /usr/local/script/бла-бла - вообще руки оторвать надо.

>>>папка /usr/local/script создана для расположения ВСЕХ лично
>
>>~/bin именно для этого и придумали
>
>Поддерживаю Скифа, со своим барохлом обслуживающих скриптов в /usr/local/мое гораздо удобнее поддерживать,
>бэкапить, работать.
>Когда все в одной куче с портами в /usr/local/bin - хрен что
>найдешь с первого захода.


Cообщить модератору | Наверх | ^

20. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Аноним on 24-Авг-05, 22:24 
>Уважаемые доны не знают что такое ~/ ?

Доны посчитали сие за опечатку, ибо трудно поверить, что кто-то пихает системные скрипты в /home.

>Да не в /bin, не в /usr/bin и не в /usr/local/bin, разуйте
>глаза! В ~/,  домашнем каталоге пользователя, от которого эти скрипты
>запускаются, создается каталог bin. Имхо, именно это unix-way, ибо не захламляются
>потенциально экспортируемые каталоги.

Речь про системные скрипты, которые запускаются не только одним пользователем и выполняют _системные_ функции.

>А вот держать логи в /usr/local/script/бла-бла

Вместо /usr/local/script использую /usr/local/имя_проекта (например, /usr/local/traf_acct), со своими etc, bin и share внутри.

>вообще руки оторвать надо.


За ~/bin нужно оторвать, ибо нефиг хранить системные скрипты в /home, который у многих и бэкапится иначе, и лежит на отдельном разеделее с квотами, и exec на нем запрещен, и пути править геморой при переносе и смене пользователя, и юзера убить можно вместе с домашней директорией, и вообще те скрипты из крона не под одним пользователем работают, и...

Cообщить модератору | Наверх | ^

21. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Аноним on 25-Авг-05, 07:27 
>системные скрипты в /home.
не смешите мои тапочки, прикладные костыли это коим самое место в ~/bin

да, для непонятливых танкистов, ~/bin не обязательно /home/bin это может быть и /usr/local/имя_проекта/bin ;)

>и exec на нем запрещен,
ну вы батенька садист. или мазохист.

Cообщить модератору | Наверх | ^

25. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Аноним on 25-Авг-05, 22:08 
>>системные скрипты в /home.
>не смешите мои тапочки, прикладные костыли это коим самое место в ~/bin

~/bin какого пользователя, у нас, батенька, давно не однопольщзовательские системы и скриптами пользуется не один человек.

>да, для непонятливых танкистов, ~/bin не обязательно /home/bin это может быть и
>/usr/local/имя_проекта/bin ;)

Симлинки каждому ставить ? И после этого кто из нас мазохист ? :-)

>>и exec на нем запрещен,
>ну вы батенька садист. или мазохист.

Cообщить модератору | Наверх | ^

27. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Skif (ok) on 26-Авг-05, 14:20 
Пальцы веером, сопли пузырями. Все равно все останутся при своем ИМХО. Я делаю так, только так и не иначе. Мне это удобно. У меня это кочует с сервака на сервак.
Да.. И маны почитываем. Так что не надо сарказма... "доны"
Cообщить модератору | Наверх | ^

4. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от gauss on 23-Авг-05, 12:29 
хорошая статья. один из лучших способов биллить под фрей, не имея умного железа. критика думаю не к месту
Cообщить модератору | Наверх | ^

5. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Аноним email on 23-Авг-05, 12:37 
кроме как
print "Фатальная ошибка ветвления!\n.................\n";
        die "Разделение на процессы не возможно.\n Принудительный выход из дочернего процесса: $!\n";
трудно что то полезное разглядеть
Cообщить модератору | Наверх | ^

12. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Skif (ok) on 23-Авг-05, 18:26 
что мешает заменить на более детальный вывод? Писал под себя посему и вывод такой, который понятен мне.
А код здесь разжеван от и до.
Cообщить модератору | Наверх | ^

6. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Rastler email on 23-Авг-05, 12:50 
Статья неплохая, воды конечно много... и самое гланое непонятно назначение всмысле что это и не матчасть, и не рукоыодство к действию, а смесь и того и другово. Если уж автору хотелось осветить теорию, то можно было бы разбить на 2 части и в первой расказать как все это работает теоретичестки. А в общем статья хорошая и слишком то уж наезжать нестоило бы.
Cообщить модератору | Наверх | ^

7. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Аноним email on 23-Авг-05, 13:22 
Ребята у меня это делается 2 скриптами:
1)
#!/bin/sh
. /usr/local/stat/etc/stat.conf
ym=`date '+%Y%m'`

${ipacc} c
${ipacc} s a c f $filter >> $last

case $1 in
    'to_billing')

        $quant -c $collector_id -q $quant_size -t ${ym}Details $last > ${last}.sql

        ( echo "CREATE TABLE IF NOT EXISTS ${ym}Details (
            collector tinyint unsigned not null,
            id int unsigned not null default '0',
            source int unsigned not null,
            dest int unsigned not null,
            type tinyint unsigned not null default '0',
            bytes int unsigned not null,
            time int unsigned not null,
            new tinyint unsigned not null default '1',
            PRIMARY KEY (collector,source,dest,bytes,time),
            KEY (collector),
            KEY (source),
            KEY (dest),
            KEY (time),
            KEY (type),
            KEY (id)
        ) TYPE=MyISAM;" ;

        cat ${last}.sql ) | $mysql_program --host=${mysql_host} --port=${mysql_port} \
        --user=${mysql_user} --password="${mysql_password}" ${stat_db}

        if [ $? -eq 0 ]; then
            rm ${last} ${last}.sql
            $good
        else
            $bad
        fi;
        ;;
    *)
        ;;
esac

2)
#!/usr/bin/perl
$collector=1;
$quant_size=100;
$action="INSERT IGNORE";
$table_name=sprintf('%02d%02dDetails',(localtime)[5]+1900,(localtime)[4]+1);
foreach $name (split('\/',$0)) { $basename=$name };

$i=0;
foreach $arg (@ARGV) {
if ($arg=~/-/) {
  $param=$arg;
  $i++;
  if ($param eq "-r") {  $i=0; $action="REPLACE"; }
}
else {
  if ($i>0) {
   $table_name=$arg if ($param eq "-t");
   $quant_size=$arg if ($param eq "-q");
   $collector=$arg if ($param eq "-c");
  }
  else {
   $file=$arg;
  }
  $i=0;
}
}

if (!$file) {
    print "Usage: $basename [options] file\n";
    print "Options:\n\t-c - collector id (default=$collector)\n\t-q - quant size (default=$quant_size)\n\t-t - table name (default=$table_name)\n\t-r - sql: replace (default=insert ignore)\n\n";
    exit 1;
}

open (STAT,"<$file") || die "Can't open file: $!\n";
$i=1;
$entries=0;
while (chomp($_=<STAT>)) {
next if !($_=~'^[0-9 \t]+$');
($src,$dst,$p,$bytes,$time)=split;
$entries++;
if ($i==1 || $quant_size==1) {
  print ("$action INTO $table_name (collector,source,dest,bytes,time) VALUES ($collector,$src,$dst,$bytes,$time)");
  $i++;
  next;
}
print (",($collector,$src,$dst,$bytes,$time)") if ($i<=$quant_size);
if ($i==$quant_size) { printf (";\n"); $i=1; next; }
$i++;
}
print ";" if ($quant_size!=1);
print "INSERT INTO log.UploadLog VALUES (unix_timestamp(),$collector,$entries);";
close STAT;

+ переделанный ipacc под 4.11 c добавлением unix_timestamp первого пакета, выводом ip в виде inet_ntoa и возвращением условленного кода ошибки при вызове ipacc s s в случае 85% заполнения таблицы. Для последнего по крону раз в 1 минуту:
#!/bin/sh
$ipacc s s > /dev/null
if [ $? -eq 10 ]; then
    $statsave
fi

Итого у меня стоит пара-тройка таких считалок, что по сети (через stunnel) заливают статистику на центральную биллинговую машинку. А там работает простенький скрипт на основе запросов, что разделяет трафики на типы в зависимости от адресов получателя-отправителя и подводит итоги в другой табличке уже по моим ip.

ЗЫ: скрипт квант вставляет делает по несколько сотен строк в один insert, что значительно ускоряет процесс :)

Cообщить модератору | Наверх | ^

9. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Alexander (??) on 23-Авг-05, 13:30 
Забыл сказать, $good/$bad - скрипты, что в случае удачи/неудачи засыла данных на сервачок, убирают/выполняют ахтунг действия - такие как посыл письма мне, зарезание скорости абонентам, переодическое перестукивание морзянкой на спикере считалок международного морского кода об отсутствии связи с сервером и всякая всячина в подобном духе

Александр В.

Cообщить модератору | Наверх | ^

10. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Аноним on 23-Авг-05, 15:28 
чем решение проще тем оно лучше, молодец! Кстати можно полностью обойтись ОДНИМ скриптом на sh
  
Cообщить модератору | Наверх | ^

14. "Организация подсчета трафика под FreeBSD при помощи ng_ipacc..."
Сообщение от Spider email(??) on 23-Авг-05, 18:39 
А слабо этот скипт сюда положить ?
Cообщить модератору | Наверх | ^

17. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от Insane on 24-Авг-05, 06:45 
Еще бы postgresql.......
Cообщить модератору | Наверх | ^

19. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от Аноним on 24-Авг-05, 12:55 
Господа, взгляните вы наконец на
ng_netflow из портов + http://sourceforge.net/projects/nnfc

Собирается элементарно, настраивается за пять минут, пишет в mysql, postgres, bin, txt файлы.. В отличие от предложенного в статье "агент+коллектор -> база" решение получается не зависимое от агента, писюк это или циска: "агент(ы) -> коллектор+база", масштабируемое, гетерогенное, стандартное.

А такие поделки как в статье, имхо, в сад.

Cообщить модератору | Наверх | ^

26. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от Abu email on 26-Авг-05, 03:30 
А чтобы с двух интерфейсов собирал статистику - как быть?
Cообщить модератору | Наверх | ^

28. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от Skif (ok) on 26-Авг-05, 14:21 
>А чтобы с двух интерфейсов собирал статистику - как быть?


перечислить через запятую. Это в статье указано.

Cообщить модератору | Наверх | ^

22. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от Аноним on 25-Авг-05, 07:39 
в такой схеме соединений netgraph узлов трафик считается два раза, пакет при входе считается и когда выходит еще раз учитывается
Cообщить модератору | Наверх | ^

23. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от crypt (??) on 25-Авг-05, 14:12 
Тема, связанная с топиком. Как обычно организован у людей подсчет трафик для локальных пользователей? Скажем, чтобы считала входящий веб, фтп, почту для клиентов, которым предоставили хостинг?
Cообщить модератору | Наверх | ^

24. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от ganduras on 25-Авг-05, 20:44 
>в такой схеме соединений netgraph узлов трафик считается два раза, пакет при
>входе считается и когда выходит еще раз учитывается

Это да ! Кстати беда не только Netgraph-а. Но и BPF и Firewall-а.
Но даже это можно обойти. Правда приходится патчить ядро, но BPF
начинает отделять входящие пакетики от исходящих. Единственно
где они для него всегда исходящие - это lo0 :) На основе этого
патчика в нашей конторе сделанна система обсчета, которая хранит
данные компактней, чем netflow файлы, и обсчет раз в десять быстрее
(если не в большее число раз). Вообщем пакет аналогичен trafd
(см. в портах). Но получился куда более эффективным :) И не страдает
болезнью двойного обсчета, если трафик приходит и уходит с одного и
того же интерфейса.

Cообщить модератору | Наверх | ^

31. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от reaper email on 29-Авг-05, 07:49 
>На основе этого
>патчика в нашей конторе сделанна система обсчета, которая хранит
>данные компактней, чем netflow файлы, и обсчет раз в десять быстрее
>(если не в большее число раз). Вообщем пакет аналогичен trafd
>(см. в портах). Но получился куда более эффективным :) И не страдает
>болезнью двойного обсчета, если трафик приходит и уходит с одного и
>того же интерфейса.

ну так покажи свой патчик, например статью напиши, а то достали авторизации сквида. или просто выложи, может кто другой из него статью сделает :)

Cообщить модератору | Наверх | ^

33. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от ganduras email on 01-Сен-05, 12:37 

>ну так покажи свой патчик, например статью напиши, а то достали авторизации
>сквида. или просто выложи, может кто другой из него статью сделает
>:)

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

Если ничего не получится, тогда да, придется другим путем действовать :)

Cообщить модератору | Наверх | ^

34. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от butcher (ok) on 01-Сен-05, 12:40 
>сейчас пытаюсь найти коммитера из FreeBSD, кому эта фича была бы интересна
>и кто бы его проверил.

send-pr оформи, если кому-то будет интересно, тебе найдут.

Cообщить модератору | Наверх | ^

29. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от Skif (ok) on 26-Авг-05, 14:24 
>в такой схеме соединений netgraph узлов трафик считается два раза, пакет при
>входе считается и когда выходит еще раз учитывается


Объяснить можете? Было бы интересно, ибо такого (двойного подсчета)незамечено.

Cообщить модератору | Наверх | ^

32. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от ganduras on 01-Сен-05, 11:47 
>>в такой схеме соединений netgraph узлов трафик считается два раза, пакет при
>>входе считается и когда выходит еще раз учитывается
>
>
>Объяснить можете? Было бы интересно, ибо такого (двойного подсчета)незамечено.


Это возникает не всегда, а только когда происходит прием/передача с одного
и того же интерфейса. Например на одном ethernet-е есть две сети
10.0.0.1/24 и 10.0.1.1/24. Если потребуется передать пакет с адреса,
скажем 10.0.0.50 на 10.0.1.50, тут и возникает эта ерунда. Сперва
пакет попадает на счетчик трафика как входящий, и тут же снова
обсчитывается как исходящий. При этом в большенстве случаев неизвестно,
каким является пакет, поступивший на обработку в систему учета трафика -
входящим или исходящим. Все данные, которые есть - это адрес отправителя,
и адрес получателя. Зафиксировать факт того, что пакет был дважды
посчитан, невозможно.

Единственно где это еще можно узнать - это на уровне ядра. Но даже там
нет нормального интерфейса для простого определения данного факта.

Cообщить модератору | Наверх | ^

35. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от Skif (ok) on 01-Сен-05, 16:24 
>
>Это возникает не всегда, а только когда происходит прием/передача с одного
>и того же интерфейса. Например на одном ethernet-е есть две сети
>10.0.0.1/24 и 10.0.1.1/24. Если потребуется передать пакет с адреса,
>скажем 10.0.0.50 на 10.0.1.50, тут и возникает эта ерунда. Сперва
>пакет попадает на счетчик трафика как входящий, и тут же снова
>обсчитывается как исходящий. При этом в большенстве случаев неизвестно,
>каким является пакет, поступивший на обработку в систему учета трафика -
>входящим или исходящим. Все данные, которые есть - это адрес отправителя,
>и адрес получателя. Зафиксировать факт того, что пакет был дважды
>посчитан, невозможно.
>
>Единственно где это еще можно узнать - это на уровне ядра. Но
>даже там
>нет нормального интерфейса для простого определения данного факта.

Интренесно, а почему это называется багой? Это нормально.Теперь представьте на секунду, что у вас две сети, каждой из которых вам нужно выставить счет. Если этот трафик не будет просчитан вы потеряете деньги или просчитается только одной из них, но все-равно теряете деньги...

Cообщить модератору | Наверх | ^

36. "OpenNews: Организация подсчета трафика под FreeBSD при помощ..."
Сообщение от ganduras email on 01-Сен-05, 17:06 

>
>Интренесно, а почему это называется багой? Это нормально.Теперь представьте на секунду, что
>у вас две сети, каждой из которых вам нужно выставить счет.
>Если этот трафик не будет просчитан вы потеряете деньги или просчитается
>только одной из них, но все-равно теряете деньги...

а теперь представим реакцию абонента, когда вместо реального трафика
(причем локального) 1Gb ему выставляется счет на 2Gb. И это не только
ему, а еще тому, с кого он его скачал, но уже в качестве исходящего.
Вот это - коМММерция !

Можно конечно вычислить все роутинги, которые проходят через один
и тот же интерфейс, и делить весь трафик, который там проходит, на 2.

И надо заметить, что я не говорил, что в случае использования патча,
трафик будет потерян, а то, что будет корректно посчитан ! Причем он
все равно отправиться в фильтр два раза, но один раз с пометкой, как
входящий, а во второй, с пометкой как исходящий. По этой информации
можно разобрать пакеты для правильного обсчета всего трафика.

Cообщить модератору | Наверх | ^

Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру