一、ospf简介

OSPF是基于链路状态的内部网关协议,与距离矢量协议不同,链路状态协议通告的是链路状态而不是路由表。OSPF是用于自治系统(AS)内部的路由决策,特点有,收敛速度快,安全性好,避免环路。
目前ipv4主要用OSPFV2版本,而ipv6则是OSPFv3版本。

二、OSPF工作流程

1、建立邻居

  • 路由器通过周期性的发送hello报文,来发现并维护邻居关系。
  • 如果两台路由器的参数相匹配,比如区域id,版本,认证方式等,就会建立邻居关系。
  • 邻居关系建立后就会进行条件匹配(在BMA或NBMA网络中通过优先级比较和RID对比来选举DR和BDR),如果条件匹配成功则进入后续状态,匹配失败则停留在邻居阶段,仅仅依靠hello报文保活
    在这里插入图片描述

2、链路状态信息同步

  • DR/BDR选举,在以太网中,为了减少链路状态信息的交换次数,设置了选举指定路由器和备份指定路由器。选举依据优先级和router id ,高优先级的路由器当选。优先级一样,则router id 大的当选。
  • 链路状态通告,当邻居关系建立成功后,路由器会向邻居发送LSA,其中包含了路由器的链路状态信息,如接口的ip,子网掩码,邻居等,LSA会在ospf区域类传播,确保所有的路由器都能获取到相同的链路状态信息,
  • 数据库同步,收到LSA的路由器会和自己的LSDB中的进行对比,若收到的LSA是新的或者是更优的,就将其添加到LSDB中,并传播该LSA给邻居。
    在这里插入图片描述

3、路由计算

  • 利用最短路径优先算法,计算到达各个目的网络的最短路径,路由器将路径信息转换成路由条目,添加到路由表中。路由表中包含网络地址,下一跳地址,出接口信息,路由器将依据路由表转发数据包。

在这里插入图片描述
在这里插入图片描述

4、路由更新

基于组播进行更新(224.0.0.5 /224.0.0.6)
支持触发更新,每30分钟进行一次周期更新

三、OSPF区域

为了适应大型网络,OSPF在AS内划分了多个区域,每个路由器只用维护自己所在区域的链路状态信息
区域划分的优点为:
尽量减少路由条目,使得拓扑的变化只影响本区域内部

区域划分的规则:

  • 星型结构
  • 骨干区域为0区;大于0的为非骨干区域
  • 所有非骨干区域必须连接在骨干区域上
  • 两个区域相连时必须存在ABR(域间路由器)

Router-ID : 路由器标识符,用于在一个ospf域中唯一的标识一台路由

四OSPF数据包类型

1.HELLO包

  • 发现和维护邻接关系:用于邻居节点的发现,建立初始连接,并周期性发送以维持邻接状态。

  • 协商参数一致性:检查凝聚节点的参数(如区域id,hello时间,认证方式等)是否匹配。

2.DBD包(数据库描述包)

  • 同步链路状态数据库:在邻接关系建立初期,主从路由器通过交换DBD包,描述本地LSDB中的链路状态摘要。
  • 主从关系协商:确定数据同步的主从角色(router Id大的一方为主路由器)

3.链路状态请求包(LSR)

  • 请求特定的LSA信息:当路由器发现本地LSDB中缺少或存在过时的LAS时,向邻居发送LSR 包,请求完整的LSA数据。

4.链路状态更新包(LSU)

  • 发送完整的LSA数据,响应LSR请求,或主动泛洪最新的LSA信息,确保全网LSDB一致。

5.链路状态确认包(LSACK)

  • 确认LSA可靠传输:接收方收到LSU后,向发送方返回lsack包,确保lsa已正确接收,避免数据丢失。

五、OSPF状态机

Down状态

  • 初始状态:路由器未在接口上收到来自任何邻居的hello数据包,或邻居通信中断
  • 周期性发送hello数据包,(默认10秒或30秒),尝试发现邻居。
  • 当收到合法的hello包时,若hello包中未含自身router id 时,则进入init状态。

Init状态

  • 路由器收到邻居的hello包,但尚未被邻居识别。

  • 验证hello包中的参数一致性

  • 区域id是否匹配(是否在同一个区域)

  • 认证方式和密钥是否一致

  • hello时间和dead时间是否匹配

  • 当邻居的hello包中发现自身router Id:确认双向通信建立,进入Two-Way状态

Two-Way状态

  • 双向通信完成:双方hello包中均含对方router id,邻居关系初步建立。
    核心功能:

  • DR/BDR选举(仅在广播型网络和NBMA网络中):
    接口优先级(默认为1,0-255)和router id决定选举结果.
    优先级就高的为DR,次高为BDR;优先级相同时,router Id大的为DR

  • 广播网络中需要同步LSDB的节点(如DR和BDR,DR和DROther)进入Exstart状态

  • 点到点网络或不需要同步的场景(如p2p,loopback接口)直接进入exstart状态,无须选举DR与BDR

Exstart状态

  • 主从关系协商阶段:两台路由器准备交换DBD包,需要先确认主路由器和从路由器
  • router Id较大的一方成为主路由器,负责控制dbd包的发送顺序。
  • 主从关系协商完成:双方达成一致,进入exchange状态。

Exchange状态

  • LSDB摘要同步阶段:主路由器通过交换dbd包,传递本地lsdb中的lsa头部信息(如lsa类型,链路状态id,通告路由器等)
  • 主路由器发送携带lsa头部列表的dbd包,序号递增;从路由器接收后返回dbd包,并确认序号。
  • 接收方对比本地lsdb,标记缺失或过时的lsa
  • 双方完成lsdb摘要对比,进入loading状态。

Loading状态

-请求缺失的lsa的完整数据:路由器根据exchange阶段发现的缺失lsa,向邻居发送链路状态请求包(LSR),获取对应的lsa

  • 所有的LSA获取并确认,进入FULL状态。

FULL状态

  • 邻接关系完全建立:双方LSDB完全一致,可基于LSD运行Dijkstra算法计算最短路径树,生成路由表
  • 若超过dead时间未收到hello包,或者lsdb同步失败,可能退回到Down状态,重新建立邻接。

Attempt状态(仅用于NBMA网络)

  • 非广播多路访问网络(NBMA)特有:用于描述对静态配置邻居的轮询状态(如帧中继,atm网络)
  • 当邻居配置为静态邻居,且未收到其hello包时,路由器定期向该邻居单播发送hello包,尝试建立连接。
  • 若持续未响应,维持Attempt状态;若收到响应,则进入Two-Way状态

状态机转变

在这里插入图片描述
在ar5上查看状态机:

  • 收到了AR7发送的hello包,邻居状态由down转换成init状态

在这里插入图片描述

  • 再次收到hello包,且包含自己的router id,转变成two-way状态

在这里插入图片描述

  • 发送DD报文进入Exstart状态

在这里插入图片描述

  • 交互DD报文并发送LSR请求LSU,并进入Exchange状态

在这里插入图片描述

  • 交互完毕进入Loading状态

在这里插入图片描述

  • 最后是full状态

在这里插入图片描述

六、基础配置

[R1]ospf 1 router-id 1.1.1.1 确定ospf进程的同时配置RID  
[R1-ospf-1]area 0  创建0区/进入0区
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
反掩码:掩码反过来
[R1]display ospf peer 查看详细邻居关系   
[R1]display ospf lsdb 查看数据库表的目录 
[R1]display ospf lsdb router 2.2.2.2  打开具体的数据库目录内容
[R2]display ip routing-table protocol ospf  查看由OSPF生成的路由表 

实验拓扑

在这里插入图片描述

配置命令

AR3

[Huawei]ospf 1 router-id  3.3.3.3
[Huawei-ospf-1]area 1
[Huawei-ospf-1-area-0.0.0.1]network  192.168.1.0 0.0.0.255

AR1

	
[Huawei]ospf 1 router-id  1.1.1.1	
[Huawei-ospf-1]area 1
[Huawei-ospf-1-area-0.0.0.1]network 192.168.1.0 0.0.0.255
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255

[R1]display ospf peer 查看详细邻居关系

在这里插入图片描述

[R1]display ospf lsdb 查看数据库表的目录
在这里插入图片描述
[R1]display ospf lsdb router 2.2.2.2
在这里插入图片描述
display ip routing-table protocol ospf 查看由OSPF生成的路由表

在这里插入图片描述

AR2

	
[Huawei]ospf 1 router-id  2.2.2.2[Huawei-ospf-1]area 0[Huawei-ospf-1-area-0.0.0.0]network  192.168.2.0 0.0.0.255[Huawei-ospf-1]area 2[Huawei-ospf-1-area-0.0.0.2]network  192.168.3.0 0.0.0.255

AR4

	
[Huawei]ospf 1 router-id  4.4.4.4[Huawei-ospf-1-area-0.0.0.2]network  192.168.3.0 0.0.0.255

七、拓展配置

选举DR/BDR时修改接口优先级

[R1-GigabitEthernet0/0/0]ospf dr-priority 3 更改参选接口的优先级为3<R1>reset ospf process  重启ospf进程

在邻居间接口上做认证

[R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456  

手工汇总

在ABR(域间路由器)上将A区域的路由共享到B区域时,方可进行手工汇总的配置。

[R2-ospf-1-area-0.0.0.0]abr-summary 1.0.0.0 255.0.0.0  

沉默接口

沉默接口—仅接收不发送路由协议信息,只能用于连接用户PC的接口去使用。

[R1-ospf-1]silent-interface g 0/0/1 设置沉默接口

加快收敛

邻居间直连接口的hello time 和dead time 时间若不一致 将不能建立邻居关系 ;同时修改时也不建议修改的过小 / 不建议修改时间

[R1-GigabitEthernet0/0/0]ospf timer hello 10 
修改hello  time 时间为10s
[R1-GigabitEthernet0/0/0]ospf timer dead 40
修改 dead time 时间为40s 

缺省路由

在连接外网的边界路由器上,配置一条缺省路由信息后,该设备将向内网发送信息,是的内部所有ospf设备,生成缺省路由,下一跳全部指向边界路由起方向,但是边界路由器通往外网的路由条目仍需网络管理员手工边写。

[R3-ospf-1]default-route-advertise always 

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

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

相关文章

全面拥抱vue3

Vue 3 性能全面解析&#xff1a;为何性能飞跃提升 Vue 3 在性能方面实现了质的飞跃&#xff0c;相比 Vue 2 在多个维度都有显著提升。以下是 Vue 3 性能优化的全面解析&#xff1a; 一、核心架构优化 1. 响应式系统重写&#xff08;Proxy 替代 defineProperty&#xff09; …

C#最佳实践:考虑为类重写ToString()方法

C#最佳实践:考虑为类重写ToString()方法 在 C# 编程的日常开发中,ToString()方法是一个既基础又容易被忽视的重要成员。它是System.Object类的虚方法,所有类都继承自System.Object,这意味着每个类都拥有ToString()方法。然而,默认的ToString()方法往往无法满足实际需求,…

从0开始学习计算机视觉--Day05--优化

除了得到最小的W之外&#xff0c;如何节省这个探索最优W的过程&#xff0c;也是很重要的一点。假如把这个过程比作从山上的顶点开始下山&#xff0c;把图中必定游玩的经典比作最优权重&#xff0c;那么节省的过程&#xff0c;就是找到下山的最短路径的过程。而在下山的过程中&a…

OpenCV计算机视觉实战(14)——直方图均衡化

OpenCV计算机视觉实战&#xff08;14&#xff09;——直方图均衡化 0. 前言1. CLAHE 自适应均衡1.1 应用场景1.2 实现过程 2. 直方图反向投影2.1 应用场景2.2 实现过程 3. 基于颜色的目标追踪小结系列链接 0. 前言 在图像处理与计算机视觉领域&#xff0c;直方图技术是最直观且…

基于uniapp的老年皮肤健康管理微信小程序平台(源码+论文+部署+安装+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统背景 近年来&#xff0c;我国人口老龄化进程不断加快&#xff0c;据国家统计局数据显示&#…

MySQL(106)如何设计分片键?

设计分片键&#xff08;Sharding Key&#xff09;是数据库分片的核心&#xff0c;它决定了将数据分配到不同分片的方式。一个好的分片键应该能够均衡地分布数据&#xff0c;避免热点问题&#xff0c;提高查询性能。下面将详细介绍如何设计分片键&#xff0c;并结合代码进行说明…

汽车一键启动升级手机控车

汽车一键启动升级手机控车实现手机远程启动&#xff0c;不改变原车任何功能且全部免接线。升级后原车遥控器能在有效范围内启动车辆。移动管家手机控车一键启动系统用手机远程控制&#xff0c;完美兼容原车遥控器。支持长安、别克、宝马、奥迪等众多系列车型&#xff0c;市场99…

【开源项目】「安卓原生3D开源渲染引擎」:Sceneform‑EQR

「安卓原生3D开源渲染引擎」&#xff1a;Sceneform‑EQR 渲染引擎 “那一夜凌晨3点&#xff0c;第一次提交 PR 的手在抖……”——我深刻体会这种忐忑与激动。 仓库地址&#xff1a;(https://github.com/eqgis/Sceneform-EQR)。 一、前言&#xff1a;开源对我意味着什么 DIY 的…

建造者模式 - Flutter中的乐高大师,优雅组装复杂UI组件!

痛点场景&#xff1a;复杂的对话框配置 假设你需要创建一个多功能对话框&#xff1a; CustomDialog(title: 警告,content: 确定要删除吗&#xff1f;,titleStyle: TextStyle(fontSize: 20, color: Colors.red),contentStyle: TextStyle(fontSize: 16),backgroundColor: Color…

基于Java+Spring Boot的大学校园生活信息平台

源码编号&#xff1a;S559 源码名称&#xff1a;基于Spring Boot的大学校园生活信息平台 用户类型&#xff1a;双角色&#xff0c;用户、管理员 数据库表数量&#xff1a;17 张表 主要技术&#xff1a;Java、Vue、ElementUl 、SpringBoot、Maven 运行环境&#xff1a;Wind…

C# .NET Framework 中的高效 MQTT 消息传递

介绍&#xff1a; 在当今互联互通的世界里&#xff0c;设备之间高效可靠的通信至关重要。MQTT&#xff08;消息队列遥测传输&#xff09;就是为此而设计的轻量级消息传递协议。本文将探讨 MQTT 是什么、它的优势以及如何在 .NET 框架中设置和实现它。最后&#xff0c;您将对 M…

nn.Embedding 和 word2vec 的区别

理解它们的关键在于​​区分概念层级和职责​​。 可以将它们类比为&#xff1a; ​​word2vec&#xff1a;​​ 一个​​专门制作高质量词向量模型的“工厂”​​。​​nn.Embedding&#xff1a;​​ 一个​​可存储、查找并训练词向量的“智能储物柜”​​&#xff08;作为…

华为云Flexus+DeepSeek征文|​​华为云ModelArts Studio大模型 + WPS:AI智能PPT生成解决方案​

引言&#xff1a;告别繁琐PPT制作&#xff0c;AI赋能高效办公 ​​ 在商业汇报、学术研究、产品发布等场景中&#xff0c;制作专业PPT往往需要耗费大量时间进行内容整理、逻辑梳理和视觉美化。​​华为云ModelArts Studio大模型​​与​​WPS​​深度结合&#xff0c;推出AI-P…

【连接redis超时】

报错 客户端输出缓冲区超限 Client … scheduled to be closed ASAP for overcoming of output buffer limits 表示这些客户端&#xff08;通过 psubscribe 命令进行发布订阅操作&#xff09;的输出缓冲区超过了 Redis 配置的限制&#xff0c;Redis 会关闭这些客户端连接来避免…

PHP「Not enough Memory」实战排错笔记

目录 PHP「Not enough Memory」实战排错笔记 1. 背景 2. 快速定位 3. 为什么 5 MB 的图片能耗尽 128 MB&#xff1f; 3.1 粗略估算公式&#xff08;GD&#xff09; 4. 实际峰值监控 5. 解决过程 6. 最佳实践与防御措施 7. 总结 PHP「Not enough Memory」实战排错笔记 —…

Java垃圾回收机制和三色标记算法

一、对象内存回收 对于对象回收&#xff0c;需要先判断垃圾对象&#xff0c;然后收集垃圾。 收集垃圾采用垃圾收集算法和垃圾收集器。 判断垃圾对象&#xff0c;通常采用可达性分析算法。 引用计数法 每个对象设置一个引用计数器。每被引用一次&#xff0c;计数器就加1&am…

基于python网络数据挖掘的二手房推荐系统

基于网络数据挖掘的二手房推荐系统设计与实现 【摘要】 随着互联网技术在房地产行业的深入应用&#xff0c;线上房源信息呈爆炸式增长&#xff0c;给购房者带来了信息过载的挑战。为了提升二手房筛选的效率与精准度&#xff0c;本文设计并实现了一个基于网络数据挖掘的二手房推…

Java + 阿里云 Gmsse 实现 SSL 国密通信

前言 解决接口或页面仅密信浏览器&#xff08;或 360 国密浏览器&#xff09;能访问的问题 测试页面 测试网站-中国银行&#xff1a;https://ebssec.boc.cn/boc15/help.html 使用其他浏览器&#xff08;google&#xff0c;edge等&#xff09;打开 使用密信浏览器打开 解决…

国产数据库分类总结

文章目录 一、华为系数据库1. 华为 GaussDB 二、阿里系数据库1. 阿里云 OceanBase2. PolarDB&#xff08;阿里云自研&#xff09; 三、腾讯系数据库1. TDSQL&#xff08;腾讯云&#xff09;2. TBase&#xff08;PostgreSQL增强版&#xff09; 四、传统国产数据库1. 达梦数据库&…

解密闭包:函数如何记住外部变量

&#x1f9e0; 什么是闭包&#xff1f; 闭包是一个函数对象&#xff0c;它不仅记住它的代码逻辑&#xff0c;还记住了定义它时的自由变量&#xff08;即非全局也非局部&#xff0c;但被内部函数引用的变量&#xff09;。即使外部函数已经执行完毕&#xff0c;这些自由变量的值…