本节书摘来自异步社区《MPLS在Cisco IOS上的配置》一书中的第1章,第1.2节,作者 【美】Lancy Lobo, CCIE #4690 , Umesh Lakshman,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.2 MPLS转发过程概述
MPLS在Cisco IOS上的配置
如果IP网络开启了MPLS功能,我们称之为MPLS网络,与1.1节中的“传统IP网络”相区别。MPLS网络使用标签机制转发数据包,标签对应着IP目的地址或其他参数,例如QoS分类和源地址。每台路由器都可以在全局范围内分配(assign)标签,即所有接口都可以识别此标签;也可以在接口范围内分配标签,即只有特定接口才能识别此标签。标签的“本地性”的含义是,一个标签的具体含义,例如对应的 IP 目的地址等,只有分配了此标签的路由器才知道,因此,路由器也可称其分配的标签为本地标签。多台路由器通过分配标签而组成一条可以在端点(endpoint)之间转发数据包的路径,称为LSP(Label Switched Path,标签转发路径)。LSP的端点通常是MPLS网络的边缘设备,它们需要转发IP数据包,而LSP上的其他路由器都使用标签转发数据包,因此,MPLS网络在转发数据包的时候,只有边缘设备才需要执行IP转发表查找。
图1-2所示的MPLS网络是在图1-1的IP网络的基础上开启了MPLS转发功能。MPLS网络转发去往网络172.16.10.0/24的数据包时,只有边缘路由器R1和R4需要执行IP转发表查找。与图1-1的IP网络一样,图1-2的MPLS网络使用IGP通告路由172.16.10.0/24,因此,R2、R3和R4都在IP转发表中生成了有关网络172.16.10.0/24的条目。同时,路由器之间的互联链路都开启了MPLS功能,因此路由器都为172.16.10.0/24分配了标签,并使用标签分发协议将标签通告给上游的直连路由器。例如,R1首先为172.16.10.0/24分配了标签L1,然后将L1与172.16.10.0/24的映射关系通告给上有直连路由器R2。R2和R3执行相似的操作,分别为172.16.10.0/24分配标签L2和L3,并将映射关系通告给上游路由器R3和R4。结果如图1-2所示,4台路由器都不仅维护图1-1所示的IP转发表,还维护着标签转发表,因此可以转发MPLS数据包。MPLS数据包是被标签封装的IP数据包。强调一下,MPLS网络基于标签转发MPLS数据包,IP网络基于目的地址转发IP数据包。
如图1-2所示,MPLS网络通过查找IP转发表和标签转发表来转发去往网络172.16.10.0/24的数据包,过程如下。
1.R4接收去往网络172.16.10.0/24的IP数据包。通过查找IP转发表,R4得知需要将此IP数据包转发给MPLS网络,下一跳路由器是R3。因此,R4使用L3(下游路由器R3通告的)封装IP数据包,并将最终得到的MPLS数据包转发给R3。
2.R3接收MPLS数据包,可以识别L3(L3是R3的本地标签)。R3查找标签转发表,将L3替换为L2,并将最终得到的MPLS数据包转发给下一跳路由器R2。
3.R2接收MPLS数据包,可以识别L2(L2是R2的本地标签)。R2查找标签转发表,将L2替换为L1,并将最终得到的MPLS数据包转发给下一跳路由器R1。
4.R1接收MPLS数据包,可以识别L1(L1是R1的本地标签)。R1是IP网络和MPLS网络的边缘路由器,因此标签转发表的查询结果是将标签删除,并将最终得到的IP数据包转发到目的网络。
1.2.1 MPLS的架构模块
Cisco设备的MPLS功能主要分为两个架构模块,如图1-3所示。
控制层:负责生成IP转发表或标签转发表中的信息。因此,所有为生成IP转发表信息而配置的功能,例如静态路由、IGP和BGP,都属于控制层,运行这些协议的路由器之间主要交换路由信息;所有为生成标签转发表信息而配置的功能,例如静态标签转发信息、LDP、MP-BGP和RSVP-TE,也都属于控制层,运行这些协议的路由器之间主要交换标签的映射关系。
数据层:负责转发数据包。数据层需要从控制层提取转发MPLS数据包所需的信息,例如标签值