一、OSPF不能正确接收报文
(1)接口上没有激活OSPF
(2)物理层或者链路层协议down
(3)OSPF的组播地址被ACL block
(4)建立邻居的接口被passive
实验
实验准备:R1和R2运行OSPF,passive R2的F0/0
实验配置:
R1:
interface FastEthernet0/0
router ospf 100
R2:
interface FastEthernet0/0
router ospf 100
实验结果:
在R2上查看OSPF端口状态
R2#sh ip ospf interface f0/0
FastEthernet0/0 is up, line protocol is up
No Hellos (Passive interface)
在R2上debug:
*Mar
R2上收到了R1发来的hello包,但不接受也不发送
结论:
被置于passive的接口不发送和接受任何信息
二、hello包信息不匹配
(1)hello时间间隔不匹配
实验准备:R1和R2运行OSPF,更改R2的f0/0口hello时间为20s
实验配置:
R1:
interface FastEthernet0/0
router ospf 100
R2:
interface FastEthernet0/0
ip ospf hello-interval 20
router ospf 100
network 192.168.12.2 0.0.0.0 area 0
实验结果:
R1和R2不能建立邻接关系
在R1上debug ip ospf
R1#debug ip ospf hello
OSPF hello events debugging is on
R1#
*Mar
*Mar
*Mar
*Mar
*Mar
说明:
1. 如果修改了hello时间,则dead时间和wait时间会自动修改成修改参数的4倍。
2. 如果修改dead时间或者wait时间, hello时间不发生变化,而wait时间发生变化。
3. 不能修改wait时间
(2)区域ID不匹配
实验准备:R1的f0/0在area 0,R2的f0/0在area 1
实验配置:
R1:
router ospf 100
R2:
router ospf 100
network 192.168.12.2 0.0.0.0 area 1
实验结果:
R1和R2不能建立邻接关系
在R1上debug
R1#
*Mar
(3)Stub/transit/NSSA 区域类型不匹配
实验准备:R1的f0/0在area1,R2的f0/0在area 1且为stub
实验配置:
R1:
router ospf 100
R2:
router ospf 100
network 192.168.12.2 0.0.0.0 area 1
area 1 stub
实验结果:
R1和R2不能建立邻接关系
在R1上debug ip ospf events
R1#debug ip ospf events
OSPF events debugging is on
R1#
*Mar
*Mar
*Mar
(4)认证方式或者认证密码不匹配
实验准备:R1和R2运行OSPF,R1和R2的认证方式不一致
实验配置:
R1:
interface FastEthernet0/0
R2:
interface FastEthernet0/0
实验结果:
R1和R2不能建立邻接关系
在R1上debug ip ospf adj
R1#debug ip ospf adj
OSPF adjacency events debugging is on
R1#
*Mar
(5)广播链路上子网掩码不匹配
实验准备:R1和R2运行OSPF,R1和R2的f0/0掩码分别为24位和30位
实验配置:
R1:
interface FastEthernet0/0
R2:
interface FastEthernet0/0
实验结果:
R1和R2 OSPF不能建立邻接关系
R1#debug ip ospf hello
OSPF hello events debugging is on
R1#
*Mar
*Mar
*Mar
*Mar
三、用Secondary地址建邻居
实验准备:R1和R2运行OSPF,配置172.16.12.0/24为R1和R2的secondary地址,用辅助地址建立邻接关系
实验配置:
R1:
interface FastEthernet0/0
router ospf 100
R2:
interface FastEthernet0/0
router ospf 100
实验结果:
R1和R2不能建立邻接关系
在R2上debug ip ospf hello
可以发现:虽然已经将172.16.12.0/24宣告到ospf 100,但是没有任何hello发出。
在R1和R2上宣告主地址192.168.12.0/24,R1和R2建立正常的邻接关系
在R2上debug ip ospf hello
*R2#debug ip ospf hello
OSPF hello events debugging is on
R2#
*Mar
*Mar
*Mar
结论:
OSPF把辅助地址看着是末梢网络,从而不会在这些网络发送hello报文。因此,在辅助地址上无法建立邻接关系。
四、Router-id相同
实验准备:R1和R2运行OSPF,R1和R2的router-id都为1.1.1.1
实验配置:
R1:
router ospf 100
R2:
router ospf 100
实验结果:
R1和R2不能建立邻接关系
OSPF detected duplicate router-id 1.1.1.1 from 192.168.12.1 on interface FastEthernet0/0
提示router-id一样
若router-id一样,在广播链路上不能确定DR和BDR;在点到点链路上master和slave关系不能确定。
五、在广播链路上优先级都是0
实验准备:R1和R2运行OSPF,R1和R2的f0/0口OSPF优先级都配置为0
实验配置:
R1:
interface FastEthernet0/0
ip ospf priority 0
R2:
interface FastEthernet0/0
ip ospf priority 0
实验结果:
R1和R2停留在2way状态
在R2上debug ip ospf event
R2#debug ip ospf adj
OSPF adjacency events debugging is on
*Mar
*Mar
*Mar
*Mar
*Mar
*Mar
*Mar
*Mar
*Mar
结论:由于优先级都为0,均不能成为DR和BDR,只能停留在2WAY状态
六、MTU不匹配
实验准备:R1和R2运行OSPF,R2的f0/0口MTU为1000
实验配置:
R2:
interface FastEthernet0/0
ip mtu 1000
实验结果:
R1和R2邻接关系无法正常建立,OSPF的状态机一直处理Exstart和Down之间来回跳转。
在R2上debug ip ospf event
*Mar
*Mar
结论:
在Exstart阶段进行DBD包协商主从关系时会比较MTU值,如果两边DBD报文中的MTU参数相互之间不符合将会协商不成功。在DBD报文中进行MTU的比较的原因主要是由于DBD报文的内容比较大,如果两边的MTU值不一致的话很可能会造成DBD包丢弃,所以会在Exstart过程中增加MTU的协商过程。所以对OSPF邻居关系的端口MTU一致性进行检查。
解决方法:
把MTU大的改小,或者在MTU小的一端执行ip ospf mtu-ignore(忽略检查OSPF的MTU)。
转自http://blog.sina.com.cn/s/blog_6dc951ef01011k3o.html