防止双归属组网路由环路方法的研究

2015-07-02 16:50陈佑建
科技资讯 2015年4期

陈佑建

摘 要:用户接入网络通过CE双归属组网,虽然提高了网络可靠性,但对于PE和CE间运行动态路由协议进行路由交换时会引入路由环路的问题。该文借助路由反射器的做法,由归属地PE从其他PE接收并需要将其发送给归属用户接入设备CE的VPN路由信息时,先将其反射发送给归属地的其他PE;而归属地的其他PE确定从其归属CE接收的VPN路由信息,与原归属PE反射发送的VPN路由信息相同时,则不对从其归属CE接收的VPN路由信息进行路由转发处理。该方案由PE对分发CE的路由进行过滤处理,从而使环路问题在PE上就可以避免,而且对CE设备要求低。

关键词:双归属组网 路由反射器 路由环路 路由属性

中图分类号:TN915 文献标识码:A 文章编号:1672-3791(2015)02(a)-0009-02

在BGP/MPLS VPN组网应用中,用户接入网络进行CE双归属组网可有效提高网络可靠性,但对于PE和CE间运行动态路由协议进行路由交换时会引入路由环路问题。为了避免出现路由环路,RFC4364提出了在PE上通过路由协议扩展字段匹配对发送和接收的路由进行过滤分发的解决方案;但该解决方案,在CE双归属组网的接入链路使用不同的路由交换协议时,不能彻底解决路由环路问题。

1 背景技术

MPLS VPN是一种基于MPLS多协议标记交换技术的虚拟专用网,通常由用户接入设备CE、提供商边缘路由器PE和提供商核心路由器P等路由器组成。VPN路由信息是通过PE和PE之间、CE和PE之间的路由交换来完成的。

为了提高网络可靠性,用户接入网络通常采用CE双归属的组网方式。如图1所示:用户接入网络A和B均有两条冗余的转发链路接入提供商网络。

2 双归属组网的环路问题

CE双归属组网可有效提高网络可靠性,但对于PE和CE间运行动态路由协议进行路由交换时会出现路由环路。如图1,PE3将从归属CE2接收的192.168.0.0/16路由发送给PE4后,如果PE4又将此路由发送给归属CE3/CE2,这时就会出现路由环路。

为了避免出现环路,RFC4364提出了在PE上通过路由协议扩展字段匹配对路由进行过滤分发的解决方案。该方案具体又可分为两种。(1)通过PE上对发送给归属CE的路由设置特殊的路由扩展属性值,该方法需要CE设备能识别并透传扩展属性值。(2)各PE对从同一用户接入网络接收的路由设置唯一的源站点属性值,然后各PE再匹配该源站点属性值进行路由分发过滤。

而在实际VPN组网应用中,CE双归属接入的两条链路上可能存在使用不同路由交换协议的情况,如图1中PE3-CE2间运行RIP协议,PE4-CE3间运行OSPF协议。对于这种组网,RFC4364提供的两种解决方案都不能很好解决路由环路的问题。

(1)方案A,可能要升级CE设备,以使其能识别并透传扩展属性值。

(2)方案B,路由环路问题没有消除。如图1中,PE1/PE2对从CE1接收的10.0.0.0/8路由设置属性值65500:1;PE3/PE4从PE1/PE2接收到10.0.0.0/8路由,将其发给CE2/CE3,而CE3又将此路由发给PE4。于是PE4上同时存在从PE1/PE2接收的、以及从CE3接收的10.0.0.0/8路由。PE4优选从CE3接收的并设置属性值65500:2并重发给PE1/PE2/PE3;而此时PE1/PE2上就存在不同属性值的10.0.0.0/8路由,因此会发生路由环路。

3 路由环路解决方法研究

为了解决上述CE双归属组网中PE和CE间使用不同路由交换协议时出现的路由环路问题,该文借助引用路由反射的做法:归属地PE从其他PE接收并需要将其发送给归属用户接入设备CE的VPN路由信息时,将其反射发送给归属地的其他PE;而归属地的其他PE确定从其归属CE接收的VPN路由信息,与原归属PE反射发送的VPN路由信息相同时,则不对从其归属CE接收的VPN路由信息进行路由转发处理。

为有别于现有技术中BGP的路由反射器,该方案引入一个环路路由反射器:即为归属地各PE互相设置对端为本端BGP路由反射器客户端,并且该归属路由反射器邻居连接设置使用的本地接口(如环回接口1)应不同于VPN部署BGP连接所使用的本地接口(如环回接口2)。环路路由反射器反射发送的VPN路由信息,只限于归属地各PE确定需要发送给归属CE的VPN路由信息;同时对于从环路路由反射器客户端接收的VPN路由,不用作路由分发引入使用。

下面结合图1和图2,对PE3上的VPN路由选路过程给出该解决方案的具体分析(重点分析PE3,PE4选路过程类似)。

步骤101a:PE3从其他PE接收VPN路由信息,之后执行步骤102a。

步骤102a:判断PE3从其他PE接收的VPN路由信息是否存在于从归属CE2上接收到的VPN路由中,若是,则执行步骤107a,若否,则执行步骤103a。

步骤103a:PE3选择从其他PE接收的VPN路由信息更新VRF的路由表项信息,并将接收的VPN路由信息向CE2发送,同时,PE3向PE4反射VPN路由信息,之后执行步骤104a和步骤106a。

步骤104a:CE3将从CE2接收的VPN路由和CE3本地VPN路由向PE4发送。

步骤105a:PE3从CE2接收VPN路由,之后执行步骤102a。

步骤106a:PE3存储PE4反射的VPN路由信息,之后执行步骤107a。

步骤107a:判断从CE2接收的VPN路由信息是否已存在于PE4向PE3反射的VPN路由信息中若是,则执行步骤109a,若否,则执行步骤108a。

步骤108a:PE3选择从CE2接收的VPN路由信息更新VRF的路由表项信息并将VPN路由信息发送给其他PE。

步骤109a:判断PE3是否已将从CE2接收的VPN路由信息发送给其他PE;若是,则执行步骤110a,若否,则执行步骤103a。

步骤110a:向其他PE发送撤销从CE2 接收的VPN路由信息的请求,之后执行步骤103a。

其中步骤101a中PE3从其他PE接收VPN路由信息,可以是从PE1/PE2接收用户网络A中的10.0.0.0/8 路由,也可以是从PE4接收用户网络B中的192.168.0.0/16路由。

其中步骤102a中,PE3对于从其他PE接收的10.0.0.0/8VPN路由信息,并未从归属CE2接收到(由于CE2水平分割原理不会将10.0.0.0/8路由发送给PE3),因此执行步骤103a;而PE3对于从其他PE接收的192.168.0.0/16VPN路由信息,已从归属CE2接收到192.168.0.0/16的VPN路由,因此执行步骤107a。

其中步骤103a中,从其他PE接收的10.0.0.0/8VPN路由信息向CE2发送,同时,PE3向PE4反射该VPN路由信息。

其中步骤104a中,若CE3从CE2接收的为10.0.0.0/8VPN路由信息,则将接收的10.0.0.0/8VPN路由信息(当然CE3也会将本地192.168.0.0/16VPN路由信息发送)向PE4发送。

其中步骤107a中,判断PE3从PE4接收的192.168.0.0/16反射VPN路由与从CE2接收的192.168.0.0/16VPN路由是否相同。

其中步骤108a中,PE3将从CE2接收的VPN路由发送给其他PE可以是PE1、PE2 或PE4。

其中步骤109a中,判断若PE3已经向PE1、PE2或PE4发送了从CE2接收的VPN路由(因没有收到PE4反射的路由信息前接收到从CE2接收的VPN路由,因此PE3会将从CE2接收的VPN路由向PE1、PE2或PE4发送),则步骤110a中向PE1、PE2或PE4发送撤销该VPN路由的请求。

最终拓扑稳定后:对于10.0.0.0/8这条路由,PE3和PE4都会选择从PE1/PE2接收的VPN路由来更新VRF路由表项,并将该路由发送给归属CE2/CE3的同时,通过环路路由反射器将该路由反射给归属地对端PE(即通过PE3将该路由反射给PE4、通过PE4将该路由反射给PE3);而对于192.168.0.0/16这条路由,PE3和PE4都会从归属CE2/CE3接收的VPN路由来更新VRF路由表项,同时将其互相发送给对端、以及PE1/PE2。

4 结语

综上所述,该方案借助路由反射的做法,通过将发送给归属CE的VPN路由信息互相反射给双归属接入的PE,使环路问题在归属PE上就可以判断知晓,不需要CE参与环路判断,对CE设备要求低。同时又解决了CE双归属组网接入链路使用不同的路由交换协议时,可能出现的路由环路问题。

参考文献

[1] E# Rosen,Y#Rekhter.BGP/MPLS IP Virtual Private Networks(VPNs)[EB/OL]IETF RFC 4364,February 2006;www.rfc-editor.org/rfc/rfc4364.txt.

[2] 李晓动.MPLS技术与实现[M].北京:电子工业出版社,2002.

[3] 徐亦璐,石永革,许小红.路由反射技术应用于MPLSVPN的研究[J].微计算机信息,2008,24(18):96-98.