FRRouting配置与OSPF介绍,配置,命令,bfd算法:

文章目录

      • 1、frrouting的配置:
      • 2、ospf
          • 2.1、检测和维护邻居关系
          • 2.2、ospfDR和BDR
          • 2.3、odpf邻居表
          • 2.4、ospf常用命令
          • 2.5、bfd配置

1、frrouting的配置:

sudo service zebra start  
sudo service ospfd start
telnet localhost 2604
en
configure terminal
router ospf
ospf router-id 192.168.30.2
network 192.168.142.0/24 area 0
network 192.168.30.0/24 area 0
quit
quit
write
quit

service zebra start:启动Zebra守护进程。Zebra是FRR的核心守护进程,负责管理路由表,并与操作系统的内核进行交互。

service ospfd start:启动OSPF守护进程。OSPF(Open Shortest Path First)守护进程负责处理OSPF路由协议相关的操作,如建立邻居关系、交换路由信息等。

通过Telnet连接到OSPF守护进程
● telnet:使用Telnet协议连接到指定的主机和端口。
● localhost:连接到本地主机。
● 2604:OSPF守护进程的默认端口。
router ospf:进入OSPF路由协议的配置模式。在这个模式下,你可以配置OSPF的具体设置。
ospf router-id 192.168.30.2:设置OSPF的Router ID。Router ID是一个唯一的标识符,用于标识OSPF路由器。通常设置为路由器的某个接口IP地址,但也可以是任何唯一的32位值。

network 192.168.142.0/24 area 0
network是一个关键字,用于指定OSPF路由器在其配置中宣布的网络。这个命令告诉OSPF进程某个特定的IP网络需要参与OSPF路由计算,并通告给其他OSPF路由器。

area
分隔网络 ,
● 同一个区域内的 OSPF 路由器,会自动寻找并建立邻居关系。成功建立邻居关系的路由器会交换链路状态数据库(LSDB),确保区域内的所有路由器在链路状态和路由信息上保持一致。
● 当同一区域内的某个路由器检测到拓扑变化(如接口状态变化),会生成新的 LSA 并进行泛洪(flooding),使该区域内的所有路由器更新其 LSDB。
● 同一个区域内的网络才会进行计算路由
● DR 和 BDR 是在 每个广播网络段 上进行选举的,而不是在整个区域范围内选举。
● 本项目域内网段全是aera0 域间连接的网段全是aera1

2、ospf

2.1、检测和维护邻居关系

OSPF(开放最短路径优先)协议通过以下几个步骤来检测和维护邻居关系:

  1. 发送Hello包
    OSPF通过在每个启用了OSPF的接口上定期发送Hello包来检测邻居。Hello包是OSPF的特殊报文,用于邻居发现和保持邻居关系。
  2. 接收Hello包
    当一个OSPF路由器接收到来自其他路由器的Hello包时,它会检查包中的信息,以确定是否要建立或维护与发送者的邻居关系。
  3. 交换Hello包
    如果两个路由器的Hello包中包含匹配的信息(如区域ID、子网掩码、Hello间隔和死间隔等),它们将成为邻居,并开始交换更多详细的OSPF信息。
  4. 建立邻居关系
    建立邻居关系的步骤如下:
    发送和接收Hello包:两个路由器交换Hello包并验证它们的兼容性。
    双向通信状态:如果Hello包中包含对方的Router ID,表明对方已经收到并认可它的Hello包,邻居状态将变为双向。
    交换数据库描述(DBD)包:邻居关系进入Exchange状态,路由器开始交换DBD包,其中包含链路状态数据库的摘要信息。
    发送链路状态请求(LSR):路由器请求尚未拥有的链路状态信息。
    发送链路状态更新(LSU):路由器响应LSR请求,发送LSU包,提供详细的链路状态信息。
    数据库同步完成:一旦链路状态数据库完全同步,邻居状态进入Full状态,表示邻居关系完全建立。

OSPF 邻居关系的状态转换通常经历以下几个阶段:

  1. Down:初始状态,没有任何 OSPF 邻居。
  2. Init:邻居发现,但未完全建立。
  3. 2-Way:双方确认彼此的存在。
  4. Exstart:准备交换 LSA。
  5. Exchange:交换 LSA。
  6. Loading:加载缺失的 LSA。
  7. Full:完全建立邻接关系。 . 完成邻接建立 LSA 交换 SPF 计算 :路由器可以使用收到的 LSA 来执行最短路径优先(SPF)算法,计算到网络中其他路由器的最佳路径。 “Full” 状态的邻居会参与 OSPF 的路由选择过程,从而在 OSPF 路由表中添加有效的路由
  8. 定期发送Hello包
    邻居关系建立后,OSPF路由器会定期发送Hello包来维持邻居关系。如果在规定的时间间隔内(通常是死间隔的四倍)没有收到邻居的Hello包,OSPF将认为该邻居不可达,并删除其邻居条目。

示例说明
假设有两个OSPF路由器A和B,它们连接在同一以太网交换机上,并配置在同一网段 192.168.1.0/24:
路由器A的接口配置:

interface GigabitEthernet0/1
ip address 192.168.1.1 255.255.255.0
ip ospf 1 area 0

路由器B的接口配置:

interface GigabitEthernet0/1
ip address 192.168.1.2 255.255.255.0
ip ospf 1 area 0

在这种配置下:
路由器A和B在同一网段 192.168.1.0/24 内。
它们使用组播地址 224.0.0.5 发送Hello包。
它们的Hello包中包含相同的区域ID、Hello间隔、死间隔和子网掩码。
因此,路由器A和B会相互发现并建立邻居关系。

在大多数情况下,OSPF邻居关系是在同一网段内建立的。这意味着OSPF邻居之间的接口IP地址和子网掩码必须匹配,确保它们在同一网络范围内。这种机制确保了OSPF路由器能够正确地发现和维护邻居关系,从而保证路由信息的准确性和一致性。

2.2、ospfDR和BDR

在OSPF(Open Shortest Path First)协议中,DR(Designated Router,指定路由器)和BDR(Backup Designated Router,备份指定路由器)是两个重要的角色,它们在多接入网络(如以太网)中扮演着关键的作用,用以优化网络中的OSPF流量和减少网络带宽的消耗。
Designated Router (DR)
DR是OSPF网络中每个多接入网络(如以太网)中被选举出来的一个路由器。它的主要作用是代表该网络中的其他路由器进行OSPF通信。当一个网络中存在多个路由器时,如果这些路由器都相互发送OSPF链路状态通告(LSA),那么网络中的OSPF流量将会非常庞大,从而可能导致网络拥塞。通过选举一个DR,网络中的其他路由器只需与DR交换LSA,而DR则负责将这些LSA转发给网络中的其他路由器以及自治系统内的其他路由器。这样,就大大减少了网络中的OSPF流量。
BDR
是DR的备份,它的作用是在DR失效时能够迅速接管DR的职责,从而保证网络的稳定性和连续性。与DR类似,BDR也会监听网络中的LSA,但通常不会转发给网络内的其他路由器,除非DR失效。BDR的选举过程与DR相同,但优先级稍低,确保在DR正常工作时,BDR处于待命状态。
选举过程
DR和BDR的选举过程基于以下几个因素:

  1. 路由器优先级:每个路由器都可以配置一个OSPF优先级(默认为1),优先级最高的路由器将被选为DR,次高的则被选为BDR。如果优先级相同,则根据路由器的Router ID(通常基于IP地址)来选择。
  2. 全连接性:为了被选为DR或BDR,路由器必须能够与网络中的其他所有OSPF路由器形成邻接关系。
2.3、odpf邻居表

在这里插入图片描述
● FULL:表示已经建立了完全的邻居关系,并同步了 LSDB。
● Init:表示接口已经接收到 Hello 报文,但还没有完成整个邻居关系建立过程。
● DR/BDR:表示该邻居是 Designated Route(DR(指定路由器)r 或 Backup Designated Router(备份指定路由器)。
● 在OSPF协议中,每个路由器都必须有一个唯一的Route ID
● DR负责在该网络内广播路由信息,而BDR则作为DR的备份。其他路由器则被称为DROther,它们只与DR和BDR交换路由信息,而不直接与其他DROther路由器交换信息。
在这里插入图片描述
在这里插入图片描述

2.4、ospf常用命令

vtysh 是一个集成的命令行接口,用于访问所有FRR守护进程(例如,zebra、ospfd等)

show ip ospf 查看ospf的全局状态

show ip ospf interface 查看OSPF接口信息

show ip ospf neighbor # 查看 OSPF 邻居状态

show ip ospf neighbor # 查看指定接口的 OSPF 邻居

show ip ospf neighbor detail # 查看 OSPF 邻居的详细信息

show ip ospf database # 查看 OSPF 数据库(LSDB)中所有 LSA

show ip ospf database router # 查看 Router LSA(类型 1 LSA)

show ip ospf database network # 查看 Network LSA(类型 2 LSA)

show ip ospf database summary # 查看 Summary LSA(类型 3 LSA)

show ip route ospf # 查看 OSPF 路由

show running-config 显示设备的完整运行配置,包括所有接口的 IP 地址、路由协议配置(如 OSPF、BGP 等)、访问控制列表(ACL)、静态路由、NAT 配置等。

show ip route 此命令用于查看路由器的完整路由表,包括所有路由来源 , 包括直连路由、静态路由、OSPF 路由、RIP 路由、BGP 路由等。每种路由类型会以不同的标识符表示,例如 O 表示 OSPF 路由,C 表示直连路由

show ip route ospf 此命令专门用于查看 OSPF 协议学习到的路由信息。 ,包括来自其他 OSPF 路由器的路由、直连路由和默认路由。

/usr/lib/frr/frrinit.sh restart 重启frr 通常只需要将 frr.conf 文件放置在 /etc/frr/ 目录下,FRR 就会在启动时自动加载该配置文件

show ip ospf database
在这里插入图片描述
顶部信息
● OSPF Router with ID (0.0.0.61):当前 OSPF 路由器的 Router ID,
Router Link States(路由器链路状态)(LSA) 类型 1
● Link ID:链路的标识符(Router ID),表示一个 OSPF 路由器或某个链路的标识。
● ADV Router:Advertising Router,发布该链路状态的路由器 ID。
● Age:LSA(链路状态广告)老化计时器,值为秒数,越大表明此 LSA 更旧(默认 3600 秒自动刷新)。
● Seq#:序列号,OSPF 用于版本控制。值越大代表 LSA 较新。
● CkSum:LSA 校验和,用于检查链路状态的完整性。
● Link Count:该路由器的链路数,表示此路由器直接连接的链路数量。
Net Link States(网络链路状态)类型 2:
● Link ID:网络链路标识符,通常是 DR(指定路由器)的 IP 地址,代表此网络的 IP。
● ADV Router:发布此网络状态的路由器的 Router ID,通常是网络的 DR。
● Age:同样为 LSA 老化时间,单位为秒。
● Seq#:序列号,用于标识 LSA 的版本。
● CkSum:LSA 校验和。
Summary Link States(汇总链路状态)
● Link ID:目的网络的标识符(如 17.2.5.20/30),表示网络前缀。 Summary LSA 和 AS External LSA 的作用是描述如何到达特定网络前缀,而不仅仅是描述链路之间的连接状态。因此,Link ID 表示目标网络,以便接收 LSA 的路由器可以根据此信息更新路由表,了解该目标网络的路径。
● ADV Router:发布此汇总状态的路由器的 Router ID,通常为 ABR。 ABR 负责连接 OSPF 的骨干区域(Area 0)与其他非骨干区域(如 Area 1、Area 2)。当非骨干区域的路由信息需要传播到骨干区域或其他区域时,ABR 会将这些信息汇总并生成 Summary LSA,即汇总链路状态通告,将汇总的路由信息从一个区域传递到另一个区域。 存储的网段全是跨越网段. 当前区域(域)内的连接信息,OSPF 使用的是 Link State Advertisement (LSA) 类型 1 和类型 2:
● Age:该 LSA 的老化时间。
● Seq#:序列号。
● CkSum:LSA 校验和。
● Route:路由前缀或子网,表示 LSA 描述的网络范围。

2.5、bfd配置

BFD(Bidirectional Forwarding Detection)**是一种网络协议,用于快速检测两台路由设备之间的连接状态,以便在发生连接故障时迅速做出响应。BFD 提供了超低延迟的故障检测机制,可以支持 OSPF、BGP、IS-IS 等多种路由协议,加速网络收敛,提高整体网络可靠性
OSPF 中,BFD 与 OSPF 邻居关系协同工作,用于检测 OSPF 路由器之间的链路是否出现故障。BFD 提供的快速故障检测机制能够让 OSPF 在链路中断时更快速地收敛,从而减少网络中断的持续时间。

● OSPF 默认链路故障检测时间:OSPF 默认使用 Hello 协议检测邻居链路的状态。链路故障检测的时间可能会长达 40 秒或更多,具体取决于 OSPF 的 Hello 和 Dead 间隔时间。
● BFD 故障检测时间:通过 BFD,链路故障的检测时间通常可以减少到 300 毫秒以内,远远小于 OSPF 的默认故障检测时间。

经过实测,分布式网络108节点ospf收敛时间:10s->1s内

bfd配置:
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Perplexity 开源DeepSeek-R1 模型新版本 R1-1776

引言 在人工智能领域,模型的更新迭代如同科技界的时尚潮流,不断推陈出新。今天,我们要介绍的是Perplexity AI开源的新版推理模型——DeepSeek-R1 1776。这个版本不仅继承了前代的强大性能,还在公正性和准确性上进行了显著提升。那…

关系中出现这10个信号,离分手就不远了(爱情友情都适用)

亲密关系的隐形裂痕 在一个阳光明媚却略显萧瑟的午后,咖啡杯里的咖啡已经凉透。小李盯着手机屏幕,那些曾经热烈的对话记录现在看起来如此陌生,仿佛隔着一层薄薄的雾。她终于意识到,这段关系已经悄然走向尽头。 亲密关系是一场精心…

马斯克Grok3使用入口和订阅教程(白嫖150刀API额度)

文章目录 马斯克Grok3使用入口和订阅教程(白嫖150刀API额度)前言介绍如何订阅X上Premium服务国内订阅X的Premium教程 白嫖教程小结 马斯克Grok3使用入口和订阅教程(白嫖150刀API额度) 前言介绍 重点:Grok 3仅对X上的Premium用户开放。你需要订阅X的Premium服务才能…

相机开发调中广角和焦距有什么不一样

在相机中,调整广角和调整焦距是两个不同的概念,它们的作用和实现方式也不同。以下是两者的详细对比和解释: 1. 调整广角 定义 广角是指相机的视野范围(Field of View, FOV)。调整广角实际上是调整相机的视野范围。更广的视野意味着可以捕捉到更多的场景内容(更宽的画面)…

让大模型帮我设计crnn网络及可运行demo,gpt4o豆包qwendeepseek-r1

prompt 使用 crnn 提取图像特征,给出图像好坏的二分类结果,写清楚代码备注,注释清楚向量维度大小,并给出一个可运行的 demo1、GPT-4o 以下是一个使用 CRNN(Convolutional Recurrent Neural Network)提取图…

DeepBI助力跨境电商打破流量垄断:AI驱动的亚马逊广告投放新打法

#亚马逊广告优化# 亲爱的亚马逊跨境电商卖家们,是否曾因亚马逊的广告打法不清晰,或是纠结于亚马逊广告费用过高,或是为亚马逊电商广告怎么投放合适的问题而苦恼?在竞争激烈的亚马逊市场中,广告投放效果平平&#xff0…

前端基础入门:HTML、CSS 和 JavaScript

在现代网页开发中,前端技术扮演着至关重要的角色。无论是个人网站、企业官网,还是复杂的 Web 应用程序,前端开发的基础技术 HTML、CSS 和 JavaScript 都是每个开发者必须掌握的核心技能。本文将详细介绍这三者的基本概念及其应用 一、HTML——网页的骨架 HTML(HyperText …

单元测试junit5

一、idea 安装自动化生成插件jcode5 安装可能不成功&#xff0c;尝试多次安装&#xff1b; 安装成功后&#xff0c;重启idea&#xff0c;再次确认安装是否成功&#xff1b; 二、在需要生成单元测试代码的模块的pom中引入依赖 ......<parent><groupId>org.springf…

windows系统本地部署DeepSeek-R1全流程指南:Ollama+Docker+OpenWebUI

本文将手把手教您使用OllamaDockerOpenWebUI三件套在本地部署DeepSeek-R1大语言模型&#xff0c;实现私有化AI服务搭建。 一、环境准备 1.1 硬件要求 CPU&#xff1a;推荐Intel i7及以上&#xff08;需支持AVX2指令集&#xff09; 内存&#xff1a;最低16GB&#xff0c;推荐…

Windows Server 任务计划

背景&#xff1a;QMT服务只能在windows服务器上面运行 直接在控制面板里面搜索"任务计划"点进去 需要注意的是&#xff1a; 1.创建任务计划选择”不管用户是否登录都运行“&#xff0c;是否需要最高权限执行看你的需求 2.操作程序或脚本&#xff0c;选择bat脚本就…

makefile+LSF

LSF LSF&#xff08;Load Sharing Facility&#xff09;是一种常用的集群作业调度系统&#xff0c;bsub 命令用于提交作业到 LSF 集群&#xff0c;而若要关闭&#xff08;终止&#xff09;一个正在运行的作业&#xff0c;需要使用 bkill 命令&#xff0c;下面为你详细介绍相关…

spring boot知识点3

1.spring boot能否使用xml配置 可以&#xff0c;但是很繁琐&#xff0c;现在都建议走JavaConfig 2.spring boot的核心配置文件 application.properties application.yml 3.bootstrap.properties和application.properties的区别 b&#xff1a;用于远程配置 a&#xff1a;…

人工智能学习环境配置

文章目录 Python、CUDA、cuDNN、PyTorch 和 Anaconda 的介绍PythonCUDAcuDNNPyTorchAnaconda联系 安装n卡驱动更新安装 AnacondaAnaconda配置镜像源CUDA安装Cudnn安装Anaconda初始化创建虚拟环境安装 PyTorch验证安装 可能的错误SSL错误 Python、CUDA、cuDNN、PyTorch 和 Anaco…

【C语言】C语言 食堂自动化管理系统(源码+数据文件)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;专__注&#x1f448;&#xff1a;专注主流机器人、人工智能等相关领域的开发、测试技术。 【C语言】C语言 食堂自动化管理系统&#xff08;源…

DeepSeek是什么?两种模型的对比?

最近DeepSeek的风也是很大&#xff0c;它也是很火&#xff0c;那么DeepSeek是什么呢&#xff1f; 什么是DeepSeek&#xff1f; DeepSeek是一家专注通用人工智能&#xff08;AGI&#xff09;的中国科技公司&#xff0c;主攻大模型研发与应用。DeepSeek-R1是其开源的推理模型&a…

【架构】分层架构 (Layered Architecture)

一、分层模型基础理论 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0365cf0bfa754229bdedca6b472bffc7.png 1. 核心定义 分层架构(Layered Architecture)模型是一种常见的软件设计架构,它将软件系统按照功能划分为不同的层次,每个层次都有特定的职责和功能…

基于MATLAB的均匀面阵MUSIC算法DOA估计仿真

基于MATLAB的均匀面阵MUSIC算法DOA估计仿真 文章目录 前言一、二维MUSIC算法原理二、二维MUSIC算法MATLAB仿真三、MATLAB源代码总结 前言 \;\;\;\;\; 在波达角估计算法中&#xff0c;MUSIC 算法与ESPRIT算法属于特征结构子空间算法&#xff0c;是波达角估计算法中的基石。在前面…

组学数据分析实操系列 |(四) 富集气泡图的绘制

前言:在上一篇中&#xff0c;我们介绍了利用Metascape零代码实现富集分析&#xff0c;但是Metascape的富集分析结果是以柱状图的形式展示的。文章中更常使用的富集结果可视化方式是气泡图。气泡图可以通过气泡的坐标、形状、颜色、大小等来展示更加丰富的富集分析结果&#xff…

实现一个专注应用-后端开发(一)-搭建

搭建后端服务 搭建服务拆分下用户服务 增加公共库通用模块 运行一下接入数据库安装Prisma增加prisma库 redis增加redis服务 搭建服务 使用nestjs来做 这里是nestjs的网站Nestjs 安装 nest npm i -g nestjs/cli创建一个项目 并在开发工具打开 nest new todonest new xx 是新…

C++17并行化加速STL算法——std::execution

C17 并行化STL算法 文章目录 C17 并行化STL算法概念环境准备工具类 并行算法 - 使用并行算法 - 执行策略总览选择标准详细介绍顺序执行 seq并行化顺序执行 par并行化乱序执行 par_unseq 并行算法 - 异常处理可以不使用并行算法并行算法 - 限制并行算法有哪些原有算法17引入新算…