5种网络类型






点到点网络、广播型网络、NBMA、点到多点网络、虚链路






点到点网络



单独一对路由器



总是形成邻居关系



数据包目的地址全部为224.0.0.5





广播型网络



Hello数据包以组播方式发送到AllSPFRouters(目的地址224.0.0.5,目的MAC地址0100.5E00.0001)(DR/BDR的OSPF数据包都发送到改地址)



其他所有路由器都将以组播形式发送链路状态更新数据包盒链路状态确认数据包到AllDRouters(目的地之224.0.0.6,目的MAC地址0100.5E00.0006)



需要选举DR/BDR






NBMA     非广播多路访问



两台以上的路由器组成



路由器发送数据包不能被其他直接相连的路由器接收到



所有OSPF数据包都是单播的



需要增加额外的配置来获得邻居



需要选举DR/BDR






点到多点网络



特殊的NBMA



不需要选举DR/BDR



OSPF数据包以单播发送






虚链路



特殊的点到点



OSPF数据包单播发送












DR/BDR 






指定路由器/备份路由器





网络上所有的路由器都要跟DR和BDR同时形成邻接关系



选举DR/BDR前提条件:



  • 优先级,缺省位1,0不能竞选;范围0~255,8位无符号整数表示
  • 接口开始有效时,将DR/BDR的地址设置为0.0.0.0,等待计时器设置等于路由器无效时间



DR/BDR选举过程:



  1. 所有路由器进入2-way状态,优先级>0的路由器宣称自己的DR也是BDR
  2. 宣告自己的是DR的路由器不能被选取为BDR
  3. 先选取BDR,没有人宣称,就看接口优先级(大优),相同看路由器ID
  4. 再选取DR,具有选举资格的路由器,看接口优先级(大优),相同看路由器ID



⚠️DR 和BDR 的注意事项:



  1. 只有在广播和NBMA 的链路上才会选举DR,在PTP 和PTMP 的链路上不会选举DR
  2. DR 是针对一个网段内的设备选举的,对于一台路由器来说,可能它在某个接口上是DR
  3. 在其它接口上是BDR、DROther,或者因为是PTP 的链路而不参加DR 的选举
  4. 在广播的网络上必须存在DR 才能够正常工作,但BDR 不是必需的。
  5. 一个网段中即使只有一台路由器,也要选举DR,前提是优先级不为0
  6. 由于“终身制”的原因,网段中的DR 不一定是priority 最高的,但通常是“来的早”的路由器,优先级只影响选路过程







邻居、邻接关系






将邻接关系想象成点到点的虚链路






Router ID选取方式



  1. 手工配置router id
  2. 没有配置就选取loopback数值最高的IP地址
  3. 没有loopback就选择物理地址数值最高的router id

⚠️注意:用作router id的接口并非要一定运行OSPF;loopback更稳定,有回旋的余地,推荐使用作为router id





HELLO协议



HELLO协议服务的功能:



  • 发现邻居
  • 通告参数
  • 担当keepalive
  • 确保双向通信
  • 选举DR BDR



广播型网络hello时间10s;非广播30s



路由器无效时间是hello时间的4倍



修改hello 时间:ip ospf hello-interval



修改失效时间:ip ospf dead-interval