Jump to content
Калькуляторы

определение AS num по IP

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

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

 

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

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

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

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

Share this post


Link to post
Share on other sites
Возможно тема уже обсуждалась, но что-то плохо видимо искал.

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

 

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

 

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

 

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

Edited by XeonVs

Share this post


Link to post
Share on other sites
Держи базу Райпа :)

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"

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

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

Share this post


Link to post
Share on other sites
Держи базу Райпа :)

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

Share this post


Link to post
Share on other sites
кстати если хочется смотреть распределение трафика по ASN почему бы не заюзать netflow с заполненными полями и nfdump?
на "бордере" стоит каталист, поэтому статистика в таком виде. умеет ли он отдавать нетфлов еще тот вопрос. даже если и умеет, то бгп на нем поднять для отдачи ас-ок - точно нереально.

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

 

Share this post


Link to post
Share on other sites

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

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

 

Edited by goletsa

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

В коде 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.

 

Share this post


Link to post
Share on other sites
кстати если хочется смотреть распределение трафика по ASN почему бы не заюзать netflow с заполненными полями и nfdump?
на "бордере" стоит каталист, поэтому статистика в таком виде. умеет ли он отдавать нетфлов еще тот вопрос. даже если и умеет, то бгп на нем поднять для отдачи ас-ок - точно нереально.

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

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

Share this post


Link to post
Share on other sites

Если бы не было вконтактиков и ютубов, тогда вообще многим интернет был бы не нужен.

Share this post


Link to post
Share on other sites

Кстати, а что мешает включить в нетфлов 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this