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(开放最短路径优先)协议通过以下几个步骤来检测和维护邻居关系:
- 发送Hello包
OSPF通过在每个启用了OSPF的接口上定期发送Hello包来检测邻居。Hello包是OSPF的特殊报文,用于邻居发现和保持邻居关系。 - 接收Hello包
当一个OSPF路由器接收到来自其他路由器的Hello包时,它会检查包中的信息,以确定是否要建立或维护与发送者的邻居关系。 - 交换Hello包
如果两个路由器的Hello包中包含匹配的信息(如区域ID、子网掩码、Hello间隔和死间隔等),它们将成为邻居,并开始交换更多详细的OSPF信息。 - 建立邻居关系
建立邻居关系的步骤如下:
发送和接收Hello包:两个路由器交换Hello包并验证它们的兼容性。
双向通信状态:如果Hello包中包含对方的Router ID,表明对方已经收到并认可它的Hello包,邻居状态将变为双向。
交换数据库描述(DBD)包:邻居关系进入Exchange状态,路由器开始交换DBD包,其中包含链路状态数据库的摘要信息。
发送链路状态请求(LSR):路由器请求尚未拥有的链路状态信息。
发送链路状态更新(LSU):路由器响应LSR请求,发送LSU包,提供详细的链路状态信息。
数据库同步完成:一旦链路状态数据库完全同步,邻居状态进入Full状态,表示邻居关系完全建立。
OSPF 邻居关系的状态转换通常经历以下几个阶段:
- Down:初始状态,没有任何 OSPF 邻居。
- Init:邻居发现,但未完全建立。
- 2-Way:双方确认彼此的存在。
- Exstart:准备交换 LSA。
- Exchange:交换 LSA。
- Loading:加载缺失的 LSA。
- Full:完全建立邻接关系。 . 完成邻接建立 LSA 交换 SPF 计算 :路由器可以使用收到的 LSA 来执行最短路径优先(SPF)算法,计算到网络中其他路由器的最佳路径。 “Full” 状态的邻居会参与 OSPF 的路由选择过程,从而在 OSPF 路由表中添加有效的路由
- 定期发送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的选举过程基于以下几个因素:
- 路由器优先级:每个路由器都可以配置一个OSPF优先级(默认为1),优先级最高的路由器将被选为DR,次高的则被选为BDR。如果优先级相同,则根据路由器的Router ID(通常基于IP地址)来选择。
- 全连接性:为了被选为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配置:


相关文章:
FRRouting配置与OSPF介绍,配置,命令,bfd算法:
文章目录 1、frrouting的配置:2、ospf2.1、检测和维护邻居关系2.2、ospfDR和BDR2.3、odpf邻居表2.4、ospf常用命令2.5、bfd配置 1、frrouting的配置: sudo service zebra start sudo service ospfd start telnet localhost 2604 en configure termina…...
【MyBatis】预编译SQL与即时SQL
目录 1. 以基本类型参数为例测试#{ }与${ }传递参数的区别 1.1 参数为Integer类型 1.2 参数为String类型 2. 使用#{ }传参存在的问题 2.1 参数为排序方式 2.2 模糊查询 3. 使用${ }传参存在的问题 3.1 SQL注入 3.2 对比#{ } 与 ${ }在SQL注入方面存在的问题 3.3 预编译…...
prometheus、grafana、windows、node exporter 安装包
开发过程中应用到的安装包软件: prometheus-2.20.0.windows-amd64.tar.gz windows_exporter-0.13.0-amd64.exe grafanawindows-x64.zip influxdb-1.7.0_windows_amd64.zip 我用夸克网盘分享了「prometheus、grafana、windows、node exporter 安装包」ÿ…...
Python数据可视化 - Matplotlib教程
文章目录 前言一、Matplotlib简介及安装1. Matplotlib简介2. 安装Matplotlib 二、Matplotlib Pyplot1. Pyplot介绍2. Pyplot中方法介绍2.1 创建和管理图形2.2 绘制图形2.3 设置图形属性2.4 保存和展示 三、Matplotlib绘图标记1. 介绍2. 基本用法3. 标记大小与颜色4. 标记样式列…...
DeepSeek R1 与 OpenAI O1:机器学习模型的巅峰对决
我的个人主页 我的专栏:人工智能领域、java-数据结构、Javase、C语言,希望能帮助到大家!!!点赞👍收藏❤ 一、引言 在机器学习的广袤天地中,大型语言模型(LLM)无疑是最…...
内容中台重构企业内容管理流程驱动智能协作升级
内容概要 内容中台作为企业数字化转型的核心基础设施,通过技术架构革新与功能模块整合,重构了传统内容管理流程的底层逻辑。其核心价值在于构建动态化、智能化的内容生产与流转体系,将分散的创作、存储、审核及分发环节纳入统一平台管理。基…...
STM32 Flash详解教程文章
目录 Flash基本概念理解 Flash编程接口FPEC Flash擦除/写入流程图 Flash选项字节基本概念理解 Flash电子签名 函数读取地址下存放的数据 Flash的数据处理限制部分 编写不易,请勿搬运,感谢理解!!! Flash基本概念…...
小米 R3G 路由器刷机教程(Pandavan)
小米 R3G 路由器刷机教程(Pandavan) 一、前言 小米 R3G 路由器以其高性价比和稳定的性能备受用户青睐。然而,原厂固件的功能相对有限,难以满足高级用户的个性化需求。刷机不仅可以解锁路由器的潜能,还能通过第三方固…...
红队视角出发的k8s敏感信息收集——Kubernetes API 扩展与未授权访问
针对 Kubernetes API 扩展与未授权访问 的详细攻击视角分析,聚焦 Custom Resource Definitions (CRD) 和 Aggregated API Servers 的潜在攻击面及利用方法: 攻击链示例 1. 攻击者通过 ServiceAccount Token 访问集群 → 2. 枚举 CRD 发现数据库配…...
11. Docker 微服务实战(将项目打包生成镜像,在 Docker 当中作为容器实例运行)
11. Docker 微服务实战(将项目打包生成镜像,在 Docker 当中作为容器实例运行) 文章目录 11. Docker 微服务实战(将项目打包生成镜像,在 Docker 当中作为容器实例运行)2. 最后: 建 Module - docker_boot 编辑 pom <?xml version"1.0&…...
mysql和minio
在现代应用架构中,Word 文档、PPT 等文件通常存储在对象存储服务(如 MinIO)中,而不是直接存储在关系型数据库(如 MySQL)中。以下是具体的分工和原因: 为什么选择对象存储(如 MinIO&a…...
计算机视觉:卷积神经网络(CNN)基本概念(二)
第一章:计算机视觉中图像的基础认知 第二章:计算机视觉:卷积神经网络(CNN)基本概念(一) 第三章:计算机视觉:卷积神经网络(CNN)基本概念(二) 第四章:搭建一个经典的LeNet5神经网络 接上一篇《计算机视觉&am…...
【数据结构-红黑树】
文章目录 红黑树红黑树介绍红黑树的五个基本性质红黑树的平衡原理红黑树的操作红黑树的操作 代码实现节点实现插入和查询操作 红黑树 红黑树介绍 红黑树(Red-Black Tree)是一种自平衡的二叉查找树(Binary Search Tree, BST)&…...
dify.ai 配置链接到阿里云百练等云厂商的 DeepSeek 模型
要将 dify.ai 配置链接到阿里云百练等云厂商的 DeepSeek 模型. 申请阿里云百练的KEY 添加模型 测试模型...
手机ROM是什么
本篇将以我自己的手机——小米13为例 手机 ROM 详解 在手机领域,ROM(Read-Only Memory) 通常指的是 手机的操作系统和固件,包括 Android 设备的 系统镜像(system.img)、引导程序(boot.img&…...
应用分层、三层架构和MVC架构
前言 在前面中,我们已经学习了Spring MVC 的一些基础操作,那么后面就用一些简单的案例来巩固一下。 在开始学习做案例之前,我们先来了解一下在软件开发中常见的设计模式和架构。 应用分层 含义 应用分层是一种软件开发设计思想࿰…...
Apache Struts2 - 任意文件上传漏洞 - CVE-2024-53677
0x01:漏洞简介 Apache Struts 是美国 Apache 基金会的一个开源项目,是一套用于创建企业级 Java Web 应用的开源 MVC 框架(将软件分为模型(Model)、视图(View)和控制器(Controller&a…...
传统混合专家模型MoE架构详解以及python示例(DeepSeek-V3之基础)
我们已经了解到DeepSeek-V3的框架结构基于三大核心技术构建:多头潜在注意力(MLA)、DeepSeekMoE架构和多token预测(MTP)。而DeepSeekMoE架构的底层模型采用了混合专家模型(Mixture of Experts,MoE)架构。所以我们先了解一下传统混合专家模型MoE架构。 一、传统混合专家模…...
Tomcat如何处理Http请求
Tomcat处理HTTP请求的流程是一个复杂但有序的过程,涉及多个组件的协同工作。以下是对Tomcat处理HTTP请求流程的详细讲解: 一、接收请求 监听端口:Tomcat通过配置的Connector组件监听特定的端口(默认是8080)ÿ…...
安全筑基,智能赋能:BeeWorks IM引领企业协同新纪元
在数字经济高速发展的今天,企业通讯系统已从单纯的信息传递工具演变为支撑业务创新的核心平台。传统通讯工具在安全性、智能化、协同性等方面的不足,严重制约着企业的数字化转型进程。BeeWorks IM系统以其创新的技术架构和智能化功能,正在重新…...
AlmaLinux使用Ansible自动部署k8s集群
一、环境准备 节点规划(最低要求) 1台Master节点(4核/8GB内存)2台Worker节点(2核/4GB内存)1台Ansible控制机(可复用Master节点) 系统配置 # 所有节点执行 sudo hostnamectl set-hos…...
solidworks零件的绘制学习
1、拉伸凸台拉伸切除可以在一个零件中打孔,如下图: 2、旋转凸台配合旋转切除; 3、薄壁特征:在拉伸凸台,旋转凸台中都有;在一个面中画完草图,然后选择拉伸凸台或旋转凸台,里面就会出…...
DeepSeek-V3模型底层架构的核心技术一(多Token预测(MTP)技术)
一、DeepSeek-V3的框架结构 DeepSeek-V3的框架结构基于三大核心技术构建:多头潜在注意力(MLA)、DeepSeekMoE架构和多token预测(MTP)。这些创新使得模型在处理长序列、平衡计算负载以及生成连贯文本方面表现出色。 1. 基础架构 DeepSeek-V3的基础架构仍然基于Transformer框…...
llama.cpp部署 DeepSeek-R1 模型
一、llama.cpp 介绍 使用纯 C/C推理 Meta 的LLaMA模型(及其他模型)。主要目标llama.cpp是在各种硬件(本地和云端)上以最少的设置和最先进的性能实现 LLM 推理。纯 C/C 实现,无任何依赖项Apple 芯片是一流的——通过 A…...
Spring源码分析のBean创建流程(上)
文章目录 前言一、preInstantiateSingletons1.1、getMergedLocalBeanDefinition1.2、isFactoryBean 二、getBean 前言 原生Spring在refresh方法中,会在finishBeanFactoryInitialization:preInstantiateSingletons方法中直接创建所有非懒加载的单例Bean。…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_time_update函数
定义在 src\core\ngx_times.c 中 ngx_time_init 函数后面 void ngx_time_update(void) {u_char *p0, *p1, *p2, *p3, *p4;ngx_tm_t tm, gmt;time_t sec;ngx_uint_t msec;ngx_time_t *tp;struct timeval tv;if (!ngx_trylock(&ngx…...
DeepSeek笔记(二):DeepSeek局域网访问
如果有多台电脑,可以通过远程访问,实现在局域网环境下多台电脑共享使用DeepSeek模型。在本笔记中,首先介绍设置局域网多台电脑访问DeepSeek-R1模型。 一、启动Ollama局域网访问 1.配置环境变量 此处本人的操作系统是Windows11,…...
基于大数据的全国热门旅游景点数据分析系统的设计与实现
【大数据】基于大数据的全国热门旅游景点数据分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统主要包括登录注册、系统首页、图表分析、数据管理和个人信息五大功能模…...
【Unity3D】Jenkins Pipeline流水线自动构建Apk
目录 一、准备阶段 二、创建Pipeline流水线项目 三、注意事项 四、扩展 1、Pipeline添加SVN更新项目Stage阶段 一、准备阶段 1、安装tomcat 10.0.5 Index of apache-local/tomcat/tomcat-10 2、安装jdk 17 Java Archive Downloads - Java SE 17.0.13 and later 3、…...
10G EPON光模块
一、10G EPON对称光模块 工作模式:上行突发接收、下行连续发射。 工作原理:当需要发送信号时,系统信号通过光模块的电接口把信号传送到驱动芯片,芯片处理后,驱动激光器发出调制光信号,经光纤发到远端&…...
