首页 > 其他分享 >OSPF工作原理

OSPF工作原理

时间:2023-07-31 09:44:57浏览次数:38  
标签:OSPF 报文 工作 邻居 Router 原理 DR Hello 路由器

邻居建立过程

 过程概述

  1. 当两台路由器接口启用ospf功能
  2. 接口开始相互发送Hello报文(组播方式,目的地址224.0.0.5)
  3. 当Hello包相互发现邻居之后
  4. 开始协商主从关系(通过DD报文协商主从,用与交互数据的可靠性,此时的DD报文不是完整的)
  5. 当主从关系协商完成,开始相互发送DD报文(真正的摘要信息)
  6. 相互请求LSA,更新LSA,确认LSA,同步LSDB
  7. 计算路由,加入路由表

建立邻居关系

 

 ospf使用hello报文发现邻居和维护邻居关系,在以太网链路上,采用组播方式发送hello包,目的地址为224.0.0.5,ospf hello报文包括路由器的Router id、邻居列表等信息

Hello报文概述

字段解释

  • Netword Mask :发送Hello报文的接口网络掩码
  • Hello Interval:超时时间(4倍Hello Time时间未收到对端发送来的Hello报文,则认为对端出现故障,邻居状态超时)
  • Options:可选字段(协商),E置位表示支持外部路由,MC置位表示支持转发组播数据
  • Router Priority:路由优先级,用于DR选举(默认1,最大255,最小0则不参与选举)
  • Designated Router:DR的接口地址
  • Backup Designated Router:BDR的接口地址
  • Neighbor:表示邻居信息,使用Router-id标识

OSPF状态

  •  Down:邻居初始化阶段
  • Init:已经发送Hello报,或收到邻居的Hello报,单不包含自己的Router-id(可以理解为还不认识对方)
  • Attempt:在帧中继网络中才会出现,表示的是网络是测试、唤醒状态尝试阶段
  • 2-way:路由器发现自己的Router-id存在于收到的Hello报文在邻居列表中(双方互相认识)
  • Exstart:邻居状态变为此状态以后,开始发送DD报文,但是DD报文中不包含链路状态描述信息
  • Exchange:路由器与邻居之间相互发送带有链路状态描述信息的DD报文
  • Loading:路由器与邻居之间相互发送LSR、LSU、LSA报文
  • Full:完成邻接关系,完成LSDB数据库同步

设备角色

  • 在广播网络中:N*(N-1)/2个邻接关系,管理复杂,重复的LSA泛洪,造成资源浪费
  • DR指定路由器:负责在广播网络中网络建立和维护邻接关系并负责LSA同步,DR与其他路由器之间建立邻接关系并交互链路状态通告信息,其他路由器之间不直接交换链路状态通告信息(可以通俗理解为村长)
  • BDR备份指定路由器:当DR出现故障时,快速接管DR的工作(副村长)
  • DRother:OSPF成员设备(村民)

设备角色关系

  • DR--BDR(Full状态)
  • DR--DRother(Full状态)
  • BDR--DRother(Full状态)
  • DRother--DRother(2-way状态

DR选举

  • 选举规则(分先后顺序)
    • 设备启动时间(60秒未收到Hello报文,则认为自己为DR)
    • 接口优先级越大越优(0-255,0表示不参与选举)
    • Router-id越大越优

加速收敛

  • 通过更改链路类型(将网络类型配置为P2P类型,让设备认为对端只有一台设备,不选举DR角色,MA网络环境禁用)

 

标签:OSPF,报文,工作,邻居,Router,原理,DR,Hello,路由器
From: https://www.cnblogs.com/AireveryDatacom/p/17585636.html

相关文章

  • 工作中遇见的一些配置问题
    工作中遇到的问题想记录一下一个程序员小白每天遇到的问题1.创建了一个Maven的web工程,但是启动一直是404,原服务器未能找到目标资源解决办法:选择deployment,点击加号选择war格式就OK啦目录里面无法创建类,解决办法:右键选择第一个Thisapplicationhasnoexplicitm......
  • SPI原理
    什么是SPI?SPI全称为ServiceProviderInterface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services目录中查找文件,自动加载文件中指定的实现类,并将它们实例化、初始化,然后返回给调用方使用。其设计思想是:面向接口+配置化+反射。SPI的优点松耦合:SPI机制使......
  • 内网渗透知识 ——(一)、工作组、域、域控、活动目录
    工作组、域、域控、活动目录工作组​ 在大型局域网中,可能会有很多台工作电脑。为了方便这些计算机进行管理,从Windows9x/NT/2000开始便引入了工作组这一概念。有了工作组,就可以将人事部的电脑划分到名为人事组的工作组中,将技术部的电脑划分到名为技术部的工作组中。工作组的......
  • AI夏令营-LightGBM的数学原理
    XGBoost提升集成学习模型的性能从基学习器本身入手从误差优化入手集成回归树的误差定义$argminL=\sum_{i=1}^nl(y_i,y_i^\Lambda)+\sum_{k=1}^K\Omega(f_k)$\(y_i\)是实际值,$y_i^\Lambda$是误差\(sl\Omega(f_k)=\gammaT+\frac{1}{2}\lambda\parallelw\p......
  • Log日志的实现原理
    log.info("XXX");打印日志的时候,Log组件会将“写入”动作封装成一个LogEvent事件,而这个事件的具体表现形式由LogFormat和MDC共同控制,Format决定了Log的输出格式,而MDC决定了输出什么内容。LogFormat Log组件定义了日志输出格式,这和我们平时使用“String.format”的方式差不多......
  • 人工智能革命:人工智能如何改变工作、教育和沟通
    人工智能(AI)迎来了一场革命,正在改变我们生活的方方面面。从企业到教室和日常互动,人工智能正在产生深远的影响。在本文中,让我们探讨人工智能如何改变我们的工作、学习和沟通方式。我们将深入研究真实世界的示例,并向您介绍与每个主题相关的一些强大的AI工具。让我们踏上这段开启人......
  • python数据分析师入门-学习笔记(第八节 python爬虫的准备工作)
    学习链接:Python数据分析师入门python爬虫的准备工作一台电脑尽量windows电脑语言环境编程语言爬虫并不是python独有Python开发环境Anaconda了解爬虫的实现和原理用代码去控制终端用代码直接发送请求CS(客户端服务器)/BS(浏览器服务器)模型CS/BS浏览......
  • Arduino电机测速原理及代码实现
       //IncludetheTimerOneLibraryfromPaulStoffregen#include"TimerOne.h"//ConstantsforInterruptPins//ChangevaluesifnotusingArduinoUnoconstbyteMOTOR1=2;//Motor1InterruptPin-INT0constbyteMOTOR2=3;//Motor2......
  • 3_Spring_IOC原理分析_重要
    3_Spring_IOC原理分析_重要IOC底层原理1XML解析技术读取配置文件将上面的信息读取进入程序 对象的ID,一个是对象的类的全路径名2反射技术实例化对象,放到容器中获得类的字节码Classclazz=Class.forName("com.msb.dao.impl.EmpDaoImpl")通过字节码实例化对象Ob......
  • 11_Spring_AOP概念和原理
    11_Spring_AOP概念和原理AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现日志处理,权限控制,性能检测,事务控制等AOP实现的原理就是动态代理,在有接口的情况下,使用JDK动态代理,在没有接口的情况下使用cglib动态代理为Dao层所有的......