让网工们「水深火热」的OSPF
OSPF是一个水很深的路由协议,即使把RFC 2328 吃透了,倒背如流了,也不一定能完全掌握OSPF的精髓。作为使用最广泛的路由协议,其优秀的性能和兼容性确实值得夸赞,但也正是因为如此,不同厂商在使用OSPF时还是会根据厂商自身的资源和优势对OSPF进行定制化,虽然变的不多,但是对于一些没有啥项目经验、没怎么摸过设备的「小白」来说,OSPF的水很深。那么这篇文章就带大家深入的了解一下OSPF的邻居建立机制,帮助大家强化记忆OSPF的邻居建立要素及机制。
影响OSPF邻居关系及邻接关系建立的主要问题:
Hello/Dead发送时间间隔:时间一致才能建立邻居关系。若Hello间隔为10S,而Dead间隔默认是Hello间隔的4倍。
区域ID:相邻的路由器在同一区域才能建立邻居关系,检查OSPF头中的Area ID,Area ID出现在所有OSPF报文的头部而非Hello报文中。
区域类型:区域类型要一致。判断区域类型是否一致要参考Hello报文中的Option位,其中,E和N/P置位代表的含义不同。这里的区域类型指STUB区域类型、NSSA区域类型和常规及骨干区域类型。
认证类型和密钥一致:只有验证通过才能建立邻居关系。
Router ID无冲突:OPSF的Router ID是可以手工指定或系统自动选定的。直连路由器要建立邻居关系是,Router ID一定不能相同。
特殊的邻居关系建立问题:
1、 主IP网路和掩码
Hello报文中,携带有介面主IP网路的掩码,Hello报文中通过掩码和报文的源IP地址,就可以判定邻居双方是否在同一个主IP网路,主IP网路是介面配置的第一个IP地址网路。如下图:R1发送的OSPF报文源地址是10.1.1.1,掩码为24,那么主IP网路就是10.1.1.0/24,同样,R2的主IP网路就是11.1.1.0/24。此时,二者之间的链路如果是点对点链路,那么R1和R2就能成功建立邻居关系;如果是广播网路类型,则不能建立邻居关系。