发明内容
本发明提供一种通过BFD检测LSP时传输BFD报文的方法和设备,使得Egress节点不需要创建对应的BFD会话,Egress节点并不感知Ingress节点相应的BFD报文,仅对BFD报文进行转发,有效提高了BFD会话利用率。
为了达到上述目的,本发明实施例提供一种通过双向转发检测BFD检测标签交换路径LSP时传输BFD报文的方法,应用于包括入Ingress节点和出Egress节点的网络中,所述Ingress节点和所述Egress节点之间存在至少一个网络设备,该方法包括以下步骤:
在所述Ingress节点需要对LSP进行BFD检测时,所述Ingress节点在需要向Egress节点发送的BFD报文中添加所述LSP对应的标签,且所述BFD报文的目的地址为所述Ingress节点的IP地址;
所述Ingress节点向Egress节点发送添加了所述LSP对应标签的BFD报文,由所述Ingress节点和Egress节点之间的网络设备利用所述LSP对应标签沿着所述LSP向Egress节点转发添加了所述LSP对应标签的BFD报文;
所述Ingress节点接收所述Egress节点以及所述Egress节点和Ingress节点之间的网络设备利用所述BFD报文的目的地址向所述Ingress节点转发的所述BFD报文;其中,所述BFD报文被所述Egress节点去除了所述LSP对应标签,且所述BFD报文的目的地址为所述Ingress节点的IP地址。
所述Ingress节点向Egress节点发送添加了所述LSP对应标签的BFD报文之后,进一步包括:
如果所述Ingress节点在预设时间内接收到目的地址为所述Ingress节点的IP地址的BFD报文,则所述Ingress节点确定所述LSP未发生故障;
如果所述Ingress节点在预设时间内未接收到目的地址为所述Ingress节点的IP地址的BFD报文,则所述Ingress节点确定所述LSP发生故障。
所述BFD报文,具体包括:BFD环回Echo报文。
所述Ingress节点的IP地址,具体包括:所述Ingress节点的多协议标签交换MPLS标签交换路由器标识lsr-id。
所述LSP对应的标签,具体包括:所述LSP的转发等价类FEC所对应的标签。
本发明实施例提供一种入Ingress节点,应用于包括所述Ingress节点和出Egress节点的网络中,所述Ingress节点和所述Egress节点之间存在至少一个网络设备,该Ingress节点包括:
处理模块,用于在所述Ingress节点需要对标签交换路径LSP进行双向转发检测BFD检测时,在需要向Egress节点发送的BFD报文中添加所述LSP对应的标签,且所述BFD报文的目的地址为所述Ingress节点的IP地址;
发送模块,用于向Egress节点发送添加了所述LSP对应标签的BFD报文,由所述Ingress节点和Egress节点之间的网络设备利用所述LSP对应标签沿着所述LSP向Egress节点转发添加了所述LSP对应标签的BFD报文;
接收模块,用于接收所述Egress节点以及所述Egress节点和Ingress节点之间的网络设备利用所述BFD报文的目的地址向所述Ingress节点转发的所述BFD报文;其中,所述BFD报文被所述Egress节点去除了所述LSP对应标签,且所述BFD报文的目的地址为所述Ingress节点的IP地址。
还包括:确定模块,用于在向Egress节点发送添加了所述LSP对应标签的BFD报文之后,如果在预设时间内接收到目的地址为所述Ingress节点的IP地址的BFD报文,则确定所述LSP未发生故障;
如果在预设时间内未接收到目的地址为所述Ingress节点的IP地址的BFD报文,则确定所述LSP发生故障。
所述BFD报文,具体包括:BFD环回Echo报文。
所述Ingress节点的IP地址,具体包括:所述Ingress节点的多协议标签交换MPLS标签交换路由器标识lsr-id。
所述LSP对应的标签,具体包括:所述LSP的转发等价类FEC所对应的标签。
与现有技术相比,本发明至少具有以下优点:
本发明实施例中,Egress节点仅需要对BFD报文进行转发处理,而不需要创建BFD会话,从而有效提高了Egress节点设备上BFD会话的利用率;由于Egress节点不需要创建BFD会话,因此Ingress节点和Egress节点不需要申请BFD会话的鉴别值,且不需要将申请到的鉴别值通告给对端,使得MPLS网络与BFD的交互过程更加简单;由于Egress节点不需要创建BFD会话,因此当Ingress节点有主LSP和备LSP时,不会造成LSP的主备切换功能失效。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
本发明提出一种通过BFD检测LSP时传输BFD报文的方法,该方法应用于至少包括Ingress节点和Egress节点的MPLS网络中,且该Ingress节点和Egress节点之间存在至少一个网络设备(如路由器等);需要注意的是,该Ingress节点和Egress节点之间还存在有LSP,且该Ingress节点需要对该LSP进行BFD检测,在Ingress节点需要对LSP进行BFD检测时,如图1所示,该方法包括以下步骤:
步骤101,Ingress节点在需要向Egress节点发送的BFD报文中添加LSP对应的标签,且该BFD报文的目的地址为Ingress节点的IP地址。
本发明实施例中,当需要对LSP进行BFD检测时,Ingress节点需要向Egress节点发送BFD报文,且本发明实施例的一种优选实施方式中,该BFD报文具体可以为:BFDEcho(环回)报文,该BFDEcho报文的IP头中的目的IP是本端设备的接口地址,其提供了一种不依赖于BFD控制报文的故障检测方式,由本端设备进行发送,并由本端设备进行接收,远端设备不对该BFDecho报文进行处理,而只是将此BFDecho报文在反向通道上转发给本端设备。
对于BFDEcho报文,目前基于IP转发的BFDEcho报文仅仅支持单跳组网,如果是多跳组网的情况(本发明实施例的应用场景),并不能保证基于IP转发的BFDEcho报文能够到达多跳链路的终点(Egress节点),并从Egress节点返回至Ingress节点。
因此,本发明实施例中在BFDEcho报文中添加LSP对应的标签,且将BFD报文的目的地址设置为Ingress节点的IP地址,以保证BFDEcho报文能够到达多跳链路的终点(Egress节点),并从Egress节点返回至Ingress节点。
当然,在实际应用中,该BFD报文并不局限于BFDEcho报文,例如,对于BFDRFC(RequestForComments,请求注解)中的Echofunction(功能),在双向LSP组网环境下,如果同时检测Ingress节点与Egress节点之间从本地到远端和从远端到本地的一对LSP隧道,则可以先用静态方式在本地和远端上建立一对BFDcontrol(控制)会话,然后在本地和远端分别使能Echofunction,以在本地和远端分别触发Echo报文来快速检测本地到远端和远端到本地的LSP的连通性,在此场景下,其Echo报文即上述的BFDEcho报文。
本发明实施例中,该LSP对应的标签具体包括但不限于:LSP的FEC(ForwardingEquivalencyClass,转发等价类)所对应的标签;进一步的,利用该LSP的FEC所对应的标签,Ingress节点与Egress节点之间的各网络设备需要沿着该LSP向Egress节点转发BFD报文。
本发明实施例中,该Ingress节点的IP地址具体包括但不限于:Ingress节点的MPLSlsr-id(LabelSwitchingRouter-id,标签交换路由器标识);进一步的,利用该Ingress节点的MPLSlsr-id,Egress节点以及Egress节点与Ingress节点之间的各网络设备可通过查询路由的方式向Ingress节点转发BFD报文。
步骤102,Ingress节点向Egress节点发送添加了LSP对应标签(如该LSP的FEC所对应的标签)的BFD报文,且该BFD报文的目的地址为Ingress节点的IP地址(如Ingress节点的MPLSlsr-id)。
步骤103,Ingress节点和Egress节点之间的网络设备利用LSP对应标签沿着LSP向Egress节点转发添加了LSP对应标签的BFD报文。
其中,当BFD报文中添加了LSP的FEC所对应的标签之后,利用该LSP的FEC所对应的标签,Ingress节点与Egress节点之间的各网络设备需要沿着该LSP向Egress节点转发BFD报文,以最终将添加了LSP对应标签的BFD报文发送至Egress节点。
步骤104,Egress节点在接收到添加了LSP对应标签的BFD报文后,去除LSP对应标签,并利用BFD报文的目的地址向Ingress节点转发BFD报文。
其中,对于到达Egress节点的添加了LSP对应标签的BFD报文,Egress节点需要将其中的LSP对应标签完全弹出,且之后Egress节点可以发现BFD报文的IP头中的目的IP地址不是自身的IP地址,继而会根据该目的IP(即Ingress节点的MPLSlsr-id)查询路由向Ingress节点转发BFD报文。
步骤105,Egress节点和Ingress节点之间的网络设备利用BFD报文的目的地址向Ingress节点转发BFD报文。
其中,对于Egress节点到Ingress节点之间的网络设备,由于BFD报文中已经不存在LSP对应标签,因此各网络设备都将直接根据BFD报文中的目的IP(Ingress节点的MPLSlsr-id)查路由向Ingress节点转发BFD报文。
步骤106,Ingress节点接收目的地址为Ingress节点IP地址的BFD报文。
本发明实施例中,Ingress节点可以周期性的发送BFD报文,并根据是否接收到Egress节点返回的BFD报文来判断LSP是否发生故障;因此:
在Ingress节点向Egress节点发送BFD报文之后,如果Ingress节点在预设时间内接收到目的地址为Ingress节点的IP地址的BFD报文,则Ingress节点确定LSP未发生故障;如果Ingress节点在预设时间内未接收到目的地址为Ingress节点的IP地址的BFD报文,则Ingress节点确定LSP发生故障。
需要注意的是,由于BFD报文可以允许一定的丢包率,因此Ingress节点周期性发送预设次数的BFD报文,且在发送预设次数的BFD报文之后,只要收到返回的一次BFD报文,即可以认为在预设时间(即预设次数*每次发送BFD报文后应该收到BFD报文的时间)内接收到BFD报文。
综上所述,本发明实施例中至少具有以下优点:(1)Egress节点仅需要对BFD报文进行转发处理,不再需要创建对应的BFD会话,且并不感知Ingress节点发送的BFD报文,从而有效提高了BFD会话的利用率;(2)由于Egress节点不需要创建BFD会话,因此MPLS不需要申请BFD会话的鉴别值,且不需要将申请到的鉴别值通告给对端,使得MPLS网络与BFD的交互过程更加简单;(3)由于Egress节点不需要创建BFD会话,因此当Ingress节点有主LSP和备LSP时,不会造成LSP的主备切换功能失效。
基于与上述方法同样的发明构思,本发明提出了一种入Ingress节点,应用于包括所述Ingress节点和出Egress节点的网络中,所述Ingress节点和所述Egress节点之间存在至少一个网络设备,如图2所示,该Ingress节点包括:
处理模块11,用于在所述Ingress节点需要对标签交换路径LSP进行双向转发检测BFD检测时,在需要向Egress节点发送的BFD报文中添加所述LSP对应的标签,且所述BFD报文的目的地址为所述Ingress节点的IP地址;
发送模块12,用于向Egress节点发送添加了所述LSP对应标签的BFD报文,由所述Ingress节点和Egress节点之间的网络设备利用所述LSP对应标签沿着所述LSP向Egress节点转发添加了所述LSP对应标签的BFD报文;
接收模块13,用于接收所述Egress节点以及所述Egress节点和Ingress节点之间的网络设备利用所述BFD报文的目的地址向所述Ingress节点转发的所述BFD报文;其中,所述BFD报文被所述Egress节点去除了所述LSP对应标签,且所述BFD报文的目的地址为所述Ingress节点的IP地址。
本发明实施例中,该Ingress节点还包括:
确定模块14,用于在向Egress节点发送添加了所述LSP对应标签的BFD报文之后,如果在预设时间内接收到目的地址为所述Ingress节点的IP地址的BFD报文,则确定所述LSP未发生故障;
如果在预设时间内未接收到目的地址为所述Ingress节点的IP地址的BFD报文,则确定所述LSP发生故障。
本发明实施例中,所述BFD报文,具体包括:BFD环回Echo报文。
本发明实施例中,所述Ingress节点的IP地址,具体包括:所述Ingress节点的多协议标签交换MPLS标签交换路由器标识lsr-id。
本发明实施例中,所述LSP对应的标签,具体包括:所述LSP的转发等价类FEC所对应的标签。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。