当心跳出现问题时,及时进行协议状态切换,感知到网络变化
心跳是网络通信中的一种数据,特殊点在于定时发送,形似心跳而得名。一般来说,当客户端连接到服务端之后,为了确保了解到连接的状态真实性,或者为了防止某些网络在长时间没有数据传输时自动断开,服务端也会定时的发送一条数据。心跳技术在网络世界里发挥了巨大作用,每个网络动态协议都会用到心跳,利用心跳检测确保状态机的状态,当心跳出现问题时,及时进行协议状态切换,感知到网络变化。当然,心跳检测的作用不仅仅在于此,本文将展开进行详细讨论。
心跳检测在数据中心网络里应用非常广泛。首先,几乎所有的动态协议都离不开心跳检测,比如:OSPF动态路由协议要使用心跳检测来维持邻居关系,当连续几个心跳间隔时间收不到对端邻居发过来的Hello报文时,OSPF邻居状态就要进行切换;STP环网协议要使用心跳检测来维护端口角色关系,当因环路通过STP协议将部分端口阻塞时,当连续收不到STPBPDU报文时,STP协议会将阻塞端口放开,还有DLDP、BGP、VRRP等等,只要有状态机的协议都需要用到心跳检测。其次,在数据中心网络层面,采用心跳对网络转发状态进行监控。比如:在整个网络中部署PING工具,或者通过网管软件对所有网络设备可达性进行检测。这些心跳检测多是通过周期性地发送PING或者Tracert报文判断网络可达性,如果发现不可达执行相应的动作,或是网络切换,或是业务层面的切换甚至是数据中心之间的切换。有时也可以用TCP报文或者UDP报文进行检测,虽然心跳检测报文内容不同,目的都一样,就是为了及时发现网络异常,执行相应的应对策略。第三,在网络设备内部为了维持一些功能的正常也使用了心跳检测,通过心跳检测判断设备内部功能运行状态。比如:堆叠环境中采用的MAD检测,这个MAD协议通过与BFD、LACP、ARP动态协议联动,达到监控堆叠环境正常与否的目的,这些动态协议会通过心跳检测维持相应的邻居状态,MAD协议也通过这些心跳检测实现堆叠环境的监控;在框式的交换机或路由器中,在板卡之间也通过周期性的发送心跳检测,判断板卡是否在位,当发现板卡没有回应时,就要考虑将板卡进行隔离,以便及时消除板卡故障对业务造成的长时间影响,类似的心跳检测应用还有很多。由此可见,心跳检测在网络设备内部和网络中使用都非常广泛,是一种使用频率最高的最为实用的技术。
心跳检测技术很简单,这也是其使用最为广泛的原因。心跳检测的构成元素有几个:通过定时器确定发包间隔,根据定时器周期性发送心跳报文。根据协议特点确定检测超时的时长,即在超时时间内没有收到心跳检测报文,即认为状态发生变化。简单讲就是发包间隔和发包次数,再利用心跳报文完成检测。在实际应用中,不同协议和应用对时间的要求有不同要求,这就使得不同协议使用心跳检测的发包间隔和次数并不同,有些协议心跳间隔达到毫秒级,而有的协议心跳间隔有分钟级,有的协议心跳连续发送三个报文即认为超时,而有的协议心跳要连续发送十几个才认为超时。很多时候发包间隔和发包次数都是可以手工调整,要根据实际网络情况,配置适合自己网络的数值,这时往往需要丰富的网络经验,采用将参数设置适当,这对于网络稳定性非常关键。比如:在一个复杂的网络环境中,将OSPF的Hello心跳设置为1秒发送一次,3秒超时也许就不是一个合适参数,这样当网络稍有动荡时,OSPF就会发生震荡,引起路由的震荡,对业务造成影响,此时可以适当将OSPF的心跳时间调长,提升OSPF协议稳定性。另外,心跳检测使用的定时器的精度也影响到检测的准确性,一般网络设备采用的都是软件定时器,这个定时器是通过设备内部的时钟主频计算得来的,这个时间精度是有误差的,一般的网络设备运行一年的时间偏差可能达到十几个小时,这样依赖时钟的定时器就会有误差,从而影响到心跳超时的判断,在设定心跳检测超时时间时也要考虑这个因素,以免心跳监测出现误判。心跳检测在发现异常时直到状态发生变化时需要时间,这个时间长短虽然是可以设置的,但如果设置的过短容易引起误判。而且,即便再短,实际上网络已经出现了异常,比如STP心跳检测发现环路已经消除,需要将阻塞端口放开,这个需要超时时间,在这段时间内网络业务是有影响的,所以在心跳检测超时时间还未到的这段时间里,网络业务是会受到影响的,所以心跳检测是一种有损技术,影响的大小与超时设置有关。
心跳检测技术简单实用,在传统的数据中心网络中已经使用的极其频繁和广泛,心跳检测技术也是实现数据中心容灾备份的基础。利用心跳检测作为数据中心容灾监控手段,当出现超时的时候,及时启动容灾的备份数据中心运行,避免业务长时间受到影响。快速、准确,高效的心跳检测是实现数据中心网络稳定的基础,通过对不同物理位置故障节点的检测并采取有效的措施,以保障数据中心的正常运作与用户业务的连续性。随着云计算、大数据、虚拟化的应用,数据中心网络也变得异常复杂,通过简单心跳检测判断有时过于武断,出错的可能性增大,所以新一代数据中心心跳检测技术也引入了神经网络、模拟综合判断等方法,利用这些新技术综合判断,增加心跳检测判断的准确性。
编辑:Harris