序列通道(STUN)是跨WAN的SDLC訊框的通道。在傳統系統網路架構(SNA)世界中,遠端控制器是透過透過POTS(普通舊式電話服務)或租用線路連線的一組資料機連線到前端處理器(FEP)。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
STUN SDLC最常用於兩種環境:FEP到遠端控制器,AS/400到遠端控制器。
使用Cisco IOS®軟體命令以及AS/400對遠端控制器的特定問題進行故障排除。
隨著網路向整合方向發展,以及遠端辦公室需要不同型別的服務(如NetBIOS、IP、IPX),從維護和成本的角度來看,將所有這些整合到一台裝置是明智的。例如,在下圖中,我們看到將3270個終端整合到具有Windows工作站的NetBIOS流量的主機。
STUN允許使用IP作為WAN或其他媒體網路中同步資料連結控制(SDLC)訊框的傳輸。這樣就不再需要額外的租用線路或POTS。思科路由器的一個SDLC功能是媒體轉換。在媒體轉譯中,路由器會將作業階段從SDLC轉譯為「邏輯連結控制」,型別2(LLC2)。 瞭解和疑難排解SDLC到LLC網路媒體轉譯中將詳細討論此問題。
有兩種型別的STUN配置:STUN Basic和STUN SDLC。前者用於任何高級資料鏈路控制(HDLC)派生型別幀,後者僅用於SDLC幀。STUN Basic也可用於SDLC,但不能使用local-ack等功能。出於故障排除目的,通常使用STUN Basic進行SDLC,因為不需要在路由器上配置SDLC特定的引數。
用於任何STUN配置(基本或SDLC)的第一個命令是stun peer-name。如果沒有stun對等名稱,路由器不會讓您繼續配置步驟。
工作 | 指令 |
---|---|
為特定IP地址啟用STUN。 |
stun peer-name ip-address
|
您必須從路由器中選擇有效的IP地址。此IP地址應該是機箱中最可靠的介面。為獲得最佳結果,請為路由器配置環回介面。(瞭解配置環回介面。
下一步是確定要使用的STUN模式。一種模式是STUN Basic,在該模式下它會查詢幀[7e]的起始和定界符,並將幀傳輸到另一端。在此操作模式下,STUN不關心會話的特定狀態或詳細的SDLC資訊(如輪詢地址)。另一種模式是STUN SDLC。此模式需要在路由器中做出更詳細的決策,尤其是在您運行本地確認或任何型別的多點時。下表描述了用於指定STUN模式的命令:
工作 | 指令 |
---|---|
指定基本協定組並分配組號。 |
stun protocol-group group-number basic
|
指定SDLC協定組並分配組號。 |
stun protocol-group group-number sdlc
|
下一步是為STUN配置串列介面。在介面中選擇的組必須與protocol-group中定義的組匹配。對於虛擬多點,您還應為每個虛擬多點建立具有不同編號的stun protocol-group。請始終確保每個超級使用者組僅配置了一個輔助介面,除非您配置sdlc-tg。請參閱stun protocol-group。
工作 | 指令 |
---|---|
在串列介面上啟用STUN功能。 | encapsulation stun |
將介面置於先前定義的STUN組中。 |
stun group group-number
|
注意:在生產網路期間,請勿在Cisco 7000、Cisco 7500或具有CxBUS、CyBUS的任何其它路由器上配置此配置。此組態會促使路由器將介面的MTU變更為2032位元組,這會產生CBUS緩衝區擷取,並讓路由器的所有介面都彈回(重設)。 在權杖環環境中,這可能表示權杖環將關閉最多16秒。此外,由於Cisco 7000通常處於核心位置,因此此類問題會影響許多使用者。
配置STUN的下一步是新增stun route語句。您可以將其定義為stun route all或stun route [address]。配置選項說明如下。
工作 | 指令 |
---|---|
轉發此IP地址的所有TCP流量。 |
stun route all tcp ip-address
|
指定TCP封裝。 | stun route address address-number tcp ip-address [priority] [tcp-queue-max] |
上述命令適用於TCP封裝對等路由器。您也可以將STUN設定為直接封裝,但很少使用這種設定。最常見的所有配置是STUN本地確認設定。
以下介紹這些命令引數:
stun route語句中的priority選項用於在兩個STUN對等體之間建立多個TCP管道,以便可以使用自定義隊列或優先順序隊列建立優先順序結構。
tcp_queue_max選項增加或減少兩個STUN對等體之間的TCP隊列。如果對等體之間的TCP會話不太可靠,並且您需要確定對等體之間的錯誤是什麼,這非常有用。此選項不常用於STUN環境,除非執行涉及更多流量的STUN FEP到FEP。
下面介紹了用於通過本地確認配置STUN的命令。
工作 | 指令 |
---|---|
為啟用STUN的路由器分配SDLC主角色。 | stun sdlc-role primary |
為啟用STUN的路由器分配SDLC輔助角色。 | stun sdlc-role secondary |
這些命令定義STUN設定的「角色」。對於上圖中的主機,路由器設定為primary,這表示主機是發起會話的主機。這使得3174成為次級配置。使用STUN Basic時,您不必定義角色,因為您不需要知道將由誰啟動會話。但是本地確認需要線路本身的詳細資料,定義角色讓路由器知道會話啟動的流程,路由器在轉到本地確認之前需要檢驗該流程。
註:在執行本地確認的AS/400 STUN環境中,將角色(在行描述中)從*neg設定為*pri非常重要。原因是在純環境(直接數據機連線)中,AS/400可以協商角色。通過對行中的角色進行編碼,您可以確保路由器的角色與AS/400相反。您通常希望AS/400啟動會話(行中的「視情況而定」)。 轉到線路配置並為*pri進行此設定。AS/400顯示行說明如下所示。這只能在建立/複製行說明期間完成。
以下說明使用本地確認配置STUN的命令。
工作 | 指令 |
---|---|
使用TCP封裝建立SDLC本地確認。 | stun route address address-number tcp ip-address [local-ack] [priority] [tcp-queue-max] |
此處的重要引數是具有local-ack的stun route [address]。請記住,STUN local-ack可以使用TCP封裝和幀中繼封裝(使用RFC 1490)完成。
與RSRB和DLSw中一樣,在TCP對等體之間的STUN流中保持連線,以確保對等體連線處於開啟狀態。如果對等體由於keepalive丟失而下降/上升,您可以調整keepalive。用於設定keepalive的STUN命令說明如下:
工作 | 指令 |
---|---|
啟用遠端丟失對等體的檢測。 |
stun remote-peer-keepalive seconds
|
在宣佈對等裝置「關閉」之前嘗試對等連線的次數。 | stun keepalive-count數量 |
STUN Basic是STUN的最簡單配置。在此模式下,路由器從一端接收的所有資料包都將傳輸到另一端。STUN基本配置如下圖所示:
上圖中的路由器配置如下:
4700 | 2522 |
---|---|
Current configuration: ! version 10.3 service udp-small-servers service tcp-small-servers ! hostname s5e ! stun peer-name 10.17.5.1 stun protocol-group 1 basic ! interface Loopback1 no ip address ! interface Serial0 ip address 10.17.5.1 255.255.255.0 clockrate 2000000 ! interface Serial1 no ip address encapsulation stun nrzi-encoding clockrate 56000 stun group 1 stun route all tcp 10.17.5.2 ! |
Current configuration: ! version 11.0 no service pad service udp-small-servers service tcp-small-servers ! hostname rick ! stun peer-name 10.17.5.2 stun protocol-group 1 basic ! interface Serial0 ip address 10.17.5.2 255.255.255.0 no fair-queue no cdp enable ! interface Serial1 ip address 10.17.92.4 255.255.255.0 no fair-queue no cdp enable ! interface Serial2 no ip address encapsulation stun nrzi-encoding clockrate 56000 stun group 1 stun route all tcp 10.17.5.1 |
4700 | 2522 |
---|---|
Current configuration: ! version 10.3 service udp-small-servers service tcp-small-servers ! hostname s5e ! stun peer-name 10.17.5.1 stun protocol-group 1 sdlc ! interface Loopback1 no ip address ! interface Serial0 ip address 10.17.5.1 255.255.255.0 clockrate 2000000 ! interface Serial1 no ip address encapsulation stun nrzi-encoding clockrate 56000 stun group 1 stun sdlc-role secondary sdlc address DD stun route address DD tcp 10.17.5.2 ! |
Current configuration: ! version 11.0 no service pad service udp-small-servers service tcp-small-servers ! hostname rick ! stun peer-name 10.17.5.2 stun protocol-group 1 sdlc ! interface Serial0 ip address 10.17.5.2 255.255.255.0 no fair-queue no cdp enable ! interface Serial1 ip address 10.17.92.4 255.255.255.0 no fair-queue no cdp enable ! interface Serial2 no ip address encapsulation stun nrzi-encoding clockrate 56000 stun group 1 stun sdlc-role primary sdlc address DD stun route address DD tcp 10.17.5.1 |
4700 | 2522 |
---|---|
hostname s5e ! ! ! stun peer-name 10.17.5.1 stun protocol-group 1 sdlc stun remote-peer-keepalive 5 ! interface Serial0 ip address 10.17.5.1 255.255.255.0 clockrate 2000000 ! interface Serial1 no ip address encapsulation stun idle-character marks nrzi-encoding clockrate 56000 stun group 1 stun sdlc-role secondary sdlc K 1 sdlc address 01 sdlc address DD stun route address 1 tcp 10.17.5.2 local-ack stun route address DD tcp 10.17.5.2 local-ack ! |
hostname rick ! ! ! stun peer-name 10.17.5.2 stun protocol-group 1 sdlc stun remote-peer-keepalive 5 ! interface Serial0 ip address 10.17.5.2 255.255.255.0 no fair-queue no cdp enable ! interface Serial2 no ip address encapsulation stun nrzi-encoding clockrate 56000 stun group 1 stun sdlc-role primary sdlc address DD stun route address DD tcp 10.17.5.1 local-ack ! interface Serial3 no ip address encapsulation stun clockrate 19200 stun group 1 stun sdlc-role primary sdlc address 01 stun route address 1 tcp 10.17.5.1 local-ack |
注意:在AS400路由器上,我們使用sdlc k1和空閒字元標籤。有關詳細資訊,請參閱Field Alert部分。
用於STUN的第一個show命令是show stun。此命令的輸出取決於您是將STUN Basic或STUN SDLC與local-ack配合使用。在下面顯示的STUN Basic部分中,您只能看到傳輸和接收的資料包。
rick#sh stun This peer: 10.17.5.2 *Serial2 (group 1 [basic]) state rx_pkts tx_pkts drops all TCP 10.17.5.1 closed 5729 5718 0
在帶有如下所示的local-ack部分的STUN SDLC中,可以獲得更多資訊,因為現在會話的狀態已知。
rick#sh stun This peer: 10.17.5.2 *Serial2 (group 1 [sdlc]) state rx_pkts tx_pkts drops poll DD TCP 10.17.5.1 open * 182 94 0 Serial3 (group 1 [sdlc]) state rx_pkts tx_pkts drops poll 1 TCP 10.17.5.1 open * 209 89 0 SDLC Local Acknowledgement: *Serial2 (group 1 [sdlc]) slack_state conn disc iframe_s iframe_r DD TCP 10.17.5.1 Active 1 0 0 0 Serial3 (group 1 [sdlc]) slack_state conn disc iframe_s iframe_r 1 TCP 10.17.5.1 Active 1 0 3 3
show interface命令也會提供不同的資訊,這取決於您是在執行STUN Basic還是STUN SDLC。STUN Basic的show interface與常規串列線路的顯示介面相同。
Serial2 is up, line protocol is up Hardware is CD2430 in sync mode MTU 1500 bytes, BW 115 Kbit, DLY 20000 usec, rely 255/255, load 1/255 Encapsulation STUN, loopback not set Last input 1:10:40, output 0:18:12, output hang never Last clearing of "show interface" counters 0:21:49 Output queue 0/40, 0 drops; input queue 0/75, 0 drops 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 0 packets input, 0 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 4 packets output, 312 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets, 0 restarts 0 output buffer failures, 0 output buffers swapped out 0 carrier transitions DCD=up DSR=up DTR=up RTS=up CTS=up
含本機確認的STUN SDLC的show interface提供詳細資訊。local-ack串列介面的輸出示例如下所示。
Serial3 is up, line protocol is up Hardware is CD2430 in sync mode MTU 1500 bytes, BW 115 Kbit, DLY 20000 usec, rely 255/255, load 1/255 Encapsulation STUN, loopback not set Router link station role: PRIMARY (DCE) Router link station metrics: slow-poll 10 seconds T1 (reply time out) 3000 milliseconds N1 (max frame size) 12016 bits N2 (retry count) 20 poll-pause-timer 10 milliseconds poll-limit-value 1 k (windowsize) 7 modulo 8 sdlc addr 01 state is CONNECT VS 1, VR 0, Remote VR 1, Current retransmit count 0 Hold queue: 0/200 IFRAMEs 16/12 TESTs 0/0 XIDs 0/0, DMs 0/0 FRMRs 0/0 RNRs 316/0 SNRMs 2/0 DISC/RDs 1/0 REJs 0/0 Poll: clear, Poll count: 0, ready for poll, chain: 01/01 Last input 0:00:00, output 0:00:00, output hang never Last clearing of "show interface" counters 1d06 Output queue 0/40, 0 drops; input queue 0/75, 0 drops 5 minute input rate 0 bits/sec, 1 packets/sec 5 minute output rate 0 bits/sec, 1 packets/sec 332226 packets input, 664647 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 332227 packets output, 665220 bytes, 0 underruns 0 output errors, 0 collisions, 3444 interface resets, 0 restarts 0 output buffer failures, 0 output buffers swapped out 5 carrier transitions DCD=up DSR=up DTR=up RTS=up CTS=up
部分輸出解釋如下:
MTU是介面使用的緩衝區的實體大小。
PRIMARY(DCE)表示這是線路上的輪詢站,我們提供時鐘。如果我們檢視附加到實際主節點的一側,則此輸出將為SECONDARY。
N1是可由路由器的串列介面容納的SDLC幀的可用大小值。
T1是線上路超時之前我們預計輪詢應答的時間量。
poll-pause-timer是兩次投票之間的增量時間(毫秒)。
k是投票期末之間可以有未完成的視窗大小或幀數。
state是會話的當前狀態,可以是以下狀態之一:
斷開連線
已連線
THEMBUSY(通常由於此路由器接收RNR而設定。)
USBUSY(通常是在網路側未收到響應的結果。)
RNRs是傳送/接收的RNRs數。
DTR/RTS是大多數半雙工多址環境中使用的線路。調試任何STUN環境並檢視控制器位置時,請密切注意RTS。如果DTR和CTS高時此值間歇下降,則很可能是DTE為半雙工的結果。
STUN的最後一個重要show命令是show tcp命令,該命令提供有關對等體之間的TCP會話的資訊。輸出示例如下所示:
Stand-alone TCP connection from host 10.17.5.1 Connection state is ESTAB, I/O status: 1, unread input bytes: 0 Local host: 10.17.5.2, Local port: 1994 Foreign host: 10.17.5.1, Foreign port: 11035 Enqueued packets for retransmit: 0, input: 0, saved: 0 Event Timers (current time is 0x1B2E50): Timer Starts Wakeups Next Retrans 229 0 0x0 TimeWait 0 0 0x0 AckHold 229 0 0x0 SendWnd 0 0 0x0 KeepAlive 0 0 0x0 GiveUp 0 0 0x0 PmtuAger 0 0 0x0 iss: 2847665974 snduna: 2847667954 sndnxt: 2847667954 sndwnd: 9728 irs: 3999497423 rcvnxt: 3999499452 rcvwnd: 9672 delrcvwnd: 568 SRTT: 300 ms, RTTO: 607 ms, RTV: 3 ms, KRTT: 0 ms minRTT: 0 ms, maxRTT: 300 ms, ACK hold: 300 ms Flags: passive open, higher precedence Datagrams (max data segment is 1460 bytes): Rcvd: 459 (out of order: 0), with data: 229, total data bytes: 2028 Sent: 457 (retransmit: 0), with data: 228, total data bytes: 1979
排除STUN配置故障與任何點對點慣例相同。如果您在傳輸中遇到問題,則需要先診斷此問題,然後才能開始對SDLC/STUN部分進行故障排除。通常,第一步是從對等點執行ping,確保IP設定正確。此外,使用擴展資料包型別ping可確保傳輸可靠。
本節介紹如何對STUN基本設定進行故障排除。在本示例中,假設WAN運行正常。
此方案使用STUN Basic設定將5494連線到AS/400。使用任何STUN設定首先要驗證的是對等項已在路由器中設定。要確定這一點,請使用show stun peer命令。它提供有關對等體狀態以及已傳輸/接收的資料包的資訊。輸出示例如下所示:
rick#sh stun peer This peer: 10.17.5.2 *Serial2 (group 1 [basic]) state rx_pkts tx_pkts drops all TCP 10.17.5.1 open 5729 5718 0
如果對等體是開啟的(如上所述),請使用show interface命令來確定資料包的運行情況。此命令的輸出示例如下所示:
Serial2 is up, line protocol is up Hardware is CD2430 in sync mode MTU 1500 bytes, BW 115 Kbit, DLY 20000 usec, rely 255/255, load 1/255 Encapsulation STUN, loopback not set Last input 1:10:40, output 0:18:12, output hang never Last clearing of "show interface" counters 0:21:49 Output queue 0/40, 0 drops; input queue 0/75, 0 drops 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 0 packets input, 0 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 4 packets output, 312 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets, 0 restarts 0 output buffer failures, 0 output buffers swapped out 0 carrier transitions DCD=up DSR=up DTR=up RTS=up CTS=up
首先,檢驗路由器是否已啟動所有串列訊號。在上方輸出的底部,我們可以看到2522上「Serial2」的所有訊號都是「up」的。DTR和RTS表示控制器已啟用線路本身,並等待AS/400傳送初始會話。
接下來,檢查路由器的AS/400端的show interface。在下面的輸出中,我們看到連線到AS/400的串列介面關閉/關閉。這意味著AS/400可能「各不相同」。 如果線路「變為on」,但您無法將線路接通或正在運行半雙工,則需要檢查RS-232/V.35連線。
Serial1 is down, line protocol is down Hardware is HD64570 MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec, rely 255/255, load 1/255 Encapsulation STUN, loopback not set Last input never, output 1:51:24, output hang never Last clearing of "show interface" counters 0:00:01 Output queue 0/40, 0 drops; input queue 0/75, 0 drops 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 0 packets input, 0 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 0 packets output, 0 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets, 0 restarts 0 output buffer failures, 0 output buffers swapped out 0 carrier transitions DCD=up DSR=up DTR=down RTS=down CTS=up s5e#
此時,請檢查該特定控制器的「使用配置狀態」,該控制器是一個AS/400螢幕,如下所示:
接下來,根據線條定義有所不同。接著您應該看到路由器已啟動/啟動。如果線路開啟/開啟,但控制器仍沒有開啟,請檢查介面以驗證是否有任何資料包從AS/400進入介面。如果計數為零,請檢查AS/400上SDLC線路的編碼機制。它位於顯示線路說明中,如下所示。
注意:在此螢幕上,我們可以看到為NRZI編碼設定了行編碼。這需要在路由器上使用配置選項nrzi-encoding開啟。
與傳統SDLC點對點約定一樣,此設定不需要NRZ/NRZI端對端編碼,但在一端可以是NRZI,而在另一端可以是NRZ。但是請記住,共用SDLC線路的裝置之間的編碼必須相同。
NRZI需要仔細考慮。在Cisco 2500和4500等新路由器中,NRZI通過軟體設定。但是對於較舊的平台(包括思科4000的NP-2T),您需要更改主機板上的跳線。在這種情況下,將AS/400改為NRZ/NRZI可能更容易。但是,如果您需要更改跳線,請參閱特定平台的思科硬體文檔。
如果問題仍然存在,請執行debug stun packet 1。此命令提供以下資訊:
STUN basic: 0:00:35 Serial1 SDI: Data: c0bf324c056452530000 %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1, changed state to down %LINK-3-UPDOWN: Interface Serial1, changed state to down STUN basic: 0:00:38 Serial1 SDI: Data: c0bf324c056452530000 %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1, changed state to up %LINK-3-UPDOWN: Interface Serial1, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1, changed state to down STUN basic: 0:00:35 Serial1 SDI: Data: c0bf324c056452530000 %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1, changed state to up %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial1, changed state to down %LINK-3-UPDOWN: Interface Serial1, changed state to down
您可以看到有幾個XID從AS/400流出,但沒有收到響應(CO是輪詢地址,bf是XID)。 我們知道資料包來自AS/400,因為資料包來自SDI。此命令輸出中有兩種型別的傳入資料包:
SDI:串列傳入,即從SDLC介面接收的資料包。
NDI:網路傳入,即從WAN解封裝的資料包。
接下來,檢視幀本身的XID部分。在本示例中,AS/400正在傳送XID以及其IDBLOCK和IDNUM, 05645253。
這是一個超時問題,因為控制器沒有響應。在AS/400中,檢視「sysopr消息隊列」以檢視是否存在指示問題的消息。出現故障的「SYSOPR」螢幕如下所示。
現在,在2522上啟用debug stun packet 1,檢視封包是否傳送到控制器。命令輸出示例如下所示:
STUN basic: 0:00:34 Serial2 NDI: Data: c0bf324c056452530000 STUN basic: 0:00:42 Serial2 NDI: Data: c0bf324c056452530000
這顯示源自AS/400端的XID正在傳遞到控制器,但控制器沒有響應,這意味著這是一個控制器問題。show interface會顯示所有控制引線是否都已啟動:
Serial2 is up, line protocol is up Hardware is CD2430 in sync mode MTU 1500 bytes, BW 115 Kbit, DLY 20000 usec, rely 255/255, load 1/255 Encapsulation STUN, loopback not set Last input 0:50:56, output 0:00:23, output hang never Last clearing of "show interface" counters 0:02:06 Output queue 0/40, 0 drops; input queue 0/75, 0 drops 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 0 packets input, 0 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 1 packets output, 78 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets, 0 restarts 0 output buffer failures, 0 output buffers swapped out 0 carrier transitions DCD=up DSR=up DTR=up RTS=up CTS=up
控制引線為up,介面為up/up。我們還可以看到路由器正在輸出資料包,但沒有資料包傳入。這指向AS/400上配置的輪詢地址不正確,因此下一步是驗證控制器的輪詢地址。
每種型別的控制器都有配置輪詢地址的唯一方法,因此您需要使用控制器的控制器手冊進行驗證。
在本例中,我們發現控制器正在使用輪詢地址「DD」。 在AS/400上更改此設定後,debug stun packet的輸出變為:
STUN basic: 0:24:03 Serial2 NDI: Data: ddbf324c056452530000 STUN basic: 0:00:00 Serial2 SDI: Data: ddbf3244073000dd0000 STUN basic: 0:00:00 Serial2 NDI: Data: dd93 STUN basic: 0:00:00 Serial2 SDI: Data: dd73 STUN basic: 0:00:00 Serial2 NDI: Data: dd11 STUN basic: 0:00:00 Serial2 SDI: Data: dd11 STUN basic: 0:00:00 Serial2 NDI: Data: dd11 STUN basic: 0:00:00 Serial2 SDI: Data: dd102f00000200016b80 STUN basic: 0:00:00 Serial2 NDI: Data: dd31 STUN basic: 0:00:00 Serial2 SDI: Data: dd11 STUN basic: 0:00:00 Serial2 NDI: Data: dd31 STUN basic: 0:00:00 Serial2 SDI: Data: dd11 . . . . STUN basic: 0:00:00 Serial2 NDI: Data: dd31 STUN basic: 0:00:00 Serial2 SDI: Data: dd71 STUN basic: 0:00:00 Serial2 NDI: Data: dd362f00020080004b80 STUN basic: 0:00:00 Serial2 NDI: Data: dd31 STUN basic: 0:00:00 Serial2 NDI: Data: dd53 STUN basic: 0:00:00 Serial2 SDI: Data: dd73
此調試輸出有助於確定以下資訊:
STUN basic: 0:24:03 Serial2 NDI: Data: ddbf324c056452530000
此行包含從AS/400到控制器的XID。這些來源包括NDI(來自雲)、dd(輪詢地址)、bf(XID)以及IDBLOCK和IDNUM(05645253)。
STUN basic: 0:00:00 Serial2 SDI: Data: ddbf3244073000dd0000
這是來自控制器的響應。這一點由SDI(來自SDLC線路)表示,與上面相同,但XID響應(073000dd)除外,因為這是5494。
STUN basic: 0:00:00 Serial2 NDI: Data: dd93
這是從AS/400到控制器的SNRM(93),這是此配置中的主要配置。
STUN basic: 0:00:00 Serial2 SDI: Data: dd73
此處我們看到控制器使用UA(73)回應(SDI),這表示作業階段已啟動且執行。接下來,我們應看到AS/400的斷線是因線路不同而造成的。
STUN basic: 0:00:00 Serial2 NDI: Data: dd53 STUN basic: 0:00:00 Serial2 SDI: Data: dd73
這些行顯示DISK(53)和UA響應。線路現在關閉。下表包含調試這些問題所需的值。
控制欄位 — 未編號(1位元組) | ||
---|---|---|
000z 0011 0001 0111 0001 0111 0001 1111 0011 0011 0101 0011 0101 0011 0101 0011 0111 0011 1001 0011 1001 0111 101z 1111 110z 0111 111z 0011 |
03-13 UI 07-17 SIM 07-17 RIM 0F-1F DM 23-33 UP 43-53 DISC 43-53 RD 43-53 RD 63-73 UA 83-93 SNRM 87-97 FRMR AF-BF XID C7-D7 CFGR E3-F3 TEST |
Unnumbered Information Set Initialization mode Request Intialization Mode Secondary in Disconnect Mode Unumber Poll Disconnect Request Disconnect Secondary Requests Disconnect Unnumbered Acknowledgement Set Normal Response Mode Frame Reject Exchange Identification Configure I-Field contains test pattern |
控制欄位 — 監督(2個位元組) | ||
---|---|---|
rrrz cc01 rrrz 0001 rrrz 0101 rrrz 1001 |
xx-xx x1-x1 x5-x5 x9-x9 |
Supervisory Format Receiver Ready Receiver Not Ready Reject |
控制欄位 — 資訊幀(2位元組) | ||
---|---|---|
rrr1 sssz |
xx-xx |
Information format |
主要:
z =輪詢最終位可以是0或1
rrr =預期接收的塊數
sss =正在傳送的塊數
本節介紹配置了本地確認的相同場景。
與STUN Basic不同,STUN SDLC要求您指定正確的輪詢地址,否則路由器甚至不會看到資料包進入。因此,如果您沒有資訊,或者無法到達主機或AS/400,有時會使用STUN Basic來查詢輪詢地址。上圖顯示了具有local-ack的多點方案。
在傳統的點對點環境中,輪詢是端對端的。引入本地確認時,輪詢在雲的每一端終止,因此每台路由器都必須維護一個有限狀態機。此電腦會跟蹤所有會話,並需要瞭解每個輪詢站線路的狀態。因此,您必須確保工作站遵循SDLC協定。
首先,驗證您具有正確的STUN角色。在傳統的點對點環境中,AS/400無法與控制器協商角色。行說明如下所示。
這顯示路由器介面需要配置輔助角色。請始終檢查該線路並驗證它是否為*PRI,因為在建立該線路時,AS/400預設為*NEG。NRZI設置為*YES,因此您需要對nrzi編碼進行編碼。此外,使用sdlc k 1對idle-character標籤進行編碼,並將視窗設定為一(1)。(請參閱FNA-IOS-0696-02 Field Alert以瞭解有關介面上為何需要idle-character標籤的詳細說明。) 此編碼如下所示:
interface Serial1 no ip address encapsulation stun idle-character marks nrzi-encoding clockrate 56000 (real clockrate on the line; see note about as400 line speed) stun group 1 stun sdlc-role secondary (this must be secondary because the line is primary) sdlc K 1 sdlc address 01 sdlc address DD stun route address 1 tcp 10.17.5.2 local-ack stun route address DD tcp 10.17.5.2 local-ack
註:路由器提供的計時與AS/400線路上配置的線路速度引數無關。(此引數用於效能計算;可以保留為預設值9600。) 線路上配置的Exchange識別符號是AS/400的識別符號,例如AS/400將傳送的XID。Maximum controllers是可建立和連線到此線路的PU(控制器)的數量。
連線到此線路的兩個控制器中的第一個IBM 5494顯示在下面的螢幕中。
我們可以看到第一個控制器將是PU 2.1,因為控制器的類別是「*APPC」。 這是高級程式到程式通訊的縮寫,只能通過T2.1連線完成。遠端網路識別符號再次與APPN/APPC相關,稱為「NETID」。 "*NETATR"是一個引數,指定使用名為"Network Attributes"的資料區域中定義的NETID。" 您可以使用命令DSPNETA顯示此資料區域,並相應地替換這些值。「遠端控制點」或「CP_name」是您在PU2.1中配置的控制點名稱。在這種情況下,它是CP5494。資料鏈路角色可以保留為*NEG。「站位位址」需要與輔助介面和一個主要介面上設定的「sdlc address DD」相符。
interface Serial2 no ip address encapsulation stun nrzi-encoding clockrate 56000 stun group 1 stun sdlc-role primary sdlc address DD stun route address DD tcp 10.17.5.1 local-ack
您可以看到,控制器說明中的大多數資訊都與物理單元本身有關,無法在路由器中配置。
在此螢幕上,第二個控制器(PU)實際上是3174,它是PU型別2。在此3174中配置的XID是05600001。正在使用的「工作站地址」或sdlc地址是01。您需要一個在輔助介面和一個遠端主介面上配置的「sdlc地址01」。如下圖所示,PU2的配置比PU2.1涉及的少。
interface Serial3 no ip address encapsulation stun clockrate 19200 stun group 1 stun sdlc-role primary sdlc address 01 stun route address 1 tcp 10.17.5.1 local-ack
AS/400中的顯示網路屬性(DSPNETA)如下所示:
此畫面顯示,AS/400目前設定為網路ID「NETA」,這表示需要為同一網路設定5494。該配置及其他APPN特定配置可在5494的第二個配置螢幕上找到。AS/400的本地控制點名稱為「RTP400A」。 AS/400的LU名稱為「LU9404」;這需要與5494的合作夥伴LU定義欄位中的配置相匹配。5494使用的模式說明必須與裝置說明中的內容匹配。例如,如果裝置顯示「*NETATR」,則需要匹配預設值「BLANK」。
為5494建立的APPC裝置說明如下所示。
此螢幕顯示5494的裝置說明具有遠端CP名稱「CP5494」;這需要與5494上配置的內容匹配。NETID和本地位置預設為「*NETATR」,在上一個示例中編碼為LU9404和NETA。同樣,這些欄位需要與5494中的合作夥伴LU名稱和NETID欄位匹配。
與建立連線相關的最後一段裝置配置如下所示。
此螢幕顯示裝置描述上使用的模式為「QRMTWSC」。 這不是在*NETATR中找到的預設值,因此這意味著已在裝置說明中覆蓋了該預設值。這是IBM提供的預設模式之一,作為AS/400上基本APPN支援的一部分。如果您看到任何不同的模式,請與IBM聯絡,因為他們的運行模式描述是他們所建立的。此示例建立基本連線;如果要顯示有關可用模式的資訊,可使用命令WORKMODD或Work Mode Descriptions。
模式說明如下所示。
此螢幕清楚地標識IBM提供的模式定義。
在使用AS/400的多點環境中執行本地確認時,請注意在AS/400、SYS/38和SYS/36小型大型機上如何實現「SDLC全雙工多點介面」。FNA-IOS-0696-02 Field Alert(包含在下面)解釋了這種情況下可能發生的問題的型別。
如果AS/400應用了IBM PTF# MF10030,將「載波檢測」連線到地面的路由器電纜修改不會阻止從AS/400進行定期SDLC線路重置。此警報僅適用於到AS/400的STUN全雙工多丟棄連線,其中路由器SDLC電纜已修改為禁用載波檢測。
使用者可能會遇到對STUN連線和所有SDLC輔助裝置的定期重置,從而導致連線不可靠。
在多丟棄環境中,AS/400的行為與其他IBM裝置的行為不同。FEP接受0x7E字元(標誌)或0xFF字元(標籤)作為幀之間的「空閒」空間,而AS/400則以不同方式處理標誌和標籤。只有標籤被解釋為空閒字元。標誌被解釋為「線路仍處於活動狀態 — 更多資料處於掛起狀態」。 思科路由器可以配置為傳送標誌或標籤,但不能同時傳送兩者。它不會在兩者之間交替以反映線路狀態。預設為路由器傳送旗標。
這種差異在全雙工多址環境中會造成問題。通常AS/400會從一個裝置轉到另一個裝置,為每個裝置輪詢資料。如果裝置無法響應,並且AS/400認為線路仍處於活動狀態,則它會重置整個線路。由於預設設定是路由器傳送標誌,因此AS/400將始終看到一條活動線路,並且將會重置線路,而不是簡單地輪詢下一個裝置。
為了避免此問題,思科以前曾建議修改電纜以禁用載波檢測(CD)訊號。此修改利用AS/400邏輯,將載波缺失解釋為「空閒線路狀態」。 因此,經過修改後,無論路由器傳送幀間字元,AS/400始終檢測空閒線路狀態。因此,如果輔助裝置無法響應,AS/400將檢查CD,檢視空閒線路並繼續輪詢下一站。
最近,IBM發佈了AS/400問題修復PTF# MF10030,它改變了多丟棄線路上的載波檢測邏輯。安裝此修復程式後,AS/400會完全忽略全雙工多址線路上CD的狀態。因此,思科電纜修改在防止週期性線路重置方面不再有效。
有兩種變通方法,具體取決於路由器型號和運行的Cisco IOS版本。這兩個選項都要求對連線到AS/400的路由器進行配置更改。
將SDLC空閒字元從預設標誌字元更改為標籤字元。可使用路由器介面配置命令更改空閒字元:
idle-character marks
將此命令新增到連線到AS/400的SDLC串列介面。此命令將導致路由器始終傳輸標籤字元,以便在幀之間暫停。因此,如果輔助裝置錯過輪詢,AS/400將看到一條空閒線路,並繼續輪詢下一個裝置。遺憾的是,這也意味著AS/400將處於空閒狀態,即使有更多資料幀從裝置傳出。AS/400將只確認第一個幀,即使輪詢/最終位為0也是如此。然後它將忽略所有後續幀,並輪詢下一個裝置,從而導致不必要的幀重新傳輸。為了避免重新傳輸,您還必須使用以下命令將SDLC視窗大小設定為1:
sdlc k 1
注意:idle-character命令在Cisco IOS版本10.0(5.2)及更高版本中受支援,並且在2500s、4x00和NP-4T路由器以及70x0/75xx路由器上運行。
使用interface命令啟用檢測非活動的輔助裝置:
stun quick-response
此命令將導致路由器對AS/400輪詢的任何非活動輔助裝置使用「斷開模式」(DM)幀進行響應。然後,AS/400會繼續輪詢下一個裝置,而不重置線路。
註:Cisco IOS 11.1、11.0(3.1)及更高版本或10.3(7.2)及更高版本支援此命令。
提示:如果遇到任何問題,請使用配置快速響應的多點線路,請使用選項1。路由器中的stun quick-response代碼是有限狀態機的一部分,用於本地ack,該狀態機可能與某些PU失步。我們在實驗室測試了該代碼,並驗證了其與5494、5394和Perl494E的互操作性。如果您嘗試連線的PU具有與quick_response預期不同的計時器,則可能會出現問題。