条件匹配
指定路由器 --- DR --- 和MA网络中其他所有设备建立邻接关系备份指定路由器 --- BDR --- 和MA网络中其他所有设备建立邻接关系
在DR和BDR都存在的情况下,一个MA网络中至少需要四台设备才能看到邻居关系。
DR和BDR虽然叫做指定路由器(备份指定路由器),但其工作范围在一个MA网络之中,所以,其实质是接口的概念。
条件匹配 --- 在MA网络中,若所有设备均为邻接关系,则将出现大量的重复更新,所以,需要进行DR/BDR的选举,所有非DR/BDR(DROther)之间仅维持邻居关系即可。
DR/BDR的选举 --- 1,比较接口的优先级,优先级最大的为DR,次大的为BDR。
优先级的初始默认值为1。
[r1-GigabitEthernet0/0/0]ospf dr-priority ?
INTEGER<0-255> Router priority value ---- 如果将一个接口的优先级修改为0,则代表该接口放弃DR/BDR的选举。
2,当优先级相同时,则比较RID。RID大的路由器对应的接口为DR,次大的为BDR。
DR/BDR的选举 --- 非抢占模式的选举 --- 选举时间等同于死亡时间
<r1>reset ospf 1 process --- 重启OSPF进程
OSPF的数据包
OSPF的协议号 --- 89
ospf报文头部
![](https://i-blog.csdnimg.cn/blog_migrate/1ff711d1e3e92f3fd4befc17b6bb825e.png)
版本 ---- OSPF协议的版本 ---- OSPFv2版本字段为2。
类型 ---- OSPF数据包的类型
Hello --- 1
DBD --- 2
LSR --- 3
LSU --- 4
LSACK --- 5
报文长度 --- 整个OSPF数据报文的长度,单位字节。
RID --- 表示发出这个数据包的路由器的RID
区域ID --- 发出数据包的接口所在的区域的ID
认证类型和认证数据 --- OSPF在进行认证时,需要先比对认证类型,认证类型相同才比对认证数据。
认证类型 --- null --- 空认证 --- 0
--- simple --- 明文认证 --- 1
--- MD5 --- 比对摘要值认证 --- 2
hello包 --- 周期发现,建立以及保活邻居关系。--- DR/BDR选举也使用的是hello包
![](https://i-blog.csdnimg.cn/blog_migrate/7810635f856083e0e5ecb218d18199d1.png)
子网掩码
--- 发出hello包接口的ip地址对应的掩码信息 ---- 华为设备设定邻居建立双方要求子网掩码必须相同,否则将无法建立邻居关系(对P2P网络不生效)
hello时间和死亡时间
--- 邻居双方hello时间和死亡时间必须相同,否则将导致邻居关系建立失败。
可选项 --- 8位,8个标记位,每一个标记位置1,则代表其符合OSPF的某种特性。
其中存在
ospf特殊区域的标记位
,邻居双方如果特殊区域的标记位不同,则将无法正常建立邻居关系。
路由器的优先级 --- 发出该数据包的接口其DR/BDR选举时的优先级。
指定路由器和备份指定路由 --- 携带的是DR/BDR接口的IP地址。---- 在DR/BDR没有选出来之前,使用0.0.0.0来进行填充。
邻居 --- 本地已知的邻居的RID。
hello包中限制邻居关系建立的参数
1,子网掩码
2,hell时间
3,dead时间
4,ospf特殊区域的标记
5,认证
DBD包 --- 数据库描述报文 --- 1,使用未数据的DBD包进行主从关系选举;
2,使用携带数据的DBD包进行目录信息共享。
![](https://i-blog.csdnimg.cn/blog_migrate/b697698dc175a9bbf659bff5b261821c.png)
MTU --- 华为设备默认不开启MTU值的检测功能,可以在接口使用---[r1-Serial4/0/0]ospf mtu-enable 来开启 ---- 如果两边都开启MTU值的检测功能,则双方的MTU值必须相同,不同则将停留在exstart状态,无法向下进行。
I --- init --- 该位置1,则代表这个DBD包是进行主从关系选举的数据包,所以,这样的数据包后面不包含LSA头部内容。 --- 在主从关系没有选出来之前,所有设备都认为自己是主
M --- more --- 该位置1,则代表后面还有其他DBD包要发送。
MS --- Master --- 该位置1,则代表发送这个数据包的设备为主。
序列号 --- 在DBD报文收发过程中,会逐次加1,用于确保DBD报文传输的有序性以及可靠性。
LSR包 --- 链路状态请求报文 --- 基于DBD包请求本地未知LSA信息
![](https://i-blog.csdnimg.cn/blog_migrate/1a3e0314180e18eb35df0f858f5c964b.png)
链路状态类型,链路状态ID,通告路由器 ---- “LSA三元组” --- 通过着三个参数可以唯一的标识出一条LSA。
LSU包 --- 链路状态更新报文 ---- 真正携带LSA信息的数据包
![](https://i-blog.csdnimg.cn/blog_migrate/f795b4d6482db65ba47d3836477efd79.png)
LSACK包 --- 链路状态确认报文
OSPF的接口网络类型
P2P
MA
BMA
NBMA
OSPF的接口网络类型 --- 指的是ospf接口在不同的网络类型下默认的
不同工作方式。
网络类型 ——ospf接口的网络类型(工作方式)
BMA(以太网) ——Broadcast,可以建立多个邻居关系。需要进行DR和BDR选举,hello 10S,dead time 40S
P2P(PPP,HDLC)——P2P,只能建立一个邻居关系,不需要进行DR和BDR选举,hello 10S,dead time 40S
环回接口(虚拟接口)——P2P,华为设备定义为P2P类型,但实际上无数据收发。环回接口默认学习32位主机路由
P2MP,可以建立多个邻居关系,不需要进行DR和BDR的选举,hello 30S,dead time 120S。会学习邻居接口的主机路由。
NBMA(帧中继)——NBMA,可以建立多个邻居关系,需要进行DR和BDR选举,hello 30S,dead time 120S,无法自动建立邻居关系
[r2]display ospf interface GigabitEthernet 0/0/0 --- 查看OSPF的接口网络类型
T1 --- 1.544Mbps
E1 --- 2.048Mbps ---- 华为设备的串口默认遵循的是E1标准。
华为设备将环回接口的开销值定义为0,不会受外界影响,不受参考带宽变化的影响。
[r2-LoopBack0]ospf network-type broadcast --- 修改接口网络类型
如果想要还原环回接口真实的掩码长度,可以将环回接口的网络类型修改为broadcast。
华为设备将tunnel接口的传输速率定义为64Kbps ---- 华为设备这样设计主要目的是为了让隧道接口的开销值变大,使数据尽可能的避免从隧道接口发出,因为走隧道接口的数据,真实还是从物理接口发出,但是会增加复杂的封装和解封装的过程,加大资源的浪费。
在MGRE的环境中,还有一种全连网状拓扑 --- mesh,就是所有边界设备即当中心,也做分支,这样搭建出来的MGRE环境是一种类似BMA的网络环境。
[r1-ospf-1]peer 12.0.0.2 --- 单播邻居,在NBMA环境下可以手工指定邻居关系。
Attempt --- 尝试状态 --- 过渡状态 --- 本端手工指定邻居后将从down到达尝试状态,之后,等对端手工指定后将进入下一个状态。