网络协议——OSPF(开放式最短路径优先)详解

1.什么是OSPF

      开放式最短路径优先OSPF 是一种动态的高度可靠和高度可扩展的路由协议,用于构建大型网络中的动态路由系统

2. OSPF的协议号为:89
3. OSPF的特点:
  1. OSPF是链路状态协议
  2. 使用了区域概念:减少路由选择协议对路由器CPU,,内存的占用;构建一个层次化的网络拓扑成为可能。
  3. 支持无类路由和VLSM。
  4. 支持无大小限制的,任意度量值。
  5. 支持多路径的等价负载均衡。
  6. 使用保留的组播地址进行OSPF之间通信,减少对其他设备的影响。
  7. 支持路由安全认证
  8. 使用可以跟踪的外部路由标记
4. OSPF工作工程:
  1. 邻居建立
  2. 同步链路数据库
  3. 计算最优路由
4.1 OSPF配置
OSPF单区域配置创建并进入环回接口:interface  lo配置环回地址IP       :ip address 1.1.1.1 32#进入OSPF并指定 router-id : ospf 1 router-id 1.1.1.1进入骨干区域:area 0宣告回环地址:network 1.1.1.1 0 0.0.0.0宣告自身网段: network 192.168.10.254 0.0.0.255宣告自身网段:network 12.1.1.0  0.0.0.255
OSPF多区域配置创建并进入环回接口:interface LOOKback 0配置环回地址IP       :ip address 2.2.2.2 32#进入OSPF并指定 router-id : ospf 1 router-id 2.2.2.2进入1区域:area 1宣告回环地址:network  2.2.2.2 0 0.0.0.0宣告自身网段: network 192.168.10.254 0.0.0.255宣告自身网段:network 12.1.1.0  0.0.0.255进入2区域:area 2宣告自身网段: network 192.168.20.254 0.0.0.255重启ospf:  reset ospf process
查询OSPF:display ospf peer
非骨干区域使用:vlink peer  route id
5. OSPF报文类型:
  1. hello报文:邻居发现(自动发现邻居路由器)邻居建立(完成Hello报文中的参数协商,建立邻居关系)邻居保持(通过Keepalive机制,检测邻居运行状态)
  2. DD报文:交互链路状态数据库摘要
  3. LSR报文:向对端请求本端没有或对端的 更新的LSA
  4. LSU报文:向对方发送其需要的LSA
  5. LSAck报文:收到LSU之后,进行确认
6. Route-id选举:
  1. 手动指定
  2. 回环地址Loopback大的
  3. 物理接口interface大的
7. OSPF网络类型:
  1. P2P网络:仅两台路由器相连,支持广播组播
  2. 广播型网络:两台或两台以上的路由器通过共享介质互连,支持广播、组播。
  3. P2MP网络:多个点到点网络的集合,支持广播、组播。
  4. NBMA网络:两台或两台以上路由器通过VC互连,不支持广播、组播。

     全部网络类型都建立邻接关系,只不过广播和P2MP中的DRother只建立邻居关系

8. OSPF邻居建立过程:

       当路由器启动OSPF时,才开始为down状态,会互相发送带有自己Rout_ID的HELLO报文到相邻的路由器,状态变为init状态,此时报文中的邻居列表为空。当对端收到报文之后,会回复带有邻居表的hello报文,这时状态会变为 2-way状态当收到带有带有邻居表的报文的hello报文时,同样也会切换到2-way状态

9. OSPFLSDB同步过:

        当邻居状态建立完成变为Extart状态时,会互相发送DD报文宣告自己为Master,收到DD报文之后,比较Route ID大的一方为Master,此时状态由Exstart变为Exchange,被动方给Master方发送带有seq=Y的DD报文,当Master收到时,回复一个seq=y+1和带有自己是Master被动方收到时,状态由Exchange切换为loading,回复Master方Seq=Y+1,Master收到时状态由Exchange切换为full自此同步过程完成

10. 什么是AS

        自治系统,也叫路由域,同一个AS中的所有路由器必须运行相同的路由协议,且必须彼此互相连接(中间不能被其他协议路由域间断)在OSPF网络中只有再同一个AS内的路由器才会相互交互链路状态信息。

11. OSPF路由器类型

             IR------internal Router区域内路由器:该类设备的所有接口都在同一个OSPF的区域内

             ABR---Area Border Router区域边界路由器:该类设备的接口可以在不同的区域,但是其中一个接口必须连接骨干区域。

             BR-----Backbone Router骨干路由器:该类设备的至少有一个接口在骨干区域,ABR,ASBR的都属于这类路由器

             ASBR--AS Border Router自治系统边界路由器:与其他AS中的设备交换路由信息的设备,ASBR可以是区域内的设备也可以同时是ABR。

12.邻居与邻接

        在OSPF路由器通告任何LSA之前,OSPF路由器必须首先发现邻居路由器并建立起邻接关系。

  (1)---邻居:仅通过hello包发现运行OSPF的其他路由器                     

  (2)---邻接:建立了邻居关系,并且OSPF关系更进一步,互相发送各自的LSA信息。      

13. OSPF在MA网络的DR,BDR

        DR:Designated Router指定路由器,在MA网络建立和维护邻接关系并负责LSA的同步;

DR与其他所有的路由器形成邻接关系并交换链路状态信息,其他路由器之间不直接交换链路状态信息,这样就大大减少了MA网络中的邻接关系数据 及交换链路状态信息消耗的资源。

        BDR:Backup Designated Router备份指定路由器,规避单点故障风险,通过选举备份指定路由器BDR,在DR失效时快速接管DR的工作

 14. DR,BDR的选举

         DR/BDR的选举是基于接口的:

  1.          1. 接口DR优先级为0,表示不参与选举
  2.          2. 比较接口优先级,越大越优先(默认为1)
  3.          3. 优先级一致比较R-ID,越大越优先
15. OSPF的数据信息

                a:优先级10

                b:度量值cost=10^8/b/s==10的8次方除以带宽

                c:协议号89

                d:组播地址;224.0.0.5(所有路由器);224.0.0.6(DR,BDR)

16. OSPF的计时器:

              (1)---Hello包,默认10S一发,超时时间为Hello间隔的4倍。

              (2)---LSA全网通告时间默认30分钟。

17. OSPF中的LSA

        LSA:Link State Advertiserment链路状态通告:OSPF邻居路由器直接互相交互LSA并保存整个网络的链路状态信息, 并生成链路状态数据库(LSDB),从而 掌握全网的拓扑结构,并通过SPF--最短路径优先算法,独立计算自身去往目的的最佳路由。

      OSPF的LSA有10多种,常用的为以下6类

        1类LSA(Router LSA):每个OSPF路由器都会生成一个类型1 LSA来描述自己直连接口状态和开销值这个LSA只能在接口所在区域进行传输

        2类LSA(Network LSA):只有DR会生成的LSA,描述MA网络中所有邻接关系的路由器,包括DR本身这个LSA只能在所属区域内传输

        3类LSA(Network summary LSA):由ABR生成,用于描述到达目标区域内所有的网段的路由,这个LSA用于区域间的路由

        4类LSA(ASBR-summary LSA):由ABR生成,用于描述ASBR,相当于一条到达ASBR的主机路由

        5类LSA(AS-External-LSA): 由ASBR生成,描述外部路由信息

7类 LSA(NSSA External LSA):由ASBR生成,描述由NASS区域引入外部路由信息NASS的ABR会把7类转化为5类传入到骨干路由

18. OSPF的状态机

         Down:邻居回话初始阶段

         Attempt:此状态仅在NBMA网络,表明在邻居失效时间间隔超时候任然没有收到对端发来的Hello   应答报文。

         Init:收到不包含自己路由器ID的Hello报文后状态变为Init。

         2-way:收到包含有自己的路由器ID的hello报文后转换为2-way。

         Exstart:在进行DR,BDR选举后形成邻居关系,协商完毕发送DD报文主从关系和序列号。

         Exchange:主从关系协商完毕,主设备开始向从设备正式发送带有LSA Header字段内容的DD报文。

         Loading:DD报文交换完毕后设备状态为Loading。双方发送LSR报文的发送更新对应LSA。

         Full:向对端发送了LSAck及收到对端的LSAck后,本地设备状态切换为Full状态,邻居更新完毕。

19. SPF树计算过程

        第一步:以自己为根节点

        第二步:查看Link-type类型。

20. 虚连接Vlink(指对方的route-id)

        骨干区域必须是连续的,但是并不要求物理上连续,可以使用虚连接使骨干区域逻辑上连续 。虚连接可以在任意两个区域边界路由器上建立,但是要求这两个区域边界路由器都有端口连接到一个相同的非骨干区域 。

21. OSPF防环机制

        区域内:通过SPF算法来防环

        区域间:OSPF规定从骨干区域传来的三类LSA不再传回骨干区域

22. 不同进程OSPF通信(互相引入)

进程1

 进入ospf1里面:ospf 1 router-id 10.1.1.1引入进程2:import-route ospf 2 

#

进程2  

  进入ospf1里面:ospf 2 router-id 3.3.3.3引入进程1:import-route ospf 1

#

23. Stub区域
  • 配置Stub区域注意以下几点:

        Area0不能配置成stub

        Stub区域不能存在ASBR

        虚连接不能穿越stub

        Stub 区域内所有路由器都需要配置成stub路由器

        末端区域进行配置ABR

        隔离4,5类LSA产生3类LSA

  • 配置Stub区域
进入末端所有区域配置:ospf 1 router-id 1.1.1.1
进入区域:area 1
配置stub:  stub
24. Totally  Stub区域

          Totally Stub区域隔离三类四类五类LSA,只存在缺省3类LSA

  • 配置Totally Stub区域
进入末端ABR区域配置:ospf 1 router-id 1.1.1.1
进入区域:area 1
配置stub:  stub no smarry
25. NSSA区域

        NSSA区域能够将自治域外部路由引入并传播到整个OSPF自治域中,同时又不会学习来自OSPF网络其它区域的外部路由。隔离4,5类LSA存在3类LSA

        配置NSSA区域

进入末端区域(ASBR)(ABR),配置:ospf 1 router-id 1.1.1.1
进入区域:area 1
配置NSSA:  nssa
26. Totally NSSA区域

        Totally NSSA区域隔离3,4,5类LSA,但存在3类缺省LSA

        配置NSSA区域

进入末端区域ABR配置:ospf 1 router-id 1.1.1.1
进入区域:area 1
配置NSSA:  nssa no smarry
27. OSPF长用LSA比较

28. 区域间路由汇总

      优点: 减少路由表的大小

                  提高路由收敛速度:

                  提高网络的可伸缩性:

      进入ABR配置: 

ospf 1
area 1
abr-summary 172.16.0.0 255.255.248.0
29. 外部路由汇总

     进入ASBR配置: 

ospf 1
asbr-summary 172.17.0.0 255.255.248.0
30. OSPFLSA更新

      定时更新:LSA每1800S更新一次,3600秒老化

      链路更新:当链路状态发生变化之后,立即发送链路状态更新。

        1,先比较序列号,越大越新

        2,序列号一样,比较校验和,越大越新

        3,比较age,3600秒的最优

        4,2者age差大于15min,age小的新

        5,2折age差小于15min,认为同等新

31. OSPF认证配置
  • 区域认证:
进入OSPF:Ospf  1
进入区域:area 1
创建区域认证:  authentication-mode simple plain 123456 (明文认证)authentication-mode simple cipher 123456 (明文认证)
  •  接口认证:
进入接口:interface GigabitEthernet0/0/0
创建接口认证:ospf authentication-mode simple plain 123456 (明文认证)ospf authentication-mode simple cipher 123456 (明文认证)

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

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

相关文章

【LeetCode】二叉树类题目详解

二叉树 二叉树的理论基础 二叉树是结点的度数之和不超过2的树,二叉树总共有五种基本形态 二叉树的种类主要有: 满二叉树完全二叉树 二叉树的存储方式 顺序存储链式存储 二叉树的遍历方式 先序遍历(深度优先搜索)中序遍历&…

蓝桥杯-STL-string

目录 字符串定义 字符串初始化 字符串输入输出 字符串输出 字符串输入 字符串访问 字符串拷贝 字符串拼接 直接相加 append(const char*str,int n) 字符串比较 ​编辑字符串长度length()/size() 字符串查找find(string str) 查找子串substr(int a,int b) 字符串的…

秋招数据库学习2(20240408-20240412共10道)

由于感觉数据库难度可能暂时面试用不到,就先不刷啦 20240408 1.从不订购的客户 SELECT Name AS Customers FROM Customers C LEFT JOIN Orders O ON C.Id O.CustomerId WHERE CustomerId is nullselect customers.name as Customers from Customers wher…

手写ArrrayList

需求 自定义的MyArrayList import java.util.Arrays; import java.util.Objects;public class MyArrayList<E> {private Object[] elementData ; // 存储元素的数组private int size; // 记录 的元素个数private static final int DEFAULT_CAPACITY 10; // 默认容量// …

Eigen笔记2:矩阵拼接

直接贴代码吧&#xff0c;使用的MatrixXd 和<<运算符&#xff1a; int main(int argc, char *argv[]) {Eigen::MatrixXd B(2, 2);B << 1, 2,3, 4;Eigen::MatrixXd C(2, 2);C << 5, 6,7, 8;Eigen::MatrixXd D(2, 2);D << 9, 10,11, 12;Eigen::MatrixXd…

基于React封装Handsontable并兼容antd

背景 其实Handsontable官方也提供了React的版本&#xff0c;但是官方的版本再编辑和渲染的时候并不能够很好的嵌入第三方的组件库。这就导致了&#xff0c;使用了Handsontable就没有办和普通的react项目一样轻松引用其他第三方组件。因此对其react的版本进行了二次的封装&#…

Django中间件路由映射自动加/斜杠问题原因及分析

输入 http://127.0.0.1:8000/main/index/ 输入 http://127.0.0.1:8000/main/index 路由定义情况 urlpatterns [path("index/", views.index) ]可以发现我在输入URL的index路由时&#xff0c;如果没有和Django定义的路由匹配规则一样的话&#xff0c;浏览器自…

Vim:强大的文本编辑器

文章目录 Vim&#xff1a;强大的文本编辑器Vim的模式命令模式常用操作光标移动文本编辑查找和替换 底行命令模式常用操作Vim的多窗口操作批量注释与去注释Vim插件推荐&#xff1a;vimforcpp结论 Vim&#xff1a;强大的文本编辑器 Vim&#xff0c;代表 Vi IMproved&#xff0c;…

如何确保软件通过SmartScreen验证,消除用户下载时的警告提示?

在当前的网络时代&#xff0c;各种软件应用程序深深渗透到人们的日常生活和工作中&#xff0c;许多企业选择自行开发应用程序以推进其业务发展。但在发布应用程序后&#xff0c;软件所有者经常会遇到一个挑战&#xff0c;即用户在下载时可能会遇到微软SmartScreen提示“此应用程…

探索HTTP协议的世界 | 从基础到高级应用,原理与实践相结合(请求篇)

从基础到高级应用&#xff0c;原理与实践相结合 什么是Http历代Http协议主要特点格式和URL协议内容请求行格式如下请求方法简单案例 消息报头报头域的格式HTTP消息报头类型普通报头优化方向报头&#xff08;缓存&#xff09;Cache-Control的选项其他相关的缓存报头 请求报头Acc…

Unity TMP Inputfield 输入框 框选 富文本 获取真实定位

一、带富文本标签的框选是什么 UGUI的InputField提供了selectionAnchorPosition和selectionFocusPosition&#xff0c;开始选择时的光标下标和当前光标下标 对于未添加富文本标签时&#xff0c;直接通过以上两个值&#xff0c;判断一下框选方向&#xff08;前向后/后向前&…

C#Winform使用扩展方法自定义富文本框(RichTextBox)字体颜色

实现效果 调用方法 rtxtLog.AppendTextColorful(richTextBox1,DateTime.Now.ToString(), Color.Red); 完整代码如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using Sys…

【U8+】用友固定资产卡片拆分提示:未设置对象变量或With block变量。

【问题描述】 用友U8软件中&#xff0c; 操作固定资产模块&#xff0c;针对资产进行卡片拆分的时候&#xff0c; 提示&#xff1a;未设置对象变量或With block变量。 确定后仍然能打开卡片拆分界面&#xff0c;但是界面显示异常看不到拆分明细信息&#xff0c;并且保存后拆分结…

【Qt-Qt Creator使用技巧】

工具-Qt Creator ■ 使用技巧■ 定义触发片段■ Qt Creator 行编辑■ 代码注释■ 代码补全■ 快速给函数添加定义■ 创建书签■ 同步列输入■ 局部替换■ 源代码阅读■ 源码调试■ 使用技巧 ■ 定义触发片段 ■ Qt Creator 行编辑 shift + alt + up / down来获得多个游标。 …

导入芯片原厂SDK Mirror源码到gerrit

下载镜像代码 repo init --mirror --repo-url ssh://xx/repo.git -u ssh://xx/manifests.git -m manifest.xml repo sync 创建AOSP project 对All Project权限修改 创建repo 在刚才下载的codebase根目录执行如下命令&#xff1a; repo forall -c echo $REPO_PROJECT; ssh -p 29…

DOTS Instancing合批:如何针对单个渲染实体修改材质参数

最近在做DOTS的教程,由于DOTS(版本1.0.16)目前不支持角色的骨骼动画&#xff0c;我们是将角色的所有动画数据Baker到一个纹理里面&#xff0c;通过修改材质中的参数AnimBegin,AnimEnd来决定动画播放的起点和终点&#xff0c;材质参数AnimTime记录当前过去的动画时间。但是在做大…

CSS导读 (元素显示模式 下)

&#xff08;大家好&#xff0c;今天我们将继续来学习CSS的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 目录 3.6 元素显示模式转换 3.7 (一个小技巧)单行文字垂直居中的代码 3.8 单行文字垂直居中的原理 3.9 小案例…

leaflet知识点:地图窗格panes的应用

一&#xff0c;需求背景 地图中存在无人机&#xff0c;停机坪&#xff0c;航线三个图层&#xff0c;需要实现无人机图层显示在最上面&#xff0c;停机坪图层显示在最下面&#xff0c;航线图层显示在中间。 二&#xff0c;遇到问题 由下图可知航线图层所在overlayPane窗格的z-…

工控 modbusTCP 报文

Tx 发送报文:00 C9 00 00 00 06 01 03 00 00 00 02 Rx 接收报文:00 C9 00 00 00 07 01 03 04 01 4D 00 01 Tx 发送报文:00 C9 00 00 00 06 01 03 00 00 00 02 00 C9 事务处理标识符 2字节 00 00 协议标识符 2字节 固定 00 00 00 06 长度 2字节 表示之后的字节总数 &#xff08;…

大数据之ClickHouse

大数据之ClickHouse 简介 ClickHouse是一种列式数据库管理系统&#xff0c;专门用于高性能数据分析和数据仓库应用。它是一个开源的数据库系统&#xff0c;最初由俄罗斯搜索引擎公司Yandex开发&#xff0c;用于满足大规模数据分析和报告的需求。 特点 开源的列式存储数据库…