OSPF开放式最短路径优先
概述
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。
内部网关协议与外部网关协议
-
自治系统(AS):在一个系统内采用同一个协议。是一个有权自主地决定在本系统中应采用何种路由协议的小型单位。
-
内部网关协议(IGP):用于在单一AS内决策路由。例如(OSPF、RIP)
-
外部网关协议(EGP):用于在多个AS之间执行路由。例如(BGP,运营商使用较多)
IGP用来解决AS内部通信,EGP用来解决AS间通信
严格意义上来讲,BGP属于边界网关协议,因此只有EGP属于外部网关路由协议
基本工作原理
-
路由信息与路由计算分离
-
基于SPF算法
-
以“累计链路开销”作为选路参考值
OSPF作为链路状态路由协议,不直接传递各路由器的路由表,而传递链路状态信息,各路由器基于链路状态信息独立计算路由。
所有路由器各自维护一个链路状态数据库。邻居路由器间先同步链路状态数据库,再各自基于SPF(Shortest Path First)算法计算最优路由,从而提高收敛速度。
OSPF工作过程
-
建立邻接关系
-
与“邻居”互相学习链路状态信息
-
生成链路状态数据库
-
通过最短路径算法Dijkstra算法生成最短路径树
-
由最短路径树生成路由表
路由表一定是统一的,因为在一个AS内部都使用OSPF的情况下,所有的路由器 都是使用的最短路径算法Dijkstra对路径进行计算的。所以计算出的最短路径一定是相同的。
OSPF区域
为了适应大型的网络,OSPF在AS内划分多个区域。每个OSPF路由器只维护所在区域的完整链路状态信息。
也就是说,将大型AS划分为多个区域,在划分出的每个区域内同时进行收敛,再由处在不同区域交叉位置的路由器来交互不同区域的链路信息。以此提高收敛效率。
触发更新也是一种提高收敛效率的办法。(RIP、OSPF都支持)
区域的划分是基于路由器接口的。
区域ID
区域ID表示成一个十进制的数字。
区域的分类
骨干区域Area 0:负责区域间路由信息的传播。即网络中所有的区域信息都需要经过Area 0 进行交互。
非骨干区域:除骨干区域外的其他所有区域。
Router ID
运行ospf的路由器需要了解每条链路是连接在哪个路由器上的,因此需要对每一个路由器进行唯一标识
OSPF区域内唯一标识路由器的IP地址
Router ID选取规则
-
选取路由器loopback接口上数值最高的IP地址
-
如果没有loopback接口,在物理端口中选取IP地址最高的
-
也可以使用router-id命令指定Router ID
优先级:
1.ospf 1router id命令
2.router id命令
3.最大的Loopback接口IP地址
4.最大的物理接口IP地址
DR与BDR
在一个区域内,若干N台路由器都彼此连接会产生N*(N-1)/2条链路。此时彼此交互链路信息,每个路由器都会产生多条重复链路信息,也会接收到多条。
为解决此问题,提出了指定路由器(DR)、备用指定路由器(BDR)的概念。
指定路由器DR:所有其他路由器的链路信息都将发给DR,DR接收到信息后,再转发给其他路由器。以此来实现一个区域内的链路信息收敛。
备用指定路由器(BDR):网络中只有一台DR十分危险,如果DR