Serial Tunneling(STUN; シリアル トンネリング)とは、SDLC フレームを WAN 内でトンネリングすることです。従来のシステム ネットワーク アーキテクチャ(SNA)の分野では、リモート コントローラは POTS(一般電話サービス)または専用回線に接続された一連のモデムを介してフロントエンド プロセッサ(FEP)に接続されます。
ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。
STUN SDLC が最も一般的に使用されているのは、次の 2 つの環境です。FEP とリモート コントローラ、AS/400 とリモート コントローラを接続。
Cisco IOS®ソフトウェアコマンドおよびAS/400を使用したSTUNのトラブルシューティングから、リモートコントローラ固有の問題まで。
ネットワークの統合が進みリモート オフィスに異なるサービス(NetBIOS、IP、IPX など)が必要になるにつれ、メンテナンスとコストの観点から、すべてのサービスを単一のデバイスに統合することが当然なこととなりました。たとえば、次の図では Windows ステーションの NetBIOS トラフィックで 3270 端末をホストに統合しています。
STUN では IP を使用して、Synchronous Data Link Control(SDLC)フレームを WAN またはその他のメディアのネットワーク経由で転送することができます。これにより、専用線や POTS を新たに準備する必要がなくなります。Cisco ルータの SDLC 機能の 1 つに、メディア変換機能があります。メディア変換では、ルータがセッションを SDLC から論理リンク制御タイプ 2(LLC2)に変換します。 これについては、「SDLC から LLC へのネットワークメディア変換の説明とトラブルシューティング」で詳しく説明しています。
STUN には 2 種類の設定があります。STUN Basic と STUN SDLC の 2 つです。STUN Basic は、High-Level Data Link Control(HDLC; ハイレベル データ リンク コントロール)から派生するタイプのフレームに使用され、STUN SDLC は SDLC だけのフレームに使用されます。SDLC に STUN Basic を使用することも可能ですが、ローカル ACK などの機能は使用できません。SDLC のトラブルシューティングには、一般に STUN Basic を使用します。これは、ルータに SDLC 固有のパラメータを設定する必要がないからです。
STUN 設定(Basic または SDLC)の最初のコマンドは、stun peer-name コマンドです。このコマンドを実行しないと、ルータで次の設定手順に進めません。
タスク | コマンド |
---|---|
特定の IP アドレスに対して STUN を有効化する。 |
stun peer-name ip-address
|
ルータから有効な IP アドレスを選択する必要があります。この IP アドレスは、ルータ内で最も信頼できるインターフェイスにする必要があります。最適な結果を得るには、ループバック インターフェイスを使用してルータを設定してください。(ループバックインターフェイスの設定について学習します。
次に、使用する STUN モードを決定します。STUN Basic では、フレームの開始とデリミタ([7e])を探して、相手側にフレームが転送されます。この動作モードでは、STUN はセッションの特定の状態や詳細な SDLC 情報(ポーリング アドレスなど)を考慮しません。もう 1 つのモードは STUN SDLC です。ローカル ACK やマルチポイントを使用する場合に特に言えることですが、このモードではルータに、より詳細な内容についての決定が要求されます。次の表に、STUN モードの指定に使用するコマンドを示します。
タスク | コマンド |
---|---|
基本プロトコル グループを指定し、グループ番号を割り当てる。 |
stun protocol-group group-number basic
|
SDLC プロトコル グループを指定し、グループ番号を割り当てる。 |
stun protocol-group group-number sdlc
|
次に、シリアル インターフェイスを STUN 用に設定します。インターフェイスで選択するグループは、protocol-group で定義したグループに一致している必要があります。仮想マルチポイントの場合、各仮想マルチポイントに別々の番号を使用して stun protocol-group(STUN プロトコル グループ)を作成する必要があります。sdlc-tg を設定するのでない限り、常に、stun-group ごとにセカンダリ インターフェイスを 1 つだけ設定してください。『STUN プロトコルグループ』を参照してください。
タスク | コマンド |
---|---|
シリアル インターフェイスで STUN 機能を有効化する。 | encapsulation stun |
インターフェイスを前の手順で定義した STUN グループに入れる。 |
stun group group-number
|
注:実稼働ネットワーク時には、Cisco 7000、Cisco 7500、またはCxBUS、CyBUSを持つ他のルータでは、この設定を行わないでください。この設定は、ルータのインターフェイスの MTU を 2,032 バイトに変更します。これにより 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 のローカル ACK の設定です。
次に、このコマンドのパラメータついて説明します。
stun route 文の priority オプションは、2 つの STUN ピア間に複数の TCP パイプを作成し、カスタム キューイングまたはプライオリティ キューイングを使用したプライオリティ構造を作成するのに使用します。
tcp_queue_max オプションは、2 つの STUN ピア間の TCP キューを増減するのに使用します。これは、ピア間の TCP セッションの信頼性があまり高くなく、ピア間の問題点を特定する必要がある場合に便利です。トラフィックの多い STUN FEP 間では使用されます。
次の表に、ローカル ACK を行う STUN の設定コマンドを示します。
タスク | コマンド |
---|---|
STUN 対応ルータに SDLC プライマリ ロールを割り当てる。 | stun sdlc-role primary |
STUN 対応ルータに SDLC セカンダリ ロールを割り当てる。 | stun sdlc-role secondary |
これらのコマンドは、STUN 設定の「ロール」を定義します。上の図のホストの場合、ルータは primary に設定されます。つまり、セッションを開始するのはホストです。これにより 3174 はセカンダリになります。STUN Basic を使用している場合、セッションの開始側を把握する必要がないためロールの定義は不要です。ただし、ローカル ACK には回線自体の詳細が必要になるため、ロールを定義することでルータにセッション開始のフローを知らせます。ルータはこれを確認してから、ローカル ACK に移る必要があります。
注:ローカル確認応答を行うAS/400 STUN環境では、*negからロール(行の説明)を*priに設定することが非常に重要です。これは、純粋な環境(直接モデム接続)では、AS/400 でロールのネゴシエーションが可能であるからです。回線に存在するロールをコーディングすることで、ルータのロールがAS/400と逆であることを確認できます。通常、AS/400にセッションを開始させる必要があります(回線の「変化」をオンにします)。 回線の設定に進み、この設定を *pri に対して行います。AS/400 により、次のような回線デスクリプションが表示されます。これは、回線デスクリプションの作成またはコピー中にだけ設定できます。
次の表に、ローカル ACK を行う STUN の設定コマンドを示します。
タスク | コマンド |
---|---|
TCP カプセル化を使用して SDLC ローカル ACK を確立する。 | stun route address address-number tcp ip-address [local-ack] [priority] [tcp-queue-max] |
ここで重要なパラメータは、ローカル ACK を行う stun route [address] です。STUN ローカル ACK は、TCP カプセル化とフレームリレー カプセル化(RFC 1490 を使用)でだけ行うことができます。
RSRB と DLSw での場合と同様、TCP ピア間の STUN フローのキープアライブによってピア接続が up になっていることを確認します。キープアライブの消失によりピアがダウンやアップする場合は、キープアライブの調節を行います。次の表に、キープアライブを設定する STUN コマンドを示します。
タスク | コマンド |
---|---|
切断されたリモート ピアの検出を有効化する。 |
stun remote-peer-keepalive seconds
|
ピアの「ダウン」を宣言するまでに、ピア接続を試行する回数 | stun keepalive-count quantity |
STUN Basic は STUN の最もシンプルな構成です。このモードでは、ルータが片方の側から受信するすべてのパケットが次のルータに転送されます。以下の図に、STUN Basic の設定を示します。
このダイアグラムのルータは、次のように設定されています。
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とidle-character marksを使用しました。詳細については、「フィールド アラート」のセクションを参照してください。
STUN で使用する最初の show コマンドは show stun です。このコマンドの出力は、STUN Basic を使用している場合と、ローカル ACK を行う STUN SDLC を使用している場合で異なります。以下に示す 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
ローカル ACK を行う STUN SDLC での show interface の実行結果には、さらに多くの情報が含まれます。次に、ローカル 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 :P/F 間で未処理のまま保持できるウィンドウ サイズまたはフレーム数。
state:次のいずれかの値を取る、現在のセッション状態。
DISCONNECT
ネットワークに接続している
THEMBUSY(通常、ルータが RNR を受信している場合に設定される)
USBUSY(通常、ネットワーク側に応答を返せない場合に設定される)
RNRs:送信または受信した RNR の数。
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 Basic 設定のトラブルシューティングについて説明します。この例では、WAN が正常に機能していることを前提とします。
このシナリオには、5494をAS/400に接続するためのSTUN Basic設定があります。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
まず、ルータですべてのシリアル信号が up になっているか確認します。上記の出力の最後には、2522 で「Serial2」のすべての信号が「up」であることが示されています。DTR および RTS は、コントローラがすでに回線自体をアクティブ化し、AS/400 から送信される初期メッセージ交換を待機していることを示しています。
次に、ルータの AS/400 側に対する show interface コマンドの出力を確認します。以下の出力には、AS/400 に接続されているシリアル インターフェイスが「down/down」であることが示されています。これは AS/400 が「varied off」になっている可能性があることを示しています。 回線が「varied on」であるものの回線が up になっていないか半二重で稼働していない場合、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#
この時点で、その特定のコントローラの [設定ステータスの処理(Work with Configuration Status)] を確認します。以下に、AS/400 の画面の例を示します。
次に、回線定義を vary on にします。すると、ルータの回線が up/up になります。回線がup/upになっても、コントローラがアップしない場合は、インターフェイスをチェックして、AS/400から着信するインターフェイスにパケットが到達したかどうかを確認します。カウントがゼロの場合は、AS/400のSDLC回線のエンコーディングメカニズムを確認します。
注:この画面では、回線符号化がNRZI符号化に設定されていることがわかります。このエンコーディングを、設定オプション nrzi-encoding を使用してルータに設定する必要があります。
標準の SDLC 規定と同じように、この設定ではエンドツーエンドで NRZ/NRZI エンコーディングが要求されるという意味ではありません。一方を NRZI、もう一方を NRZ にすることができます。ただし、SDLC 回線を共有するデバイスには同じエンコーディングを設定する必要があります。
NRZI については慎重に考慮する必要があります。Cisco 2500 や 4500 などの新しいルータでは、NRZI はソフトウェアによって設定されます。一方、Cisco 4000 の NP-2T を含む古いプラットフォームでは、ボード自体のジャンパを変更する必要があります。その場合、おそらく AS/400 を NRZ/NRZI に変更するのが簡単です。ただし、ジャンパを変更しなければならない場合は、特定のプラットフォームの Cisco ハードウェアのドキュメントを参照してください。
問題が解決しない場合は、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
AS/400 から複数の XID が流れているのに、それらに対する応答がないことがわかります(CO はポーリング アドレスで、bf が XID)。 パケットの発信元が SDI であることから、パケットは AS/400 から送られたものであることがわかります。このコマンド出力には、2 種類の着信パケットが含まれています。
SDI:シリアル着信。SDLC インターフェイスから受信したパケットです。
NDI:ネットワーク着信。カプセル化解除された WAN からのパケットです。
次に、フレーム自体の XID 部分を確認します。上記の例では、AS/400 が XID を IDBLOCK および IDNUM 05645253 と併せて送信しています。
コントローラが応答していないため、これはタイムアウトの問題です。AS/400 で、「sysopr message queue」を調べて、問題を示すメッセージの有無を確認します。以下に、障害が表示されている「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 になっています。また、ルータからパケットが出力されていて、パケットの着信はないことがわかります。これは 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)、セッションは確立されて実行中であることがわかります。次に、回線が varied off になったことから、AS/400 から切断されたことがわかります。
STUN basic: 0:00:00 Serial2 NDI: Data: dd53 STUN basic: 0:00:00 Serial2 SDI: Data: dd73
これらの行は、DISC(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 = P/F ビットは 0 または 1 になります。
rrr = 受信予定のブロック数。
sss = 送信されているブロック数。
このセクションでは、ローカル ACK を設定したシナリオを使用します。
STUN Basic とは対照的に、STUN SDLC では正しいポーリング アドレスを指定しなければ、ルータはパケットが着信したことにも気付きません。これは、情報がない場合、またはホストやAS/400に到達できない場合にポーリングアドレスを検索するためにSTUN Basicが使用される場合があるためです。上の図は、local-ackを含むマルチポイントシナリオを示しています。
従来のポイントツーポイント環境では、ポーリングはエンドツーエンドで行われます。ローカル ACK を導入した場合、ポーリングはクラウドの両端で終端されます。このため、各ルータで有限状態マシンを維持する必要があります。有限状態マシンはすべてのセッションの経過を把握し、各ポーリング対象ステーションの回線状態を認識する必要があります。このため、ステーションが SDLC プロトコルに従っていることを確認する必要があります。
まず、正しい STUN ロールが適用されていることを確認します。従来のポイントツーポイント環境では、AS/400 はコントローラとロールをネゴシエートできません。次の回線説明が表示されます。
この出力から、ルータのインターフェイスをセカンダリ ロールとして設定する必要があることがわかります。AS/400 は作成時にデフォルトで *NEG に設定されるため、必ず回線を調べて、それが *PRI であることを確認してください。NRZI は *YES に設定されるため、nrzi-encoding をコーディングする必要があります。また、idle-character marks をコーディングして、ウィンドウを 1 に設定します。それには、sdlc k 1を使用します(インターフェイスで idle-character marks が必要になる理由の詳細については、「FNA-IOS-0696-02 フィールド アラート」を参照してください)。 コーディングは次のようになります。
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 のままにして構いません)。 AS/400 が送信する XID など)です。最大コントローラは、作成してこの回線に接続することができる PU(コントローラ)の数です。
次の画面には、この回線に接続されている 2 つのコントローラのうちの 1 つである IBM 5494 が表示されています。
最初のコントローラが PU 2.1 になっています。これは、このコントローラのカテゴリが「*APPC」であるからです。 APPC は Advance Program-to-Program Communications の略で、T2.1 接続でだけ実現できます。リモート ネットワーク ID もまた APPN/APPC に関係しており、「NETID」で示されます。 「*NETATR」は、「Network Attributes」というデータ領域で定義された NETID を使用することを指定するパラメータです。 このデータ領域は DSPNETA コマンドで表示されるので、必要に応じて値を変更できます。「リモートコントロールポイント」または「CP_name」は、PU2.1で設定したコントロールポイント名です。この場合、CP5494です。データリンクのロールは*NEGのままにしておくことができます。[ステーション アドレス(Station address)] は、セカンダリ インターフェイスおよびいずれかのプライマリ インターフェイスの 1 つに設定した「SDLC アドレス 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
コントローラの説明に表示される情報のほとんどが物理的なユニットに関連する内容で、ルータで設定できるものではないことがわかります。
この画面では、2番目のコントローラ(PU)は実際には3174で、これはPUタイプ2です。この3174で設定されたXIDは05600001です。「ステーションアドレス」または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 の Display Networks Attributes(DSPNETA)の画面を示します。
この画面で、現在 AS/400 がネットワーク ID「NETA」用に設定されていることがわかります。これは、5494 もこれと同じネットワーク用に設定する必要があることを意味します。残りの APPN 固有の設定と同じく、これは 5494 の 2 番目の設定画面に表示されます。AS/400のローカルコントロールポイント名は「RTP400A」です。 AS/400 の LU 名は「LU9404」です。この名前は、5494 の Partner LU 定義フィールドで設定した名前に一致している必要があります。5494 で使用するモードは、デバイス説明に表示されるものに一致している必要があります。たとえば、デバイスが「*NETATR」となっている場合、デフォルトの「BLANK」と一致する必要があります。
次は、5494 用に作成された APPC デバイスの説明画面です。
この画面には、5494 のデバイス説明に、リモート CP 名が「CP5494」と示されています。これは、5494 に設定した内容と一致していなければなりません。NETID とローカル ロケーションはデフォルトで「*NETATR」に設定されています。これは、前の例で LU9404 および NETA にコーディングした値です。これらについても、5494 のパートナー LU 名および NETID フィールドと一致している必要があります。
次は、接続の確立に関連するデバイス設定の最後の部分です。
この画面では、デバイス説明で使用されているモードが「QRMTWSC」であることがわかります。 これは *NETATR のデフォルト値ではありません。つまり、モードがデバイス説明で上書きされたことを示しています。これは、AS/400の基本APPNサポートの一部としてIBMが提供するデフォルトモードの1つです。何か異なる点がある場合は、IBMに連絡してください。IBMが作成したモード記述で動作しているためです。この例で確立するのは、基本的な接続です。使用できるモードに関する情報を表示するには、コマンド WRKMODD または動作モード説明を使用できます。
次に、モード説明の画面を示します。
この画面では、IBM 社から提供されたモード定義であることが明確に示されています。
マルチポイント環境で AS/400 とのローカル ACK を行うには、AS/400、SYS/38、および SYS/36 ミニメインフレームで「SDLC 全二重マルチポイント インターフェイス」がどのように実装されているかを確認する必要があります。FNA-IOS-0696-02 Field Alert(次に含まれる)に、この状況で発生する可能性のある問題のタイプの説明が表示されます。
AS/400 に IBM PTF# MF10030 が適用されている場合、「キャリア検知」をグラウンドに接続するルータ ケーブルの変更で、時々発生する AS/400 による SDLC 回線のリセットを防止することはできません。このアラートが適用されるのは、ルータの SDLC ケーブルがキャリア検知を無視するように変更された環境での AS/400 への STUN 全二重マルチドロップ接続だけです。
STUN 接続およびすべての SDLC セカンダリ デバイスで定期的なリセットが発生し、接続の信頼性が失われます。
マルチドロップ環境では、AS/400 の動作は他の IBM デバイスとは異なります。FEP では、0x7E 文字(フラグ)または 0xFF 文字(マーク)のいずれかがフレーム間の「アイドル」スペースとして受け入れられますが、AS/400 では、これとは異なる方法でフラグとマークが処理されます。アイドル文字として解釈されるのはマークだけです。フラグは、「回線はまだアクティブで、保留されているデータがさらにある」ことを意味すると解釈されます。 Cisco ルータは、フラグまたはマークのいずれかを送信するように設定できますが、両方を送信することはできません。フラグとマークは、回線の状態を同じように反映するわけではありません。ルータのデフォルトは、フラグの送信です。
この違いが全二重マルチドロップ環境で問題を引き起こします。通常、AS/400 はデータの有無を確認するために、あるデバイスをポーリングしてから次のデバイスをポーリングし、また次のデバイスをポーリングするといった具合に動作します。デバイスが応答に失敗した場合、AS/400 は回線がまだアクティブであると判断すると、回線全体をリセットします。ルータのデフォルトはフラグの送信であるため、AS/400 では常にアクティブ回線が認識され、次のデバイスに対するポーリングに移る代わりに回線をリセットします。
この問題を回避するため、シスコでは以前から Carrier Detect(CD; キャリア検知)信号を無効にするケーブル変更を推奨してきました。この変更は、キャリアの不在を「アイドル回線状態」と解釈する AS/400 のロジックを利用しています。 したがって、変更を行うと、ルータがフレーム間文字を送信しているとしても、AS/400 は常にアイドル回線状態を検出しますこのため、セカンダリ デバイスが応答に失敗しても、AS/400 は CD を確認してアイドル回線を確認し、次のステーションに対するポーリングに移るようになります。
最近、IBM 社から AS/400 の修正プログラム PTF# MF10030 がリリースされました。この修正プログラムはマルチドロップ ライン環境でのキャリア検知ロジックを修正します。この修正プログラムをインストールすると、AS/400 が全二重マルチドロップ ラインの CD の状態を完全に無視するようになります。したがって、定期的な回線リセットを防止するために、Cisco ケーブルの変更は反映されなくなります。
ルータのモデルおよび稼動中の Cisco IOS のバージョンによって、2 つの回避策が考えられます。両方のオプションとも、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)以降でサポートされ、2500、4x00(NP-4T搭載)、および70x0/75xxルータで動作します。
インターフェイス コマンドを使用して、アクティブでないセカンダリ デバイスの検出を有効化します。
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 が期待するタイマーと異なる場合、問題が発生する可能性があります。