排除路由故障的常见方法
一 静态路由故障
1. 静态路由和有类别查找
当路由选择表进程检查一条使用中间地址(路由选择表中作为下一跳引用的IP地址)的可解析的静态路由时,这个检查总是在有类别方式下完成的,无论是否使用ip classless命令如果在路由选择表中有类别方式下的中间地址不能解析,则删除该静态路由。
使用show ip route查看路由选择表。
使用debug 可以显示某个网络宕掉了。
如果使用无类别方式并有一条默认路由存在,那么具有高管理距离的备份表态路由将永远不会在主静态路由失效时装入到路由选择表中。这是因为任何静态路由,即便是指向不存在的中间地址的静态路由,都会使用默认路由进行解析。
CISCO路由选择表进程每60S调用一个检查路由选择表的静态路由功能来根据动态变化的路由选择表安装或删除静态路由。
2.静态路由和中间地址
静态路由可以使用中间网络地址或出接口来创建。大多数情况下,使用出接口在路由选择表进程中解析静态路由更加有效。
只要中间IP地址可以在路由选择表中解析,它不必是真实的下一跳路由器的接口。静态网络路由(如中间地址)必须最终被解析为路由选择表中一条具有出接口的路由。
每当路由选择表进程需要为x.x.x.0/24网络使用静态路由表项时,它还需要解析中间地址y.y.y.y,称为递归查找。一次额外的路由查找或许对路由选择进程的性能没有多少影响。但是,采取多次递归查找来获得解析的静态路由可能会影响性能。
3.静态路由优化
为避免递归查找: 串行网络:使用出接口
以太网络:同时使用中间地址和出接口
4.反复的静态路由安装和删除
尽可能地使用出接口而不是中间地址来配置静态路由。
5.使用丢弃路由
有时网络中有环路的产生。通过周期性的查看路由器接口上的计数器可以看到路由选择环路的结果。
clear counters serial0/0
show interface serial0/0
路由环路的问题在网络中产生了一个黑洞。一旦IP头中的生存期(TTL)减到0就丢弃分组。
解决1:有类别模式的路由选择(no ip classless)——在用户网络路由器上使用no ip classless.路由器在至少一个已知子网存在时不会使用任何超网或默认路由。但不是首选。因为它改变了所有分组的路由选择表查找行为。
解决2:使用一条丢弃路由——当路由选择表中没有特定的匹配,而且使用一条超网或默认路由来转发那些分组并不合适时,一条丢弃路由把分组送给了null0,即比特桶。
ip route x.x.0.0 255.255.0.0 null0
ip route x.x.0.0 255.255.0.0 null0 200
后一个命令行配置仅在主路由失效时使用的另一条丢弃路由。通过将静态路由的默认管理距离改为比所使用的动态路由选择协议的管理距离更高的一个值来实现。
二 排除RIP故障
1.不兼容的版本类型
debug ip rip
show ip protocols 对检查接口上发送和接收的RIP分组版本十分有用。
如果R1不支持V2的版本,只能接收RIPv1分组,那么R2配置成RIPv1和RIPv2.
可在接口级指定发送和接收RIP分组的特定版本
interface e0
ip rip send version 1 2
ip rip receive version 1 2
2.不匹配的认证密钥
RIPv2的一个选项是可以认证的RIPv2更新,为了增强安全性,当使用认证时,必须在双方配置口令。这个口令被称为认证密钥。如果这一密钥与另一方的密钥不匹配,双方都将忽略RIPv2更新。
在接口上配置ip rip authentication key-chain cisco
用debug ip rip调试。
3.达到RIP的路数限制
RIP度量标准的最大值是15跳。
无法克服这个问题。可以使用非15跳限制的路由选择协议。IGRP最大跳数是255,EIGRP最大跳数是224,二者默认都是100.
4.不连续网络
当主网络被另一个主网络分隔开时,被称为不连续网络。
解决1:使用静态路由
解决2:在路由器之间的链路地址改为左右不连续网络中的一部分。
解决3:在两台路由器上用no auto-summary配置启用RIPv2的无类别路由选择版本。
router rip
version 2
network x.x.x.0
no auto-summary
解决4:使用无类别路由选择协议。如OSPF,EIGRP,IS-IS替代RIPv1路由选择协议。
5.不合法的源地址
当RIP告诉路由选择表安装路由时,它执行源合法性检查。如果源所在子网与本地接口不同,RIP则忽略更新并且不在路由选择表中安装从这个源来的路由。
当一方是有编号而另一方是无编号时,必须关闭这个检查。
router rip
no validate-update-source
6.翻动(flapping)路由
路由翻动是指路由选择表中一条路由的不断删除和再插入。为了检查路由是否真的翻动,检查路由选择表并查看路由的寿命(age)。如果寿命被不断的重置为00:00:00,这就意味这路由正在翻动。
RIP有180S没有收到一条路由,那么该路由将保持240S,然后被清除。
使用show interface来检查接口统计值。
最常见帧中继环境分组丢失。
使用show ip route rip可以检查RIP多久没有更新。
使用show interface serial 0可查看到接口上有大量的广播分组是否被丢弃。帧中继情况下,可能需要调整帧中继广播队列。在非帧中继的环境中,可能需要增加输入或输出保留队列。
7.大型路由选择表
接口上使用ip summary-address汇总路由。
三 排除EIGRP故障
1.不匹配的K值
EIGRP为了建立它的邻居关系,计算EIGRP度量标准的K常数值必须相同。
K1-带宽 K2-负载 K3-延迟 K4,K5-可靠性
router eigrp 1
network x.x.x.x
metric weights 0 1 1 1 1 0
2.不匹配的AS编号
EIGRP不会与具有不同自治系统编号的路由器形成任何邻居关系。
3.活动粘滞
(1)确定问题
可能的原因有:
。 坏的或拥塞的链路;
。 低的路由器资源,如路由器上的低内存和高CPU处理。
。 长的查询范围
。 过多的冗余
默认活动粘滞定时器只有180S.
使用show ip eigrp topology active 命令帮助故障排除EIGRP活动粘滞错误,仅在问题发生时有用,用户一次只有180S的时间来确定。邻居有一个r跟在后面表示它没有应答查询。
(2)故障排除方法
追踪查询,一跳接一跳,在每一跳找出活动路由的状态。
(3)最终解决方案
尽可能手工汇总路由并有一个分层次的网络设计。EIGRP汇总的网络越多,主收敛发生时需要做的事情越少。
4.重复的路由ID
EIGRP只是为了外部路由而使用路由器ID的概念来防止环路。EIGRP基于路由器上回环接口的最大IP地址来选择路由器ID.如果路由器没有回环接口,则选择所有接口中最大的激活IP地址作为EIGRP的路由器ID.
debug ip eigrp可以看到接口上通告某个网络。
经验法则:永远不要在网络的两个地方配置相同的IP地址。
四 排除OSPF故障
1.不匹配的参数
使用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命令显示由接口引起的翻动。
解决:
。 修复正在翻动的链路
。 重新定义区域边界
五 排除IS-IS故障
1.IS-IS邻接问题
通常由链路故障和配置错误引起。
show clns neighbors 显示所有希望与被调查的路由器成为邻接的邻居
debug isis adj-packets 命令来调试
2.部分或所有邻接没有形成
步骤1——检查链路故障。show ip interface brief
步骤2——检查配置错误。show run
步骤3——检查不匹配的1级和2级接口。
步骤4——检查区域的错误配置。
步骤5——检查错误配置的子网
步骤6——检查重复的系统ID
3.邻接陷入INIT状态
常见原因:不匹配的接口MTU和认证参数。show clns neighbors可看到
步骤1——检查认证 debug isis adj-packets
步骤2——检查不匹配的MTU debug isis adj-packets
步骤3——检查IS-IS的HELLO填充禁止 (命令同上)
使用show clns interface查看接口上的HELLO填充状态
4.ES-IS邻接形成代替了IS-IS邻接形成
在IP环境中运行IS-IS的CISCO路由器仍然监听ES-IS协议所产生的ISH.当物理层和数据链路层工作时,即使没有建立IS-IS邻接的适当条件,仍能形成ES-IS邻接。
show clns neighbors
5.路由通告问题
大多数路由通告问题都可被限制为源端的配置问题或链路状态分组(LSP)的传播问题。
Dijkstra算法运行在LS数据库上来获得每个被通告路由的最佳路径。
debug isis update-packets
debug isis snp-packets
以上两个调试帮助故障排除LSP洪泛问题和链路状态数据库同步。
路由没有到达网络远端的问题可能有许多潜在原因,包括邻接问题,第1/2层问题,IS-IS错误配置以及其他问题。
6.路由翻动问题
网络中SPF进程的高CPU利用率(SHOW PROCESS CPU命令)也应标记为不稳定。
不稳定链路。
翻动还有可能是由LSP的错误风暴或一个路由选择环路引起。
show isis spf-log命令显示哪个LSP变化最频繁以及哪个LSP角发了SPF计算。
show isis update-packets
六 排除BGP故障
1.故障排除BGP邻居关系问题
遵循:首先,应检查第1/2层,然后是IP连通性(第3层),TCP连接(第4层),最后是BGP配置。
(1)直接的外部BGP邻居没有初始化
自治系统(AS)不会向AS发送或从AS接收任何IP前缀更新,除非邻居关系达到established状态,该状态是BGP邻居建立的最后阶段。当AS有一条单一的EBGP连接时,直到BGP完成了它的收发IP前缀操作后IP连通性
才能发生。
原因:
。 第2层宕掉了,阻止了与直接的EBGP邻居通信
。 在BGP配置中有错误的邻居IP地址
命令:show ip bgp summary和 show ip bgp neighbors检查BGP邻居关系
active状态表示邻居间没有发生成功的通信,并且邻居未形成。用PING测试其连通性,失败则表示要修复第1/2层问题。
debug ip bgp能够帮助诊断问题
(2)非直接的外部BGP邻居没有初始化
有些情况下,EBGP邻居不是直连的。BGP邻居关系能够建立在试图形成由一台或多台路由器分隔开的EBGP邻居关系的路由器之间。这种邻居在IOS中被称为EBGP多跳。
当路由器之间存在多个接口并且需要在那些接口之间IP流量负载均衡时,通常在回环接口之间建立EBGP对等实体。
可能的原因:
。 到非直连对等实体地址的路由从路由选择表中丢失了
。 BGP配置中缺少ebgp-multihop命令
。 缺少update-source interface命令
命令:show ip bgp summary 和show bgp neighbors
router bgp 109
neighbor x.x.x.x remote-as 110
neighbor x.x.x.x ebgp-multihop 2
neighbor x.x.x.x update-source loopback0
(3)内部BGP邻居没有初始化
原因:
。 到非直接IBGP邻居的路由丢失了
。 BGP配置中缺少update-source interface命令
(4)BGP邻居(外部和内部)没有初始化
接口访问列表/过滤是BGP邻居活动问题的一个常见原因。
2.故障排除BGP路由通告
发生在BGP路由通告的产生和接收中。
(1)没有产生BGP路由
原因:
。 IP路由选择表中没有匹配的路由
。 发生了配置错误
。 BGP自动汇总到有类别/网络边界
(2)向IBGP/EBGP邻居传播/产生一条BGP路由的问题
配置的分布列表过滤可能是该问题的起因,或者是策略路由选择有问题。
(3)向EBGP邻居但没有向IBGP邻居传播一条BGP路由的问题
show run
show ip bgp
show ip bgp summary
解决:
。 使用IBGP全互联
。 设计一个路由反射器模型。
router bgp 109
neighbor x.x.x.x route-reflector-client
。 设计一个聪明模型
(4)向IBGP/EBGP邻接传播一条IBGP路由的问题
一条BGP路由只有首先通过IGP或静态路由获得后才是同步的。
show ip bgp命令的输出显示了BGP表中的不同步路由。
3.排除路由没有装入IP路由选择表中的故障
原因:
(1)IBGP原因
。 IBGP路由不同步
。 BGP下一跳不可达
(2)EBGP原因
。 在多跳EBGP情况下BGP下一跳不可达
。 BGP路由被抑制
。 多出口鉴别器(MED)值为无穷
4.BGP下一跳不可达
解决:
。 使用静态路由或再分布经由IGP宣告EBGP下一跳
router ospf 1
network x.x.x.0 0.0.0.255 area 0
。 使用next-hop-self命令将下一跳改变为一个内部对等实体地址
router bgp 109
router ospf x.x.x.x next-hop-self
4.BGP路由被抑制
抑制(dampening)是减小本地BGP网络中来自EBGP邻居的不稳定BGP路由所引起的不稳定性的方法。
抑制是一种为一条翻动的BGP路由指派一个罚点的方法。
router bgp 109
bgp dampening
文章录入:csh 责任编辑:csh