OSPF笔记

基本概念

  • OSPF是链路状态型协议,是目前业内使用最广泛的IGP协议;是由IETF组织提出的公有协议。
  • OSPF使用的算法是SPF****算法
  • OSPF版本:OSPFv2/OSPFv3
  • OSPF是跨层封装协议,没有传输层封装;OSPF自带可靠性机制。所以OSPF没有周期更新,仅有触发更新机制;但是,OSPF存在30min****的周期链路刷新机制

OSPFv2和RIPv2版本对比
相同点:
1、两者都是无类别路由协议
2、两者都是采用组播形式发送报文
RIPv2--->224.0.0.9
OSPFv2-->224.0.0.5/224.0.0.6
3、两者都支持等开销负载均衡(等价路由)
不同点:
RIPv2应用在小型网络,OSPF应用在中大型网络

结构化部署**---**区域划分

  • 目的:减少拓扑信息的传递,减少设备资源消耗。
  • 区域内部传递拓扑信息,而区域之间传递路由信息
  • 区域ID---Area ID;区域标识符,32bit,使用IP地址格式表示。
  • Area 0**,被称为骨干区域**。

区域划分规则:

  1. OSPF****要求域中所有的非骨干区域,都必须与骨干区域直接相连
  2. 骨干区域不能被分割。--- 区域0有且只有一个。
    OSPF定义了**ABR(区域边界路由器)**来确保工程师遵守第一条规则;ABR功能:将一个区域的路由传递给另一个区域

哪些设备会成为ABR设备
1、至少连接在2个区域
2、连接的区域中,至少有一个区域是骨干区域
3、在骨干区域内部,存在一个活跃的邻居
结论:非骨干区域之间,不能直接传递路由信息
规则二的引申的限定:OSPF****规定,从非骨干区域收到的路由信息 ABR设备可以接收,但不会使用这条路由信息,也就不会传递该路由信息。---- OSPF****的区域水平分割规则
引申:即从一个区域学习到****的路由信息,不能在传递回该区域
ASBR ---自治系统边界路由器;职责:将域外的路由信息引入到域内。
**ABR
自动执行路由的传递行为,而ASBR**则需要管理员手工执行路由的引入操作

OSPF****工作过程

OSPF****数据包

  • hello包
  1. 作用:发现、建立、周期性保活OSPF邻居关系;通过组播224.0.0.5发送报文。
  2. 使用Router-ID来作为路由器标识符使用。
  3. 全域唯一的参数,使用IP地址格式表示。
  4. 配置方式:1.手工配置;2.自动配置(选择最大环回IP地址>选择最大物理接口IP地址)
  5. OSPF每10秒钟发送一次hello报文,进行保活;hello-time。
  6. 存在hold-time(死亡时间),为hello-time的四倍。
  • DD报文 --- 数据库描述报文
  1. 携带的是路径信息的摘要
  2. 目的:减少信息的更新量;不会给邻居直接发送拓扑,而是发送一个拓扑的目录,由邻居挑选感兴趣的拓扑。
  • LSR报文 --- 链路状态请求报文
  1. 根据获取到的DD报文中的摘要信息,来向邻居申请完整的LSA信息。
  • LSU报文 --- 链路状态更新报文
  1. 携带真正的**LSA(链路状态通告,内部携带的是路由或者拓扑)**信息。
  • LSAck报文 --- 链路状态确认报文

OSPF****状态机

  • down --- 关闭状态
  1. 一旦启动了OSPF协议,则进入下一个状
  • init --- 初始化
  1. 本地一旦接收到hello报文,且该报文中存在自己的****Router-ID,则进入下一个状态。
  • 2-way --- 双向通讯
  1. 邻居关系建立的标志,是一个稳定态

判别过程 --- 条件匹配:匹配成功,则进入下一个状态,匹配失败则停留在邻居关系,仅使用hello报文保活。

  • exstart --- 预启动
  1. 邻居关系双方使用未携带数据的DD报文****(空的报文),来进行主从关系选举
  2. 选举规则:选择Router-ID大的设备为主设备
  3. 主从的目的:决定后续交互DD报文时,使用哪一端的DD序列号
  • exchange --- 准交换
  1. 邻居关系双方使用携带数据的DD报文;来传递本地的LSA摘要信息。
  • loading --- 加载
  1. 使用LSR/LSU/LSAck报文,来获取未知完整的LSA信息
  2. 获取到的报文信息,会被设备存在链路状态数据库中。
  • full --- 转发
  1. 当LSA全部获取到后,进入full状态,标志着邻接关系的建立,也是一个稳定态
  2. 需要进行SPF算法的计算,计算出有向图,生成无环路径树,然后计算到达每一个节点的路由信息,将这些路由信息加入到OSPF****路由表中。
  3. 设备对比自身路由信息,如果OSPF的路由更优,则加入到全局路由表。

第八种状态机,被称为Attempt****状态;该状态处于down和init之间,代表OSPF已启动,但是hello报文没有发送。该状态只有在NBMA网络中才会存在。等待管理员告知本地自己的邻居IP地址

条件匹配

目的:选举一个负责人;消除重复的LSA更新
接口角色:

  • DR --- 指定路由器
  • BDR --- 备份指定路由器
  • DRother --- 其他路由器

选举范围:是一个广播域中;DR必须存在一个,BDR可以不存在
选举规则:1.比较接口优先级,默认为1,优先级越大越优,0代表放弃选举;2.比较RID,越大越

两台设备之间,如果接口角色都是DRother,则为邻居关系;如果任意一台是DR/BDR,则成为邻
接关系
引申:P2P网络,不需要进行条件匹配;而MA网络需要
条件匹配是通过hello报文进行选举的,先选举DR,在选举BDR。每一次选举最大时间40秒。DR色是非抢占性


OSPF****报文格式

OSPF****报文头部

每一个OSPF报文,都具备的公共参数部分;24****字节


影响邻居关系建立的参数:区域ID、验证类型、认证数据、网络掩码、hello时间、死亡时 间、可选****项字段
OSPF****发送的每一个报文,都需要进行认证

Hello****包

发现、建立、周期保活OSPF邻居关系;选举DR/BDR角色。


如果两台OSPF路由器构成MA网络,此时设备会检查网络掩码信息,如果不同,则无法建立邻居关系。华为
可选项**---每个bit都代表不同的含义,部分bit****在建立邻居时,需要被检查**。

DD****包


在华为AR系列路由器中,DD报文中的MTU参数,默认为0;因为华为默认不进行MTU参数数值的检查,如果开启OSPFMTU检测机制,则两端MTU数值不同时,双方状态会停留在exstart****状态。--- 影响OSPF邻接关系建立的因素。

ospf mtu-enable --- 开启OSPF的MTU检测机制
I位 --- 代表主从关系选举
M位 --- 代表后续还存在更多的DD报文
MS位 --- 代表主身份
DD序列号用于确保DD报文传输的有序性和可靠性;根据主设备进行,每发送一次DD报文,数值加1
隐式确认机制:从设备每次发送的DD报文中的序列号,必须是本地最新接收到主设备的DD报文的序列号。
DD报文存在三种:
1、空的报文,用于主从关系选举
2、携带LSA摘要的报文,用于摘要共享
3、空的报文,用于隐式确认机制

LSR****包


链路状态类型、链路状态ID、通告路由器;---被称为LSA三元组信息,三个参数可以唯一的标识一LSA

LSU****包

包含两个参数

  • LSA的个数
  • LSA(长度可变)

LSAck****包


OSPF****的接口网络类型

  • OSPF网络类型他不是数据链路层哪个网络类型。
  • OSPF接口网络类型,理解为OSPF****接口在某种网络类型下的工作方式
  • OSPF****邻居的网路类型必须保持一致
相关推荐
Upsy-Daisy1 小时前
IOTA 学习笔记(三):IOTA 的技术演进路线
笔记·学习
有个人神神叨叨1 小时前
Agent Memory 学习笔记-1.0
笔记·学习
一只肥瘫瘫1 小时前
STM32 程序升级学习笔记:Bootloader、IAP 与串口升级流程
笔记·stm32·学习
Wonderful U1 小时前
基于Python+Django的私有化云笔记系统:从痛点分析到完整实现
笔记·python·django
问心无愧05131 小时前
ctf show web 入门66
前端·笔记
非凡大爹2 小时前
实验十 华为路由器和交换机实现RIP 动态路由协议配置实验指导书
运维·网络·计算机网络·华为
不吃土豆的马铃薯2 小时前
高性能服务器程序框架详解(包括Reactor,有限状态机等)
linux·服务器·开发语言·网络·c++
ACP广源盛139246256732 小时前
GSV2231@ACP#三屏扩展旗舰芯片,TRAE SOLO 多任务并行开发核心引擎
运维·网络·人工智能·嵌入式硬件·gpt·电脑·音视频
会编程的土豆2 小时前
Redis 常用操作笔记(Go 开发实战)
redis·笔记·golang