
路由的交互与数据的交互
1、CE 需要将自己的路由交付给MPLSVpn服务提供商,由服务提供商负责站点间的路由传递。当然交互路由的目的是实现站点间数据的交互。
CE与PE 的路由交换方式
2、客户端CE与PE路由的交互可以是IGP(ospf、is-is) 或者静态路由、BGP;无论是通过哪种方式,必须让PE设备知晓其直连客户的客户路由。PE与CE的路由交换方式是灵活的,当然,同一个客户的不同站点也可选用不同的”PE-CE 间的路由交互方式”,例如客户 A站点1的CE 设备采用 OSPF 与直连的 PE备交互路由,而客户 A站点2的 CE 设备则采用 BGP 与主连的 PE 设备交互路由。
客户端地址空间重叠
3、问题 :不同客户使用相同的路由子网,PE 怎样进行区分并隔离?即不同客户地址空间重叠;例如,VPN1和VPN2都使用10.110.10.0/24网段地址,这就发生了地址空间的重叠(address spaces overlapping)。在华为路由器上,VRF也被称为VPN实例,这样2个VRF 就是两台独立的虚拟设备,它们拥有独立的路由表、FIB表、动态路由协议进程以及接口等等。因此即使分别从两个不同的客户那里学习到目的网络地址及网络掩码相同的路由也不用担心出现冲突。
客户路由传递的协议
即如何将客户路由从一个站点传递到客户的另一个站点、也就是从一台PE设备传递到另一台PE的设备。在典型的 MPLSVPN 架构中, BGP 是在 MPLS VPN 骨干网络中用于实现客户路由传递的不二选择。 BGP 可承载大批量的路由前缀,被广泛应用于各种大型的网络。
RD 路由区分码、VPNv4路由
当不同的客户端使用了相同的IP地址空间、
时如何保证路由不发生冲突? MPLS VPN 引入了 RD (Route Distinguisher ,路由区分码)用于解决该问题。要解决路由冲突的问题,就必须对 IPv4 路由前缀做扩展。 MPLS VPN 采用 RD IPv4 路由前缀进行扩展,简单地说,就是在 32bit IPv4 路由前缀的基础之上增加一个 64bit RD从而形成 96bit VPN-IPv4 路由前缀(我们也将该路由前缀简称为 VPNv4 路由前缀)。
BGP 与MP-BGP
传统的 BGP 无法运载 VPNv4 路由,因此 MP-BGP (Multi-Protocol BGP ,多协议
BGP) 便被派上了用场 MP-BGP 也被称为基于 BGPv4 的多协议扩展,传统的 BGP只
能运载 IPv4 路由前缀,而 MP-BGP 则可以支持包括 VPN-IPv4 、IPv6 等在内的多种路由
前缀。于是,此时在 PE1及 PE2 之间所建立的 BGP 会话便不再是传统的 BGP 会话,而
是激活了 VPNv4 路由运载能力的 BGP 会话。基于该 BGP 会话所传递的 BGP 路由前缀
不是 IPv4 单播路由前缀,而是 VPNv4 路由前缀。
RT 路由目标
PE 之间收到路由后,如何决定将哪些路由注入本地的哪一个VRF呢?
MPLS VPN 使用 一种特殊的数值来控制客户路由的发布及接收,它就是 RT RouteT: get ,路由目标), RT 也被称为 VPNTarget 一个 RT 的长度为 32bit,一条 VPNv4 路由可以包含一个或多个 RT 。 RT 与VPNv4 路由一起被传递给远端 PE ,它承载在 BGP 扩展 Community 属性中。
MPLS VPN 路由和数据层面
需要考虑MPLS VPN 骨干网络中P设备并不维护客户的路由,MPLSVPN 骨干网络需要考虑如何将报文顺利地从一台 PE 设备转发到另一台PE 设备,而且需在沿途的 P设备并不维护关于目的 IP 地址的路由的情况下实现这个需求。利用 MPLS 技术,采用标签来转发这些报文是一个绝佳的解决方案。
MPLS VPN 两层标签

PEl 收到了这个标签报文,接下来它的操作自然是将报文的标签头部弹出,然后将报文路由到目的地。这里还有一个问题: PEl 该把报文转发给 CEl 还是 CE3?无法判断该报文究竟是发往哪一个客户的(报文归属哪一个 VRF)。
在典型的 MPLSVPN 架构中,报文在 MPLSVPN 网络内转发时采用两层标签。
PE2 转发到达客户 站点 10. 1.1. 0/24 段的报文时,将报文压入两层标签,其中外层标签 (或者说顶层标签)被称为公网标签,公网标签由 LDP 分发,用于将报文转发到 PEl 。
内层标签(或者说底层标签〉被称为私网标签,私网标签则由MP-BGP 分发,用于将报文在 PEl 上对应到具体的 VRF ,或者某一个直连的 CE 设备。为了实现私网标签的分发, PE1通过 MP-BGP VPNv4 路由通告给 PE2 时,除了携带该路由的 RT,还会将其为该路由所分配的私网标签一并携带。

PE2 将带有两层标签的报文转发到 MPLSVPN 骨干网络后,网络中的 P设备根据报文的公网标签(外层标签)将其转发到 PE 1.在报文的转发过程中,公网标签被逐跳修改,但是私网标签则不会发生改变。 PEl 收到报文后,先将公网标签弹出,然后根据内层的私网标签将该报文对应到本地的 VRF (由于该私网标签由 PEl 所分配,因此它知道这个标签值所对应的 VRF) ,最后将私网标签弹出,把里面所封装的 IP 报文转发给 CEl.
MPLS 与 LDP
概括的讲MPLS 负责标签的push、pop、swap等操作,MPLS需要为报文事先分配好标签,建立一条LSP,才能进行报文转发。LSP分为静态LSP和动态LSP两种。LDP可以是静态手工分发也可以由动态协议。标签发布协议是MPLS的控制协议(也可称为信令协议),负责FEC的分类、标签的分发以及LSP的建立和维护等一系列操作。
mpls 的体系结构
它由控制平面(Control Plane)和转发平面(Forwarding Plane)组成。

- 控制平面:负责产生和维护路由信息以及标签信息。
- 路由信息表RIB(Routing Information Base):由IP路由协议(IP Routing Protocol)生成,用于选择路由。
- 标签分发协议LDP(Label Distribution Protocol):负责标签的分配、标签转发信息表的建立、标签交换路径的建立、拆除等工作。
- 标签信息表LIB(Label Information Base):由标签分发协议生成,用于管理标签信息。
- 转发平面:即数据平面(Data Plane),负责普通IP报文的转发以及带MPLS标签报文的转发。
- 转发信息表FIB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报文的转发。
- 标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,由标签分发协议在LSR上建立LFIB,负责带MPLS标签报文的转发。
MPLS VPN网络实现概述
- 在PE 设备上,使用 VRF 来区分不同的客户、维护不同客户的路由。
- 在PE 设备上,使用基于 VRF 的路由协议 (PE-CE 间的路由协议)与其直连的CE 设备交互客户路由。
- MPLSVPN 骨干网络内的设备上(PE 设备及P 设备),需要运行一个 IGP 协议,通过该协议实现骨干网内的路由互通。
- PE 设备之间,根据需要建立 MP-BGP 会话, PE 设备将自己从 CE 设备学习到的路由引入 MP-BG 形成 VPNv4 路由并通告给远端 PE 设备,并且将其从远端 PE 设备所学习到VPNv4 路由注入本地相应的 VRF 中,从而通过 PE-CE 间的路由协议将客户路由通告给本地直连的 CE 设备。
- 为了让客户的数据能够穿越 MPLS VPN 骨干网络需要骨干网络的 PE 设备及设备都激活MPLS 及标签分发协议(通常是 LDP)