条件匹配
指定路由器 --- DR --- DR和MA网络中其他设备之间应该建立邻接关系
备份指定路由器 --- BDR --- BDR也应该和MA网络中其他设备之间建立邻接关系,这样
BDR才能在DR出现故障时第一时间顶替DR的位置,起到备份的效果。
一个MA网络中,在DR和BDR都存在的情况下,至少需要几台设备才能看到邻居关系。--- 4台,只有DR-Other之间会建立邻居关系。
DR/BDR --- 虽然名字叫做指定路由器/备份指定路由器,但一定注意,他其实是一个接
口的概念。因为DR/BDR都是在一个MA网络中选取的。
条件匹配:在MA网络中,若所有设备均保持邻接关系,将出现大量的重复更新;所以,需要进行DR/BDR的选举;所有非DR/BDR的设备(DR-Other)之间仅保持邻居关系即可。
DR/BDR的选举规则:
1,先比较优先级,优先级最大的为DR,次大的为BDR
优先级默认为1。
[r1-GigabitEthernet0/0/0]ospf dr-priority ? --- 修改接口优先级,为了方便人为干涉DR/BDR的选举
INTEGER<0-255> Router priority value
如果将一个接口的优先级修改为0,则代表该接口放弃DR/BDR的选举。
2,当优先级相同时,则比较RID。RID大的路由器对应接口为DR,次大的为BDR。 DR/BDR的选举是非抢占模式的,一旦DR和BDR选定,则将无法被替换。选举时间为死亡时间。(只是时间相同,并不是由同一个计时器计时)(这个时间仅是选举的一个上限时间,选举可以在短时间内完成,只要完成后则将不能抢占)
OSPF的数据包
OSPF协议是跨层封装的协议,跨四层封装,直接将应用层的数据封装在网络层协议后
面。IP协议包中协议号字段对应数值为 --- 89
OSPF的头部信息
版本 --- 指的是OSPF版本,在IPV4中一般使用OSPFV2,所以,版本号一般为2
类型 --- 指的是OSPF数据包类型
Hello --- 1
DBD --- 2
LSR --- 3
LSU --- 4
LSACK --- 5
RID --- 谁发的这个数据包,就写谁的RID
AREA ID --- 数据包是从哪个区域发出的,就写哪个区域的ID
OSPF的认证类型 --- null(不认证) ---- 0
simple(明文认证) ----- 1
MD5(通过比对摘要值的方式进行认证) ---- 2
--- OSPF在进行认证时,需要比较两部分数据,一个是认证类型,一个认证数据。
hello包 --- 周期发现,建立和保活邻居关系,包括DR/BDR选举
网络掩码 --- 接口一旦激活后开始发送hello报文,这个接口本身配置的IP地址的掩码信息
华为设备要求,邻居之间hello包中所携带的子网掩码必须相同,不同则无法建立邻.
居关系。(只针对以太网接口进行检测,对点到点网络不做限制)
hello时间和死亡时间 --- 邻居之间所携带的Hello时间和死亡时间必须相同,不同则无
法建立邻居关系。
8位的可选项 --- 每一个比特都表示路由器所携带的某种OSPF特性
--- 8位特殊标记中包含OSPF特殊区域的标记,这个特殊区域的标记在邻居关系
建立中也需要检测,如果不同,则将无法建立邻居关系。
路由器的优先级 --- 指的是发出接口DR/BDR选举时的优先级
指定路由器/备份指定路由器 --- 在DR/BDR选举完成后,将会把DR/BDR的IP信息携带在该字段。在DR/BDR未选出之前,将以0.0.0.0来填充。
邻居 --- 指的是本地已知的邻居的RID,这个是建立邻居关系的重要条件。
HELLO包中限制邻居关系建立的条件:
1,网络掩码(只针对以太网接口)
2,hello时间
3,dead time
4,OSPF特殊区域标记
5,认证
DBD包 ---- 数据库描述报文 --- 可以主从关系选举(未携带数据的DBD包),携带LSDB(链路状态数据库)摘要信息 。
注意 --- 主从关系选举的作用:1,为主的可以优先进行LSA信息的交换;2,为主的可
以主导DBD包的隐性确认 。
MTU --- 最大传输单元 --- 这个华为设备默认不检测,一般携带值0。可以在接口上开启检测功能,开启后,数据包中将携带真实的MTU值。在exstart状态中交互DBD包,如果邻居的MTU值不一致,则将会停留在exstart状态。
8位的可选项 --- 每一个比特都表示路由器所携带的某种OSPF特性
I --- INIT --- 该位置1,则代表此时的DBD包是进行主从关系选举的DBD包,后面讲不携带LSDB的摘要信息
M --- More --- 该位置1,则代表后续还有更多的DBD包,该位置0,则代表这个DBD包是最后一个DBD包。
MS --- Master --- 该位置1,则代表发送DBD包设备为主,置0则代表发送该数据包的设备为从。
(在主从关系没有选举出来之前,邻居双方都会将自己的MS位置1,认为自己是主;之 后,主从关系选举结束后,只有主会将MS置1,从置0)
DBD的序列号 --- 在DBD报文交互过程中,会逐次加1,用于确保BDB报文传输的有序性和
可靠性。
DBD包的确认机制是通过序列号来实现的隐性确认。而通过LSACK数据包实现确认的方法称为显性确认。
---- 隐性确认:为主的设备发送一个DBD包,中包含一个序列号,从收到这个数据包后将使用相同的序号回复DBD包,已起到确认的作用。
LSA头部信息 ---- 并不是完整的LSA信息,相当于LSA信息的一个摘要。
LSR包 --- 链路状态请求报文 --- 基于DBD包中的摘要信息,和本地LSDB进行比对,之
后请求未知的LSA信息。
链路状态类型,链路状态ID,通过路由器 ---- LSA的三元组 --- 可以唯一的标识出一条LSA
LSU --- 链路状态更新报文 ---- 真正携带LSA信息的数据包
LSAck --- 链路状态确认报文 --- 确认包
通过LSA头部内容进行确认
OSPF的接口网络
P2P
MA
BMA
NBMA
OSPF的接口网络类型 --- 实际上指OSPF接口在不同网络环境下默认的不同工作方式。
网络类型 | OSPF接口的网络类型(工作方式) |
BMA(以太网) | Broadcast,需要进行DR/BDR选举,hello 10S,dead time 40S |
P2P(PPP,HDLC,MGRE) | 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接口网络类型
华为设备的串口遵循的是E1标准,最大传输速率为2.048Mbps
华为设备环回接口的开销值默认设置为0,这个值不受外界变化干扰(修改参考带宽不会 影响环回接口的开销)
[r2-LoopBack0]ospf network-type broadcast --- 修改接口默认的网络类型
如果将环回接口的默认网络类型从P2P修改为Broadcast,则将还原环回接口真实的网络掩码。
华为设备将tunnel接口的传输速率定义为64Kbps(实际上该接口为虚拟接口,不存在传输速率,其传输速率取决于物理接口) ---- 其目的是为了避免选路时选择tunnel接口,因为走隧道接口需要进行复杂的封装,会消耗大量资源。
全连网状拓扑 ---- MGRE环境中,所有站点都充当中心站点,同时也充当分支站点。---
在这种模式下,OSPF运行只需要将tunnel口修改为broadcast类型即可。
NBMA网络中建立邻居关系的方法 --- 手动指定,以单播的形式建邻
[r1-ospf-1]peer 12.0.0.2 --- 必须互相指定
Attempt --- 在NBMA网络中增加了一个attempt尝试状态,这是一个过度状态,当双方均指定对端为邻居后将进入下一个状态init状态。