产生背景
90年代初,互联网流量快速增长,而由于当时硬件技术的限制,路由器采用最长匹配算法逐跳转发数据包,成为网络数据转发的瓶颈。快速路由技术成为当时研究的一个热点。
在各种方案中,IETF确定MPLS协议作为标准的协议。MPLS采用短而定长的标签进行数据转发,大大提高了硬件限制下的转发能力;而且MPLS可以扩展到多种网络协议(如IPv6,IPX等)。
路由器使用软件进行转发,速度慢。交换机使用硬件进行转发,速度快。
MPLS概述
MPLS的包头封装于二层和三层之间,可以理解为一个2.5层的协议。
MPLS基本网络结构
**LSP(Label Switch Path):**标签交换路径,即到达同一目的地址的报文在MPLS网络中经过的路径。
**FEC(Forwarding Equivalent Class):**转发等价类,一般指具有相同转发处理方式的报文。在MPLS网络中,到达同一目的地址的所有报文就是一个FEC。
MPLS体系结构
**控制层面:**也可以理解为逻辑层面,即路由时如何传递和产生的。
**转发层面:**落实到实际的设备之上,需要考虑黑洞等一系列问题。而不是只考虑逻辑上的传递。
IP路由协议->产生路由信息->组成路由信息库->LDP标签分发协议为路由信息打上标签->组成标签信息库
有了路由信息库->就会产生转发信息库;有了标签信息库->就会产生标签转发信息表
MPLS数据报文结构
**标签(Label):**是一个短而定长的、只有本地意义标识的,用于唯一标识去往同意目的地的报文分组。
**Label:**20bit,用于交互,定长。
**Exp:**用于QOS流量分类标记使用。
**S:**标识是否是栈底,MPLS为了支持无限的业务,所以标签也是可以进行嵌套的。可以理解为去第一个地方之后,还要转去第二个地方,但是从起点到终点没有一条完整的LSP,所以必须一段段走。
**TTL:**用于防止无限走下去,防止环路产生。
LSP建立方式
建立LSP(可以理解为标签搭建起来的路径)的方式有两种:
静态LSP:用户以手工的方式为各个转发等价类分配标签,建立转发隧道。
动态LSP:通过标签发布协议动态建立转发隧道。
静态LSP:
静态LSP特点:
①不使用标签发布协议,不需要交互控制报文,资源消耗比较少;
②通过静态方式建立的LSP在网络拓扑变化的情况下,自身不能进行改变,需要管理员进行手动调整。
③静态方式建立LSP适用于拓扑简单并且稳定的网络。
动态LSP:
动态LSP通过LDP协议实现对FEC的分类,标签分配,以及LSP的建立和维护等操作。
动态LSP特点:
①组网配置简单,易于维护管理。
②支持基于路由动态建立LSP,网络拓扑发生变化时,能够及时反映网络状况。
LDP邻居发现机制
简言之就是先发送Hello包(基于UDP)进行邻居的发现,在建立TCP连接进行建立邻居,随后进入会话等机制。
**Discovery:**进行邻居的发现。
**TCP:**建立TCP连接。
**Session:**参数协商。
**Advertisement:**通告地址以及标签映射。
**Notification:**在出现错误的时候进行发送。