OSPF详细解读
条件匹配
路由器的分裂
指定路由器 --- DR --- 和MA网络中其他所有设备建立邻接关系
备份指定路由器 --- BDR --- 和MA网络中其他所有设备建立邻接关系
在DR和ADR都存在的情况下,一个MA网络中至少需要四个设备才能看到邻居关系。DR和BDR虽然叫做指定路由器(备份指定路由器),但其工作范围在一个MA网络之中,所以,其实质是接口的概念。
条件匹配 --- 在MA网络中,若所有设备均为邻接关系,则将出现大量的重复更新,所以,需要进行DB/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报文头部
版本 --- OSPF协议的版本 --- OSPFV2版本字段为2
类型 --- OSPF数据包的类型
Hello包 --- 1
DBD包 --- 2
LSR包 --- 3
LSU包 --- 4
LSACK包 ---5
报文长度 --- 整个OSPF数据报文的长度,单位字节。
RID --- 标识发出这个数据包的路由器DIR
区域ID --- 发出数据包的接口所在区域的ID
认证类型和认证数据 --- OSPF在进行认证时,需要先从对认证类型,认证类型相同才比对认证数据。
认证类型 --- NULL --- 空认证 --- 0
--- simple ---明文认证 --- 1
--- MD5 --- 比较对摘要值认证 --- 2
Hello包
Hello包 --- 周期发现,建立以及保活邻居关系。 --- DR/BDR选举也使用的是hello包
子网掩码 --- 发出的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.Hello时间
3.Dead时间
4.OSPF特殊区域的标记
5.认证
DBD包
DBD包 --- 数据库描述报文 --- 1.使用末数据DBD包进行主从关系选举
2.使用携带数据的DBD句进行幕信息共享
MTU --- 华为设备默认不开启MTU值得检测功能,可以在接口使用 --- [R1-Serial4/0/0/]ospf mtu-enable 来开启 ---- 如果两边都开MTU值得检测功能,则双方的MTU值必须相同,不同则将停留在extart状态,无法向下行。
I --- init --- 该位置 1 ,则代表这个DBD包是进行主从关系选举的数据包,所以,这样的数据包后面不包含LSA头部内容。
M --- more --- 该位置 1,则代表后面还有其他DBD包要发送
MS --- Master --- 该位置 1,则代表发送这个数据包的设备为主
序列号 --- 在DBD报文收发过程中,会逐次加1,用于确保DBD报文传输的有序性以及可靠性。
LSR包
LSR包 ---链路状态请求报文 --- 基于DBD包请求本地未知LSA信息
链路状态类型,链路状态ID,通告路由器 --- “LSA三元组”--- 通过这三个参数可以为的标识出一条LSA
LSU包
LSU包 --- 链路状态更新报文 --- 真正携带LSA信息的数据包
LSACK包
LSACK包 --- 链路状态确认报文
OSPF的接口网络类
P2P
MA
BAM
NBMA
OSPF的皆苦网络类型 --- 指的是OSPF接口在不同的网络类型下默认的不同工作方式
网络类型 | OSPF接口的网络类型(工作方式) |
BMA(以太网) | Broadcast,可以建立多个邻居关系。需要进行DR和BDR选举,hello10s,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,无法自动建立邻居关系 |
[R1]display ospf interface GigabitEthernet 0/0/0 --- 查看OSPF的接口网络类型
T1 --- 1.544Mbps
E1 --- 2.048Mbps --- 华为设备的串口默认遵循的是E1标准。
华为设备将环回接口的开销值定义为0,不会受外界影响,不受参考宽带变化的影响。
[R1-LoopBack0]ospf network-type broadcast --- 修改接口网络类型
如果想要还原换回接口真实的掩码长度,可以将换回接口的网络类型修改为broadcast。
华为设备的tunnel接口的传输速率定义为64Kbps --- 华为设备这样设计主要目的是为了让隧道接口发出,因为走隧道接口的数据,真实还是从物理接口发出,但是会增加复杂的封装和解封装过程,加大资源的浪费。
在MGRE的环境中,还有一种全连网状拓扑 --- mesh,就是所有边界设备即当中心,也做分支,这样搭建出来的MGRE环境是一种类似BMA的网络环境。
[R1-ospf-1]peer 12.0.0.2 --- 单播邻居,在NBMA环境中可以手工指定邻居关系
Attempt --- 尝试状态 --- 过度状态 --- 本端手工指定邻居后将从
down到达尝试状态,之后,等对端手工指定后将进入下一个状态