本文为《SRv6可靠性方案》第一篇,第二篇详见《SRv6技术课堂:SRv6可靠性方案(二)》。

1 传统网络可靠性方案的问题

交互式多媒体服务的应用,例如,VoIP对网络丢包非常敏感,通常只能容忍数十ms的网络丢包,而网络中链路或路由器发生故障时,路由器硬收敛时间通常为数百ms甚至达到秒级。为最大程度地减少流量损失,路由器预先安装一条备份路径,当故障发生的时候,由邻近故障点的路由器(PLR:Point of Local Repair,本地修复节点)快速切换到备份路径,从而最大限度减少网络故障的丢包,提升收敛性能。这种机制称为FRR(Fast reroute)。

传统FRR技术受限于保护范围以及场景限制,通常会配合多跳BFD实现端到端保护,例如:BFD + HSB实现TE的端到端保护,BFD + VPN FRR实现PE故障的保护,但是,依赖BFD实现端到端存在一系列问题:
1)层次化BFD依赖不同的BFD发包间隔分层切换,无法满足50ms切换性能(比如北京到广州的时延至少30多ms)。
2) BFD容量限制会限制网络和业务部署(比如支持4K VPN的PE设备需要支持4K BFD连接,这是一般设备做不到的)。
3)部署复杂,需要逐连接的部署多跳BFD。

通过SRv6可以实现任意故障以及任意场景的端到端50ms保护,针对任意故障点都采用本地保护技术,这使得网络可以彻底消除多跳BFD的部署,以及任意故障点的50ms保护。SRv6端到端50ms技术针对不同的故障场景包含一系列的保护技术:SRv6 Ti-LFA(Topology-Independent Loop-free Alternate,拓扑无关的无环路备份路径),SRv6 Endpoint保护(TE情况下中间节点保护),SRv6尾节点保护(PE节点保护),SRv6 防微环(IP网络分布式无序收敛过程中的环路防护)。这里将分三期介绍这四种技术。第一期介绍SRv6 Ti-LFA,第二期介绍SRv6 EndPoint保护、SRv6尾节点保护,第三期介绍SRv6防微环技术。

2 SRv6 Ti-LFA技术介绍

传统LFA技术及面临的问题

在了解Ti-LFA之前,我们先介绍下传统的FRR技术。最早出现的FRR技术是LFA(Loop-Free Alternate).

图1-1 LFA保护原理

LFA的原理是,找到一个非主下一跳的邻居节点,如果这个邻居节点到目的节点的最短路径不经过源节点(计算节点),则这个邻居节点为无环备份下一跳。满足如下公式的为无环下一跳:(其中,N为邻居节点,D为目的节点,S为运行LFA计算的源节点):
Distance_opt(N, D) < Distance_opt(N, S) +Distance_opt(S, D)

如果邻居节点满足上述公式,则该邻居满足链路保护条件。若该邻居节点同时满足下述公式,则该邻居满足节点保护条件:(其中,N为邻居节点,D为目的节点,E为运主下一跳节点):
Distance_opt(N, D) < Distance_opt(N, E) + Distance_opt(E, D)

如上图所示,结点1要访问结点4,初始路径为1->3->4,结点1的主下一跳为结点3,使用LFA算法计算备份下一跳,由于只有一个可用的备份下一跳为结点2,使用结点2进行上述两个公式的计算,计算结果是均能满足上述公式,所以,结点2是满足节点保护的无环下一跳。结点1将备份下一跳预安装到Fib表,当主下一跳故障的时候,结点1在转发面直接切换到备份下一跳,而不需要控制面收敛。

LFA遇到的问题是由于拓扑规划的问题,很多场景下,无法找到合适的备份下一跳,LFA也就是无法形成了。RFC 6571数据统计LFA场景覆盖率为80%~90%。

RLFA:传统LFA技术的改进及面临的问题

LFA在网格状拓扑中通常能够获得较好的覆盖范围,但是,针对环网,LFA的覆盖范围很低。为了提升保护范围,RFC7490定义了一种RLFA(Remote Loop Free Alternate,远端无环路备份路径)技术,用于提升FRR保护范围。RLFA的基本原理是找到一个不会经过故障节点的中间结点(通常称PQ结点),方式如下:

定义P空间:源节点使用最短路径访P节点不会经过故障链路,满足该条件的P节点的集合称为P空间。至少存在一个非主下一跳的邻居节点,满足如下公式,则P节点属于P空间:
Distance_opt(N, P) < Distance_opt(N, S) + Distance_opt(S, P)

定义Q空间:Q节点到目的节点的最短路径不经过故障链路,满足该条件的Q节点的集合成为Q空间。满足如下公式:
Distance_opt(Q, D) < Distance_opt(Q, S) + Distance_opt(S, D)
则Q节点属于Q空间。

PQ结点则为P空间和Q空间的交集。

图1-2 RLFA保护原理

如上图所示,结点1要访问结点3,最短路径为1->3,如果结点1通过LFA计算到节点3的备份路径,则无法计算出备份路径,因为节点2不满足LFA 无环备份下一跳的条件。节点2到节点3的最短路径经过源结点1,也就是说如果结点1将报文送给节点2,节点2还会将报文送回给1。所以,节点2无法作为备份下一跳。

我们来看看RLFA如何解决这个问题的,通过上文中提到的PQ节点计算公式,我们可以计算出结点4满足PQ结点的条件,则我们可以在节点1到节点4之间建立一条隧道(例如:LDP隧道),同时指定该隧道的下一跳为结点2。我们可以把这条隧道作为虚拟的LFA备份下一跳预安装在转发表,当主下一跳故障的时候,快速切换到备份下一跳,从而实现FRR。

但是RLFA对网络拓扑还是有要求的,如果全网节点都找不到满足PQ条件的结点,尤其对于环网中,存在一条Cost特别大的链路,通常就无法计算出PQ结点。

SRv6 TI-LFA方案

有没有一种算法可以做到不依赖拓扑,或者说与拓扑无关,可以做到100%的故障保护?答案是肯定的。下面我们就介绍SR技术中一项非常重要的故障保护技术:TI-LFA(Topology-Independent Loop-free Alternate,拓扑无关的无环路备份路径)。TI-LFA主要是利用SR的源路由的机制,这使得源节点可以指定一条显示路径,不经过故障链路。但是为了减少Segment List的层数,Ti-LFA也使用了计算PQ节点的算法。

图1-3 SRv6 TI-LFA保护原理

下面采用上图完整地说明一下SRv6 TI-LFA的工作原理。如图所示:节点A到节点F的最短路径为 A->B->E->F,节点B需要计算到节点F的备份路径。

1)排除主下一跳(Link B->E)计算收敛后的最短路径:B->C->D->E->F。
2)计算P空间:按照RLFA介绍的方法计算P空间。如图1-11所示:节点B(源节点永远满足P空间的条件)和节点C为P空间。
3)计算Q空间:按照RLFA介绍的方法计算Q空间。如图1-11所示:节点F(目的节点永远满足Q空间的条件),节点E,节点D为Q空间。
4)计算修复路径:这样我们可以把任意路径表示为:源节点 –>P节点 -> Q节点 -> 目的节点。其中源节点到P节点是无环路径,Q节点到目的节点是无环路径。P节点到Q节点使用严格显式路径来表达,严格显示路径一定是无环的。这样,整条路径就是无环路径。

如图所示:为了简化修复路径,我们选取离源节点最远的P节点以及最近的Q节点,由于SRv6 Sid本身就携带路由信息,所以,SRv6计算备份路径只需要指定P到Q的显示路径即可。节点B到节点F的备份路径为<3::1>。

如下表所示,节点B根据TI-LFA计算结果预先安装备份转发表,用于主下一跳故障的时候激活备份下一跳,修改到节点F的可达性。

表1-1TI-LFA备份转发表

当Link B->E故障:
1)节点B收到目的地址为6::的报文,根据6::查找转发表,主出接口为Intf1。
2)节点B查询到Intf1接口状态为Down,使用备份表项转发,备份出接口为Intf2,并使用T.Insert的方式封装Segment List 3::1, 新增1个SRH扩展头,将用于修复故障的Segment List和目的地址封装在SRH扩展头。SL初始化为1。
3)节点C收到报文,SL—,将6::0替换为外层IPv6地址,POP SRH扩展头,并按3::1关联的下一跳沿着Link C->D转发到节点D(不查路由表,根据报文头封装3::1指定的出接口转发)。

节点D根据6::0查路由表沿着最短路径转发到目的地址F。

根据上面的工作原理描述可以看到,TI-LFA可以真正做到与拓扑无关,满足100%拓扑覆盖的故障保护。不仅如此,它还具有如下优势:

备份路径和收敛后最短路径大多数情况下是一致的,这减少了路径切换的次数。TI-LFA算法是基于收敛后最短路径计算的,只有少数链路故障和节点故障收敛后路径不一致的情况下才会出现备份路径和收敛后路径不一致的情况。

不需要额外的协议以及维护额外的状态。TI-LFA备份路径依赖IGP SR实现,这样减少了为部署可靠性技术引入的额外协议的部署。
(未完待续)

SRv6技术课堂:SRv6可靠性方案(一)相关推荐

  1. SRv6技术课堂:SRv6概述

    作者简介:李振斌 华为首席协议专家/IETF互联网架构委员会(IAB)委员.负责华为的IP协议研究和标准推动工作.自2009年起积极参与IETF标准创新工作,主导和参与了大量IETF RFC/草案.在 ...

  2. 中南大学计算机学院研究生培养方案,中南大学计算机科学与技术专业本科培养方案.doc...

    文档介绍: 中南大学计算机科学与技术专业本科培养方案.doc计算机科学与技术专业本科培养方案一. 专业简介我校计算机科学与技术专业源于早期的电了计算机专业,该专业在1972年由当时的屮南矿冶学院(全国 ...

  3. 中南大学计算机科学与技术课程,中南大学计算机科学与技术专业本科培养方案.doc...

    中南大学计算机科学与技术专业本科培养方案 计算机科学与技术专业本科培养方案 一.专业简介 我校计算机科学与技术专业源于早期的电子计算机专业,该专业在1972年由当时的中南矿冶学院(全国重点大学)创办, ...

  4. 计算机网络教学改革方案,计算机网络技术专业教学改革方案.doc

    计算机网络技术专业教学改革方案 1引言 计算机网络技术专业的教学改革必须以提高人才质量为目的.以人才培养模式改革与创新为主题,转变教育思想,树立以全面素质为基础,以能力为本位的新观念,突出专业技能培养 ...

  5. 高职计算机网络技术课设,计算机专业毕业论文:高职计算机网络技术课堂教学改革研究...

    计算机专业毕业论文:高职计算机网络技术课堂教学改革研究 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 根据本节教材用实验和猜测相结 ...

  6. 自主互助四环节之计算机教案,自主互助学习型课堂的实施方案

    自主互助学习型课堂的实施方案 自主互助学习型课堂以它的高效.自主.学生的自学能力开发吸引了我们每位老师,为了更好地在我校实施自主互助学习型课堂,特制定以下实施方案. 一.预期目标. 通过本学期的&qu ...

  7. 计算机课程大作业答案,计算机接口技术课堂大作业(1)参考答案

    计算机微机原理 计算机接口技术课堂大作业参考答案(1) 姓名: 班级: 学号: 成绩: ---------------------------------- 一.填空题(每空2分,共30分) 1.接口 ...

  8. 绿盟科技发布OpenSSL高危漏洞技术分析与防护方案 G20成员国美国、中国、德国受影响较大...

    近日,OpenSSL官方发布了版本更新,修复了多个OpenSSL漏洞,这次更新所修复的漏洞中,有两个危害等级较高的为CVE-2016-6304和CVE-2016-6305.绿盟科技对此漏洞进行了技术分 ...

  9. 哈尔滨工业大学计算机培养计划,哈工大计算机科学与技术专业本科生培养方案.docx...

    文档介绍: 计算机科学与技术专业本科生培养方案培养目标在可持续发展教育观的指导下,倡导"研究型.个性化.精英式"人才培养理念,培养适应21世纪社会主义现代化建设需要,德.智.体等全 ...

  10. 一个PHP程序员的职业生涯技术提升阶梯规划方案

    优秀的PHP程序员的职业生涯技术提升阶梯规划方案 作者:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,原创文章, B站技 ...

最新文章

  1. appfog下用客户端管理你的mongodb、mysql(类似)
  2. 【NLP】情感分析实战:金融市场中的NLP
  3. zhuan zai suffix tree
  4. (20)Verilog HDL并行块:fork-join
  5. web前端基础(01html基本标签)
  6. java web ssh jar_java web 汽车美容管理系统 ssh 毕设作品
  7. 开始学习openlayer
  8. LSTM api的介绍
  9. D02-R语言基础学习
  10. Spring事务异常回滚
  11. 激光雕刻机:废旧光驱的涅槃之路
  12. 图标搜索引擎:Findicons
  13. 转:如何在艰难时期留住好员工
  14. php正则表达式表情,php正则表达式储存展示表情字符的方法
  15. 从「富爸爸现金流」游戏中总结的理财四条
  16. 雄关漫道真如铁,而今迈步从头越【我的2017】
  17. xhEditor编辑器入门基础
  18. 鸿蒙 悟空 嫦娥,哪位女神在鸿蒙已得道,实力让孙悟空悚惧?
  19. 创建SpringMVC项目的基本步骤
  20. Linkage Mapper User Guide 核心工具Building Network and Map Linkages中文版介绍

热门文章

  1. Seek and Destroy
  2. python 框架是什么意思_Python框架有哪些?区别是什么?
  3. 借助CSS来管理js事件
  4. centos压缩和解压缩命令之zip
  5. codeforces 812B. Sagheer, the Hausmeister
  6. matlab 的 legend 用法
  7. 爱奇艺开播助手Flutter跨平台Hybrid实践\n
  8. 解决windows写Django项目在templates中的html文件中引入外部css,js不成功的方法
  9. mysql配置my.cnf文件,以及参数优化提升性能
  10. javascript 正则