具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种BFD会话建立方法,如图1所示,该方法具体包括:
步骤101、为一条指定转发等价类FEC对应的标签转发路径进行双向转发检测BFD会话配置。
其中,BFD会话用于检测标签转发路径是否正常。
标签转发路径可以是MPLS网络中的一条物理路径。例如,如图10所示,图中的R1至R5均为MPLS网络中的路由器,路由器R1经路由器R2至路由器R3的物理路径(下文简称路径1)为一条标签转发路径,而路由器R1经路由器R4和路由器R5至路由器R3的物理路径(下文简称路径2)为另一条标签转发路径。
在本实施例中,配置BFD会话的FEC,可以为需要在标签转发路径上转发的现有用户业务对应的FEC,也可以是源转发设备的管理员配置的专用FEC,该确定的FEC可以称为指定FEC,为该指定FEC配置BFD信息以形成BFD会话。
需要说明的是,本申请实施例中,在BFD会话创建之前,源转发设备首先需要启动路径探测,获取该指定FEC对应的源转发设备和目的转发设备之间的转发路径上每个节点的节点信息,记录该FEC的所有节点信息。之后,为该指定FEC形成BFD会话,以便于该BFD会话用于检测该指定FEC对应的标签转发路径是否正常。鉴于路径探测为现有技术,此处不再赘述。
在本申请实施例中,上述标签转发路径上诸如路由器、交换机等每个节点的节点信息,可以记录在该FEC对应的标签转发表中。
需要说明的是,标签转发路径可以是单向的,也可以是双向的。例如,如图10所示,在从路由器R1至R3的方向上,路径1的路径信息包括R1:接口1、R2:接口1的IP地址和R3:接口1的IP地址,而在从R3至R1方向上,路径1的路径信息包括R3:接口1、R2:接口2的IP地址和R1:接口1的IP地址。
步骤102、利用BFD会话配置形成一个BFD会话。
其中,利用BFD会话配置形成一个BFD会话是指,转发设备利用步骤101中所获取的该标签转发路径的路径信息,生成对应的BFD会话配置,并形成BFD会话。
步骤103、若在所述标签转发路径上转发的其他FEC要配置BFD,则建立所述BFD会话与其他FEC中每条FEC的关联关系。
在本实施例中,在与所述BFD会话建立关联关系的其他每条FEC的判断方法是:判断其他FEC的标签转发路径上各节点的节点信息是否与指定FEC的转发路径节点信息完全相同。其中,每条FEC的路径节点信息可以记录在标签转发表中,例如,上述路径1中所有节点的节点信息。
在本实施例中,建立BFD会话与其他FEC中的每条FEC之间的关联关系可以包括:将BFD会话标识与其他FEC的标识对应记录在BFD会话与其他FEC对应关系表中。
在本实施例的另一种实施方式中,建立BFD会话与其他FEC中的每条FEC之间的关联关系可以包括:在为标签转发路径配置的BFD会话信息中,记录其他FEC中的每条FEC的标识等信息。
步骤104、利用BFD会话,检测标签转发路径是否正常。
本领域已知,BFD会话用于检测标签转发路径是否正常。因此,可以利用所配置的BFD会话来检测标签转发路径是否正常。
本申请实施例提供的BFD会话建立方法,能够为同一条标签转发路径配置唯一的BFD会话,并分别建立BFD会话与要在标签转发路径上转发的其他FEC中的每条FEC之间的关联关系。利用所述BFD会话检测标签转发路径是否正常。。由此可见,在本申请实施例中,发起一次BFD会话,即可为同一条标签转发路径上转发的所有其他FEC完成标签转发路径的检测任务,避免了为同一条标签转发路径上转发的其他FEC中的每条FEC分别配置并发起BFD会话,以检测其他FEC中的每条FEC的标签转发路径是否正常的情况,减少了诸如路由器等转发设备需要转发的BFD报文数量,提高了转发设备检测标签转发路径的效率,从而提高在标签转发路径上转发FEC的效率。
并且,在本申请实施例中,同一标签转发路径上转发的所有其他FEC,能够复用同一个BFD会话完成标签转发路径的检测,可以节省转发设备的BFD会话资源,使得转发设备能够将有限的BFD会话用于更多的标签转发路径的检测,进一步提高了转发设备检测标签转发路径的效率,从而提高在标签转发路径上转发FEC的效率。
为了及时回收记录BFD会话与至少一种FEC中的每种FEC之间的关联关系的存储资源,以及减少利用BFD会话检测标签转发路径时收发的BFD报文占用的处理资源,在如图1所示的实现方式的基础上,还可以实现为如图2所示的实现方式,在执行步骤103、104,若其他FEC每条FEC与所述BFD会话建立关联关系,且BFD会话检测到标签转发路径正常之后,还可以执行步骤201:
步骤201、若要删除在标签转发路径上转发其他FEC中的部分或全部FEC,则解除BFD会话与要删除的FEC的关联关系。
在本实施例的一种实施方式中,解除BFD会话与要删除的FEC之间的关联关系包括:在BFD会话与FEC对应关系表中,删除要删除的每条FEC的标识。
在本实施例的另一种实施方式中,解除BFD会话与要删除的FEC之间的关联关系可以包括:在为标签转发路径配置的BFD会话信息中,删除要删除的FEC的标识。
需要说明的是,解除BFD会话与要删除的FEC之间的关联关系,并不一定同时删除了为标签转发路径配置的BFD会话,这是因为:除要删除的FEC之外,标签转发路径上还有其他需要转发的FEC。
在本申请实施例中,删除不再需要在标签转发路径上转发的FEC与BFD会话之间的对应关系,还可以节省存储空间,以便用来存储需要转发的新FEC与BFD会话的对应关系,提高了在标签转发路径上转发FEC的效率。
在如图1或图2所示的实现方式的基础上,以图1为例,还可以实现为如图3所示的实现方式。如图3所示,在执行步骤101为一条指定转发等价类FEC对应的标签转发路径进行双向转发检测BFD会话配置之后,且在执行步骤102利用BFD会话配置形成一个BFD会话之前,还可以执行步骤301:
步骤301、获取指定FEC对应的标签转发路径上每个节点的节点信息,记录指定FEC的所有节点信息。
其中,在BFD会话创建之前,源转发设备首先需要启动路径探测,获取该指定FEC对应的源转发设备和目的转发设备之间的转发路径上每个节点的节点信息,记录该FEC的所有节点信息。鉴于路径探测为现有技术,此处不再赘述。
以及,步骤103中的若要在标签转发路径上转发其他FEC的判断方法,具体包括步骤302和步骤303:
步骤302、获取其他FEC的标签转发路径上每个节点的节点信息,记录其他FEC中每条FEC的所有节点信息。
其中,获取其他FEC对应的标签转发路径上每个节点的节点信息,是指启动路径探测以获取其他FEC对应的标签转发路径上每个节点的节点信息。该路径探测方法与步骤301中获取该标签转发路径的路径信息的方法相同,此处不再赘述。
步骤303、确定记录的其他FEC中每条FEC的所有节点信息与记录的指定FEC的所有节点信息是否相同。
本实施例提供的BFD会话建立方法,若确定指定FEC对应的标签转发路径上每个节点的节点信息,与其他FEC对应的标签转发路径上每个节点的节点信息相同,则不再为其他FEC创建BFD会话,而是利用为指定FEC创建的BFD会话为所有其他FEC完成路径检测任务,可以避免为其他FEC中的每条FEC分别创建独立的BFD会话,节省了BFD会话资源,提高了转发设备检测标签转发路径是否正常的效率,从而提高了在标签转发路径上转发FEC的效率。
在如图1或图2所示的实现方式的基础上,以图1为例,还可以实现为如图4所示的实现方式。如图4所示,标签转发路径包括主路径和备用路径。
在实际应用中,主路径可以是源转发设备和目的转发设备之间最短的那条路径,也可以是源转发设备和目的转发设备之间最快的那条路径。例如,如图10所示,可以将路径1作为源转发设备R1与目的转发设备R3之间的主路径,同时将路径2作为源转发设备R1与目的转发设备R3之间的备用路径。为主路径配置的BFD会话,用于检测主路径是否正常,为备用路径配置的BFD会话,用于检测备用路径是否正常。主路径和备用路径拥有各自的指定FEC。
如图4所示,步骤101为一条指定FEC对应的标签转发路径进行双向转发检测BFD会话配置,具体可以实现为步骤401:
步骤401、为主路径进行BFD会话配置。
以及,步骤104利用BFD会话,检测所述标签转发路径是否正常,具体可以实现为步骤402~404:
步骤402、利用BFD会话,检测主路径是否正常。
步骤403、若BFD会话检测到主路径异常,则解除BFD会话与其他FEC中的每条FEC的关联关系。
在本实施例的一种实施方式中,解除BFD会话与其他FEC中的每条FEC的关联关系包括:在BFD会话与其他FEC对应关系表中,删除其他FEC中的每条FEC标识。
在本实施例的另一种实施方式中,解除BFD会话与其他FEC中的每条FEC的关联关系可以包括:在BFD会话信息中,删除其他FEC中的每条FEC的标识。
步骤404、若BFD会话检测到备用路径正常,则将其他FEC对应的标签转发路径从主路径切换到备用路径。
在实际应用中,为了保证网络通信的可靠性,对于关键转发设备之间的标签转发路径,往往设置一条主路径,以及至少一条备用路径,并且同时为主路径和备用路径分别配置对应的BFD会话;当检测到主路径故障,且至少一条备用路径正常时,可以将原本在主路径上转发的FEC切换到备用路径上转发,以便快速恢复网络通信。
在本实施例的一种实施方式中,可以将主路径上转发的全部FEC,切换到检测结果正常的一条备用路径上转发。
在本实施例的另一种实施方式中,也可以将主路径上转发的FEC分为至少两个集合,并将每个集合中的FEC,分别切换到检测结果正常的一条备用路径上转发。
在如图4所示的实现方式的基础上,还可以实现为如图5所示的实现方式,在执行步骤404若备用路径被检测到正常,则将其他FEC对应的标签转发路径从主路径切换到备用路径之后,还可以执行步骤501:
步骤501、针对指定FEC定期进行主路径可达性探测,若探测到主路径恢复正常,则为对应主路径的指定FEC重建BFD会话,并重建BFD会话与主路径上其他FEC中每条FEC的关联关系。
在本实施例的一种实施方式中,可以在执行步骤404之后立即启动路径探测,周期性地探测主路径是否恢复正常。当检测到主路径恢复正常时,立即执行步骤501,将切换至备用路径上转发的其他FEC快速回切至主路径上转发,以便利用主路径转发效率较高的优点,提高转发FEC的效率。
在本实施例的另一种实施方式中,步骤501也可以在BFD会话检测到备用路径故障之后进行,本申请实施例对此不作限定。
在本实施例的一种实施方式中,若主路径因发生了不可自我恢复的故障等原因而长时间处于故障状态时,可以不再检测主路径是否正常,以减少为检测主路径是否正常收发的路径探测报文的数量,节省了为检测主路径是否正常收发的路径探测报文所占用的转发设备的系统资源,以便转发设备将更多的系统资源用于在备用路径上转发FEC,提高了在备用路径上转发FEC的效率。
其中,判断主路径是否发生了不可自我恢复的故障的方法包括:发送了路径探测报文、但未能在一个较长的指定时限内接收到目的转发设备发送的响应报文。例如,源转发设备和目的转发设备之间的节点设备发生了掉电、死机等故障,或者源转发设备和目的转发设备之间的物理连线断开。
在本实施例的另一种实施方式中,主路径上发生了可以恢复的故障,例如,在主路径上短时间内出现的业务量超出了主路径的处理能力而造成的网络拥塞,由于主路径并没有出现诸如死机、掉电、断线等物理故障,随着业务量恢复正常,这类故障通常可以自行恢复。
在实际应用中,主路径往往是路径最短或速度最快的路径,转发效率较高,因此当主路径恢复正常时,可以将切换到备用路径上转发的其他FEC,回切到主路径上转发,以提高转发FEC的效率。
如图6所示,本申请实施例提供了一种BFD会话建立装置60,用于实现如图1所示的方法流程,其中,装置60包括:
配置单元61,用于为一条指定转发等价类FEC的标签转发路径进行双向转发检测BFD会话配置;
BFD会话单元62,用于利用BFD会话配置形成一个BFD会话;
建立单元63,用于若要在标签转发路径上转发其他FEC,则建立BFD与其他FEC中每条FEC之间的关联关系;
BFD会话单元62,还用于利用BFD会话,检测标签转发路径是否正常。
本申请实施例提供的BFD会话建立装置60,为一条指定FEC对应的标签转发路径配置唯一的BFD会话,并分别建立BFD会话与要在标签转发路径上转发的其他FEC中的每条FEC之间的关联关系。利用所述BFD会话检测标签转发路径是否正常。由此可见,在本申请实施例中,发起一次BFD会话,即可为在该指定FEC对应的标签转发路径上转发的所有其他FEC完成路径检测任务,避免了为同一条标签转发路径上转发的每条FEC分别配置并发起对应的BFD会话,以检测每条FEC对应的标签转发路径是否正常的情况,减少了诸如路由器等转发设备需要转发的BFD报文数量,提高了转发设备检测标签转发路径的效率,从而提高在标签转发路径上转发FEC的效率。
并且,在本申请实施例中,同一标签转发路径上转发的所有FEC,能够复用同一个BFD会话完成标签转发路径的检测,可以节省转发设备的BFD会话资源,使得转发设备能够将有限的BFD会话用于更多的标签转发路径的检测,进一步提高了转发设备检测标签转发路径的效率,从而提高在标签转发路径上转发FEC的效率。
在如图6所示的实现方式的基础上,还可以实现为如图6所示的另一种实现方式,用于实现如图2所示的方法流程。如图6所示,建立单元63,还用于若要删除在标签转发路径上转发其他FEC中的部分或全部FEC,则删除BFD会话与要删除的FEC的关联关系。
在如图6所示的实现方式的基础上,还可以实现为如图7所示的实现方式,用于实现如图3所示的方法流程。如图7所示,装置60还包括路径探测单元64,
路径探测单元64,用于在配置单元61为一条指定FEC的标签转发路径进行BFD会话配置之后,在BFD会话单元62利用BFD会话配置形成一个BFD会话之前,获取指定FEC对应的标签转发路径上每个节点的节点信息,记录指定FEC的所有节点信息;
路径探测单元64,还用于获取其他FEC在标签转发路径上每个节点的节点信息,记录其他FEC中每条FEC的所有节点信息;
建立单元63,还用于确定记录的其他FEC中每条FEC的所有节点信息与记录的指定FEC的所有节点信息是否相同。
在如图7所示的实现方式的基础上,还可以实现为如图8所示的另一种实现方式,用于实现如图4所示的方法流程。如图8所示,标签转发路径包括主路径和备用路径,装置60还包括切换单元65,
建立单元63,还用于在BFD会话单元检测到主路径异常后,解除BFD会话与其他FEC中的每条FEC的关联关系;
切换单元65,用于若所述BFD会话单元检测到备用路径正常,则将其他FEC对应的标签转发路径从主路径切换到备用路径。
在如图8所示的实现方式的基础上,还可以实现为如图8所示的另一种实现方式,用于实现如图5所示的方法流程,路径探测单元64,还用于针对指定FEC定期进行主路径可达性探测,若探测到主路径恢复正常,则通知BFD会话单元62;
BFD会话单元62,还用于在检测到主路径恢复正常后,为对应主路径的指定FEC重建BFD会话;
建立单元63,还用于重新建立BFD会话与其他FEC中每条FEC之间的关联关系。
本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序加载到计算机上被计算机执行时,能够使计算机执行执行如图1至图5任意一项所示的方法。
计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、(Radio Frequency,RF)等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请方法流程的计算机程序代码,所述程序设计语言包括诸如Java、Smalltalk、C++等面向对象的程序设计语言,还包括诸如C语言等常规的过程式程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过诸如局域网(Local Area Network,LAN)、广域网(Wide AreaNetwork,WAN)等任意种类的网络连接到用户计算机,或者,可以连接到外部计算机(例如利用互联网服务提供商来通过因特网连接)。
本申请实施例提供了一种转发设备90,如图9所示,其包括处理器91、存储器92和网络接口93,以及连接处理器91、存储器92和网络接口93的总线94,其中
存储器92,用于存储计算机程序指令;
网络接口93,用于在该转发设备90与另一转发设备之间转发数据;
处理器91,用于执行存储器92中存储的计算机程序指令,以实现如图1至图5任意一项所示的方法。
其中,总线94表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry SubversiveAlliance,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
转发设备90典型地包括多种计算机系统可读介质。这些介质可以是任何能够被转发设备90访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器92可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)和/或高速缓存存储器。转发设备90可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储器92可以用于读写不可移动的、非易失性磁介质(图9未显示,通常称为“硬盘驱动器”)。尽管图9中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线94相连。
转发设备90还包括网络接口93,使得该转发设备90能与一个或多个转发设备进行通信。这种通信可以通过网络适配器与一个或者多个网络通信。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。