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就能成功建立邻居关系;如果是广播网路类型,则不能建立邻居关系。

如果直连链路是乙太网链路,当R1收到R2的Hello报文后,根据报文的源IP地址和Hello中的介面掩码,可以算出R2的主IP网路和R1的主IP网路二者不一致,由于OSPF设计要求接在同一个广播网路上的节点的主IP网路由虚节点,也就是指定路由器DR来传递,DR不允许网路上有多个主IP网路,所以建立邻居关系时,不允许主IP网路不一致的网路节点间建立邻居关系。

如果R1和R2间是点到点类型的网路,在OSPF中,点到点网路类型的节点间都可以独立表达自己介面的所有网路,彼此间没有关系,建立邻居关系没有限制,所以R1和R2间建立邻居关系时既不检查掩码,也不检查源地址,能正常建立邻居关系。

结论:

OSPF网路类型,如果是广播或非广播(NBMA)网路,则接在该网路上的所有节点上的主IP网路必须一致才能建立邻居关系,如果网路类型是P2P或P2MP,则没有此要求。

2、 MTU不一致

OSPF在Exstart状态下会检查邻居彼此的介面MTU,MTU决定了发送的OSPF报文大小,同时也决定了可接收的OSPF报文大小。

OSPF在邻接关系处在Exstart/Exchange状态时,预设情况下DD报文中Interface MTU为0,OSPF既不填充介面实际MTU值,也不执行MTU一致性检查。如果通信双方介面配置的MTU不一致,OSPF在同步LSDB时可能因MTU不一致而无法进入FULL状态。

在上图中,如果R1和R2的介面MTU不一致,R1介面MTU=1490,R2介面MTU=1500,并且OSPF介面MTU填充及检查功能被开启,在资料库同步过程中,若R1收到大小为1500Byte的DD或LSU或LSR报文,OSPF在任一状态下都将无法处理超出其接收能力的报文。例如,若收到的是DD报文,则R1忽略该报文,且不会回应DD报文,R2会因超时收不到R1的DD报文而停留在Exchange状态,当然,OSPF也可能基于同样原因停留在Loading状态。

华为使用ospf mtu-enable命令可开启介面填充及检查MTU。

由于其他设备厂商可能会使用不同的MTU预设设置,所以为了保证一致,可以设置介面发送DD报文时MTU值不填充及检查,为预设值0(华为默认),但带来的风险是同步过程中可能会停留在某个状态。

结论:

OSPF在建立邻居关系后,在同步资料库时,若路由器停留在Exstart或Exchange或Loading状态,多是由于MTU不匹配而导致的。

不同的OSPF网路类型互联后能否正常建立邻居计算路由呢?

NBMA+其他网路类型:该类型无法建立邻居,也无法进行邻接关系的同步及路由计算,因为NBMA网路智能和同类型的节点建立邻居关系。

P2MP+Broadcast:将Hello间隔时间调整一致后可以建立邻居,也可以进行邻接关系建立,但是无法计算出对方的路由。

P2MP+P2P:将Hello间隔时间调整一致后可以建立邻居,也可以进行邻接关系建立,并且路由计算也是正常的。

Broadcast+P2P:可以直接建立邻居关系,也可以成为邻接关系,但是无法计算出对方的路由。

注:以上结论仅限于非Cisco设备,Cisco设备之间P2P环境直连不同网段之间是无法建立OSPF邻居关系的。

更多内容请关注公开课

新盟教育/HCNP全新升级(含HCNA+项目实战)-学习视频教程-培训课程-腾讯课堂?

ke.qq.com
图标

推荐阅读:
相关文章