OSPF基本概念

OSPF(Open shortest path first,开放式最短路径优先)是一种典型的链路状态路由协议,也是目前使用最广泛的IGP之一。

Open即开放的意思,所有厂商都可以在其设备上实现OSPF,OSPF支持VLSM、路由汇总等,Area概念引入使得OSPF能够支持更大规模。

OSPF目前有两个版本,针对IPv4版本的OSPFv2及支持IPv6的OSPFv3,在网络拓扑发生变更时,OSPF可以快速感知并进行路由的计算和重新收敛。

OSPF原理简述:

运行OSPF的路由器,知晓整个网络的拓扑结构,路由器间首先建立邻居关系,以泛洪方式交互链路状态信息,使得每台路由器都能学习到,将链路状态信息存储在LSDB中,路由器根据LSDB计算出一颗以自己为根且无环的最短路径树,那么网络中路由器就获得了全网每台路由器的最优路径。
Router-ID含义与配置

OSPF Router-ID也叫路由器标识,它是一个32bit长度的数值,以点分十进制形式表现,与IP地址格式一样,主要用于在OSPF域中唯一地标识一台OSPF路由器,Router-ID全域唯一。
OSPF域是指一系列连续的OSPF路由器组成的网络,域内的路由器采用相同的OSPF策略。
Router-ID在实际网络部署中,建议大家手工配置,这关系到协议的稳定性,最常见的做法是,将设备的OSPF R-ID指定为该设备的Loopback接口的IP地址。

Loopback接口概念

loopback接口即本地环回接口,是一种逻辑接口,不仅网络设备,很多主机也支持loopback接口,loopback接口非常稳定,除非人为的进行关闭或删除,否则永远不会失效。loopback接口通常用于设备网管、网络测试、网络协议应用等。

手工指定ospf-router-id

#为设备创建一个loopback接口,并指定接口IP
interface loopback 0  
ip add 1.1.1.1 32
quit
#创建1个ospf进程,并指定该设备的router-id为1.1.1.1
ospf 1 router-id 1.1.1.1

OSPF的三张表

OSPF使用三张表格以确保其正常运行,邻居表、链路状态数据库、OSPF路由表。

邻居表

掌握邻居表的查看是使用OSPF的基本技能之一,也是OSPF维护及故障定位的重要手段。

#查看邻居表使用命令
display ospf peer
#state为邻居的状态,当state为full时,两路由器建立了邻接关系

每台OSPF路由器都与其邻居建立会话,会话使用一个“邻居数据结构”来描述,数据结构是与路由器的接口相关联的,描述了邻居的状态、主/从、R-ID、DR优先级、接口IP地址等。OSPF邻居表则汇总了这些信息。

链路状态数据库

运行链路状态路由协议的路由器在网络中泛洪链路状态信息,在OSPF中,这些信息被称为LSA,也叫链路状态公告,路由器将网络中的LSA搜集后,装载到LSDB中,LSDB可以当作是路由器对网络的完整认知。
ospf定义了多种LSA,LSA各有用途,但最终目的都是为了让路由器知晓网络的拓扑结构及网段信息,并计算出最短路径树,从而发现到达全网各个网段的路由。

display ospf lsdb #查看LSDB
OSPF路由表
display ospf routing

度量值

OSPF使用cost作为路由度量值,Cost越小,则路径越优,每个激活ospf的接口都有cost值,在实际应用中,可通过调节接口cost从而影响ospf路由计算。

报文类型及格式

ospf协议基于IP运行,协议的数据报文直接采用IP封装,在IP报文头部中,对应的协议号为89,ospf协议报文使用组播地址作为目的IP地址,224.0.0.5指所有的ospf路由器,224.0.0.6指ospf DR路由器。

OSPF五种报文

hello报文,用于发现直连链路上的ospf邻居,以及维护ospf邻居关系。
dd报文,用于描述LSDB,报文中携带的是LSDB中的LSA的头部数据.
LSR,向邻居请求LSA
LSU,用于发送LSA,该报文中,携带的是完整的LSA数据,LSA是承载在LSU中进行泛洪的,
LSAck链路状态确认,设备收到LSU后,LSAck用于对接收的LSA进行确认.