MPLS TE可靠性及其案例

MPLS TE可靠性及其案例

MPLS TE可靠性

技术分类 说明 包含特性
隧道属性更新中的可靠性机制 保证属性更新前后建立的CR-LSP流量切换中的可靠性。 Make-Before-Break
故障检测技术 对MPLS TE网络中的故障进行快速检测,确保快速触发故障的保护技术生效。 RSVP Hello
BFD for MPLS TE
流量保护技术 网络级可靠性:对MPLS TE网络端到端路径以及局部节点进行保护。 CR-LSP备份
TE FRR
共享风险链路组]
设备级可靠性:确保MPLS TE网中的节点控制层面故障时,转发层面不中断。 RSVP GR

Make-Before-Break

背景

对于一条建立好的MPLS TE隧道而言,当链路属性或隧道属性变化导致有了更优的路径时,原隧道要按照新的属性重新建立CR-LSP,并在建成后将流量切换到新的CR-LSP上。在上述过程中很可能出现新的LSP尚未建立完成时就把流量切换过去而导致流量丢失的问题。

实现过程

Make-Before-Break是一种在原有路径被拆除前先建立新路径(也称为Modify LSP),将流量进行切换的一种机制。它可以在进行流量切换时尽可能不丢失数据和不占用额外带宽的前提下改变MPLS TE隧道属性。Make-Before-Break是通过SE风格实现的。

新路径建立时,可能会与原路径在某些共同链路上竞争带宽资源,这会导致新路径竞争失败而无法建立。通过Make-Before-Break机制,新路径需要预留的带宽不被重复计算,即采用原路径使用的带宽。路径重合的地方不额外占用带宽,路径不重合的地方还是额外占用带宽。

资源预留风格是指RSVP节点处理上游节点的资源预留请求时的资源预留方式。

  • 固定过滤风格FF(Fixed Filter):为每个资源预留请求的发送者创建单独的预留,该预留不与其他发送者共享。即同一链路的不同CR-LSP有不同的资源预留。
  • 共享过滤风格SE(Shared Explicit):建立单一的资源预留。该预留允许指定的一系列发送者共享。即同一链路的不同CR-LSP共享一个资源预留。

Make-Before-Break机制引入了切换延迟时间和删除延迟时间。当新CR-LSP建立成功时,延迟一定的时间再将流量转到新CR-LSP上,并再延迟一定的时间删除原来的CR-LSP。

RSVP Hello

RSVP的Hello扩展机制用于快速检测RSVP节点之间的可达性,通常用来触发TE FRR的路径保护。同时还可以检测邻居节点是否处于重启状态,以支持邻居实现RSVP GR。

背景

RSVP Refresh消息除了可以进行节点间状态(包括PSB和RSB)同步之外,另外起到的一个作用就是可以检测各邻居间的可达性,维护RSVP节点之间的邻居关系。

但是这种软状态机制所采用的Path消息和Resv消息检测邻居关系是否可达的速度较慢,在路径出现故障时不能及时触发业务向备份路径切换流量。

实现过程

1.Hello握手机制

  • 当LSRA接口下使能了RSVP Hello时,LSRA会向LSRB发送Hello Request消息。

  • 若LSRB收到了Hello消息,并且LSRB也使能了RSVP Hello,就会给LSRA节点回复Hello ACK消息。

  • LSRA收到LSRB的Hello ACK消息后,就确认LSRA的邻居LSRB是可达的。

2.检测邻居丢失

在LSRA向LSRB发送Hello Request握手成功后,LSRA与LSRB就开始互通Hello消息。当LSRA连续三次向LSRB发送Hello Request消息后,LSRB仍然没有给LSRA回Hello ACK消息,此时就认为LSRB邻居丢失,触发TE FRR切换并重新初始化RSVP Hello。

3.检测邻居重启

当LSRA和LSRB都使能RSVP GR功能时,在LSRA检查到邻居LSRB丢失后,LSRA就等待LSRB发送有GR扩展的Hello Request消息。收到此消息后,LSRA开始协助LSRB恢复RSVP状态,并向LSRB发送Hello ACK消息。LSRB收到LSRA回复的Hello ACK消息后,发现LSRA已开始协助自己进行GR。然后LSRA和LSRB互通Hello消息,维持GR恢复状态。

RSVP Hello适用于TE FRR和RSVP GR的场景中。

CR-LSP备份

CR-LSP备份技术能够为MPLS TE隧道提供端到端的路径保护能力,当入节点感知到主CR-LSP不可用时,会将流量切换到备份路径上。当主CR-LSP路径恢复后再将流量切换回来,以实现对主CR-LSP路径的备份保护

相关概念

  • 热备份(Hot-standby):指创建主CR-LSP后随即创建备份CR-LSP。当主CR-LSP故障时,将业务流量切换至备份CR-LSP。
  • 普通备份:指主CR-LSP故障后创建备份CR-LSP,再将业务流量切换至备份CR-LSP。
  • 逃生路径:指在主、备CR-LSP都故障时,创建一条临时的CR-LSP,将业务流量切换到逃生路径上。

实现过程

1.规划

部署子项 热备份 普通备份 逃生路径
路径 可以通过配置指明是否允许主备路径部分重合。当备份CR-LSP使能显式路径建立时,以显式路径作为约束条件建立备份CR-LSP。热备份CR-LSP支持如下约束条件:显式路径亲和属性跳数限制Overlap-path功能 无论备份CR-LSP是否用显式路径建立,备份CR-LSP的创建路径都可以与主CR-LSP的路径部分重合。普通备份CR-LSP支持如下约束条件:显式路径亲和属性跳数限制 由隧道入节点自动计算得出。逃生路径支持如下约束条件:亲和属性跳数限制
带宽 默认情况热备份CR-LSP带宽与主CR-LSP带宽值相等。支持dynamic-bandwidth技术,以保证热备份CR-LSP不承载流量时不会额外占用带宽。 带宽始终与主CR-LSP带宽值相等。 逃生路径不会在路径上预留带宽,只具有路径保护能力。
配置组合 可以与逃生路径同时部署,共同保护主CR-LSP。 只能单独作为备份路径保护主CR-LSP。
备份模式 简要描述 优点 缺点
热备份模式 系统在建立主CR-LSP的同时,会创建一条与主CR-LSP路径分离的备份CR-LSP。 流量切换速度快。 如果没有配置热备份CR-LSP动态带宽功能,则需要占用额外的带宽。
普通备份模式 当主CR-LSP失效后,系统将使用其他显式路径建立CR-LSP。 无需占用额外的带宽。 流量切换速度不如热备份模式快。
逃生路径模式 当主CR-LSP和备份CR-LSP都失效后,系统将使用剩余的路径建立逃生路径。 对路径建立的要求较为宽松,容易建立。 可能会降低某些QoS保证。

2.备份CR-LSP创建

同一条隧道下可能存在多种建立备份CR-LSP的方式。在创建CR-LSP时,为了使隧道能够尽可能快速的承载业务,系统会轮流创建每种方式的备份CR-LSP,直到建立成功。

当新提交一条隧道或者隧道状态变为Down时,系统将按一定的优先级顺序轮流尝试创建热备份CR-LSP、普通备份CR-LSP、逃生路径,直到隧道建立成功。

3.备份CR-LSP的属性修改

当用户修改了备份CR-LSP的约束条件时,入节点会触发重建备份CR-LSP。备份CR-LSP重建的过程采用了Make-Before-Break机制。当携带新属性的CR-LSP完全建立成功以后,如果此时备份CR-LSP已经承载了流量,MPLS TE隧道会将流量切换到新的CR-LSP上,然后删除原来的备份CR-LSP。

4.故障检测

CR-LSP备份技术可以采用如下故障检测技术:

  • RSVP-TE的默认错误通告机制,但通常检测速度稍慢。
  • BFD for CR-LSP:可以对故障进行快速检测,推荐采用此种方式。

5.流量正切

当隧道主CR-LSP发生故障后,入节点会触发流量从主CR-LSP向备份CR-LSP切换。其中切换的优先级顺序为热备份优先级最高,其次是普通备份,逃生路径优先级最低。

6.流量回切

在备份CR-LSP承载流量的期间,流量会根据具体情况,按照一定优先级进行路径回切。其中主CR-LSP有最高优先级,其次是热备份CR-LSP,普通备份CR-LSP优先级最低。

CR-LSP热备份dynamic-bandwidth保护机制

热备份CR-LSP可以配置dynamic-bandwidth保护,即动态带宽保护功能。在该功能下,在主CR-LSP出现故障之前,热备份CR-LSP并不会额外占用网络中的带宽资源(带宽值为0),只有当热备份CR-LSP真正承载流量后才会占用网络的带宽资源。这样可以更大幅度的节省网络资源,缩减网络开销。

使能动态带宽保护功能后,主CR-LSP承载流量,而热备份CR-LSP将不占用链路带宽。其具体过程为:

  1. 当主CR-LSP出现故障后,流量立即切换到带宽值为0的热备份CR-LSP,同时MPLS TE隧道入节点立即采用Make-Before-Break机制重建热备份CR-LSP。
  2. 当新的热备份CR-LSP建立成功后,流量就切换到新的CR-LSP上,同时将带宽值为0的热备份CR-LSP删除。
  3. 当主CR-LSP故障恢复后,流量会重新回切到主CR-LSP。此时热备份CR-LSP会释放已占用的带宽,重新采用0带宽建立热备份CR-LSP。

CR-LSP热备份Overlap-path功能

热备份CR-LSP可以配置Overlap-path功能,即在满足热备份CR-LSP的路径与主CR-LSP的路径尽量分离的情况下,支持部分重合,从而保证热备份CR-LSP对主CR-LSP的保护。

TE FRR(Fast ReRoute)

背景

MPLS TE隧道的链路或节点故障会引发隧道由主用路径向备份路径的切换。此切换过程涉及到IGP路由在备份路径的重新收敛、CSPF重新计算路径以及CR-LSP的重新建立,速度较慢,会导致流量的丢失。

TE FRR(Fast ReRoute)技术可以解决此问题。TE FRR会预先建立绕过故障的链路或者节点的旁路隧道,使得MPLS TE隧道链路或节点故障时独立于IGP协议的重收敛,快速切换到旁路隧道,避免流量丢失。在流量从旁路隧道传输的同时,MPLS TE隧道入节点会继续发起主CR-LSP的重建。

相关概念

在这里插入图片描述

TE FRR中的概念

概念名称 说明
Primary CR-LSP 主CR-LSP,被保护的CR-LSP。
Bypass CR-LSP 保护主CR-LSP的CR-LSP。Bypass CR-LSP一般处于空闲状态,不独立承载业务。如果需要使用Bypass CR-LSP保护主CR-LSP的同时独立承载业务数据的转发,需要为Bypass CR-LSP分配足够的带宽。
PLR(Point of Local Repair) 本地修复节点。Bypass CR-LSP的入节点,必须在主CR-LSP的路径上,可以是主CR-LSP的入节点,但不能是主CR-LSP的出节点。
MP(Merge Point) 汇聚点。Bypass CR-LSP的出节点,必须在主CR-LSP的路径上,并且不能是主CR-LSP的入节点。

TF FRR保护分类表

分类标准 类型 描述
保护对象 链路保护 在下图中,PLR和MP之间由直连链路(LSRB→LSRC)连接,主CR-LSP经过这条链路。Bypass LSP 1可以保护该链路,称为链路保护。
节点保护 在下图中,PLR和MP之间存在一台设备(LSRB→LSRC→LSRD),主CR-LSP经过该设备(LSRC)。Bypass LSP 2可以保护该节点,称为节点保护。
带宽保证 带宽保护 为Bypass CR-LSP配置大于等于主CR-LSP的带宽值,为主CR-LSP提供路径保护的同时提供带宽保护。
非带宽保护 不为Bypass CR-LSP配置带宽值,只能保证主CR-LSP的路径保护。
实现方式 手工方式 Bypass CR-LSP是由用户手工配置的,其与主CR-LSP的绑定关系也是由用户指定的。
自动(Auto)方式 Bypass CR-LSP是由使能了Auto FRR的节点自动建立的。只要经过该节点的主CR-LSP带有FRR保护请求,且拓扑结构满足FRR的拓扑结构,此节点就会自动为这条主CR-LSP建立Bypass CR-LSP并将两者绑定。

在这里插入图片描述

实现过程

1.主CR-LSP的建立

主CR-LSP的建立过程与普通CR-LSP的建立过程一致,不同之处主要是:建立主CR-LSP过程中,隧道入节点会在Path消息的SESSION_ATTRIBUTE对象中添加相关标记。比如,局部保护标记用于标识主CR-LSP需要绑定Bypass CR-LSP,带宽保护标记则表示需要进行带宽保护。

2.绑定Bypass CR-LSP

为主CR-LSP寻找合适的Bypass CR-LSP的过程称为绑定。只有具有局部保护标记的主CR-LSP才会触发绑定策略,绑定是在隧道切换之前完成的。

实现绑定前,节点需根据Resv消息的RRO计算出Bypass CR-LSP的出接口、NHLFE、MP的LSR ID、MP分配的标签及保护的类型等信息。

对于主LSP上的PLR节点而言,其下一跳(NHOP)或下下一跳(NNHOP)是已知的。如果Bypass CR-LSP的Egress LSR ID与NHOP的LSR ID相等,就可以形成链路保护;如果Bypass CR-LSP的Egress LSR ID与NNHOP的LSR ID相等,就可形成节点保护。如下图中的Bypass LSP 1和Bypass LSP 2,前者即为链路保护,后者即为节点保护。
在这里插入图片描述

3.故障检测

  • 链路保护直接使用链路层协议实现故障检测和通告,链路层发现故障的速度与链路类型直接相关。
  • 节点保护则使用链路协议检测链路故障,在链路没有故障的情况下,使用RSVP Hello机制或结合BFD for RSVP机制检测被保护节点的故障。

一旦检测到链路故障或节点故障,就会同步触发FRR的流量切换。

对于节点保护,只保护被保护节点及其与PLR之间的链路。对于被保护节点和MP之间的链路故障,PLR无法感知。

4.切换

切换是指主CR-LSP故障后,业务流量和RSVP消息从主CR-LSP切换到Bypass CR-LSP上,并向上游通告切换已经发生的过程。在切换的时候,会采用MPLS的标签嵌套机制,PLR节点会对数据报文先压入内层标签,再压入Bypass CR-LSP的下一节点为其分配的标签作为外层标签,Bypass CR-LSP会在倒数第二跳弹出外层标签,把只带有内层标签的报文传给MP,由于该内层标签原本就是MP分配给上一个节点的,因此MP能继续转发此报文给主CR-LSP的下一跳。

5.回切

切换后主CR-LSP的Ingress节点会试图重建主CR-LSP,并在主CR-LSP重建成功后,将业务流量和RSVP消息从Bypass CR-LSP回切到主CR-LSP上,其中尝试重建的CR-LSP称为Modified CR-LSP。此过程,TE FRR采用Make-Before-Break机制,即只有Modified CR-LSP建立成功后,原来的主CR-LSP才能被删除。

共享风险链路组

SRLG(Shared Risk Link Group,共享风险链路组)

共享风险链路组SRLG(Shared Risk Link Group)使得备份路径不与隧道主路径建立在具有同等风险等级的链路上,进一步增强TE隧道的可靠性。

背景

在这里插入图片描述

如果共享的这段链路如果出现故障,会同时影响到主CR-LSP和Bypass CR-LSP,从而导致FRR保护失效。此时需要在建立Bypass CR-LSP时避过这种和主CR-LSP有共同风险的链路,以保证TE FRR能有效保护MPLS TE主隧道。这种技术就是SRLG。

SRLG是具有相同故障风险的一组链路集合,即如果其中一条链路失效,那么组内的其他链路也可能失效。这种情况下使用组内的其他链路作为失效链路的热备份CR-LSP或Bypass CR-LSP,将不能起到保护的作用。

实现过程

SRLG是一种链路属性,用数值表示,数值相同的链路表示属于同一个共享风险链路组。

SRLG是通过IGP TE来发布给整个MPLS TE域即相同域中的节点能够获取域内所有链路的SRLG信息。CSPF计算路径时,不仅会考虑带宽等约束条件,同时将SRLG作为约束条件来计算。

MPLS TE SRLG具有两种操作模式:

  • 严格SRLG模式(strict mode):对热备份CR-LSP和Bypass CR-LSP路径的计算,必须考虑SRLG的约束条件。
  • 首选SRLG模式(preferred mode):对热备份CR-LSP和Bypass CR-LSP计算路径时候可以不考虑SRLG的约束条件。如果第一次CSPF考虑SRLG约束计算备份路径失败,那么第二次进行算路的时候将不会考虑SRLG的约束条件。

SRLG适用于应用了TE FRR和CR-LSP热备份技术的网络场景。

BFD for MPLS TE

实现过程

BFD for RSVP

当RSVP相邻节点之间存在二层设备时,这两个节点只能根据Hello机制感知链路故障,故障时间为秒级,这将导致数据大量丢失。

BFD for RSVP使用BFD检测RSVP邻居关系,BFD for RSVP可实现毫秒级故障监测时间,并配合RSVP协议快速的发现RSVP邻接故障。BFD for RSVP一般用在TE FRR中PLR节点与主路径的RSVP邻居之间存在二层设备的情况
在这里插入图片描述

BFD for CR-LSP

BFD for CR-LSP是对CR-LSP的检测,能够快速检测到CR-LSP的故障,并及时通知转发层面,从而保证流量的快速切换。BFD for CR-LSP通常与热备份CR-LSP或者隧道保护组配合使用。
在这里插入图片描述

BFD for TE Tunnel

BFD for TE Tunnel使用BFD检测整条TE隧道,从而触发VPN FRR等应用进行流量切换。

BFD for TE Tunnel与BFD for CR-LSP的区别是故障通告的对象不同。BFD for TE Tunnel是向VPN等应用通告故障,触发业务流在不同TE隧道接口上的切换;BFD for CR-LSP是向TE隧道通告故障,触发业务流在同一TE隧道内的不同CR-LSP上的切换。

三者区别

检测技术 检测对象 部署位置 适用场景 BFD会话方式的支持
BFD for RSVP RSVP邻居关系 RSVP会话的两个邻居节点 与TE FRR联用 动态
BFD for CR-LSP CR-LSP 隧道的首尾节点 与热备份CR-LSP联用 动态静态
BFD for TE Tunnel MPLS TE隧道 隧道的首尾节点 与VPN FRR或者VLL FRR联用 静态

RSVP GR(Graceful Restart)

可以保证节点故障后控制平面主备倒换时转发平面上的数据传输不会中断。

背景

PE(Provider Edge)路由器是典型的GR应用场所,特别是用户单点接入骨干网的情况。当单点PE出现故障或者出于维护目的(比如升级软件版本)导致PE路由器发生主备倒换,此时如果部署了MPLS TE隧道来实施流量工程或者作为VPN公网隧道,则可以在类似PE3这样的单点接入设备上部署RSVP GR,给用户的关键业务提供不间断转发的高可靠性保障。
在这里插入图片描述

相关概念

RSVP GR是RSVP-TE的一种快速状态恢复机制。

GR过程中有GR-Restarter和GR-Helper两种角色的路由器,GR-Restarter是指进行协议平滑重启,GR-Helper是指协助协议平滑重启。

RSVP GR主要有下面三种消息类型:

  • 带GR扩展的Hello消息:该消息用于检测邻居的GR状态。
  • GR Path消息:由上游节点发出,该消息携带有最后一次进行Path刷新消息的内容。
  • Recovery Path消息:由下游节点发出,该消息携带有下游节点最后一次收到的Path消息的内容。

RSVP GR通过RSVP Hello扩展来检测邻居的GR状态。

实现过程

在这里插入图片描述

GR-Restarter节点故障重启后,将停止向邻居节点发送Hello消息。使能了GR的邻居节点(GR-Helper)在连续3次未收到Hello消息后,认为邻居在做GR,所有的转发信息都将继续保持。同时接口板继续传输业务,并等待GR-Restarter节点进行GR恢复。

在GR-Restarter节点启动后,如果收到邻居的Hello消息,会向邻居节点发送Hello消息,处于隧道上游和下游的节点的处理方式是不一样的:

  • 上游的GR-Helper节点收到该消息后,向GR-Restarter节点(自己的下游)发出GR Path消息。
  • 下游的GR-Helper节点收到该消息后,向GR-Restarter节点(自己的上游)发出Recovery Path消息。

当GR-Restarter节点收到GR Path消息和Recovery Path消息时,根据这两个消息重新建立CR-LSP相关的状态信息,这样本地控制层面信息就恢复了。

若下游支持节点不能发送Recovery Path消息,则本地状态仅通过GR Path消息来重建。

采用RSVP-TE协议建立MPLS TE隧道承载业务时,可以部署RSVP GR来提高本节点的设备可靠性。

配置示例

配置RSVP认证示例

配置CR-LSP热备份示例

配置转发捷径将流量引入TE隧道示例

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100111.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 中文写代码?开始不信后来用中文写了剧情小游戏!嗯,真香~

    中文写代码?开始不信后来用中文写了剧情小游戏!嗯,真香~你还不知道可以用中文编写脚本制作游戏?那还不赶紧点进来看看~

  • 验证码的作用及原理

    验证码的作用及原理验证码的发展历程从互联网诞生前期,互联网是没有验证码的。在论坛博客上发帖子,只要敲一下回车键按“发表”就可以了。然而,有白客就有黑客,随着计算机程序的愈发发展,黑客十分猖狂。他们编写了一种能够大量、重复编写信息的程序,伪装成人类用户,肆无忌惮的在网络上倾倒大量的、无意义的“僵尸”信息,垃圾邮件、垃圾广告、垃圾评论到处飞。更编写了模仿登录、恶意激活成功教程代码、刷票等恶意程序。这严重影响了互联网的正常运行,导致体验效果很差。以受影响最大的电子邮件的提供商为例:用户每天收到数以千计的垃圾邮件,严重影响工作效率。.

  • vs实现用户注册登录_用户注册登录怎么填写

    vs实现用户注册登录_用户注册登录怎么填写publicstaticUserInfoGetUser(stringname,stringpwd){//填写搜索姓名和密码的sql语句stringsql=string.Format(“select*fromUserInfowhereLoginName='{0}’andPassword='{1}'”,name,pwd);DataTabledt=DBHelper.ExcuteTab.

    2022年10月13日
  • 用户态和内核态的简单理解「建议收藏」

    用户态和内核态的简单理解「建议收藏」文章目录linux基础系统调用和库函数的区别什么是用户态和内核态用户态和内核态的相互转换linux基础linux的kernel内核外是系统调用,系统调用外是shell、库函数系统调用和库函数的区别内核:屏蔽了调用各硬件资源的细节系统调用:内核提供给用户调用的接口,但系统调用的可移植性差移植性差的原因:windows、linux内核的系统调用是不同的,比如:同一个功能提供给用户的函数名、参数都不相同,会出现从一个系统移植到另一个系统无法正常运行。库函数:为了解决系统调用移植新差的问题,同时封

  • java复杂对象转json字符串_java处理json数据

    java复杂对象转json字符串_java处理json数据最近对自己写的elasticsearch客户端框架在进行性能优化,数据插入部分使用的是JAVABean对象方式传参,框架内部使用了fastjson进行对象转json字符串的操作,尝试着使用不同方式进行对象转json字符串操作。找到了一种性能更好的方式,具体请看下面代码段:packagetest;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;importcom.google.common…

  • Unity HLOD System[通俗易懂]

    Unity HLOD System[通俗易懂]1.1HLODSystem简介首先,HLODSystem主要的目标是为了减少DrawCall。然后,进行更多的Batch批处理。其次,减少面数和纹理,这样我们相应地节省了内存,并提升了加载时间。HLODSystem只针对当前所在的地方进行加载,它会流式加载网格和纹理,在后台进行异步的操作。本次HLOD是基于官方AutoLOD代码的扩展和改进制作出来了的,链接:https://github.com/Unity-Technologies/AutoLOD,链接里有一篇官方的文章,…

    2022年10月22日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号