本发明涉及到了通信领域,具体涉及了端口自环检测和保护。
背景技术:
当设备的一个端口接入到一个未知配置的拓扑网络时,如果接入的这个网络存在环路,那么这个端口就可能受到未知配置的拓扑网络的风暴冲击。现有数据通讯行业的链路协议,如:stp,rstp,mstp,erps等协议都无法计算出一个未知配置的拓扑网络是否存在环路。无论是stp,rstp,mstp还是erps等标准的公有协议,都必须和对端设备进行对称的协议运算,比如说本设备运行stp那么对端也必须是运行stp,本端运行erps对端也必须允许erps,即使是双方运行的协议是一致的,他们也必须在配置上保持相应的协调。
因此当本设备的一个端口接入到一个未知配置的拓扑网络,上述的公有协议都无法解决来自一个未知网络对本端口通信安全的威胁。
技术实现要素:
为了解决上述问题,本发明的目的在于提供一种可以进行自环检测和保护探测端口的方法。
本发明的另一个目的在于提供一种避免频繁的网络震荡的端口自环检测和保护的方法。
为了实现上述目的,本发明的技术方案如下。
本发明提供一种端口自环检测和保护的方法,其特征在于,该方法包括以下步骤:
步骤1、从设备开启端口环路自检的探测端口向需检测网络发送一个带有自身特征的arp报文,同时该设备开启收包线程;设备的收包线程只有一个,该设备的每个端口可以配置一个属性,这个属性决定该端口是否处理环路检测报文—arp报文。
步骤2、当设备任一端口收到arp报文时,检测该arp报文是否为探测端口所发的arp报文,如果该arp报文为探测端口所发的arp报文则进入步骤3,如果不是则不处理;
步骤3、对收到arp报文的端口进行block操作,并检测收到arp报文的端口是否为探测端口,如果收到arp报文的端口为探测端口则进入步骤4,如果不是则不处理;
步骤4、探测端口停止发送arp报文。
上述使用arp报文作为协议探测包的原因:a、arp报文不需要申请新的协议类型,和特殊的地址。b、arp报文完全符合ethernet标准,能够在一个局域网内转发,在转发规则上和普通的业务报文一样,因此arp报文能从环路转发回来。c、arp不像其他的bpdu报文,会影响其他协议的转发。上述步骤,可以实现进行自环检测和保护探测端口,可以避免接入到该设备的未知网络的风暴数据对该设备造成的影响。
在步骤3中,该arp报文为探测端口所发的arp报文即为该收到arp报文的端口接入的网络存在环路,而当发现收到arp报文的端口接入的网络存在环路,只会根据收到arp报文的端口所处的vlan来block,并不会关闭收到arp报文的端口,也就是说这收到arp报文的端口的其他vlan如果没有环路,则可以继续转发arp报文。
进一步的,在步骤3中,在被block操作的端口中启用设置好时间的端口恢复定时器,端口恢复定时器设置的时间到期后恢复端口为forward状态。
进一步的,所述端口恢复定时器设置恢复端口为forward状态的时间为30分钟。
进一步的,所述探测端口启用设置有发送时间的报文定时器,所述探测端口每隔一个发送时间就会向需检测网络发送一个带有自身特征的arp报文。而在步骤3中探测端口停止发送arp报文,即为报文定时器停止。
进一步的,所述探测端口启用设置有发送时间为15秒的报文定时器,所述探测端口每隔15秒就会向需检测网络发送一个带有自身特征的arp报文。
进一步的,当被恢复为forward状态的端口为探测端口时,重新启动探测端口的报文定时器,所述探测端口并重新发送arp报文;当被恢复为forward状态的端口不为探测端口时,对于该端口不进行下一步处理。上述设置可以保证在网络正常运行的情况下,避免频繁的网络震荡。
进一步的,所述arp报文所带有的自身特征包括有设备鉴定符、vlanid和端口id,所述设备鉴定符即为加密的密码。如果设备鉴定符,报文的vlanid和端口id和收到arp报文的端口的配置匹配,说明该收到arp报文的端口接入的网络存在环路,根据vlan对接收到arp报文的端口进行block操作,阻止该端口在该vlan继续转发arp报文。设备鉴定符是加密的密码,可保证协议不会被恶意攻击。
进一步的,该设备的端口(包括探测端口)为物理端口或聚合链路接口。
进一步的,所述arp报文为由arp请求报文格式改造;在该arp报文中使用了arp请求报文格式的二层信息(目的mac地址和ethertype),且在该arp报文尾部16个全0的字节用来封装环路自检的信息。
本发明的有益效果在于,与现有技术相比,在本发明中,上述使用arp报文作为协议探测包的原因:a、arp报文不需要申请新的协议类型,和特殊的地址。b、arp报文完全符合ethernet标准,能够在一个局域网内转发,在转发规则上和普通的业务报文一样,因此arp报文能从环路转发回来。c、arp不像其他的bpdu报文,会影响其他协议的转发。上述步骤,可以实现进行自环检测和保护探测端口,可以避免接入到该设备的未知网络的风暴数据对该设备造成的影响。
附图说明
图1是本发明一种端口自环检测和保护的方法的流程框图。
图2是本发明一种端口自环检测和保护的方法的一个端口接入网络的示意图。
图3是本发明一种端口自环检测和保护的方法的复数个端口接入网络的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为实现上述目的,本发明的技术方案如下。
本发明提供一种端口自环检测和保护的方法,其特征在于,该方法包括以下步骤:
步骤1、从设备开启端口环路自检的探测端口向需检测网络发送一个带有自身特征的arp报文,同时该设备开启收包线程;
步骤2、当设备任一端口收到arp报文时,检测该arp报文是否为探测端口所发的arp报文,如果该arp报文为探测端口所发的arp报文则进入步骤3,如果不是则不处理;
步骤3、对收到arp报文的端口进行block操作,并检测收到arp报文的端口是否为探测端口,如果收到arp报文的端口为探测端口则进入步骤4,如果不是则不处理;
步骤4、探测端口停止发送arp报文。
进一步的,在步骤3中,在被block操作的端口中启用设置好时间的端口恢复定时器,端口恢复定时器设置的时间到期后恢复端口为forward状态。
进一步的,所述端口恢复定时器设置恢复端口为forward状态的时间为30分钟。
进一步的,所述探测端口启用设置有发送时间的报文定时器,所述探测端口每隔一个发送时间就会向需检测网络发送一个带有自身特征的arp报文。
进一步的,所述探测端口启用设置有发送时间为15秒的报文定时器,所述探测端口每隔15秒就会向需检测网络发送一个带有自身特征的arp报文。
进一步的,当被恢复为forward状态的端口为探测端口时,重新启动探测端口的报文定时器,所述探测端口并重新发送arp报文;当被恢复为forward状态的端口不为探测端口时,对于该端口不进行下一步处理。
进一步的,所述arp报文所带有的自身特征包括有设备鉴定符、vlanid和端口id,所述设备鉴定符即为加密的密码。
进一步的,该设备的端口(包括探测端口)为物理端口或聚合链路接口。
进一步的,所述arp报文为由arp请求报文格式改造;在该arp报文中使用了arp请求报文格式的二层信息(目的mac地址和ethertype),且在该arp报文尾部16个全0的字节用来封装环路自检的信息。
说明书附图的图1中,所述报文即为arp报文,所述接收端口即为收到arp报文的端口,所述探测报文即为arp报文,所述停止发送探测报文定时器,即为停止发送arp报文和停止报文定时器,所述启动恢复定时器即为端口恢复定时器。
如下则为本发明中apr报文的格式和内容的实施例。
正常的arp请求报文格式和内容
destinationmac(6):0xffffffffffff
sourcemac(6):发送设备出接口mac地址
vlantag(4):发送报文的vlan标记
ethertype(2):0x0806
hardwaretype(2):0x01
protocoltype(2):0x0800
hardwaresize(1):0x06
protocolsize(1):0x04
opcode(1):0x01
sendermac(6):发送者mac地址
senderip(4):发送接口的ip地址
targetmac(6):0x000000000000
targetip(4):请求的arp的ip地址
后面有18个0结尾。
改造后的arp报文
destinationmac(6):0xffffffffffff
sourcemac(6):发送设备出接口mac地址
vlantag(4):发送报文的vlan标记
ethertype(2):0x0806
hardwaretype(2):0x01
protocoltype(2):0x0800
hardwaresize(1):0x06
protocolsize(1):0x04
opcode(1):0x01
sendermac(6):0x000000000000
senderip(4):0.0.0.0
targetmac(6):0.0.0.0
targetip(4):0.0.0.0
deviceid(8):加密后的设备标识符
vlanid(4):发送端口的vlanid
interfaceid(4):发送端口的端口id或者聚合口id。
在本发明中只是利用arp报文的二层特性,其三层特性会因为senderip和targetip(4)都为0而被协议栈在协议层丢弃。
下述为名词说明:
arp:addressresolutionprotocol
vlan:virtuallocalareanetwork
聚合链路接口:静态聚合链路和动态聚合链路
block:阻塞业务报文的转发功能
forward:允许业务报文的转发功能。
本发明的有益效果在于,与现有技术相比,在本发明中,上述使用arp报文作为协议探测包的原因:a、arp报文不需要申请新的协议类型,和特殊的地址。b、arp报文完全符合ethernet标准,能够在一个局域网内转发,在转发规则上和普通的业务报文一样,因此arp报文能从环路转发回来。c、arp不像其他的bpdu报文,会影响其他协议的转发。上述步骤,可以实现进行自环检测和保护探测端口,可以避免接入到该设备的未知网络的风暴数据对该设备造成的影响。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。