目录
前言
动态路由及其按工作范围、协议特点、网络掩码的传递分类,动态路由中的RIP协议都在上一章进行了讲解,想复习的小伙伴可以点击此处 动态路由(一)RIP
想看静态路由详细理解的可以点击此处 路由之静态路由
OSPF(开放式最短路径优先协议)
基本信息
- 协议使用范围IGP
- 协议算法特点:链路状态型路由协议
- 协议是否传递网络掩码:传递网络掩码(无类别的路由协议)
- 协议封装:基于IP协议封装,协议号为89(协议号:IP包中指定上一层采用什么协议)
解释:比如IP封装的上一层时UDP传输,则IP包中采用的协议号一般为6
OSPF特点
- OSPF是一种链路状态型协议
- OSPF传递的LSA(链路状态通告 六种类型LSA 1 2 3 4 5 7)
- OSPF更新方式:触发更新+30分钟的周期更新
- OSPF更新地址:224.0.0.2 224.0.0.6
- OSPF支持区域划分
- OSPF是一种比较消耗路由器资源的协议
解释:
我们知道链路状态型协议不同于距离矢量型协议的是,距离矢量型协议只传输路由信息,而链路状态型协议既要传输路由信息又要传输拓扑信息,在OSPF中它把要传递的信息(路由和拓扑信息)称为一个专有名词:LSA (链路状态通告)
触发更新是指当网络稳定情况下,是不发送相关路由信息的,如果网络结构或者网络拓扑发生改变,会立即发送路由信息
OSPF协议工作过程
第一步建立邻居关系,就是它们之间会发送hello包来确认对方是运行了同一类型的OSPF协议
第二步交互LSA信息(链路状态信息),然后存放到链路状态数据库(LSDB)
第三步路径计算 即SPF算法(最短路径优先算法)
第四步生成路由表项
OSPF区域
OSPF支持区域划分的原因: 1.限制LSA的传播范围 2.减少LSA的数量
OSPF 区域的划分:基于接口(链路)
OSPF 区域的标识: 1.十进制数 2.类似于IP地址 A.B.C.D
区域分类:1、骨干区域(0区域) 2、非骨干区域 (非0区域)
理解:
OSPF协议是链路状态型协议,所以本身需要传递的数据量就很大,并且它不同于RIP的传递(RIP信息的交互只需相邻的两个路由器进行数据交互),OSPF的交互是一个路由器的相关信息数据包会传给所有路由器来进行交互,因此划分区域可以减少大部分路由器的负担,只需要边界路由将本区域,与相邻区域的LSDB都储存下来,从而降低了区域内部路由器的LSDB
基于接口是指它划分区域只能以接口来作为点来画边界并且一条最小路由(相邻路由器与路由器之间的路径)不能划分为两个区域,只能作为一个区域一个整体
十进制标识是指划分区域号码为0到2^32-1
类似IP地址的标识是指划分区域号码0.0.0.0到255.255.255.254
无论是十进制标识还是类似IP地址的标识都是32位二进制
区域设计原则
1.OSPF网络中必须存在并且唯一的骨干区域(area 0)(单区域可以不为 area 0 )
2.若存在非骨干区域,非骨干区域必须与骨干区域直接相连
OSPF路由器角色
骨干路由器:路由器的所有接口都在骨干区域内
非骨干路由器:路由器之间的所有接口都在非骨干区域内
区域边界路由器(ABR):路由器处于骨干区域和非骨干区域的边界
自治系统边界路由器(ASBR):位于OSPF自主系统和非OSPF网络之间的路由器
以下图为例来理解一下路由器角色
图中的0区域(骨干区域)、1区域(非骨干区域)、2区域(非骨干区域),3区域没有启动OSPF协议,用的是RIP协议,所以以五号路由器对角线分成的是两个网络
对照路由器角色的定义,我们可以划分出它们的角色:
骨干路由器:3
非骨干路由器:1
区域边界路由器:2、4
自治系统边界路由器:5
OSPF协议消息数据包
理解:数据包中有五种报文,Hello报文用来发现和维护邻居关系,防止其中一方突然出现故障导致的问题,DD报文用来查询信息是否有重复的以及发现自己于对方所没有的LSA,LSR报文请求对方发送LSA,LSU报文用来发送LSA,ACK报文表示确认收到对方发送的信息
OSPF协议开销值计算
使用参考带宽/链路带宽(当值小于1时等于1,值大于1时省略小数点)来计算开销值,得到每段链路开销值,路由开销值为整条路径开销值之和。
OSPF协议配置
在配置前,我们先了解一些东西
Router-id:路由器标识符,在整个OSPF网络中标识本路由器的唯一性
Router-id理解:它的作用就是来标识本路由器,它是必须要有的,因为没有Router-id那么OSPF就无法工作,当然最主要的原因是OSPF协议除了学习路由信息还要学习拓扑信息,而在传递拓扑信息时需要来标识路由器
Router-id生成方式:1.手工指定最优先 2.选择最大环回接口IP地址 3.选择最大物理接口IP地址
生成方式理解:生成方式为上述三种,优先级为手工指定、最大环回接口IP地址、最大物理接口IP地址
以讲解上图来理解OSPF协议的配置(作为初学者就只配置一个区域,不划分区域)
配置(一):指定进程号和Router-id
进程号和RIP一样也是只具有本地意义
过程:
配置(二):划分区域
配置(三):network通告(支持反掩码通告)
在RIP协议中,由于通告只能通告主类网段,导致我们对于R1的三个lookback网段只能一起通告或者一起不通告,而在OSPF协议中做了一点优化,我们可以使用反掩码来完成只通告1.1.1.0网段
1.1.1.0 255.255.255.0(正常掩码)由连续的1和连续的0组成,1代表网络位,0代表主机位
1.1.1.0 0.0.0.255(反掩码) 由连续的0和连续的1组成,0代表固定位,1代表可变位 即1.1.1.X
R2与R3进行同理操作后,就可以ping通全网了
配置(四):下发缺省路由
缺省路由产生方式:
当本路由器已经存在其他方式缺省时(使用这个命令后可以让已存在的缺省路由生效入OSPF)
若不存在其他方式,可以强制产生
OSPF 协议三张表
OSPF 邻居表:
在state这一项中有两种关系:邻接关系大于邻居关系
two-way:邻居关系
full:邻接关系
OSPF LSDB表:保存了所有的LSA
OSPF路由表: