MPLS标签转发过程(个人学习笔记)

发布于:2024-06-22 ⋅ 阅读:(83) ⋅ 点赞:(0)

三个操作标签

  • Push:当IP报文进入MPLS域时,MPLS边界设备在报文二层首部和IP首部之间插入一个新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)。
  • Swap:当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签。
  • Pop:当报文离开MPLS域时,将MPLS报文的标签剥掉。
    在最后一跳节点,标签已经没有使用价值。这种情况下,可以利用倒数第二跳弹出特性PHP(Penultimate Hop Popping),在倒数第二跳节点处将标签弹出,减少最后一跳的负担。最后一跳节点直接进行IP转发或者下一层标签转发。
    默认情况下,设备支持PHP特性,支持PHP的Egress节点分配给倒数第二跳节点的标签值为3

MPLS标签转发

        LSR处理报文时主要根据FTN、 NHLFE和ILM

        FTN(FEC-to-NHLFE):当 LSR收到IP报文并需要进行MPLS转发时使用,FTN只在Ingress存在。

        FTN包括:Tunnel ID、FEC到NHLFE的映射信息。

        过程:Ingress设备通过查看FIB表中Tunnel ID值不为0x0的表项,能够获得FTN的详细信息。

        下一跳标签转发表项(NHLFE,Next Hop Label Forwarding Entry):LSR对报文(MPLS或IP报文)进行MPLS转发时使用,NHLFE在IngressTransit存在

        NHLFE包括:Tunnel ID、出接口、下一跳、出标签、标签操作类型等信息

        入标签映射(ILM,Incoming Label Map):用于指导MPLS报文的转发(MPLS或IP转发),ILM只在TransitEgress存在

        ILM包括:Tunnel ID、入标签、入接口、标签操作类型等信息

Ingress LSR的处理

如果Tunnel ID值为0x0,则进入正常的IP转发流程。

如果Tunnel ID值不为0x0,则进入MPLS转发流程

当IP报文进入MPLS域时:

1、Ingress  LSR 查看FIB表,检查目的IP地址对应的Tunnel ID值是否为0x0(如果Tunnel ID值为0x0,则进入正常的IP转发流程)

2、如果Tunnel ID值不为0x0,根据FIB表的Tunnel ID 找到对应的NHLFE表项,将FIB表项和NHLFE表项关联起来。

3、查看NHLFE表项,可以得到出接口、下一跳、出标签和标签操作类型。

4、在IP报文中压入出标签,同时处理TTL,然后将封装好的MPLS报文发送给下一跳。

Transit LSR 的 处理

1、Transit LSR根据MPLS的标签值查看对应的ILM表,得到Tunnel ID。

2、根据ILM表的Tunnel ID找到对应的NHLFE表项。

3、查看NHLFE表项,得到出接口、下一跳、出标签和标签操作类型

4、处理方式:

  • 如果标签值>=16,则用新标签替换MPLS报文中的旧标签,同时处理TTL,然后将替换完标签的MPLS报文发送给下一跳。
  • 如果标签值为3,则直接弹出标签,同时处理TTL,然后进行IP转发或下一层标签转发(PHP倒数第二跳弹出)。

Egress LSR的处理

Egress根据ILM查则查看ILM表获得标签操作类型,同时处理TTL

        如果标签中的栈底标识S=1,表明该标签是栈底标签,直接进行IP转发

        如果标签中的栈底标识S=0,表明还有下一层标签,继续进行下一层标签转发

基本流程:


网站公告

今日签到

点亮在社区的每一天
去签到