向大家介绍深入讲解BGP/MPLS VPN转发和分发过程,可能好多人还不了解BGP/MPLS VPN是怎么回事的,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。
BGP/MPLS VPN的体系结构
体系结构主要分成数据面和控制面。数据面定义了BGP/MPLS VPN数据的转发过程;控制面则定义了LSP的建立和VPN路由信息的分发过程。在此,我们主要讨论一下数据的转发过程和路由信息的分发过程。
数据转发过程
在MPLS网络中传输的VPN数据采用外标签(又称隧道标签)和内标签(又称VPN标签)两层标签栈结构,它们分别对应于两个层面的路由:域内路由和VPN路由。域内路由即BGP/MPLS VPN中的LSP是由PE路由器和P路由器通过运行标签分发协议(Label Distribution Protocol:LDP)或资源预留协议(Resource Reservation Protocol:RSVP)建立的,它所产生的标签转发表用于VPN分组外层标签的交换。
VPN路由是由PE路由器之间通过运行MP-iBGP建立的,该协议跨越骨干网的P路由器分发VPN标签形成VPN路由。在PE路由器上除了VRF表外,还有MPLS路由表,该表用于存放VPN标签和子接口的对应关系,为出口PE路由器到CE路由器之间的数据转发提供依据。
具体数据转发过程如下:当CE路由器通过某个子接口将一个VPN分组发给入口PE路由器后,PE路由器查找该子接口对应的VRF表,从VRF表中得到VPN标签、初始外层标签以及到出口PE路由器的输出接口。
当VPN分组被打上两层标签之后,就通过输出接口发送到相应LSP上的第一个P路由器。骨干网中P路由器根据外层标签逐跳转发VPN分组,直至最后一个P路由器弹出外层标签,将只含有VPN标签的分组转发给出口PE路由器。
出口PE路由器根据VPN标签,查找MPLS路由表得到对应的输出接口,在弹出VPN标签后通过该接口将VPN分组发送给正确的CE路由器,从而实现了整个数据转发过程。特别的,当出口PE路由器和入口PE路由器是同一个路由器时,PE路由器对收到的VPN分组将不经过任何处理直接转发给目的CE路由器。
路由信息分发过程
在BGP/MPLS VPN中,因为采用了两层标签栈结构,所以P路由器并不参与VPN路由信息的交互,客户路由器是通过CE和PE路由器之间、PE路由器之间的路由交互知道属于某个VPN的网络拓扑信息。
CE-PE路由器之间通过采用静态/缺省路由,或采用IGP(RIPv2、OSPF)等动态路由协议,或建立EBGP连接等方式进行路由信息的交互。当入口PE路由器从某个子接口接收到来自CE路由器的路由信息时。
除了将该路由导入对应的VRF表,PE路由器还要为该路由分配一个VPN标签。该VPN标签用以识别接收路由信息的子接口,因此从同一个子接口接收到的路由信息将被分配同样的VPN标签,从而PE路由器可以将收到的VPN分组转发到合适的子接口。
PE-PE之间通过采用MP-iBGP进行路由信息的交互。PE路由器通过维持iBGP网状连接或使用路由反射器来确保路由信息被分发给所有的PE路由器。当入口PE路由器分发路由信息时,将同时携带路由所在VRF表的RD。
即将路由的IPv4地址转化为VPN-IPv4地址。分发的具体路由信息包括该路由的VPN-IPv4地址前缀、下一跳BGP即入口PE路由器的VPN-IPv4地址(其中RD=0)、分配给该路由的VPN标签和该路由所在VRF表的Export RT。该路由信息我们称为带有标签的VPN-IPv4路由信息。
当出口PE路由器收到路由信息时,将查看该路由的RT,如果RT和其任意VRF表中任意一个Import RT相符时,就将该路由存入VPN-IPv4.RIB表。在进行路由选择之后,将最优路由中的VPN-IPv4地址转化成IPv4地址,即去掉地址中的RD,导入到相应的VRF表中。
跨越多个运营商网络的BGP/MPLS VPN的实现
在某个客户的BGP/MPLS VPN跨越多个运营商网络的情况下,如果假定运营商所用地址域不重叠,那么可以通过下述方法来解决:①为了分发带有标签的IPv4路由信息,在边缘路由器上建立EBGP连接;②为了分发带有标签的VPN-IPv4路由信息,在属于不同运营商的PE路由器之间建立多跳的EBGP连接。值得注意的是,这种用于不同运营商之间的EBGP解决方案同样适用于一个具有多个AS值的运营商。
BGP/MPLS VPN的特点:
◆作为PP-VPN,提高了用户网络管理效率,降低了用户在网络管理方面投入的费用。
◆解决了纯三层IP VPN所不能解决的地址重叠和重叠VPN的问题。
◆具有较好的网络拓展性,解决了传统VPN在实现用户节点全网状连接时的N2问题。
◆不需要采用加密、认证等手段,通过路由隔离、地址隔离等多种方式,实现与传统VPN相结合。