OSPF协议
条件匹配:在MA网络中,若所有设备均为邻接关系,则将大量出现重复更新,所以需要DR/BDR的选举,所有非DR/BDR(DROther)之间仅维持邻居关系即可。
DR(指定路由器):和MA网络中其他所有设备建立邻接关系
BDR(备份指定路由器):也和MA网络中其他所有设备建立邻接关系
DR和BDR说的是路由器,但实质是接口的概念。在DR和BDR都存在的情况下,一个MA网络中至少需要四台设备才能看到邻居关系
DR/BDR的选举
1、比较接口的优先级,其中优先级最大的DR,次大的为BDR。优先级的初始默认值为1,可以进行修改。
[r1-GigabitEthernet0/0/0]ospf dr-priority ?
INTEGR<0-255> Router priority value
如果将一个接口的优先级修改为0,则代表该接口放弃DR和BDR的选举
2、当优先级相同时,则比较RID。RID大的路由器对应的接口为DR,次大的为BDR。—若不是同时选举,则可能不满足RID大的为DR,这时可以重启OSPF进程,重新进行选举(<r1>reset ospf 1 process)
DR和BDR的选举是非抢占模式的选举,即一旦选定,将不能改变。选举时间等同于死亡时间(最长时间不超过死亡时间)
OSPF的数据包
ospf协议的协议号是89
ospf的报文头部
①版本:指的是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表示
1、hello包
周期发现,建立以及保活邻居关系。DR和BDR选举时使用hello包
①子网掩码:发出Hello包接口的IP地址对应的掩码信息。
华为设备设定邻居建立,双方要求子网掩码必须相同,否则将无法建立邻居关系(P2P网络中不生效)
②hello时间和dead时间:邻居双方hello时间和死亡时间必须相同,否则将导致邻居关系建立失败
③可选项:8个标记位,每一个标记位置1,则代表其符合ospf的某种特性。
其中存在ospf特殊区域的标记位,邻居双方如果特殊区域的标记位不相同,则无法正常建立邻居关系
④路由器的优先级:发出该数据包的接口其DR/BDR选举时的优先级
⑤指定路由器恶核备份指定路由器:携带的是DR/BDR接口的IP地址。在DR/BDR没有选举出来之前,使用0.0.0.0来进行填充
⑥邻居:本地已知邻居的RID
Hello包中限制邻居关系建立的参数:
①子网掩码(只针对MA网络) ②hello时间和死亡时间 ③ospf特殊区域的标记位 ④认证类型和认证数据
2、DBD包(数据库描述报文)
任务:使用未携带数据的DBD包进行主从关系的选举;使用携带数据的DBD包进行目录信息共享
①接口最大数据传输单元(MTU)
华为设备默认不开启MTU值得检测功能。可以在接口使用ospf mtu-enable来开启
如果两边都开启MTU值的检测功能,则双方的MTU值必须相同,不同则将停留在而exstart(预启动)状态,无法向下进行
②可选项
a、I(init):该位置1,则代表这个DBD包是进行主从关系选举的数据包。所以这样的数据包后面不包含LSA头部内容。(在主从关系选举出来之前,都认为自己是主)。置0,则表示主从关系已经选举完成,该DBD包携带摘要信息。、
b、M(more):该位置1,则代表后面还有其他DBD包要送。置0,则表示后面没有DBD包要发送,该其他包工作
c、MS(Master):该位置1,则代表发送这个数据包的设备为主。置0,这该设备为从
③序列号:在DBD报文收发过程中,会逐次加1,用于确保DBD报文传输的有序性以及可靠性
*从设备最后会发送一个可选项都为0,且没有摘要值的DBD包给主设备,用于确认它收到主设备发送的最后一个DBD包
3、LSR包(链路状态请求报文)
基于DBD包请求本地未知LSA信息
链路状态类型、链路状态ID和通告路由器被称为“LSA三元组”,通过这三个参数可以唯一的标识一条LSA信息
4、LSU包(链路状态更新报文)
真正携带LSA信息的数据包
5、LSACK包(链路状态确认报文)
OSPF的接口网络类型
指的是ospf接口在不同的网络类型下默认的不同工作方式
网络类型 | OSPF接口的网络类型(工作方式) | |
---|---|---|
BMA(以太网) | Broadcast,可以建立多个邻居关系。需要进行DR和BDR选举,hello time 10s,dead time 40 s | |
P2P(PPP、HDLC) | P2P,只能建立一个邻居关系,不需要进行DR和BDR选举,hello time 10s,dead time 40 s | |
环回接口(虚拟接口) | P2P,华为设备定义为P2P类型,但实际上无数据收发。环回接口默认学习32位主机路由 | |
NBMA(帧中继) | NBMA,可以建立多个邻居关系,需要进行DR和BDR选举,hello time 30s,dead time 120s,无法自动建立邻居关系 | |
[r2]display ospf interface GigabitEthernet 0/0/0—-查看OSPF的接口网络信息
华为设备将环回接口的开销值定义为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到达尝试状态,之后,等对端手工指定后将进入下一个状态