一、概述

        众所周知,IGP当中链路状态路由协议(OSPF、ISIS)之所以可以代替我们的矢量路由协议(RIP),就是因为链路状态路由协议可以根据某些特性快速的感知到路由的变化从而改变路径。

        前面我们已经介绍过了OSPF的其中一个快速收敛的机制,SPF算法,本章节将介绍另一个快速收敛机制,FRR(链路保护)

        在我们OSPF网络环境当中,当没有配置BFD的情况下链路发生了故障时,设备是有一段空窗期无法快速感知到链路故障的,在这个空窗期内数据将会丢包,假如说没有备份路径则一直丢包,那么这个空窗期是多久呢?又是怎么计算得出的呢?

举个例子:

在这个拓扑当中假设AR1与AR4之间的链路发生了故障

AR1在Hello报文的老化时间(40s)倒计时之后没有收到对方的Hello报文,AR1就认为邻居down了,这里就需要40s

AR1在感知到邻居down之后拓扑发生了改变,AR1会产生LSA来通知其他邻居,收到该LSA加入到LSDB当中之后,重新进行SPF(SPT、PRC)算法。

经过以上一系列的操作之后重新计算出了新的拓扑和路由信息之后数据才会通过AR3去访问AR5,在此期间所有想要通过AR1去访问AR5的数据都将丢包。

在一些特定场景当中,客户不希望长时间的丢包,保证网络的稳定性和可靠性,那么在OSPF当中有没有什么技术可以加快收敛时间呢?

有的兄弟有的

其中就包括我们接下来要介绍的技术FRR

二、FRR

      OSPF(fast reroute,快速重路由)通过LFA算法来预先计算出网络目的的备份路径,保存在转发表当中,当主路径发生故障时,可以及时将数据快速的切换到备份路径上,保证数据不中断,可将故障恢复时间降低到(50ms)之内,通常我们也会使用BFD来监测主路径,当主路径发生故障时,通过FRR计算的备份路径快速的切换到备份路径上,这样大大减少了我们收敛的时间,保证了数据不中断。

       不是所有的路径都可以被当作备份路径保存在转发路由表当中的,需要满足一定的条件:N D < N S + S D

 举个例子:

在这张拓扑当中,AR3作为AR1去往AR5的备份路径

AR3通过AR4去访问AR5的COST为2

AR3通过AR1去访问AR5的COST为3

AR1通过AR4去访问AR5的COST为2

此时N D=2 < N S(1) + S D(2)=3

AR1可以通过LFA算法来计算出备份路径放入自己的转发路由表当中,但如果此时我们将AR3与AR4之间的链路COST改成2那么条件就无法打成。

AR3通过AR4去访问AR5的COST为3

AR3通过AR1去访问AR5的COST为3

AR1通过AR4去访问AR5的COST为2

此时N D=3 ≮  N S(1) + S D(2) =3

条件无法达成则AR1无法将AR3的备份路径加入到转发路由表当中

三、实验

拓扑

1、基础配置

AR1
system
sysname AR1
interface g0/0/0
ip add 10.0.14.1 24
interface g0/0/1
ip add 10.0.13.1 24
interface loopback 1
ip add 1.1.1.1 32AR3
system
sysname AR3
interface g0/0/0
ip add 10.0.13.3 24
interface g0/0/1
ip add 10.0.34.3 24AR4
system
sysname AR4
interface g0/0/0
ip add 10.0.14.4 24
interface g0/0/1
ip add 10.0.34.4 24
interface g0/0/2
ip add 10.0.45.4 24AR5
system
sysname AR5
interface g0/0/0
ip add 10.0.45.5 24
interface loopback 1
ip add 5.5.5.5 32

2、路由配置

AR1
ospf 1 router-id 1.1.1.1
area 0
netw 0.0.0.0 0.0.0.0AR3
ospf 1 router-id 3.3.3.3
area 0
netw 0.0.0.0 0.0.0.0AR4
ospf 1 router-id 4.4.4.4
area 0
netw 0.0.0.0 0.0.0.0AR5
ospf 1 router-id 5.5.5.5
area 0
netw 0.0.0.0 0.0.0.0

查看OSPF邻居表和LSDB

[AR1]dis ospf peer briefOSPF Process 1 with Router ID 1.1.1.1Peer Statistic Information----------------------------------------------------------------------------Area Id          Interface                        Neighbor id      State    0.0.0.0          GigabitEthernet0/0/0             4.4.4.4          Full        0.0.0.0          GigabitEthernet0/0/1             3.3.3.3          Full        ----------------------------------------------------------------------------
[AR1]display ospf lsdb OSPF Process 1 with Router ID 1.1.1.1Link State Database Area: 0.0.0.0Type      LinkState ID    AdvRouter          Age  Len   Sequence   MetricRouter    4.4.4.4         4.4.4.4             77  60    80000007       1Router    1.1.1.1         1.1.1.1             88  60    80000007       1Router    5.5.5.5         5.5.5.5             80  48    80000004       1Router    3.3.3.3         3.3.3.3             85  48    80000007       1Network   10.0.14.4       4.4.4.4             79  32    80000002       0Network   10.0.13.3       3.3.3.3             91  32    80000002       0Network   10.0.34.4       4.4.4.4             85  32    80000002       0Network   10.0.45.5       5.5.5.5             80  32    80000002       0

查看AR1去往AR5的路由

[AR1]display ip routing-table 5.5.5.5 32 verbose 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1Destination: 5.5.5.5/32Protocol: OSPF             Process ID: 1Preference: 10                     Cost: 2NextHop: 10.0.14.4         Neighbour: 0.0.0.0State: Active Adv              Age: 00h01m38sTag: 0                  Priority: mediumLabel: NULL                QoSInfo: 0x0IndirectID: 0x0              RelayNextHop: 0.0.0.0           Interface: GigabitEthernet0/0/0TunnelID: 0x0                   Flags:  D

可以看到此时AR1去往AR5的路由当中并没有备份路径,如果此时AR1的主路径发生的故障则需要较长的一段时间来重新计算出新的链路来转发数据,那我们的客户肯定是不能接受的,所以接下来我们就来配置FRR(快速重路由)技术来加快我们收敛的速度。

AR1
ospf 1
frr
loop-free-alternate

 配置完后我们来重新查看AR1去往AR5的路由信息

[AR1]display ip routing-table 5.5.5.5 32 verbose 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1Destination: 5.5.5.5/32Protocol: OSPF             Process ID: 1Preference: 10                     Cost: 2NextHop: 10.0.14.4         Neighbour: 0.0.0.0State: Active Adv              Age: 00h00m17sTag: 0                  Priority: mediumLabel: NULL                QoSInfo: 0x0IndirectID: 0x0              RelayNextHop: 0.0.0.0           Interface: GigabitEthernet0/0/0TunnelID: 0x0                   Flags:  DBkNextHop: 10.0.13.3       BkInterface: GigabitEthernet0/0/1BkLabel: NULL            SecTunnelID: 0x0              BkPETunnelID: 0x0         BkPESecTunnelID: 0x0              BkIndirectID: 0x0       

可以看到此时AR1的路由表当中已经有了下一跳为10.0.13.3的备份路径,当AR1感知到主路径发生故障时,就会快速的将去往AR5的路径切换到备份路径,从而减少了丢包时间。

如果此时我们将AR3与AR4之间的链路COST改为2,看看AR1的路由会不会发生变化

AR3
interface g0/0/1
ospf cost 2
[AR1]display ip routing-table 5.5.5.5 32 verbose
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1Destination: 5.5.5.5/32Protocol: OSPF             Process ID: 1Preference: 10                     Cost: 2NextHop: 10.0.14.4         Neighbour: 0.0.0.0State: Active Adv              Age: 00h00m01sTag: 0                  Priority: mediumLabel: NULL                QoSInfo: 0x0IndirectID: 0x0              RelayNextHop: 0.0.0.0           Interface: GigabitEthernet0/0/0TunnelID: 0x0                   Flags:  D

可以看到我们将AR3与AR4之间的链路COST改大之后AR1的路由表当中就没有了AR3的备份路径了。

这是为什么呢?

其实很简单,就是我们上面提到的条件:N D < N S + S D

 想要AR1计算出AR3的备份路径,那么AR3到达AR5的COST就必须小于AR3到达AR1+AR1到达AR5的COST。

通过FRR计算出备份路径,在链路发生故障时我们可以将故障时间降低致大约50s左右,但这还是很久如果想要进一步加快收敛速度,我们可以在AR1的主路径上配置BFD快速检测,不需要等待40s的hello老化时间

以上就是本章的全部内容了,感谢大家的浏览观看!文章若有错误或疑问可联系博主删除更改。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/89605.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/89605.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/89605.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多元化国产主板,满足更高性能、更高安全的金融发展

在金融行业数字化转型的浪潮中&#xff0c;对于核心硬件的性能与安全需求达到了前所未有的高度。国产主板应运而生&#xff0c;凭借其卓越的多元化特性&#xff0c;为金融领域带来了高性能运算与高安全防护的双重保障&#xff0c;成为推动金融行业发展的关键力量。以高能计算机…

数据库分布式架构:ShardingSphere 实践

一、数据库分布式架构概述 1.1 分布式架构概念 在当今数字化时代&#xff0c;随着业务的不断拓展和数据量的爆炸式增长&#xff0c;传统的单机数据库架构逐渐暴露出诸多局限性。例如&#xff0c;在电商大促期间&#xff0c;海量的订单数据和用户访问请求会让单机数据库不堪重…

【WRFDA教程第二期】运行WRFDA 3DVAR/4DVAR数据同化

目录 一、准备阶段&#xff1a;下载并解压测试数据二、运行 3DVAR 教学实验日志分析&#xff08;wrfda.log&#xff09;进阶实验建议&#xff1a;对比不同设置的影响输出文件说明 三、运行 4DVAR 教学实验步骤1&#xff1a;准备工作目录与环境变量步骤2&#xff1a;链接可执行文…

redis缓存三大问题分析与解决方案

什么是缓存&#xff1f; 缓存&#xff08;Cache&#xff09;是一种将热点数据缓存在内存中&#xff08;如 Redis&#xff09;以加快访问速度、减轻数据库压力的技术。 但引入缓存后可能出现 三大核心问题&#xff1a; 缓存穿透&#xff08;Cache Penetration&#xff09;缓存…

李宏毅机器学习笔记——梯度下降法

深度学习介绍 基于仿生学的一种自成体系的机器学习算法&#xff0c;包括但不限于图像识别、语音、文本领域。 梯度下降法 作为深度学习算法种常用的优化算法 梯度下降法&#xff0c;是一种基于搜索的最优化方法&#xff0c;最用是最小化一个损失函数。梯度下降是迭代法的一…

day50/60

浙大疏锦行 DAY 50 预训练模型CBAM模块 知识点回顾&#xff1a; resnet结构解析CBAM放置位置的思考针对预训练模型的训练策略 差异化学习率三阶段微调 ps&#xff1a;今日的代码训练时长较长&#xff0c;3080ti大概需要40min的训练时长 作业&#xff1a; 好好理解下resnet18的…

Vue3 之vite.config.js配置

一、示例 import { defineConfig } from vite import vue from vitejs/plugin-vue import path from path // https://vitejs.dev/config/ export default defineConfig({plugins: [vue()],base: ./,build: {assetsDir: static, //指定静态资源目录rollupOptions: {input: {mai…

利用Gpu训练

方法一&#xff1a; 分别对网络模型&#xff0c;数据&#xff08;输入&#xff0c;标注&#xff09;&#xff0c;损失函数调用.cuda() 网络模型&#xff1a; if torch.cuda.is_available():netnet.cuda() 数据&#xff08;训练和测试&#xff09;&#xff1a; if torch.cud…

使用excel中的MATCH函数进行匹配数据

一、背景 在平日处理数据时&#xff0c;经常需要将给定数据按照制定的数据进行排序&#xff0c;数量比较大时&#xff0c;逐个处理有点费事费力且容易出错&#xff0c;这时可借助excel表格中match函数进行精确匹配。 二、使用match函数–精确排序操作步骤 主要工作步骤&#xf…

SpringCloud系列(41)--SpringCloud Config分布式配置中心简介

前言&#xff1a;微服务意味着要将单体应用中的业务拆分成一个个子服务&#xff0c;每个服务的粒度相对较小&#xff0c;因此系统中会出现大量的服务&#xff0c;但由于每个服务都需要必要的配置信息才能运行&#xff0c;所以—套集中式的、动态的配置管理设施是必不可少的&…

wireshark介绍和使用

Wireshark 介绍 Wireshark 是一款开源的 网络协议分析工具&#xff08;Packet Sniffer&#xff09;&#xff0c;用于捕获和分析网络数据包。它支持多种协议解析&#xff0c;适用于网络调试、安全分析、网络教学等场景。 官网&#xff1a;https://www.wireshark.org/ 特点&#…

【甲方安全建设】敏感数据检测工具 Earlybird 安装使用详细教程

文章目录 背景工具介绍安装方法一、Linux 与 macOS 安装流程二、Windows 系统安装流程(一)三、Windows 系统安装流程(二)四、错误处理使用说明模块与规则机制集成与运维建议结语背景 随着源代码泄露、配置误提交、密码硬编码等风险频发,企业源代码库中潜在的敏感信息泄漏…

异步Websocket构建聊天室

目录 Websocket技术背景 Websockec简介 实现websocket通信程序 实验环境&#xff1a; 服务端&#xff08;阿里云ESC,VPC网络&#xff09;&#xff1a; 客户端1&#xff08;本机&#xff09;&#xff1a; 通信模型&#xff1a; 实现功能逻辑&#xff1a; 源代码&#xff1a; 服务…

OpenCV CUDA模块设备层-----反向二值化阈值处理函数thresh_binary_inv_func()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 OpenCV CUDA 模块&#xff08;cudev&#xff09; 中的一个仿函数&#xff08;functor&#xff09;生成器&#xff0c;用于创建一个反向二值化阈值…

【实现一个时间MCP完整技术解析】

&#x1f552; MCP Time Server 完整技术解析&#xff1a;从核心实现到文件架构的深度剖析 目前已上传npm库&#xff0c;chan-mcp-time-server&#xff0c;有兴趣的可以下载试试 创建时间: 2025年7月2日 &#x1f3af; 项目概述与架构设计 核心问题定义 AI助手在处理时间相关…

类成员方法命名风格解析:动宾、纯动词与纯名词的选择之道

在软件开发的浩瀚代码海洋中&#xff0c;类成员方法的命名犹如指引开发者的灯塔&#xff0c;其重要性不言而喻。合理的命名不仅能让代码 “自我言说”&#xff0c;降低理解成本&#xff0c;还能提升开发效率&#xff0c;促进团队协作。常见的类成员方法命名风格可归纳为动宾结构…

自己电脑搭建本地服务器并实现公网访问,内网也能提供互联网连接使用

如何在本地自己计算机上自建服务器并开启公网地址提供互联网服务的详细教学&#xff0c;一步步操作流程&#xff0c;从本地部署到配置公网IP&#xff0c;最后并附无公网IP内网穿透公网访问的nat123方案。 要在自用的电脑上搭建本地服务器并实现公网地址的访问&#xff0c;需要…

如何使用AI改进论文写作 ---- 引言篇(2)

写在前面 本篇作为1.0版本的补充优化&#xff0c;记录本人的研究过程。 在分析了多本论文写作的相关的书籍之后&#xff0c;我明白了一点&#xff0c;关于论文写作&#xff0c;永远是一个熟能生巧的过程&#xff0c;对于人来说&#xff0c;必须多写才能够变得熟练&#xff0c;对…

【Java21】在spring boot中使用ScopedValue

文章目录 0.环境说明1.基础知识1.1 ScopedValue的特点 2.应用场景2.1 spring web项目中&#xff0c;使用ScopedValue传递上下文&#xff08;全局不可变量&#xff09;2.2 spring grpc项目中&#xff0c;使用ScopedValue传递上下文&#xff08;全局不可变量&#xff09; 3.Scope…

第10篇 图像语义分割和目标检测介绍

语义分割(Semantic Segmentation)是图像处理和机器视觉一个重要分支&#xff0c;其目标是精确理解图像场景与内容。语义分割是在像素级别上的分类&#xff0c;属于同一类的像素都要被归为一类&#xff0c;因此语义分割是从像素级别来理解图像的。如下如所示的照片&#xff0c;属…