11.1、MPLS基本原理

  • 前言
  • MPLS(Multiprotocol Label Switching)位于TCP/IP协议栈中的链路层和网络层之间,用于向IP层提供连接服务,同时又从链路层得到服务。MPLS以标签交换替代IP转发
  • MPLS并不是一种业务或者应用,它实际上是一种隧道技术。这种技术不仅支持多种高层协议与业务,而且在一定程度上可以保证信息传输的安全性
  • 传统IP转发
  • 数据转发步骤
  • 当数据到达RTA时,路由器会检查目的网段和下一跳地址,然后再封装好传递给下一跳。RTB接收到数据包也要查看目的网段和下一跳,然后封装回去转发给下一跳,……
  • 传统IP转发对于设备的要求还是很高的,当有大量业务开始进行传递时,对于路由器的查找速度的要求就比较高了
  • ATM信元转发
  • 另一种网络
  • ATM
  • 通过信元转发,ATM需要维护的比路由表规模要小得多的标签表,能够提供比IP路由方式高得多的转发性能
  • 对于新型的MPLS在这种背景下产生了
  • MPLS标签转发
  • MPLS利用标签转发,它的标签是处于链路层和IP层之间加一个头部,然后利用标签在MPLS域中进行转发
  • 首先进入RTA,给RTA打上标签
  • 然后传输给RTB,更换成RTB的标签
  • 然后传输给RTC,更换成RTC的标签
  • 最后传输到RTD,将标签弹出,然后发送给目的网段
  • MPLS VPN应用
  • MPLS的应用很多,随着技术的发展,路由查找速度的瓶颈已经不是网络发展速度的瓶颈。慢慢MPLS技术应用的比较少了,但是它可以联合其他的技术进行使用
  • Eg
  • MPLS VPN的应用
  • MPLS网络模型
  • MPLS域
  • Eg
  • RTA和RTB处于一个MPLS网络中
  • LER
  • 标签边缘路由器
  • MPLS的边缘设备
  • LSR
  • 标签交换路由器
  • MPLS域中间的设备
  • LSP
  • 标签交换通道
  • RTA和RTD之间形成的隧道
  • MPLS控制平面和转发平面
  • 控制平面
  • 路由协议
  • 底层协议
  • 通过底层协议来交换路由信息进行互通
  • Eg
  • OSPF
  • ISIS
  • IP路由表
  • 路由协议的学习来形成IP路由表
  • 标签交换协议
  • LDP
  • 数据层面
  • IP转发表项
  • 通过IP路由表进行映射得出
  • 标签转发表项
  • 通过LDP协议进行学习得出
  • 数据处理
  • 当数据报文接收到IP报文,到达设备时查找IP转发表项,来进行发送IP报文
  • 当接收到带标签报文,去查找标签转发表项,发送带标签的报文
  • 帧格式MPLS
  • MPLS有两种封装模式:帧模式和信元模式(ATM采用MPLS信元模式封装,本课程不涉及)。帧模式封装是直接在报文的二层头部和三层头部之间增加一个MPLS标签头。以太网、PPP采用这种封装模式
  • MPLS报文头部
  • 参数
  • MPLS头部长度为32bits
  • LABEL
  • 该标签用于报文转发,长度为20bits
  • EXP
  • 通常用来承载IP报文中的优先级,长度为3bits
  • S
  • 表识栈底用来表明是否是最后一个标签(MPLS标签可多层嵌套),长度为1bit
  • 当S=1时,代表该标签为栈底最后一个标签
  • TTL
  • 类似IP头部的TTL,用来防止报文环路等,长度为8bits
  • MPLS标签嵌套
  • PID标识二层头部后面的报文类型
  • Ethernet 0x0800 IPv4 0x8847 MPLS单播报文0x8848 MPLS多播报文
  • PPP 0x8021 IPv4 0x8281 MPLS单播报文0x8283 MPLS多波报文
  • S标识是否是栈底标签
  • S=1
  • 代表该标签为栈底最后一个标签
  • 标签嵌套应用
  • MPLS VPN
  • MPLS TE
  • FEC与NHLFE
  • FEC(Forwarding Equivalence Class)转发等价类,是一组具有某些共性的数据流的集合。这些数据流在转发过程中被LSR以相同方式处理
  • FEC可以根据地址、业务类型、Qos等要素进行划分。
  • 例如
  • 在传统的采用最长匹配算法的IP转发中,到同一条路由的所有报文就是一个转发等价类
  • 传统过程中我的目的地址是5.5.5.5/32,另有一批报文的目的地址是5.5.5.5/32。对这一组报文有相同的目的地地址,就可以认为这是转发等价类
  • 在传统采用IP报文进行转发时,到达同一条路由的所有报文就是转发等价类,这就是FEC
  • NHLFE(Next Hop Label Forwarding Entry):进行标签转发时用到,NHLFE包含这样一些基本信息:
  • 报文的下一跳
  • 如何进行标签操作(包括压入新的标签,弹出标签,用新的标签替换原有的标签等操作)
  • NHLFE还可能包含一些其他信息,如发送报文使用的链路层封装等
  • FEC与NHLFE举例
  • FEC:Forwarding Equivalence Classes(转发等价类)
  • NHLFE:Next Hop Label Forwarding Entry(下一跳标签转发表项)
  • 查看配置
  • FEC
  • 表项的FEC是10.2.0.0/24
  • 下一条
  • 10.1.1.2
  • 出标签
  • 进标签
  • 出接口
  • 标签的动作
  • PUSH
  • 压入
  • MPLS转发过程-Ingress LER(RTA)
  • 在Ingress,通过查询FIB表和NHLFE表指导报文的转发
  • 对于MPLS域,分为三个节点
  • 入节点
  • RTA
  • 出节点
  • RTD
  • 传输网段
  • 步骤
  • 1、主机的IP报文的目的地址,传输到的是10.2.0.0/24的网段
  • FEC
  • 10.2.0.0
  • 2、报文到达RTA,查询FIB,去查找tunnel ID
  • FIB
  • 转发表项
  • Tunnel ID
  • 决定下一步要通过哪个表项转发。如果不为0,则通过标签表项发送,然后通过NHLFE去指导报文的转发
  • 路由表项
  • 标签转发表项
  • 上图可以看到下一跳操作
  • 出接口
  • S0
  • 标签操作
  • 压入1030标签
  • MPLS转发过程-LSR(RTB)
  • 在Transit,通过查询ILM(Incoming Label Map)表和NHLFE表指导MPLS报文的转发
  • ILM表
  • 下一跳和NHLFE作为一个映射表
  • 步骤
  • 数据包到达RTA,RTA查找到表项打上标签1030,然后到达RTB
  • RTB的入方向是1030,下一跳是10.1.1.6,出接口是S3
  • 处理动作
  • 将新标签代替旧标签
  • MPLS转发过程-LSR(RTC)
  • 报文到达RTC,对于RTC来讲
  • 入标签
  • 也是1030
  • 下一跳
  • 10.1.1.10
  • 出接口
  • S3
  • 处理动作
  • 将新标签代替旧标签
  • MPLS转发过程-Egress LER(RTD)
  • 在Egress,通过查询ILM表指导MPLS报文的转发
  • RTD处理动作
  • 入标签
  • 1032
  • 下一跳
  • 10.2.0.2
  • 出接口
  • RTD的出接口已经超出MPLS域,已经到达MPLS的边缘
  • 标签处理动作
  • 弹出
  • RTD将标签弹出,然后查找IP路由表,按照普通的IP报文进行转发
  • 思考题
  • 1、MPLS头部哪个字段用于标示栈底标签(C)
  • A、Label
  • B、EXP
  • C、S
  • 当使用标签嵌套时,可以通过S=1来判断该标签是最后一个标签
  • D、TTL
  • 2、基于MPLS标签转发报文时,数据包可能需要执行的动作有哪些(A、B、C)
  • A、Push
  • B、Pop
  • C、Swap
  • 切换
  • D、Switch
  • 总结
  • MPLS产生背景
  • 路由转发速度制约网络发展,产生了MPLS
  • MPLS基本概念
  • 运用标签转发
  • MPLS报文格式
  • 封装在二层和三层头部之间
  • MPLS转发原理
  • 查找相应表项进行转发、每一步如何进行、处理标签方法