目录

条件匹配

DR/BDR的选举规则:

OSPF协议的数据包

OSPF的头部内容

hello包

DBD包

LSR包

LSU包

LSACK包

OSPF的接口网络类型


 

条件匹配

DR和DRother邻接;DR other和DRother邻居

指定路由器 -- DR -- DR就是和同一个MA网络中其他设备建立邻接关系

备份指定路由器 -- BDR -- BDR也需要和同一个MA网络中其他设备建立邻接关系

DR可能是别的MA网络的DR other;所以实际上DR并不是指一整个路由器,路由器的一个接口对应一个MA网络,DR和BDR是接口的概念

条件匹配 -- 在MA网络中,若所有设备均为邻接关系,将出现重复更新的现象,所以,需要进行DR/BDR的选举,让所有DRother之间维持邻居关系即可。

DR/BDR的选举规则:

        1、先比较优先级,优先级最大的为DR,优先级次大的为BDR【优先级默认1】

        修改优先级配置:

        [r1]int g0/0/0

        [r1-GigabitEthernet0/0/0]ospf dr-priority ?

          INTEGER<0-255>  Router priority value

        【优先级范围从0开始,修改优先级为0代表让这个接口放弃选举】

          2、如果优先级相同,则比较RID,RID大的路由器所对应的接口为DR,次大的为BDR

        【如果发现RID小反而成为DR,原因在下面】

DR/BDR的选举是非抢占模式的 -- 一旦选举成功不会被抢,不会因为后来新加入的设备而重新选举。上面那种情况是RID小的先配置然后成为了DR -- 选举时间和死亡时间相同(最多40s最短几秒就选出来了)之后加入的都是DRother

<r1>reset ospf process  -- 两边都重启一下ospf就重新选举了

OSPF协议的数据包

OSPF协议是一个跨四层封装的协议,三层协议号为 -- 89

OSPF的头部内容

dr优先级默认值与ospf开销值_后端

dr优先级默认值与ospf开销值_学习_02

版本 -- OSPF的版本 -- 在IPV4网络环境下,一般使用OSPFV2,所以,对应的版本字段为2.

类型 -- OSPF数据包的类型


hello - 1

DBD - 2

LSR - 3

LSU - 4

LSACK - 5


RID -- 发送数据包的路由器的RID

区域ID -- 代表数据包从哪个区域发出来的(backbone骨干)

认证类型 --


null -- 不认证

simple -- 明文认证

MD5认证 -- 通过比对摘要值进行认证


-- OSPF在进行认证比对时需要同时比对认证类型和认证数据,都相同则通过认证。

hello包

hello-- 周期发现,建立,保活邻居关系。DR/BDR选举。

dr优先级默认值与ospf开销值_学习_03

dr优先级默认值与ospf开销值_网络协议_04

网络掩码 -- 发出hello包接口配置的IP地址的子网掩码【思科没有】

        在华为设备中,要求邻居设备的子网掩码必须相同,否则将无法正常建立邻居关系。 -- 这个限制只针对以太网 {点到点就不管了}

hello时间以及后面的失效(死亡)时间 -- 在建立邻居关系的时候也必须相同,如果不同则将无法正常建立邻居关系

8位可选项 -- 每一位都代表路由器的某个OSPF特性

特殊区域的标记位,如果邻居间特殊区域标记位不同,则也无法正常建立邻居关系

路由器的优先级 -- 进行DR/BDR选举时使用,代表发出这个数据包的接口的优先级。

指定路由器/备份指定路由器 -- DR/BDR,一旦DR和BDR选举完成,则将会把DR/BDR对应接口的IP地址携带上。在DR和BDR没选出来或不需要选举时,对应字段使用0.0.0.0来填充

邻居关系建立的限制因素

1、网络掩码 -- 只针对以太网

2、hello时间

3、死亡时间

4、特殊区域的标记

5、认证信息

DBD包

DBD -- 数据库描述报文 -- 主从关系选举以及携带数据库摘要信息进行目录共享

        注意 -- 在exstart状态下需要使用DBD包进行主从关系选举,其目的一方面是为主的可以优先开始LSA的交换,另一个目的是为了隐形确认

dr优先级默认值与ospf开销值_网络_05

        灰色的是公共部分

接口的最大传输单元 -- MTU(点到点环境MRU) -- 华为设备默认不进行MTU值的检测,所以一般携带值为0【display ospf peer可看】要开启检测的话:、

ospf MTU enable

开启了检测到邻居双方MTU不一样会卡在exstart状态。

八位可选项 -- 前五位保留都是0后三位很重要

        I -- init -- 该位置1则代表这个数据包是用来进行主从关系选举的,主从关系选举的数据包将不携带LSA头部信息(LSDB摘要信息)置0时说明主从关系已经选好。

        M -- More -- 该位置1,则代表该DBD包后面还有更多的DBD包。【还没发完】置0则代表该数据包为最后一个DBD包

        MS -- Master -- 该位置1,则代表这个DBD包由主发送,置0则代表由从发送

在没选举出来之前,大家都以为自己是主所以在还没有选举的时候MS置1

DD序列号 -- 在DBD包交互过程中,会逐次加1,用来确保DBD报文传输的有序性,同时还可以进行隐形确认,保证DBD包传输的可靠性。

        eg 、主发的序列号是123,从回的序列号也是123证明自己收到了隐形确认由此完成

dr优先级默认值与ospf开销值_网络协议_06

第一个和第二个是为了主从选举

第三个是主分享目录【记得此时序列号会+1】  第四个则是从的隐形确认

【只能是主向从发DBD共享数据库信息,从无法主动向主发】

LSR包

LSR  --  链路状态请求报文

dr优先级默认值与ospf开销值_网络协议_07

链路状态类型、链路状态ID、通告路由器 -- 可以唯一的标定出一条LSA信息,为我们将他们称为LSA的“三元组”

【意思每条LSA信息都由这仨指出 】

LSU包

LSU -- 链路状态更新报文

dr优先级默认值与ospf开销值_学习_08

这还能和上面的对应上3:1的比例能知道请求了几条

LSACK包

LSACK -- 链路状态确认报文

dr优先级默认值与ospf开销值_dr优先级默认值与ospf开销值_09

【头部内容也包括之前的三元组】

【整个过程】

dr优先级默认值与ospf开销值_网络协议_10

OSPF的接口网络类型

-- 实际指的是OSPF接口在不同的网络类型下默认的不同工作方式

【display ospf interface g0/0/0】查看接口ospf的网络类型

华为设备中将环回接口在OSPF中的开销值定义为0,这个值不受外界因素的影响(修改带宽不会影响他的cost值)

   环回接口写的是p2p 实际上工作方式不是

华为设备中将MGRE中的tunnel接口传输速率定为64k所以开销值为100M/64k=1562,开销值搞这么大是为了避免数据走隧道接口,为了不让走隧道接口时浪费封装产生的资源


网络类型

OSPF接口的网络类型(工作方式)

BMA(以太网)

 Broadcast,可以创建多个邻居关系、需要进行DR和BDR的选举,

hello 10s、dead time 40s

P-2-P(PPP,HDLC

,GRE,MGRE)

P2P,只能建立一个邻居关系、不需要进行DRBDR选举,

hello 10s、dead time 40s

环回接口(虚拟接口)

p2p,华为标记为p2p,实际无数据收发,学习32位的主机路由

自定义

p2mp,可以建立多个邻居关系,不需要进行DR和BDR的选举

NBMA(帧中继)

nbma可以创建多个邻居关系,需要进行DR和BDR选举

hello 30s deadtime 120s -- 在NBMA的工作模式下、只能通过

单播邻居手工指定建立


【进接口然后ospf network-type ?】修改接口的网络类型

环回接口默认工作模式下学习32位的主机路由,如果需要还原配置的掩码信息,则可以将网络类型改为Broadcast

在一个网络当中所有的接口工作方式都需要改成一致的。要不然DR选举那会出一堆问题

MGRE环境中除了hub-spke架构外还存在一种全连网状拓扑 -- mesh -- 这种接口所有分支同时也是中心,都可以开启伪广播,则将接口都改为Broadcast后,DR/BDR选举将同时进行

Attempt -- 尝试状态 -- 只有在不能自动建邻的环境下出现,相当于一个过度状态,等待单播