OSPF基础
一、OSPF概述
1.定义:OSPF(Open Shortest Path First,开放最短路径优先)是IETF 组织开发的一个基
于链路状态的内部网关协议
2.版本:IPv4协议使用的是OSPF Version 2(RFC 2328)
IPv6协议使用的是OSPF Version 3
二、OSPF的特点
1.适应范围广——支持各种规模的网络,最多可支持几百台路由器。
2.快速收敛——在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统
中同步。
3.无自环——由于OSPF 根据收集到的链路状态用最短路径树算法计算路由,从算法本身
保证了不会生成自环路由。
4.区域划分——允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一
步抽象,从而减少了占用的网络带宽。
5.等价路由——支持到同一目的地址的多条等价路由
6.路由分级——使用4 类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、
第一类外部路由、第二类外部路由。
7.支持验证——支持基于接口的报文验证,以保证报文交互和路由计算的安全性。
8.组播发送——在某些类型的链路上以组播地址发送协议报文,减少对其他设备的干扰。
三、OSPF 的基本概念
1.自治系统(Autonomous System):一组使用相同路由协议交换路由信息的网络设备的集
合,缩写为AS
2.OSPF路由的计算过程【同一个区域内】
A 每台OSPF 路由器根据自己周围的网络拓扑结构生成LSA(Link State Advertisement,
链路状态通告),并通过更新报文将LSA 发送给网络中的其它OSPF 路由器
B 每台OSPF 路由器都会收集其它路由器通告的LSA,所有的LSA 放在一起便组成了
LSDB(Link State Database,链路状态数据库)。LSA 是对路由器周围网络拓扑结构的
描述,LSDB则是对整个自治系统的网络拓扑结构的描述。
C OSPF 路由器将LSDB 转换成一张带权的有向图,这张图便是对整个网络拓扑结构的
真实反映。各个路由器得到的有向图是完全相同的。
D 每台路由器根据有向图,使用SPF 算法计算出一棵以自己为根的最短路径树,这棵树
给出了到自治系统中各节点的路由。
3.OSPF的分组类型【共5种】
I Hello报文:周期性发送,用来发现和维持OSPF 邻居关系。内容包括一些定时器的数
值、DR(Designated Router,指定路由器)、BDR(Backup Designated Router,
备份指定路由器)以及自己已知的邻居。
II DD(Database Description,数据库描述)报文:描述了本地LSDB 中每一条LSA 的摘
要信息,用于两台路由器进行数据库同
步。
III LSR(Link State Request,链路状态请求)报文:向对方请求所需的LSA。两台路由器
互相交换DD 报文之后,得知对端的
路由器有哪些LSA 是本地的LSDB
所缺少的,这时需要发送LSR 报文
向对方请求所需的LSA。内容包括所
需要的LSA 的摘要。
V LSU(Link State Update,链路状态更新)报文:向对方发送其所需要的LSA。
VI LSAck(Link State Acknowledgment,链路状态确认)报文:用来对收到的LSA 进行确
认。内容是需要确认的LSA
的Header(一个报文可对
多个LSA 进行确认)
4.路由器ID号(router ID)
A 一台运行OSPF 协议路由器,每一个OSPF 进程必须存在自己的Router ID(路由器ID)。
B RouterID 是一个32 比特无符号整数,可以在一个自治系统中唯一的标识一台路由器。
C RouterID的制定方法
* [H3C]router id
[H3C]ospf <进程号> router-id
5.OSPF的LSA类型
6.邻居与邻接
A 邻居(Neighbor):OSPF 路由器启动后,便会通过OSPF 接口向外发送Hello 报文。
收到Hello 报文的OSPF 路由器会检查报文中所定义的参数,如果
双方一致就会形成邻居关系。
B 邻接(Adjacency):形成邻居关系的双方不一定都能形成邻接关系,这要根据网络类型
而定。只有当双方成功交换DD报文,交换LSA 并达到LSDB 的
同步之后,才形成真正意义上的邻接关系。
7.OSPF的协议报文
A OSPF报文直接封装为IP报文协议报文,协议号为89
B OSPF报文格式
C 主要字段的解释如下:
①Version:OSPF 的版本号。对于OSPFv2 来说,其值为2。
②Type:OSPF 报文的类型。数值从1 到5,分别对应Hello 报文、DD 报文、LSR
报文、LSU报文和LSAck 报文。
③Packet length:OSPF 报文的总长度,包括报文头在内,单位为字节。
④Router ID:始发该LSA 的路由器的ID。
⑤Area ID:始发LSA 的路由器所在的区域ID。
⑥Checksum:对整个报文的校验和。
⑦AuType:验证类型。可分为不验证、简单(明文)口令验证和MD5 验证,其值
分别为0、1、2。
⑧Authentication:其数值根据验证类型而定。当验证类型为0 时未作定义,为1 时
此字段为密码信息,类型为2 时此字段包括Key ID、MD5 验证
数据长度和序列号的信息。
四、OSPF的网络类型
1.广播(Broadcast)类型:当链路层协议是Ethernet、FDDI 时,OSPF 缺省认为网络类型
是Broadcast。在该类型的网络中,通常以组播形式(224.0.0.5:
含义是OSPF 路由器的预留IP组播地址;224.0.0.6:含义是OSPF
DR 的预留IP 组播地址)发送Hello 报文、LSU 报文和LSAck
报文;以单播形式
....发送DD 报文和LSR 报文。
2.NBMA(Non-Broadcast Multi-Access,非广播多点可达网络)类型:当链路层协议是帧中
继、ATM 或X.25 时,OSPF 缺省认为网络类型是NBMA。在
该类型的网络中,以单播形式
....发送协议报文[neighbor]。
3.P2MP(Point-to-MultiPoint,点到多点)类型:没有一种链路层协议会被缺省的认为是P2MP
类型。点到多点必须是由其他的网络类型强制更改的。常用做法
是将NBMA 改为点到多点的网络。在该类型的网络中,缺省情
况下,以组播形式(224.0.0.5)发送协议报文。可以根据用户需
要,以单播形式发送协议报文。
4.P2P(Point-to-Point,点到点)类型:当链路层协议是PPP、HDLC 时,OSPF 缺省认为
网络类型是P2P。在该类型的网络中,以组播形式(224.0.0.5)
发送协议报文。