理论篇-OSPF路由协议(关于DR和BDR、OSPF数据包类型、7种状态和6种LSA分析)

  • Post author:
  • Post category:其他




一、OSPF的基本概念和工作过程



1.1 OSPF路由协议概述



1.1.1内部网关协议和外部网关协议

●自治系统(AS)

多个路由跑相同路由进程协议的区域 成为AS区域系统。

●内部网关协议(IGP)

在区域内部跑的进程协议,如:RIP,OSPF,ISIS等

●外部网关协议(EGP)

在区域外跑的进程协议,如:BGP等

在这里插入图片描述



1.1.2 OSPF是链路状态路由协议

在这里插入图片描述



1.2 OSPF的工作过程

●邻居列表

如图,A通过建立邻接关系,学习到所有的链路状态信息,即所有的网段信息。

●链路状态数据库

A将学习到的链路状态信息存储在自己的链路状态数据库中。

●路由表

A的链路状态数据库通过 Dijkstra算法 算出A到达每一个地点的最短路径,形成最短路径树。最终生成路由表。

在这里插入图片描述



1.3 OSPF的基本概念



1.3.1 OSPF区域

●为了适应大型的网络,OSPF在AS内划分多个区域

●每个OSPF路由器只维护所在区域的完整链路状态信息

在这里插入图片描述

●区域ID

•区域ID可以表示成一个十进制的数字

•也可以表示成一个IP

●骨干区域Area 0

•负责区域间路由信息传播

●非骨干区域



1.3.2 Router ID

•OSPF区域内唯一标识路由器的IP地址

●Router ID选取规则

•选取路由器looback接口上数值最高的IP地址

•如果没有looback接口,在物理端口中选取IP地址最高的

•也可以使用router-id命令指定Router ID

●Router-ID是网络上唯一用于标识的一台路由器,线网用路由器的环回口来配置Router-ID,这边的地址是32位的公网IP地址,如果没有标,通过物理口

来确认。



1.3.3 DR和BDR及选举方法



DR和BDR简介

●DR 、BDR 和其他路由中

• DR: 区域当中的主路由,有且仅有一个

• BDR:区域当中的备份路由,有且仅有一个

• 除了DR 和 BDR 都是其他路由

●其他路由器只和 DR 和 BDR 形成邻接关系。主路由负责通告信息,备份路由负责准备顶替 DR

●其他路由器发送信息只能到达DR 和BDR(一个组播) ,DR再发送通告信息(第二个组播)。其中存在两个组播信息。

●DR 和 BDR 负责监控其他路由发来的信息。

在这里插入图片描述



DR 和 BDR 的选举方法

●自动选举DR和BDR

•网段上Router ID最大的路由器被选举为DR,第二大将被选举为BDR

●手工选择DR和BDR

•优先级范围是0~255,数值越大,优先级越高,默认是1

•如果优先级相同,则需要比较Router ID

•如果路由器的优先级设置为0,它将不参与DR和BDR的选举



DR 和 BDR 的选举原则

●选举DR、BDR是为在广播多路访问中减少连接关系的建立,优化性能

●默认Router-ID最大是DR,第二大是BDR,其他是Drother

●DR一旦被选定就不会被抢占,

●Drother会通过224.0.0.6向DR和BDR通告网络状态信息,DR会通过224.0.0.5向所有邻居通告信息



DR和BDR的选举过程

●路由器的优先级可以影响一个选举过程,但是它不能强制更换已经存在的DR或BDR路由器。

在这里插入图片描述



1.3.4 OSPF组播地址

●224.0.0.5(DR和BDR发出的)

●224.0.0.6 (其他路由发出的)



1.3.5 OSPF的度量值为COST

●COST=10^8/BW BW(带宽)

COST 数制越小越好,说明带宽越高

COST越低,带宽越高,路径越短。

●最短路径是基于接口指定的代价(cost)计算的

接口类型 代价(108/BW)
Fast Ethernet 1
Etherent 10
56K 1785



二、OSPF数据包类型



2.1 OSPF数据包

承载在IP数据包内,使用协议号89



2.2 OSPF的包类型

OSPF的包类型 描述
Hello包 用于发现和维持邻居关系,选举DR和BDR
数据库描述包(DBD,DataBase Description) 用于向邻居发送摘要信息以同步链路状态数据库
链路状态请求包(LSR,Link-State Request) 在路由器收到包含信息的DBD后发送,用于请求更详细的信息
链路状态更新包(LSU,Link-State Update) 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含几个LSA
链路状态确认包(LSAck,Link-State Acknowledgment) 确认已经收到LSU,每个LSA需要被分别确认



2.3 名词解释

1、传送的LSA(link status advertisement),链路状态通告,包括拓扑信息。

具体包括:网段的前缀、掩码、连接的路由器的哪些接口、直连哪些路由器。

2、LSDB,他是LSA的的集合,链路状态数据库,对此进行spf算法,得到spf 树(基于cost代价)再得出最优的路由,并将其加入到路由表中。

3、既支持vlsm 可变掩码、又支持 cidr(无类别域间选路)

4、封装

layer2| ip |ospf| fcs

直接封装到IP报头内 上层协议号为89 eigrp为88



2.4 详解

1、hello发送周期分为10s和30s两种,hello hold的时间为发送时间*4即40s或120s

2、dbd数据库描述报文,包含lsa的报头,即告诉邻居路由器,本地的lsdb中包含哪些LSA信息,同步lsdb过程中如果没有此描述可能会发送重复的LSA ,造成资源的浪费导致低效LSA中除了拓扑。或路由信息的载荷外还有LSA的报头也叫LSA的摘要,报头中包含此LSA的标识,从而避免发送重复的LSA信息

3、路由器请求邻居有但是本地没有的LSA,以保证lsdb一致,根据交互的dbd,将没有的LSA的报头放在LSAR中,表明需要的LSA

4、根据上面的一条,将邻居请求的LSA信息,放在LSU中由本地路由器发送给邻居,LSU包含完整的LSA信息

5、LSACK为确认机制,由OSPF定义的确认机制

,ospf定义了两类的确认,一种为显式的确认,另一类为隐式的确认(基于序列号的确认机制),

前者收到一个报文,针对此报文,生成一个单独的确认报文(只有ospf支持确认),后者收到一个报文,使用相同的报文再发送回来,序列号设置为一致,既传输了信息,又做了确认



三、OSPF协议7种状态分析



3.1 OSPF邻接关系的建立(7个状态)

1、Down状态:只知道自己的ID,不知道其他任何路由器。

2、Init状态(初始化状态):Down状态的端口接收到Hello信息后,自动激活init状态,此时,只能接收Hello包,不能发送Hello包。

3、2-Way状态:route系统加载完成后从Init状态进入2-Way状态。2-Way状态中既可以接收Hello包也可以发送Hello包(选举出两个最大的Router ID,但是并不会确定主从路由身份)。

4、ExStart状态(准启动状态):确定主从路由身份。即确定DR和BDR身份。

5、Exchange状态:交换DBD信息库,同时接收到后也会有LSACK包。

6、Loading状态:最繁忙状态,包的种类最多,有LSR,LSU(包含多个LSA),LSACK,形成的路由表。

7、Full 状态:稳定状态开始转发数据包。



3.2 OSPF的网络类型

●OSPF将网络划分为四种类型:

1、点到点网络

2、广播多路访问网络

3、非广播多路访问网络

4、点到多点网络

区别:有点选DR、有的不选DR



3.3 OSPF的应用环境

1、网络规模

2、网络拓扑

3、其他特殊要求

4、路由器自身要求



3.4 OSPF的特点

1、可适应大网络规模

2、路由变化收敛速度快(RIP协议收敛需要30S)

3、无路由环路

4、支持变长子网划分

5、支持区域划分

6、支持以组播地址发送协议报



四、OSPF协议6种LSA分析

类别 分析
1类 所有OSPF路由器都会产生,只在区域内传播
2类 DR产生,只在区域内传播
3类 ABR产生,在相邻的两个区域相互传播
4类 ABR产生,向和ASBR不在同一区域的其他区域传播,用于表示ASBR
5类 ASBR产生,向整个OSPF协议区传播,用于描述另一个协议域的路由信息
7类 NSSA区域中的ASBR产生,用于向NSSA区域通告外部路由



版权声明:本文为ycycyyc_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。