Jump to content

Recommended Posts

Posted

Возможно тема уже обсуждалась, но что-то плохо видимо искал.

требуется быстрый способ определения номера автономки по ипе адресу локально.

 

есть в наличии ipacc с циски за пару недель, хочется посмотреть в какую сторону уходит трафик и в каком объеме.

поскольку это 100+Мбит то статистики много, а хочется чтобы обсчиталась сумма по ас-кам считалась быстрее 24-х часов)

сейчас используется костылявый механизм перебора сетей по текстовому файлику)

может есть какая-то софтинка которая быстро возвращает номер АС-ки по ипешнику?

Posted
Возможно тема уже обсуждалась, но что-то плохо видимо искал.

требуется быстрый способ определения номера автономки по ипе адресу локально.

 

есть в наличии ipacc с циски за пару недель, хочется посмотреть в какую сторону уходит трафик и в каком объеме.

поскольку это 100+Мбит то статистики много, а хочется чтобы обсчиталась сумма по ас-кам считалась быстрее 24-х часов)

сейчас используется костылявый механизм перебора сетей по текстовому файлику)

может есть какая-то софтинка которая быстро возвращает номер АС-ки по ипешнику?

Ну как я понимаю можно в базу складывать ипы и трафик с них аггрегируя по маске например 24, думаю будет не очень много записей, а потом для первых например 100 записей с наибольшим трафиком и неизвестными автономками запросить номера автономок в райпе, думаю не забанят. так за пару недель сопоставишь основные автономки и перестанешь лазить в райп.
Posted (edited)

Держи базу Райпа :)

ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.route.gz

 

Скрипт написать не проблема к ней

 

Правда тут не все AS. Полный список можно стянуть на BGP пире.

 

вот тут есть некоторые примеры скриптов http://netroad.ru/~xeon/ng_netflow/

Edited by XeonVs
Posted
Держи базу Райпа :)

ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.route.gz

 

Скрипт написать не проблема к ней

 

Правда тут не все AS. Полный список можно стянуть на BGP пире.

 

вот тут есть некоторые примеры скриптов http://netroad.ru/~xeon/ng_netflow/

так в том то и дело, что сейчас именно по этой базе и работает скриптик:

сначала препарируется база в формат "AS123 1.2.3.0/16"

потом вторым перловым скриптом берется строчка и считается входящий-исходящий ипе. и гоняется по этому массиву)

вот я и задался вопросом: а есть ли более вменяемые алгоритмы?

Posted (edited)
Держи базу Райпа :)

ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.route.gz

 

Скрипт написать не проблема к ней

 

Правда тут не все AS. Полный список можно стянуть на BGP пире.

 

вот тут есть некоторые примеры скриптов http://netroad.ru/~xeon/ng_netflow/

так в том то и дело, что сейчас именно по этой базе и работает скриптик:

сначала препарируется база в формат "AS123 1.2.3.0/16"

потом вторым перловым скриптом берется строчка и считается входящий-исходящий ипе. и гоняется по этому массиву)

вот я и задался вопросом: а есть ли более вменяемые алгоритмы?

наверное нет, разве что ходить на BGP пир и просить show ip bgp <net> bestpath и парсить результат.

 

кстати если хочется смотреть распределение трафика по ASN почему бы не заюзать netflow с заполненными полями и nfdump?

Edited by XeonVs
Posted
кстати если хочется смотреть распределение трафика по ASN почему бы не заюзать netflow с заполненными полями и nfdump?
на "бордере" стоит каталист, поэтому статистика в таком виде. умеет ли он отдавать нетфлов еще тот вопрос. даже если и умеет, то бгп на нем поднять для отдачи ас-ок - точно нереально.

отдача контента идет с линухы и венды в количестве 8 серверов, соответственно зоопарк еще тот.

 

Posted (edited)

В реалтайме ntop вроде как умеет трафик по AS'кам рисовать.

Но это надо или зеркалировать весь трафик на отдельную машину или както получить netflow.

 

Edited by goletsa
Posted

а как бы математически найти сети /24 в /20,/19....? запихать таблицу в память сетями ц-класса и искать уже в памяти по первым трем циферкам?

Posted

В коде ipcalc подсмотрен такой код:

 

#IP SUBS
sub aton
{
   my $arg          = shift;
   my $i = 24;
   my $n = 0;

   # dotted decimals
   if    ($arg =~ /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/) {
      my @decimals = ($1,$2,$3,$4);
      foreach (@decimals) {
         if ($_ > 255 || $_ < 0) {
            return -1;
         }
         $n += $_ << $i;
         $i -= 8;
      }
      return $n;
   }
}
sub bitcountmaskton
{
   my $bitcountmask = shift;
   my $n;
   for (my $i=0;$i<$bitcountmask;$i++) {
      $n |= 1 << (31-$i);
   }
   return $n;
}

sub networkkey
{
        my ($addr, $mask) = @_;

        my $address = aton($addr);
        my $mask1 = bitcountmaskton($mask);

        return $address & $mask1;
}

на выходе будет простое целое которое представляет сеть.

 

$BGP{networkkey('10.0.0.0', 8)} = 65535;

$BGP{networkkey('192.168.0.0', 16)} = 65535;

 

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

 

Posted (edited)
кстати если хочется смотреть распределение трафика по ASN почему бы не заюзать netflow с заполненными полями и nfdump?
на "бордере" стоит каталист, поэтому статистика в таком виде. умеет ли он отдавать нетфлов еще тот вопрос. даже если и умеет, то бгп на нем поднять для отдачи ас-ок - точно нереально.

отдача контента идет с линухы и венды в количестве 8 серверов, соответственно зоопарк еще тот.

Кстати, а что мешает включить в нетфлов origin AS и дальше уже прямо по нему подсчитывать трафик ? Edited by Magnum72
Posted

Вобщем заинтересовались вопросом, оказалось что больше всего трафика у нас из автономки принадлежащей vkontakte. Надо с них деньги брать начинать за трафик :)

Posted

Один раз запросить sh ip bgp с бордера, а потом его анализировать. Как советовали выше - можно заранее построить хеш таблицу для скорости обработки. Данный способ еще удобен т.к. зачастую интересен не конечный AS, а AS path.

 

Вобщем заинтересовались вопросом, оказалось что больше всего трафика у нас из автономки принадлежащей vkontakte. Надо с них деньги брать начинать за трафик :)

Надейся, что бы с тебя не захотели брать какие либо деньги :-(

  • 1 year later...
Posted

Кстати, а что мешает включить в нетфлов origin AS и дальше уже прямо по нему подсчитывать трафик ?

Мешает требование:

src AS: 0 if BGP-speaking router
dst AS: 0 if BGP-speaking router
src masklen: 0 if BGP-speaking router
dst masklen: 0 if BGP-speaking router

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.