OSPF
OSPF
是
Open Shortest Path First
(开放最短路径优先)的缩写。它是
IETF
组织开发的一个基于链路状态的内部网关协议。目前针对
IPv4
协议使用的是
OSPF Version 2
(
RFC 2328
)。
OSPF
具有如下特点:
l
适应范围广——支持各种规模的网络,最多可支持几百台路由器。
l
快速收敛——在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。
l
无自环——由于
OSPF
根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。
l
区域划分——允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用的网络带宽。
l
等价路由——支持到同一目的地址的多条等价路由。
l
路由分级——使用
4
类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。
l
支持验证——支持基于接口的报文验证,以保证报文交互的安全性。
l
组播发送——在某些类型的链路上以组播地址发送协议报文,减少对其他设备的干扰。
OSPF的基本概念
1. 自治系统(Autonomous System)
一组使用相同路由协议交换路由信息的路由器,缩写为
AS
。
2. OSPF路由的计算过程
OSPF
协议路由的计算过程可简单描述如下:
l
每台
OSPF
路由器根据自己周围的网络拓扑结构生成
LSA
(
Link State Advertisement
,链路状态通告),并通过更新报文将
LSA
发送给网络中的其它
OSPF
路由器。
l
每台
OSPF
路由器都会收集其它路由器通告的
LSA
,所有的
LSA
放在一起便组成了
LSDB
(
Link State Database
,链路状态数据库)。
LSA
是对路由器周围网络拓扑结构的描述,
LSDB
则是对整个自治系统的网络拓扑结构的描述。
l
OSPF
路由器将
LSDB
转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。各个路由器得到的有向图是完全相同的。
l
每台路由器根据有向图,使用
SPF
算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。
3. 路由器ID号
一台路由器如果要运行
OSPF
协议,则必须存在
RID
(
Router ID
,路由器
ID
)。
RID
是一个
32
比特无符号整数,可以在一个自治系统中唯一的标识一台路由器。
RID
可以手工配置,也可以自动生成;如果没有通过命令指定
RID
,将按照如下顺序自动生成一个
RID
:
l
如果当前设备配置了
Loopback
接口,将选取所有
Loopback
接口上数值最大的
IP
地址作为
RID
;
l
如果当前设备没有配置
Loopback
接口,将选取它所有已经配置
IP
地址且链路有效的接口上数值最大的
IP
地址作为
RID
。
4. OSPF的协议报文
OSPF
有五种类型的协议报文:
l
Hello
报文:周期性发送,用来发现和维持
OSPF
邻居关系。内容包括一些定时器的数值、
DR
(
Designated Router
,指定路由器)、
BDR
(
Backup Designated Router
,备份指定路由器)以及自己已知的邻居。
l
DD
(
Database Description
,数据库描述)报文:描述了本地
LSDB
中每一条
LSA
的摘要信息,用于两台路由器进行数据库同步。
l
LSR
(
Link State Request
,链路状态请求)报文:向对方请求所需的
LSA
。两台路由器互相交换
DD
报文之后,得知对端的路由器有哪些
LSA
是本地的
LSDB
所缺少的,这时需要发送
LSR
报文向对方请求所需的
LSA
。内容包括所需要的
LSA
的摘要。
l
LSU
(
Link State Update
,链路状态更新)报文:向对方发送其所需要的
LSA
。
l
LSAck
(
Link State Acknowledgment
,链路状态确认)报文:用来对收到的
LSA
进行确认。内容是需要确认的
LSA
的
Header
(一个报文可对多个
LSA
进行确认)。
5. LSA的类型
OSPF
中对链路状态信息的描述都是封装在
LSA
中发布出去,常用的
LSA
有以下几种类型:
l
Router LSA
(
Type1
):由每个路由器产生,描述路由器的链路状态和开销,在其始发的区域内传播。
l
Network LSA
(
Type2
):由
DR
产生,描述本网段所有路由器的链路状态,在其始发的区域内传播。
l
Network Summary LSA
(
Type3
):由
ABR
(
Area Border Router
,区域边界路由器)产生,描述区域内某个网段的路由,并通告给其他区域。
l
ASBR Summary LSA
(
Type4
):由
ABR
产生,描述到
ASBR
(
Autonomous System Boundary Router
,自治系统边界路由器)的路由,通告给相关区域。
l
AS External LSA
(
Type5
):由
ASBR
产生,描述到
AS
(
Autonomous System
,自治系统)外部的路由,通告到所有的区域(除了
Stub
区域和
NSSA
区域)。
l
NSSA External LSA
(
Type7
):由
NSSA
(
Not-So-Stubby Area
)区域内的
ASBR
产生,描述到
AS
外部的路由,仅在
NSSA
区域内传播。
l
Opaque LSA
:是一个被提议的
LSA
类别,由标准的
LSA
头部后面跟随特殊应用的信息组成,可以直接由
OSPF
协议使用,或者由其它应用分发信息到整个
OSPF
域间接使用。
Opaque LSA
分为
Type 9
、
Type10
、
Type11
三种类型,泛洪区域不同;其中,
Type 9
的
Opaque LSA
仅在本地链路范围进行泛洪,
Type 10
的
Opaque LSA
仅在本地区域范围进行泛洪,
Type 11
的
LSA
可以在一个自治系统范围进行泛洪。
6. 邻居和邻接
在
OSPF
中,邻居(
Neighbor
)和邻接(
Adjacency
)是两个不同的概念。
OSPF
路由器启动后,便会通过
OSPF
接口向外发送
Hello
报文。收到
Hello
报文的
OSPF
路由器会检查报文中所定义的参数,如果双方一致就会形成邻居关系。
形成邻居关系的双方不一定都能形成邻接关系,这要根据网络类型而定。只有当双方成功交换
DD
报文,交换
LSA
并达到
LSDB
的同步之后,才形成真正意义上的邻接关系。
转载于:https://blog.51cto.com/jinfeng/98949