一、概述
众所周知电力调度、通信数据网是承载电力生产业务的网络,重要性不言而喻,调度数据网要确保关键的实时业务以及非实时业务的顺畅转发;调度数据网由于承载重要生产业务,网络的可靠性要高,这样才能避免对电网运行产生影响,同时要确保调度数据网中承载的实时业务和非实时业务的逻辑隔离,满足电力二次安全防护的规定,以上这几点要求都要依托于组建电力调度、通信数据网的网络设备来实现。
SR系列路由器采用先进的分布式体系架构,提供强大的处理性能,分布式的体系架构又实现了路由引擎和业务引擎硬件分离,确保系统全速运行时业务和控制互不干扰,可以保证实时业务和非实时业务的顺畅转发,同时SR系列路由器又可以提供先进的队列调度、拥塞避免、拥塞管理、流量监管、流量整形、优先级标记等功能,可精确保证实时业务的带宽、时延、抖动和丢包率,满足实时和非实时不同业务等级的“区分服务”的要求.
SR系列路由器采用电信级可靠性设计,各关键部件如主控板、电源、管理总线全部为冗余热备分,实现基于状态的热切换。所有组件支持热插拔;提供热补丁技术,实现软件完全平滑升级;SR系列路由器通过自身高可靠的设计可以保证调度数据网稳定运行;同时SR系列路由器还支持BFD和GR技术,特别是SR88的业务接口板上具有一个专用的OAM链路检测引擎,可以实现真正意义上30ms链路检测机制,通过与各种协议如OSPF/IS-IS/BGP/MPLS LDP/MPLS RSVP-TE等配合,实现20ms链路切换机制,从而保证调度数据网中的实时和非实时业务转发不中断。
通过SR系列自身具有的先进技术,可以确保电力行业各种关键业务的正常运行,可以构建安全、可靠、稳定的电力调度、通信数据网。
二、GR技术应用分析
Graceful Restart简称GR,字面意义是平滑重起,主要实现的能力是在路由协议重起的时候保证数据转发的正常,以保证关键业务不中断。GR技术是属于高可靠性(HA, High Availability)技术的一种。HA是一整套综合技术,主要包括冗余容错、链路保证、节点故障修复及流量工程。
通过部署SR系列路由器具有的GR功能,可以确保电力行业关键的业务在主备引擎倒换时,实现不间断的转发。
随着网络设备普遍采用了控制和转发分离的技术,GR技术就成为了可能。在传统的路由器中控制和转发是由同一个处理器(RP:Route Processor)完成的,这个处理器既通过路由协议发现并维护路由,同时也维护着路由表和转发表。为了提高设备的转发性能和可靠性,中高端设备普遍采用了多RP的结构。负责路由协议等控制模块的处理器一般位于主控板,而负责数据转发的处理器则位于线卡上。这样在主处理器重起的时候才有可能不影响线卡上的数据转发。
基于上面的原因,目前实现GR的设备都需要有以下特征:双主控结构,并且线卡具有自己独立的处理器和内存即设备为分布式转发体系架构。
在没有使用GR的时候,因为各种原因出现的主备切换,都会造成短时间的转发中断,并且在全网造成路由振荡。通过图1可以看到问题所在。
如果R1是自治系统的ASBR,那么会通过BGP引入大量外部路由,当R1发生主备切换时,会造成下面的影响:
所有外部路由丢失,当R1恢复时,再次学到路由,造成网络路由振荡。
在R1的备份主控单元完成路由计算和发布之前,所有通过R1的数据转发中断。
R1的所有邻居需要重新进行路由计算,并改写转发表。
当R1恢复正常时,R1的所有邻居需要重新进行邻居协商和交互,并计算路由,改写转发表。
对于一个大型网络,尤其是电力系统网络,对于这些路由振荡和业务中断是不可容忍的。
而使用GR技术则可以解决全部的问题。在R1与其它邻居建立邻接关系的时候,就会进行能力的协商。这样在R1进行切换的时候,它的邻居会维护邻接关系不变,并保持路由的稳定和正常的转发。除了R1的邻居,网络中的其它设备并不知道R1进行了协议的重起。
SR系列路由器都是采用分布式转发系统架构设备,同时都具有GR对OSPF、BGP等多种协议的支持能力,通过部署GR可以确保业务在设备进行主备倒换的实时,实现业务不中断进行转发,确保电力行业网络和业务系统稳定的运行。
下面就介绍一下GR与各种协议的配合部署方法。
在OSPF协议重启前,GR Restarter与GR Helper协商GR能力。在重启过程中,GR Helper继续宣告与GR Restarter的邻接状态不变。
OSPF协议重启完毕后,GR Restarter会立即向其邻接的GR Helper发送一个OSPF GR信号。这样,OSPF邻居就不会复位与其的邻居关系。在收到其OSPF邻居的响应后,GR Restarter会重新恢复与其的邻居关系列表。
邻居关系重新建立后,GR Restarter与其所有具备GR感知能力的OSPF邻居之间同步数据库,并交换路由信息。交换完成后,GR Restarter根据新的路由转发信息更新路由表和转发表,删除失效的路由,完成OSPF协议收敛。
基于BGP的GR Restarter为了与BGP对等体建立一个BGP会话连接,首先要发送一个包含了GR能力的OPEN消息到对端,BGP对等体收到该消息后,得知发送方已具有GR能力。这样,通过OPEN消息交互GR能力,GR Restarter与其BGP对等体之间协商建立起GR Session连接。如果双方都没有交换GR能力的信息,建立起的会话也就不具备GR能力。
BGP协议重启时,会话项将丢失,此时具备GR感知能力的BGP对等体会将所有与该GR Restarter有关的路由进行失效标记。但在GR Time内仍按照这些路由进行报文转发,这样确保了在从BGP对等体重新收集路由信息的过程中没有报文丢失。
BGP协议重启完毕后,GR Restarter会重新与BGP对等体建立GR Session连接,同时发送新的GR消息以宣告其重启完毕。此时两个BGP对等体间进行路由信息交换。交换完成后,GR Restarter根据新的路由转发信息更新路由表和转发表,删除失效的路由,完成BGP协议收敛。
网络设备一个越来越重要的特征是,要求对相邻系统之间通信故障进行快速检测,这样在出现故障时可以更快的建立起替代通道或倒换到其他链路。目前,一些硬件如SDH等可以提供这个功能,但是对于很多硬件或者软件无法提供这个功能,比如以太网。还有一些无法实现路径检测,比如转发引擎或者接口等,无法实现端到端的检测,在目前的网络一般采用慢Hello机制,尤其在路由协议中,在没有硬件帮助下,检测时间会很长(例如:OSPF需要2秒的检测时间,ISIS需要1秒的检测时间),这对某些应用来说时间太长了,当数据速率到吉比特时,缺陷感应时间长代表着大量数据的丢失。
双向转发检测BFD(Bidirectional Forwarding Detection)就是为了解决现有检测机制不足而产生的,BFD是一套用来实现快速检测的国际标准协议,提供一种轻负荷、持续时间短的检测。在很多方面,BFD与那些著名的路由协议的邻居检测部分相似。一对系统在它们之间的所建立会话的通道上周期性的发送检测报文,如果某个系统在足够长的时间内没有收到对端的检测报文,则认为在这条到相邻系统的双向通道的某个部分发生了故障。BFD的主要功能是提供一种通用的方式来检测两台设备之间的链路状态,通过配置BFD可以设置毫秒级的时间检测间隔,从而可以在毫秒级的时间内快速检测到邻居故障,应用可以依靠BFD的快速检测来提供快速的流量切换。
通过部署SR系列路由器具有的BFD技术,可以在电力行业的调度、通信数据网中大大提高各类故障的检测时间,从而提高网络的收敛时间,确保各项关键业务正常运行,满足电力行业生产业务对网络的可靠要求。
BFD在两台网络设备上建立会话,用来检测网络设备间的双向转发路径,为上层应用服务。BFD本身并没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息以建立会话。会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到BFD报文则认为该双向转发路径发生了故障,通知被服务的上层应用进行相应的处理。下面以OSPF与BFD联动为例,简单介绍会话工作流程。
图1 BFD会话建立流程图
(1) OSPF通过自己的Hello机制发现邻居并建立连接;
(2) OSPF在建立了新的邻居关系后,将邻居信息(包括目的地址和源地址等)通告给BFD;
(3) BFD根据收到的邻居信息建立会话。
图2 BFD故障发现处理流程图
(1) 被检测链路出现故障;
(2) BFD检测到链路故障,拆除BFD邻居会话;
(3) BFD通知本地OSPF进程BFD邻居不可达;
(4) 本地OSPF进程中断OSPF邻居关系
BFD有两种操作模式:异步模式和查询模式。目前Comware只支持异步模式。在此模式下,会话两端周期性地发送BFD控制报文,根据是否能收到对端的BFD控制报文来检测会话状态。
另外,Comware还支持回声功能。回声功能启动后,会话的一端周期性地发送BFD Echo报文,对端不对此报文进行处理,而只将此报文转发回发送端。根据发送端是否能收到BFD Echo报文来检测会话状态。
BFD会话的两端可能是在直连网段(即IP报文的一跳),也可能是在不同网段。回声功能只可以检测直连网段故障,即BFD Echo报文是单跳发送;而BFD控制报文可以检测直连网段和非直连网段的故障,即BFD控制报文可以是单跳或多跳发送。
一般的路由器采用主控板CPU集中式处理BFD链路故障检测功能,BFD协议报文由主控板CPU产生、发送和处理。由于BFD需要在路由器之间建立会话,当会话数量较多或者路由器业务量较大时,主控CPU占用率高,BFD协议报文可能没有被及时产生或发送,将最终导致对端设备检测错误、网络无故振荡。因此,集中时BFD无法在全业务的情况下实现真正的30ms故障检测。
SR系列路由器采用分布式OAM体系构架,各业务板均提供专门的引擎专用于实现链路故障检测相关功能,使链路故障检测业务从主控CPU分离出来,既减轻主控CPU的负荷、保障主控CPU的安全性,同时提高链路故障检测业务的处理性能,在全业务环境下真正实现30ms故障检测,提供电信级的可靠性。
SR系列路由器是业界支持BFD关联协议最丰富的设备之一,关联的协议包括:BFD for OSPF / IS-IS / BGP / RIP / Static Route / RSVP / VPLS PW / VRRP。下面介绍一下BFD与电力行业调度、通信数据网中常用的协议如何进行联动。
OSPF使用BFD来进行快速故障检测时,OSPF可以通过HELLO报文动态发现邻居,OSPF将邻居地址通知BFD就开始建立会话。BFD会话建立前处于DOWN状态,此时BFD控制报文以不小于1秒的时间间隔周期发送以减少控制报文流量,直到会话建立以后才会以协商的时间间隔发送以实现快速检测。进行配置 BFD之前,需要配置OSPF功能。
BGP协议的keepalive时间间隔缺省为60秒,最小可以配置为1秒,这样holdtime缺省为180秒,最小为3秒,邻居关系的检测比较慢,对于报文收发速度快的接口会导致大量报文丢失。通过BFD进行快速故障检测,可以实现邻居关系的快速检测,加快协议收敛。配置BFD之前,需要使能BGP功能。
MPLS运行BFD用于邻居快速检测,检测到的故障一般用于主备转发表项的切换:即MPLS将业务从主路径切换到备份路径上。在使能BFD提供的链路检测功能之前,需要配置MPLS相关功能。
总之,SR系列路由器无从性能、组网能力、可靠性,还是安全防护以扩展能力都可以满足调度数据网对设备的要求,可以构建安全、可靠、稳定的电力调度、通信数据网。