【强烈推荐】OSPF协议震荡处理总结
1.1 协议简要介绍
Ospf:
协议号:89,组播地址发包:224.0.0.5,TTL=1,只有一跳,不会被转发。Router ID,路由器的唯一标志(自治系统内唯一)。
Router ID选取规则:
如果通过命令行router id进行了配置,则按照配置结果设置;
如果没有通过命令行router id进行配置,并且已经存在配置有IP地址的loopback接口,则选择loopback接口地址中最大的作为router id;如果没有通过命令行router id进行配置,并且不存在配置有IP地址的loopback 接口,则从其他接口的IP地址中选择最大的一个作为router id(不考虑接口的 UP/DOWN状态);
邻居建立后,还需要通过HELLO报文进行邻居关系的维持,有两个定时器来进行这项工作:
HELLO TIME:缺省为10秒)
DEAD TIME:缺省为4倍的HELLO TIME
通过Hello报文来进行邻居发现。
Hello报文中描述所有该接口上的邻居。
Hello以HelloInterval(10s)为间隔向外发送。
若间隔DeadInterval(40s)还没有收到邻居的Hello报文,则邻居Down。
1.2 协议状态机及交互
1.3 协议抓包
论坛中前边发过
1.4 常用调试手段
如何方便的了解OSPF出了什么问题,调试开关是需要打开的,其中最有效,最常用的就是debugging ospf event(IOS对应命令为debug ip ospf event)!它能让你对OSPF的大部分问题看的一目了然。当然它也不是万能的,它是在正确接收OSPF报文的基础上才能有相应的错误事件。如果没有看到任何动静,建议打开OSPF的所有报文调试开关debugging ospf packet,看看报文的收发是否正常。
打开OSPF event调试开关举例:
<Quidway>debugging ospf event
打开OSPF packet调试开关举例:
<Quidway>debugging ospf packet
命令
描述
display ospf peer
显示OSPF邻居信息
display ospf error
显示OSPF错误信息。
session下载display ospf interface
显示使能OSPF的接口信息
display ospf brief
显示OSPF摘要信息。
display ospf cumulative
显示OSPF统计信息。
display ospf lsdb
显示OSPF的LSDB数据库
display ospf routing
显示OSPF路由信息
display ospf error packet
显示OSPF错误报文信息。
debugging ospf packet
调试OSPF收发报文信息。
debugging ospf event
调试OSPF的事件触发。
1.5 日志信息及定位方法
Dec 13 2011 14:29:35+04:00 fol2-c1 %%01OSPF/4/NBR_DOWN_REASON(l)[296037]:Neighbor state leaves full or changed to Down. (ProcessId=1
, NeighborRouterId=87.250.228.201, NeighborAreaId=0, NeighborInterface=Vlanif801,NeighborDownImmediate reason=Neighbor Down Due to I
nactivity, NeighborDownPrimeReason=Hello Not Seen, NeighborChangeTime=[2011/12/13] 14:29:35)
相关错误警告信息见附件。
概要的故障处理步骤如下:
1
检查接口网段是否一致
2
检查各接口的优先级是否有非零
3
检查各路由器的route id互不相同
4
接口的timer等参数保持一致
5
接口的认证信息保持一致
6
检查是否ospf报文能正确接收
详细的故障处理步骤如下:
1. 检查接口网段是否一致
建立ospf邻居时,Broadcast和NBMA接口应该在在同一网段,保持两端可以ping通。同时
接口所属区域的区域id应保持一致,同时区域的类型也要相同,包括nssa,stub,normal area等。
2. 检查各接口的优先级是否有非零
Broadcast和NBMA类型的网段,各接口的优先级至少有一个是非零的,已确保能 够正确的选举出DR。否则各邻居只能达到2-way的邻居状态。可以通过display ospf interface等命令查看接口的优先级。
3. 检查各路由器的route id互不相同
同一网段上所有路由器的route id应该互不相同,否则会产生无法预料的路由振荡。可以通过display ospf brief等命令查看路由器的route id。
4. 接口的timer等参数保持一致
ospf timer hello命令用来设置接口发送Hello报文的时间间隔。缺省情况下,point-to-point、broadcast、point-to-multipoint类型接口发送Hello报文的时间间隔的值为10秒;NBMA类型接口发送Hello报文的时间间隔的值为30秒。
ospf timer dead命令用来设置OSPF的邻居失效时间,缺省情况下,point-to-point、point-to-multipoint、broadcast类型接口的OSPF邻居失效时间为40秒,NBMA类型接口的OSPF邻居失效时间为120秒。
创建邻居时,对应接口时间间隔参数必须保持一致,否则无法建立邻居。可以通过display ospf interface等命令查看。
5. 接口的认证信息保持一致
ospf在area下和接口下分别有认证信息的配置。
ospf认证的基本原则是:
如果接口下配置了认证,则使用接口下的认证,如果接口下配置为null,则该接口不进行认证;如果接口下没有配置认证(配置为null不是没有配置认证),则采用area下配置的认证,如果area也没有配置认证,则不认证。
创建邻居时,只有两端的认证配置完全一致时才能达到Full状态。
6. 检查是否ospf报文能正确接收
有时ospf的报文无法正确接收,原因有很多,先检查链路层是否畅通。可以打开ospf的debug开关查看报文的收发情况。Debug命令有debug ospf packet,debug ospf event等,还可以通过display ospf error命令查看各种ospf的错误计数。
如果ospf 的报文一切正常,再打开ip报文的debug信息来确认ip层是否转发成功。命令是debug ip packet,可以增加acl filter对debug信息过滤。
附件: NeighborDownPrimeReason.xlsx ( 21.12 KB ,18 下载 )
标签: Ospf,接口,报文
petyourface
威望:500
积分:2465
金币:2000
头衔:中级工程师
发消息
2 楼 发表于 2012-11-26 23:33 | 只看该作者
等待审核中。。。。
monkeybrother
威望:500
积分:1787
金币:2000
头衔:中级工程师
发消息
3 楼 发表于 2012-11-26 23:41 | 只看该作者
附件内容如下,下次我尽量把内容都附在正文里
告警描述 告警ID 含义
Hello Not Seen NBR_DOWN_NO_HELLO_SEEN Inactivity timer 超时Down
Interface Parameter Mismatch NBR_DOWN_INTF_PARA_MISMATCH 参数错误,例如Network类型配置错误
Logical Interface State Change NBR_DOWN_IFLCHANGE 逻辑接口变化
Physical Interface State Change NBR_DOWN_IFACHANGE 物理接口变化
OSPF Process Reset NBR_DOWN_PROC_RESET 重启
OSPF进程(手动执行reset ospf进程)
Area reset NBR_DOWN_AREA_RESET 重启OSPF区域
Area Option Mis-match NBR_DOWN_AREA_CAP_MISMATCH Option选项错误
Vlink Peer Not Reachable NBR_DOWN_VLINK_UNREACHABLE 虚链路不可达
Sham-Link Unreachable NBR_DOWN_SHAMLINK_UNREACHABLE Sham-Link不可达
Undo Network Command NBR_DOWN_NET_UNDO 执行undo network command命令
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论