导图社区 OSPF思维导图
下图简单概述OSPF协议的基本概念,对OSPF进行基础的梳理。
编辑于2020-10-28 14:33:15ospf
ospf协议说明
ospf协议也是一种IGP,把一个以OSPF协议作为其IGP的自治系统称为一个OSPF网络。
ospf协议原理
1、ospf协议中,路由器会将自己的链路状态信息一次性地泛洪给所有其他的路由器
2、OSPF协议中引入了Area(区域)的概念,游戏1中,整个教室相当于整个RIP网络。但在游戏2中,整个教室只相当于OSPF网络中的一个Area。
ospf的区域化结构
ospf网络分类
说明:
一个ospf网络可以被划分成多个区域(Area)。
单区域ospf网络
一个ospf网络只包含一个区域
多区域ospf网络
一个ospf网络包含多个区域
区域编号(Area-ID)
在ospf网络中,每一个区域都有一个编号,称为Area-ID。Area-ID是一个32比特的二进制数,但通常也可以用十进制数来表示。
ospf网络中区域的分类
骨干区域
Area-ID为0的区域称为骨干区域。
非骨干区域
Area-ID不为0的区域称为非骨干区域。
骨干区域与非骨干区域的关系
单区域ospf网络中只包含一个区域,这个区域必须是骨干区域。多区域ospf网络中,除了有一个骨干区域外,还有若干个非骨干区域,并且每一个非骨干区域都需要与骨干区域直接相连(采用Virtual Link技术时,非骨干区域虽然没有与骨干区域直接相连,但在逻辑上仍热是与骨干区域直接相连的),但非骨干区域之间是不允许直接相连的,也就是说,非骨干区域之间的通信必须要通过骨干区域中转才能进行。
ospf中路由器的分类
内部路由器
如果一台路由器的所有接口都属于同一个区域,则这样的路由器被称为内部路由器
骨干路由器
如果一台路由器包含有属于Area 0的接口,则这样的路由器被称为骨干路由器
区域边界路由器(ABR)
如果一台路由器的某些接口属于Area 0,其他接口属于别的区域,则这样的路由器被称为ABR(区域边界路由器)
自治系统边界路由器(ASBR)
如果一台路由器是与本OSPF网络(本自治系统)之外的网络相连的,并且可以将外部网络的路由信息引入进本OSPF网络(本自治系统),则这样的路由器被称为ASBR(自治系统边界路由器)
ospf支持的二层网络类型
广播网络
需要选举DR和BDR
NBMA网络
需要选举DR和BDR
点到点网络
不需要选举
点到多点网络
不需要选举
注意事项
ospf路由器的某个接口的类型,是与该接口直接相连的二层网络的类型是一致的。例如ospf路由器的某个接口如果连接的是一个广播网络,那么该接口就是一个广播网络接口。(或者说该接口的接口类型是广播型的)
链路状态与LSA
链路状态概念
每台路由器都将自己的各个接口的接口状态(即链路状态)共享给其他路由器。在此基础上,每台路由器就可以根据自己的各个接口的接口状态已及其他路由器各个接口的接口状态,计算出从自己去往各个目的地的路由。
LSA的概念
LSA是链路状态信息的主要载体,链路状态信息主要是包含在LSA中并通过LSA的通告(泛红)来实现共享的。需要说明的是: 1不同类型的LSA中所包含的链路状态的内容是不同的; 2不同类型的LSA的功能和作用也是不同的; 3不同类型的LSA的通告(泛红)范围也是不同的; 4不同角色的路由器能够产生的LSA的类型也是不同的。
ospf的报文类型
ospf报文的结构
ospf的协议报文是直接封装在IP报文中的,IP报文头部中的协议字段的值必须为89
ospf报文的5种类型
Hello报文
DD报文
LSR报文
LSU报文
LSAck报文
单区域ospf网络
单区域OSPF网络拓扑图
单区域ospf网络工作过程
1、每台路由器都会产生Type-1 LSA,并向整个Area0区域泛洪。 2、具有DR角色的路由器还会产生Type-2 LSA,并向整个Area0泛洪。 注:整个Area0中就只存在这两种类型的LSA,不在有其他类型的LSA存在。
链路状态数据库(LSDB)
每台路由器将所有接收到的LSA以及自己产生的LSA集中在一起,便得到了一个数据库,这样的数据库称为LSDB,链路状态数据库。 显然,一个LSDB其实就是若干条LSA的集合。因为LSA是以泛洪方式在Area0中进行通告的,所以Area0中的每台路由器都能够接收到所有其他路由器产生的LSA,这样一来,不同路由器上的LSDB的内容其实是完全一样的。LSDB相当于是一张关于Area 0的详细地图。
最短路径树(SPT)
最短路径树概念
路由器根据开销情况,从不同的路径中选择出最优(即开销最小)的路径的过程就是最短路径树。
拓扑图说明
拓扑图说明及解释
1.在上述拓扑中,每台路由器上的LSDB的内容都是完全一样的,也就是说。每台路由器的“脑海”中都有一张相同的、关于整个Area 0的详细地图。有了这张地图,每台路由器便可以从中找到从自己的位置去往地图中各个目的地的路线。 2.由于环路的存在,路由器必须根据路径开销的情况从不同的路径中选择出最优(即开销最小)的路径,这个过程也就是最短路径树(SPT)的生成过程。 3.在上述拓扑中、每台路由器都会将SPF算法作用于自己“脑海”中的地图,从而生成一根属于自己的SPT。SPT具有无环结构,其树根就是生成这颗STP的路由器,并且,从树根出发沿树干的指引去往某个目的地时,所经过的路径一定是最优路径。
多区域ospf网络
多区域OSPF网络的拓扑结构
多区域ospf网路工作过程
上图所示:在多区域ospf网络中,由于ABR和ASBR的存在,整个ospf网络中除了Type-1 LSA和Type-2 LSA之外,还有Type-3、Type-4、Type-5等类型的LSA。 也就是说一台路由器的LSDB中,既有Type-1 LSA和 Type-2 LSA,也有其他类型的LSA。根据自己的LSDB中的Type-1 LSA和 Type-2 LSA,路由器可以使用SPF算法得到自己的、关于本Area的SPT,并根据SPT计算出自己去往本Area中各个目地的路由(这个过程与单区域的OSPF网络的工作过程完全一样) 根据自己的LSDB中的Type-3 LSA,路由器使用DV算法计算出自己去往其他Area中各个目的地的路由。 根据自己的LSDB中的Type-4 LSA和Type-5 LSA,路由器使用DV算法计算出自己去往本OSPF网络(本自治系统)之外的目的地的路由
在上述拓扑中,R3将SPF算法作用于自己的LSDB中的Type-1 LSA和Type-2 LSA,便可以得到自己的、关于Area 1的SPT,并根据SPT计算出自己去往Area 1中各个目的地的路由。 另一方面,D3将DV算法作用于自己的LSDB中的Type-3 LSA,便可计算出自己去往Area 0、Area 2、Area 3中各个目的地的路由。 同时,R3将DV算法作用于自己的LSDB中的Type-4 LSA和Type-5 LSA,便可计算出自己去往整个OSPF网络之外的目的地的路由。
邻居关系和邻接关系
相邻关系
如果路由器A的某个接口和路由器B的某个接口位于同一个二层网络中,我们就说A和B存在“相邻”关系,但“相邻”关系并不等于“邻居”关系,更不等于“邻接”关系。
邻居关系
在OSPF协议中,每台路由器都会通过它的每个接口(接口必须使能ospf功能)以HelloInterval为周期向外发送Hello报文。 如果两台相邻路由器彼此发送给对方Hello报文的内容完全一致,那么这两台相邻路由器就会成为彼此的邻居路由器。 否则,这两台相邻路由器就不能成为彼此的邻居路由器。 (注:两个相邻路由器之间存在相邻关系,但并不一定存在邻居关系。只有彼此发送给对方的Hello报文的内容完全一致,它们之间才存在邻居关系)
邻接关系
对于P2P和P2MP网络
1>如果两台路由器之间的二层网络类型是P2P网络或P2MP网络,则这两台邻居路由器一定会进入彼此之间的LSDB同步过程。 2>当这两台邻居路由器成功完成了LSDB同步之后,他们便建立起了邻接关系。 也就是说,彼此成为了对方的邻接路由器。LSDB同步过程的目的是要保证参与LSDB同步过程的两台邻居路由器最终能够拥有内容完全一致的LSDB。 LSDB同步的过程是通过交互OSPF DD报文、ospf LSR报文、OSPF LSU报文来实现的。
对于Broadcast网络和NBMA网络
1>如果两台邻居路由器之间的二层网络类型是Broadcast网络或NBMA网络,并且其中一台路由器是这个二层网络的DR或BDR,那么这两台邻居路由器一定会进入彼此之间的LSDB同步过程。 2>当这两台邻居路由器成功完成了LSDB同步之后,他们之间便建立起了邻接关系。 如果这两台邻居路由器都不是这个二层网络的DR或BDR,那么,这两台邻居路由器就不会进入彼此之间的LSDB同步过程,也就是说,彼此之间是不可能建立起邻接关系的。
邻居和邻接之间的关系
1>两台路由器之间存在邻接关系,则他们之间一定存在邻居关系。 2>两台路由器之间存在邻居关系,则他们之间可能存在邻接关系,也可能不存在邻接关系。 3>邻接关系的数量总是等于或小于邻居关系的数量。 4>在ospf网络中,LSA的泛红过程只可能在具有邻接关系的路由器之间进行。 5>LSA的泛红过程是通过LSU报文的LSAck报文而实现的。 6>邻接关系的数量越少,网络中ospf协议报文的数量就会越少,ospf协议占用的网络带宽资源以及路由器处理资源就会越少。
DR与BDR
DR与BDR适用的网络环境
在P2P网络或P2MP网络中,完全不存在DR与BDR的概念。DR与BDR的概念只适用于broadcast网络或NBMA,在broadcast网络或NBMA网络中,DR及BDR是通过选举而产生的。
选举DR与BDR的目的
1、让DR来产生针对这个Broadcast网络或NBMA网络的Type-2 LSA。
2、减少这个Broadcast网络或NBMA网络中邻接关系的数量。
说明
在一个Broadcast网络或NBMA网络中,DR会与所有其他的路由器(包括BDR)建立邻接关系,BDR也会与所有其他的路由器(包括DR)建立邻接关系,除此之外,不能再有其他的邻接关系。
DR与BDR之间的关系
如果一个Broadcast网络或NBMA网络中只存在DR而没有BDR,那么当DR出现故障后,就需要重选选举DR,而选举过程是需要耗费一定的时间的。如果网络中既有DR,又有BDR,则当DR出现故障后,BDR就能迅速替代DR的角色。因此,BDR的存在意义就是充当DR的备份,随时准备着迅速替代DR的角色。
DR与BDR的选举规则
DR的选举规则
在一个Broadcast网络或NBMA网络中。路由器之间会进行Hello报文的交互,而每个Hello报文中总是携带了发送该Hello报文的路由器的Router Priority和Router-ID。(Router Priority是一个8bit的二进制数,也可以表示为十进制数,取值范围是从0到255,并且取值越大,优先级越高。) 一个Broadcast网络或NBMA网络中的若干路由器在选举DR时: 1、首先会比较各个路由器的Router Priority的值,Router Priority值最大者被选举为DR。 2、如果遇到Router Priority的值相等的情况,则Router-ID的值最大者将被选举成DR。 (注:若路由器的Router Priority的值为0,则表明该路由器不会参加DR或BDR的选举过程)
BDR的选举规则
BDR的选举规则和过程与DR的选举规则和过程是完全一样的,但需要注意的事,BDR的选举是在选举出DR之后进行的。 1、选举BDR时,Router Priority的值最大者将被选举称为BDR。 2、如果遇到Router Priority的值相等的情况,则Router-ID的值最大者将被选举为BDR。 注:同一个Broadcast网络或NBMA网络中,BDR和DR不能是同一路由器。
DR与BDR的特殊情况