The OpenNET Project / Index page

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

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

"вырезка подсетей в trafd"  
Сообщение от mic email(??) on 20-Апр-06, 13:01 
В обчем настроил все по этой статье http://www.tmeter.ru/misc/. Кратко: трафд собирает трафик с интерфейса, трафсейф выгружает бинарники из памяти. Трафлог переводит их в читабельный текстовый вид (от порт к порт количество). Скрипт на перле впихивает все в мускул. По средствам sql-запросов и  пхп все это превращается в красивый вид на локальном веб-сайте. Это преамбула. А теперь амбула.
У нас в городе внутригородской трафик бесплатный. Есть список городских подсетей. Как из общего трафика удалить трафик внутригородской? В каком месте это лучше сделать и  каким способом? Заранее благодарю.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

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


1. "вырезка подсетей в trafd"  
Сообщение от screepah (ok) on 20-Апр-06, 13:49 
>В каком месте это лучше
>сделать и  каким способом? Заранее благодарю.

имхо, на этапе "скрипт на перле" выбрасывать или в другую таблицу пихать

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "вырезка подсетей в trafd"  
Сообщение от mic email(??) on 20-Апр-06, 14:00 
>>В каком месте это лучше
>>сделать и  каким способом? Заранее благодарю.
>
>имхо, на этапе "скрипт на перле" выбрасывать или в другую таблицу пихать
>

Ок. А как?
#!/usr/bin/perl

use Mysql;

$plain_path='/usr/local/var/traffic_plain/';
$yesterday=`date -v-1d '+%Y%m%d'`;
chomp($yesterday);
$full_path=$plain_path.$yesterday.".rl0";

$dbh = Mysql->Connect("localhost","ipacc");
$del_query="delete from yesterday;";
$dbh->Query($del_query);

open(F,$full_path) || die "Can't open traffic plain file";
while ($str=<F>)
{
  chomp($str);
  $fi=substr($str,0,1);

  if (($fi>='1') && ($fi<='9'))
  {
      @a=split('\s+',$str);

# @a[0] - src_ip
# @a[1] - src_port
# @a[2] - dst_ip
# @a[3] - dst_port
# @a[4] - proto
# @a[6] - size of packets

      if (@a[1] eq 'client') {
          $src_port=65535;
      } else {
          if (@a[1] eq 'none') {
            $src_port=0;
         } else {
            $src_port=@a[1];
         }
      }

      if (@a[3] eq 'client') {
          $dst_port=65535;
      } else {
          if (@a[3] eq 'none') {
            $dst_port=0;
         } else {
            $dst_port=@a[3];
         }
      }

      $proto=0;
      if (@a[4] eq 'icmp') {
         $proto=1; }
      if (@a[4] eq 'tcp') {
         $proto=6; }
      if (@a[4] eq 'udp') {
         $proto=17; }

$ins_query="insert into yesterday (src_ip, src_port, dst_ip, dst_port, proto, bytes) values ('".@a[0]."',".$src_port.",'".@a[2]."',".$dst_port.",".$proto.",".$a[6].");";
$dbh->Query($ins_query);

  };
};

close(F);

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "вырезка подсетей в trafd"  
Сообщение от YuryD (ok) on 20-Апр-06, 14:16 
>>>В каком месте это лучше
>>>сделать и  каким способом? Заранее благодарю.
>>
>>имхо, на этапе "скрипт на перле" выбрасывать или в другую таблицу пихать

Маркируйте траффик в скрипке закачки, добавьте еще одно поле "класс траффика" в mysql

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "вырезка подсетей в trafd"  
Сообщение от mic email(??) on 20-Апр-06, 14:20 
>>>>В каком месте это лучше
>>>>сделать и  каким способом? Заранее благодарю.
>>>
>>>имхо, на этапе "скрипт на перле" выбрасывать или в другую таблицу пихать
>
> Маркируйте траффик в скрипке закачки, добавьте еще одно поле "класс траффика"
>в mysql


Угу, уже ближе к телу. Проблема: trafd - готовы, откомпиленный демон, снимающий ВСЕ с интерфейса. Ну как ему сказать, чтобы когда пакет пришел из одной подсети - это одно, а из другой - другое?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "вырезка подсетей в trafd"  
Сообщение от YuryD (ok) on 20-Апр-06, 14:29 
>> Маркируйте траффик в скрипке закачки, добавьте еще одно поле "класс траффика"
>>в mysql

>Угу, уже ближе к телу. Проблема: trafd - готовы, откомпиленный демон, снимающий
>ВСЕ с интерфейса. Ну как ему сказать, чтобы когда пакет пришел

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

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "вырезка подсетей в trafd"  
Сообщение от mic email(??) on 20-Апр-06, 14:47 
>>> Маркируйте траффик в скрипке закачки, добавьте еще одно поле "класс траффика"
>>>в mysql
>
>>Угу, уже ближе к телу. Проблема: trafd - готовы, откомпиленный демон, снимающий
>>ВСЕ с интерфейса. Ну как ему сказать, чтобы когда пакет пришел
>
> На надо ему говорить, вы же привели скрипт для закачки -
>в него и допишите сравнение src_ip и dst_ip с вашими сетями,
>и в Mysql

О, все правильно, пасиба, сам не дошел. А просьбу можно? Вот прикрутим мы к перлу модуль Net::IP::Match::Regexp, чтоб понятия адресов и сетей у него присутствовали. Не могли бы Вы относительно приведенного скрипта привести синтаксис сего действа. А то я далеко не программер))

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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