一种实现IP有效性检测的方法及装置
技术领域
本发明涉及计算机高可用集群技术,尤其涉及实现IP有效性检测的方法及装置。
背景技术
目前,随着云时代的到来,更多强调的是由大规模计算机组成的计算机集群系统的应用,尤其是高可用集群系统的应用。
在高可用集群系统中包括多种依赖于IP地址的业务。在这些业务中对IP地址的有效性进行检测,将直接影响到业务是否能正常提供。因此,提供一种可靠、高效的IP检测机制非常重要。
在现有的IP检测方法中主要有:
(1)本地检测方法
这一方法速度较快,但仅限于对本地IP的检测,因此受区域的限制。
(2)因特网包探索器(Ping,Packet Internet Grope)机制
Ping是TCP/IP协议的一部分,是Windows系下带的一个可执行命令。该命令利用网络上机器IP地址的唯一性给目标IP地址发送一个数据包,并要求对方返回一个同样大小的数据包,以此来确定两台网络终端是否连接相通以及时延是多少。利用Ping机制可以检查远程网络是否连通。
但是,Ping机制因网络设备间存在延时、访问控制等限制而会导致系统易出现阻塞,且会影响到检测的准确性。
(3)ICMP数据包检测方法
该方法是在发送端和接收端之间传输因特网控制消息报文协议(ICMP,Internet Control and Message Protocal)数据包来检测IP地址。
这种检测方法同Ping机制相同,均适用于远程业务的IP地址检测。但因该方法也极易因网络设备间存在延时、访问控制等而同样存在检测的准确性问题。
因此,需要对现有的IP检测方法加以改进,以快速准确地实现IP地址的检测,达到加强高可用集群系统业务可靠性的最终目的。
发明内容
本发明所要解决的技术问题是提供一种实现IP有效性检测的方法及装置,能够准确地实现IP地址的检测。
为了解决上述技术问题,本发明提供了一种实现IP有效性检测的方法,其特征在于,包括:
轮询本地路由表中所有IP地址,根据轮询的结果返回本地IP有效性检测结果;
根据本地IP检测结果向网络中发送因特网控制消息报文协议数据包,根据在规定时间内是否等候到目的设备回复的结果,返回IP有效性检测结果。
进一步地,轮询本地路由表中所有IP地址,根据轮询结果返回本地IP有效性检测结果,具体包括:
轮询本地路由表中所有IP地址;
根据轮询的结果为该路由表中存在检测IP,则返回本地IP有效的检测结果,否则返回本地IP无效的检测结果。
进一步地,根据本地IP检测结果向网络中发送因特网控制消息报文协议数据包,根据在规定时间内是否等候到目的设备回复的结果,返回IP有效性检测结果,具体包括:
根据本地IP无效的检测结果向所述网络发送所述因特网控制消息报文协议数据包;
若在规定时间内未等候到目的设备的回复,则返回IP无效的检测结果。
进一步地,若在规定时间内等候到目的设备的回复,还包括:
比对被检测的IP地址和回复的IP地址,并根据IP地址的比对结果返回IP有效性检测结果。
进一步地,根据IP地址的比对结果返回IP有效性检测结果,具体包括:
若IP地址的比对结果为一致,则返回IP有效的检测结果,否则返回IP无效的检测结果。
为了解决上述技术问题,本发明提供了一种实现IP有效性检测的装置,包括依次连接的本地路由轮询模块和ICMP数据包传输模块,其中:
本地路由轮询模块,用于轮询本地路由表中所有IP地址,根据轮询的结果向ICMP数据包传输模块输出本地IP有效性检测结果;
ICMP数据包传输模块,用于根据本地IP检测结果向网络中发送因特网控制消息报文协议数据包,将在规定时间内是否等候到目的设备回复的结果输出IP有效性检测结果。
进一步地,该装置还包括分别与本地路由轮询模块和ICMP数据包传输模块连接的检测结果返回模块,其中:
本地路由轮询模块根据轮询的结果为该路由表中存在检测IP,则将本地IP有效的检测结果输出给检测结果返回模块,否则向ICMP数据包传输模块输出本地IP无效的检测结果;
ICMP数据包传输模块根据本地IP无效的检测结果向网络中发送数据包,若在规定时间内未等候到所述目的设备的回复,则向检测结果返回模块输出IP无效的检测结果;
检测结果返回模块将输入的本地IP有效的检测结果和/或IP无效的检测结果返回。
进一步地,该装置还包括分别与ICMP数据包传输模块和检测结果返回模块将连接的IP地址检测模块,其中:
ICMP数据包传输模块将在规定时间内等候到目的设备回复的结果输出给IP地址检测模块;
IP地址检测模块,用于根据IP地址检测模块等候到目的设备回复的结果,比对被检测的IP地址和回复的IP地址,并根据IP地址比对的结果向检测结果返回模块输出IP有效性检测结果;
检测结果返回模块将IP地址检测模块输出的IP有效性检测结果返回。
进一步地,
IP地址检测模块根据IP比对的结果为一致,向检测结果返回模块输出IP检测有效的结果;根据IP比对的结果不一致,则向检测结果返回模块输出IP检测无效的结果;
检测结果返回模块将IP地址检测模块输出的IP检测有效的结果或IP检测无效的结果返回。
本发明通过在不同场合下用不同的IP有效性检测方法,大大提高了本地IP检测有效性的速度,同时也提高了远端IP检测有效性的准确性,从而整体提高了高可用集群系统业务可靠性。
附图说明
图1为本发明的实现IP有效性检测的方法实施例的流程图;
图2为本发明的实现IP有效性检测的装置实施例的结构框图。
具体实施方式
以下结合附图和优选实施例对本发明的技术方案进行详细地阐述。应该理解,以下列举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。
本发明提供的实现IP有效性检测的方法实施例,其流程如图1所示,包括如下步骤:
110:轮询本地路由表中所有IP地址;
120:判断该路由表中是否存在检测IP,是则执行步骤190,否则执行下一步骤;
130:发送ICMP数据包到网络中,并在指定时间等待目的设备回复;
140:判断是否收到目的设备的回复消息,是则执行下一步骤,否则执行步骤180;
如果在规定的时间内没有收到目的设备的回复消息,说明被检测的IP不存在或者无效。
150:比对要检测的IP地址和回复消息的目的IP地址;
160:判断比对的IP地址是否一致,是则执行下一步骤,否则执行步骤180;
判断回复消息是由哪个IP地址回复的,看该回复消息的IP地址是否和被检测的IP地址一致,如一致则说明该IP地址真实存在并有效;如不一致则说明被检测的IP地址并不存在而无效。
170:返回检测IP有效结果,结束流程;
180:返回检测IP无效结果,结束流程;
190:返回本地检测IP有效结果,结束流程。
至此,便实现了本发明完整的检测IP有效性的算法,它可广泛应用于需要检测网络中是否真实存在某个IP地址的软件。
本发明针对上述方法实施例,相应地还提供了一种实现IP有效性检测的装置实施例,其结构如图2所示,包括依次连接的本地路由轮询模块和ICMP数据包传输模块,其中:
本地路由轮询模块,用于轮询本地路由表中所有IP地址,根据轮询的结果向ICMP数据包传输模块输出本地IP有效性检测结果;
ICMP数据包传输模块,用于根据本地IP检测结果向网络中发送ICMP数据包,将在规定时间内是否等候到目的设备回复的结果输出IP有效性检测结果。
在上述装置实施例中,还包括分别与本地路由轮询模块和ICMP数据包传输模块连接的检测结果返回模块,其中:
本地路由轮询模块根据轮询的结果为该路由表中存在检测IP,则将本地IP有效的检测结果输出给检测结果返回模块,否则向ICMP数据包传输模块输出本地IP无效的检测结果;
ICMP数据包传输模块,根据输入的本地IP无效的检测结果向所述网络中发送所述数据包,若在规定时间内未等候到目的设备的回复,则向检测结果返回模块输出IP无效的检测结果;
检测结果返回模块将输入的本地IP有效的检测结果和/或IP无效的检测结果返回。
上述装置实施例还包括分别与ICMP数据包传输模块和检测结果返回模块将连接的IP地址检测模块,其中:
ICMP数据包传输模块将在规定时间内等候到目的设备回复的结果输出给IP地址检测模块;
IP地址检测模块,用于根据输入的IP地址检测模块等候到目的设备回复的结果,比对被检测的IP地址和回复消息的IP地址,并根据IP地址比对的结果向检测结果返回模块输出IP有效性检测结果;
检测结果返回模块将IP地址检测模块输出的IP有效性检测结果返回。
在上述装置实施例中,
IP地址检测模块根据IP比对的结果为一致,向检测结果返回模块输出IP检测有效结果;根据IP比对的结果不一致,则向检测结果返回模块输出IP检测无效结果;
检测结果返回模块将IP地址检测模块输出的IP检测有效结果或IP检测无效结果返回。
本发明通过上述IP地址检测算法和相应的装置,首先大大提高了IP地址存在于本地的检测速度,同时通过ICMP数据包以及其回复的判断,提高了远程IP检测的可靠度及准确性。采用这种技术,使其应用在高可用集群系统中能够保证依赖IP地址的业务的可靠性,从而保证高可用集群服务的可靠性。
对于本领域的专业人员来说,在了解了本发明内容和原理后,能够在不背离本发明的原理和范围的情况下,根据本发明的方法进行形式和细节上的各种修正和改变,但是这些基于本发明的修正和改变仍在本发明的权利要求保护范围之内。