OSPF-开放最短路径优先

  • 一、OSPF基础概念
  • 1.1 ospf数据包
  • 1.2OSPF网络类型
  • 1.3 OSPF接口状态机
  • 1.4 OSPF邻居状态机
  • 二、工作流程
  • 三、区域相关
  • 3.1 区域划分
  • 3.1.1 为什么划分区域?
  • 3.1.2划分区域的作用:(区域ID32位)
  • 3.1.3 区域中的路由器类型
  • 3.1.4DR和BDR选举
  • 3.2 LSA分类及传递规则
  • 3.3限制LSA数量


一、OSPF基础概念

**OSPF协议号89**
1.1 ospf数据包

中文包名

英文包名

功能

问候

HELLO

确认相邻的路由器、确定指定路由器

数据库描述

Database Description

链路装态数据库的摘要信息

链路状态请求

Link State Request

请求从数据库中获取链路装态信息

链路状态更新

Link State Update

更新链路状态数据库中的链路状态信息

链路装态确认应答

Link Atate Acknowledgement

链路状态信息更新的确认应答

  • RIP和OSPF数据包对比–没有对比怎么知道OSPF 的优秀
  • RIP:包的类型只有一种。它利用路由控制信息,一边确认是否连接了网络,一边传送网络信息。但是这种方式,有一个严重的缺点。那就是,网络的个数越多,每次所要交换的路由控制信息就越大。而且当网络已经处于比较稳定的、没有什么变化的状态时,还是要定期交换相同的路由控制信息,这在一定程度上浪费了网络带宽。
  • OSPF:通过发送问候(HELLO)包确认是否连接。每个路由器为了同步路由控制信息,利用数据库描述(Database Description)包相互发送路由摘要信息和版本信息。如果版本比较老,则首先发出一个链路状态请求(Link State Request)包请求路由控制信息,然后由链路状态更新(Link State Update)包接收路由状态信息,最后再通过链路状态确认(Link StateACK Packet)包通知大家本地已经接收到路由控制信息。
1.2OSPF网络类型

OSPF网络类型的:点到点网络;广播型网络;非广播多路访问;点到多点网络;虚链路

1.3 OSPF接口状态机

一个启用的OSPF协议的接口在它变成完全有效之前有一下几个状态的变化

接口状态

说明

Down(失效)

初始化的接口装态,接口不起任何作用(不分厂商设备带硬件直通除外)

点到点

这种接口状态仅仅适用于点到点,点到多点以及虚电路等网络类型相连的接口,接口每过Hellointerval发送一个hello包,尝试与对端建立邻接关系

waiting(等待)

这种接口装态仅仅适用于广播型、NBMA等网络类型,接口可以接受和发送hello数据包,并设置等待计时器,路由器会尝试识别DR和BDR

指定路由器(DR)

在这种状态下,该路由器是所连接网络的指定路由器(DR)并将和网络上的其他路由器 建立邻接关系

备份(Backup)

这种接口状态下,该路由器是所连网络的备份指定路由器(BDR),并且和所在多址网络上的其他路由器建立邻接关系

DRother

跟踪网络上的所有路由器,但仅仅会和网络上的DR路由器和BDR路由器建立邻接关系

Loopback

路由器的接口通过软件或者硬件的方式成为环回;接口在这个状态下不能发数据包,但接口的地址还可以通过路由器的LSA 通告出去,因此进行测试用的数据包能够发现到达这个接口的路径

1.4 OSPF邻居状态机

状态

英文

说明

失效状态

Down

关闭 ,发送hello包,使用pollinterval 120s,接收hello包

尝试状态

Attempt

尝试,在NBMA等网络类型中,路由器之间不能自动建立邻居 关系,必须使用单播邻居建立,若邻居指定发生错误,则进入该状态.

初始状态

Init

初始化状态,发送hello包,周期为10或30s

双向通信状态

2-Way

双向通信,邻居状态,收到对方发送hello包中包含自己的 router-ID时

信息交换初始状态

ExStart

开始发送主从选举DBD

信息交换状态

Exchange

当主 从选举完成,发送携带LSA头部摘要信息的DBD时,进入 exchange ,在exchange中已经开始发送LSR,但是没有LSU的发送

信息加载装态

Loading

发送LSR,回复LSU确认,响应LSACK

完全邻居状态

Full

邻接. 双方LSA信息同步完成(路由收敛)

二、工作流程

ospf开销接口怎么计算_网络

  1. 宣告OSPF的路由器,从所有启动OSPF的接口上发出hello数据包,如果两台路由器共享一条公共数据链路,并且能相互成功协商hello包中的参数,那么他们就成为邻居。
  2. 邻接关系,可以看做一条点到点的虚链路,它是在一些邻居路由器之间构成的,OSPF协议定义了一些网络类型和一些路由器类型的邻接关系,邻接关系建立是由交换Hello信息的路由器类型和交换hello信息的网络类型决定的。
  3. 每一台路由器都会在所有形成邻接关系的邻居之间发送链路状态通告(Link State Advertisement ,LSA )。LSA描述了路由器所有的链路、接口、路由器的邻居以及链路状态信息。这些链路可以是到一个末梢网络的链路、到其他OSPF路由器的链路、到其他区域网络的链路或是到外部网络的链路。由于链路状态信息的多样性,OSPF协议定义了多种(9种,常用的有6个)LSA类型
  4. 每一台收到从邻居路由器发出的ISA路由器都会把这些LSA记录在它的链路状态数据库当中。并且发送一份LSA的拷贝给该路由器的其他所有邻居。
  5. 通过LSA洪泛扩散到整个区域,所有路由器都会形成同样的链路状态数据库。
  6. 当这些路由器的数据库完全相同时,每一台路器都将以自己为根使用SPF算法。来计算一个无环路的拓扑图。以描述他所知道到达每一个目的地的最短路径。
  7. 每一台路由器都从SPF算法中构建出自己的路由表。当所有的链路状态洪泛到区域内的所有路由器上,并且邻居检验他们的数据库也相同。从而成功建立路由表示OSPF的协议变成一个安静的协议。邻居之间交换的hello数据包称为keepalive。并且每隔30分钟重发一次LSA,如果网络拓扑稳定,那我网络将不会有什么活动或行为的发生。

三、区域相关

3.1 区域划分
3.1.1 为什么划分区域?
  • OSPF协议由于使用了多个数据库和复杂的算法,因而相比rip等路由选择协议而言,它将会耗费路由器更多的内存和更多的CPU处理能力。当网络的规模不断增大时,对路由器的性能要求就会显得比较重要甚至达到了路由器性能的极限。
  • 对于一个大型的网络来说,OSPF依然给大量数据链路带来了无法承受的负担。SPF算法本身并没有特别的解决办法。LSA的泛洪扩散和数据库的维护等相关的处理仍然大大加重了CPU的负担。
3.1.2划分区域的作用:(区域ID32位)
  • 建立区域后,路由器只需要和它所在的区域的其他路由器具有向同的链路状态数据库,链路装态数据库的减小是的对路由器的内存消耗更少。
  • 链路装态数据库的减小意味着处理较少的LSA,从而减小了对路由器出路去的消耗
  • 由于链路装态数据库只需要在一个区域内维护面大量的LSA红发扩散也被先知在一个区域当中。
3.1.3 区域中的路由器类型

类型

说明

内部路由器

所有的接口都在一个区域

区域边界路由器(ABR)

连接一个或者多个区域到骨干区域的路由器,ABR必须有一个接口连接骨干区域,ABR会汇总和它相连的区域的拓扑信息给骨干区域(这种路由器要求更高性能的处理器和更大的内存)

骨干路由器(BR)

是指至少有一个接口是和骨干区域相连的路由器。这个定义意味着ABR路由器也可以是骨干路由器,但是并不是所有的骨干路由器都是ABR路由器。另外,如果一台内部路由器的所有接口都属于区域0,那么这台内部路由器也是一台骨干路由器。

自治系统边界路由器(ASBR)

为是OSPF域外部的通信量进入OSPF域的网关路由器,也就是说,ASBR路由器是用来把其他路由选择协议学习到的路由,通过路由选择重分配的方式注入到OSPF域的路由器。一台ASBR路由器可以是位于OSPF域的自主系统内部的任何路由器,它可以是一台内部路由器、骨干路由器或者ABR路由器。

3.1.4DR和BDR选举
  • 根据优先级来进行选择,在网络刚开始,所有路由器都以为自己是DR,所以会把自己的路由信息发送在网络中,然后进行比较,优先级最高的为DR,次高为BDR,先选BDR,再选DR。
  • 先选BDR,但是因为在刚开始选举的时候,没有DR,所以所有人都会认为自己是DR,所以就会跳过BDR那一步的选举,直接进行DR的选举。
3.2 LSA分类及传递规则

ospf开销接口怎么计算_运维_02

3.3限制LSA数量

限制LSA: 1.区域划分 2.特殊区域 3.LSA汇总 4. LSA过滤
特殊区域
Stub :末节区域,在OSPF某个区域中,拒绝4、5类LSA,可能造成 与外网无法通信,在stub区域所在ABR上自动产生一条3类缺省LSA, 保证通信。
注意:
1.特殊区域中所有的路由器都必须配置 (保证LSA同步)
2.特殊区域不能为骨干区域
3.在stub区域中不能进行重发布,不能存在ASBR路由器
4.特殊区域不能出现虚链路(virtual-link)