V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
anonymoustian
V2EX  ›  信息安全

怎么能知道全网的路由信息?

  •  
  •   anonymoustian · 2016-02-20 17:47:04 +08:00 · 3929 次点击
    这是一个创建于 2993 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这两天查了一下,这个叫做“网络拓扑发现”;
    但是看了一下是通过 SNMP 协议下的网络拓扑发现,我想问问如果对于陌生的互联网, SNMP 能实现吗?
    是不是得通过 Ping 或者 Traceroute 测试才可以? 如果运营商禁止 ICMP 的话呢?

    12 条回复    2016-02-23 21:08:20 +08:00
    gamexg
        1
    gamexg  
       2016-02-20 17:48:57 +08:00   ❤️ 1
    互联网的是 BGP

    例子: http://bgp.he.net/AS24482
    anonymoustian
        2
    anonymoustian  
    OP
       2016-02-20 18:00:24 +08:00
    @gamexg 能再详细点吗
    lhbc
        3
    lhbc  
       2016-02-20 18:36:06 +08:00 via Android   ❤️ 1
    看高春辉写的几篇文章
    redsonic
        4
    redsonic  
       2016-02-20 19:25:47 +08:00   ❤️ 1
    实际上是不可能知道的。就算是 bgp 也只是以 AS 为最小粒度,还是太粗了, ebgp 发出的大部分都是汇聚路由。
    icmp 探测是不靠谱的, bgp 靠谱(不然就压根不通)但很粗略。事实上别说全网,就是国内的一个 ISP 的路由或拓扑信息也很难内部找个人说的清。
    wdlth
        5
    wdlth  
       2016-02-20 19:39:53 +08:00   ❤️ 1
    网络路由就像地图导航,只能覆盖到一定规模,能查询道路怎么走,但是看不到的地方就不容易了解了。
    举个极端点的例子,像 8.8.8.8 那种 AnyCast 的,全网的路由走到 Google 网络后就看不到 Google 内部拓扑了。
    TrustyWolf
        6
    TrustyWolf  
       2016-02-20 21:04:20 +08:00   ❤️ 1
    首先提醒一下楼主,路由和网络拓扑是完全不同的概念。
    公网路由器,特别是大型运营商的边界路由器,都会存有全网的路由。
    这些路由是可以查看的,比如 University of Oregon 的 Route Views Project 。
    没记错的话目前公网上全部的 IPv4 路由条目大概在 50W-100W 条之间。
    然而,除了自身 AS 内部的路由,来自其他网络的路由基本都是汇总路由。
    路由的汇总可能是自动的,也可能是手工指定的。
    华为和思科等网络设备厂商的认证考试中这些内容都有涉及。
    也就是说,其他网络中具体的网络拓扑边界路由器是不可能全部知道的。
    设想一下如果全部知道,需要多大的存储空间!
    那么,在企业内部中的管理中,如果不知道网络的拓扑,管理会很不方便。
    思科使用 Cisco Discovery Protocol (CDP)协议来获取网络拓扑信息。
    CDP 协议就是基于 SNMP 的,但只能在思科设备之间使用。
    另外,处于安全考虑, ICMP 的回包功能也是可以手动关闭的。
    这样你就会发现 trace 中的某些节点显示的是点.点.点...
    特别是在 MPLS 网络中,运营商内部故意隐藏拓扑的做法很常见。
    So ,结论是,不可能知道全网的拓扑信息。
    jasontse
        7
    jasontse  
       2016-02-20 21:14:35 +08:00 via iPad   ❤️ 1
    @TrustyWolf
    没那么夸张,目前全网 IPv4 路由条目 58 万。
    izoabr
        8
    izoabr  
       2016-02-21 10:49:40 +08:00 via iPhone
    也可以通过 snmp 去获取每个设备,每个接口的 arp 邻居信息,然后自己去算拓扑。
    不过要求不能有断点,有断点就没法生成一张完整的拓扑,就会好几张拓扑,也可能会有孤立设备。
    anonymoustian
        9
    anonymoustian  
    OP
       2016-02-21 14:31:29 +08:00
    @izoabr 但是通过 SNMP 获取的设备,如果不是内部的呢? 比如说我要去探测公网上的其他路由器的邻居信息?
    izoabr
        10
    izoabr  
       2016-02-21 16:48:46 +08:00
    @anonymoustian 那没办法,设备你没有相应管理权的话,你看得信息不全面是正常的。
    不然什么都透明了,对安全也是一个隐患。
    julyclyde
        11
    julyclyde  
       2016-02-22 21:57:28 +08:00
    看着像文科考了计算机专业研究生
    esxivistawrt
        12
    esxivistawrt  
       2016-02-23 21:08:20 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   771 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:57 · PVG 04:57 · LAX 13:57 · JFK 16:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.