目录
3.OSPF 中既是 ABR 又是 ASBR 在生成什么类型的 LSA?
10.ospf 卡在 init 状态机,这样的情况是怎么引发的?
本篇文章承接网络100问之路由技术(壹)
1.OSPF 中承载完整的链路状态的包?
OSPF中一共有五种包,分别是Hello、DBD、LSR、LSU、Lsack,其中LSU包是携带了真正的LSA信息(链路状态通告),用于答复对端的LSR
2.OSPF 中 DBD 报文是如何进行确认的?
利用LSACK来进行DBD与LSU的确认
3.OSPF 中既是 ABR 又是 ASBR 在生成什么类型的 LSA?
7类的LSA
nssa(非完全末梢区域):该区域拒绝其他区域的ASBR产生的4/5LSA;本地区域内ASBR产生的5类LSA,以7类在本区域传播,从本区域进入骨干区域时由ABR(新的ASBR)转换为5类;同时自动产生一条7类的缺省指向骨干区域
4.OSPF 中 都有哪些LSA 类型 ?
LSA类型
1类LSA
产生原因:需要知道同一个区域内的拓扑信息
功能:在本地设备所在的区域内传递路由和拓扑信息
传播范围:在本地设备所在区域内,中止与ABR(连接不同区域的边界路由器,即产生三类LSA信息的路由器)
特点:
- 在MA网络中,1类LSA仅仅包含MA的接口以及metric值,掩码和拓扑信息在2类出现
- Link ID = ADV router = 产生一类LSA的路由器的RID
2类LSA
产生原因:需要知道MA网络的设备数量和连接情况,由MA网络的DR设备产生
功能:描述MA网络的网络掩码情况
传播范围:在本区域内传播,终止于ABR
特点:
- Link-id:MA网络的DR接口地址 ADV-router:DR接口所属路由器的router-id
- 描述了MA网络的掩码与拓扑信息,即MA网络连接了哪些路由器
3类LSA
产生原因:区域间传递路由
传播范围:在区域间传递,默认仅仅在某个区域间传递,进入其他区域必须由新的ABR重新产生
特点:
1.Link-id:路由网络号 ADV-router:本区域的ABR路由器的RID,穿越不同区域发生改变
5类LSA
产生原因:将外部的路由引入OSPF域是中
传播范围:整个OSPF域
特点:
Link-id:外部路由的网络号 ADV-router:ASBR的RID
4类LSA
功能:用于宣告ASBR的位置
传播范围:整个OSPF域
特点:
Linnk-id:ASBR的RID
ADV-router:ASBR所在区域的ABR的RID
NSSA区域
产生:
为了优化网络的负载与更新LSA的压力,可以采用汇总或特殊区域的办法来进行优化
特殊区域:
成为条件
1.不能是骨干区域
2.不能存在的虚链路(不规则区域,即不符合OSPF的区域划分原则)
3.存在ASBR与否,取决于需要成为什么区域
分类:
1.不存在ASBR
stub(末梢区域):拒绝4/5类的LSA;生成一条3类的缺省路由指向骨干区域
totally stub(完全末梢区域):在末梢区域的基础上,进一步拒绝3的lsa,仅保留一条3类的缺省;先将该区域配置为末梢区域,然后仅在ABR上定义完全即可
2.存在ASBR
nssa(非完全末梢区域):该区域拒绝其他区域的ASBR产生的4/5LSA;本地区域内ASBR产生的5类LSA,以7类在本区域传播,从本区域进入骨干区域时由ABR(新的ASBR)转换为5类;同时自动产生一条7类的缺省指向骨干区域
totally nssa(完全的非完全末梢区域):在NSSA的基础上,进一步拒绝3的LSA;生成一条3类缺省指向骨干区域;先将该区域配置为NSSA区域,然后仅在ABR上定义完全即可
5.LSA5 外部路由可以在 ABR 上做汇总吗?
5类LSA的汇总叫做域外路由汇总,是在将外部路由引入的ASBR上做的,即不能在ABR上做
6.OSPF 有哪几种协议包?作用分别是什么?
协议包
OSPF一共有五种数据包
Hello包:发现、建立、维持、保活(周期保活)邻居关系;存在全网唯一的RID
DBD包:本地数据库的目录。LSDB的目录(所有LSA的集合)
LSR包:基于DBD包中的位置信息进行查询
LSU包:携带了真正的LSA信息(链路状态通告),用于答复对端的LSR
LSACK包:确认DBD和LSU报文
7.OSPF 区域划分的好处?
好处
区域间传递路由,区域内传递拓扑,而不用将路由与拓扑都进行更新造成路由器的负载压力
区域划分规则
星型结构:所有的非骨干区域必须连接到的骨干区域,否则不能进行区域间路由共享
ABR—区域边界路由器:合法的ABR必须同时工作在骨干区域
8.OSPF 的 1 类和 2 类外部路由之间的区别?
区别
一类是同一区域的拓扑,并不知道设备的连接情况与网络掩码,二类LSA就是用于描述设备的连接情况与网络掩码
9.在 OSPF 中为什么第三类 LSA 传播超过一个区域?路由信息就会被修改呢?他不是使用 SPF 算法么?如果这样那么他跟 RIP 的 DV 算法有啥区别?OSPF 没有形成 FULL 状态的原因?
为什么被修改
三类LSA是用于在OSPF的不同区域间传递路由信息的,三类LSA是由ABR产生的,在穿越不同的区域时,必须由新的ABR重新产生路由信息,试想,如果不由新的ABR重新产生的话,那么3区域将不认识0区域的a1路由器,因为3区域只认识0区域的a3路由器,所以a1区域的路由传递给a3区域时,其路由是由R3产生的,即是由R3这个ABR产生的,如下图
区别
要理清链路状态协议与距离矢量型协议的区别,即OSPF的SPF算法与RIP的贝尔曼—福特的区别的话,首先要明确二者的工作原理与特征
链路状态路由协议出现的目的是为了克服距离矢量路由协议的缺点。链路状态路由协议具有如下特征
链路状态路由器对LSDB应用Dijkstra算法(即SPF算法)以建立SPF树。每台路由器都从其SPF树中选择最佳路径,并将其加入到路由表中。设备都更新其数据库,然后更新路由表以反映新的拓扑。
可以将LSDB视为一个城市的地图,城市中的每幅地图都相同,就像同一个区域内所有路由器的LSDB都相同一样。我们在城市中各个地点,各幅地图之间唯一的差别就是“当前位置”。根据当前位置,我们可以确定前往每个地点的最佳路线;前往特定地点的最佳路线随着我们当前所处的位置而异。链路状态路由器的功能与此类似,它们从自己的角度出发,使用LSDB计算前往区域内每个网络的最佳路径。
优点:
运行链路状态路由协议的路由器从网络或网络的指定区域内的所有路由器那里收集路由信息,然后每台路由器都使用Dijkatar(SPF)算法分别计算其前往网络中各个目的地的最佳路径。来自某台路由器的错误信息导致混乱的可能性较低,因为每台路由器都有其对网络的认识。
为确保网络中所有的路由器都作出一致的路由选择决策,每台路由器都必须记录下述信息。
OSPF记录信息
1)直接相连的邻接路由器:失去与邻接路由器的关系后,路由器将在几秒钟之内将该邻居提供的所有路径作废,并重新计算路径。在OSPF中,有关邻居的信息存储在邻居表中,这个表也被称为邻接关系数据库。
2)网络或区域内的其他路由器及其连接的网路:路由器通过LSA来获得其他路由器和网络,LSA被扩散到整个网络,它存储在拓扑表或数据库(即LSDB)中。
3)前往每个目的地的最佳路径:每台路由器都使用Dijkstra(SPF)算法独立地计算前往网络中心每个目的地的最佳路径。所有路径都存储在LSDB中。最佳路径被加入到路由表(也称为转发数据库)中。路由器收到分组后,将根据路由表中的信息对其进行转发。
总结:
为保存这些表,需要占用内存资源,这是链路状态协议的一个缺点。然而,在同一个区域内,所有OSPF路由器的拓扑表(LSDB)都相同,其中包含有关区域中所有路由器和链路的完整信息,因此每台路由器都能根据开销独立地选择前往区域中每个网络的无环路高效路径。还克服了距离矢量路由协议“根据流来选择路由”的缺点。
运行距离矢量路由协议的路由器依赖于邻居的路由抉择。路由器并不完全知道网络拓扑;而运行链路状态路由协议的每台路由器都完全了解网络拓扑,能够根据准确的网络拓扑信息独立地做出决策。
没有形成FULL状态的原因
OSPF一共有7种状态
Down:本地一旦发出hello包,进入下一状态 ;
Init(初始化):本地接收到的hello包中若存在本地的RID,进入下一状态;
2way(双向通信):邻居关系建立标志,条件匹配:点到点网络直接进入下一状态;MA网络将进行DR/BDR选举(40S),非DR/BDR间不能进入下一状态;
Exstart(预启动):使用类hello 的DBD包进行主从关系选举,RID数值大为主,主优先进入下一状态;
Exchange(准交换):使用真正的DBD进行数据库目录的共享,需要ACK;
Loading(加载):使用LSR/LSU/LSack来获取未知的LSA信息;
Full(转发):邻接关系建立的标志;
卡在各个状态的原因
卡在down状态:OSPF没有运行;
卡在init状态:没有收到对方的hello包;
卡在2-way状态:MA网络没法选举,即DR/BDR的选举没有正常进行
卡在exstart状态:MTU不匹配;
卡在exchange状态:包交互有问题,发出DBD后没有收到ACK;
卡在loading状态:LSA加载不完全、包交互有问题;
具体:
建立邻居关系的条件
1.router-ID必须不同 唯一性
2.area-ID必须一致 区域统一
3.认证类型和认证型数据都一致
4.hello时间、dead时间都一致
5.特殊区域标识必须一致
6.若在MA网络中,network mask必须一致;点对点可以不同
7.必须同时使用单播或组播
华为设备中hello包的网络掩码必须相同
10.ospf 卡在 init 状态机,这样的情况是怎么引发的?
没有收到含有自己的RID的Hello包
如果帮助,请持续关注,持续更新中...
参考资料: