导图社区 MPLS
这是一篇关于华为数通hcie路由交换进阶知识的思维导图,内容有MPLS基础、体系结构、MPLS应用场景和BGP MPLS IP VPN等。
编辑于2021-09-01 23:59:00MPLS
MPLS基础
网络结构
路由器角色
LSR(Label Switching Router标签交换路由器)
上游Upstream:根据数据传送的方向,所有往本LSR发送MPLS报文的LSR都可以称为上游LSR
下游Downstream:根据数据传送的方向,本LSR将MPLS报文发送到的所有下一跳LSR都可以称为下游LSR
LSR构成MPLS域(MPLS Domain)
域边缘LSR连接其他网络为LER((Label Edge Router)边缘路由器)
域内部LSR为 Core LSR
转发过程
在IP网络内进行传统的IP转发,在MPLS域内进行标签转发
LER负责从IP网络接收IP报文并给报文打上标签,然后送到LSR, 反之,也负责从LSR接收带标签的报文并去掉标签然后转发到IP网络; LSR只负责按照标签进行转发。
MPLS LSP(Label Switched Path)
IP报文在MPLS网络中经过的路径
LSP是一个单向路径,与数据流的方向一致
LSP的入口LER称为入节点(Ingress)
位于LSP中间的LSR称为中间节点(Transit)
LSP的出口LER称为出节点(Egress)
一条LSP可以有0个、1个或多个中间节点,但有且只有一个入节点和一个出节点。
LSP的建立过程实际就是将FEC和标签进行绑定,并将这种绑定通告LSP上相邻LSR的过程
MPLS标签
标签label
标签(Label)是一个短而定长的、只具有本地意义的标识符,用于唯一标识一个分组所属的FEC。在某些情况下,例如要进行负载分担,对应一个FEC可能会有多个入标签,但是一台路由器上,一个标签只能代表一个FEC。
标签空间:标签的取值范围
取值范围0-15
0: IPv4 Explicit NULL Label(ipv4显示空标签) 表示该标签必须被弹出,且报文的转发必须基于IPv4
2:IPv6 Explicit NULL Label(ipv6显示空标签) 表示该标签必须被弹出,且报文的转发必须基于IPv6
3:Implicit NULL Label(隐示空标签) 倒数第二跳LSR进行标签交换时, 如果发现交换后的标签值为3,则将标签弹出,并将报文发给下最后一跳。 最后一跳收到该报文直接进行IP转发或下一层标签转发。
取值范围16-1023
静态LSP和静态CR-LSP共享的标签空间
1024以上
LDP、RSVP-TE、MP-BGP等动态信令协议的标签空间
标签栈
标签栈(Label stack) 是指标签的排序集合
outer label:MPLS报文支持同时携带多个标签,靠近二层首部的标签称为栈顶标签或外层标签
inner label:靠近IP首部的标签称为栈底标签,或内层标签
理论上,MPLS标签可以无限嵌套
标签栈按后进先出(Last In First Out)方式组织标签,从栈顶开始处理标签。
操作类型
压入Push
指当IP报文进入MPLS域时,MPLS边界设备在报文二层首部和IP首部之间插入一个新标签; 或者MPLS中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)
交换Swap
当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签
弹出Pop
当报文离开MPLS域时,将MPLS报文的标签去掉; 或者MPLS倒数第二跳节点处去掉栈顶标签,减少标签栈中的标签数目。
标签格式:标签封装在链路层和网络层之间
link layer header:链路层头部
MPLS Label(32bits)
标签Label,长度 20bits:标签值域,表示标签空间
EXP 3bits:又traffic class,用于扩展。现在通常用做CoS(Class of Service), 其作用与Ethernet的802.1p类似。QOS优先级
S 1bits:栈底位,MPLS支持多层标签。S值为1时表明该标签为最底层标签。
TTL 8bits:防环
Layer 3 header
Layer 3 payload
转发等价类FEC
转发等价类FEC(Forwarding Equivalence Class)是一组具有某些共性的数据流的集合。这些数据流在转发过程中被LSR以相同方式处理。 FEC可以根据地址、业务类型、QoS等要素进行划分。例如,在传统的采用最长匹配算法的IP转发中,到同一条路由的所有报文就是一个转发等价类。
是一组具有某些共性的数据流的集合
通常到同一条路由的所有报文就是一个转发等价类。
PHP(Penultimate Hop Poppoing):次末跳弹出或者倒数第二跳弹出
倒数第二跳弹出机制(PHP)有两种标签
implicit null(隐式空),在LDP中标签值为3
explicit null(显式空),在LDP中标签值为0
基础应用
MPLS QoS
MPLS Ping/MPLS Tracert
MPLS LDP
基本概念
LDP邻接体
当一台LSR接收到对端发送过来的Hello消息,意味着可能存在LDP对等体,此时LSR会建立维护对端存在的LDP邻接体。LDP邻接体存在两种类型: 本地邻接体(Local Adjacency):链路Hello消息发现的邻接体叫做本地邻接体。 远端邻接体(Remote Adjacency):Target Hello消息发现的邻接体叫做远端邻接体。
LDP对等体
LDP对等体是指相互之间存在LDP会话、使用LDP来交换标签消息的两个LSR。 LDP对等体通过它们之间的LDP会话获得对方的标签。
LDP会话
用于LSR之间交换标签映射、释放等消息
本地LDP会话(Local LDP Session)
建立会话的两个LSR之间是直连的; LDP通过多播Hello报文自动发现本地邻居并建立本地邻接关系
远端LDP会话(Remote LDP Session
建立会话的两个LSR之间可以是直连的,也可以是非直连的。 通过单播Hello报文发现远端邻居而建立远端邻接关系
LDP消息类型
为保证LDP消息的可靠发送,除了Discovery消息使用UDP传输外,LDP的Session消息、Advertisement消息和Notification消息都使用TCP传输。
发现(Discovery)消息
用于通告和维护网络中LSR的存在
会话(Session)消息
用于建立、维护和终止LDP对等体之间的会话
通告(Advertisement)消息
用于创建、改变和删除FEC的标签映射
通知(Notification)消息
用于提供建议性的消息和差错通知
标签空间
LDP对等体之间分配标签的数值范围称为标签空间(Label Space),可以分为
全局标签空间(Per-Platform Label Space):
Space):整个LSR使用一个标签空间。目前主要使用全局标签空间。
接口标签空间(Per-Interface Label Space):
为LSR的每个接口指定一个标签空间。
LDP标识符
LDP标识符(LDP Identifier)用于标识特定的LSR的标签空间。LDP标识符的格式为<LSR ID>:<Label space ID>,长度为六字节,其中:例如LDP标识符为192.168.1.1:0,表示LSR ID为192.168.1.1,标签空间为全局标签空间。
LSR ID:表示LSR标识符,占四字节。
Label space ID:表示标签空间标识符,占两字节。 全局标签空间为“0”,接口标签空间为“非0”。
LDP工作机制
LDP协议规定了标签分发过程中的各种消息以及相关的处理过程。通过LDP,LSR可以把网络层的路由信息映射到数据链路层的交换路径上,进而建立起LSP。LDP工作过程主要分为两个阶段: 1. 发现邻居后,LSR开始建立LDP会话; 2. 会话建立后,LDP通过发送标签请求和标签映射消息, 在LDP对等体之间通告FEC和标签的绑定关系,从而建立LSP。 RFC5036分别定义了标签发布方式、标签分配控制方式和标签保持方式来决定LSR如何发布和管理标签。
LDP会话过程
LDP发现机制
基本发现机制: 用于发现链路上直连的LDP Peer
LSR通过周期性的发送LDP Hello消息,实现LDP基本发现机制,建立LDP本地会话。
LDP Hello消息使用UDP协议,目的地址是组播地址224.0.0.2,目的端口是646。
LDP Hello报文中携带LDP Identifier及一些其他信息(例如hello-hold time、transport address)。
如果LSR在特定接口接收到LDP Hello消息,表明该接口存在LDP Peer。
扩展发现机制: 用于发现链路上非直连LDP Peer
LSR周期性的发送Targeted Hello消息到目的地址,实现LDP扩展发现机制,建立LDP远端会话。
Targeted Hello消息使用UDP协议,目的地址是单播地址,目的端口是646
Targeted Hello消息同样携带LDP Identifier及一些其他信息(例如hello-hold time、transport address)
如果LSR接收到Targeted Hello消息,表明该LSR存在LDP Peer。
LDP会话建立过程
1.两个LSR之间相互发送hello消息
2.传输地址较大一方作为主动方,发起TCP连接
3.TCP建立成功之后,主动方发初始化消息协商参数,协商建立LDP会话的相关参数:
LDP协议版本
标签分化方式
keepalive保持定时器的值
最大的PDU长度
标签空间
4.被动方收到初始化消息,如果接受相关参数,则发送初始化消息,同时发送keepalive消息, 否则发送notification消息终止LDP会话的建立
5.主动方收到初始化消息,如果接受相关参数,则发送初始化消息,同时发送keepalive消息, 否则发送notification消息终止LDP会话的建立
6.双方都收到对端的keepalive消息,ldp会话建立成功
标签的发布和管理
标签发布方式(Label Advertisement Mode)
下游自主方式DU(Downstream Unsolicited)
下游按需方式DoD(Downstream on Demand)
标签分配控制方式(Label Distribution Control Mode)
标签分配控制方式是指在LSP的建立过程中,LSR分配标签时采用的处理方式。
独立标签分配控制方式(Independent):LSR无需等待来自下游的标签映射,即可自主为FEC分配标签
有序标签分配控制方式(Ordered)
标签保持方式(Label Retention Mode)
标签保持方式是指LSR对收到的、但目前暂时不需要的标签映射的处理方式。 LSR收到的标签映射可能来自下一跳,也可能来自非下一跳。
自由标签保持方式(Liberal)
保守标签保持方式(Conservative)
设备支持的组合方式:
下游自主方式(DU)+ 有序标签分配控制方式(Ordered)+ 自由标签保持方式(Liberal)
下游按需方式(DoD)+ 有序标签分配控制方式(Ordered)+ 保守标签保持方式(Conservative)
工作过程
每一台运行LDP的LSR都会为自己路由表中的路由前缀捆绑标签,然后再将所分配的标签分发给所有的LSR邻居
子主题
LDP标签过滤机制
一般情况下,LSR对于标签映射消息的接收和发送没有限制,导致大量的LSP的建立。这对于性能较低的设备,会造成资源的大量消耗,设备将无法承受。配置LDP Outbound策略和Inbound策略,可以限制标签映射消息的发送和接收,减少LSP的数量,节省内存。
LDP Outbound策略
LDP Inbound策略
LDP与静态路由联动
LDP与IGP联动
BFD for LSP
LDP FRR
体系结构
控制平面
产生和维护路由信息已经标签信息
RIP路由协议(IP Routing Protocol)模块用来传递路由信息,生成路由信息表(RIB)
标签分发协议
标签分发
生成标签信息表LIB
标签分发过程(LSP建立和维护)
将目的地址相同的分组报文划分为一个FEC,然后从MPLS标签资源池中取出一个标签,分配给这个FEC。LSR记录该标签和FEC的对应关系,并将该对应关系封装成消息报文,通告给上游的LSR,这个过程称为标签分发
标签分配方式
标签由下游分配,按从下游到上游的方向分发
将目的地址相同的分组报文划分为一个FEC,然后从MPLS标签资源池中取出一个标签,分配给这个FEC。LSR记录该标签和FEC的对应关系,并将该对应关系封装成消息报文,通告给上游的LSR,这个过程称为标签分发
建立LSP,方式:
静态LSP
静态LSP是用户通过手工为各个转发等价类分配标签而建立的
原则:上游节点出标签的值就是下游节点入标签的值。
动态LSP依靠标签分发协议 标签发布协议是MPLS的控制协议(也可称为信令协议), 负责FEC的分类、标签的分发以及LSP的建立和维护等一系列操作
RSVP-TE
资源预留协议RSVP是为Integrated Service模型而设计的,用于在一条路径的各节点上进行资源预留。 RSVP工作在传输层,但不参与应用数据的传送,是一种网络上的控制协议,类似于ICMP。 为了能够建立基于约束的LSP,对RSVP协议进行了扩展。扩展后的RSVP信令协议称为RSVP-TE信令协议,主要用于建立TE隧道。它拥有普通LDP LSP没有的功能,如发布带宽预留请求、带宽约束、链路颜色和显式路径等。
MP-BGP
MP-BGP是在BGP协议基础上扩展的协议。 MP-BGP引入Community属性, 支持为MPLS VPN业务中私网路由和跨域VPN的标签路由分配标签
MP BGP通过Update消息传递标签,标签与VPNv4路由一起传递
mpls LDP
转发平面
FIB 转发信息表
根据ip路由表生成
display fib
LFIB 标签转发信息表 dis fib vpn-instance xxx
相关名词
Tunnel ID
为了给使用隧道的上层应用(如VPN、路由管理)提供统一的接口,系统自动为隧道分配了一个ID,也称为Tunnel ID。该Tunnel ID的长度为32比特,只是本地有效。
作用:
1.隧道标识符
2.在ingress节点,用于确定是进行ip转发还是标签转发
3.在mpls转发过程中,用于关联FIB、NHLFE、ILM表项
FTN
FEC到一组NHLFE的映射称为FTN(FEC-to-NHLFE)。 通过查看FIB表中Tunnel ID值不为0x0的表项,能够获得FTN的详细信息。FTN只在Ingress存在。
下一跳标签转发表项(NHLFE):
内容
Tunnel ID
出接口
下一跳
出标签
标签操作类型等信息
作用:用于指导MPLS报文的转发
入标签映射表(ILM): 入标签到一组下一跳标签转发表项的映射
入标签到一组下一跳标签转发表项的映射称为入标签映射ILM(Incoming Label Map)。 ILM包括:Tunnel ID、入标签、入接口、标签操作类型等信息。 ILM在Transit节点的作用是将标签和NHLFE绑定。通过标签索引ILM表,就相当于使用目的IP地址查询FIB,能够得到所有的标签转发信息。
内容
tunnel id
入标签
入接口
标签操作类型等信息
作用:ILM在transit节点的作用是将标签和NHLFE绑定, 通过标签索引ILM表,就相当于使用目的IP地址查询FIB,能够得到所有的标签转发信息。
详细转发过程
当IP报文进入MPLS域时, 首先查看FIB表, 检查目的IP地址对应的Tunnel ID值是否为0x0。
如果Tunnel ID值为0x0,则进入正常的IP转发流程
如果Tunnel ID值不为0x0,则进入MPLS转发流程
在Ingress,通过查询FIB表和NHLFE表指导报文的转发
在Transit,通过查询ILM表和NHLFE表指导MPLS报文的转发。
在Egress,通过查询ILM表指导MPLS报文的转发或查询路由表指导IP报文转发
MPLS转发过程中, FIB、ILM和NHLFE表项是通过Tunnel ID关联的
Ingress的处理
1. 查看FIB表,根据目的IP地址找到对应的Tunnel ID。
2. 根据FIB表的Tunnel ID找到对应的NHLFE表项,将FIB表项和NHLFE表项关联起来。 3. 查看NHLFE表项,可以得到出接口、下一跳、出标签和标签操作类型,标签操作类型为Push。 4. 在IP报文中压入出标签,并根据QoS策略处理EXP,同时处理TTL,然后将封装好的MPLS报文发送给下一跳。
Transit的处理
1. 根据MPLS的标签值查看对应的ILM表,可以得到Tunnel ID。 2. 根据ILM表的Tunnel ID找到对应的NHLFE表项。 3. 查看NHLFE表项,可以得到出接口、下一跳、出标签和标签操作类型。 4. MPLS报文的处理方式根据不同的标签值而不同。 如果标签值>=16,则用新标签替换MPLS报文中的旧标签,同时处理EXP和TTL,然后将替换完标签的MPLS报文发送给下一跳。 如果标签值为3,则直接弹出标签,同时处理EXP和TTL,然后进行IP转发或下一层标签转发。
Egress的处理
1.如果Egress收到IP报文,则查看路由表,进行IP转发。 2.如果Egress收到MPLS报文,则查看ILM表获得标签操作类型,同时处理EXP和TTL。 如果标签中的栈底标识S=1,表明该标签是栈底标签,直接进行IP转发。 如果标签中的栈底标识S=0,表明还有下一层标签,继续进行下一层标签转发。
MPLS对TTL的处理
MPLS对TTL的处理模式
MPLS标签中包含一个8位的TTL字段,其含义与IP头中的TTL域相同。MPLS对TTL的处理除了用于防止产生路由环路外,也用于实现Traceroute功能
Uniform(默认)
IP报文经过MPLS网络时,在入节点,IP TTL减1映射到MPLS TTL字段,此后报文在MPLS网络中按照标准的TTL处理方式处理。在出节点将MPLS TTL减1后映射到IP TTL字段。
Pipe
在入节点,IP TTL值减1,MPLS TTL字段为固定值,此后报文在MPLS网络中按照标准的TTL处理方式处理。在出节点会将IP TTL字段的值减1。即IP分组经过MPLS网络时,无论经过多少跳,IP TTL只在入节点和出节点分别减1
ICMP响应报文
在MPLS网络中,LSR收到含有标签的MPLS报文,当MPLS报文的TTL超时时,LSR会生成ICMP的TTL超时消息。 LSR将TTL超时消息回应给报文发送者的方式有两种: 如果LSR上存在到达报文发送者的路由,则可以通过IP路由,直接向发送者回应TTL超时消息。 如果LSR上不存在到达报文发送者的路由,则ICMP响应报文将按照LSP继续传送,到达LSP出节点后,由Egress节点将该消息返回给发送者。 通常情况下,收到的MPLS报文只带一层标签时,LSR可以采用第一种方式回应TTL超时消息;收到的MPLS报文包含多层标签时,LSR采用第二种方式回应TTL超时消息。 但是,在MPLS VPN中,ASBR(Autonomous System Boundary Router,自治系统边界路由器)、HoVPN组网应用中的SPE(Superstratum PE or Sevice Provider-end PE,上层PE或运营商侧PE)和嵌套VPN应用中的运营商骨干网PE,接收到的承载VPN报文的MPLS报文可能只有一层标签,此时,这些设备上并不存在到达报文发送者的路由,则采用第二种方法回应TTL超时消息。
MPLS应用场景
1.早期提高转发效率
2.解决BGP黑洞路由
3.mpls vpn
MPLS L2VPN
VPLS
VPLS(Virtual Private LAN Service)实现了局域网之间通过虚拟专用网段互连。从VPLS的用户角度看,公网就像一台以太网交换机,将用户各站点连接起来。VPLS又称为E-LAN。
VLL/PWE3
VLL(Virtual Leased Line)是对传统租用线业务的仿真,使用IP网络模拟租用线,从用户角度看,公网就像一条点到点的链路,将VPN站点连接起来。?VLL又称为VPWS(Virtual Private Wire Service)或者E-Line。PWE3(Pseudo Wire Emulation Edge-to-Edge)是VLL的一种扩展。
MPLS L3VPN
4.TE MPLS流量工程
背景
MPLS流量工程通过建立基于一定约束条件的LSP隧道,并将流量引入到这些隧道中进行转发,使网络流量按照指定的路径进行传输,达到流量工程的目的。传统的IP网络中,节点选择最短的路径作为最优路由,不考虑带宽等因素。这样的选路方式容易出现流量集中于最短路径而导致拥塞,而其他可选链路则较为空闲
MPLS TE隧道
在MPLS TE中,经常会把多条LSP联合起来使用,并将这些LSP与一个虚拟隧道接口关联起来,这样的一组LSP称为MPLS TE隧道
结构
隧道接口
隧道标识(Tunnel ID)
LSP标识(LSP ID)
建立涉及的协议组件
信息发布组件
发布内容: 对现有的IGP进行扩展,来发布TE信息
链路状态信息
IGP协议本身收集的信息,如接口IP地址、链路类型、链路开销
带宽信息
最大链路带宽
最大可预留带宽
当前预留带宽
TE Metric
链路的TE度量值。缺省情况下,链路采用IGP的度量值作为TE度量值
链路管理组
链路颜色
SRLG
共享风险链路组SRLG(Shared Risk Link Group)是一组共享一个公共的物理资源(比如共享一根光纤)的链路
SRLG主要用在CR-LSP热备份和TE FRR组网中增强TE隧道的可靠性
发布方式: 发布主要是依靠现有链路状态路由协议的扩展 两种IGP路由协议会自动收集信息发布内容, 并对这些信息进行泛洪,发布给MPLS TE网络中的其他节点
IS-IS TE
OSPF TE
发布时机
首次配置MPLS TE隧道会触发泛洪
...
发布结果
每个节点收集本区域所有节点每条链路的TE相关信息,生成流量工程数据库TEDB
路径计算组件
通过CSPF(Constraint Shortest Path First)算法
利用TEDB中的数据来计算满足指定约束的路径的
路径建立组件
用于建立隧道的CR-LSP
静态CR-LSP
动态CR-LSP
采用RSVP(Resource Reservation Protocol)TE信令建立CR-LSP隧道
LSP的带宽
部分显式路由
着色等约束参数
通过信令动态地建立LSP隧道可以避免逐跳配置的麻烦
流量转发组件
用于将流量引入到MPLS TE隧道,并进行MPLS转发
CR-LSP
BGP MPLS IP VPN
主题