导图社区 MPLS
多协议标签交换(英语:Multi-Protocol Label Switching,缩写为MPLS)是一种在开放的通信网上利用标签引导数据高速、高效传输的新技术。多协议的含义是指MPLS不但可以支持多种网络层层面上的协议,还可以兼容第二层的多种数据链路层技术。
编辑于2021-03-24 20:42:30MPLS
一、MPLS基础
1. MPLS的基本结构
1.1 网络结构
路由器角色
上下游
LSP
1.2体系结构
控制层面:产生和维护路由信息以及标签信息。 ①RIB:路由协议生成,用于选路 ②LDP:分标签、建立LFIB表、LSP的建立及拆除 ③LIB:标签协议产生,用于管理标签信息
转发层面:对普通IP报文和MPLS标签报文做转发 FIB:根据RIP表生成,用做转发IP报文 LFIB:由标签协议建立,用做MPLS标签转发
2. MPLS标签
2.1 转发等价类
2.2 标签
Label:20 bit EXP: 3 bit S: 1 bit TTL: 8 bit
2.3 标签空间
特殊标签空间
“3”标签,隐式空标签。 交换后的标签值为3,则标签弹出,将报文发给最后一跳。
“0”标签:显示空标签。 出节点分配给倒数第二跳节点的标签值为0时,倒数第二跳LSR需要将值为0的标签压入报文标签顶部
静态标签空间
16-1023
动态信令协议标签空间:1024以上
3. LSP的建立
3.1 静态LSP
静态lsp如何建立? 入节点配置: 目标网络、下一跳、出接口、出标签 中间节点:入接口、入标签、下一跳、出接口、出标签 出节点:入接口、入标签、
3.2 动态LSP
动态标签分发协议
LDP
LSR把路由信息映射到数据链路层的交换路径上
RSVP-TE
MP-BGP
MP-BGP支持为MPLS VPN中私网路由和跨域VPN的标签路由分配标签
动态LSP的基本建立过程
下游LSR分标签,按从下游到上游的方向分发。 下游LSR根据IP路由表进行FEC的划分,根据FEC分标签,通告给上游的LSR,建立标签转发表和LSP。
5. MPLS转发
4.1 基本概念
Push(压标签)
Swap(交换标签)
Pop(标签弹出)
4.2 MPLS基本转发过程 (3类节点处理过程)
Ingress(入节点) 收到IP报文,根据目标地址打上标签Z Transit(中间节点) 收到标签为Z的报文,把标签Z替换成X 倒数第二跳节点,收到标签为Y的报文,因为“出节点”给它分配的标签值为3,所以进行PHP操作 Egress(出节点) 收到IP报文转发给目标主机
4.3 MPLS 详细转发过程
基本概念
Tunel ID
NHLFE:只在入节点存在
ILM
基本概念 tunnel id,32bit 本地有效 NHLFE,下一跳标签转发表项,用于指导MPLS报文转发。 包括:Tunnel id、出接口、下一跳、出标签、标签操作类型等。 ILM,入标签到一组下一跳标签转发表 包括:Tunnel id、入标签、入接口、标签操作类型。 转发过程 1)当IP报文进入MPLS网络,首先检差FIB表,根据目的IP地址对应的Tunnel id, 如果Tunnel id为0,则进入转发; 如果Tunnel id不为0,则进入MPLS转发。 2)入节点的处理 首先查看FIB,通过目的IP地址,找Tunnel id判断是IP转发还是MPLS转发; 根据非0的Tunnel id找到对应的NHIFE表项。 根据NHIFE表项得到出接口、出标签、标签操作类型、下一跳等信息;在IP报文压入出标签,处理TTL,将报文转发给下一跳。 3)中间节点的处理 根据MPLS的标签值查对应的ILM表,找到Tunnel id; 根据Tunnel id找NHIFE表项,得到下一跳、出接口、出标签、标签操作类型; 如果标签>=16,标签交换,处理TTL,将报文发送给下一跳, 如果标签=3,弹出标签,处理TTL,进行IP转发或者下一层标签转发。 4)出节点的处理 收到IP报文,进行IP转发; 收到MPLS报文,查看ILM表,处理TTL,如果S=1,IP转发,如果S=0,下一层标签转发。
4.4 MPLS对TTL的处理 (2种模式)
作用:用于防环和Traceroute
Uniform(统一)模式
示意图
过程描述: IP报文进入MPLS网络时,入节点将IP TTL值减1复制到MPLS TTL字段中 在MPLS域中,按照标准的TTL做处理(IP 中TTL值不变,MPLS TTL值做减法), 在出节点,MPLS TTL减1,值复制到IP TTL中
Pipe(管道)模式
示意图
过程描述: IP报文进入MPLS时,入节点将IP TTL值减1,MPLS TTL固定为255 在MPLS域中,按照标准TTL处理(IP中TTL值不变,MPLS TTL值做减法), 在出节点,IP TTL值减1 注:IP经过MPLS网络时,只在入节点和出节点分别减1,不论MPLS网络经过多少跳
标签转发的简单描述 IP报文进入MPLS网络时,MPLS 的LER分析IP报文的内容并且为这些IP报文添加合适的标签, 在mpls网络中的lsr根据标签转发数据。IP报文离开mpls网络时标签弹出
二、MPLS LDP
1. 基本概念
LDP对等体
指相互之间存在LDP会话、使用LDP来交换标签消息的两个LSR
LDP邻接体
本地邻接体
以组播形式发送Hello消息
远端邻接体
以单播形式发送Hello消
LDP会话
2. 工作机制
LDP消息类型
①发现(Discovery)消息:用于通告和维护网络中LSR的存在,如Hello消息。
②会话(Session)消息:用于建立、维护和终止LDP对等体之间的会话,如Initialization消息、Keepalive消息。
③通告(Advertisement)消息:用于创建、改变和删除FEC的标签映射。
③通知(Notification)消息:用于提供建议性的消息和差错通知。
LDP工作过程
①LDP会话的建立
LDP会话发现机制
基本发现机制
用于发现链路上直连的LSR。目的地址是组播地址224.0.0.2
扩展发现机制
于发现链路上非直连LSR。
LDP会话的建立过程
会话过程: 1.两个LSR互发Hello消息。 Hello消息中携带传输地址(一般是LSR ID),双方用传输地址建立LDP会话 2.传输地址大的一方作为主动方,发起建立TCP连接。 3.TCP建立成功后,主动方发初始化消息,协商建立LDP会话的相关参数 4.被动方收到初始化消息后, 如果接受相关参数,则发送初始化消息,同时发Keeplive消息给主动方 如果不接受相关参数,则发送Notification消息终止LDP会话的建立 (初始化消息包括LDP版本、标签分发方式、Keepalive保持定时器的值、标签空间) 5. 主动方收到初始化消息后, 如果接受相关参数,则发送Keepalive消息 如果不接受相关参数,则发送Notification消息终止LDP会话 只有双方都收到对端的Keepalive消息后,LDP会话建立成功。
②LDP LSP的建立
标签的发布和管理
标签的发布方式
DU:下游自主
DOD:下游按需
标签的分配控制方式
独立
有序
标签的保持方式
自由
保守
支持的组合方式
①DU+有序+自由
②DOD+有序+保守
LDP LSP的建立过程
普通LSP的建立
1.缺省情况下,网络的路边缘节点(Egress)发现主机路由,并该路由不属于任何FEC,则边缘节点为条路由建立新的FEC。 2.如果MPLS网络的Egress有可供分配的标签,则为FEC分配标签, 并主动向上游发出标签映射消息,标签映射消息中包含分配的标签和绑定的FEC等信息。 3.Transit收到标签映射消息后, 判断发送者是否为该FEC的下一跳。 若是,则在其标签转发表中增加相应的条目,然后向上游LSR发送该FEC的标签映射消息。 4.Ingress收到标签映射消息后,判断发送者是否为该FEC的下一跳。 若是,则在标签转发表中增加相应的条目。这时,就完成了LSP的建立,然后就是对该FEC对应的数据报文进行标签转发。
代理Egress LSP
应用场景:
不支持MPLS特性的路由器场景;解决BGP路由负载分担问题
实例
3. LDP扩展
LDP跨域扩展
LDP为BGP路由分配标签
LDP Over GRE/mGRE
4. LDP可靠性
简介
可靠性技术的必要性包含以下两个方面的含义:
①对于LDP LSP而言,其路径上某一节点或链路出现了故障, 要求能够在备份的路径上重新建立LSP并将流量切换到新的路径上,而这一过程会引起流量的丢失。
②对于LDP LSP而言,其路径上某一节点控制层面故障但转发层面正常, 要求在控制层面进行故障恢复的过程中流量转发不中断。
LDP可靠性列表
故障检测技术
BFD for LDP LSP
图
BFD for LDP LSP是对LDP LSP的检测,快速检测到LSP的故障,通知转发层面,实现流量的快速切换。 入节点和出节点之间建立BFD会话, 检测到LSP故障,BFD将故障信息上报转发层, 转发层查备份LSP,将业务流量切换到备份LSP上。
流量保护技术
LDP LSP承载流量,LSP路径上发生故障,流量向备份路径切换。切换的速度==故障检测速度+流量切换速度 切换速度由LDP FRR来保证
①
端到端路径故障,流量切换备份路径,尽量减少流量丢失
LDP与静态路由联动
图
LDP与静态路由联动解决主备切换流量丢失问题。 场景:LSR之间通过静态路由建立LSP,当主链路LDP会话故障(非链路故障导致)时,或者主链路故障后再恢复的情况。
场景1:主链路的LDP会话故障(非链路故障导致)。 LDP会话正常建立时,MPLS流量使用LinkA转发。 当LSR_2上的LDP故障,LSR_1和LSR_2间的LDP会话中断,但之间的链路正常。 静态路由是活跃的,路由不会切换到备份路由, LSP换到LinkB,导致LSR_1和LSR_4间的MPLS流量中断。 当LSR_1上使能LDP与静态路由联动后,LDP会话Down时,静态路由自动切换到LinkB,LSP切换到备份LSP,保证流量不中断。
场景2:主链路故障后再恢复。 当LSR_1和LSR_2之间的链路失效,LSP切换到LinkB。 LSR_1和LSR_2之间的链路恢复,LSP随静态路由切换到主链路。新的LSP没有建立时,LSR_1和LSR_4之间的MPLS流量中断。 当在LSR_1上使能LDP与静态路由联动后,当LDP会话Up时,静态路由才开始活跃,保证流量不中断。
LDP与IGP联动
背景:主备链路的MPLS网络存在的问题。 ①主链路故障时,IGP路由和LSP都切换到备份链路上(常通过LDP FRR实现)。 主链路恢复时,由于IGP路由收敛比LDP速度快,IGP快于LDP切换至主链路,造成LSP流量丢失。 ②当主链路正常,LDP会话故障,IGP路由使用主链路,而主链路LSP被删除。备份链路不存在IGP路由,LSP无法在备份链路建立,导致LSP流量丢失。 ③当生主备倒换,LDP会话的建立晚于IGP的GR结束时,IGP发布链路的最大开销值,导致路由振荡。
LDP与IGP联动三个定时器: •Hold-down timer:用于抑制IGP邻居建立的时长。 •Hold-max-cost timer:用于控制通告接口链路的最大cost值的时长。 •Delay timer:用以控制等待LSP建立的时间。
图
物理故障恢复
LSR_2与LSR_3之间链路故障后恢复; ①LSR_2与LSR_3之间建立LDP会话,同时根据Hold-down timer抑制IGP邻居关系; ②流量依旧按照原来的LSP转发; ③链路故障恢复后,LSR2与LSR3发现LDP邻居,建立LDP会话及LSP,通告IGP启动同步; ④IGP启动邻居关系建立,IGP收敛到主链路上,LSP重新建立并收敛到主链路上。
主链路IGP正常,LDP会话故障
主链路节点间LDP会话故障; ①LDP通告IGP主链路会话故障,IGP启动Hold-max-cost定时器,发布主链路最大开销值; ②IGP路由切换至备份链路; ③LSP在备份链路重新建立并下发转发表项。
节点主备倒换
LDP FRR(提高切换速度)
LDP FRR为MPLS网络提供快速重路由功能,实现了链路备份; 当主LSP故障时,流量快速切换到备份路径,减少流量的丢失。
当主链路故障时,IP FRR使IGP路由快速收敛,切换到备份路径
LDP FRR通过LDP信令的自由标签保持方式(Liberal),并将转发信息下发到转发平面作为主LSP的备用转发表项。 当接口故障(接口自己感知或者结合BFD检测)或者主LSP不通(结合BFD检测)时,快速将流量切换至备份路径,实现对主LSP的保护。
LDP FRR对LSP的两种保护方式
Manual LDP FRR
使用命令来指定建立的备份LSP的出接口和下一跳,建立备份LSP并下发转发表项。
Auto LDP FRR
保留的Liberal Label来自备份路由出接口和下一跳,且满足备份LSP触发策略,同时没有手工配置的备份LSP时,才能够建立备份LSP并下发转发表项 Auto LDP FRR策略默认是32位的备份路由触发LDP建立备份LSP。
通过LDP FRR为来自非下一跳的标签映射生成LSP,作为主LSP的备份,建立转发表项,作为主转发表项的备份。当主LSP故障时,能快速切换到备份LSP,避免流量的丢失。
LDP NSR
本远端LDP会话共存
②
MPLS 控制层面故障,保证转发层面不中断
LDP GR
原因
在MPLS网络中,设备协议重启或主备倒换时,设备会删除转发平面上的标签转发表项,导致数据转发中断。
概念
GR Restarter:具备GR能力,且要进行GR的设备。
GR Helper:GR Restarter的邻居,具备GR能力,辅助GR设备完成GR功能的设备。
定时器(3个)
•转发状态保持定时器:标识了LDP GR过程持续的时间。
•重连接定时器:GR Restarter发生协议重启或主备倒换后,GR Helper检测到和GR Restarter的LDP会话失败,将启动重连接定时器,等待LDP会话的重新建立。
•恢复定时器:LDP会话重新建立后,GR Helper启动恢复定时器,等待LSP的恢复。
实现过程
5. LDP安全机制
LDP MD5认证
把TCP头、LDP会话消息以及用户设置的密码,通过MD5算法计算得出。
LDP Keychain认证
LDP GTSM
三、MPLS VPN
交换路由信息
CE1---PE1---P---PE2---CE2 PE1收到IPv4路由是根据接口绑定的VPN实例打上RD值,变成VPNv4路由,在发布给对方PE时, 下一跳更改为自身,并且打上私网标签,私网标签由MP-BGP随机生成,并加上扩展团体属性RT值, 通过update报文发给PE2 PE2收到路由时,将VPNv4路由转换成IPv4路由,通过update报文中的RT与自身RT做匹配,匹配成功, 根据VPNv4路由的下一跳找合适的隧道,保留该隧道的Tunnel id和标签 将VPNv4路由放入实例路由表中,然后PE2将路由传递给CE2
数据转发
CE1---PE1---P---PE2---CE2 1.CE1发送一个数据 2. PE1从绑定vpn实例的接口收到后, 根据绑定的VPN实例的RD找对应的VPN转发表 根据报文目标IP找对应的Tunel ID,给报文打上对应的私网标签 根据下一跳的Tunel ID找到对应的隧道,将报文从隧道发出去 根据隧道Tunnel ID找NHLFE到对应的出标签,打上公网标签 数据包根据公网LDP隧道穿越骨干网,经过P设备到达PE2 3. PE2收到数据包后, 发现数据包携带MPLS报文,交给MPLS协议处理,MPLS协议剥离外层标签。 PE2设备在根据私网标签,就知道从什么接口发给CE2, PE2发现私网标签处于栈底(S=1),于是剥离私网标签,进行IP转发。
MPLS VPN 汇总的影响: 详情参见产品手册LDP跨域扩展 对于聚合路由,LDP只能建立Liberal LSP,无法建立跨越IGP区域的LDP LSP,无法提供必要的骨干网隧道。 例如:R1---R2----R3----R4 R4上有个Loopback0 R3对4.4.4.4/32做汇总成/24通告给R2,R2收到4.4.4.0/24 导致R2及上游公网lsp构建不完整。
基本概念(5)
Site
一个Site中的设备可以属于多个VPN; 一个Site可以包含多个CE,但一个CE只属于一个Site。
地址空间重叠
允许VPN使用重叠地址空间情况: 两个VPN没有共同的Site 两个VPN有共同的Site,但此Site中的设备不与两个VPN中使用重叠地址空间的设备互访
VPN实例
不同VPN之间的路由隔离通过VPN实例(VPN-instance)实现。
VPN实例信息包括:IP路由表、标签转发表、与VPN实例绑定的接口以及VPN实例的管理信息。 VPN实例管理信息包括:RD、路由过滤策略、成员接口列表等。
VPN、Site、VPN实例之间的关系: ①VPN是多个Site的组合。一个Site可以属于多个VPN。 ②每一个Site在PE上都关联一个VPN实例 ③VPN实例与VPN不是一一对应的关系,VPN实例与Site之间存在一一对应的关系。
RD与VPNv4地址
传统BGP无法正确处理地址空间重叠的VPN的路由,对端PE无法区分相同网段的路由,所以就需要RD。
CE双归属时保证路由正常。
VPN Target
控制VPN路由信息的发布,实现多种VPN组网方案。
基本原理(6)
私网标签分配
PE通过MP-BGP为私网路由分配MPLS标签,发布给骨干网的PE
私网路由交叉
公网隧道迭代
私网路由的选择
BGP/MPLS IP VPN路由的发布
BGP/MPLS IP VPN报文的转发
基本组网
Intranet VPN
Extranet VPN
Hub and Spoke
组网
跨域VPN
跨域VPN-OptionA方式
组网
路由信息发布
报文转发
特点
跨域VPN-OptionB方式
组网
路由信息发布
报文转发
特点
跨域VPN-OptionC方式
组网
路由信息发布
报文转发
特点
VPN可靠性
VPN FRR
VPN FRR:支持PE1设备将最优的PE2发布的路由信息和次优的PE3发布的路由信息都填写在转发项中,最优的路由指导业务流量转发,次优路由作为备份路由。 当PE2节点故障时,PE1感知到PE1与PE2之间的外层隧道不可用,将LSP隧道状态表中的标志设置为不可用并下发到转发引擎中, 转发引擎命中一个转发项之后,检查该转发项对应的LSP隧道状态, 如果为不可用,则使用本转发项中携带的次优路由的转发信息进行转发。 这样,报文就会被打上PE3分配的内层标签,沿着PE1与PE3之间的外层LSP隧道交换到PE3,再转发给CE2,从而恢复CE1到CE2的业务,实现PE2节点故障下的端到端的快速收敛。 VPN FRR技术面向内层标签的快速倒换,在外层隧道的选择方面,可以是LDP LSP或RSVP TE,转发引擎在报文转发的时候感知到外层隧道的状态为不可用就进行基于内层标签的倒换。
VPN GR
VPN NSR
VPN 隧道策略
应用场景
BGP/MPLS IP VPN的应用
Hub and Spoke的组网应用
VPN与Internet互联