IPv6本地链路拓扑发现方法

文档序号:10660745阅读:399来源:国知局
IPv6本地链路拓扑发现方法
【专利摘要】本发明涉及网络定位发现技术,具体的说是一种能够时时探测的IPv6本地链路拓扑发现方法,其特征在于发现本地链路内的所有节点,包括路由器和主机,并获取所有节点的配置信息,本地链路节点的发现是基于IPv6多播地址的,通过向多播地址发送ICMPv6回声请求报文使得本地链路内的所有节点对其做出响应,返回ICMPv6回声应答报文,从而发现本地链路内存在哪些节点,本发明针对本地链路拓扑发现中遇到的问题,利用IPv6多播地址探测本地链路拓扑信息的方法,解决子网节点的探测问题,来获取每个交换机与主机的连接关系。
【专利说明】
IPv6本地链路拓扑发现方法
技术领域
[0001]本发明涉及网络定位发现技术,具体的说是一种能够时时探测的IPv6本地链路拓扑发现方法。【背景技术】
[0002] IPv6是智能电网的重要应用基石,它的广泛应用将决定性地推动物联网、智能电网、云计算等新兴应用的发展。将来的智能电网就是可以做到每一个相关的设备有一个自己的IP地址,用户可以通过网络访问设备。目前的IPv4有限的地址空间将被耗尽,已经无法提供更多的IP地址,而IPv6可以让人们拥有几乎无限大的地址空间,这使得从发电、输电、 变电、配电、用电和调度的整个过程中所有参与的设备,如智能变压器、智能电表等,包括用户所使用的家用电器都可以有自己的IP地址并且共同纳入到智能电网中,实现电网的双向通信。
[0003] IPv6地址量大,能够实现电网中每个设备都能有一个IP地址;传输效率高、速度快、网络安全性高;严格规范的管理确保网络的通畅;IPv6支持新增设备迅速连接到网络上,真正实现即插即用的功能。IPv6的以上特性很好地满足了智能电网在通信方面的要求, 在该领域有广阔的应用前景。
[0004]在IPv6网络出现之前,IPv4网络的管理中,采用的网络拓扑发现方法主要有以下几种:基于SNMP的网络拓扑发现方法、基于通用协议的网络拓扑发现方法和基于路由协议的网络拓扑发现方法。其中,基于SNMP的网络拓扑自动发现方法是一种应用比较广泛,对信息获取比较充分的拓扑发现方法。
[0005]对于IPv6网络拓扑发现方法是法国洛林(0RIA.1NRIA)实验室的1.Astic和 0.Festor提出的层次化拓扑发现过程。具体的作法是:在每个子网内设置本地代理(Local Agent,LA),本地代理通过多播发现子网内的所有节点及其链路层地址、每个节点的类型 (主机还是路由器)、子网前缀以及各节点的名字和全局地址。设置一个管理中心(Central Manager,CM),本地代理知道管理中心的地址,并将发现的本地拓扑信息发送给管理中心。 管理中心集中处理由多个本地代理送来的拓扑信息,综合分析出全网的拓扑结构。
【发明内容】

[0006]本发明针对现有技术中存在的缺点和不足,提出了一种能够时时探测的IPv6本地链路拓扑发现方法。
[0007]本发明可以通过以下措施达到:一种IPv6本地链路拓扑发现方法,其特征在于发现本地链路内的所有节点,包括路由器和主机,并获取所有节点的配置信息,本地链路节点的发现是基于IPv6多播地址的,通过向多播地址发送ICMPv6回声请求报文使得本地链路内的所有节点对其做出响应,返回 ICMPv6回声应答报文,从而发现本地链路内存在哪些节点。
[0008]本发明通过RFC2373中规定了一些IPv6保留的多播地址,其中包括“本地链路所有节点的多播地址(FR)2:: 1)”和“本地链路内所有路由器的多播地址(FF02:: 2)”。对于目标地址为FF02:: 1的报文,本地链路内所有节点(包括路由器、主机)都会接收和处理;对于地址为FF02::2的报文,本地链路内的路由器才会接收和处理。如果分别向FF02::1、FF02::2 发送ICMPv6 Echo Request报文,根据收到的ICMPv6 Echo Reply应答,可以发现本地链路内的所有IPv6节点和所有IPv6路由器。
[0009]本发明中本地发现过程中收到的ICMPv6 Echo Reply的源地址都是以本地链路地址表示的,该地址的后64位是以EU1-64表示的接口 ID。如果再向FF02:: 2发送路由器请求消息,本地链路路由器回应的通告消息中将包含IPv6地址前缀,以此前缀,叠加已获得的64位接口 ID,就可以得到本地链路上所有IPv6节点的全局可聚集单播地址。
[0010]本发明通过Ping6 FF02::1的回声应答结果发现本地链路内的所有节点,通过 Ping6 FF02::2的回声应答结果可以发现本地链路内的所有路由器的信息,除去本地链路内的所有路由器地址,余下的Ping6 FF02::1回声应答结果即为本地链路内所有主机的地址,通过发送两个ICMPv6的回声请求报文即可发现本地链路内的所有节点信息,而无需轮询IPv6网络内的所有地址。
[0011]本发明将根据无状态自动配置的工作原理来发现一个本地链路节点的全局地址, 在获得节点的本地链路地址基础上,模拟路由器请求报文,将该报文发送至标识本地链路内所有路由器的多播地址,路由器就会做出响应发出路由器宣告,解析路由器宣告可以获取该本地链路的子网前缀,然后根据子网前缀和本地链路地址的后64位接口标识就可以获得该本地链路内所有节点的全局地址。[0〇12]本发明针对本地链路拓扑发现中遇到的问题,利用IPv6多播地址探测本地链路拓扑信息的方法,解决子网节点的探测问题,来获取每个交换机与主机的连接关系。【具体实施方式】
[0013]下面对本发明作进一步的说明。
[0014]IPv6本地链路是指通信设备或者媒介,通过此设备或者媒介节点可以在数据链路层进行通信。本地链路节点的主要功能是发现本地链路内的所有网络节点,包括路由器和主机,并获取节点的配置信息。
[0015]通过ICMP报文探测链路中节点问题:在IPv4的网络中,发现一个子网内的所有节点的方法是轮询子网内的所有地址,以获取子网内的所有节点信息。例如子网地址为 192.168.1.0/24内的所有合法地址为192.168.1.1-192.168.1.254,如要获取子网内的活动节点信息,通常的做法是发送254个ICMP包,根据被探测节点返回的ICMP应答包来发现子网内的活动节点;在IPv6协议中,通过本地链路地址的格式可知,每个IPv6地址中,子网前缀为64位,剩下的64位表示的是子网接口。因此,一个IPv6本地链路内最多可以由2~64个节点构成。如果仍使用IPv4的探测方法轮询本地链路内所有地址,至少需要发送2~64个 ICMPv6回声请求,这将占用大量的网络资源和非常长的时间,这种高昂的代价在任何子网内都是不可接受的,不仅占用大量的网络资源,而且在时效性上也不能满足拓扑发现的需要。[〇〇16] 本地链路获取全局地址问题:通过向多播地址发送ICMPv6回声请求消息返回的ICMPv6回声应答消息中得到的IPv6地址是以FE80::为前缀的本地链路地址。然而当一个节点与其他IPv6网络中的节点进行通信时,其子网前缀在任何情况下都是不可能被寻址的,因此必然需要使用IPv6全局地址进行通信。因此一般情况下,一个IPv6至少配置两个地址:全局地址和本地链路地址。
[0017]如何通过IPv6本地链路地址来获取其全局地址,这将成为本地链路拓扑发现中的另一个问题,针对IPv6网络内的“回声请求”和本地链路获取全局地址两个问题,结合IPv6 协议的新特征,提出了上述两个问题的解决方案。[〇〇18]本地链路拓扑发现技术:Ping程序是对两个TCP/IP系统连通性进行测试的基本工具,用来监测网络节点是否仍连接在网络中。通常Ping只涉及网络上的源节点和目的节点, 而忽略网络细节。Ping程序的原理是任何支持TCP/IP的设备在收到一个回声请求报文的时候,都会返回一个应答报文,请求报文和应答报文的格式相同。在IPv4与IPv6中Ping程序都提供了一个“-R”选项,其功能是记录ICMP回声应答报文途经的路由地址。然而,在IPv6中 Ping6工具又被赋予了新的职能,由于IPv6地址中包含了一组多播地址,通过对这些多播地址发送Ping6回声请求报文,可以有效的获取IPv6本地链路中所有主机和路由器的地址。 [〇〇19]在IPv6网络的本地链路内,通过使用IPv6的多播机制可以方便快捷的获取本地链路内的节点信息,并有效解决“回声请求”问题。ICMPv6协议将IPv4协议中的ICMP、IGMP和 ARP三种协议融合到了一起,并定义了新的多播地址,格式为FF〈接口 >〈组标识〉。这其中包括了标识本地链路内所有节点的多播地址FF02::1,以及标识本地链路内所有路由器的地址FF02:: 2。通过这两个多播地址可以区分本地链路内的响应节点哪些是主机哪些是路由器。
[0020] 通过Ping6 FR)2::1的回声应答结果可以发现本地链路内的所有节点,通过Ping6 FF02::2的回声应答结果可以发现本地链路内的所有路由器的信息。除去本地链路内的所有路由器地址,余下的Ping6 FF02::1回声应答结果即为本地链路内所有主机的地址。通过发送两个ICMPv6的回声请求报文即可发现本地链路内的所有节点信息,而无需轮询IPv6网络内的所有地址。[0021 ] 发现本地链路内的全局地址:全局地址的配置方式有无状态地址自动配置、有状态地址自动配置和手工配置。其中无状态地址自动配置是通过路由器来完成的,不需借助其他任何信息就可以获得全局地址。无状态自动配置就是本地链路内的路由器定期地发出路由器宣告,该宣告中包含此链路内可用的子网前缀,主机收到路由器宣告以后根据子网前缀和接口标识生成全局地址。当一个新节点加入本地链路后,会向所有路由器发出路由器请求,路由器收到路由器请求后会立刻发出路由器宣告,这样新加入的节点就会自动配置全局地址。[〇〇22]本专利将根据无状态自动配置的工作原理来发现一个本地链路节点的全局地址。 在获得节点的本地链路地址基础上,模拟路由器请求报文,将该报文发送至标识本地链路内所有路由器的多播地址,路由器就会做出响应发出路由器宣告。解析路由器宣告可以获取该本地链路的子网前缀,然后根据子网前缀和本地链路地址的后64位接口标识就可以获得该本地链路内所有节点的全局地址。[〇〇23]本地链路节点发现的算法如下:发现本地链路内的所有节点,包括路由器和主机,并获取所有节点的配置信息。本地链路节点的发现是基于IPv6多播地址的,通过向多播地址发送ICMPv6回声请求报文使得本地链路内的所有节点对其做出响应,返回ICMPv6回声应答报文,从而发现本地链路内存在哪些节点;其中RFC2373中规定了一些IPv6保留的多播地址,其中包括“本地链路所有节点的多播地址(FF02:: 1)”和“本地链路内所有路由器的多播地址(FF02:: 2)”。对于目标地址为 FF02:: 1的报文,本地链路内所有节点(包括路由器、主机)都会接收和处理;对于地址为 FF02::2的报文,本地链路内的路由器才会接收和处理。如果分别向FF02::1、FF02::2发送 ICMPv6 Echo Request报文,根据收到的ICMPv6 Echo Reply应答,可以发现本地链路内的所有IPv6节点和所有IPv6路由器。[〇〇24] 本地发现过程中收到的ICMPv6 Echo Reply的源地址都是以本地链路地址表示的,该地址的后64位是以EU1-64表示的接口 ID。如果再向FF02:: 2发送路由器请求消息,本地链路路由器回应的通告消息中将包含IPv6地址前缀,以此前缀,叠加已获得的64位接口 ID,就可以得到本地链路上所有IPv6节点的全局可聚集单播地址。
[0025]本发明针对本地链路拓扑发现中遇到的问题,利用IPv6多播地址探测本地链路拓扑信息的方法,解决子网节点的探测问题,来获取每个交换机与主机的连接关系。
【主权项】
1.一种IPv6本地链路拓扑发现方法,其特征在于发现本地链路内的所有节点,包括路 由器和主机,并获取所有节点的配置信息,本地链路节点的发现是基于IPv6多播地址的,通 过向多播地址发送ICMPv6回声请求报文使得本地链路内的所有节点对其做出响应,返回 ICMPv6回声应答报文,从而发现本地链路内存在哪些节点。2.根据权利要求1所述的一种IPv6本地链路拓扑发现方法,其特征在于通过RFC2373中 规定了一些IPv6保留的多播地址,其中包括“本地链路所有节点的多播地址(FF02:: 1)”和 “本地链路内所有路由器的多播地址(FF02::2)”,对于目标地址为FF02::1的报文,本地链 路内所有节点,包括路由器、主机,都会接收和处理;对于地址为FF02:: 2的报文,本地链路 内的路由器才会接收和处理,如果分别向FF02::1、FF02::2发送ICMPv6 Echo Request报 文,根据收到的ICMPv6 Echo Reply应答,可以发现本地链路内的所有IPv6节点和所有IPv6 路由器。3.根据权利要求1所述的一种IPv6本地链路拓扑发现方法,其特征在于本地发现过程 中收到的ICMPv6 Echo Reply的源地址都是以本地链路地址表示的,该地址的后64位是以 EU1-64表示的接口 ID,如果再向FF02:: 2发送路由器请求消息,本地链路路由器回应的通告 消息中将包含IPv6地址前缀,以此前缀,叠加已获得的64位接口 ID,就可以得到本地链路上 所有IPv6节点的全局可聚集单播地址。4.根据权利要求1所述的一种IPv6本地链路拓扑发现方法,其特征在于通过Ping6 FF02::1的回声应答结果发现本地链路内的所有节点,通过Ping6 FR)2::2的回声应答结果 可以发现本地链路内的所有路由器的信息,除去本地链路内的所有路由器地址,余下的 Ping6 FF02::1回声应答结果即为本地链路内所有主机的地址,通过发送两个ICMPv6的回 声请求报文即可发现本地链路内的所有节点信息,而无需轮询IPv6网络内的所有地址。5.根据权利要求1所述的一种IPv6本地链路拓扑发现方法,其特征在于将根据无状态 自动配置的工作原理来发现一个本地链路节点的全局地址,在获得节点的本地链路地址基 础上,模拟路由器请求报文,将该报文发送至标识本地链路内所有路由器的多播地址,路由 器就会做出响应发出路由器宣告,解析路由器宣告可以获取该本地链路的子网前缀,然后 根据子网前缀和本地链路地址的后64位接口标识就可以获得该本地链路内所有节点的全 局地址。
【文档编号】H04L12/751GK106027400SQ201610605041
【公开日】2016年10月12日
【申请日】2016年7月28日
【发明人】杨尉, 栾卫平, 穆芮, 卢媛, 徐康, 冷小洁, 杜廷文
【申请人】国网山东省电力公司威海供电公司, 济南迪讯信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1