一.OSPF概述
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯彻(Dijkstra)算法被用来计算最短路径树。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。
AS:同一个技术管理机构管理、使用统一选路策略的一些路由器的集合
二.协议的分类
1.按自治系统分为
- IGP:内部网关路由协议,运行在AS内部的路由协议,主要解决AS内部的选路问题,发现、计算路由。
主要的协议:RIP1/RIP2、OSPF、ISIS、EIGRP(思科私有协议) - EGP:外部网关路由协议,运行在AS与AS之间的路由协议,他解决AS之间选路问题
通常:BGP
2.按协议类型分类
- 距离矢量路由协议:RIP1/2、BGP(路径矢量协议)、EIGRP(高级距离矢量协议
路由器对全网拓扑不完全了解。是“传说的路由”,A发路由信息给B,B加上自己的度量值又发给C,路由表里的条目是听来的。
3.链路状态路由协议:OSPF,ISIS
- 路由器对全网拓扑完全了解。是“传信的路由”,A将信息放在一封信里发给B,B对其不做任何改变,拷贝下来,并将自己的信息放在另一封信里,两封信一起给C,这样,信息没有任何改变和丢失,最后所有路由器都收到相同的一堆信,这一堆信就是LSDB。然后,每个路由器运用相同的SPF算法,以自己为根,计算出SPF Tree(即将到达目的地的各个方案),选出最佳路径,放入路由表中。
三.OSPF的工作过程
- 邻居列表
- 链路状态数据库
- 路由表
- 建立邻接关系
- 学习链路状态信息
- 链路状态数据库
- Dijkstra算法
- 最短路径树
- 路由表
四.OSPF基本概念
1.OSPF区域
- 为了适应大型的网络,OSPF在AS内划分多个区域
- 每个OSPF路由器只维护所在区域的完整链路状态信息
2.区域ID
- 区域ID可以表示成一个十进制的数字
- 也可以表示成一个IP
3.骨干区域Area 0
- 负责区域间路由信息传播
4.非骨干区域
5.Router ID
- OSPF区域内唯一标识路由器的IP地址
6.Router ID选取规则
- 选取路由器loopback接口上数值最高的IP地址
- 如果没有loopback接口,在物理端口中选取IP地址最高的
- 也可以使用router-id命令指定Router ID
五.OSPF原理
- OSPF的简单说就是两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。
(一)五个包
- Hello包:
发现和维持邻居关系、选举DR和BDR - 数据库描述包(DBD)
向邻居发送摘要信息以同步链路状态数据库 - 链路状态请求包(LSR)
路由器收到新信息的DBD发送,请求更详细的信息 - 链路状态更新包(LSU)
将LSR请求的头部信息对应的完整信息发给邻居。 - 链路状态确认包(LSAck)
收到LSU报文后确认DBD/LSU
(二)七种状态
- down:初始化
- init:收到第一个Hello包
- 2-way:双向建立会话
- Exstart:建立主从关系
- Exchange:交换摘要信息
- Loading:加载详细信息
- full:完全连接
六.OSPF的区域类型
-
骨干区域Area 0
-
非骨干区域—根据能够学习的路由种类来区分
-标准区域
-末梢区域(stub)
-完全末梢(Totally stubby)区域
-非纯末梢区域(NSSA)
七.链路状态通告(LSA)类型
类型代码 | 描述 | 用途 |
---|---|---|
Type 1 | 路由器LSA | 由区域内的路由器发出,描述了路由器的链路状态和花费,传递到整个区域内 |
Type 2 | 网络LSA | 由区域内的DR发出,描述了区域内变更信息,传递到整个区域内 |
Type 3 | 网络汇总LSA | ABR发出,其他区域的汇总链路通告,描述了其他区域内某一网段的路由,区域间传递 |
Type 4 | ASBR汇总LSA | ABR发出,用于通告ASBR信息,确定ASBR的位置,不会出现在ASBR所属区域之内 |
Type 5 | AS外部LSA | ASBR发出,用于通告外部路由,告诉相同AS的路由器通往外部AS的路径,在整个AS中进行泛洪 |
Type 7 | NSSA外部LAS | NSSA区域内的ASBR发出的,用于通告本区域连接的外部路由,与Type 5 类似,仅在非纯末梢区域内进行泛洪,传递时会被ABR转换为LSA5 |
八.末梢区域和完全末梢区域
(一)满足以下条件的区域
- 只有一个默认路由作为其区域的出口
- 区域不能作为虚链路的穿越区域
- Stub区域里无自治系统边界路由器ASBR
- 不是骨干区域Area 0
(二)末梢区域
- 没有LSA4、5、7通告
(三).完全末梢区域
- 除一条LSA3的默认路由通告外,没有LSA3、4、5、7的通告
(四)末梢与完全末梢的作用
- 减少区域内的LSA条目以及路由条目
- 减少对设备CPU和内存的占用