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命令進行修改。