MPLS基础理论

MPLS简介

        MPLS(Multiprotocol Label Switching)是多协议标签交换的简称,多协议指的是MPLS支持多种网络协议,比如IP、IPv6、IPX等,且兼容ATM、帧中继、以太网、ppp等多种链路层技术。标签交换就是指对报文打上标签,根据标签进行转发。

MPLS网络模型

        MPLS基础理论_第1张图片

        在MPLS域中定义了处于不同位置和功能的设备别名。如下:

        LER标签边界路由器,会给IP包打上标签和去掉标签。

        LSR标签交换路由器,会通过标签转发报文。

        LSP标记交换路径,这是一个单向的报文经过标签转发的路径。可能不是原路返回所以是单向的。

        所以在MPLS域中存在入节点和出节点这个定义。在LSP中,IP报文进入MPLS域并打上标签的设备为入节点,标签报文出MPLS域并去掉标签的设备为出节点。

MPLS结构

下面这篇文章我写了MPLS结构,这里就不再赘述了。

SDN架构与传统网络架构-CSDN博客

MPLS报文格式

二层帧格式

         在IP包帧头和IP头之间插入一个MPLS数据报头

MPLS基础理论_第2张图片

         MPLS头部总长度为4Bytes(32bits)

        标签Label长度20bits,用来标识标签

        EXP(Experimental Use)长度3bits,用来做Qos(服务质量)

        S(Bottom of Stack)长度1bit,栈底位。多个MPLS头时进行标识

        TTL长度8bits,存活时间

标签嵌套

        当一个数据报有多个标签时会用S标识多个标签。

MPLS VPN中会出现二层标签

MPLS TE中会出现三层标签

MPLS转发流程

NHLFE

MPLS基础理论_第3张图片

入节点-NHLFE:Next Hop Label Forwarding Entry(下一跳标签转发表项)

LSP表项 

FEC 

        MPLS是使用标签来进行转发,而我们一般发送的是IP报文并没有携带标签,这就不得不再去给这个IP报文打上一个标签好让它能在MPLS域中进行转发。

        我们该如何给IP报文打上标签是一个问题,如果每一个包我们都给他打上不同的标签进行转发,这样标签未必也太多了。在MPLS中定义了FEC(forwarding equivalence class 转发等价类),FEC是在转发过程中以等价的方式处理的一组数据分组。

        转发等价类,人如其名。就是符合相同转发条件的一组数据报文。路由器会给属于同一个FEC的数据报文打上相同的标签,每一个FEC分配到的标签都不一样。

        FEC的等价匹配条件很多:有相同的IP前缀,属于某特定组的组播报文,目的IP地址匹配某一个特定前缀的报文,在MPLS VPN中属于同一个VPN的报文等等。

标签操作类型

        标签操作类型有三种,分别对应了相应的标签功能。

Push(入栈)

        当IP报文进入MPLS域时,MPLS边界设备在报文二层首部和IP首部之间插入一个新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)。

MPLS基础理论_第4张图片

Swap(交换)

        当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签。

MPLS基础理论_第5张图片

Pop(出栈)

        当报文离开MPLS域时,将MPLS报文的标签去掉。

MPLS基础理论_第6张图片

MPLS-转发流程

        当一个IP报文发送到入节点LER,此时LER会去查看FIB表(IP转发表)并根据NHLFE(入节点NHLFE中的数据同步到了FIB中,所以是看的FIB中的NHLFE数据)为IP报文打上标签并送给LSR,LSR会去查看LFIB(标签转发表),此时LFIB中会有LSP的表项并发送给出接口LER,出接口LER通过LFIB表把标签包的标签去掉发送到IP域。

你可能感兴趣的:(网络)