邻居建立过程
过程概述
- 当两台路由器接口启用ospf功能
- 接口开始相互发送Hello报文(组播方式,目的地址224.0.0.5)
- 当Hello包相互发现邻居之后
- 开始协商主从关系(通过DD报文协商主从,用与交互数据的可靠性,此时的DD报文不是完整的)
- 当主从关系协商完成,开始相互发送DD报文(真正的摘要信息)
- 相互请求LSA,更新LSA,确认LSA,同步LSDB
- 计算路由,加入路由表
建立邻居关系
ospf使用hello报文发现邻居和维护邻居关系,在以太网链路上,采用组播方式发送hello包,目的地址为224.0.0.5,ospf hello报文包括路由器的Router id、邻居列表等信息
Hello报文概述
字段解释
- Netword Mask :发送Hello报文的接口网络掩码
- Hello Interval:超时时间(4倍Hello Time时间未收到对端发送来的Hello报文,则认为对端出现故障,邻居状态超时)
- Options:可选字段(协商),E置位表示支持外部路由,MC置位表示支持转发组播数据
- Router Priority:路由优先级,用于DR选举(默认1,最大255,最小0则不参与选举)
- Designated Router:DR的接口地址
- Backup Designated Router:BDR的接口地址
- Neighbor:表示邻居信息,使用Router-id标识
OSPF状态
- Down:邻居初始化阶段
- Init:已经发送Hello报,或收到邻居的Hello报,单不包含自己的Router-id(可以理解为还不认识对方)
- Attempt:在帧中继网络中才会出现,表示的是网络是测试、唤醒状态尝试阶段
- 2-way:路由器发现自己的Router-id存在于收到的Hello报文在邻居列表中(双方互相认识)
- Exstart:邻居状态变为此状态以后,开始发送DD报文,但是DD报文中不包含链路状态描述信息
- Exchange:路由器与邻居之间相互发送带有链路状态描述信息的DD报文
- Loading:路由器与邻居之间相互发送LSR、LSU、LSA报文
- Full:完成邻接关系,完成LSDB数据库同步
设备角色
- 在广播网络中:N*(N-1)/2个邻接关系,管理复杂,重复的LSA泛洪,造成资源浪费
- DR指定路由器:负责在广播网络中网络建立和维护邻接关系并负责LSA同步,DR与其他路由器之间建立邻接关系并交互链路状态通告信息,其他路由器之间不直接交换链路状态通告信息(可以通俗理解为村长)
- BDR备份指定路由器:当DR出现故障时,快速接管DR的工作(副村长)
- DRother:OSPF成员设备(村民)
设备角色关系
- DR--BDR(Full状态)
- DR--DRother(Full状态)
- BDR--DRother(Full状态)
- DRother--DRother(2-way状态)
DR选举
- 选举规则(分先后顺序)
- 设备启动时间(60秒未收到Hello报文,则认为自己为DR)
- 接口优先级越大越优(0-255,0表示不参与选举)
- Router-id越大越优
加速收敛
- 通过更改链路类型(将网络类型配置为P2P类型,让设备认为对端只有一台设备,不选举DR角色,MA网络环境禁用)
标签:OSPF,报文,工作,邻居,Router,原理,DR,Hello,路由器 From: https://www.cnblogs.com/AireveryDatacom/p/17585636.html