ospf 知识总结

news2024/12/23 2:05:05

ospf 知识总结

一、ospf的概念

  • - 开放式最短路径优先协议,是广泛使用的一种动态路由协议,它属于链路状态路由协议,是一个内部网关协议(IGP),用于在单一自治系统(AS)内决策路由。
    - 基于LSA收敛,故更新量较大,为在中大型网络正常工作,需要进行结构化的部署 --- 区域划分、ip地址规划,组播更新 --- 224.0.0.5 224.0.0.6
    - 支持等开销负载均衡、支持触发更新、30min周期更新、跨层封装协议、协议号89;
    

二、ospf的五种数据包:

  1. - Hello包:建立并维护邻居关系,周期保活。
    
    - DBD(数据库状态描述包):发送链路状态头部信息。
    
    - LSR(链路状态请求包):把从DBD中找出需要的链路状态头部信息传给邻居。
    
    - LSU(链路状态更新包):将LSR请求的头部信息对应的完整信息发给邻居。
    
    - LSACK(链路状态确认包):收到LSU报文后确认该报文。
    
      
    

三、OSPF的七种状态机:

  1. 1. Down状态:启动OSPF进程,发送hello包进入到下一个状态
    2. Init(初始化)状态:本地接收到的hello包中若存在本地的RID,进入下一状态。
    3. 2-way双向通信状态:邻居关系建立的标志。
    4. Exstart(预启动)状态:使用类hello的BDB包进行主从关系选举,RID数值大为主,主从优先进入下一个状态。
    5. Exchange(准交换)状态:使用真正的BDB进行数据库目录的共享,需要ACK
    6. Loading(加载)状态:使用LSR/LSU/LSack来获取未知的LSA信息;
    7. Full转发:邻接关系建立的标志;
    

四、ospf的基本工作过程:

  1. 1. 启动配置完成后,OSPF对本地所有运行协议的接口以组播224.0.0.5的形式发送hello包
       建立邻居关系,生成邻居表
    2. 建立邻居关系后,邻居间进行条件匹配,匹配失败就停留于邻居关系,仅hello包周期保活;匹配成功后建立邻接关系,需要DBD共享数据库目录,LSR/LSU/LSack来获取未知的LSA信息,当收集完网络中所有的LSA后,完成数据库同步,生成数据库表。
    3. 数据库建立完成后,本地基于OSPF选路规则,计算本地到达所有未知网段的最短路径,基于本地的链路状态生成有向图,再通过SPF算法,将图形结构转换成最短路径树,之后,根据树形结构计算出到达未知网段的路由信息,然后将其加载到路由表中,完成收敛。
    

    在这里插入图片描述

收敛完成后,依然使用hello包进行周期保活,每30Min进行一次周期更新

简单地说就是两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。

拓扑突变:
1.新增网段: 直连新增网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认

2.断开网段: 直连断开网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认

3.无法沟通: dead time 为hello time 的4倍;当dead time到时时,断开邻居关系,删除通过该邻接生成的路由协议;

五、ospf的基本配置:

1,启动OSPF进程
[r1]ospf 1 router-id 1.1.1.1 [r1-ospf-1]     #启动时可以定义进程号,进程号仅具有本地意义;每一个OSPF进程均需要RID,全网唯一;
2,创建区域
[r1-ospf-1]area  0
3,宣告
[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
4,区域划分规则:
  • 星型拓扑 — 区域0为骨干,大于0为非骨干,所有非骨干必须连接到骨干区域方可正常共享路由
  • 区域间必须存在ABR – 区域边界路由器。

启动配置完成后,邻居间收发hello包;建立邻居关系,生成邻居表:

[r2]display  ospf peer  查看邻居关系

[r2]display  ospf peer  brief  查看邻居简表

邻居关系建立后,关注条件;匹配失败,保持为邻居关系,仅hello包周期保活;匹配成功可以建立为邻接(毗邻)关系;邻接关系间,将使用DBD/LSR/LSU/LSack来获取本地未知的LSA信息;完整本地的LSDB (数据库表);

[r2]display  ospf lsdb   #查看LSDB数据库表

当数据库同步完成后;本地基于SPF算法,将数据库转换为有向图,再将有向图转换为树型结构;之后基于树形结构,以本地为起到到达所有未知网段的最短路径,加载到路由表中;

<r1>display  ip routing-table protocol  ospf  查看ospf路由

优先级为10;度量为cost值 ; cost值=开销值
5,拓展配置

DR/BDR选举(比较优先级,优先级大的优先,优先级相同则比较接口IP,接口IP大的优先)

DR优先级最大,BDR次大 – 切记ospf的选举是非抢占性的;故在修改完优先级后,需要所有路由器重启OSPF进程;

[r2]interface GigabitEthernet 0/0/0

[r2-GigabitEthernet0/0/0]ospf dr-priority  3  修改接口优先级

<r1>reset ospf process   重启ospf进程

Warning: The OSPF process will be reset. Continue? [Y/N]:y

区域汇总 — OSPF协议不支持接口汇总;只能在ABR上将a区域拓扑计算所得路由,共享给B区域时进行汇总;

[r2]ospf 1

[r2-ospf-1]area  0

[r2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.252.0.0   #R2为一台连接区域0和其他区域的ABR;以上操作为,R2将通过区域0学习到的拓扑计算所得的路由,传递给其他区域时进行汇总,汇总网段1.1.0.0/22

被动接口(沉默接口)–仅接收不发送路由协议信息;用于连接用户终端的接口,不得用于连接邻居路由器的接口,否则无法建立邻居关系;

[r2]ospf 1

[r2-ospf-1]silent-interface GigabitEthernet 0/0/0

认证 – 接口认证 在直连邻居或邻接的接口上配置,保障更新的安全

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

加快收敛

邻居间计时器 10s hello time 40s dead time

邻居间,修改本端的hello time,本端的dead time自动4被关系匹配;但ospf中邻居间的hello time和dead time必须完全一致,否则无法建立邻居关系;

[r1]interface GigabitEthernet 0/0/0

[r1-GigabitEthernet0/0/0]ospf timer  hello 5

缺省路由 — 边界路由器上配置后,将自动向内网下放一条缺省路由,之后内网设备将自动生成缺省路由指向边界

[r4]ospf 1

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

六、OSPF 扩展知识点:

1、ospf不规则区域

远离了骨干的非骨干(问题)

解决目的–全网可达

解决方案:

1.tunnel – 在合法与非法ABR间使用tunnel建立一个新的网段(类似连接一条独立的网线);然后将该网段宣告到ospf协议中;

缺点:

(1)选路不佳 

(2)周期和触发信息对中间穿越区域照成影响

2.OSPF虚链路 – 合法的ABR与同一区域的非法ABR,建立虚链路;非法ABR获得合法ABR授权后,可进行区域间路由的共享;

[r2]ospf 1

[r2-ospf-1]area  1   两台ABR共同存在的区域 

[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4  对端ABR的RID
两台设备均需配置

优点:由于没有新的网段链路出现,不会像tunnel一样选路不佳;

缺点:周期和触发的信息对中间穿越区域照成影响

3.多进程双向重发布(推荐)

多进程 --- 一台路由器上运行多个OSPF进程,可以分别建立自己的邻居,,每个进程拥有独立的数据库,不共享信息;只是将各自计算所得路由加载于同一张路由表中;类似于在同一台路由器上允许多种动态路由协议的效果;路由器单一一个接口只能工作在唯一一个进程中;

重发布:一个网路中,若同时运行多种路由协议;默认协议间不兼容,无法共享路由;可以在两种协议间配置ASBR,ASBR(自治系统边界路由器,协议边界路由器)必须用不同的接口工作不同的协议中;通过两种协议获取到两边的路由,默认这些路由不共享,重发布技术可以实现路由共享,最终全网可达;

故在不规则区域中,利用多进程加重发布机制,可以实现全网可达,且不存在选路问题和中间区域周期信息相关问题;

多进程双向重发布配置命令
[r4]ospf 1

[r4-ospf-1]import-route ospf  2

[r4-ospf-1]q

[r4]ospf 2

[r4-ospf-2]import-route  ospf  1

注:通过重发布手段学习到的ospf路由,显示协议为0_ASE,优先级为150;
2、OSPF的数据库表
<r1>display  ospf lsdb   查看OSPF数据库目录

LSDB中装载了所有可以学习到的LSA;

LSA-- 链路状态通告   一条拓扑或一条路由条目被称为一条LSA

OSPF协议的数据库是本地所有LSA的集合,不同网络环境下将产生不同类别的LSA;

LSA在共享时基于LSU数据包传递;

如何查看一条LSA的具体信息

<r1>display  ospf lsdb  router 2.2.2.2

七、OSPF的LSA优化 — 减少LSA的更新量

1、汇总 – 优化骨干区域

(1)域间汇总 ABR设备基于某个区域的1/2类LSA计算所得的最佳路由,共享给其他区域时,进行汇总传递

[r2]ospf 1

[r2-ospf-1]area  1   --明细路由所在区域,该ABR设备必须和明细路由在同一区域

[r2-ospf-1-area-0.0.0.1]abr-summary 1.1.0.0 255.255.252.0

(2)域外汇总 — ASBR重发布进入OSPF域路由进行汇总配置

[r6]ospf 1

[r6-ospf-1]import-route rip  重发布RIP路由进入ospf域

在ASBR重发布路由后,同时进行汇总配置

[r6]ospf 1

[r6-ospf-1]asbr-summary 99.1.0.0 255.255.252.0
2、特殊区域 – 优化非骨干区域

不是骨干区域,不能存在虚链路

1.不能存在ASBR

(1)末梢区域

该区域将拒绝4、5LSA的进入,同时由该区域连接骨干0区域的ABR向该区域,发布一条3类的缺省路由;

[r1]ospf 1

[r1-ospf-1]area  1  

[r1-ospf-1-area-0.0.0.1]stub

该区域内每台路由器均需配置,否则无法正常建立邻居关系

(2)完全末梢

在末梢区域的基础上,进一步拒绝3类的LSA,仅保留ABR发送过来的3类缺省;

先将该区域配置为末梢区域,然后仅在ABR上定义完全即可

[r2]ospf 1

[r2-ospf-1]area  1

[r2-ospf-1-area-0.0.0.1]stub no-summary

2.存在ASBR

(1)NSSA – 非完全末梢区域

该区域拒绝4/5类的LSA;本地的ASBR产生的域外路由基于7类进行传输;当7类LSA需要通过NSSA区域的ABR进入骨干区域,将由该ABR进行7转5,以5类发现骨干区域,7转5的这台ABR同时成为一台ASBR

华为设备由该区域连接骨干ABR自动产生7类缺省路由;

[r4]ospf 1

[r4-ospf-1]area  2

[r4-ospf-1-area-0.0.0.2]nssa   该区域每台设备均需配置

(2)完全NSSA

在NSSA的基础上进一步拒绝3类的LSA,由该区域连接骨干的ABR发布一条3类缺省

先将该区域配置为NSSA,然后仅在ABR定义完全即可

[r4-ospf-1-area-0.0.0.2]nssa  no-summary
3.OSFP扩展配置

1、认证 — 直连的邻居或邻接关系间,进行认证配置后,5种数据包中均携带身份核实的密码,且华为设备会对更新信息进行加密–前提为认证方式选择密文认证

(1)接口认证

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

直连的邻居间秘钥和编号、模式必须完全一致否则无法建立邻居关系;

(2)区域认证

假设在R1上开启区域0的区域认证,实际就是在R1上所有宣告到区域0接口上配置了接口认证;

[r1]ospf 1

[r1-ospf-1]area  0

[r1-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456

可以理解为批量的完成了接口认证;

(3)虚链路认证

[r1-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3 md5 1 cipher 123456

在虚链路的两端配置

2、沉默接口 —只接收不发送路由协议信息,用于路由器连接邻居或邻接的骨干链路,不得用于连接终端用户的接口;

[r1]ospf 1

[r1-ospf-1]silent-interface  GigabitEthernet 0/0/2

3、修改计时器

Ospf的hello time为10s或者30s dead time为hello time的4倍;

邻居间该时间必须一致,否则无法邻居关系;若hello time为10,不再建立修改;

若为30s可以结合网络的实际硬件处理能力,适当修改计时器,加快收敛速度

[r1]int g0/0/1

[r1-GigabitEthernet0/0/1]ospf timer hello 10  修改本端的hello time,本端的dead time自动4倍关系匹配;对端还需要手工修改一致,否则无法建立邻居关系;

[r1-GigabitEthernet0/0/1]ospf timer dead 40 修改本端的dead time,本端的hello time不变

4、缺省路由(3/5/7类缺省)

(1)3类缺省是由配置特殊区域后,特殊区域连接骨干区域的ABR自动发布

末梢、完全末梢、完全NSSA;普通NSSA不产生3类缺省;

(2)5类缺省:

[r3-ospf-1]default-route-advertise 将边界路由器上,路由表中通过其他协议产生的缺省路由(最常为静态缺省)重发布到本地的OSPF协议中

因此若边界路由器的路由表还未拥有缺省时,配置该命令将无法发布缺省到其他邻居;

[r3-ospf-1]default-route-advertise always 强制本地向所有邻居重发布缺省路由,即便本地路由表中没有缺省,也会发布;

(3)7类缺省:配置特殊区域NSSA时,NSSA区域连接骨干的ABR将发布缺省路由;

[r6-ospf-1-area-0.0.0.2]nssa default-route-advertise  由NSSA区域内部存在其他协议获取的缺省路由时,可以重发布到该NSSA区域

切记:由于特殊区域会产生缺省路由指向骨干区域;故必须关注网络中ISP所在的位置,否则可能由于缺省的互指产生环路 — ISP连接骨干以为的任何区域,那么该区域将不能配置为特殊区域;

5.LSA类型

路由器上,路由表中通过其他协议产生的缺省路由(最常为静态缺省)重发布到本地的OSPF协议中


因此若边界路由器的路由表还未拥有缺省时,配置该命令将无法发布缺省到其他邻居;

[r3-ospf-1]default-route-advertise always 强制本地向所有邻居重发布缺省路由,即便本地路由表中没有缺省,也会发布;

(3)7类缺省:配置特殊区域NSSA时,NSSA区域连接骨干的ABR将发布缺省路由;

[r6-ospf-1-area-0.0.0.2]nssa default-route-advertise  由NSSA区域内部存在其他协议获取的缺省路由时,可以重发布到该NSSA区域

切记:由于特殊区域会产生缺省路由指向骨干区域;故必须关注网络中ISP所在的位置,否则可能由于缺省的互指产生环路 — ISP连接骨干以为的任何区域,那么该区域将不能配置为特殊区域;

5.LSA类型
在这里插入图片描述

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

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

相关文章

cmake 从零开始源码安装(Ubuntu系统)

Ubuntu 系统安装 &#xff11;、安装编译工具和依赖库 ## 必要的 sudo apt install gsudo apt install make## 与make 同等级的构建工具&#xff0c;为了演示而安装的 sudo apt install ninja-build## 压缩工具库 sudo apt install unzip## 加密和传输(根据系统名称可能不一样…

如何使用蜘蛛池蚂蚁SEO

​蜘蛛池是一种利用搜索引擎爬虫进行推广营销的方式。它的核心是建立一个能够吸引搜索引擎爬虫的网站群&#xff0c;这些网站能够产生大量的优质内容&#xff0c;并形成一个巨大的网站群&#xff0c;从而吸引更多的搜索引擎爬虫。 如何联系蚂蚁seo&#xff1f; baidu搜索&…

JVM类加载器的分类以及双亲委派机制

目录 前言 1. 类加载器的分类&#xff1a; 1.1 启动类加载器&#xff08;Bootstrap ClassLoader&#xff09;&#xff1a; 1.2 扩展类加载器&#xff08;Extension ClassLoader&#xff09;&#xff1a; 1.3 应用程序类加载器&#xff08;Application ClassLoader&#xff…

一款提高嵌入式代码质量的工具

我们通常认为&#xff0c;在中断中&#xff0c;不能执行耗时的操作&#xff0c;否则会影响系统的稳定性&#xff0c;尤其对于嵌入式编程。 ​ 对于带操作系统的程序而言&#xff0c;可以通过操作系统的调度&#xff0c;将中断处理分成两个部分&#xff0c;耗时的操作可以放到线…

当心这30个重要漏洞!微软发布12月补丁日安全通告

近日&#xff0c;亚信安全CERT监测到微软12月补丁日发布了34个漏洞的安全补丁&#xff08;不包含此前发布的Microsoft Edge等安全更新&#xff09;&#xff0c;其中&#xff0c;4个被评为紧急&#xff0c;30个被评为重要。包含10个权限提升漏洞&#xff0c;8个远程代码执行漏洞…

cat EOF快速创建一个文件,并写入内容

在linux系统中&#xff0c;如果你有这个需求 vi一个文件 /etc/docker/daemon.json 在这个文件中写入内容 { "registry-mirrors": ["https://iw3lcsa3.mirror.aliyuncs.com","http://10.1.8.151:8082"],"insecure-registries":[&quo…

fastadmin表格无刷新行内编辑(列表点击字段编辑)

功能介绍 此插件是一款基于x-editable实现的表格无刷新行内编辑功能的插件。 使用方法 首先我们需要在我们当前的控制器所对应的JS文件头部添加依赖,追加一个editable,如下: define([jquery, bootstrap, backend, table, form,

深入理解 hash 和 history:网页导航的基础(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

【基础篇】1.1 认识STM32(二)

3.3 VREF/VREF-引脚 VREF和VREF-是STM32中用于提供参考电压的引脚。如下图&#xff1a; VREF引脚可以连接一个单独的外部参考电压&#xff0c;范围在2.0V&#xff5e;VDDA&#xff0c;但不能超过VDDA&#xff0c;否则就超过了模拟器件的最大供电电压。在100引脚的封装中&#…

西工大网络空间安全学院计算机网络实验五——ACL配置

实验五、ACL配置 一. 实验目的 1. 掌握ACL的基本配置方法 二. 实验内容 1. 基于如下图所示的拓扑图&#xff0c;对路由器进行正确的RIP协议配置&#xff1b; ​ 首先引入3台2811 IOS15型号的路由器、3台2950-T24型号的交换机、4台PC-PT型号的PC机、两台Server-PT型号的服务…

深圳锐科达IP网络广播系统

深圳锐科达IP网络广播系统 网络音频广播系统是一种基于TCP/IP网络的纯数字音频广播系统。该网络音频广播系统在物理结构上与标准IP网络完全集成。它不仅真正实现了基于TCP/IP网络的数字音频的广播、直播和点播&#xff0c;而且利用TCP/IP网络的优势&#xff0c;突破了传统模拟广…

Goldstein枝切法对存在间断相位缺陷的解缠研究

摘要: Goldstein枝切法作为相位解缠中路径积分法的重要算法之一&#xff0c;其解缠结果易受到噪声或间断相位缺陷所引起的残差点影响。为了研究相位间断缺陷对解缠算法的影响&#xff0c;模拟了具有间断相位缺陷的数据&#xff0c;采用 Gold-stein枝切法进行了系统的解缠研究。…

二百一十五、Flume——Flume拓扑结构之复制和多路复用的开发案例(亲测,附截图)

一、目的 对于Flume的复制和多路复用拓扑结构&#xff0c;进行一个小的开发测试 二、复制和多路复用拓扑结构 &#xff08;一&#xff09;结构含义 Flume 支持将事件流向一个或者多个目的地。 &#xff08;二&#xff09;结构特征 这种模式可以将相同数据复制到多个channe…

C语言的system函数简介

函数原型 包含在头文件 “stdlib.h” 中 int system(const char * command) 函数功能 执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令&#xff0c;参数字符串command为命令名。另&#xff0c;在windows系统下参数字符串不区分大小写。 说明&#xff1a;在windows系统中&…

机器翻译:跨越语言边界的智能大使

导言 机器翻译作为人工智能领域的瑰宝&#xff0c;正在以前所未有的速度和精度&#xff0c;为全球沟通拓展新的可能性。本文将深入研究机器翻译的技术原理、应用场景以及对语言交流未来的影响。 1. 简介 机器翻译是一项致力于通过计算机自动将一种语言的文本翻译成另一种语言的…

Apache Struts 代码执行漏洞风险通告

最近&#xff0c;亚信安全CERT通过监控发现&#xff0c;Apache官方披露了Apache Struts 代码执行漏洞&#xff08;CVE-2023-50164&#xff09;。攻击者可以利用文件上传参数进行路径遍历&#xff0c;并在某些情况下上传恶意文件&#xff0c;从而执行任意代码。 Apache Struts 是…

Notion开源平替知识库软件AFFiNE本地部署与公网访问远程协作

文章目录 前言1. 使用Docker安装AFFINE2. 安装cpolar内网穿透工具3. 配置AFFINE公网访问地址4. 实现公网远程访问AFFINE5. 结语 前言 本篇文章讲解Notion开源平替全能知识库工具AFFINE如何本地部署&#xff0c;并实现公网远程访问。AFFiNE 是一个全新的开源项目&#xff0c;旨…

【Hive】——CLI客户端(bin/beeline,bin/hive)

1 HiveServer、HiveServer2 2 bin/hive 、bin/beeline 区别 3 bin/hive 客户端 hive-site.xml 配置远程 MateStore 地址 XML <?xml version"1.0" encoding"UTF-8" standalone"no"?> <?xml-stylesheet type"text/xsl" hre…

(c语言)计算一个数的每位之和(递归实现)

#include<stdio.h> int DigitSum(int x) {int sum 0, g0;if(x>0){g x % 10;sum g;return sumDigitSum(x/10);}return 0; } int main() {int x;printf("请输入需要计算的数\n");scanf("%d",&x);int yDigitSum(x);printf("%d",y);…

uniapp播放 m3u8格式视频 兼容pc和移动端

支持全自动播放、设置参数 自己摸索出来的,花了一天时间,给点订阅支持下,订阅后,不懂的地方可以私聊我。 代码实现 代码实现 1.安装dplayer组件 npm i dplayer2. static/index.html下引入 hls 引入hls.min.js 可以存放在static项目hls下面<script src="/static…