karpa13a Posted April 14, 2010 Posted April 14, 2010 Возможно тема уже обсуждалась, но что-то плохо видимо искал. требуется быстрый способ определения номера автономки по ипе адресу локально. есть в наличии ipacc с циски за пару недель, хочется посмотреть в какую сторону уходит трафик и в каком объеме. поскольку это 100+Мбит то статистики много, а хочется чтобы обсчиталась сумма по ас-кам считалась быстрее 24-х часов) сейчас используется костылявый механизм перебора сетей по текстовому файлику) может есть какая-то софтинка которая быстро возвращает номер АС-ки по ипешнику? Вставить ник Quote
Magnum72 Posted April 14, 2010 Posted April 14, 2010 Возможно тема уже обсуждалась, но что-то плохо видимо искал.требуется быстрый способ определения номера автономки по ипе адресу локально. есть в наличии ipacc с циски за пару недель, хочется посмотреть в какую сторону уходит трафик и в каком объеме. поскольку это 100+Мбит то статистики много, а хочется чтобы обсчиталась сумма по ас-кам считалась быстрее 24-х часов) сейчас используется костылявый механизм перебора сетей по текстовому файлику) может есть какая-то софтинка которая быстро возвращает номер АС-ки по ипешнику? Ну как я понимаю можно в базу складывать ипы и трафик с них аггрегируя по маске например 24, думаю будет не очень много записей, а потом для первых например 100 записей с наибольшим трафиком и неизвестными автономками запросить номера автономок в райпе, думаю не забанят. так за пару недель сопоставишь основные автономки и перестанешь лазить в райп. Вставить ник Quote
XeonVs Posted April 14, 2010 Posted April 14, 2010 (edited) Держи базу Райпа :) ftp://ftp.ripe.net/ripe/dbase/split/ripe.db.route.gz Скрипт написать не проблема к ней Правда тут не все AS. Полный список можно стянуть на BGP пире. вот тут есть некоторые примеры скриптов http://netroad.ru/~xeon/ng_netflow/ Edited April 14, 2010 by XeonVs Вставить ник Quote
karpa13a Posted April 14, 2010 Author Posted April 14, 2010 Держи базу Райпа :) 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" потом вторым перловым скриптом берется строчка и считается входящий-исходящий ипе. и гоняется по этому массиву) вот я и задался вопросом: а есть ли более вменяемые алгоритмы? Вставить ник Quote
XeonVs Posted April 14, 2010 Posted April 14, 2010 (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 April 14, 2010 by XeonVs Вставить ник Quote
karpa13a Posted April 15, 2010 Author Posted April 15, 2010 кстати если хочется смотреть распределение трафика по ASN почему бы не заюзать netflow с заполненными полями и nfdump?на "бордере" стоит каталист, поэтому статистика в таком виде. умеет ли он отдавать нетфлов еще тот вопрос. даже если и умеет, то бгп на нем поднять для отдачи ас-ок - точно нереально.отдача контента идет с линухы и венды в количестве 8 серверов, соответственно зоопарк еще тот. Вставить ник Quote
goletsa Posted April 15, 2010 Posted April 15, 2010 (edited) В реалтайме ntop вроде как умеет трафик по AS'кам рисовать. Но это надо или зеркалировать весь трафик на отдельную машину или както получить netflow. Edited April 15, 2010 by goletsa Вставить ник Quote
karpa13a Posted April 15, 2010 Author Posted April 15, 2010 а как бы математически найти сети /24 в /20,/19....? запихать таблицу в память сетями ц-класса и искать уже в памяти по первым трем циферкам? Вставить ник Quote
XeonVs Posted April 15, 2010 Posted April 15, 2010 В коде 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. Вставить ник Quote
Magnum72 Posted April 23, 2010 Posted April 23, 2010 (edited) кстати если хочется смотреть распределение трафика по ASN почему бы не заюзать netflow с заполненными полями и nfdump?на "бордере" стоит каталист, поэтому статистика в таком виде. умеет ли он отдавать нетфлов еще тот вопрос. даже если и умеет, то бгп на нем поднять для отдачи ас-ок - точно нереально.отдача контента идет с линухы и венды в количестве 8 серверов, соответственно зоопарк еще тот. Кстати, а что мешает включить в нетфлов origin AS и дальше уже прямо по нему подсчитывать трафик ? Edited April 23, 2010 by Magnum72 Вставить ник Quote
Magnum72 Posted April 24, 2010 Posted April 24, 2010 Вобщем заинтересовались вопросом, оказалось что больше всего трафика у нас из автономки принадлежащей vkontakte. Надо с них деньги брать начинать за трафик :) Вставить ник Quote
doubtpoint Posted April 24, 2010 Posted April 24, 2010 Один раз запросить sh ip bgp с бордера, а потом его анализировать. Как советовали выше - можно заранее построить хеш таблицу для скорости обработки. Данный способ еще удобен т.к. зачастую интересен не конечный AS, а AS path. Вобщем заинтересовались вопросом, оказалось что больше всего трафика у нас из автономки принадлежащей vkontakte. Надо с них деньги брать начинать за трафик :) Надейся, что бы с тебя не захотели брать какие либо деньги :-( Вставить ник Quote
s.lobanov Posted April 24, 2010 Posted April 24, 2010 Если бы не было вконтактиков и ютубов, тогда вообще многим интернет был бы не нужен. Вставить ник Quote
vlad11 Posted July 12, 2011 Posted July 12, 2011 Кстати, а что мешает включить в нетфлов 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 Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.