使用debug ip ospf adj命令能够看到大多数的不匹配问题。
(1)hello/dead间隔不匹配——匹配才可以形成邻居。
(2)不匹配的认证类型——OSPF下有MD5和纯文本认证。
router ospf 1
area 0 authentication message-digest
network x.x.0.0 0.0.255.255 area 0
(3)不匹配的区域ID——区域信息在OSPF的HELLO分组中发送。不同,不会形成邻接。
(4)不匹配的短截/传输/NSSA区域选项——当OSPF与一个邻居交换HELLO分组时,它所交换的一项内容是由8比特表示的可选能力。选项字段之一是E比特,即OSPF短截标志。当E比特置0时,该路由关联的区域是一个短截区域,外部LSA不允许进入这个区域。
2.OSPF状态问题
成为邻居的路由器不保证交换链路状态更新。一旦路由器决定与一个邻居形成邻接,它就开始交换其链路状态数据库的一份完整拷贝。
(1)OSPF陷入ATTEMPT——仅对neighbor语句的NBMA网络有效。陷入ATTEMPT是指一台路由器试图通过发送它的HELLO来联系邻居但是它没有收到响应。
show ip ospf neighbor查看。
原因:错误配置neighbor;NBMA上的单播连通性断了,这可能是由错误的DLCI,访问列表或转换单播的NAT引起的。
(2)OSPF陷入INIT——INIT状态表示路由器收到来自邻居的HELLO分组,但是双向通信并没有建立 .
原因:
一方访问列表阻止了HELLO;
一方的多播能力失效(一个交换机故障);
仅在一方启用了认证;
一方的frame-relay map/dialer map语句缺少了broadcast关键字。
一方的HELLO在第2层丢失了。
(3)OSPF陷入2-WAY——双向状态是指路由器在HELLO分组的邻居字段中见到了自己的路由器ID.类似于所有路由器的优先级都为0,则不会发生选举,所有路由器停留在双向状态中。
解决:确保至少一台路由器具有一个至少为1的IP OSPF优先级。
(4)OSPF陷入EXSTART/EXCHANGE——在EXSTART或EXCHANGE状态的OSPF邻居正处于尝试交换DBD(数据库描述)分组的过程中。
原因:
不匹配的接口MTU
邻居上重复的路由器ID
无法用超过特定MTU 长度进行PING
断掉的单播连通性,它可能是因为错误的DLCI,访问列表或转换单播的NAT
(5)OSPF陷入LOADING——邻居没有应答或邻居的应答从未到达本地路由器,路由器也会陷入LOADING状态。常有"%OSPF-4-BADLSA"控制台信息。
原因:
不匹配的MTU
错误的链路状态请求分组
3.点到点链路的一方是无编号的
interface s0
ip unnumbered loopback0
解决:双方都需要成为一个有编号点到点链路或一个无编号点到点链路。
4.ABR没有产生一个类型4的汇总LSA
类型4的汇总LSA的一个功能是宣告到其他区域的ASBR的可达性。如果同一个区域中存在ASBR则不需要类型4的LSA.
show ip ospf database external 命令的输出显示在路由器的外部OSPF数据库中是否存在路由。
show ip ospf database asbr-summary 命令的输出显示路由是否有类型4的LSA.
检查R是否真是ABR.如果是,则产生类型3或类型4的汇总LSA.show ip ospf
5.转发地址不能通过区域内或区域间路由获知
当OSPF获得一条外部LSA时,它在将该路由装入路由选择表之前要确定转发地址可通过一条OSPF区域内或区域间路由获知。如果转发地址不能通过区域内或区域间路由获知,OSPF不会将路由装入路由选择表中。
有可能的解决:
不在ABR上进行汇总
在ASBR上过滤再分布入OSPF中的直接子网
router ospf 1
redistribute rip subnets
6.路由汇总问题
两种类型汇总:
可执行在ABR上的区域间路由汇总
可执行在ASBR上的外部路由汇总
(1)区域间汇总
router ospf 1
area 3 range x.x.x.0 255.255.255.0
通过show ip ospf可以查看
(2)外部汇总
router ospf 1
summary-address x.0.0.0 255.0.0.0
7.CPUHOG问题
产生在:邻居形成过程
LSA刷新过程
8.SPF计算和路由翻动
只要拓扑有变化,OSPF就运行SPF算法再次计算最短路径优先树。,可能引起链路的不稳定。
原因:区域内的接口翻动
区域内的邻居接口翻动
重复的路由器ID
使用show ip ospf命令可查看在一个给定区域中SPF算法运行的次数;
使用debug ip ospf monitor来隔离一个翻动的LSA;
使用show log命令显示由接口引起的翻动。
解决:
修复正在翻动的链路
重新定义区域边界