MPLS

发布时间 2023-08-13 01:15:12作者: 博雅塔之客

MPLS

一、MPLS概述

传统IP转发

1、IP的转发原理

利用路由协议生成路由表

根据目的IP地址进行转发

2、传统IP转发在流量工程方面的缺陷

      流量工程:对流量的引导、操纵的过程。

MPLS标签转发

1、MPLS标签报文格式

     在二层报头与三层报头之间插入MPLS报头,可以插入多个MPLS头部

     这种标签模式也被称为‘帧模式’(Frame Mode)

 

字段长度含义
Label 20比特 标签值字段,用来标识一个FEC。
EXP 3比特 用于扩展。现在通常用做CoS(Class of Service),其作用与Ethernet802.1p的作用类似。
S 1比特 MPLS支持多重标签。值为1时表示为最底层标签。
TTL 8比特 和IP分组中的TTL意义相同,可以用来防止环路。

    靠近二层的标签称为顶层标签,该标签作为转发时的依据(在某些复杂的转发中会看内层标签);

    靠近IP层的标签称为底层标签,并且只有该头部中的S位被置1.

 2、MPLS应用

       MPLS TE、MPLS QoS

 3、备注

      Ether II的上层承载MPLS单播时,Type字段值为0x8847;MPLS多播报文时,Type字段值为0x8848

二、MPLS基本原理

       1、MPLS基本结构

            MPLS标签嵌套:标签栈

            PID标识二层头部后面的报文类型,LSR判断报文类型

           • Ethernet:0x800 IPv4,0x8847 MPLS单播报文,0x8848 MPLS多播报文

           • PPP:0x8021 IPv4,0x8281 MPLS单播报文,0x8283 MPLS多播报文

          S标识是否是栈底标签

          标签嵌套应用

          • MPLS VPN

          • MPLS TE

      2、MPLS标签格式

 

      3、MPLS转发流程传统IP转发

            MPLS转发:Ingress LER

            NHLFE:Next Hop Label Forwarding(下一跳标签转发事项)

            FEC:forwarding equivalence classes(转发等价类)

                     FEC:在转发过程中以等价的方式处理的一组数据分组,例如目的前缀相同的数据分组;通常对一个FEC分配唯一的标签。

                                如:根据特定的组播报文、相同的目的IP、DSCP字段、相同QoS策略~~~~

MPLS转发:LSR

          ILM Incoming Label Map

          display mpls lsp include 1.1.1.0 24 in-label 1030 verbose

          标签操作类型(Label Operations)

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

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

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

 

 LDP协议原理

       LDP基本概念

LDP邻居发现和会话建立

1、LDP基本概念

      LDP是用来在LSR之间建立LDP Session并交换Label/FEC映射信息的协议

 LDP消息类型

         discovery message:宣告和维护网络中一个LSR的存在

         Session message:建立、维护和终止LDP Peer之间的LDP session

         advertisement message:生成、改变和删除FEC的标签映射

         notification message:宣告告警和错误信息

 LDP封装格式:

 

LDP消息作用:

 discovery message:

           hello:LDP发现机制中宣告LSR本LSR并发现邻居

 session message:

           initialization:在LDP session建立过程中协商参数

           keepalive:监控LDP session的TCP连接的完整性

 advertisement message:

           address:宣告接口地址

           address withdraw:撤销接口地址

           label mapping:宣告FEC/Label映射信息

           Label Request:请求FEC的标签映射

           Label abort request:终止未完成的label request message

           label withdraw:撤销FEC/Label映射

           label release:释放标签

notification message:

            notification:通知LDP Peer错误信息

 

 LDP会话建立及session建立过程:

            LDP基本发现机制:发现直接连接在同一连路上的LSR邻居

                   LSR通过周期性(5S)发送hello message表明自己的存在;消息是封装在UDP报文中的,目的IP地址为组播IP地址:224.0.0.2;目的端口号:646

                   发送消息时,目的端口号与源端口号都是646;消息发送完成后,建立TCP连接时,由transport address大的发起,目的端口号646,源端口号任意

            LDP扩展发现机制:发现非直连的LSR邻居

                   单播发送hello包,源端口号与目的端口号都是646;hello包发送完成后,由transport address大的发起TCP连接。

            transport address:默认时LSR-ID,发现邻居后去创建TCP连接用的地址

 TCP建立连接完成后,由TCP主动端(transport address大的)发送初始化(initialization)消息

 对端回复一个初始化消息,并发送一个对主动端初始化消息的确认的Keepalive消息,主动端也回复一个Keepalive消息。LDP会话建立成功,

传递标签映射信息: