5.5.1 多协议标签交换的基本概念
多协议标签交换(Multi-Protocol Label Switching,MPLS)从Cisco的标记交换演变而来,是一种在开放的通信网上利用标签引导数据高速、高效传输的新技术。
在提出MPLS之前,IP网络中的每台路由器对所收到的每个包使用的是最长前缀匹配地址搜索,查找到匹配的下一跳后做相应的转发,处理比较复杂。而MPLS在网络的入口路由器为每个IP数据报加上一个固定长度的标签,核心路由器根据标签值进行转发,在出口路由器再恢复成原来的IP数据报。由于是根据固定长度的标签搜索目的地址,所以MPLS能够实现数据包的高速转发。
MPLS向下支持多种链路层协议,如PPP及以太网、ATM、帧中继的协议等,向上兼容IPv4、IPv6等多种主流网络层协议,因此保证了各种网络的互联互通,使得各种不同的网络数据传输技术在同一个MPLS平台上统一起来。
在介绍MPLS的工作原理前,先介绍几个常用术语。
1.转发等价类
转发等价类(Forwarding Equivalence Class,FEC)是一组具有相同特性的IP数据报,在转发过程中被以相同的方式处理。也就是说,属于同一FEC的IP数据报有着同一个下一跳和相同的标签,将被从同一个端口转发出去。它们的服务等级相同,输出队列相同,在网络故障时丢弃优先级也相同。
常见的FEC划分依据包括源/目的IP地址、源/目的端口号、IP地址前缀、区分服务标记DSCP,或者IPv6流标记等。
2.标签
标签(Label)是一个只有本地意义且长度固定的标识,用于标识一个FEC。
标签的格式取决于分组封装所在的介质。例如,ATM封装的分组(信元)采用VPI和/或VCI数值作为标签,而帧中继PDU采用DLCI作为标签。对于那些没有内在标签结构的介质封装,则采用一个特殊的数值填充。
图5-12为薄片型标签的格式,每一个标签有4字节,共包括4个字段。其中20比特的LABEL字段用来表示标签值;3比特的EXP字段用来实现QoS;1比特的S字段用来表示标签栈是否到底了,因为有些应用(如VPN,TE等)会在二层和三层头之间插入两个以上的标签,形成标签栈,当堆栈标识符为1时,表示该标签为栈中的最后一个标签;8比特的TTL字段用来防止数据在网上形成环路。
图5-12 薄片型标签的格式
3.标签交换路径
标签交换路径(Label Switched Path,LSP)是MPLS网络中一个入节点与一个出节点之间的一条路径。在MPLS网络中,标签交换路径LSP的形成可分为以下三个过程:
(a)网络运行后在路由协议(如OSPF、BGP等)的作用下由各节点建立路由转发表;
(b)根据路由转发表,各节点在标签分发协议(Label Distribution Protocol,LDP)的控制下建立标签信息库(Label Information Base,LIB);
(c)入口标签边缘路由器(Label Edge Router,LER)、中间标签交换路由器(Label Switching Router,LSR)和出口LER的输入输出标签互映射并拼接起来后,就构成了从不同入口点到不同出口点的LSP。
下面以图5-13为例进行说明,这里假设图中的网络已经建立了路由转发表。图5-13(a)中,节点C发给节点A一个LDP消息,说明IP地址为10.0.X.X的分组使用标签100。节点A接着发给节点E一个LDP消息,说明IP地址为10.0.X.X的分组使用标签101。此时,节点E、A和C的输入输出标签互映射并拼接起来就构成了一条LSP,如图5-13(b)中的虚线所示。
图5-13 标签路径的形成