1.定义及相关信息
(1)全称:Open ShortestPath First,开放式最短路径优先
(2)是一种基于链路状态算法的路由协议
(3)目前针对IPv4协议使用的是OSPF Version2(RFC2328)
目前针对IPv6 协议使用的是 OSPF Version3 ( RFC2740 )
(4)运行 OSPF 路由器之间交互的是 LSA(LinkState 链路状态 ) 信息 ,而不是直接交互路由。
也可以说: LSA是OSPF计算路由的依据
2.相关术语
(1)区域:区域是从逻辑上将设备划分为不同的组,每个组用区域号(AreaID)来标识,为了减少LSDB泛洪广播
Area0--骨干区**--**最核心部分--必须有 | Area1......n--非骨干区
注意: 所有的非骨干区域必须和主干区域相连
(2) Router-ID:是路由器标识符,用于在一个 OSPF 域中 唯一 地标识一台路由器
可以通过手工配置的方式,或使用系统自动配置的方式
其中系统配置遵循的原理顺序如下:手工配置是最大的,首选的→逻辑口上的IP选个最大的→物理口选个IP最大的
(3)度量值: OSPF 使用 Cost(开销 )作为路由的度量值
笼统来说,一条OSPF 路由的 Cost 值可以理解为是从目的网段到本路由器沿途所有入接口的Cost 值累加
ospf接口开销==100/接口带宽
(4)OSPF路由器根据其位置或功能不同,有这样几种类型:
区域内路由器(Internal Router)
区域边界路由器ABR(Area Border Router)
骨干路由器(Backbone Router)
自治系统边界路由器ASBR(AS Boundary Router)--引入外部路由
3.三五七
学习OSPF就要知道关于它的三五七
(1)三
即三大表项:OSPF邻居表、LSDB表、OSPF****路由表
OSPF 邻居表显示了 OSPF 路由器之间的邻居状态,使用 display ospf peer 查看
LSDB表会保存自己产生的及从邻居收到的 LSA 信息,使用display ospf lsdb 查看
OSPF 路由表包含 Destination (目的地)、 Cost (花销)和 NextHop (下一跳)等指导转发的信息,使用display ospf routing 查看
(2)五
即 五种类型 的协议报文
|---------------------------|--------------------------------------------------------------------------------|
| 报文名称 | 报文功能 |
| Hello | 周期性发送 ( 10s ) ,用来发现和维护 OSPF 邻居关系 |
| Database Description (DD) | 描述本地 LSDB 的 摘要信息 (概括),用于两台设备进行数据库同步 |
| Link State Request (LSR) | 用于向对方请求所需要的 LSA 设备只有在 OSPF 邻居双方成功交换 DD 报文后才会向对方发出LSR报文 通过 LSR 请求 要 LSA |
| Link State Update (LSU) | 用于向对方发送其所需要的 LSA ,链路状态更新报文 送 LSA LSU报文携带着LSA这个信息 |
| Link State ACK (LSK | 用来对收到的 LSA 进行确认 |
文字感觉理解不明白,来通过画图来进行一个理解
(3)七
即七类LSA,本质上是对OSPF区域的优化,减少LSA的数量,设备消耗资源就少,性能就提高了
详细对比内容如下图本人所致表格所示
注意:先有5类后有4类
4.邻接关系建立
首先要注意的一点就是:不是所有的邻居关系都能成为邻接关系
邻居关系的建立只是一个开始,后续会进行一系列的报文交互,例如前文提到的 DD报文、LSR 、 LSU 和LS ACK 等,当两台路由器 LSDB 同步完成,并开始独立计算路由时,这两台路由器才形成了邻接关系
OSPF 完成邻接关系的建立有四个步骤:建立邻居关系、协商主 / 从、交互 LSDB 信息,同步 LSDB
(1)建立邻居关系
(2)协商主/从、交互LSDB信息
协商主 / 从是因为他们之间是基于 ip 协议的,换句话说即 ip 是不可靠的
(3) 同步 LSDB
在建立邻接过程中,涉及到的各个状态也是十分重要的,接下来做一个总结
|--------------|---------------------------|
| down | 关闭 |
| init | 发现另一个的路由器 AR |
| 2-way | 被另一个的路由器 AR 发现了 |
| 邻居建立完成 | 发送Hello报文 |
| ex-start | 准备交互 |
| 中间空白时间 | 商量主从,Router-ID号大的为主,号小的为从 |
| ex-change | 交换 DD 报文,摘要 LSDB |
| loading | 要完整的 LSA 信息 |
| Full | 同步OK |
5.支持网络类型
OSPF 的有四种网络类型: Broadcast (广播)、 NBMA (非广播多路访问)、 P2MP (点对多点)和 P2P (点对点)
链路两端的 OSPF 接口网络类型必须 一致 ,否则双方无法建立邻居关系
6.DR BDR
首先要知道MA网络:MA(Multi-Access)多路访问网络
它有两种类型:广播型多路访问网络(BMA)及非广播型多路访问网络(NBMA)
以太网(Ethernet)是一种典型的广播型多路访问网络
在 MA 网络中,如果每台 OSPF 路由器都与其他的所有路由器建立 OSPF 邻接关系,便会导致 网络中存在过 多的 OSPF 邻接关系,增加设备负担,也增加了网络中泛洪的 OSPF **报文数量,**当拓扑出现变更,网络中的LSA泛洪可能会造成带宽的浪费和设备资源的损耗
为 优化MA网络中OSPF邻接关系 , OSPF 指定了三种 OSPF 路由器身份, DR(DesignatedRouter,指定路由器 ) 、 BDR(Backup Designated Router ,备用指定路由器 ) 和 DRother 路由器
可以将DR看作为班长,BDR看作为副班长,DRother看作为班级成员
注意:
(1)只允许DR 、 BDR 与其他 OSPF 路由器建立邻接关系
(2)DRother之间不会建立全 毗邻( pi 二声, 就是 连接的意思) 的 OSPF 邻接关系,双方停滞在 2-way 状态( 只能为邻居,不能为邻接 )
(3)其中BDR会监控 DR 的状态,并在当前 DR 发生故障时接替其角色
(4)当DR挂了时, BDR会 上位,再从 Dother 中选一个 BDR 出来,如果 BDR 成为 DR 后,原 DR 恢复了,那么原 DR 会成为 DRother
(5)选举DR是在 ex-start 和 ex-change 中间空白时间进行选举,要考虑两点因素
① 优先级: 基于端口优先级选举 DR ,数大为优,优先级范围 0-255 ,默认值为 1
注意:如果优先级为0,表示不参与选举
② Router-ID: 大的优先,并且 DR不支持抢占
7.LSA
是OSPF计算路由的依据
LSA中的三元组(三个重要字段):type、LS-ID、advrouter
作用是:判断接收到的是否是同一个LSA
新增,更新,删除
(1)新增:三元组和本地LSDB不重复
(2)更新:三元组和本地LSDB重复,更新原则如下:
(3)删除:①被动删除,本地LSDB的age达到3600秒,在1800秒时会重生
②主动删除,对面的某个网段undo掉,会再发送一条LSA,信息中时间为3600秒
8.特殊区域
(1)stub区域
骨干区域不能被配置为stub区域。
Stub区域中的所有路由器都必须将该区域配置为stub。
Stub区域内不能引入也不接收AS外部路由。
虚连接不能穿越Stub区域。
4类5类为缺省3类
OSPF规定Stub区域是不能引入外部路由的,这样可以避免大量外部路由引入造成设备资源消耗。
Totally Stub区域既不允许AS外部路由在本区域内传播,也不允许区域间路由在本区域内传播
Totally Stub区域内的路由器通过本区域ABR下发的缺省路由(使用3类LSA描述)到达其他区域,以及AS外部
注意:与Stub区域配置的区别在于,在ABR上需要追加no-summary关键字
(2)NSSA区域
NSSA区域能够引入外部路由,同时又不会学习来自OSPF网络其它区域引入的外部路由
Totally NSSA与NSSA区域的配置区别在于前者在ABR上需要追加no-summary关键字
最后,来做个关于特殊区域的总结吧