本篇仅介绍一些基础概念,像SPF算法、邻居建立过程、LSA作用等会在后续文章中陆续更新
OSPF的工作过程主要经过3步
1-邻居建立
2-同步链路状态数据库
3-计算最优路径
OSPF交互过程中主要用到这几个报文
Type报文名称报文功能1Hello发现和维护邻居关系2Database Description(DD)交互数据链路状态数据库摘要3Link State Request(LSR)请求特定的链路状态信息4Link State Update(LSU)发送详细的链路状态信息5Link State Ack(LSAck)发送确认报文
DR与BDR
DR(Designated Router)即指定路由器,其负责在MA网络建立和维护邻接关系并负责LSA的同步。DR与其他所有路由器形成邻接关系并交换链路状态信息,其他路由器之间不直接交换链路状态信息。这样就大大减少了MA网络中的邻接关系数量及交换链路状态信息消耗的资源。
DR一旦出现故障,其与其他路由器之间的邻接关系将全部失效,链路状态数据库也无法同步。此时就需要重新选举DR,再与非DR路由器建立邻接关系,完成LSA的同步。为了规避单点故障风险,通过选举备份指定路由器BDR,在DR失效时快速接管DR的工作。
选举规则:DR/BDR的选举是基于接口的。但因为存在不抢占原则,更多也要看启动时间
接口的DR优先级越大越优先。
接口的DR优先级相等时,RouterID越大越优先。
邻居与邻接
邻居(Neighbor)关系与邻接(Adjacency)关系是两个不同的概念。OSPF路由器之间建立邻居关系后,进行LSDB同步,最终形成邻接关系。
在广播型网络网络上,DRother之间只能建立邻居关系,不能建立邻接关系,DRother与DR/BDR路由器之间会建立邻接关系,DR与BDR之间也会建立邻接关系。
区域划分
主要分为骨干区域和常规区域,所有区域都要和骨干区域相连且骨干区域只能有1个,为了避免路由环路,如果不能直接相连可以采用虚链路的方式,能不用最好不用虚链路
区域内出了DR和BDR还有↓
ABR:边界路由器,一边连着常规区域,一边连着骨干区域
ASBR:自治系统边界路由器,一边连着ospf区域,一变连着其他协议的区域
还有一些特殊区域 (后续文章详细介绍)
Stub区域:4、5类LSA,由ABR下发一条缺省路由,能够减少LSDB,降低性能压力,拓扑变化对此区域影响小
totally-stub:不接受3、4、5类LSA,和stub差不多
NSSA区域:不接收4、5类LSA能够产生7类LSA,允许引入外部路由
totally-nssa:不接受3、4、5类LSA能够产生7类LSA,和NSSA差不多