area_id 将接口配置属于特定区域。可通过命令 display ospf interface interfacename来查看该接口是否已经配置成功。
(4) 检查是否已正确地引入了所需要的外部路由。
实际运行中可能经常需要引入自治系统外部路由(其他协议如BGP或静态路由)。如果需要,是否已经通过命令import 配置了引入。
2.3 邻居路由器之间的故障
由于OSPF协议需要整个自治系统中所有路由器的协调工作,所以任意两台相邻路由器之间的故障都会导致网络中全部或部分路由错误。
如何判断相邻的路由器之间运行正常:
在两台路由器上分别执行display ospf peer命令,查看在相应的接口上是否已发现对端路由器为自己的邻居,并且邻居状态机达到Full状态。需要注意的是:在Broadcast和NBMA类型的网络中,两台接口状态是DROther的路由器之间邻居状态机停留在“2-Way”状态,这是正常的,但都应该与DR之间达到Full状态。两台路由器之间达到Full需要一定的时间,一般在几秒钟至3分钟之间为正常。如果超过这段时间仍旧没有发现邻居或没有达到Full状态,则可以判断为出现故障。若出现故障可按下列几点来检查:
(1)检查物理连接及下层协议是否正常运行。
OSPF正常运行需要下层协议来发送和接收报文,所以必须确保下层协议运行无误。可通过ping命令测试,若从本地路由器Ping对端路由器不通,则表明物理连接和下层协议有问题。但需要注意的是:ping命令发送的是单播报文,而OSPF除了在NBMA类型的接口之外,都发送多播报文。所以除了能够ping通对端之外,还必须具有能够收发多播报文的能力。
(2)检查双方在接口上的配置是否一致
如果物理连接和下层协议正常,则检查在接口上配置的OSPF参数,必须保证和与该接口相邻的路由器的参数一致。这些参数包括 ospf timer hello, ospf timer dead和authentication-mode。区域(area)号必须相同。网段与掩码也必须一致(点到点与虚连接的网段与掩码可以不同)。这些错误可以通过命令display ospf error来查看。关于常用的OSPF错误值可以参见附录的说明。
(3) hello时间与dead时间之间的关系
按照协议规定,接口上的dead的值必须大于hello,并且至少在4倍以上。否则的话会引起邻居状态之间的震荡。
(4)若网络的类型为广播或NBMA,至少有一台路由器的priority应大于零。
协议规定,接口的priorty = 0 的路由器没有被选举权,即不能被选为DR或BDR。而在广播或NBMA类型网络中所有的路由器只与DR之间交换路由信息,所以至少应有一台路由器的priority应大于零。
(5)区域的STUB属性必须一致
如果一个AREA配置成STUB AREA,则在与这个区域相连的所有路由器中都应将该区域配置成STUB AREA。
(6)接口的网络类型必须一致
两台直接相连的路由器,它们之间的接口的网络类型必须一致。否则可能无法正确计算出路由。查看接口的网络类型可以使用命令display ospf interface,如果发现双方类型不一致,可使用接口配置模式下的命令 ospf network-type 来修改。需要特别注意的是:当两台路由器的接口类型不一致时,双方的邻居状态机仍旧有可能达到Full状态,但无法正确计算路由。
(7)在NBMA类型的网络中是否手工配置了邻居
协议规定在NBMA类型的网络中发送单播报文,这样就不能通过发送多播报文来动态发现邻居,所以必须手工指定邻接点的IP地址。
2.4 系统规划的故障
系统规划中的故障主要体现在区域化分中的错误。协议中对区域划分的要求是:如果自治系统被划分成一个以上的区域,则必须有一个区域是骨干区域,并且保证其它区域与骨干区域直接相连或逻辑上相连,且骨干区域自身也必须是连通的。区域 |