Bgp引导的实时自治系统级拓扑发现方法

文档序号:7946476阅读:345来源:国知局
专利名称:Bgp引导的实时自治系统级拓扑发现方法
技术领域
本发明涉及互联网上进行实时拓扑发现的方法,尤其是通过域间路由协议BGP(border gateway protocol)获得实时IP (Internet Protocol)网络路由信息,利用IP网络路由信息来引导分布在网络中的探测节点进行拓扑发现,从而实时地发现互联网在自治系统AS (autonomous system) —级的拓扑结构的方法。
背景技术
近年来,互联网(Internet)得到了快速发展,其规模不断扩大,网络结构日益复杂,准确获取Internet的拓扑结构信息成为一项具有挑战性的任务。Internet拓扑结构信息可以应用于互联网协议的研究、网络测量与分析、网络流量优化和网络安全管理等方面。Internet的拓扑结构主要分为域间和域内两个层次。在域间层次,Internet由多个自治系统AS构成。每个自治系统是一个独立的管理域,由具有相同路由策略的一组路由器和其它网络设备相互连接构成,通常被某一个因特网服务提供商ISP(Internet ServiceProvider)拥有。每个自治系统对应有一个编号,称为AS号,为一个无符合整数。自治系统内运行域内路由协议,如0SPF或IS-IS,自治系统之间运行域间路由协议BGP。域间层次的Internet拓扑又称为AS级拓扑,域内层次的拓扑则称为路由器级拓扑。AS级拓扑反映了Internet的宏观结构,掌握Internet的实时AS拓扑具有重要的意义。实时的AS拓扑信息可用于对等系统即P2P(Peer-to-Peer)系统中peer节点(组成P2P系统的网络节点)的优化选择,通过选择本地peer节点和邻近peer节点来建立连接,达到优化骨干网流量的目的。 针对AS拓扑发现问题,目前国内外提出了一些方法。这些方法主要分为两类基于BGP路由信息的方法和基于Traceroute探测的方法。由于BGP路由表中包含了去往各个IP网络地址的AS路径信息,因而可以通过分析BGP协议进程存储的IP网络路由信息(简称BGP路由信息)中每条路由的路径属性来构造AS级的拓扑图。代表性的例子是美国Oregon大学的Route Views项目。该项目的主要目的是从互联网上获得多台路由器的域间路由信息,供研究人员进行互联网拓扑特征分析和路由技术研究等。使用RouteViews提供的BGP路由信息可以计算得到互联网的部分AS拓扑。CERNET的BGP VIEW项目与此类似。Route Views项目提供BGP路由信息的步骤是(1)在Internet放置多台route-views路由器,这些路由器分别与某些ISP的路由器建立BGP会话,从这些ISP的路由器接收BGP路由信息;(2)周期地将BGP路由器中BGP路由信息和路由更新信息保存到文件中,如每2小时保存一份BGP路由信息的镜像;(3)通过Web网站和FTP服务器将BGP路由信息镜像数据提供给Internet用户使用。BGP路由表项包含AS路径属性,从AS路径属性可以推知AS邻接关系,从而构造出AS拓扑图。此外,所述路由表项中包含网络前缀信息,从网络前缀信息和AS路径属性可以推导出IP网络地址与AS号之间的对应关系。 基于Traceroute探测的方法中,首先通过traceroute探测得到IP转发路径。IP转发路径是IP分组转发经过的路由器端口 IP地 的列表。通过将IP地址映射到相应的AS号,可以得到AS转发路径。AS转发路径是IP分组转发经过的AS号的列表。利用多个 AS转发路径的信息,可以构造出AS级拓扑。采用此途径的有CAIDA的Skitter项目(目前 更新为Archipelago) 。 Skitter项目获得AS拓扑的主要步骤为(1)在互联网上部署多个 探测用途的监测器,这些监视器采用类似于Traceroute的方式探测IP转发路径。探测方 法是用TTL(time_to_live)为N的ICMP(Internet Control Message Protocol)分组探 测路径上的第N跳转发地址。(2)对于探测得到的IP转发路径,利用Route Views提供的 IP网络地址与AS号的对应关系,将IP转发路径转换为AS路径,进一步得到AS拓扑数据。 Skitter项目当前在互联网上部署了几十个监测器。 基于BGP信息的方法需要从ISP获得BGP路由信息。由于BGP不是链路状态路由 协议,而是一个向量-路径路由协议,因而从单台或少数路由器上得到的BGP路由信息不能 推导出完整的互联网AS拓扑。要获得Internet完整的AS拓扑图,需要从多个ISP得到足 够多的BGP路由信息。出于商业利益和网络安全的考虑,ISP—般不愿公开自己拥有的自 治系统信息。通常很难与多个ISP达成协议,且必须遵守各个ISP给出的约束条件,因此较 难获得实时的、完整的AS拓扑信息。同时,从BGP路由表镜像不能推导得到实时的AS拓扑 信息,因而限制了 AS拓扑信息在一些有实时性要求的系统中的应用。 基于Traceroute探测的方法可以得到实时AS拓扑信息。但是,若Traceroute
使用不当,盲目地在互联网上进行探测,将会在网络中增加大量流量,不仅不能发现新 的AS拓扑信息,还会造成很大的网络(带宽)资源浪费,甚至可能被当作拒绝服务 (Denial-of-Service, DoS)攻击,引发网络安全事件。同时,此方法需要IP网络地址与AS 号的对应关系,仍然需要借助BGP的路由信息,或者利用Route Views提供的数据。此外, Traceroute方法需要在网络中部署多个探测点,探测点的数目、探测点的部署位置等均对 探测结果有较大影响。 总的来说,由于互联网的规模很大,采用现有的方法较难获得实时的、完整的AS 拓扑图,因此需要寻找新的AS拓扑发现途径。新的方法必须兼顾系统的可实现性、拓扑完 整性、拓扑发现的实时性和网络开销等多方面的因素。

发明内容
本发明要解决的技术问题是如何利用BGP路由信息和IP转发路径的探测功能, 提供一种容易实现、网络开销少、拓扑完整性大的互联网AS级拓扑实时发现方法。
为了解决上述技术问题,本发明采取将基于BGP路由信息的方法和基于 Traceroute探测的方法结合起来的思路,对拓扑发现方法进行优化,以较小的开销获得较 大完整性的AS拓扑。本发明的技术方案为从合作的ISP实时获得BGP路由信息,利用BGP 路由信息获得初始AS拓扑图以及IP网络地址和AS号的对应关系;然后从AS拓扑图中选 择进行探测的源IP网络地址和目标IP网络地址,利用traceroute探测方法探测从源IP网 络地址到目标IP网络地址的IP转发路径,从中提取出AS邻接信息并添加到已有的AS拓 扑图中。 本发明技术方案是 第一步,建立BGP引导的实时AS拓扑发现系统。该系统由一台或多台BGP路由器 (简称为路由器)、一台AS拓扑发现服务器(简称为服务器)和多台AS拓扑发现探测器(简称为探测器)组成。 BGP路由器是指运行域间路由协议BGP的路由器, 一般位于AS的边缘,与互联网中 其他AS的路由器连接。BGP路由器由因特网服务提供商ISP建立和管理。
AS拓扑发现服务器是指进行AS拓扑发现的计算机,部署在BGP路由器所在自治系 统内,其上装有AS拓扑发现服务程序,它从BGP路由器获得BGP的路由信息,从AS拓扑发 现探测器获得IP转发路径信息。特殊情况下,当AS拓扑发现服务程序运行于BGP路由器 上时,AS拓扑发现服务器和BGP路由器是同一台设备。AS拓扑发现服务器上设置有记录所 有AS拓扑发现探测器的IP地址的数据结构_探测器IP地址列表。 AS拓扑发现探测器是分布在互联网中的联网计算机,其上运行探测器程序。每个 AS拓扑发现探测器程序有一个运行参数配置文件,其中包含AS拓扑发现服务器的域名(如 serverl. as-discovery. com)或IP地址。运行参数配置文件由用户在建立BGP引导的实时 AS拓扑发现系统创建。探测器程序实现与AS拓扑发现服务器通信并使用Traceroute探测 方法探测IP转发路径。探测器程序可内嵌于P2P系统的peer节点程序(如BitTorrent程 序)中,这样当P2P用户安装peer节点程序到计算机上时,便同时安装了探测器程序。由 于P2P系统中peer节点数目众多,分布较广,因而能够保证拓扑发现取得较好的性能。探 测器程序也可以利用PlanetLab这样的全球网络试验平台进行部署。 AS拓扑发现服务器与BGP路由器可以通过局域网直接连接,也可以通过Internet 连通。AS拓扑发现服务器通过Internet与AS拓扑发现探测器连通。AS拓扑发现服务 器与BGP路由器之间的通信基于传输控制协议TCP (Transmission Control Protocol), AS拓扑发现服务器与AS拓扑发现探测器之间的通信基于用户数据报协议UDP(User DatagramProtocol)。 第二步,分别启动AS拓扑发现服务器程序和AS拓扑发现探测器程序。每个AS拓 扑发现探测器上的AS拓扑发现探测器程序启动后,均向AS拓扑发现服务器注册,注册过程 为 (2. l)AS拓扑发现探测器从运行参数配置文件获得AS拓扑发现服务器的域名或 IP地址,用此域名或IP地址向AS拓扑发现服务器发送注册请求消息,注册请求消息包含 AS拓扑发现探测器的IP地址。在AS拓扑发现探测器中设置第一定时器,在发送了注册请 求消息后,启动第一定时器,第一定时器的超时时间为Tl, Tl 一般不小于30秒。
(2.2)AS拓扑发现服务器收到AS拓扑发现探测器送来的注册请求消息后,将该AS 拓扑发现探测器的IP地址保存到探测器IP地址列表中; (2. 3) AS拓扑发现服务器向AS拓扑发现探测器发送一个注册确认消息; (2. 4)若AS拓扑发现探测器的第一定时器超时,即从发送注册请求消息起,AS拓
扑发现探测器在等待时间T1内没有收到注册确认消息,则转(2. 1)步;若AS拓扑发现探测
器收到了从AS拓扑发现服务器发送来的注册确认消息,则AS拓扑发现探测器开始等待接
收AS拓扑发现服务器发送来的探测请求消息,注册过程结束。 第三步,AS拓扑发现服务器周期地进行AS拓扑发现,方法是 在AS拓扑发现服务器中设置第二定时器,第二定时器以更新周期T2定时触发进
行新一轮的AS拓扑发现。T2应不小于一次完整的拓扑发现过程需要的时间,如不小于1小
时。当第二定时器超时触发时,执行第四步至第六步进行新一轮的拓扑发现。
第四步,AS拓扑发现服务器建立到BGP路由器的会话,从BGP路由器得到BGP路 由信息。如果有多台BGP路由器,则AS拓扑发现服务器分别与多台BGP路由器建立连接, 并从这些BGP路由器接收BGP路由信息。BGP路由协议通过路由更新消息将本路由器的IP 网络路由信息通告给邻居,每一条BGP路由信息包含一个IP网络地址(如192. 168. *. *) 和对应该IP网络地址的路由属性。IP网络地址包括IPv4网络地址和IPv6网络地址。路 由属性中包含最短AS路径属性,AS路径是指从BGP路由器到达该IP网络地址需要经过的 AS序列。最短AS路径是指从BGP路由器到达该IP网络地址需要经过的最少AS序列。所 有BGP路由信息构成BGP路由信息库。 第五步,AS拓扑发现服务器根据接收到的BGP路由信息进行计算,得到初始AS拓 扑以及IP网络地址与AS号的对应关系,方法是 (5. 1)将AS拓扑用AS邻接矩阵来表示,假设有N个AS,则AS邻接矩阵为NXN的 0/1矩阵。若第i行第j列的矩阵元素为0,则表示第i个AS与第j个AS之间不存在邻接 关系(不相邻);若为l,则表示它们之间存在邻接关系。具体方法是
(5. 1. 1)初始时,将AS邻接矩阵所有元素设置为0 ; (5. 1. 2)对任意一条AS路径(ai, a2, a3, . . . , ak),可知AS路径上的第i个自治系 统&和第i+1个自治系统之间存在邻接关系,1《i《k-l,k为AS路径长度。设自治 系统ai在AS邻接矩阵中的编号为x(对应AS邻接矩阵的第x行),自治系统ai+1在AS邻 接矩阵中的编号为y (对应AS邻接矩阵的第y列),则将ai与ai+1对应的矩阵元素,即第x 行第y列的矩阵元素置为1。 (5. 2)根据BGP路由信息计算IP网络地址与AS号的对应关系,方法是对每一项 BGP路由信息,假设其IP网络地址为Netl, AS路径为(&1, a2, a3, . . . , am),可知到IP网络 地址Netl的最后一个自治系统是am,则认定am是IP网络地址Netl所属的AS。
第六步,AS拓扑发现服务器和AS拓扑发现探测器相互协作,进行AS邻接关系的 探测和更新。方法是 (6. 1)在AS拓扑发现服务器中创建一个探测历史记录,记录探测得到的AS转发路 径。探测历史记录初始时为空,在一次AS路径的探测过程结束后被更新。AS转发路径是 IP分组转发经过的AS序列。 (6. 2)由AS拓扑发现服务器根据当前的AS邻接矩阵和探测历史记录选择源AS号 和目标AS号。源AS号是待探测的AS转发路径的起始AS号,目标AS是待探测的AS转发 路径的终止AS号。源AS号和目标AS号的选择方法是 (6. 2. 1)根据当前的AS邻接矩阵,AS拓扑发现服务器采用Bellman-Ford算法计 算任意两个AS之间的AS最短路径;如果网络中有N个AS,则总共有N(N-1)条AS最短路径。 (6. 2. 2) AS拓扑发现服务器选择最有可能存在未知的新AS邻接关系的源AS号和 目标AS号。选择方法是 (6. 2. 2. 1)按照AS最短路径的长度由大到小将AS最短路径排序; (6. 2. 2. 2)按照AS最短路径的长度顺序,依次检查每条AS最短路径的两个端点的
AS,看它们是否满足如下条件 条件一 假设AS最短路径的两个端点的AS的AS号分别为AI和A2,则对于BGP
9路由信息库中任意一条最短AS路径as—path,Al G as_path和A2 G as_path不同时成立。 即,Al和A2不同时出现在BGP路由信息库中任意一条到某一 IP网络地址的最短AS路径 上。 条件二 假设AS最短路径的两个端点的AS的AS号分别为Al和A2,则对于探测历 史记录中任意一条AS转发路径as—path,Al G as_path和A2 G as_path不同时成立。艮卩, Al和A2不同时出现在探测历史记录中任意一条AS转发路径上。 若上述两个条件同时满足,则选定A1为源AS号,A2为目标AS号,转第(6.3)步。 若上述两个条件不能同时满足,则转(6. 2. 2. 2)步检查下一条AS最短路径的两个端点的 AS。 (6. 3)若第(6. 2)步不能得到满足条件的源AS号和目标AS号,则本轮拓扑发现过 程结束,转第三步;否则,转(6.4)步。 (6. 4)根据IP网络地址和AS号的对应关系、探测器IP地址列表,由AS拓扑发现 服务器从多个AS拓扑发现探测器中选择出一个作为源AS拓扑发现探测器(简称源探测 器),并选择一个IP地址作为探测目标IP地址。选择方法为 (6. 4. 1)如果探测器IP地址列表中某一个AS拓扑发现探测器的IP地址对应的 AS号就是源AS号,则直接选择该AS拓扑发现探测器作为源探测器。否则,根据IP网络地 址和AS号的对应关系以及AS最短路径的长度,选择一个IP地址与源AS最近的AS拓扑发 现探测器作为源探测器; (6. 4. 2)如果探测器IP地址列表中某一个AS拓扑发现探测器的IP地址对应的
AS号为目标AS号,则直接选择该AS拓扑发现探测器的IP地址作为探测目标IP地址。否
则,根据IP网络地址和AS号的对应关系,从对应于目标AS号的IP网络地址段中随机选择
一个有效的单播IP地址(如A/B/C类IPv4地址)作为探测目标IP地址。 (6. 4. 3)若不能成功选择出源探测器和探测目标IP地址,则转(6. 2)步重新选择
源AS号和目标AS号。若选择出了源探测器和探测目标IP地址,则转(6.5)步; (6. 5)在AS拓扑发现服务器中为每个源探测器设置一个探测请求失败次数的计
数器。初始时,探测请求失败次数设置为O。 (6. 6)由AS拓扑发现服务器向源探测器发送探测请求消息,探测请求消息中包含 探测目标IP地址。在AS拓扑发现服务器中为每个源探测器设置一个第三定时器。从发送 探测请求消息给某个源探测器开始,AS拓扑发现服务器启动与该源探测器对应的第三定时 器。第三定时器的超时等待时间为T3, T3—般不小于30秒。当等待时间达到T3时,定时 器超时。 (6.7)源探测器接收到从AS拓扑发现服务器发送来的探测请求消息后,使用 traceroute探测方法(或其他类似探测方法)获得从源探测器IP地址到探测目标IP地址 的IP转发路径。 (6. 8)源探测器向AS拓扑发现服务器发送探测应答消息。探测应答消息中包含 traceroute探测方法的探测结果,即从源探测器IP地址到探测目标IP地址的IP转发路径。 (6. 9)若在与源探测器对应的第三定时器超时之前,AS拓扑发现服务器接收到了 源探测器发来的探测应答消息,则转第(6. 10)步。若第三定时器超时,即在等待时间T3内
10没有收到从所述源探测器发送来的探测应答消息,则探测请求失败,AS拓扑发现服务器将 该源探测器的探测请求失败次数增加1。若探测请求失败次数大于等于最大探测请求次数 K,则AS拓扑发现服务器认为该源探测器已不可用,AS拓扑发现服务器将该源探测器的IP 地址从探测器IP地址列表中删除,转步骤(6.4)重新选择源探测器。最大探测请求次数K 一般设置为3次。若探测请求失败次数小于K,则转步骤(6. 6)重新发送探测请求消息并等 待。 (6. 10) AS拓扑发现服务器收到探测应答消息后,根据IP网络地址与AS号的对应 关系,将源探测器发送来的探测应答消息中包含的从源探测器IP地址到探测目标IP地址 的IP转发路径转换为AS转发路径。 (6. 11) AS拓扑发现服务器遍历探测历史记录,判断当前得到的AS转发路径是否 是重复的信息,即判断当前得到的AS转发路径是否被包含在探测历史记录中。若是重复的 AS转发路径信息,则丢弃这条AS转发路径,转(6. 2)步选择新的源AS号和目标AS号;若 不是重复的信息,则将该AS转发路径保存到探测历史记录中。 (6. 12) AS拓扑发现服务器根据AS转发路径中的AS邻接关系,更新AS拓扑图,方 法为对于第3. 6步得到的AS转发路径(ai, a2, a3, . . . , ak),可知自治系统^和ai+1之间 存在邻接关系,1《i《k-l, k为AS转发路径的长度。设自治系统&在AS邻接矩阵中的 编号为x,自治系统在AS邻接矩阵中的编号为y,则将^与ai+1对应的矩阵元素,即第 x行第y列的矩阵元素置为1。 AS连接信息添加结束后,转(6. 2)步选择新的源AS号和目 标AS号。 本发明针对互联网中AS级的拓扑发现问题,提出了 BGP引导的实时AS拓扑发现 系统。利用此系统,首先利用BGP路由信息生成初始AS拓扑以及IP网络地址与AS号的对 应关系,然后选择源AS号和目标AS号,再选择源探测器并进行IP转发路径的探测,最后从 探测结果中提取AS连接信息并更新AS拓扑图。AS拓扑发现服务器的工作由AS拓扑发现 服务程序完成,AS拓扑发现探测器的工作由探测器程序完成。在BGP引导下,通过AS拓扑 发现服务器和探测器的协作,达到实时发现AS级网络拓扑的目的。采用本发明可以取得以 下技术效果 1.本发明将基于BGP信息的拓扑发现方法和基于traceroute的拓扑发现方法结 合起来,通过利用BGP路由信息,有选择地使用traceroute操作等发现IP转发路径,并进 而得到AS转发路径和AS邻接关系信息,可以实时发现较完整的AS级拓扑。
2.利用BGP提供的初始AS拓扑信息,选择在路径上最有可能存在未知AS邻接关 系的源AS号和目标AS号进行探测,可以尽量避免无用的AS转发路径探测操作,从而极大 地降低AS拓扑发现系统的通信开销。


图1为本发明的实时AS拓扑发现系统逻辑结构图;
图2为本发明总体流程图; 图3为本发明第二步AS拓扑发现探测器向AS拓扑发现服务器注册的流程图;
图4为AS邻接矩阵示意图。 图5为本发明第六步AS邻接关系的探测和更新的流程具体实施例方式
图1展示了本发明第一步构建的BGP引导的实时AS拓扑发现系统的总体结构。
该系统由一台或多台BGP路由器、一台AS拓扑发现服务器和多台AS拓扑发现探测器组成。
BGP路由器、AS拓扑发现服务器和AS拓扑发现探测器均通过互联网相连。AS拓扑发现服
务器与BGP路由器之间基于传输控制协议TCP进行通信,AS拓扑发现服务器与AS拓扑发
现探测器之间基于用户数据报协议UDP进行通信。 图2展示了本发明总体流程 第一步,建立BGP引导的实时AS拓扑发现系统。 第二步,分别启动AS拓扑发现服务器程序和AS拓扑发现探测器程序。每个AS拓 扑发现探测器上的探测器程序启动后,向AS拓扑发现服务器注册。 第三步,由AS拓扑发现服务器周期地启动AS拓扑发现过程。在AS拓扑发现服务 器中设置一个第二定时器,第二定时器以更新周期T2定时触发进行新一轮的AS拓扑发现 过程。当第二定时器超时触发时,执行下面的第四步至第六步的拓扑发现过程。
第四步,AS拓扑发现服务器建立到BGP路由器的会话,从BGP路由器得到互联网 的BGP路由信息。如果有多台BGP路由器,则AS拓扑发现服务器分别与多台BGP路由器建 立连接,并从这些BGP路由器接收BGP路由信息。所有BGP路由信息构成BGP路由信息库。
第五步,AS拓扑发现服务器根据接收到的BGP路由信息进行计算,得到初始AS拓 扑以及IP网络地址与AS号的对应关系。计算得到的AS拓扑用AS邻接矩阵来表示。
第六步,AS拓扑发现服务器和AS拓扑发现探测器相互协作,进行AS邻接关系的 探测和更新。 图3展示了本发明第二步AS拓扑发现探测器向AS拓扑发现服务器的注册流程。 下面结合一个例子进行说明。假设AS拓扑发现服务器的域名为serverl. as-discovery. com, AS拓扑发现探测器的IP地址为192. 123. 2. 45,注册过程为: (2. l)AS拓扑发现探测器从运行参数配置文件中获得AS拓扑发现服务器的域名 serverl. as-discovery, com,向serverl. as-discovery, com发送一个注册请求消息,注册 请求消息包含AS拓扑发现探测器的IP地址192. 123. 2. 45^启动等待注册确认消息的第 一定时器。 (2. 2) AS拓扑发现服务器收到AS拓扑发现探测器发送来的注册请求消息后,将AS
拓扑发现探测器的IP地址192. 123. 2. 45保存到探测器IP地址列表中; (2. 3) AS拓扑发现服务器向192. 123. 2. 45发送一个注册确认消息; (2. 4)若AS拓扑发现探测器的第一定时器超时,即从发送注册请求消息起,所述
AS拓扑发现探测器在等待时间Tl内没有收到注册确认 息,则转(2. 1)步;否则,所述AS
拓扑发现探测器收到了注册确认消息,开始等待接收AS拓扑发现服务器发送来的探测请
求消息,注册过程结束。 图4展示了一个简单的AS拓扑及其对应的AS邻接矩阵。图中包含5个AS,连线 表示它们之间的邻接关系。AS邻接矩阵是一个0/1矩阵,每一矩阵元素代表对应的AS之间 是否存在邻接关系,"1"代表两个AS相邻,"0"代表不相邻。例如,AS邻接矩阵中第l行第 2列的元素为1,则表示第1个AS和第2个AS的AS相邻,即如图4 (a)拓扑图所示,AS1和AS2相邻。 图5展示了本发明第六步中AS拓扑发现服务器和AS拓扑发现探测器相互协 作完成AS邻接关系探测和更新的流程图。假设AS拓扑发现服务器的域名为serverl. as_discovery. com,具体步骤为 (6. 1)在AS拓扑发现服务器中创建一个空的探测历史记录。 (6. 2)由AS拓扑发现服务器根据当前的AS邻接矩阵和探测历史记录选择源AS号 和目标AS号。 (6. 3)若第(6. 2)步不能得到满足条件的源AS号和目标AS号,则本轮拓扑发现过 程结束,由AS拓扑发现服务器重新进行AS拓扑发现(即转AS拓扑发现方法的第三步); 否则,转(6.4)步。 (6. 4)根据IP网络地址和AS号的对应关系、探测器IP地址列表,由AS拓扑发 现服务器从多个AS拓扑发现探测器中选择出一个作为源探测器,并选择出一个IP地址 作为探测目标IP地址。例如,若源AS号为1293,有一个AS拓扑发现探测器的IP地址为 192. 123. 2. 45,且IP网络地址192. 123. 2. *对应的AS号正好为1293,则选择IP地址为 192. 123.2.45的AS拓扑发现探测器为源探测器。又例如,若源AS号为1293,且没有一个 对应AS号为1293的AS拓扑发现探测器IP地址,则选择离AS 1293最近的AS拓扑发现探 测器为源探测器。假设存在一个AS拓扑发现探测器的IP地址为101. 1. 1. 92,相应IP网络 地址101. 1. 1. *对应的AS号正好为2047,且在所有AS拓扑发现探测器IP地址对应的AS 中,AS 2047是离AS 1293最近的AS,则选择IP地址为101. 1. 1. 92的AS拓扑发现探测器 为源探测器。探测目标IP地址的选择与源探测器IP地址的选择相似。不同的是,若没有 合适的AS拓扑发现探测器IP地址作为探测目标IP地址,则从对应于目标AS号的IP网络 地址段中随机选择一个有效的单播IP地址(如A/B/C类IPv4地址)作为探测目标IP地 址。若不能成功选择出源探测器和探测目标IP地址,则转(6. 2)步重新选择源AS号和目 标AS号。 (6.5)在AS拓扑发现服务器中为每个源探测器设置一个探测请求失败次数的计 数器。初始时,探测请求失败次数设置为O。 (6. 6)由AS拓扑发现服务器向源探测器发送探测请求消息,探测请求消息中包含 探测目标IP地址(例如,129.83. 162.210)。在AS拓扑发现服务器中为每个源探测器设置 一个第三定时器。从发送探测请求消息给某个源探测器开始,AS拓扑发现服务器启动与源 探测器对应的第三定时器。当等待时间达到T3时,定时器超时。 (6.7)源探测器接收到从AS拓扑发现服务器发送来的探测请求消息后,使用 traceroute探测方法(或其他类似探测方法)获得从源探测器IP地址到探测目标IP地址 的IP转发路径。 (6. 8)源探测器向AS拓扑发现服务器发送探测应答消息。探测应答消息中包含 traceroute探测方法的探测结果,即从源探测器IP地址到探测目标IP地址的IP转发路径。 (6. 9)若在与源探测器对应的第三定时器超时之前,AS拓扑发现服务器接收到了 源探测器发来的探测应答消息,则转第(6. 10)步。若第三定时器超时,即在等待时间T3内 没有收到从所述源探测器发送来的探测应答消息,则探测请求失败,AS拓扑发现服务器将
13对应所述源探测器的探测请求失败次数增加1。若探测请求失败次数大于等于最大探测请 求次数K,则AS拓扑发现服务器认为所述源探测器已不可用,AS拓扑发现服务器将源探测 器的IP地址从探测器IP地址列表中删除,转步骤(6.4)重新选择源探测器。若探测请求 失败次数小于K,则转步骤(6.6)重新发送探测请求消息并等待。 (6. 10) AS拓扑发现服务器收到探测应答消息后,根据IP网络地址与AS号的对应 关系,将源探测器发送来的探测应答消息中包含的从源探测器IP地址到探测目标IP地址 的IP转发路径转换为AS转发路径。例如,假设探测得到的IP转发路径为(192. 123. 2. 45, 192. 123. 2, 1, 10. 78. 2. 1, 108. 7. 3. 2, 23. 243. 45. 253, 129. 83. 162. 210),又从BGP路由 信息库得知IP网络地址192. 123. 2. *对应的AS号为1293, IP网络地址10. 78. 2. *和 108. 7. 3. *对应的AS号为70, IP网络地址23. 243. 45. *对应的AS号为325, IP网络地址 129. 83. 162. *对应的AS号为7934,则转换得到的AS转发路径为(1293, 70, 325, 7934)。
(6. 11) AS拓扑发现服务器遍历探测历史记录,判断当前得到的AS转发路径是否 是重复的信息,即判断当前得到的AS转发路径是否被包含在探测历史记录中。若是重复的 AS转发路径信息,则丢弃这条AS转发路径,转(6. 2)步选择新的源AS号和目标AS号;若 不是重复的信息,则将所述AS转发路径保存到探测历史记录中。 (6. 12)AS拓扑发现服务器根据AS转发路径中的AS邻接关系,更新AS拓扑图。例 如,对于AS转发路径(1293, 70, 325, 7934),可知存在如下AS邻接关系(1293, 70) 、 (70, 325) 、 (325,7934)。设AS邻接矩阵为A,第i行第j列的邻接矩阵元素为A^.。假设AS 1293、 AS 70、 AS 325、 AS 7934在AS邻接矩阵中的编号分别为7、3、4、 1,则将矩阵元素A7,3、 A3,4、 Aw分别置为1。 AS邻接关系信息添加结束后,转(6.2)步选择新的源AS号和目标AS号。
权利要求
一种BGP引导的实时自治系统级拓扑发现方法,其特征在于包括以下步骤第一步,建立BGP引导的实时AS拓扑发现系统,该系统由BGP路由器-简称为路由器、AS拓扑发现服务器-简称为服务器和AS拓扑发现探测器-简称为探测器组成;所述AS是指自治系统;BGP路由器是指运行域间路由协议BGP的路由器,位于AS的边缘,与互联网中其他AS的路由器连接;AS拓扑发现服务器是指进行AS拓扑发现的计算机,部署在BGP路由器所在自治系统内,其上装有AS拓扑发现服务程序,它从BGP路由器获得BGP的路由信息,从AS拓扑发现探测器获得IP转发路径信息;AS拓扑发现服务器上设置有记录所有AS拓扑发现探测器的IP地址的数据结构-探测器IP地址列表;AS拓扑发现探测器是分布在互联网中的联网计算机,其上运行探测器程序,每个探测器程序有一个运行参数配置文件,其中包含AS拓扑发现服务器的域名或IP地址;运行参数配置文件由用户在建立BGP引导的实时AS拓扑发现系统创建;探测器程序内嵌于点到点P2P即Peer-to-Peer系统的peer节点程序中;AS拓扑发现服务器与BGP路由器通过局域网或Internet连通,AS拓扑发现服务器通过Internet与AS拓扑发现探测器连通,AS拓扑发现服务器与BGP路由器之间的通信基于传输控制协议TCP,AS拓扑发现服务器与AS拓扑发现探测器之间的通信基于用户数据报协议UDP;第二步,分别启动AS拓扑发现服务器程序和AS拓扑发现探测器程序,每个AS拓扑发现探测器上的AS拓扑发现探测器程序启动后,均向AS拓扑发现服务器注册,注册过程为(2.1)AS拓扑发现探测器从运行参数配置文件获得AS拓扑发现服务器的域名或IP地址,用此域名或IP地址向AS拓扑发现服务器发送注册请求消息,注册请求消息包含AS拓扑发现探测器的IP地址;在AS拓扑发现探测器中设置第一定时器,在发送了注册请求消息后,启动第一定时器,第一定时器的超时时间为T1;(2.2)AS拓扑发现服务器收到AS拓扑发现探测器送来的注册请求消息后,将该AS拓扑发现探测器的IP地址保存到探测器IP地址列表中,并向AS拓扑发现探测器发送一个注册确认消息;(2.3)若AS拓扑发现探测器的第一定时器超时,即从发送注册请求消息起,AS拓扑发现探测器在等待时间T1内没有收到注册确认消息,则转(2.1)步;若AS拓扑发现探测器收到了从AS拓扑发现服务器发送来的注册确认消息,则AS拓扑发现探测器开始等待接收AS拓扑发现服务器发送来的探测请求消息,注册过程结束;第三步,AS拓扑发现服务器周期地进行AS拓扑发现,方法是在AS拓扑发现服务器中设置第二定时器,第二定时器以更新周期T2定时触发进行新一轮的AS拓扑发现,当第二定时器超时触发时,执行第四步至第六步进行新一轮的拓扑发现;第四步,AS拓扑发现服务器建立到BGP路由器的会话,从BGP路由器得到BGP路由信息如果有多台BGP路由器,则AS拓扑发现服务器分别与多台BGP路由器建立连接,并从这些BGP路由器接收BGP路由信息;BGP路由协议通过路由更新消息将本路由器的IP网络路由信息通告给邻居,每一条BGP路由信息包含一个IP网络地址和对应该IP网络地址的路由属性;路由属性中包含最短AS路径属性,AS路径是指从BGP路由器到达该IP网络地址需要经过的AS序列,最短AS路径是指从BGP路由器到达该IP网络地址需要经过的最少AS序列,所有BGP路由信息构成BGP路由信息库;第五步,AS拓扑发现服务器根据接收到的BGP路由信息进行计算,得到初始AS拓扑以及IP网络地址与AS号的对应关系,方法是(5.1)将AS拓扑用AS邻接矩阵来表示,AS邻接矩阵为N×N的0/1矩阵,N为AS的个数,若第i行第j列的矩阵元素为0,则表示第i个AS与第j个AS之间不存在邻接关系;若为1,则表示它们之间存在邻接关系,具体方法是(5.1.1)初始时,将AS邻接矩阵所有元素设置为0;(5.1.2)对任意一条AS路径a1,a2,a3,...,ak,1≤i≤k-1,k为AS路径长度,设自治系统ai在AS邻接矩阵中的编号为x,对应AS邻接矩阵的第x行,自治系统ai+1在AS邻接矩阵中的编号为y,对应AS邻接矩阵的第y列,则将ai与ai+1对应的矩阵元素即第x行第y列的矩阵元素置为1;(5.2)根据BGP路由信息计算IP网络地址与AS号的对应关系,方法是对每一项BGP路由信息,若其IP网络地址为Net1,AS路径为a1,a2,a3,...,am,则am是网络地址Net1所属的AS;第六步,AS拓扑发现服务器和AS拓扑发现探测器相互协作,进行AS邻接关系的探测和更新,方法是(6.1)在AS拓扑发现服务器中创建一个探测历史记录,记录探测得到的AS转发路径,探测历史记录初始时为空,AS转发路径是IP分组转发经过的AS序列;(6.2)由AS拓扑发现服务器根据当前的AS邻接矩阵和探测历史记录选择源AS号和目标AS号;源AS号是待探测的AS转发路径的起始AS号,目标AS是待探测的AS转发路径的终止AS号;(6.3)若第(6.2)步不能得到源AS号和目标AS号,则本轮拓扑发现过程结束,转第三步;若第(6.2)步得到了源AS号和目标AS号,转(6.4)步;(6.4)根据IP网络地址和AS号的对应关系、探测器IP地址列表,由AS拓扑发现服务器从多个AS拓扑发现探测器中选择出一个作为源AS拓扑发现探测器-简称源探测器,并选择一个IP地址作为探测目标IP地址,选择方法为(6.4.1)如果探测器IP地址列表中某一个AS拓扑发现探测器的IP地址对应的AS号就是源AS号,则直接选择该AS拓扑发现探测器作为源探测器;否则,根据IP网络地址和AS号的对应关系以及AS最短路径的长度,选择一个IP地址与源AS最近的AS拓扑发现探测器作为源探测器;(6.4.2)如果探测器IP地址列表中某一个AS拓扑发现探测器的IP地址对应的AS号为目标AS号,则直接选择该AS拓扑发现探测器的IP地址作为探测目标IP地址;否则,根据IP网络地址和AS号的对应关系,从对应于目标AS号的IP网络地址段中随机选择一个有效的单播IP地址作为探测目标IP地址;(6.4.3)若不能成功选择出源探测器和探测目标IP地址,则转(6.2)步;若选择出了源探测器和探测目标IP地址,转(6.5)步;(6.5)在AS拓扑发现服务器中为每个源探测器设置一个探测请求失败次数的计数器,初始时,探测请求失败次数设置为0;(6.6)由AS拓扑发现服务器向源探测器发送探测请求消息,探测请求消息中包含探测目标IP地址;在AS拓扑发现服务器中为每个源探测器设置一个第三定时器,从发送探测请求消息给某个源探测器开始,AS拓扑发现服务器启动与该源探测器对应的第三定时器;第三定时器的超时等待时间为T3;当等待时间达到T3时,定时器超时;(6.7)源探测器接收到从AS拓扑发现服务器发送来的探测请求消息后,使用traceroute探测方法获得从源探测器IP地址到探测目标IP地址的IP转发路径;(6.8)源探测器向AS拓扑发现服务器发送探测应答消息,探测应答消息中包含traceroute探测方法的探测结果,即从源探测器IP地址到探测目标IP地址的IP转发路径;(6.9)若在与源探测器对应的第三定时器超时之前,AS拓扑发现服务器接收到了源探测器发来的探测应答消息,则转第(6.10)步;若第三定时器超时,即在等待时间T3内没有收到从所述源探测器发送来的探测应答消息,则探测请求失败,AS拓扑发现服务器将该源探测器的探测请求失败次数增加1;若探测请求失败次数大于等于最大探测请求次数K,则AS拓扑发现服务器认为该源探测器已不可用,AS拓扑发现服务器将该源探测器的IP地址从探测器IP地址列表中删除,转步骤(6.4);若探测请求失败次数小于K,则转步骤(6.6);(6.10)AS拓扑发现服务器收到探测应答消息后,根据IP网络地址与AS号的对应关系,将源探测器发送来的探测应答消息中包含的从源探测器IP地址到探测目标IP地址的IP转发路径转换为AS转发路径;(6.11)AS拓扑发现服务器遍历探测历史记录,判断当前得到的AS转发路径是否是重复的信息,即判断当前得到的AS转发路径是否被包含在探测历史记录中;若是重复的AS转发路径信息,则丢弃这条AS转发路径,转(6.2)步;若不是重复的信息,则将该AS转发路径保存到探测历史记录中;(6.12)AS拓扑发现服务器根据AS转发路径中的AS邻接关系,更新AS拓扑图,方法为对于第3.6步得到的AS转发路径a1,a2,a3,...,ak,设自治系统ai在AS邻接矩阵中的编号为x,自治系统ai+1在AS邻接矩阵中的编号为y,则将ai与ai+1对应的矩阵元素,即第x行第y列的矩阵元素置为1,AS连接信息添加结束后,转(6.2)步。
2. 如权利要求1所述的BGP弓I导的实时自治系统级拓扑发现方法,其特征在于当AS拓 扑发现服务程序运行于BGP路由器上时,AS拓扑发现服务器和BGP路由器是同一台设备。
3. 如权利要求l所述的BGP引导的实时自治系统级拓扑发现方法,其特征在于Tl不小 于30秒,T2应不小于一次完整的拓扑发现过程需要的时间,T3不小于30秒。
4. 如权利要求1所述的BGP引导的实时自治系统级拓扑发现方法,其特征在于最大探 测请求次数K设置为3次。
5. 如权利要求1所述的BGP引导的实时自治系统级拓扑发现方法,其特征在于所述第 六步中源AS号和目标AS号的选择方法是(5. 1)根据当前的AS邻接矩阵,AS拓扑发现服务器采用Bellman-Ford算法计算任意 两个AS之间的AS最短路径;(5. 2) AS拓扑发现服务器选择最有可能存在未知的新AS邻接关系的源AS号和目标AS 号,选择方法是(5. 2. 1)按照AS最短路径的长度由大到小将AS最短路径排序;(5. 2. 2)按照AS最短路径的长度顺序,依次检查每条AS最短路径的两个端点的AS,看 它们是否满足如下条件条件一 假设AS最短路径的两个端点的AS的AS号分别为Al和A2,则对于BGP路由 信息库中任意一条最短AS路径as_path, Al G as_path和A2 G as_path不同时成立;条件二 假设AS最短路径的两个端点的AS的AS号分别为Al和A2,则对于探测历史 记录中任意一条AS转发路径as_path, Al G as_path和A2 G as_path不同时成立;若上述两个条件同时满足,则选定Al为源AS号,A2为目标AS号;若上述两个条件不 能同时满足,则转(5. 2. 2)步检查下一条AS最短路径的两个端点的AS。
全文摘要
本发明公开了一种BGP引导的实时自治系统级拓扑发现方法,目的是提供一种拓扑完整性大的互联网AS级拓扑实时发现方法。技术方案是先建立BGP引导的由BGP路由器、AS拓扑发现服务器和AS拓扑发现探测器组成的实时AS拓扑发现系统;接着启动AS拓扑发现服务器程序和AS拓扑发现探测器程序,AS拓扑发现探测器均向AS拓扑发现服务器注册;AS拓扑发现服务器周期地进行AS拓扑发现,建立到BGP路由器的会话,从BGP路由器得到BGP路由信息,根据BGP路由信息进行计算,得到初始AS拓扑以及IP网络地址与AS号的对应关系;最后AS拓扑发现服务器和AS拓扑发现探测器相互协作,进行AS邻接关系的探测和更新。采用本发明可实时发现较完整的AS级拓扑,且拓扑发现的通信开销低。
文档编号H04L12/56GK101714942SQ20091004474
公开日2010年5月26日 申请日期2009年11月12日 优先权日2009年11月12日
发明者卢泽新, 张晓哲, 彭伟, 王宏, 胡宁, 胡晓峰, 赵锋 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1