1.ISDN介绍
ISDN是综合业务数字网(Integrated Services Digital Network)的英文缩写,它由电话综合数字网(IDN)演变而成,提供端到端的数字连接, 支持一系列广泛的业务(包括话音和非话音业务)。
ISDN为用户提供一组有限的标准多用途用户-网络接口(UNI),ITU-T的I.412建议中为用户-网络接口规定了两种接口结构:基本接口(BRI)和一次群速率接口(PRI),BRI带宽为2B D,PRI带宽为30B D或23B D。其中:
B信道为用户信道,用来传送话音、数据等用户信息,传送速率是64Kbps;
D信道为控制信道,它传送公共信道信令,这些信令用来控制同一接口的B信道上的呼叫。D信道的速率是64 Kbps(PRI)或16 Kbps(BRI)。
ITU-T Q.921是D信道的数据链路层协议,它定义了用户到网络接口上第2层实体间经D信道交换信息的规则,同时支持第3层实体的接入。ITU-T Q.931是D信道的网络层协议,它提供在通信应用实体间建立、保持和终接网络连接的方法。
2.1 ISDN接口的物理故障ISDN接口的物理故障可能是由以下原因造成的:
(1) PRI接口采用display controller e1命令可以查询该接口物理连接是否正确。如果该cE1/PRI接口处于DOWN状态,说明物理连接不正确,可能是接口脱落导致,或者同轴电缆接反,需要将接头插紧或者调整同轴电缆连接即可。如果已经确认接口的物理连接正确,但是仍然无法进入UP状态,则检查电缆两端的物理帧格式封装,Quidway26/36系列路由器缺省采用NO-CRC4帧格式校验。只有当电缆两端帧格式校验配置一致,cE1/PRI接口才能正常进入UP状态。
(2) BRI接口没有呼叫时其接口始终处于去激活状态。当路由器一上电启动,使用display interfaces bri命令就能查询到该接口物理状态为UP,协议状态是spoofing,因此在没有呼叫时无法判断BRI接口物理状态是否正常。
2.2 ISDN接口的链路故障当PRI接口物理状态正常时,或采用BRI接口进行呼叫时,如果使用debug isdn q921命令只显示SABME帧,而无法显示收发的RR帧,则说明Q.921链路建立失败。
如果确认是Q.921链路建立失败,由于Q.921建议描述了非对称设备之间的通讯参数和规程,即电缆两端必须一端作用户侧,一端作网络侧。Quidway26/36系列路由器目前只支持用户侧,因此与之相连的交换机必须配置为网络侧,否则无法成功建链。
2.3 Modem的物理故障Modem的物理故障可能是由以下原因造成的:
Modem通过V.24同轴电缆与路由器的同步(或异步)接口相连,如果使用debug modem at命令后始终不显示“ok”,说明Modem不正常,可以尝试关电源重新复位Modem。
如果能看到“ok”,主叫端Modem一直在拨号,但接收端没有摘机(伴随有“卡嗒”声),则需要查看Modem的自动应答属性是否正确。有些Modem的属性是自动应答,路由器就应该采用undo modem auto-answer命令取消自动应答;如果Modem属性是非自动应答,路由器就需要采用modem auto-answer命令来配置自动应答属性。Modem拨号成功率与Modem本身质量和线路质量都有关,需要耐心多尝试。
如果无法确认Modem是否为自动应答,可以采用超级终端连接Modem,采用AT命令at&v来查看。如果查看结果中ats0=1表示为自动应答,ats0=0表示为非自动应答。如果需要设置Modem的自动应答属性,则使用ats0=0命令设置为非自动应答,或者采用ats0=1设置为自动应答,并且用at&w命令来保存配置。
如果已经确认Modem正常,并且呼叫总是出现忙音,说明被叫端占线,可能对端线路正在使用;或者出现两端同时在尝试呼叫对端,从而出现呼叫冲突。对于被呼线路正在使用的情况,可以等待对端挂断后再尝试呼叫;如果出现呼叫冲突,可以采用配置dialer timer enable命令将两端的呼叫间隔设置为不同的值,从而避免下次呼叫再发生呼叫冲突。
2.4 同/异步Modem拨号的配置问题首先确定采用同步拨号,还是异步拨号。
对于同步拨号,其接口必须是同步拨号接口;对于异步拨号,如果采用同/异步接口(即Serial接口),则必须先使用命令physical-mode asynchronous命令把该接口设置为异步口,同时采用命令modem设置Modem拨号属性;对于异步接口(即Async接口),直接采用modem命令设置Modem拨号属性。
2.5 无法发起拨号拨号接口的IP或者IPX路由失败
如果使用debug ip packet命令打开调试开关后显示路由失败的提示,则使用display ip route命令查看路由是否正确,使用display current-configuration 查看拨号接口的配置,检查拨号接口上的IP或者IPX地址是否配置正确。
拨号接口没有使能
使用debug dialer event命令打开拨号调试开关,如果显示“
DCC: DCC must be Configured on the interface”的提示,则使用采用display current-configuration命令查看拨号接口配置,如果是轮循DCC必须采用dialer enable-circular命令使能DCC;如果是共享DCC(拨号接口采用PPP封装)必须采用dialer user命令和dialer bundle命令来使能。
未配置拨号触发条件
使用debug dialer event和debug dialer packet命令打开DDR相应的调试开关,如果能看到 “DCC: The interface has no dialer-group.”或“DCC: it is an uninteresting packet” 提示信息,则采用display current-configuration命令查看拨号口配置,如果没有在拨号口上配置dialer-group命令,则需添加配置;如果已经配置了dialer-group则查看dialer-group的序号与dialer-rule对应的序号是否一致,并且dialer-rule设置的触发报文类型或者条件是否正确(切记dialer-rule缺省是禁止触发拨号,除非配置为permit)。只有出现“DCC: it is an interesting packet”时才可能正确拨号。
未配置拨号串
使用debug dialer event和debug dialer packet命令,打开DDR相应的调试开关,如果出现“DCC: there is not a dialer route matching this address”和“DCC: there is not a dialer number on the interface,failed,discard packet”调试信息,则使用display current-configuartion命令查看拨号口配置。如果在呼出的接口上既没有配置dialer route命令又没有配置dialer number命令,则说明没有配置拨号串(对于共享DCC必须采用配置dialer number;对于轮循DDR采用二者之一来配置)。对于被呼的接口,如果是同步拨号口则必须同样配置拨号串;如果是其他接口,则可以省略该配置。
2.6 拨号串设置错误主呼端已经发起呼叫,使用debug dialer packet、debug dialer event、debug modem at、debug isdn q931命令打开对应的调试开关,如果在被呼端没有接收到呼叫的信息提示,则首先检查被呼端的物理连接是否正确,如果连接正确,则需要确认被呼端的中继号、BRI号或者电话号与主呼端配置的拨号串是否一致。
2.7 呼叫的建链过程失败主呼端已经发起呼叫,使用debug dialer packet和debug dialer event命令打开DDR调试开关后,如果提示信息正常;而使用debug ppp packet(如果物理接口封装为PPP)没有任何PPP报文输出,并提示“DCC:wait-for-carrier-timeout on a link on interface ***,shutdown!start enable-time”,然后呼叫挂断。按照如下步骤进行分析:
如果采用Modem拨号,使用debug modem at和debug modem event命令打开Modem调试开关,如果提示线路忙说明设置的呼叫号码是自己。如果提示“DCC:wait-for-carrier-timeout on a link on interface ***,shutdown!start enable-time”则可能对端正在使用,或者出现呼叫冲突,也有可能是线路质量比较差。
如果采用ISDN拨号,使用debug isdn q921和debug isdn q931命令打开ISDN调试开关,如果出现RR帧则说明物理连接和Q.921协议运行正常,再通过查看Q.931消息Disconnect或者Release、Release Complete中的Cause原因值来获取呼叫挂断的原因,然后根据具体原因进行修改。
在采用ISDN拨号时交换机的最小和最大号码长度判断很严格。如果在发起呼叫的Setup消息之后,交换机返回Disconnect消息,并且Cause原因值为9c则表明呼叫号码不正确,需要确认交换机配置的最小号长或者最大号长是否正确。
2.8 呼叫冲突两台路由器同时向对端发起呼叫时,按照如下步骤进行分析:
两端同时发起呼叫,如果对端正在被使用,则只有等待对端挂断;
两端采用自动呼叫间隔,并以同样的时间发起呼叫,需要调整自动拨号间隔(命令dialer autodial-interval)或者两次拨号使能时间间隔(命令dialer timer enable),使两端的间隔不一致;
两端都配置了DCC接口负载阈值(命令dialer threshold 0),一个通道呼叫成功后,其他通道的呼叫本应该几乎同时UP,却每次都参差不齐、没有规律,甚至其他通道都可能无法呼叫成功。此时,需要取消一端的dialer threshold配置。
2.9 用户认证失败主呼端已经发起呼叫,使用debug dialer packet和debug dialer event命令打开DDR调试开关,查看到呼叫正常;使用debug ppp packet命令打开PPP调试开关,已经有PPP报文收发。按照如下步骤进行分析:
查看PPP协商报文,如果有PAP或者CHAP认证报文,但是认证过程失败,则使用display current-configuration命令查看两端配置的用户名和密码是否匹配。
如果在拨号口配置的dialer route命令中有name选项,也要确认该用户名与对端的IP是否对应。
对于共享DCC来说,由于是通过用户名来区分每个Dialer口,因此如果作为主呼端,必须在Dialer接口上配置ppp authentication命令来要求对端发送用户名和密码。如果共享DCC作为被呼端,需要通过对端的用户名来查找所属的父接口,因此必须在共享DCC采用的物理接口上配置ppp authentication命令来要求对端发送用户名和密码。
2.10 IP地址协商错误呼叫开始且PPP协商成功,但呼叫被挂断。按照如下步骤进行分析:
使用debug dialer event和debug dialer packet命令打开DDR调试开关,如果看到“DCC:peeraddr matching error on interface ***,shutdown link”的提示,说明对端的IP地址与本端dialer map配置的IP地址一致,所以呼叫被拒绝。
采用dialer string命令进行配置,问题解决。
2.11 PPP回呼失败PPP回呼的Client端呼叫成功,但Server端没有挂断呼叫也没有回呼。按照如下步骤进行分析:
使用debug dialer event和debug dialer packet命令打开DDR调试,如果没有出现“DCC: Link layer transfer callback request with name '' and dialstring '' to DCC on interface”信息,则查看Client端是否配置ppp callback client命令,或者Server端是否配置ppp callback server命令。
如果出现“: Link layer transfer callback request with name '' and dialstring '' to DDR on interface”信息,但没有出现“DCC: Ready to callback, disconnect the income-call first.”信息,则需要查看Server端是否配置dialer callback server命令,如果配置为dialer callback-center user,则表明采用dialer route中与username匹配的拨号串回呼;如果配置为dialer callback-center dial-number则采用local-user 命令中的callback-dialstring来回呼,因此需要查找对应的回呼拨号串是否存在并且正确。
2.12 ISDN回呼失败ISDN被呼端接收到呼叫,但没有挂断呼叫并回呼。按照如下步骤进行分析:
使用debug isdn q931和debug dialer event命令打开调试开关,显示出 “DDR: Receive CALL_CONN_IND”和“DDR: Received
a Caller with ID ' ' in interface”信息,如果ID为空或者ID与Server端的dialer call-in配置的ID不一致,回呼就会失败。
ISDN回呼需要交换机的配合,需要在交换机上配置成:将主叫号码前转并发送给被呼端,这样ISDN回呼才能成功。
2.13 呼叫挂断后,再次呼叫失败使用debug dialer event和debug dialer packet命令打开DDR调试开关,显示“DDR:Enable-timeout is effective ,failed”的提示,则为了防止呼叫过于频繁,DDR要求两次呼叫之间必须有间隔,如果提示“DDR:Enable-timeout is effective ,failed”,则说明该间隔时间还没有超时,只需等待即可。如果设置的时间比较长,可以使用dialer timer enable命令进行修改。