一种节点地址冲突的检测方法及装置转让专利

申请号 : CN201310109676.X

文献号 : CN103188354B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李志强

申请人 : 北京东土科技股份有限公司

摘要 :

本发明公开了一种节点地址冲突的检测方法及装置,该方法第二网络节点周期性的广播以自身每个MAC地址和IP地址为源地址的各ARP报文,且第二网络节点不同时广播所有的ARP报文,第一网络节点接收ARP报文,并判断该ARP报文的源地址是否与第一网络节点自身的地址冲突,若冲突,则向网管服务器上报携带该ARP报文的源地址的地址冲突信息。通过上述方法,第一网络节点除了可以检测自身的IP地址是否与第二网络节点的IP地址冲突以外,还可以检测自身的MAC地址是否与第二网络节点的MAC地址冲突,因此提高了检测节点地址冲突的准确性,并且第二网络节点不同时广播所有的ARP报文,可以减小网络传输压力。

权利要求 :

1.一种节点地址冲突的检测方法,其特征在于,包括:

第一网络节点接收第二网络节点广播的地址解析协议ARP报文,其中,所述第二网络节点在广播ARP报文时,周期性的广播以所述第二网络节点自身每个虚接口的介质访问控制MAC地址和网络互联协议IP地址为源地址的各ARP报文,且,所述第二网络节点不同时广播所有的ARP报文;

所述第一网络节点判断所述ARP报文的源地址是否与所述第一网络节点自身的地址冲突;

若冲突,则向网管服务器上报携带所述ARP报文的源地址的地址冲突信息;

所述第一网络节点判断所述ARP报文的源地址是否与所述第一网络节点自身的地址冲突,具体包括:

判断所述ARP报文的源MAC地址是否落入所述第一网络节点自身分配的MAC地址范围内,并判断所述第一网络节点为自身各虚接口分配的IP地址中,是否存在与所述ARP报文的源IP地址相同的IP地址;

当至少一个判断结果为是时,确定所述ARP报文的源地址与所述第一网络节点自身的地址冲突,当判断结果均为否时,确定所述ARP报文的源地址与所述第一网络节点自身的地址不冲突。

2.如权利要求1所述的方法,其特征在于,所述方法还包括:

当所述第一网络节点判断所述ARP报文的源MAC地址落入所述第一网络节点自身分配的MAC地址范围内,且,判断所述第一网络节点为自身各虚接口分配的IP地址中,存在与所述ARP报文的源IP地址相同的IP地址时,所述第一网络节点修改自身分配的MAC地址和IP地址。

3.如权利要求1所述的方法,其特征在于,当所述第一网络节点判断所述ARP报文的源MAC地址落入所述第一网络节点自身分配的MAC地址范围内时,向网管服务器上报携带所述ARP报文的源地址的地址冲突信息之前,所述方法还包括:所述第一网络节点判断自身当前保存的MAC冲突告警表中是否存在所述ARP报文的源MAC地址;

若存在,则将所述MAC冲突告警表中所述ARP报文的源MAC地址对应的告警清除时间重置为预设的第一初始值,否则,将所述ARP报文的源MAC地址写入所述MAC冲突告警表中,并将写入的所述ARP报文的源MAC地址对应的告警清除时间设置为预设的第一初始值;

当所述第一网络节点判断为自身各虚接口分配的IP地址中存在与所述ARP报文的源IP地址相同的IP地址时,向网管服务器上报携带所述ARP报文的源地址的地址冲突信息之前,所述方法还包括:所述第一网络节点判断自身当前保存的IP冲突告警表中是否存在所述ARP报文的源IP地址;

若存在,则将所述IP冲突告警表中所述ARP报文的源IP地址对应的告警清除时间重置为预设的第一初始值,否则,将所述ARP报文的源IP地址写入所述IP冲突告警表中,并将写入的所述ARP报文的源IP地址对应的告警清除时间设置为预设的第一初始值。

4.如权利要求3所述的方法,其特征在于,所述方法还包括:

所述第一网络节点按照第一设定时间间隔,将所述MAC冲突告警表中每个源MAC地址对应的告警清除时间减少预设的第一步进值,将所述IP冲突告警表中每个源IP地址对应的告警清除时间减少预设的第一步进值;并删除所述MAC冲突告警表中对应的告警清除时间小于所述第一步进值的源MAC地址,删除所述IP冲突告警表中对应的告警清除时间小于所述第一步进值的源IP地址;以及向所述网管服务器上报地址冲突消失信息,所述地址冲突消失信息中携带被删除的源MAC地址和源IP地址。

5.如权利要求1所述的方法,其特征在于,所述第二网络节点周期性的广播以自身每个虚接口的MAC地址和IP地址为源地址的各ARP报文,具体包括:所述第二网络节点针对自身每个虚接口的MAC地址和IP地址,将该虚接口的MAC地址和IP地址对应的冲突检测时间设置为一个随机值,所述随机值不大于预设的第二初始值;并按照第二设定时间间隔,将该虚接口的MAC地址和IP地址对应的冲突检测时间减少预设的第二步进值;以及当该虚接口的MAC地址和IP地址对应的冲突检测时间小于所述预设的第二步进值时,以该虚接口的MAC地址为源MAC地址、以该虚接口的IP地址为源IP地址生成ARP报文并广播;

所述第二网络节点将该虚接口的MAC地址和IP地址对应的冲突检测时间重置为所述预设的第二初始值,继续按照第二设定时间间隔将该虚接口的MAC地址和IP地址对应的冲突检测时间减少预设的第二步进值,并根据该虚接口的MAC地址和IP地址对应的冲突检测时间广播ARP报文。

6.一种节点地址冲突的检测装置,其特征在于,包括:

接收模块,用于接收第二网络节点广播的地址解析协议ARP报文,其中,所述第二网络节点在广播ARP报文时,周期性的广播以所述第二网络节点自身每个虚接口的介质访问控制MAC地址和网络互联协议IP地址为源地址的各ARP报文,且,所述第二网络节点不同时广播所有的ARP报文;

判断模块,用于判断所述ARP报文的源地址是否与自身的地址冲突;

上报模块,用于当所述判断模块判断冲突时,向网管服务器上报携带所述ARP报文的源地址的冲突信息;

所述判断模块具体用于,判断所述ARP报文的源MAC地址是否落入自身分配的MAC地址范围内,并判断为自身各虚接口分配的IP地址中,是否存在与所述ARP报文的源IP地址相同的IP地址,当至少一个判断结果为是时,确定所述ARP报文的源地址与自身的地址冲突,当判断结果均为否时,确定所述ARP报文的源地址与自身的地址不冲突。

7.如权利要求6所述的装置,其特征在于,所述装置还包括:

调整模块,用于当所述判断模块判断所述ARP报文的源MAC地址落入自身分配的MAC地址范围内,且,判断为自身各虚接口分配的IP地址中,存在与所述ARP报文的源IP地址相同的IP地址时,修改自身分配的MAC地址和IP地址。

8.如权利要求6所述的装置,其特征在于,所述上报模块还用于,当所述判断模块判断所述ARP报文的源MAC地址落入自身分配的MAC地址范围内时,判断自身当前保存的MAC冲突告警表中是否存在所述ARP报文的源MAC地址,若存在则将所述MAC冲突告警表中所述ARP报文的源MAC地址对应的告警清除时间重置为预设的第一初始值,否则,将所述ARP报文的源MAC地址写入所述MAC冲突告警表中,并将写入的所述ARP报文的源MAC地址对应的告警清除时间设置为预设的第一初始值;当所述判断模块判断为自身各虚接口分配的IP地址中存在与所述ARP报文的源IP地址相同的IP地址时,判断自身当前保存的IP冲突告警表中是否存在所述ARP报文的源IP地址,若存在,则将所述IP冲突告警表中所述ARP报文的源IP地址对应的告警清除时间重置为预设的第一初始值,否则,将所述ARP报文的源IP地址写入所述IP冲突告警表中,并将写入的所述ARP报文的源IP地址对应的告警清除时间设置为预设的第一初始值。

9.如权利要求8所述的装置,其特征在于,所述上报模块还用于,按照第一设定时间间隔,将所述MAC冲突告警表中每个源MAC地址对应的告警清除时间减少预设的第一步进值,将所述IP冲突告警表中每个源IP地址对应的告警清除时间减少预设的第一步进值,删除所述MAC冲突告警表中对应的告警清除时间小于所述第一步进值的源MAC地址,删除所述IP冲突告警表中对应的告警清除时间小于所述第一步进值的源IP地址,向所述网管服务器上报地址冲突消失信息,所述地址冲突消失信息中携带被删除的源MAC地址和源IP地址。

10.如权利要求6所述的装置,其特征在于,所述接收模块具体用于,接收所述第二网络节点采用以下方式广播的ARP报文:所述第二网络节点针对自身每个虚接口的MAC地址和IP地址,将该虚接口的MAC地址和IP地址对应的冲突检测时间设置为一个随机值,所述随机值不大于预设的第二初始值;按照第二设定时间间隔,将该虚接口的MAC地址和IP地址对应的冲突检测时间减少预设的第二步进值;当该虚接口的MAC地址和IP地址对应的冲突检测时间小于所述预设的第二步进值时,以该虚接口的MAC地址为源MAC地址、以该虚接口的IP地址为源IP地址生成ARP报文并广播;将该虚接口的MAC地址和IP地址对应的冲突检测时间重置为所述预设的第二初始值,继续按照第二设定时间间隔将该虚接口的MAC地址和IP地址对应的冲突检测时间减少预设的第二步进值,并根据该虚接口的MAC地址和IP地址对应的冲突检测时间广播ARP报文。

说明书 :

一种节点地址冲突的检测方法及装置

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种节点地址冲突的检测方法及装置。

背景技术

[0002] 随着网络技术的发展,工业以太网已经广泛应用在各种大、中型网络建设中。在网络数据报文的传输过程中,经常会由于网络节点的网络互联协议(Internet Protocol,IP)地址或者介质访问控制(Medium Access Control,MAC)地址发生冲突而导致报文传输出现异常。
[0003] 然而,在现有技术中,检测各网络节点的地址是否冲突时,主要针对的是各网络节点的IP地址,而并未对各网络节点的MAC地址是否冲突进行检测,因此,现有技术中检测节点地址冲突的准确性较低,影响了报文的正常传输。
[0004] 另外,现有技术中在检测各网络节点的地址是否冲突时,一般采用的是各网络节点周期性的相互发送携带自身IP地址的报文的方法进行检测的。具体的,对于一个网络节点来说,其可能存在多个IP地址,当预设的周期到来时,该网络节点则以一个报文携带一个IP地址的方式,生成各报文,并同时发送生成的各报文。现有技术中这种同时发送所有报文的方式会造成网络泛洪,导致网络传输压力较大。

发明内容

[0005] 本发明实施例提供一种节点地址冲突的检测方法及装置,用以解决现有技术中检测节点地址冲突的准确性较低、网络传输压力较大的问题。
[0006] 本发明实施例提供一种节点地址冲突的检测方法,包括:
[0007] 第一网络节点接收第二网络节点广播的地址解析协议ARP报文,其中,所述第二网络节点在广播ARP报文时,周期性的广播以所述第二网络节点自身每个虚接口的介质访问控制MAC地址和网络互联协议IP地址为源地址的各ARP报文,且,所述第二网络节点不同时广播所有的ARP报文;
[0008] 所述第一网络节点判断所述ARP报文的源地址是否与所述第一网络节点自身的地址冲突;
[0009] 若冲突,则向网管服务器上报携带所述ARP报文的源地址的地址冲突信息。
[0010] 本发明实施例提供一种节点地址冲突的检测装置,包括:
[0011] 接收模块,用于接收第二网络节点广播的地址解析协议ARP报文,其中,所述第二网络节点在广播ARP报文时,周期性的广播以所述第二网络节点自身每个虚接口的介质访问控制MAC地址和网络互联协议IP地址为源地址的各ARP报文,且,所述第二网络节点不同时广播所有的ARP报文;
[0012] 判断模块,用于判断所述ARP报文的源地址是否与自身的地址冲突;
[0013] 上报模块,用于当所述判断模块判断冲突时,向网管服务器上报携带所述ARP报文的源地址的冲突信息。
[0014] 本发明实施例提供一种节点地址冲突的检测方法及装置,该方法第二网络节点周期性的广播以自身每个MAC地址和IP地址为源地址的各ARP报文,并且第二网络节点不同时广播所有的ARP报文,第一网络节点接收第二网络节点广播的ARP报文,并判断该ARP报文的源地址是否与第一网络节点自身的地址冲突,若冲突,则向网管服务器上报携带该ARP报文的源地址的地址冲突信息。通过上述方法,第一网络节点除了可以检测自身的IP地址是否与第二网络节点的IP地址冲突以外,还可以检测自身的MAC地址是否与第二网络节点的MAC地址冲突,因此提高了检测节点地址冲突的准确性,并且第二网络节点不同时广播所有的ARP报文,可以避免造成网络泛洪,减小网络传输压力。

附图说明

[0015] 图1为本发明实施例提供的节点地址冲突的检测过程;
[0016] 图2为本发明实施例提供的第一网络节点广播ARP报文的过程;
[0017] 图3为本发明实施例提供的节点地址冲突的检测装置结构示意图。

具体实施方式

[0018] 本发明实施例提供一种节点地址冲突的检测方法及装置,该方法第二网络节点周期性的广播以自身每个MAC地址和IP地址为源地址的各ARP报文,并且第二网络节点不同时广播所有的ARP报文,第一网络节点接收第二网络节点广播的ARP报文,并判断该ARP报文的源地址是否与第一网络节点自身的地址冲突,若冲突,则向网管服务器上报携带该ARP报文的源地址的地址冲突信息。通过上述方法,第一网络节点除了可以检测自身的IP地址是否与第二网络节点的IP地址冲突以外,还可以检测自身的MAC地址是否与第二网络节点的MAC地址冲突,因此提高了检测节点地址冲突的准确性,并且第二网络节点不同时广播所有的ARP报文,可以避免造成网络泛洪,减小网络传输压力。
[0019] 下面结合说明书附图,对本发明实施例进行详细描述。
[0020] 图1为本发明实施例提供的节点地址冲突的检测过程,具体包括以下步骤:
[0021] S101:第一网络节点接收第二网络节点广播的地址解析协议(Address Resolution Protocol,ARP)报文。
[0022] 在本发明实施例中,以太网中的各网络节点基于ARP协议来检测网络中与自身的地址冲突的其他网络节点,各网络节点均向网络中的其他网络节点广播ARP报文。其中,本发明实施例中所述的网络节点包括以太网中任何形式的网络节点,如终端、交换机等。
[0023] 以网络中的第一网络节点和第二网络节点为例进行说明。
[0024] 第二网络节点向网络中的其他网络节点(包括第一网络节点)广播ARP报文,其中,第二网络节点在广播ARP报文时,周期性的广播以该第二网络节点自身每个虚接口的MAC地址和IP地址为源地址的各ARP报文,且,第二网络节点不同时广播所有的ARP报文。第一网络节点则接收第二网络节点广播的该ARP报文。
[0025] 例如,第二网络节点在周期性的广播两个源地址不同(源MAC地址或源IP地址不同)的ARP报文时,可以在第一个周期中的第1秒广播第一个ARP报文,在第一个周期中的第2秒广播第二个ARP报文,然后,在第二个周期中的第1秒再次广播第一个ARP报文,在第二个周期中的第2秒再次广播第二个ARP报文,以此类推。这样,对于这两个源地址不同的ARP报文来说,每个ARP报文都是周期性被广播的,但每个ARP报文的广播时刻却不相同。
[0026] S102:判断该ARP报文的源地址是否与该第一网络节点自身的地址冲突,若是,则执行步骤S103,否则,执行步骤S104。
[0027] 其中,该ARP报文的源地址包括源IP地址和源MAC地址。由于该ARP报文是由第二网络节点广播的ARP报文,因此,该ARP报文的源IP地址就是第二网络节点为自身的某个虚接口分配的IP地址,该ARP报文的源MAC地址即为第二网络节点为自身相应的虚接口分配的MAC地址。
[0028] 第一网络节点接收到该ARP报文后,则可以根据该ARP报文的源地址(该ARP报文的源IP地址和源MAC地址),以及该第一网络节点为自身各虚接口分配的IP地址和MAC地址,判断该ARP报文的源地址是否与第一网络节点自身的地址冲突。
[0029] 在实际应用中,一个网络节点中存在多个虚接口,该网络节点会为自身的每个虚接口均分配一个MAC地址,再为自身的每个虚接口分配至少一个IP地址。例如,一个网络节点中存在31个虚接口,该网络节点可为这31个虚接口各分配一个MAC地址,再为每个虚接口分配64个IP地址,其中,对于为一个虚接口而言,在为该虚接口分配的64个IP地址中,1个IP地址可作为该虚接口的主用IP地址,另外63个IP地址可作为该虚接口的备用IP地址。
[0030] 因此,第一网络节点判断该ARP报文的源地址是否与该第一网络节点自身的地址冲突的方法具体可以为:第一网络节点判断该ARP报文的源MAC地址是否落入该第一网络节点自身分配的MAC地址范围内,并判断第一网络节点为自身各虚接口分配的IP地址中,是否存在与该ARP报文的源IP地址相同的IP地址,当上述至少一个判断结果为是时,确定该ARP报文的源地址与该第一网络节点自身的地址冲突,当上述判断结果均为否时,确定该ARP报文的源地址与该第一网络节点自身的地址不冲突。
[0031] 也即,第一网络节点接收到第二网络节点广播的ARP报文后,如果确定为自身各虚接口分配的MAC地址中存在至少一个MAC地址与该ARP报文的源MAC地址相同,则确定该ARP报文的源MAC地址与第一网络节点自身的MAC地址冲突,进而可以确定第二网络节点的MAC地址(也即该ARP报文的源MAC地址)与第一网络节点的MAC地址冲突。如果第一网络节点确定为自身各虚接口分配的IP地址中存在至少一个IP地址与该ARP报文的源IP地址相同,则确定该ARP报文的源IP地址与第一网络节点自身的IP地址冲突,进而可以确定第二网络节点的IP地址(也即该ARP报文的源IP地址)与第一网络节点的IP地址冲突。
[0032] 当第一网络节点确定自身的MAC地址与该ARP报文的源MAC地址发生冲突,或者自身的IP地址与该ARP报文的源IP地址发生冲突时,即可确定该ARP报文的源地址与第一网络节点自身的地址冲突。当第一网络节点确定自身的MAC地址与该ARP报文的源MAC地址不冲突,且,自身的IP地址与该ARP报文的地址也不冲突时,即可确定该ARP报文的源地址与第一网络节点自身的地址不冲突。
[0033] 较佳的,由于在实际应用中网络节点为其虚接口分配了MAC地址后,该虚接口可能并未启用,这样,即使其他网络节点的MAC地址与该未启用的虚接口的MAC地址冲突,也不会影响报文的正常传输,因此,第一网络节点通过上述方法判断自身的MAC地址是否与接收到的ARP报文的源MAC地址冲突时,还可以判断自身为各已启用的虚接口分配的MAC地址中是否存在至少一个MAC地址与该ARP报文的源MAC地址相同,若存在,则确定自身的MAC地址与该ARP报文的源MAC地址冲突,否则,确定自身的MAC地址与该ARP报文的源MAC地址不冲突。
[0034] S103:向网管服务器上报携带该ARP报文的源地址的地址冲突信息。
[0035] 当第一网络节点通过上述步骤S102确定该ARP报文的源地址与该第一网络节点自身的地址冲突(包括上述MAC地址冲突以及IP地址冲突中的至少一种)时,向网管服务器上报携带该ARP报文的源地址的地址冲突信息,使网管服务器获知冲突的MAC地址或IP地址,网管服务器则可以根据预设的冲突解决策略对MAC地址或IP地址冲突的第一网络节点和第二网络节点进行处理,例如修改第一网络节点或者第二网络节点中发生冲突的MAC地址或IP地址等。
[0036] 较佳的,当第一网络节点确定自身的MAC地址与该ARP报文的源MAC地址发生冲突,或者自身的IP地址与该ARP报文的源IP地址发生冲突时,获取发送该ARP报文的第二网络节点的优先级信息,判断所述发送该ARP报文的第二网络节点的优先级是否高于自身的优先级,当判断结果为是时,第一网络节点修改自身与该ARP报文的源MAC地址或IP地址发生冲突的MAC地址或IP地址,并向网管服务器上报携带该ARP报文的源地址的地址冲突信息,其中,该地址冲突信息中包括自身修改后的源MAC地址或IP地址,通知网管服务器自身已经完成对与该ARP报文的源地址发生冲突的自身地址的修改;当判断结果为否时,第一网络节点保持自身与该ARP报文的源MAC地址发生冲突的MAC地址不变,或者第一网络节点保持自身与该ARP报文的IP地址发生冲突的IP地址不变,并向网管服务器上报携带该ARP报文的源地址的地址冲突信息,通知网管服务器对所述发送该ARP报文的第二网络节点对发生冲突的MAC地址或IP地址进行管理。具体的,第一网络节点上报的地址冲突信息可以是TRAP消息,即,向网管服务器上报携带该ARP报文的源地址的TRAP消息。当第一网络节点判断该ARP报文的源MAC地址与第一网络节点自身的MAC地址冲突时,可生成携带冲突的MAC地址以及该ARP报文的源IP地址(即第二网络节点的IP地址)的TRAP消息,并上报给网管服务器,以方便网管服务器根据该ARP报文的源IP地址追踪第二网络节点。当第一网络节点判断该ARP报文的源IP地址与第一网络节点自身的IP地址冲突时,可生成携带冲突的IP地址以及该ARP报文的源MAC地址(即第二网络节点的MAC地址)的TRAP消息,并上报给网管服务器,以方便网管服务器根据该ARP报文的源MAC地址追踪第二网络节点。
[0037] 当然,第一网络节点向网管服务器上报地址冲突信息之前,可以先判断自身的地址冲突信息上报功能是否使能,若使能,则上报,若未使能,则不上报,用户可根据实际需要自行配置第一网络节点的地址冲突信息上报功能是否使能。
[0038] S104:根据该ARP报文添加ARP表项,并返回步骤S101。
[0039] 当第一网络节点通过上述步骤S102确定该ARP报文的源地址与该第一网络节点自身的地址不冲突(未发生MAC地址冲突,也未发生IP地址冲突)时,则第一网络节点可按照现行的ARP协议标准对该ARP报文进行处理,根据该ARP报文条件ARP表项,并继续接收第二网络节点广播的ARP报文,判断接收到的ARP报文的源地址是否与第一网络节点自身的地址冲突,也即,返回步骤S101。
[0040] 通过上述方法,对于以太网中的任意一个网络节点来说,该网络节点除了可以检测是否自身是否与其他网络节点发生IP地址冲突之外,还可以检测自身是否与其他网络节点发生MAC地址冲突,因此有效的提高了检测节点地址冲突的准确性,根据检测冲突的结果对网络节点进行处理后,则可以保证后续报文在以太网中的正常传输。并且,第二网络节点在周期性的广播各源地址不同的ARP报文时,不同时广播所有的ARP报文,可以避免造成网络泛洪,减小网络的传输压力。
[0041] 在本发明实施例中,当第一网络节点判断自身的MAC地址与接收到的ARP报文的源MAC地址冲突,且自身的IP地址与该ARP报文的源IP地址也冲突时,则说明当前网络存在严重的错误,此时,即使第一网络节点要将携带该ARP报文的源地址(包括该ARP报文的源MAC地址和源IP地址)的地址冲突信息上报给网管服务器,该地址冲突信息也很有可能会由于网络中存在的严重错误而不能被正常发送到网管服务器中,因此,此时第一网络节点可以自行对自身的MAC地址和IP地址进行修改。
[0042] 具体的,在图1所示的步骤S102中,如果第一网络节点判断接收到的ARP报文的源MAC地址落入该第一网络节点自身分配的MAC地址范围内(MAC地址冲突),且,判断第一网络节点为自身各虚接口分配的IP地址中,存在与该ARP报文的源IP地址相同的IP地址(IP地址冲突),则该第一网络节点修改自身分配的MAC地址和IP地址。例如,第一网络节点在修改自身分配的MAC地址时,可以将为接收到该ARP报文的虚接口分配的MAC地址修改为其他虚接口的MAC地址。考虑到一般MAC地址是第一网络节点在出厂时就已经设定好的,其并不容易修改,因此,当同时发生MAC地址冲突和IP地址冲突时,第一网络节点也可以只修改自身的IP地址。
[0043] 在本发明实施例中,第一网络节点还可以针对MAC地址冲突和IP地址冲突分别维护相应的冲突告警表,用以对MAC地址冲突和IP地址冲突的冲突时间进行监控。
[0044] 具体的,第一网络节点可以以基于SNMP协议的结构体链表的形式维护一张MAC冲突告警表和一张IP冲突告警表。
[0045] 当第一网络节点通过上述步骤S102判断该ARP报文的源MAC地址落入该第一网络节点自身分配的MAC地址范围内时,通过步骤S103向网管服务器上报地址冲突信息之前,还可以判断自身当前保存的MAC冲突告警表中是否存在该ARP报文的源MAC地址,若存在,则将该MAC冲突告警表中该ARP报文的源MAC地址对应的告警清除时间重置为预设的第一初始值,否则,将该ARP报文的源MAC地址写入该MAC冲突告警表中,并将写入的该ARP报文的源MAC地址对应的告警清除时间设置为预设的第一初始值。
[0046] 当第一网络节点通过上述步骤S102判断为自身各虚接口分配的IP地址中存在与该ARP报文的源IP地址相同的IP地址时,通过步骤S103向网管服务器上报地址冲突信息之前,还可以判断自身当前保存的IP冲突告警表中是否存在该ARP报文的源IP地址,若存在,则将该IP冲突告警表中该ARP报文的源IP地址对应的告警清除时间重置为预设的第一初始值,否则,将该ARP报文的源IP地址写入该IP冲突告警表中,并将写入的该ARP报文的源IP地址对应的告警清除时间设置为预设的第一初始值。
[0047] 另外,对于上述MAC冲突告警表中每个源MAC地址以及上述IP冲突告警表中每个源IP地址,第一网络节点可以按照第一设定时间间隔,将该MAC冲突告警表中每个源MAC地址对应的告警清除时间减少预设的第一步进值,将该IP冲突告警表中每个源IP地址对应的告警清除时间减少预设的第一步进值,并删除该MAC冲突告警表中对应的告警清除时间小于该第一步进值的源MAC地址,删除该IP冲突告警表中对应的告警清除时间小于该第一步进值的源IP地址,最后向网管服务器上报地址冲突消失信息,该地址冲突消失信息中携带被删除的源MAC地址和源IP地址,以通知网管服务器相应的MAC地址冲突和/或IP地址冲突已消失。
[0048] 上述预设的第一初始值、第一设定时间间隔、预设的第一步进值均可以根据需要进行设定。
[0049] 例如,假设将预设的第一初始值为800秒,第一设定时间间隔为10秒,预设的第一步进值为10秒,则当第一网络节点判断自身的MAC地址与接收到的ARP报文的源MAC地址冲突时,先判断自身当前保存的MAC冲突告警表中是否存在该ARP报文的源MAC地址,若存在,则将该MAC冲突告警表中该ARP报文的源MAC地址对应的告警清除时间重置为800秒,若不存在,则将该ARP报文的源MAC地址写入该MAC冲突告警表中,并将写入的该ARP报文的源MAC地址对应的告警清除时间设置为800秒。对于MAC冲突报警表,第一网络节点则每10秒将该MAC冲突告警表中每个源MAC地址对应的告警清除时间减少10秒,并删除MAC冲突告警表中对应的告警清除时间小于10秒的源MAC地址,删除后则向网管服务器上报地址冲突消失信息。
[0050] 上例是以对MAC冲突告警表进行处理为例说明的,对IP冲突告警表的处理方式类似于上述对MAC冲突告警表的处理方式,这里就不再一一赘述。
[0051] 当然,本发明实施例中第一网络节点还可以根据上述MAC冲突告警表和IP冲突告警表生成相应的告警日志,以通过多种方式来通知用户第一网络节点与第二网络节点发生地址冲突。具体的,上述通过TRAP消息主动通知网管服务器地址冲突的方法,可以使网管人员在使用网管服务器进行其他操作时也能及时发现网络中的节点地址发生冲突,提高了发现节点地址冲突的时效性。发现节点地址冲突后,网管人员则可使用该网管服务器通过基于SNMP协议的MIB-BROWER建立与相应网络节点的通信连接,获取并查看该网络节点本地保存的MAC冲突告警表和IP冲突告警表,以确定发生地址冲突的类型、时间等信息。另外,通过网络节点本地保存的告警日志,则可以使网管人员直接通过该网络节点(无需通过网管服务器)确定发生地址冲突的类型、时间等信息。
[0052] 在本发明实施例中,第二网络节点在广播ARP报文时,可以分别针对自身每个虚接口的MAC地址和IP地址,周期性的以该虚接口的MAC地址为源MAC地址、以该虚接口的IP地址为源IP地址生成ARP报文并广播。例如,假设广播ARP报文的周期设定为300秒,则第二网络节点可以分别针对自身每个虚接口的MAC地址和IP地址,每300秒广播一次以该虚接口的MAC地址为源MAC地址、以该虚接口的IP地址为源IP地址的ARP报文。
[0053] 但是,对于一个网络节点而言,该网络节点中往往存在多个虚接口,对于一个虚接口而言,可为该虚接口分配一个MAC地址和多个IP地址。假设该网络节点中存在31个虚接口,分别为每个虚接口分配一个MAC地址和64个IP地址,则该网络节点每300秒(广播ARP报文的周期)就要广播31x64个ARP报文,因此,如果这31x64个ARP报文均在一个300秒周期的结束时同时发送,就会造成网络泛洪,导致网络传输压力增大。
[0054] 因此,为了避免第二网络节点在广播ARP报文时造成网络泛洪,降低网络传输压力,第二网络节点可通过图2所示的过程广播ARP报文,如图2所示。图2为本发明实施例提供的第二网络节点广播ARP报文的过程,具体包括以下步骤:
[0055] S201:第二网络节点针对自身每个虚接口的MAC地址和IP地址,将该虚接口的MAC地址和IP地址对应的冲突检测时间设置为一个随机值,该随机值不大于预设的第二初始值。
[0056] 例如,对于第二网络节点的一个虚接口,第二网络节点为该虚接口分配了一个MAC地址,记为MAC1,为该虚接口分配了两个IP地址,记为IP1和IP2,假设预设的第二初始值为300秒,则:
[0057] 第二网络节点针对[MAC1,IP1],将[MAC1,IP1]对应的冲突检测时间设置为一个不大于300秒的随机值,例如为146;
[0058] 第二网络节点针对[MAC1,IP2],将[MAC1,IP2]对应的冲突检测时间也设置为一个不大于300秒的随机值,例如为58。
[0059] S202:按照第二设定时间间隔,将该虚接口的MAC地址和IP地址对应的冲突检测时间减少预设的第二步进值。
[0060] 继续沿用上例,假设第二设定时间间隔为10秒,预设的第二步进值也为10秒,则第二网络节点每隔10秒,分别将[MAC1,IP1]和[MAC1,IP2]对应的冲突检测时间减少10秒。如,在第10秒时,将[MAC1,IP1]对应的冲突检测时间146减少10秒,减少后是136秒,将[MAC1,IP2]对应的冲突检测时间58减少10秒,减少后是48秒。以此类推,在第50秒时,[MAC1,IP1]对应的冲突检测时间为96秒,[MAC1,IP2]对应的冲突检测时间为8秒。
[0061] S203:当该虚接口的MAC地址和IP地址对应的冲突检测时间小于预设的第二步进值时,以该虚接口的MAC地址为源MAC地址、以该虚接口的IP地址为源IP地址生成ARP报文并广播。
[0062] 继续沿用上例,由于在第50秒时,[MAC1,IP2]对应的冲突检测时间为8秒,小于第二步进值10秒,因此,第二网络节点发送以MAC1为源MAC地址、以IP2为源IP地址的ARP报文并广播。
[0063] 在第140秒时,[MAC1,IP1]对应的冲突检测时间为6秒,小于第二步进值10秒,因此,第二网络节点发送以MAC1为源MAC地址、以IP1为源IP地址的ARP报文并广播。
[0064] 第一网络节点接收到第二网络节点广播的ARP报文后,则可以基于如图1所示的方法,判断该第二网络节点广播的ARP报文的源地址是否与第一网络节点自身的地址冲突,并根据判断结果进行相应处理。
[0065] S204:第二网络节点将该虚接口的MAC地址和IP地址对应的冲突检测时间重置为预设的第二初始值,返回步骤S202。
[0066] 继续沿用上例,在第50秒时,第二网络节点以MAC1为源MAC地址、以IP2为源IP地址的ARP报文并广播,因此,第二网络节点将[MAC1,IP2]对应的冲突检测时间重置为预设的第二初始值,即300秒,并继续每10秒(第二设定时间间隔)将[MAC1,IP2]对应的冲突检测时间减少10秒(预设的第二步进值)。
[0067] 类似的,在第140秒时,第二网络节点以MAC1为源MAC地址、以IP1为源IP地址的ARP报文并广播,因此,第二网络节点将[MAC1,IP1]对应的冲突检测时间也重置为预设的第二初始值,即300秒,并继续每10秒(第二设定时间间隔)将[MAC1,IP1]对应的冲突检测时间减少10秒(预设的第二步进值)。
[0068] 这样,第二网络节点实际上仍是以预设的第二初始值(300秒)为周期,进行周期性发送ARP报文的,但是,如上例所述,以将[MAC1,IP1]和[MAC1,IP2]对应的冲突检测时间设置为随机值的时刻为起始时刻,则在第50秒发送了[MAC1,IP2]对应的ARP报文,第140秒发送了[MAC1,IP1]对应的ARP报文,在第350秒发送类[MAC1,IP2]对应的ARP报文,第440秒发送了[MAC1,IP1]对应的ARP报文。可见,第二网络节点实际上是在每个300秒周期的第50秒发送[MAC1,IP2]对应的ARP报文,在每个300秒周期的第140秒发送[MAC1,IP1]对应的ARP报文,也就是将发送[MAC1,IP1]对应的ARP报文和[MAC1,IP2]对应的ARP报文的发送时间离散到了300秒周期中的不同时刻,因此,采用上述方法周期性的广播ARP报文,就可以避免造成网络泛洪,降低网络传输压力。
[0069] 另外,由于在本发明实施例中,各网络节点均要向网络中的其他网络节点广播ARP报文,因此第一网络节点一方面接收由第二网络节点广播的ARP报文,并采用如图1所示的方法进行地址冲突检测,另一方面也要采用如图2所示的方法广播以该第一网络节点的MAC地址和IP地址为源地址的ARP报文,第二网络节点接收到由第一网络节点广播的ARP报文后,也可采用如图1所示的方法进行地址冲突检测,也即,在本发明实施例提供的上述如图1和图2所示的过程中,第一网络节点和第二网络节点可互换,这里就不再一一赘述。
[0070] 以上是本发明实施例提供的节点地址冲突的检测方法,基于同样的发明思路,本发明实施例还提供一种节点地址冲突的检测装置,如图3所示。图3为本发明实施例提供的节点地址冲突的检测装置结构示意图,具体包括:
[0071] 接收模块301,用于接收第二网络节点广播的地址解析协议ARP报文,其中,所述第二网络节点在广播ARP报文时,周期性的广播以所述第二网络节点自身每个虚接口的介质访问控制MAC地址和网络互联协议IP地址为源地址的各ARP报文,且,所述第二网络节点不同时广播所有的ARP报文;
[0072] 判断模块302,用于判断所述ARP报文的源地址是否与自身的地址冲突;
[0073] 上报模块303,用于当所述判断模块302判断冲突时,向网管服务器上报携带所述ARP报文的源地址的冲突信息。
[0074] 所述判断模块302具体用于,判断所述ARP报文的源MAC地址是否落入自身分配的MAC地址范围内,并判断为自身各虚接口分配的IP地址中,是否存在与所述ARP报文的源IP地址相同的IP地址,当上述至少一个判断结果为是时,确定所述ARP报文的源地址与自身的地址冲突,当上述判断结果均为否时,确定所述ARP报文的源地址与自身的地址不冲突。
[0075] 所述装置还包括:
[0076] 调整模块304,用于当所述判断模块302判断所述ARP报文的源MAC地址落入自身分配的MAC地址范围内,且,判断为自身各虚接口分配的IP地址中,存在与所述ARP报文的源IP地址相同的IP地址时,修改自身分配的MAC地址和IP地址。
[0077] 所述上报模块303还用于,当所述判断模块302判断所述ARP报文的源MAC地址落入自身分配的MAC地址范围内时,判断自身当前保存的MAC冲突告警表中是否存在所述ARP报文的源MAC地址,若存在则将所述MAC冲突告警表中所述ARP报文的源MAC地址对应的告警清除时间重置为预设的第一初始值,否则,将所述ARP报文的源MAC地址写入所述MAC冲突告警表中,并将写入的所述ARP报文的源MAC地址对应的告警清除时间设置为预设的第一初始值;当所述判断模块302判断为自身各虚接口分配的IP地址中存在与所述ARP报文的源IP地址相同的IP地址时,判断自身当前保存的IP冲突告警表中是否存在所述ARP报文的源IP地址,若存在,则将所述IP冲突告警表中所述ARP报文的源IP地址对应的告警清除时间重置为预设的第一初始值,否则,将所述ARP报文的源IP地址写入所述IP冲突告警表中,并将写入的所述ARP报文的源IP地址对应的告警清除时间设置为预设的第一初始值。
[0078] 所述上报模块303还用于,按照第一设定时间间隔,将所述MAC冲突告警表中每个源MAC地址对应的告警清除时间减少预设的第一步进值,将所述IP冲突告警表中每个源IP地址对应的告警清除时间减少预设的第一步进值,删除所述MAC冲突告警表中对应的告警清除时间小于所述第一步进值的源MAC地址,删除所述IP冲突告警表中对应的告警清除时间小于所述第一步进值的源IP地址,向所述网管服务器上报地址冲突消失信息,所述地址冲突消失信息中携带被删除的源MAC地址和源IP地址。
[0079] 所述接收模块301具体用于,接收所述第二网络节点采用以下方式广播的ARP报文:所述第二网络节点针对自身每个虚接口的MAC地址和IP地址,将该虚接口的MAC地址和IP地址对应的冲突检测时间设置为一个随机值,所述随机值不大于预设的第二初始值;按照第二设定时间间隔,将该虚接口的MAC地址和IP地址对应的冲突检测时间减少预设的第二步进值;当该虚接口的MAC地址和IP地址对应的冲突检测时间小于所述预设的第二步进值时,以该虚接口的MAC地址为源MAC地址、以该虚接口的IP地址为源IP地址生成ARP报文并广播;将该虚接口的MAC地址和IP地址对应的冲突检测时间重置为所述预设的第二初始值,继续按照第二设定时间间隔将该虚接口的MAC地址和IP地址对应的冲突检测时间减少预设的第二步进值,并根据该虚接口的MAC地址和IP地址对应的冲突检测时间广播ARP报文。
[0080] 当然,上述网络节点的结构中还可包括广播模块(图3中未示出),用于针对自身每个虚接口的MAC地址和IP地址,将该虚接口的MAC地址和IP地址对应的冲突检测时间设置为一个随机值,所述随机值不大于预设的第二初始值;按照第二设定时间间隔,将该虚接口的MAC地址和IP地址对应的冲突检测时间减少预设的第二步进值;当该虚接口的MAC地址和IP地址对应的冲突检测时间小于所述预设的第二步进值时,以该虚接口的MAC地址为源MAC地址、以该虚接口的IP地址为源IP地址生成ARP报文并广播,使所述第二网络节点接收到所述广播模块广播的ARP报文后,判断所述广播模块广播的ARP报文的源地址是否与第二网络节点自身的地址冲突,并根据判断结果进行相应处理;将该虚接口的MAC地址和IP地址对应的冲突检测时间重置为所述预设的第二初始值,继续按照第二设定时间间隔将该虚接口的MAC地址和IP地址对应的冲突检测时间减少预设的第二步进值,并根据该虚接口的MAC地址和IP地址对应的冲突检测时间广播ARP报文。
[0081] 具体的上述如图3所示的检测装置可以位于网络节点中。
[0082] 本发明实施例提供一种节点地址冲突的检测方法及装置,该方法第二网络节点周期性的广播以自身每个MAC地址和IP地址为源地址的各ARP报文,并且第二网络节点不同时广播所有的ARP报文,第一网络节点接收第二网络节点广播的ARP报文,并判断该ARP报文的源地址是否与第一网络节点自身的地址冲突,若冲突,则向网管服务器上报携带该ARP报文的源地址的地址冲突信息。通过上述方法,第一网络节点除了可以检测自身的IP地址是否与第二网络节点的IP地址冲突以外,还可以检测自身的MAC地址是否与第二网络节点的MAC地址冲突,因此提高了检测节点地址冲突的准确性,并且第二网络节点不同时广播所有的ARP报文,可以避免造成网络泛洪,减小网络传输压力。
[0083] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0084] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0085] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0086] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0087] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0088] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。