OSPF的认证机制:


接口认证和区域认证同时开启时,接口认证优于区域认证。如下图:(模拟器eNSP)

R1和R2之间开启链路认证:

认证的方式有多种,例如md5,keychain等,这里我们用md5进行认证:
ospf authentication-mode md5 1 cipher xxx
当我们配置完一边时,另外一边检测到对方开启的认证,自己没开启,不会进行识别,当hello包老化后就会断掉连接,同理,本端也会因为对方发送的报文中没有加密认证,不接收,当hello包老化后断开连接。
我们可以抓包查看OSPF报文的加密信息,在OSPF报文头部中都会带有:

然后在区域1中进行区域的认证:进入区域中配置即可。

需要注意的是,开启了区域认证,那么整个区域的的设备都需要开启。

OSPF收敛特性:


快速收敛:
OSPF快速收敛是为了提高路由的收敛速度而做的扩展特性。

技术一: I-SPF(Incremental SPF)改进了这个算法,除了第一次计算时需要计算全部节点外,每次只计算受到影响的节点,而最后生成的最短路径树SPT与原来的算法所计算的结果相同,大大降低了CPU的占用率,提高了网络收敛速度。

技术二: PRC(Partial Route Calculation)部分路由计算的原理与I-SPF相同,都是只对发生变化的路由进行重新计算。不同的是,PRC不需要计算节点路径,而是根据I-SPF算出来的SPT来更新路由。在路由计算中,叶子代表路由,节点则代表路由器。SPT变化和叶子变化都会引起路由信息的变化,但两者不存在依赖关系,PRC根据SPT或叶子的不同情况进行相应的处理:
• SPT变化,PRC处理变化节点上的所有叶子的路由信息。
• SPT没有变化,PRC不会处理节点的路由信息。
• 叶子变化,PRC处理变化的叶子的路由信息。
• 叶子没有变化,PRC不会处理叶子的路由信息。

技术三: 智能定时器,OSPF智能定时器分别对路由计算、LSA的产生、LSA的接收进行控制,加速网络收敛。OSPF智能定时器可以通过以下两种方式来加速网络收敛:
• 在频繁进行路由计算的网络中,OSPF智能定时器根据用户的配置和指数衰减技术动态调整两次路由计算的时间间隔,减少路由计算的次数,从而减少CPU的消耗,待网络拓扑稳定后再进行路由计算。
• 在不稳定网络中,当路由器由于拓扑的频繁变化需要产生或接收LSA时,OSPF智能定时器可以动态调整时间间隔,在时间间隔之内不产生LSA或对接受到的LSA不进行处理,从而减少整个网络无效LSA的产生和传播。
• 智能定时器对路径计算的作用:

  1. 根据本地维护的链路状态数据库LSDB,运行OSPF协议的路由器通过SPF算法计算出以自己为根的最短路径树,并根据这一最短路径树决定到目的网络的下一跳。通过调节SPF的计算间隔,可以抑制网络频繁变化可能导致的占用过多带宽资源和路由器资源。
  2. 在一定组网环境下(例如对路由收敛时间要求较高的环境),可以指定以毫秒为单位的时间间隔,用来增加路由计算的频度,从而加快路由的收敛。
  3. 当OSPF的链路状态数据库(LSDB)发生改变时,需要重新计算最短路径。如果网络频繁变化,由于不断的计算最短路径,会占用大量系统资源,影响路由器的效率。通过配置智能定时器,设置合理的SPF计算的间隔时间,可以避免占用过多的路由器内存和带宽资源。
  4. 使能智能定时器后:
    • 初次计算SPF的间隔时间由start-interval参数指定。
    • 第n(n≥2)次计算SPF的间隔时间为hold-interval×2(n-1)。
    • 当hold-interval×2(n-1)达到指定的最长间隔时间max-interval时,OSPF连续三次计算SPF的时间间隔都是最长间隔时间,之后,再次返回步骤1,按照初始间隔时间start-interval计算SPF。
    • 当网络发生变化时,OSPF需要重新进行路由计算,为避免这种频繁的网络变化对设备造成的冲击,标准RFC2328规定路由计算时要使用延迟定时器,定时器超时后才进行路由计算。但标准协议中,该定时器定时间隔固定,无法做到既能快速响应又能抑制振荡
    • 通过智能定时器来控制路由计算的延迟时间,达到对低频率变化快速响应,又能对高频率变化起到有效抑制的目的。

按优先级收敛

可以通过IP前列表等将特定路由过滤出来,通过对不同的路由配置不同的收敛优先级,达到重要的路由先收敛的目的,提高网络的可靠性。没有添加优先级默认为low。

Database Overflow:


通过设置路由器上非缺省外部路由数量的上限,来避免数据库超限。OSPF网络中所有路由器都必须配置相同的上限值。这样,只要路由器上外部路由的数量达到该上限,路由器就进入Overflow状态,并同时启动超限状态定时器(默认超时时间为5秒),路由器在定时器超过5秒后自动退出超限状态。

OSPF Database Overflow 数据库溢出过程:

  1. 进入Overflow状态时,路由器删除所有自己产生的非缺省外部路由。
  2. 处于Overflow状态中,路由器不产生非缺省外部路由,丢弃新收到的非缺省外部路由且不回复确认报文,当超限状态定时器超时,检查外部路由数量是否仍然超过上限,如果超限则重启定时器,如果没有则退出超限状态。
  3. 退出Overflow状态时,删除超限状态定时器,产生非缺省
  4. 外部路由,接收新收到的非缺省外部路由,回复确认报文,准备下一次进入超限状态。

    相关配置:
    OSPF进程下:lsdb-overflow-limit 1-1000000 //调整溢出时的上限
    OSPF进程下:lsdb-overflow-interval //调整定时器

优雅重启GR:

GR是Graceful Restart(平滑重启)的简称,是一种在协议重启时保证转发业务不中断的机制。如果不用GR技术的话,当重启OSPF进程的以后,(不管是手动输入命令来重启,还是断电导致重启),路由器都要与邻居断开OSPF关系,转发表也会不可用。等OSPF 进程再次启动后,会跟邻居重新建立关系,再重新计算路由,这需要占用相当一部分时间。在断开邻居关系,到重新计算出路由的这段时间内,转发表无效,流量是不通的。对于大型的网络来说,这是不可取的,因为会造成很大的经济损失。用了GR以后,虽然重启了OSPF进程,但是可以保持转发表不变,这样流量不会中断。

GR机制的核心在于:当某设备进行协议重启时,能够通知其周边设备在一定时间内将到该设备的邻居关系和路由保持稳定。在协议重启完毕后,周边设备协助其进行信息(包括支持GR的路由/MPLS相关协议所维护的各种拓扑、路由和会话信息)同步,在尽量短的时间内使该设备恢复到重启前的状态。在整个协议重启过程中不会产生路由振荡,报文转发路径也没有任何改变,整个系统可以不间断地转发数据。这个过程即称为平滑重启。也就是说,优雅重启只会让控制平面重启,转发平面仍然是正常的,依然可以转发相应的报文。

图解:

华为设备配置步骤:

  1. 执行命令system-view,进入系统视图。
  2. 执行命令ospf [ process-id ],进入OSPF视图。
  3. 执行命令opaque-capability enable,使能opaque-LSA特性,这条命令需要在同一网段的所有邻居上使用,是为了让邻居路由器收到了优雅重启设备发送的9类LSA的时候,能够识别。
    Opaque LSA提供用于OSPF扩展的通用机制,包括:
    • OSPF通过Type 9 LSA支持OSPF GR功能。
    • OSPF通过Type 10 LSA支持OSPF TE功能。
    因此,配置设备平滑重启特性前,需要先通过命令opaque-capability enable使能Opaque-LSA能力。
  4. 用户视图下:reset ospf 1 process graceful-restart 或者在OSPF进程视图下:
    graceful-restart 即可

OSPF与BFD联动


使用场景:
最经典是在不直连的环境下,R1和R2都开启了OSPF,并且成功建立了邻居的关系,但是例如R2的g0/0/0接口断掉了以后,R1因为连接了交换机,接口没有down,不能立刻察觉,只能经过hello的dead时间40s后才能给邻居断开关系,这样导致了相关路由条目不能及时更新,造成错误。如果我们开启了BFD与OSPF的联动,那么R1和R2之间只要一边链路一断开,就会被立即检测到,然后断开邻居关系,保证了路由的可靠性。

相应配置:
必须首先在全局开启BFD,然后在接口上开启
[R1-GigabitEthernet0/0/0]ospf bfd enable //在接口上单独开启
[R2-GigabitEthernet0/0/0]ospf bfd enable
然后查看BFD邻居关系建立的情况:为up状态,并且听过OSPF知道的知道了对方的IP地址等信息.

让R2接口shutdown以后,立刻检测R1上与之建立的OSPF邻居关系是否断开:R1上立刻断开,说明BFD与OSPF联动成功。

除此之外,BFD还可以直接在OSPF进程中打开(将作用于所有OSPF的接口):
[R1-ospf-1]bfd all-interfaces enable

其他配置参数:

OSPF邻居震荡机制:

技术诞生的原因:
如果承载OSPF业务的接口状态在Up和Down之间切换,就会引起邻居状态的频繁震荡。此时,OSPF会快速发送Hello报文重新建立邻居,同步数据库LSDB,触发路由计算,会造成大量报文交互,影响现有邻居的稳定性,对OSPF业务造成较大影响,同时也会影响依赖OSPF的其他业务(如:LDP、BGP)的正常运行。为了解决这个问题,OSPF实现了邻居震荡抑制功能,即在邻居频繁震荡时,启动震荡抑制,实现邻居延迟建立,或实现业务流量延迟经过频繁震荡的链路,达到抑制震荡的目的。

原理:
OSPF接口启动一个flapping_count计数器,相邻两次flapping_event产生时间的间隔在detect-interval之内,记为一次有效震荡事件。flapping_count计数加1,当flapping_count计数大于等于threshold时,系统判定震荡发生,需要进入震荡抑制阶段。进入震荡抑制阶段后,flapping_count清0。在flapping_count大于等于threshold之前,如果两次flapping_event的间隔大于等于resume-interval,则flapping_count清0。邻居震荡抑制从最后一次邻居状态变为ExStart或Down开始计时。
用户可以通过命令行配置detect-interval,threshold,resume-interval三个震荡检测的关键参数。

震荡抑制的方式:
震荡抑制分为Hold-down和Hold-max-cost两种模式:
• Hold-down模式:针对邻居建立过程中的频繁泛洪和拓扑变化的问题,在一段时间内禁止该邻居重新建立,避免频繁的数据库同步和大量的报文交互。
• Hold-max-cost模式(缺省):针对用户业务流量频繁切换的问题,在一段时间内将链路开销值设置为最大值Max-cost(65535),避免用户的业务流量经过频繁震荡的链路。
Hold-down模式和Hold-max-cost模式可以叠加使用,同时生效时,先进入Hold-down模式,待Hold-down模式退出后,再进入Hold-max-cost模式。
退出震荡抑制有以下几种方式:
• 抑制定时器超时。
• 复位OSPF进程。
• 重启OSPFv3邻居。
• 用户通过命令行强制退出震荡抑制状态。

配置命令:
缺省情况下OSPF震荡机制是开启的,可以在指定接口上配置,模拟器上没有对应的命令:
ospf suppress-flapping peer disable //关闭路由震荡功能
执行命令ospf suppress-flapping peer hold-down/hold-max-cost interval,配置震荡抑制模式为Hold-down或者hold-max-cost interval模式,并设置抑制持续时间。

OSPF IP FRR(快速重路由):

原理:
OSPF IP FRR(Fast Reroute)利用LFA(Loop-Free Alternates)算法预先计算好备份链路,并与主链路一起加入转发表。当网络出现故障时,OSPF IP FRR可以在控制平面路由收敛前将流量快速切换到备份链路上,保证流量不中断,从而达到保护流量的目的,因此极大的提高了OSPF网络的可靠性。(原来的时候只会计算出最优的路由,如果链路发生了故障,主链路无法使用,那么需要重新收敛并计算备份链路,时间比较损耗,会发生丢包的现象)

LFA计算备份链路的基本思路是:以可提供备份链路的邻居为根节点,利用SPF算法计算出到目的节点的最短距离。然后,按照RFC5286规定的不等式计算出开销最小且无环的备份链路。

OSPF IP FRR支持对需要加入IP路由表的备份路由进行过滤,通过过滤策略的备份路由才会加入到IP路由表,因此,用户可以更灵活的控制加入IP路由表的OSPF备份路由。

也可以将BFD会话与OSPF IP FRR进行绑定,当BFD检测到接口链路故障后,BFD会话状态会变为Down并触发接口进行快速重路由,将流量从故障链路切换到备份链路上,从而达到流量保护的目的。

具体环境:

R1去往R4已经计算了最优的路由是通过R5,但是如果R5出现了故障,需要重新计算路由收敛,计算通过R1->R2->R3->R4。但是如果开启了IP FRR的功能,R1在以R5为最优路径的时候,就已经计算出来了可以通过R2到达R4,这样的话当R5故障,直接可以使用备份的路由到达对端,让流量几乎可以不丢包的通过,需要注意的是,OSPF还是需要重新的收敛,如果计算出的更新的路由比这条备份的更优先,那么将会选择更新的路由条目,但是在切换时起到了一个过渡的作用。

弊端:对设备的性能要求很高,在计算OSPF路由的时候也需要计算备份的路由,所以默认没有开启,最好也是在收敛完成后的一段时间后再启动这个功能,保证设备不会出现故障。尽量在CPU销毁小于30时进行计算。

相应配置:

  1. 执行命令system-view,进入系统视图。
  2. 执行命令ospf [ process-id ] [ router-id router-id | vpn-instance vpn-instance-name ] *,启动OSPF进程,进入OSPF视图。
  3. 执行命令frr,进入OSPF IP FRR视图。
  4. 执行命令loop-free-alternate,使能OSPF IP FRR特性,生成无环的备份链路。
    可选:可以在相应的接口上配置frr block ,阻止指定的接口不开启frr,默认是在全部接口上开启。

参考资料:华为hedex文档

OSPF高级特性(华为设备)相关推荐

  1. OSPF高级特性——快速收敛与网络稳定性

    目录 OSPF快速收敛基本概念 OSPF快速收敛实现方法 更改Hello报文的发送间隔 更改网络类型为P2P 调整路由收敛的优先级 Smart-discover(智能发现) 调整更新.接受LSA的时间 ...

  2. OSPF高级特性 —— 管理距离(优先级)修改 + 外部路由的metric值的修改

    目录 一.管理距离(优先级)的修改 二.改变外部路由的metric值 一.管理距离(优先级)的修改 思科OPSF协议管理距离默认都是110 华为OSPF的域内和域间路由管理距离是10,重分发进来的外部 ...

  3. OSPF高级特性——LSA-3(Network Summary LSA)的过滤、路由协议——管理距离的修改、外部路由的metric值的修改

    目录 一.过滤LSA-3 (1)简介: (2)配置命令: 二.管理距离: (1)管理距离的修改--直接 (2)管理距离的修改--利用ACL 三.改变外部路由的metric值 一.过滤LSA-3 (1) ...

  4. OSPF高级特性—Distribute-list过滤、修改接口OSPF优先级配置、OSPF—被动接口详解、修改参考带宽值

    目录 一.路由过滤简述: 二.Distribute-list过滤配置: ---(1)利用ACL匹配路由条目(OSPF进程使用) ---(2)利用前缀列表来匹配路由条目(OSPF进程使用) ---(3) ...

  5. OSPF高级特性 —— LSA-3过滤 + Distribute-list过滤

    目录 一.路由过滤简述: 二.LSA-3过滤: 三.Distribute-list 过滤配置: -(1)利用ACL匹配路由条目(OSPF进程使用) -(2)利用前缀列表来匹配路由条目(OSPF进程使用 ...

  6. OSPF高级特性 —— 修改参考带宽值 + 修改优先级

    目录 一.修改参考带宽值 (1)出现问题: (2-1)方法① - 解决: (2-2)方法② - 解决: 二.修改优先级: 一.修改参考带宽值 (1)出现问题:  一个路由器,有个G接口(1000M), ...

  7. OSPF高级特性 —— 路由通告

    目录 一. 不带条件的通告 二.(带条件)利用ACL匹配路由: 三.(带条件)利用前缀列表匹配路由: 总 二&三: 一. 不带条件的通告 r1(config)#router ospf 100 ...

  8. OSPF高级特性中-FRR实验

    开始改变cost开销观察实验现象了 实验现象观察 标志不见了 完成14shutdown中间线路后即可观察到该结果 实验原理

  9. 【OSPF的特殊区域和特性】ospf的lsdb优化、特殊区域、路由汇总、静默接口、ospf报文认证、LSA路由汇总、高级特性(PRC、智能计时器、FRR、ospf database overflow)

    目录 一.路由汇总 1)区域间路由汇总:在ABR上汇总 LSA 3 2)外部路由汇总:在ASBR汇总 LSA 5.LSA 7(nssa场景使用) 外部路由缺省 3) 避免环路在汇总路由器上配一个空接口 ...

  10. 华为架构师撰写的Netty核心笔记,从Java NIO到Netty的高级特性

    众所周知,Netty 作为当前流行的 NIO 框架,操作省时.省事还安全,在云计算.大数据通讯,电商.游戏等领域都有广泛的应用.如果是一个大型网站,内部接口非常多的情况下,好处很明显--首先就是长链接 ...

最新文章

  1. C++学习——引用和指针
  2. Nginx代理连接Redis失败
  3. H5炫酷特效系列1——canvas满屏幕变换爱心示例
  4. 小米8se线刷机(卡刷机一般解决不了问题,所以不用卡刷)
  5. CAD输出pdf不在中心
  6. python excel怎么将字母后的数字取出来_利用通配符将Excel中英文字母、中文、数字提取出来...
  7. CentOS 7 之Helloworld with c
  8. 如何使用阿里云进行人脸和身份证头像验证比对(人证核验接口API)--java
  9. vue使用 svg图片以及修改svg图片颜色
  10. 计算机网络学习——套接字实验(二)
  11. 算法(第4版) 编写一个静态方法lg(),接受一个整型参数N,返回不大于log2N的最大整数。(不要使用Math库)
  12. 全球经济寒冬将至?且看顶级资本大鳄的大数据分析预测
  13. mesh渲染到ui_Unity中UI曲面化
  14. VS工程引用出现感叹号
  15. 宽屏php模板,宽屏时尚达人网站前端模板
  16. 出现-nan(ind)的情况
  17. lds天线技术流程图_什么是LDS天线技术
  18. 计算机音响主要技术指标,音响系统的主要技术指标
  19. unity2D学习(14)血条显示、Canvas中Render Mode的三种模式介绍
  20. YOLOv5 实践之PCB缺陷检测

热门文章

  1. 机器学习作业班_python神经网络搭建
  2. 2019118_四个化学数据分析(1)
  3. 力扣每日一刷--- 验证回文字符串II(非严格) 以及取反知识
  4. 从零实现循环神经网络
  5. LeetCode刷题——120. 三角形最小路径和
  6. 数据结构——树的概述
  7. 几点Java程序必须满足的基本规则
  8. 单元测试之误解与困境
  9. iPhone企业应用实例分析之二:程序处理流程
  10. Windows系统过滤病毒功能吗