案例名称:
《帧中继故障排除》
技术范围:
帧中继
技术关键词:
帧中继协议、frame-relay
案例描述:
还清楚记得我单位上帧中继那条线路,所遇到的问题:为什么协议up了,pvc都是active的,但总是ping不通对端,是不是版本又有bug了?
实际上,善良技术人员们,真的没有必要所有的问题都自己扛!让我们看看,在哪些情况下我们可以理直气壮的判定我们的路由器没有问题,让电信去检查线路路由吧!
鉴于我们的路由器在室外总是做dte设备使用,本文只针对dte接口进行分析。
故障排除步骤:
解决思路:
1. 配置:
对于帧中继协议,当路由器做为
dte
端时,配置其实很简单,只需要封装帧中继,配置
ip
地址(当然,
lmi
的类型请与对端
dce
接口保持一致)。如果使用了子接口,那么就得事先知道电信局分配的
dlci
号并配置在子接口上(否则会被默认是分配给主口的)。如果手动配置了静态
map
映射,则当出现
pvc
状态为
active
但又
ping
不通对端时,请首先怀疑
map
映射配置错误。
对应的典型配置:
interface serial0/0
physical-layer sync
encapsulation frame-relay
frame-relay lmi-type ansi
ip address 1.0.0 .1 255.0.0.0
exit
interface serial0/0.1 point-to-point
frame-relay interface-dlci 20
exit
ip address 2.0.0 .1 255.0.0.0
exit
2. 协议up:
要使协议
up
,大家都知道会先看物理信号是否都
up
了,
v35
,
v24
是否调对了,但是,如果这些都正常的情况下,帧中继协议还是没有
up
,此时该怎么办呢?
此时可以用
debug fra lmi
来进行调试,看看
lmi
协议报文是否交互正常,如果
lmi
报文只发不收,那么在你排除了线路上的问题后,多半就是因为两端
lmi
协议报文配置不一致了,此时可在本端换
lmi
协议类型试试(
frame-relay lmi-type q 933a / ansi / lmi
),如果在你换到某个类型时突然发现有收有发,那么恭喜您,终于配对了!如此正常交互三次后,协议自然就
up
了。
如果您硬说
lmi
报文一直正常交互,协议就是不
up
,那么只能说您很不幸,路由器可能是在打瞌睡或者犯傻了,没有办法,只有施以暴力了,将相应的接口
shut
,
no shut
一次就好了(在物理信号全
up
时,帧中继协议
shut
,
no shut
后默认是
up
的,等它
up
后发现
lmi
交互一直正常,自然不会再犯傻又
down
掉)。
3. pvc状态:
其实这一步有点多余,
pvc
状态可不是我们所能控制的,它取决于电信帧中继交换机上的配置。
如果在接口上手动配置了
dlci
号,则
pvc
状态可能有四种:
delete
,
static
,
inactive
,
active
。
Delete
状态说明此
dlci
号只是手动配置在本端接口上,而电信局根本没有给您提供这条
pvc
,为无效
pvc
;状态为
static
则表示本端接口上配置了
no keeplive
命令,
dte
-
dce
间不再交互
lmi
报文来通告
pvc
的状态;状态为
inactive
则表示电信端虽然给您提供了这条
pvc
,但却不可用;为
active
则表示电信端给您提供了这条
pvc
,且
pvc
有可能可用。
这里需要简单介绍一下
pvc
状态为
inactive
和
active
的含义。对于帧中继网络,一条
pvc
是有多个
pvc
段组成的(
dte
-
dte
间为一条
pvc
,
dte
-
dce
,
dce
-
dce
间为一个
pvc
段)。举个例子:
RA—RB—RC—RD
,
RA—RB
间的
dlci
号为
20
,
RB
-
RC
间的
dlci
号为
30
,
RC
-
RD
间的
dlci
号为
40
,则
RA
和
RD
间的这条
pvc
是由
pvc
段
20
,
30
,
40
组成的,对于
RA
而言,
RA
上显示的
pvc 20
的状态,其实只表示
pvc
段
30
,
40
是否可用,并不能表示这条
pvc
是否可用;同样,
RD
上显示的
pvc 40
的状态,也只表示
pvc
段
20
,
30
是否可用,同样不能表示
RA
和
RD
间的这条
pvc
是否可用,这就可用解释为什么很多时候我们看到
dte
设备上显示的
pvc
状态为
active
却还是
ping
不通的现象。(有点难懂哈,多看几遍!)
很多人以为帧中继交换机上的路由没有配置正确的话,我们路由器上所看到的
pvc
状态就是
inactive
的,如果
pvc
状态为
active
了,那么电信的路由配置肯定没有问题,其实不然,帧中继交换机路由配置错误可能引起的现象是多种多样的,这里我先举一个例子,以后遇到经典的再补上:
帧中继交换机路由错误可能引起的现象
之一:本端pvc为active,有对端的动态map映射?但ping不通对端
实例环境:
其中
36B
和
RC
被模拟成帧中继交换机。
R2692
和
36b
间
dlci
号
100
,
36b
和
RC
间
dlci
号为
200
,
RC
和
RB
间
dlci
号为
300
。在此,我们正确配置
36b
上的路由,
RC
上
s0/0
口的路由也正确配置,仅
RC
上
s3/0
口上的路由配置错误,此时出现的现象就是在
2692
上看到本端
pvc 100
的状态为
active
的,且可能有对端的动态
map
映射,但无法
ping
通对端。
实例配置:
R2692:
interface serial0/0
physical-layer sync
encapsulation frame-relay
frame-relay lmi-type ansi
ip address 1.0.0 .1 255.0.0.0
exit
36b:
frame-relay switching
interface serial0/0
physical-layer sync
clock rate 128000
encapsulation frame-relay
frame-relay lmi-type ansi
frame-relay intf-type dce
frame-relay route 100 interface serial0/1 200
exit
interface serial0/1
physical-layer sync
clock rate 2000000
encapsulation frame-relay
frame-relay lmi-type ansi
frame-relay intf-type nni
frame-relay route 200 interface serial0/0 100
exit
RC:
frame-relay switching
interface serial0/0
physical-layer sync
encapsulation frame-relay
frame-relay lmi-type ansi
frame-relay intf-type nni
frame-relay route 200 interface serial3/0 300
exit
interface serial3/0
physical-layer sync
encapsulation frame-relay
frame-relay lmi-type ansi
frame-relay intf-type dce
frame-relay route 300 interface serial0/0 150
(错误路由)
exit
RB:
interface serial2/0
physical-layer sync
clock rate 2000000
encapsulation frame-relay
frame-relay lmi-type ansi
ip address 1.0.0 .5 255.0.0.0
exit
实例表现形式:
R2692:
1.
接口协议
up
;
2.
接口
pvc
状态为
active
;
3.
有动态学到的
map
映射?如果开始帧中继交换机路由配置正确,
2692
上已经学到了动态
map
映射,此时改变帧中继交换机的配置,则已经学到的动态
map
映射也不会掉(但若接口
down
了
map
映射就掉了且无法再自动学到),这样就可能造成一种接口
up
,
pvc
为
active
,且动态学到了
map
映射的假相,遇到这种情况可将接口
shut
,
no shut
一次,就可判断出是否真的可动态学到
map
映射。
小结
对于帧中继协议,配置得越简单,越容易定位出问题所在,很多人喜欢在接口上配置
dlci
号,配置
map
映射,以为这样更保险,其实往往使得其反,这些配置对于网络稳定根本不会有特殊作用,而出了问题反而影响问题的定位。
一般而言,如果是使用的主口,在封装帧中继协议后只需要配置
ip
地址(
pvc
号可通过
lmi
协议自动获得,
map
映射可通过
InARP
协议自动生成);如果使用子口,就在子口上配置所用的
dlci
号(否则自动获得的
dlci
号默认加在主口上)。
基本上,如果您这样配置好协议后,协议能
up
,接口收发正常,那么再不通的话,问题多半不是出在我们的路由器上。
如果协议可学到动态
map
映射,但仍无法
ping
通对端时,可用
debug fra log
命令查看数据流向,看是否由于别的原因导致数据流向出错。
另外,如果您非要坚持手动配置
map
映射,请不要忘了带上
broadcast
参数,否则在使用动态路由时您又会手足无措了。
其中
36B
和
RC
被模拟成帧中继交换机。
R2692
和
36b
间
dlci
号
100
,
36b
和
RC
间
dlci
号为
200
,
RC
和
RB
间
dlci
号为
300
。在此,我们正确配置
36b
上的路由,
RC
上
s0/0
口的路由也正确配置,仅
RC
上
s3/0
口上的路由配置错误,此时出现的现象就是在
2692
上看到本端
pvc 100
的状态为
active
的,且可能有对端的动态
map
映射,但无法
ping
通对端。
实例配置:
R2692:
interface serial0/0
physical-layer sync
encapsulation frame-relay
frame-relay lmi-type ansi
ip address 1.0.0 .1 255.0.0.0
exit
36b:
frame-relay switching
interface serial0/0
physical-layer sync
clock rate 128000
encapsulation frame-relay
frame-relay lmi-type ansi
frame-relay intf-type dce
frame-relay route 100 interface serial0/1 200
exit
interface serial0/1
physical-layer sync
clock rate 2000000
encapsulation frame-relay
frame-relay lmi-type ansi
frame-relay intf-type nni
frame-relay route 200 interface serial0/0 100
exit
RC:
frame-relay switching
interface serial0/0
physical-layer sync
encapsulation frame-relay
frame-relay lmi-type ansi
frame-relay intf-type nni
frame-relay route 200 interface serial3/0 300
exit
interface serial3/0
physical-layer sync
encapsulation frame-relay
frame-relay lmi-type ansi
frame-relay intf-type dce
frame-relay route 300 interface serial0/0 150
(错误路由)
exit
RB:
interface serial2/0
physical-layer sync
clock rate 2000000
encapsulation frame-relay
frame-relay lmi-type ansi
ip address 1.0.0 .5 255.0.0.0
exit
实例表现形式:
R2692:
1.
接口协议
up
;
2.
接口
pvc
状态为
active
;
3.
有动态学到的
map
映射?如果开始帧中继交换机路由配置正确,
2692
上已经学到了动态
map
映射,此时改变帧中继交换机的配置,则已经学到的动态
map
映射也不会掉(但若接口
down
了
map
映射就掉了且无法再自动学到),这样就可能造成一种接口
up
,
pvc
为
active
,且动态学到了
map
映射的假相,遇到这种情况可将接口
shut
,
no shut
一次,就可判断出是否真的可动态学到
map
映射。
小结
对于帧中继协议,配置得越简单,越容易定位出问题所在,很多人喜欢在接口上配置
dlci
号,配置
map
映射,以为这样更保险,其实往往使得其反,这些配置对于网络稳定根本不会有特殊作用,而出了问题反而影响问题的定位。
一般而言,如果是使用的主口,在封装帧中继协议后只需要配置
ip
地址(
pvc
号可通过
lmi
协议自动获得,
map
映射可通过
InARP
协议自动生成);如果使用子口,就在子口上配置所用的
dlci
号(否则自动获得的
dlci
号默认加在主口上)。
基本上,如果您这样配置好协议后,协议能
up
,接口收发正常,那么再不通的话,问题多半不是出在我们的路由器上。
如果协议可学到动态
map
映射,但仍无法
ping
通对端时,可用
debug fra log
命令查看数据流向,看是否由于别的原因导致数据流向出错。
另外,如果您非要坚持手动配置
map
映射,请不要忘了带上
broadcast
参数,否则在使用动态路由时您又会手足无措了。