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

ops/2025/2/22 3:20:02/

文章目录

      • 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

ospf_42">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路由器能够正确地发现和维护邻居关系,从而保证路由信息的准确性和一致性。

ospfDRBDR_94">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路由器交换信息。
在这里插入图片描述
在这里插入图片描述

ospf_113">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.ppmy.cn/ops/160086.html

相关文章

AI代码生成器如何重塑前端开发工作环境?

随着人工智能技术的飞速发展,AI代码生成器等AI工具正以前所未有的速度改变着前端开发领域。它们不仅提升了开发效率,也深刻地影响着前端开发人员的工作环境,带来诸多机遇与挑战。本文将深入探讨AI工具如何重塑前端开发工作环境,以…

在Unity中用简单工厂模式模拟原神中的元素反应

1. 第一步创建3个脚本Factory(反应工厂),Reactions(具体反应),FactoryText(测试反应的脚本) 2.编写工厂脚本 using UnityEngine;// 定义一个元素反应的接口,所有具体的元…

Linux 文件与目录管理

Linux 文件与目录管理 我们知道 Linux 的目录结构为树状结构,最顶级的目录为根目录 /。 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。 在开始本教程前我们需要先知道什么是绝对路径与相对路径。 绝对路径: 路径的写法…

idea-gradle打包运行配置

最近接触了一个项目,使用gradle做为构建工具,这里记录一波,毕竟平时使用的都是maven idea 配置 这里有个坑,Gradle Wrapper,配置的地址gradle下载超时 这个配置修改成阿里的 第一张 第二张 第二张配置的jvm貌似没啥用…

数据结构(陈越,何钦铭)第三讲 树(上)

3.1 树与数的表示 3.1.1 顺序查找 int SequentialSearch(List Tbl,ElementType K){int i;Tbl->Element[0]K;for(iTbl->Length;Tbl->Element[i]!K;i--);return i; } typedef struct LNode *List; struct LNode{ElementType Element[MAXSIZE];int Length; };3.1.2 二分…

Brave132编译指南 MacOS篇 - 编译环境配置(四)

1. 引言 在成功获取Brave浏览器的源代码之后,我们来到了编译流程的下一个关键环节:配置编译环境。一个正确且精心配置的编译环境不仅能确保编译过程的顺利进行,还能显著提升编译效率。本篇将详细指导大家如何配置Brave浏览器在MacOS系统上的…

Spring-GPT智谱清言AI项目(附源码)

一、项目介绍 本项目是Spring AI第三方调用整合智谱请言(官网是:https://open.bigmodel.cn)的案例,回答响应流式输出显示,这里使用的是免费模型,需要其他模型可以去 https://www.bigmodel.cn/pricing 切换…

深研究:与Dify建立研究自动化应用

许多个人和团队面临筛选各种网页或内部文档的挑战,以全面概述一个主题。那么在这里我推荐大家使用Dify,它是一个用于LLM应用程序开发的低代码,开源平台,它通过自动化工作流程的多步搜索和有效汇总来解决此问题,仅需要最小的编码。 在本文中,我们将创建“ Deepresearch”…