前言
OSPF和IS-IS都是基于链路状态的内部网关路由协议,运行这两种协议的路由器通过同步LSDB,采用SPF算法计算最优路由。
当网络拓扑发生变化时,OSPF和IS-IS支持多种快速收敛和保护机制,能够降低网络故障导致的流量丢失。
,为了实现对路由表规模的控制,OSPF和IS-IS支持路由选路及路由信息的控制,能够减少特定路由器路由表的大小。
本文章将介绍OSPF和IS-IS的高级特性,包括:快速收敛机制、路由控制、其他特性等。
OSPF快速收敛机制
概述:
快速收敛是指网络在出现拓扑变化(比如链路故障)时,能够尽快地更新路由表,确保网络恢复到稳定的状态。包括:PRC,智能定时器,OSPF IP FRR,也可以和BFD联动
PRC:
当网络上路由发生故障的时候,PRC计算只对发生变化的路由进行计算。而原本的节点和路由是不会发生变化的,以此来加快路由的计算。
如图场景所示:是以R1为根的最短路径树。此时R1访问节点R5时,通过黄线路段到达该目的地。R5将环回口LoopbackO开启OSPF,即OSPF网络内有新增网段。
PRC计算后:R5全网泛洪新增LSA。
R1收到该LSA后会创建新的路由,继承原有访问节点R5的路径及下一跳,即最短路径树不变,只在节点R5上新增叶子。
智能定时器:
智能定时器是在进行PF计算和产生LSA的时候用到的一种定时器。它既可以对少量的外界突发事件进行快速响应,又可以避免过度地占用CPU。
控制LSA的生成与接收:
①同一条LSA在1秒内不能再次生成,即LSA的更新时间间隔5秒。
②LSA被接收的时间间隔为1秒。
③通过智能定时器指定LSA的更新时间间隔为0来取消LSA的更新时间间隔,使得拓扑或者路由的变化可以立即通过LSA发布到网络中,或者立即被感知到,从而加快网络中路由的收敛速度。
控制路由计算:
当网络发生变化时,OSPF的LSDB会发生改变,需要重新计算最短路径。如果网络频繁变化,由于不断地计算最短路径,会占用大量系统资源,影响设备的效率。
通过配置智能定时器,设置合理的SPF计算的间隔时间,可以避免占用过多的路由器内存和带宽资源。
设置LSA的更新时间间隔:
[Huawei-ospf-1]lsa-originate-interval intelligent-timer 3000 300 500
3000 最大更新时间max-interval
300 初始更新时间start-interval
500 每次更新时间间隔hold-interval
初次更新LSA的间隔时间由start-interval参数指定。
第n(n≥2)次更新LSA的间隔时间为hold-interval×2(n-2)。
当hold-interval×2(n-2)达到指定的最长间隔时间max-interval时,OSPF连续三次更新LSA的时间间隔都是最长间隔时间,之后,再次返回步骤1,按照初始间隔时间start-interval更新LSA。
对LSA接收时间间隔设置:
[Huawei-ospf-1] lsa-arrival-interval { interval | intelligent-timer max-interval start-interval hold-interval }
对SPF计算时间间隔设置:
[Huawei-ospf-1] spf-schedule-interval { interval1 | intelligent-timer max-interval start-interval hold-interval | millisecond interval2 }
OSPF IP FRR:
利用LFA(Loop-Free Alternates)算法预先计算出备份路径,保存在转发表中,以备在故障时将流量快速切换到备份链路上,保证流量不中断,从而达到流量保护的目的,该功能可将故障恢复时间降低到50 ms以内。
OSPF IP FRR的流量保护分为链路保护和节点链路双保护。
链路保护:
链路保护公式:(N~D)< N~S)+(S~D)
流量从设备S到D进行转发,网络开销值满足链路保护公式可保证当主链路故障后,设备S将流量切换到备份链路S到N后可以继续向下游转发,确保流量中断小于50 ms。
节点链路双保护:
链路保护公式:(N,D)<(N,S)+(S,D)
节点保护公式:(N,D)<(N,E)+(E,D)
节点链路双保护必须同时满足两个公式。
配置命令:
ospf 1 router-id 1.1.1.1
frr
loop-free-alternate
OSPF与BDF联动
OSPF与BFD联动就是将BFD和OSPF关联起来,一旦与邻居之间的链路出现故障,BFD对链路故障的快速感应能够加快OSPF对于网络拓扑变化的响应。
配置命令:
[R1-ospf-1]bfd all-interfaces enable 协议视图下开启BFD功能:(所有接口生效)
[R1-GigabitEthernet0/0/1]ospf bfd enable 接口视图下开启BFD功能
OSPF收敛优先级:
概述:
配置OSPF路由的收敛优先级后,OSPF路由可以按照优先级来计算和泛洪LSA、同步LSDB,从而提高路由收敛速度。当一个LSA满足多个策略优先级时,最高优先级生效。OSPF依次按区域内路由、区域间路由、自治系统外部路由顺序进行LSA计算,该命令可以计算OSPF的收敛优先级。收敛优先级的优先级顺序为:critical>high>medium>low。为了加速处理高优先级的LSA,泛洪过程中,需要按照优先级将相应的LSA分别存放在对应的critical、high、medium和low的队列中。默认LSA优先级为low。
配置:
[R1-ospf-1] prefix-priority { critical | high | medium } ip-prefix ip-prefix-name
配置接口发送Hello报文的时间间隔
前提:
Hello报文是最常用的一种报文,其作用为建立和维护邻接关系,周期性的在使能了OSPF的接口上发送。OSPF邻居之间的Hello定时器的时间间隔要保持一致,否则不能协商为邻居。
P2P、Broadcast类型接口发送Hello报文的时间间隔的值为10秒;P2MP、NBMA类型接口发送Hello报文的时间间隔的值为30秒;且同一接口上邻居失效时间是Hello间隔时间的4倍。
配置命令:
[R1-GigabitEthernet0/0/0]ospf timer hello/dead + time
在网络中,如果只有两台路由器,也可以调整网络类型为P2P,可以不用进行DR和BDR的选举,从而收敛速度。
配置Smart-discover
概述:
通过配置Smart-discover,网络中邻居状态,或者DR、BDR发生变化时,设备不必等到Hello定时器到就可以立刻主动的向邻居发送Hello报文。从而提高建立邻居的速度,达到网络快速收敛的目的。
配置命令:
[R1-GigabitEthernet0/0/0]ospf smart-discover
OSPF路由控制
调整OSPF的接口开销
在OSPF中,每个接口都有一个开销(Cost)值,用于计算最短路径。较小的接口开销表示较好的链路质量,因此OSPF路由器在计算最短路径时倾向于选择开销较低的路径。OSPF接口开销是一个非常重要的参数,可以通过调整它来影响路由的选择和网络性能。
配置命令:
[R1-GigabitEthernet0/0/0]ospf cost 2
设置等价路由
在OSPF中,等价路由是一种技术,允许在到达目标网络的路径具有相同的开销时,将流量分发到多条等价的路径上,从而实现负载均衡和冗余。等价路由提供了更好的网络性能和冗余容错能力。
条件:
确保到达目标网络的多条路径具有相同的开销。
启用OSPF等价路由功能。
配置命令:
[R1-ospf-1]maximum load-balancing 8
引入外部路由
引入外部路由是指将来自其他自治系统(AS)或其他动态路由协议的路由信息引入到OSPF域内,使得OSPF路由器可以学习和使用这些外部路由来进行跨自治系统或跨协议的网络通信。这种能力使得OSPF可以与其他路由协议和其他自治系统进行互联和互操作。
路由聚合
路由聚合(Route Aggregation),也称为路由汇总,是一种网络路由优化技术,用于减少路由表的大小和复杂性,提高路由协议的性能和减少路由信息的洪泛。在IP网络中,路由聚合将一组具有相同最长前缀的IP地址合并为一个较大的网络块,从而减少路由表中的条目数量。这样可以有效地减小路由表的规模,提高路由查找和选择的速度,并降低路由器内存和处理负担。
配置命令:
区域间路由汇总:ABR上配置
ospf 1
area 0.0.0.1
abr-summary 172.16.1.0 255.255.255.0
外部路由汇总:ASBR上配置
ospf 1 router-id 1.1.1.1
asbr-summary 192.168.1.0 255.255.255.0
缺省路由通告
缺省路由通告是指在网络中配置默认路由,用于将所有未知目的地的数据包发送到默认网关。当路由器或主机无法确定目标网络的具体路径时,会使用默认路由来转发数据包。
[R2-ospf-1]default-route-advertise
[R2-ospf-1]default-route-advertise always //强制下发缺省路由
Filter-Policy
Filter Policy是网络中的一种安全措施,用于限制、过滤或控制网络流量的传输。通过定义特定的过滤规则和条件,Filter Policy可以对流经网络设备(如路由器、防火墙、交换机等)的数据包进行检查和处理,从而实现对流量的精确控制和管理。
import:不会过滤LSA,对所有加入到IP路由表的路由条目生效。在ABR设备上配置可以过滤三类LSA的。
export:针对引入的路由生效,需要在ASBR设备上进行配置
详细内容自行复习IP知识点。
对发送的LSA进行过滤
发送的LSA(Link State Advertisement)过滤是一种控制机制,用于限制在OSPF域内传播的LSA。这种过滤机制可以帮助网络管理员在特定情况下控制LSA的传播范围,从而实现对网络的灵活控制和优化。
[R2-GigabitEthernet0/0/0]ospf filter-lsa-out ?
all Filter all types of LSAs //过滤所有的类型LSA
ase Filter type-5 ASE LSAs //过滤五类LSA
nssa Filter type-7 NSSA LSAs //过滤七类LSA
summary Filter type-3 Summary LSAs //过滤三类LSA
对ABR Type3 LSA进行过滤
在OSPF中,ABR会产生Type 3 LSA,用于将来自一个区域的路由信息汇总传递给其他区域。对ABR产生的Type 3 LSA进行过滤是一种在区域边界控制LSA传播的技术,可以帮助网络管理员精确控制路由信息的传递范围,优化网络的路由表和收敛速度。
配置命令:
ospf 1
area 0.0.0.0
filter 2000 import
或:
area 0.0.0.1
filter 2000 export
数据库超限
在OSPF协议中,LSDB中的Type 5 LSA的最大数量是由OSPF实现所在的设备或软件决定的,通常根据设备的硬件资源和操作系统的限制来设置。
当OSPF的数据库超出设备的最大容量限制时,会发生数据库超限问题。这通常会导致OSPF路由器无法处理更多的,从而影响路由表的更新和网络的正常运行,这种状态就被称为数据库超限。
设置LSDB中 External LSA最大条目:
[Huawei-ospf-1] lsdb-overflow-limit number
OSPF其他特性
OSPF多进程
OSPF支持多进程,在同一台路由器上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立。不同OSPF进程之间的路由交互相当于不同路由协议之间的路由交互。
路由器的一个接口只能属于某一个OSPF进程。
[PE] ospf 100 vpn-instance VPN1
[PE] ospf 200 vpn-instance VPN2
由于其应用场景为大都VPN场景,大家可以去了解IE中VPN的知识。
OSPF与BGP协议联动:
前提:
当有新的设备加入到网络中,或者设备重启时,可能会出现在BGP收敛期间内网络流量丢失的现象。这是lGP收敛速度比BGP快造成的。
当网络环境稳定时,R1访问10.1.5.5/32的流量路径为:R1-R2-R4-R5。
当R2故障时,流量路径切换到:R1-R3-R4-R5。
当R2故障恢复后,由于IGP收敛速度比BGP快,因此OSPF先收敛。此时R1若要访问10.1.5.5/32,先查BGP路由,下一跳为R5;再查lGP路由,会根据IGP路由传递给R2。
R2收到该流量后,会查BGP路由。由于BGP还未完成收敛,发现没有到达10.1.5.5/32的路由,则不会转发数据,造成流量丢失。
解决方法
将R2设置为STUB路由器,STUB路由器可以将OSPF重启后,设置在规定时间的内,发送给邻居的LSA开销值为最大值65535。
[Huawei-ospf-1] stub-router
OSPF的转发地址
当ASBR引入外部路由时,若Type5 LSA中的FA字段为0,表示路由器认为到达目的网段的数据包应该发往该ASBR;若Type5 LSA中的FA字段不为0,表示路由器认为到达目的网段的数据包应该发往这个FA所标识的设备。
当以下条件全部满足时,FA字段才可以被设置为非0:
ASBR在其连接外部网络的接口(外部路由的出接口)上激活了OSPF;
该接口没有被配置为Silent-Interface;
该接口的OSPF网络类型为Broadcast或NBMA;
该接口的IP地址在OSPF配置的network命令指定的网段范围内;
到达FA地址的路由必须是OSPF区域内部路由或区域间路由,这样接收到该外部LSA的路由器才能够加载该LSA进入路由表。加载的外部LSA生成的路由条目下一跳与到达FA地址的下一跳相同。
GR
在网络通信中,GR是"Graceful Restart"(优雅重启)的缩写。GR是一种用于路由协议(如BGP、OSPF等)的功能,它允许路由器在发生软件升级、重启或维护时,不中断或最小化数据包的转发,从而保持网络的连通性和稳定性。
当路由器进行软件升级或重启时,传统上会导致路由表重新计算和更新,这可能需要较长的时间,期间网络可能会出现短暂的不稳定性或数据包的丢失。而GR功能允许路由器在维护过程中保持某些信息,以快速恢复路由表,减少网络的震荡和数据包的丢失。
NSR
是一个网络路由协议中的功能,旨在确保在设备发生控制平面(如路由引擎)故障或重新启动时,路由信息不会丢失,并保持数据平面(如数据包转发)的连通性。NSR通常与GR(Graceful Restart,优雅重启)功能结合使用,以提供更强大的路由高可用性。
工作原理
当路由器发生控制平面故障或需要重新启动时,它会通知相邻的路由器,表明它正在执行NSR过程。
相邻的路由器会继续将流量转发到该路由器,同时暂时接管路由表的计算和转发功能。
在路由器完成控制平面的重启或故障修复后,它会恢复并重新计算路由表。通过保留一部分信息,它可以更快地将路由表恢复到之前的状态,从而减少网络震荡和数据包的丢失。
比较
配置命令
[Huawei] switchover mode { nonstop-routing | nonstop-forwarding }
NSR NSF