MPLS:多协议标签交换

MPLS:多协议标签交换

概述

MPLS的历史背景

  1. 早期:90年代初期,由于硬件性能限制,路由器采取最长掩码匹配算法逐跳转发IP报文,当路由器表项过于庞大时,检索速度受限于硬件性能,短时间内无法得到提升,导致转发效率低,于是IETF组织提出MPLS作为快速转发技术
  2. 后期:硬件性能得到巨大的提升,MPLS快速转发的优势不再明显,MPLS逐渐被淘汰,但是由于MPLS支持多层嵌套和设备内转空分离的特点,再新兴领域得到广泛应用,如VPN、TE(流量工程)等而被保留下来

MPLS的网络架构

MPLS域:由一组连续的运行了MPLS的路由器集合构成的网络

LSR:标签交换路由器,运行了MPLS的路由器

LSR的角色
  1. 根据LSR位于MPLS域的未知,将LSR分为:
    • LER:标签边缘路由器,位于MPLS域边缘的LSR,连接了其他网络,主要负责标签的压入和弹出
    • core LSR:核心标签骄傲换路由器,位于MPLS域内的LSR主要负责标签的交换
  2. 根据对数据的处理的方式,将LSR分为
    • ingress LSR:入站LSR(入节点)
      • 对普通IP报文职系那个标签压入的动作,形成MPLS报文
    • transit LSR:中转LSR(中间节点)
      • 对MPLS报文进行标签交换
    • egress LSR:出站LSR(出节点)
      • 对MPLS报文执行标签弹出的动作,形成普通LIP报文

FEC:转发等价类

定义

  • 具有相同在那发特征的数据流,转发路径上的设备对于相同特性的数据流采用相同的处理方式

转发特征

  • 数据流的五元组、DSCP、目的IP地址和掩码等等参数
  • 在MPLS网络中,对FEC的划分方式为
    • 对于到达同一目的地的所有报文就是一个FEC,也就是一条路由条目就是一个FEC

LSP:标签交换路径

定义

  • 到达同一目的地的报文(FEC)在MPLS网络中经过的转发路径
    • 一条FEC对应一条LSP,数据转发前需要先建立好LSP

特点

  1. LSP是单向的,是一组有序的标签的集合
  2. LSP的方向与数据流的方向一致

LSP的建立方式

  1. 静态LSP
    • 手工配置
      • 优点:无需交互协议报文,开销小且稳定
      • 缺点:配置工作量大,无法适应网络变化,需要管理员手工干预,灵活性差,后期维护复杂
    • 动态LSP
      • 通过动态标签分发协议动态建立LSP
        1. LDP:标签分发协议
        2. MP-BGP:应用于MPLS VPN,为VPNv4路由分发标签
        3. RSVP-TE:应用于流量工程,RSVP的扩展协议(本课程不涉及)

MPLS标签

  • MPLS头部封装在数据链路层和网络层中间,称为2.5层协议

  • MPLS头部参数:占32bit

    1. label:标签值,20bit取值范围0~(2^20)-1

      1. 特殊标签

        • 0~15

          • 0:显示空标签,IPv4路由

          • 2:显示空标签,IPv6路由

            • 需要通告显示空标签时,配置命令:

            • 在MPLS视图配置

              label advertise explicit-null
              
          • 3:隐式空标签,缺省通告

      2. 静态LSP使用

        • 16~1023
      3. 动态LSP使用

        • 1024~1048575
    2. EXP:3bit,优先级字段,取值0~7,值越大优先级越高,越优先先被处理,用于QOS

    3. s:1bit,栈底标识

      • s=0时,表明该标签不是最后一个标签
      • s=1时,表明该标签为栈底标签(最接近IP头部)
    4. TTL:8bit,取值0~255,用于MPLS防环

MPLS标签的处理动作

  1. push:压入标签
    • 入节点在二层和三层头部之间插入MPLS标签的行为,中间节点根据需要也可以执行该动作,在栈顶位压入一个新的标签
  2. swap:交换标签
    • 中间节点根据标签在转发表,用下一跳分配的标签替换栈顶标签(最接近二层头部的标签)
  3. pop:弹出标签
    • 出节点上将MPLS标签去掉

MPLS体系结构

  1. 控制平面

    • 产生和维护路由信息和标签信息

      • RIB:路由信息表,通过运行路由协议学习到的路由存放在RIB中

      • LIB:标签信息表,通过LDP(标签分发协议)动态学习到的标签信息存放在LIB中

        • 查看命令
        display LDP LSP//查看LIB表信息
        
  2. 转发平面

    • 负责转发普通IP报文和MPLS标签报文

      • FIB:转发信息表,由RIB映射生成,负责IP报文转发

      • LFIB:标签转发信息表,由ILM和NHLFE关联形成,负责MPLS标签报文转发

        • 查看命令
        display mpls lsp
        //查看LFIB表
        

MPLS转发的三张表

  1. FTN:FEC to NHLFE
    • 由FIB和NHLFE关联产生,只在入节点存在,接收到的IP报文需要MPLS转发时,查该表以获得tunnel id
    • 表中内容为
      • FEC和tunnel id的映射关系
  2. NHLFE:下一跳标签转发表项
    • 存在于入节点和中间节点,用于指导MPLS报文转发
    • 表中内容为
      • tunnel id、出接口、下一跳地址、出标签、标配前操作类型等
  3. ILM:入标签映射
    • 存在于中间节点和出节点上,用于指导MPLS报文转发
      • 表中内容为
        • tunnel id、入标签、入接口、变迁操作类型等

MPLS数据标签转发的详细过程

  • 当数据进入MPLS域时:
    1. 先查看FIB表项,找到对应的转发条目(FEC),查看转发条目包含的tunnel id字段
      1. 如果为0x0,则IP转发
      2. 如果为非0,则MPLS转发
    2. ingress的处理
      • 通过查找FIB和NHLFE表项指导报文转发
        1. 先查找FIB,找到对应的tunnel id;
        2. 根据tunnel id查找到对应的NHLFE表项,将FIB和NHLFE关联起来(FTN)
        3. 查看NHLFE表项可以得出出接口、下一跳地址、出标签、和标签操作类型等信息
        4. 在IP报文中压入标签,同时处理TTL,封装MPLS报文后发送给下一跳
    3. transit的处理
      • 通过查看ILM和NHLFE指导MPLS报文转发
        1. 根据MPLS的标签查看对应的额ILM表项,得到tunnel id;
        2. 根据获得的tunnel id找到对应的NHLFE表项
        3. 通过NHLFE表项可以的出处接口、下一跳地址、出标签和标签操作类型等信息
        4. MPLS报文的处理方式根据不同的出标签而不同
          • 如果label>16,则用新标签替换MPLS报文中的旧标签
          • 如果label=0,则用0标签替换MPLS报文中的旧标签(swap)
          • 如果label=3,则直接弹出标签,同时哦处理TTL,封装好发送给下一跳(次末跳弹出)
    4. egress的处理
      • 查询ILM指导MPLS报文或者FIB表指导IP报文转发
        1. 如果出节点接收到IP报文,则查FIB表转发
        2. 如果出节点接收到MPLS报文,则差ILM表获得标签操作类型,同时处理TTL(pop)
          1. 如果标签中s=1:表明该标签为占比标签,直接查FIB表IP转发
          2. 如果标签中s=0:表明还有下一层标签,则进行下一层标签转发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值