全网最详细的OSPF原理总结,看这篇就够了!

news2024/12/24 0:30:07

大家好,我的网工朋友。

OSPF是一种基于链路状态的路由协议,也是专为 IP 开发的路由协议,直接运行在 IP 层上面。它从设计上保证了无路由环路。除此之外,IS-IS也是很常见的链路状态协议。

为什么会出现OSPF?

作为目前主流的IGP协议,OSPF主要是为了解决RIP的三大问题而出现的,比如:收敛很慢、容易产生路由环路以及可延展性差等。

OSPF路由协议的应用面非常广,认可度也很高,毕竟的确是好用的。

像教育,金融,运营商,企业、医疗等行业,不论组网模型是复杂还是简单,也无论设备数量和路由条目有多少,OSPF都能很好的满足对应的需求。

所以,在网络部署IGP协议的时候,很多网工都会优先考虑用OSPF组网。

对于OSPF,很多网工朋友都是在工作里用到了就看一点基础内容,很难全面掌握。

今天想给你分享的就是OSPF的最全原理总结(概要版),对你构建大体思路有奇效,希望能对同行们有所帮助。

今日文章阅读福利:《OSPF网络设计解决方案》

作为网络基础,了解它是你入门精进的第一步。私信我,发送暗号“方案”,前20名私信的小友即可获得此份OSPF经典读物。

如果想从0到1系统学习网络,也可以私信告知学习意向,老杨总会为你推荐最适合你学习网络的方式。

01 OSPF路由协议概述

1. 内部网关协议和外部网关协议

  • 自治系统(AS)
  • 内部网关协议(IGP) :rip、ospf等
  • 外部网关协议(EGP):bgp等

2. OSPF的工作过程

  • 邻居列表
  • 链路状态数据库
  • 路由表

02 OSPF的应用环境

1. 从几方面考虑OSPF的使用

  • 网络规模
  • 网络拓扑
  • 其他特殊要求
  • 路由器自身要求

2. OSPF的特点

  • 可适应大规模网络
  • 路由变化收敛速度快
  • 无路由环
  • 支持变长子网掩码VLSM
  • 支持区域划分
  • 支持以组播地址发送协议报

03 OSPF基本概念

1. OSPF区域

  • 为了适应大型的网络,OSPF在AS内划分多个区域
  • 每个OSPF路由器只维护所在区域的完整链路状态信息

(1)区域ID

  • 区域ID可以表示成一个十进制的数字
  • 也可以表示成一个IP

(2)骨干区域Area 0

  • 负责区域间路由信息传播

(3)非骨干区域

  • 非晋干区域相互通信必须通过骨干区域

– 标准区域

– 末梢区域stub

– 完全末梢区域total stub

– 非纯末悄区域nssa

2. OSPF路由类型

  • 区域之间路由器: ABR
  • 自制系统边界路由器:ASBR

3. 生成OSPF多区域的原因

  • 改善网络的可扩展性
  • 快速收敛

4. Router ID

  • OSPF区域内唯一标识路由器的IP地址

5. Router ID选取规则

  • 选取路由器loopback接口上数值最高的IP地址
  • 如果没有loopback接口,在物理端口中选取IP地址最高的
  • 也可以使用router-id命令指定Router ID
  • DR和BDR的选举方法

6. 选举DR和BDR

(1)自动选举DR和BDR

  • 网段上Router lID最大的路由器将被选举为DR,第二大的将被选举为BDR

(2)手工选择DR和BDR

  • 优先级范围是0~255,数值越大,优先级越高,默认为1
  • 如果优先级相同,则需要比较Router ID
  • 如果路由器的优先级被设置为0,它将不参与DR和DBR的选举

(3)DR和BDR的选举过程

  • 路由器的优先级可以影响一个选举过程,但是它不能强制更换已经存在的DR或BDR路由器

7. OSPF的组播地址

224.0.0.5

224.0.0.6

DRothers向DR/BDR发送DBD、LASR或者Lsu时目标地址是224.0.0.6(AllDRouter)﹔或者理解为:DR/BDR侦224.0.0.6

DR/BDR向DRothers发送更新的DBD、LSR或者Lsu时目标地址是224.0.0.5(AllSPFRouter),或者理解为:DRothers侦听224.0.0.5

8. 度量值

  • OSPF度量值 cost(开销)=10OM/BW(端口带宽)– 最短路径是基于接口指定的代(cost路径成本)计算的
  • R工P是跳数

9. OSPF的数据包类型

承载在lIP数据包内,使用协议号89

OSPF的包类型:

10. OSPF协议7种状态分析

OSPF启动的第一个阶段是使用Hello报文建立双向通信的过程;OSPF启动的第二个阶段是建立完全邻接关系。

11. OSPF协议6种LSA分析

每一种区域中允许泛洪的LSA:

12. OSPF地址汇总的作用

  • 地址汇总也是通过减少泛洪的LSA数量节省资源
  • 可以通过屏蔽一些网络不稳定的细节来节省资源
  • 减少路由表中的路由条目

04 OSPF配置命令示例

1. 通用配置

[R1]int g0/0/0 ###记置接口ip地址

[R1-GigabitEthernet0/0/0]ip add 11.0.0.2 24

[Rl-GigabitEthernet0/0/o]un sh

[R1-GigabitEthernet0/0/0]int g0/0/1

[R1-GigabitEthernet0/0/1]ip add 12.0.0.1 24

[R1-GigabitEthernet0/0/1]un sh

[R1-GigabitEthernet0/0/1]int lo o

[R1-LoopBack0]ip add 1.1.1.1 32

[R1-LoopBack0]ospf 1 router-id 1.1.1.1 ###创建OSPF进程,配置路由ID

[R1-ospf-1]area 1 ###进入区域1,区域ID可以用数字表示,也可以用IP表示,若区域o则是骨干区域

[R1-ospf-1-area-0.0.0.1]network 12.0.0.0 0.255.255.255 ## 宣告直连

[R1-ospf-1-area-0.0.0.1]network 1.1.1.1 0.0.0.0 ##宣告oSPF区域内的直连网段,使用反掩码

------------------------------------------------------------------------

reset ospf process ###重置oSPF进程

2. 优化配置

末梢区域和完全末梢区域的作用,其主要目的是减少区域内的LSa条目以及路由条目,减少对设备CPu和内存的占用;

末梢区域和完全末梢区域中ABR会自动生成一条默认路由发布到末梢区域或完全末梢区域中。

———–——–末梢区域配置命令(在ABR和区域内路由上配置)———–——–没有LSA4、5、7通告

[R4]ospf 1

[R4-ospf-1]area 2

[R4-ospf-1]network x.x.x.x x.x.x.x ###先宣告直连网段,再配优化

[R4-ospf-1-area-0.0.0.2]stub

[R5]display ip routing-table ###此时未梢区域中的路由会显示一条默认路由到外部区域

———–——–完全末梢区域配置命令(在ABR和区域内路由上配置)———–——–除一条LSA3的默认路由通告外,没有LSA3、4、5、7通告

[R4]ospf 1

[R4-ospf-1]area 2

[R4-ospf-1]network x.x.x.x x.x·x.x ###先宣告直连网段,再配优化

[R4-ospf-1-area-0.0.0.2]stub no-summary

[R5]display ip routing-table ###此时完全末梢区域中的路由会显示一条默认路由到除本区域外的其他区域

——————-完全非纯未梢区或配置命令{ABR和区域内路由(除ASBR)配置}———–——–没有LSA4、5通告

[R4]ospf 1

[R4-ospf-1]area 1

[R4-ospf-1]network x.x.x.x x.x.x.x #先宣告直连网段,再配优化

[R4-ospf-1-area-o.0.0.1]nssa no-summary ###ABR配置

----------------------------------------------------------------------------

[R4-ospf-1-area-o.o.o.1]nssa ###域内路由配置

3. 验证命令

display ospf 1 peer brief ###查看本地设备上的OSPF 1的相关信息

display ospf 1 peer ###查看路由表中的OSPF路由(确定路由器的类型和属性)

display ospf 1 brief ###查看oSPF邻居表的简要信息

display ip routing-table ###查看oSPF邻居表的详细信息

display ospf routing

display ospf interface GigabitEthernet 0/0/o

4. 查看LSA命令

[Huawei]dis ospf lsdb router

[Huawei]dis ospf lsdb network

[Huawei]dis ospf lsdb summary

[Huawei]dis ospf lsdb asbr

[Huawei]dis ospf lsdb ase

[Huawei]dis ospf lsdb nssa

5. 修改oSPF路由的接口优先集,缺省值为1

[R1]int g0/0/0

[Rl-GigabitEthernet0/0/0]ospf dr-priority 1O

6. OSPF路由重分发配置命令

[R1]rip 1###配置rip

[Rl-rip-l]version 2

[Rl-rip-l]undo summary

[Rl-rip-1]network 11.0.0.o

[Rl-rip-1]import-route ospf 1cost3 ###把ospf协议注入到rip进行路由重分发,路径类型缺省为路径类型2(外部开销),成本开销为3(对于rip的度量值是跳数),rip中重分发ospf要指定metric的值

[Rl-rip-1]ospf 1

[R1-ospf-1]import-route rip 1 type 1 cost 1 ##1把外部rip协议注入到oSPE进行路由重分发,使用路径类型1(内部开销+外部开销),成本开销为1(COST=10OM/BW)

-------------------------------------------------------------------------------------------

[Rl-ospf-1]default-route-advertise always ###ospf重分发默认路由

[R2-ospf-l]import-route direct ###ospf重分发直连路由

[R2-ospf-1]import-route static ###ospf重分发静态路由

7. 区域间路由汇总配置

———–——–OSPF地址汇总计算示例———–——–

192.168.1.0/24—转换二进制 ——192.168.00000 001.0 /24

192.168.2.0/24—————————————192.168.00000 010.0/24

192.168.3.0/24—————————————192-168.00000 011.0/24

192.168.4.0/24—————————————192.168.00000 100.0/24

192.168.5.0/24—————————————192.168.00000 101.0/24

192.168.6.0/24—————————————192.168.00000 111.0/24

将二进制地址分成两部分(完全相同的前半部分和存在差异的后半部分),数出前半部分的位数(这里的192.168.00000为21位)

则汇总后的结果为:192.168.00000 000/21

———–——–区域间路由汇总配置(在ABR上配置)———–——–———–——–

[R4]ospf l

[R4-ospf-l]area 2

[R4-ospf-1]abr-summary 192.168.0.0 255.255.248.0

———–——–外部路由汇总配置(在ASBR上配置)———–——–———–——–

[R5]ospf l

[R5-ospf-1]area 2

[R5-ospf-1]asbr-summary 10.0.o.0 255.248.0.o

8. 虚链路配置

非骨干区域必须和骨干区域直接相连,若不与骨干区域直接相连,则需要在穿越一个非骨干区域的两台ABR之间配置虚链路。

虚拟链路的建立,是需要依靠底层的真实链路所在的区域来传输。

OSP:报文的(hello等)。所以如果底层的穿越传输区域不稳定的话,则导致上层的虚链路不稳定,影响整个网络的骨干区域的稳定性。

所以,一般不建议用这种法式。如果不得不使用,那么也仅仅是临时的解决方案。

———–——–在被穿越的非骨干区域的两揣ABR配置虚链路———–——–

-[R2]ospf 1

[R2-ospf-1]area 1

[R2-ospf-l-area-o.o.0.1]vlink-peer 1.1.1.1 ###相指定被穿越区域两端ABR的路由ID

----------------------------------------------------------------------------

[Rl]ospf 1

[Rl-ospf-1]area 1

[R1-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2 ###相指定被穿越区域两端ABR的路由ID

[R1]display ospf vlink ###查看本地上通过虚链路建立的oSPF邻居关系

当然,我们账号也更新了很多期关于OSPF的相关内容,如果这篇看不够,也欢迎跳转OSPF相关主题,进行提升:

《OSPF故障定位没思路?照这篇抄就行》

《想学透OSPF,先搞懂这6个技术点再说》

《OSPF和ISIS一起部署后,这BUG也太多了吧》

《图解OSPF,看这70张图已经足够(一)》

《图解OSPF,看这70张图已经足够(二)》

《5个超经典实验,老杨带你高效进阶OSPF》

整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

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

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

相关文章

欧拉操作系统在线安装mysql8数据库并用navicat premium远程连接

网上太多安装教程,但是没有一个教程能够一站式解决安装问题,而我不一样,我写的每一个博客,都是我自己试验过很多次,能够确保一站式解决,才会发上去,希望能够帮助到大家 第一步:升级…

Linux工具(一)

前言:Linux是一个开源的操作系统,它拥有庞大而活跃的开发社区,为用户提供了丰富多样的工具和应用程序。这些工具不仅适用于系统管理员和开发人员,也适用于普通用户,可以帮助他们完成各种任务,从简单的文件管…

爬虫 — Scrapy 框架安装问题

整理几个关于安装 Scrapy 框架时会遇到的问题及解决方法。 1、 pip install typing-extensions4.3.0 -i https://pypi.douban.com/simple 2、 pip install pyOpenSSL22.0 -i https://pypi.douban.com/simple 3、 pip install cryptography36.0.2 -i https://pypi.douban.com/s…

基于GBDT+Tkinter+穷举法按排队时间预测最优路径的智能导航推荐系统——机器学习算法应用(含Python工程源码)+数据集(四)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境Pycharm 环境Scikit-learnt 模块实现1. 数据预处理2. 客流预测3. 百度地图API调用4. GUI界面设计5. 路径规划6. 智能推荐 系统测试1. 训练准确率2. 测试效果3. 程序应用 相关其它博客工程源代码下载其它资料下载 …

如何在云服务器上成功安装MongoDB数据库并用Python连接(问题及解决方法)

最近购买了1台腾讯云轻量服务器做测试,想在上面安装MongoDB数据库。但安装过程并不顺利,遇到了几个问题。本文记录一下安装过程及遇到的问题和解决方法。 一、软件下载地址: 1.直接打开MongoDB官网:https://www.mongodb.com/ …

2023 Google 开发者大会:助力传承和弘扬传统文化

文章目录 前言一、关于 Google 开发者大会1.1、什么是 Google 开发者大会?1.2、CSDN 上线 2023 Google 开发者大会专题页 二、敦煌深厚的艺术沉淀2.1、“云想衣裳花想容”?2.2、“大漠孤烟直,长河落日圆” 三、传统文化赋予现代艺术设计灵感四…

1.IAR-8051安装

新版安装教程:IAR EW for 8051 简介与安装 新版软件zhuce:IAR EW for 8051 软件注册 - 知乎 这个新版的我也放到网盘里面了,自己自行选择安装 一、下载IAR-8051 链接:https://pan.baidu.com/s/1mYwSQvSjAiSzltrEbK3yAw?pwd43cd …

IPV4和IPV6,公网IP和私有IP有什么区别?

文章目录 1、什么是IP地址?1.1、背景1.2、交换机1.3、局域网1.4、广域网1.5、ISP 互联网服务提供商 2、IPV42.1、什么是IPV4?2.2、IPV4的组成2.3、NAT 网络地址转换2.4、端口映射 3、公网IP和私有IP4、IPV6 1、什么是IP地址? 1.1、背景 一台…

接口调用三种方式

创建服务端 一个controller,一个启动类,配置端口 controller import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController public class ServerController {Req…

uniapp开发h5 遇到一个刻度尺的需求 实现记录

先上最终实现图 实现这个功能使用的是github上找的一个库 叫slide-ruler 地址 实现思路: 第一步:在终端npm 下载这个依赖 第二步:新建一个刻度尺自定义组件,如果不是自定义组件会不生效,并且这个自定义组件里面放一…

用无代码搭建数据中台,竟做到如此丝滑

文章目录 需求背景系统介绍配置说明1 菜单导航2 系统自带组件导入页面(1)数据集成相关组件(2)数据服务相关组件 3 由系统组件路径添加页面(1)数据资产管理(2)数据标准管理&#xff0…

Hutool工具包:http客户端工具(使用教程)

目录 一、Hutool介绍 二、笔者的话 三、引入依赖 四、大致步骤 五、GET请求 5.1 代码 5.2 结果展示 六、POST请求 6.1 代码一(Form Data类型参数) 6.2 结果展示 6.3 代码二(Form Data类型参数 - 含上传文件) 6.4 结果…

idea设置项目启动的JVM运行内存大小

idea设置项目启动的JVM运行内存大小 场景 在开发当中,idea默认服务启动要占用1G内存。其实每个项目本地开发和调试的时候,根本不需要1G内存,200M左右足以 如果在微服务体系下,那效果更明显,相同的内存可以启动更多的…

Linux学习之Redis集群部署

Redis集群部署 准备集群环境 创建集群 # 准备集群环境--配置192.168.88.51(host51) [rootlocalhost ~]# yum install -y redis [roothost51 ~]# vim /etc/redis.conf bind 192.168.88.51 cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 5000…

Java web基础知识

Servlet Servlet是sun公司开发的动态web技术 sun在API中提供了一个接口叫做 Servlet ,一个简单的Servlet 程序只需要完成两个步骤 编写一个实现了Servlet接口的类 把这个Java部署到web服务器中 一般来说把实现了Servlet接口的java程序叫做,Servlet 初步…

成功的海外网红营销:文化和价值观冲突的应对策略

随着全球数字化和社交媒体的崛起,海外网红营销已经成为企业推广产品和服务的一种重要方式。然而,这种全球性的营销活动也伴随着文化和价值观的多样性,容易导致潜在的冲突和误解。为了取得成功并避免不必要的争议,企业需要深入了解…

从B-21轰炸机看美空军作战战略趋势

源自:北京蓝德信息科技有限公司 图注:The B-21 Raider was unveiled to the public at a ceremony Dec. 2, 2022, in Palmdale, Calif. (U.S. Air Force photo) (一)B-21开发进展 (二)B-21性能研判 声明:公众号转载的文章及图片出于非商业性的教育和科研…

2023 RISC-V 中国峰会 演讲幻灯片和视频回放 均已公开

安全之安全(security)博客目录导读 目录 一、幻灯片地址 二、演讲视频 一、幻灯片地址: GitHub - cnrv/RVSC2023: RISC-V Summit China 2023 二、演讲视频: RISCV国际基金会的个人空间-RISCV国际基金会个人主页-哔哩哔哩视频 参考:CNRV …

python+django社区医院诊所医疗管理系统_6t4o8

技术栈 后端:pythondjango 前端:vueCSSpythonScriptjQueryelementui 开发语言:Python 框架:django/flask Python版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发软件:PyCh…

计算机专业毕业设计项目推荐05-共享汽车管理系统(SpringBoot+Js+Mysql)

共享汽车管理系统(SpringBootJsMysql) **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计…