于 华
铁路数据通信网各站点采用双套接入路由器承载系统业务时,用户侧设备通常采用双上行静态路由协议方式接入数据通信网。由于接入路由器与用户侧设备间可能存在非直连链路,两侧端口无法准确感知链路变化情况,导致链路切换不生效,存在安全隐患。而通过双向转发检测(BFD) 技术可有效解决非直连链路倒换端口无法感知链路变化的问题,为此将BFD 技术应用于铁路数据通信网。
上海局铁路数据通信网车站节点设置2 台接入路由器,自治域内采用IGP(内部网关协议)承载网络拓扑路由信息,BGP(边界网关协议) 承载用户路由信息,MP-BGP(多协议外部网关协议)承载VPN(虚拟专用网络)用户路由信息。业务系统,如综合视频(IVMS)、动环监控(PESS)、会议电视(VCS)、电力远动(SCADA) 等,采用静态路由协议接入。为保证重要业务的安全运行,以防端口故障,将业务接入设备(CE) 与2 台接入节点路由器(PE)互联。双上行静态路由组网方式见图1。
图1 双上行静态路由组网方式
CE 与PE 互联协议采用静态路由协议,主用设置在PE01,备用设置在PE02。在PE 路由器上配置CE 侧业务地址静态路由,指向CE 互联下一跳,同时在BGP 里引入静态路由进行业务地址发布。在CE 三层交换机上配置2 条静态缺省路由,分别指向PE01 和PE02,并将指向PE02 的优先级修改为备用保护通道级别。
工作正常时,PE01 方向为主用链路;当CE与PE01 间互联链路中断后,CE 设备主用静态缺省路由失效,备用静态缺省路由生效,从而将流量切换至备用链路。
实际组网中,各业务系统CE 交换机与PE 路由器连接,距离近的,使用尾纤网线直连;距离远的,需经传输SDH 以太网接口连接。在铁路数据通信网络中,一般通过硬件检测信号(如SDH 告警)检测链路硬件故障;无法通过硬件信号检测故障的,通常采用动态路由协议的Hello 报文机制来探测邻居关系。但上述方法存在如下问题:①并不是所有的介质都能够提供硬件检测;②路由协议的Hello 报文机制检测到故障所需时间比较长(超过1 s),当数据传输速率达到吉比特速率级时,在检测时间内大量数据将会丢失;③在小型三层网络中,如果没有部署路由协议,则无法使用路由协议的Hello 报文机制来检测故障。这对路由器间互联互通定位故障造成困难。
相对于动态路由,静态路由比较简单,仅仅是依靠检测下一跳链路层协议是否使能(UP)来进行判断,判断其是否生效的标志是下一跳出接口链路层协议是否处于使能状态,但无法准确判断链路的真实情况。对于POS/E1 等ppp(点对点)链路,需要ppp 协议正常,链路层协议才能使能;对于以太网、Vlan-if 等广播型网络接口,只要端口物理状态使能(UP),则链路层协议自然使能(UP)。
传输通道中断业务流量无法正常切换如图2 所示。当PE01 侧链路断开时,CE 侧物理连接正常,物理接口使能,Vlan-if 接口使能,链路检测路由不会发生变化,数据流量继续从互联接口发送数据,导致业务故障。因此需要使用BFD 技术作为链路检测的辅助手段,以提高静态路由对链路质量的判断。
BFD 用于快速检测系统之间的通信故障,并在出现故障时通知上层应用。在铁路通信数据网中,通常与ISIS(链路状态路由协议)进行联动,监控路由器设备间互联链路,以保证在路由器设备互联链路中断后,ISIS 路由能快速收敛,减少故障时间内的数据丢包。在日常维护过程中,当有互联链路断开时,网管会先看到BFD 断开告警,随后立即出现ISIS 邻居中断的告警。这就是BFD 检测快速、联动的体现。
图2 传输通道中断业务流量无法正常切换
BFD 既可以与ISIS、OSPF(开放式最短路径优先协议)、BGP 等动态路由协议联动,主动建立会话;也可以手动建立静态BFD 会话后,与静态路由进行绑定,达到联动的效果。
BFD 快速检测有会话报文、联动物理接口状态2 种检测模式。
1) BFD 会话报文检测模式。BFD 会话建立后,会周期性地快速发送BFD 控制报文,该报文是UDP(用户数据报协议)报文,端口号3784。如果某个系统连续3 个报文都没有接收到,就认为此BFD 会话的状态是关闭(down)。认为该双向转发路径发生了故障,将通知被服务的相关层应用进行相应的处理。BFD 检测建立会话机制见图3。
图3 BFD 检测建立会话机制
2)BFD 联动物理接口状态检测模式。BFD 会话在配置绑定相应端口后,会主动检测物理端口物理层告警,如R_LOS 等。当监控到物理端口物理层告警异常导致接口down 时,BFD 则会立即关闭会话,不再等待3 次报文的响应,使链路检测更加快速高效。
在PE 至CE 间传输链路中断情况下,为解决静态双上行路由无法自动切换的问题,将BFD 检测技术与静态路由进行联动,为每条静态路由绑定一个BFD 会话。当BFD 会话检测到链路及端口异常时,将BFD 会话状态变为down,并通知静态路由管理模块此静态路由失效,从而避免流量的引入,实现路由的快速切换。
BFD 会话可进行参数自动协商和手动指定。
1)手动参数指定方式用于不同厂家设备对接。
bfdbfdbind peer-ip 10.0.12.2 source-ip 10.0.12.1 *创建一个名为bfd 的静态bfd 会话,邻居地址为10.0.12.2 源地址为10.0.12.1*
discriminator local 200 *创建本端标识符,对端要配置与此标识符一致*
discriminator remote 100 *创建对端标识符,与对端设备配置标识符一致*
min-tx-interval 100 *配置探测报文发送时间间隔,单位ms*
min-rx-interval 100 *配置探测报文接收时间间隔,单位ms*
detect-multiplier 3 *配置会话检测倍数,默认是3*
commit*提交配置,使配置生效*
2)参数自动协商方式用于同厂家设备对接。
bfdbfdbind peer-ip 10.0.12.2 source-ip 10.0.12.1 auto *配置自动BFD 参数协商:用于同厂家设备对接*
commit
ip route-static 0.0.0.0 0.0.0.0 10.0.12.2 track bfd-session bfd*配置BFD 与静态路由联动*
通过抓包软件对报文进行分析,可以看到设备两端实时发送BFD 探测报文,以对链路进行探测。
BFD 需要PE 和CE 两侧相互配合工作,需要CE 侧设备支持且进行对应的参数配置。在铁路通信数据网中,CE 设备类型多样,存在无法进行BFD配置的情况,这时需要使用BFD 的单臂回声检测。
当对端CE 设备不支持BFD 检测功能时,为了能够快速检测这2 台设备之间的故障,可以在支持BFD 功能的设备上,创建单臂回声(Echo)功能的BFD 会话;不支持BFD 功能的设备接收到BFD Echo 报文后,则直接将其环回,从而实现转发链路的连通性检测功能。BFD单臂回声检测见图4。
图4 BFD 单臂回声检测
配置方式:bfd bind peer-ip 10.1.1.1 interface gigabitethernet1/0/0 one-arm-echo
上海局管辖范围广,路由器与客户侧CE 设备间使用传输通道承载的情况较多,针对现网数据通信网络以三层静态路由双上行接入时的应用情况,结合现场维护应用场景进行分析研究,当采用三层静态路由双上行接入业务时,需在路由器与客户侧CE 设备两端开启BFD 检测功能,以便快速检测链路质量,达到冗余保护目的。