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

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

为什么会出现OSPF?

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

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

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

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

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

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

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邻居关系

想了解更多网工知识,获取《网工大礼包》,可关注公众号:IT运维大本营

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

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

相关文章

PyQt5配置踩坑

安装步骤比较简单,这里只说一下我踩的坑,以及希望一些大佬可以给点建议。 一、QtDesigner 这个配置比较简单,直接就能用,我的配置如下图: C:\Users\lenovo\AppData\Roaming\Python\Python311\site-packages\qt5_app…

VR模拟鸡胚培养接种实验,打造沉浸式的学习环境

在医学教育领域,传统的鸡胚接种实验一直是教学的重要组成部分。然而,这种实验方法存在一定的局限性,如操作难度大、成本高、安全隐患等。为了解决这些问题,越来越多的教育机构开始尝试引入虚拟现实(VR)技术,以模拟鸡胚…

SpringCloudGateway实现数字签名与URL动态加密

文章目录 对称加密非对称加密什么是数字签名HTTPS与CA⭐Gateway网关的过滤器链如何对自己的路径传输设定一个数字签名?前端获取RSA公钥发送加密后对称密钥后端接收当前会话对称密钥并保存前端发送AES加密请求验证请求 如何实现URL的动态加密? 再网络传递…

京东数据分析平台:9月中上旬白酒消费市场数据分析

9月份,围绕白酒的热点不断。9月5日,瑞幸咖啡官微发布消息称,瑞幸与贵州茅台跨界合作推出的酱香拿铁刷新单品纪录,首日销量突破542万杯,销售额破1亿元。9月14日,贵州茅台官微发布消息称与德芙推出联名产品“…

【MySQL】基本查询(三)聚合函数+group by

文章目录 一. 聚合函数二. group by子句结束语 建立如下表 //创建表结构 mysql> create table exam_result(-> id int unsigned primary key auto_increment,-> name varchar(20) not null comment 同学姓名,-> chinese float default 0.0 comment 语文成绩,->…

NPM 常用命令(九)

目录 1、npm link 1.1 使用语法 1.2 描述 2、npm login 2.1 描述 3、npm logout 3.1 描述 4、npm ls 4.1 使用语法 4.2 描述 5、npm org 5.1 使用语法 5.2 示例: 6、npm outdated 6.1 使用语法 6.2 描述 6.3 示例 7、npm owner 7.1 使用语法 7.2…

BUUCTF-WEB-刷题记录

题目地址 https://buuoj.cn/challenges[HITCON 2017]SSRFme 代码理解 进入主页后发现是代码审计/ escapeshellarg — 把字符串转码为可以在 shell 命令里使用的参数— 抑制错误输出 mkdir — 创建目录 chdir 更改目录 shell_exec — 通过 shell 环境执行命令&#x…

关于JDK于JRE路径配置问题

今天在配置tomcat时发现,无法找到jre的路径,在网上找了半天,才知道,JDK11版本之后,jre的路径默认和JDK路径一致,JDK11之后的文件夹中不再包含jre文件夹,由此在配置JRE环境变量时,只需…

多个excel合并

目的:将同一个文件下的多个 “京东差评.xlsx” 合并为一个:“京东汇总.xlsx" 代码如下: # -*- coding: utf-8 -*- """ Created on Wed Oct 4 12:52:32 2023author: 64884 """import pandas as pd impor…

2023年中国喷头受益于技术创新,功能不断提升[图]

喷头行业是一个专注于生产和供应各种类型喷头的产业。喷头是一种用于将液体、气体或粉末等物质喷射或喷洒的装置,广泛应用于不同领域,包括工业、农业、家用、医疗等。 喷头行业分类 资料来源:共研产业咨询(共研网) 随…

stm32之手动创建keil工程--HAL库

用CubeMx创建了好多stm32的工程,这里记录下手动创建keil工程的过程。完整工程在最后。 一、准备工作 1.1、下载对应的HAL库, 这里使用的是stm32f103c8t6, 下载地址stm32HAL库 在页面中输入对应型号点击进行二级页面进行下载 下载的之后的目录如下&am…

阿里云ECS服务器无法发送邮件问题解决方案

这篇文章分享一下自己把项目部署在阿里云ECS上之后,登录邮件提醒时的邮件发送失败问题,无法连接发送邮箱的服务器。 博主使用的springboot提供的发送邮件服务,如下所示,为了实现异步的效果,新开了一个线程来发送邮件。…

蔡司光学:儿童近视眼镜的匠心之选

如今我们正处于“信息爆炸”的时代,生活的方方面面都离不开手机、平板和电脑等各种电子设备,加上不正确的用眼习惯,也使青少年及儿童的近视率呈现逐年攀升的态势,为了及时预防儿童近视,业内著名眼视光品牌蔡司光学积极…

基于复旦微JFM7K325T FPGA的高性能PCIe总线数据预处理载板(100%国产化)

PCIE711是一款基于PCIE总线架构的高性能数据预处理FMC载板,板卡采用复旦微的JFM7K325T FPGA作为实时处理器,实现各个接口之间的互联。该板卡可以实现100%国产化。 板卡具有1个FMC(HPC)接口,1路PCIe x8主机接口&#x…

Linux安装 spark 教程详解

目录 一 准备安装包 二 安装 scala 三 修改配置文件 1)修改 workers 文件 2)修改 spark-env.sh文件 四 进入 spark 交互式平台 一 准备安装包 可以自行去 spark 官网下载想要的版本 这里准备了 spark3.1.2的网盘资源 链接: https://pan.baidu.com…

OpenCV 13(模版匹配和霍夫变换)

一、模版匹配 所谓的模板匹配,就是在给定的图片中查找和模板最相似的区域,该算法的输入包括模板和图片,整个任务的思路就是按照滑窗的思路不断的移动模板图片,计算其与图像中对应区域的匹配度,最终将匹配度最高的区域…

html 高性能 简易轮播图

目标 实现简易轮播图动画效果 设计理念 无论有多少个轮播图,仅使用常数个轮播图tab,通过js替换更新dom内容,实现性能优化;使用bfc避免回流,(重绘是基本上无法避免,不在考虑)&#…

C++——多态底层原理

虚函数表 先来看这个问题&#xff1a; class Base { public: virtual void Func1() { cout << "Func1()" << endl; } private: int _b 1; }; sizeof(Base)是多少&#xff1f; 答案是&#xff1a;8 因为Base中除了成员变量_b,还有一个虚函数表_vfp…

【WinRAR】去除请购买WinRAR许可

新建rarreg.key文件 在WinRAR安装目录新建rarreg.key文件&#xff0c;文件内容如下: RAR registration datawncnUnlimited Company LicenseUID1b064ef8b57de3ae9b5264122122509b52e35fd885373b214a4a64cc2fc1284b77ed14fa2066ebfca6509f9813b32960fce6cb5ffde62890079861be57…

JDBC-day02(使用PreparedStatement实现CRUD操作)

所需的数据库数据要导入到自己的数据库库中 三&#xff1a;使用PreparedStatement实现CRUD操作 数据库连接被用于向数据库服务器发送命令和 SQL 语句&#xff0c;并接受数据库服务器返回的结果。其实一个数据库连接就是一个Socket连接。CRUD操作&#xff1a;根据返回值的有无…