概述
OSPF是IETF定义的一种基于链路状态的内部网关路由协议。目前IPV4使用的是OSPF Version2(RFC2328);IPV6协议使用的是OSPF Version 3 (RFC2740)。
OSPF优点:
①基于SPFF算法,以“累计链路开销”作为选路参考价值;
②采用组播形式收发部分协议报文;
③支持区域划分;
④支持对等价路由进行负载分担;
⑤支持报文认证。
OSPF应用场景
大型企业网络中通常部署OSPF实现各个楼宇的网络之间的路由可达。核心和汇聚层部署在OSPF骨干区域;接入和汇聚层部署在oSPF非骨干区域。
OSPF基本术语
(1)Router lD
Router ID用于在自治系统中唯一标识一台运行OSPF的路由器,是一个32位的无符号整数。
Router ID选举规则:
手动配置OSPF路由器的Router ID;
若没有手动配置Router ID,则路由器使用Loopback中的最大IP地址作为Router lD;
若没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为Router ID。
(2)区域
OSPF Area用于标识一个OSPF的区域。
区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area lD)来标识。
OSPF的区域ID是一个32位的非负整数,按点分十进制的形式呈现,为方便起见,也可采用十进制的形式来表示。
(3)度量值
OSPF用cost作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口Cost值,缺省接口Cost=100(Mbit/s)/接口带宽。其中100位OSPF指定的缺省参考值,可配置。
OSPF三大表项
(1)邻居表
OSPF在传递链路状态信息之前,需要先建立OSPF邻居关系。
OSPF的邻居关系通过交互Hello报文建立;
OSPF邻居表显示了OSPF路由器之间的邻居状态,使用display ospf peer查看。
(2)LSDB表
LSDB会保存自己产生的及从邻居收到的LsA信息;Type标识LSA类型,AdvRouter标识发送LSA的路由器;LSDB表使用display ospf lsdb查看。
(3)OSPF路由表
OSPF路由表与路由器路由表是两张不同的表;
OSPF路由器包含Destination、Cost和NextHop等指导转发的信息;OSPF路由表使用命令display ospf routing查看。
OSPF报文类型
OSPF一共定义了5种类型的报文,不同类型的报文有相同的头部格式;
OSPF报文直接采用IP封装,在IP报文的头部,协议号为89。
五种报文
①Hello报文:发现和维护邻居关系;
②Database Description报文:交互链路状态数据库摘要;
③Link State Request报文:请求特定的链路状态信息;
④Link State Update报文:发送详细的链路状态信息;
⑤Link State Ack报文:确认LSA。
OSPF工作过程
(1)过程
hello发现直连链路上的邻居;
协商主从master/slave;
相互交互各自的LSDB;
更新LSA,同步LSDB;
计算路由。
(2)邻居关系的建立
在以太网链路上,缺省时,OSPF采用组播的形式发送Hello报文;
OSPF Hello报文中包含了路由器的Router ID、邻居信息等信息。
邻居的建立有三个状态:
Down–Init–2-way
①Down:邻居表的初始状态,表示没有从邻居收到任何信息;
②init:此状态,路由器已经从邻居收到了Hello报文,但自己的Router lD不在所收到的Hello报文的邻居列表中;
③2-way:此状态下,路由器发现自己的Router lD存在于收到的Hello报文的邻居列表中。