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