IP到ASN映射算法

时间:2012-10-28 15:54:14

标签: bgp

是否没有简单的方法将给定的IP地址映射到相应的ASN号码?例如:

ping以查找IP地址:

$ ping www.switch.ch
PING aslan.switch.ch (130.59.108.36) 56(84) bytes of data.

whois查找ASN号码:

$ whois -h whois.cymru.com -v 130.59.108.36
Warning: RIPE flags used with a traditional server.
AS      | IP               | BGP Prefix          | CC | Registry | Allocated  | AS Name
559     | 130.59.108.36    | 130.59.0.0/16       | CH | ripencc  | 1993-09-22 | SWITCH SWITCH, Swiss Education and Research Network

因此,在这种情况下的映射将是130.59.108.36(IP) - > 559(ASN)。简单。但是,如果我想使用来自地区互联网注册管理机构的公共可用信息创建我自己的本地地图服务怎么办?那么,对于上面的例子,它就是这个列表,对吗?

ftp://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-latest

找到匹配的entrie也不是问题:

ripencc|CH|ipv4|130.59.0.0|65536|19930922|assigned

但是如何从上面的行中获取ASN号码?这两种信息是如何联系在一起的?

ripencc|EU|asn|559|1|19930901|allocated

预先感谢您的回复!

3 个答案:

答案 0 :(得分:9)

我在这里解释如何执行此操作:https://www.quaxio.com/bgp/(以前在https://alokmenghrajani.github.io/bgp/

它主要涉及从路由器下载转储,然后使用有效的数据表示将IP地址映射到网络掩码。

答案 1 :(得分:3)

我建议根据从实际BGP发言人收集的MRT转储来做到这一点。

这个python库f.e.可用于轻松解析MRT转储:http://code.google.com/p/pyasn/

如果您无法运行自己的BGP发言人,可以在http://archive.routeviews.org/下载转储

请务必查看其他内容。它们还提供DNS区域文件,使您能够使用标准DNS服务器(如Bind或NSD)进行此类查找:http://archive.routeviews.org/dnszones/

我希望能让你开始......

答案 2 :(得分:0)

我制作了一个将ASN附加到HTTP日志行的工具。我解释了如何从RIPE原始数据构建数据库并将其与二进制搜索一起使用。此外,C代码已准备就绪。在常规虚拟实例上几秒钟内进行1.6M查找:

https://github.com/psvz/tirexASN