アプリケーション ネットワーキング サービス : Cisco CSS 11500 シリーズ コンテンツ サービス スイッチ

WebNS 4.0 スクリプト キープアライブの設定例

2015 年 11 月 26 日 - 機械翻訳について
その他のバージョン: PDFpdf | 英語版 (2015 年 8 月 22 日) | フィードバック


目次


概要

このドキュメントでは、スクリプト キープアライブの初期実装について説明します。 このスクリプティング方法は、Reliability, Availability, and Serviceability(RAS)のダイヤルアップ クライアント、ターミナル プログラム、および一般的なスクリプト ユーティリティに存在する機能と密接に関連しています。 この機能は、CSS の豊富なスクリプト言語を使用します。

簡単なソケット API でこれを設定することは(接続して下さい/接続解除/送信/受信)ユーザに自身のプロトコルを合わせる機能を与えるかまたはサービスの信頼できる ALIVE または DOWN 状態を提供するためにステップの自身のシーケンスを書きます。 FTP、HTTP、ICMP および TCP に現在制限されます。 この新しい 機能を使うと、現在のプロトコルの上にあなた自身のスクリプトを書くことによって残ることができます。 たとえば、ユーザは Cisco が必要に適するために KeepAlive型 POP3 を構築するように要求しないで POP3 サーバに接続するためにとりわけある調子を与えられるスクリプトを開発できます。 この機能は顧客が特定の必要条件に適するために自身のカスタム キープアライブを作成することを可能にします。

はじめに

表記法

ドキュメントの表記法の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

前提条件

このドキュメントに関する固有の要件はありません。

使用するコンポーネント

この資料は CSS 11000/CSS 11500 か WebNSソフトウェアが付いている CSS 11800 に適用します。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。

背景理論

Notepad のようなテキストエディタを使用して Command Line Interface (CLI)スクリプトをオフ・ラインで開発したら、CSS の /script ディレクトリにそのスクリプトをアップロードし、サービスのスクリプト Keepalive オプションを設定できます。 システムのスクリプトを持っていることなしでスクリプト キープアライブを作成することができます。 システムのスクリプトなしで動作するスクリプト キープアライブの場合には一定したダウン の 状態はサービスに残ります。 これは管理者がスクリプトすべてを設定を書き込み、(全部書くか、または)アップロードする前に設定を設定することを可能にします。

スクリプトはスクリプトを見つけるためにスクリプト キープアライブのための version>/script/ディレクトリを実行する/<current に常駐する必要があります。 パス名だけはスクリプト キープアライブを設定するとき、スクリプトネーム受け入れられません。 スクリプトがシステムに他の所である場合、スクリプト キープアライブは仮定しますないことを。 この意味しますが、ソフトウェアがシステムでアップグレードされるとき、古いスクリプトは古いバージョンのスクリプト ディレクトリに常駐します。 スクリプトを古いディレクトリからコピーするために、この資料の Copying Script Files セクションを参照して下さい。

引用された引数の 128 文字を渡すことができます。 引数毎に 7 文字の規格を仮定して、1 つのスクリプトの約 18 の引数を得ることができます。 コマンド・ラインはしかし 90 文字だけを受け入れます。

スクリプト キープアライブが標準キープアライブ、多くのスクリプトにあるので要求を接続のようなマルチステップ プロセスが送信 します、および応答の特定の種類を待っていることより低い周波数で設定されることを推奨しま。 これが原因で、キープアライブは時間が完全に終わるあるようにまたはより高い 10 秒の周波数があることを推奨します。 さもなければ、状態遷移はより頻繁に発生するかもしれません。

スクリプトはゼロかゼロ以外のステータス スコードを戻すことができます。 ゼロ以外の戻りで、CSS は DOWN としてサービス状態にフラグを付けます。 ゼロの戻りで、CSS は稼働したようにサービス状態にフラグを付けます。 例のための次のスクリプトを参照して下さい:


!--- Connect to the remote host.


socket connect host einstein port 25 tcp 


!--- Validate that you did connect.


if $SOCKET "==" "-1" 
exit script 1 
endbranch 

CSS は $ {ソケット}変数が負 1 に設定 される場合 DOWN の状態を常に戻します。 正しい値が返るようにするためにスクリプトのロジックをチェックすることは非常に重要です。

設定

この項では、このドキュメントで説明する機能の設定に必要な情報を提供します。

スクリプト キープアライブの使用を必要とする多数のサービスに関してはそれらのための作業を処理するのにそれらがグローバル な キープアライブのより小さいサブセットを使用すること、それは強く推奨されています。

スクリプト キープアライブを設定するために、他のすべての KeepAlive型のためのと同じガイドラインに従って下さい。 コマンド構文は下記に示されています。

CS100(config-service[serv1)# keepalive type script ap-kal-smtp "einstein" 

または

CS100(config-service[serv1])# keepalive type script ap-kal-pop3 "einstein vxworks mipspci"

最初の行は型スクリプトであるためにおよび引数 Einstein のスクリプトネーム ap-kal-smtp があるために現在のサービス キープアライブは設定します。 第 2 行は最初のスクリプトに類似したであるが、示しましたり 3 つの引数を渡します ap-kal-pop3 を: Einsteinvxworks および mipspci。 すべての完全なリストが version>/script ディレクトリを実行する/<current の利用可能のスクリプトを書くことを見るためにタブ(またはか。)キーを押すこともまた可能性のあるです。 これはタブをまたは押すときためにスクリプト命名規則を採用するように勧めますか。、使用するために明確に 利用可能 な キープアライブ スクリプトを表示できます。 ap-kal-type の命名規則はスクリプトのために使用されます。 たとえば、SMTP スクリプトは ap-kal-smtp と指名されます。 任意で、それを後日アップロードしたいことを仮定するそのリストで見つけられない 1 つを打ち込むことができます。 スクリプトは archive, clear および copy コマンドによって処理しスイッチの /script ディレクトリからのアップ ロード/ダウンロードのどれである場合もあります。

スクリプトネームは長く 32 文字までである場合もあります。 引数は引用符号付 き 連糸で渡す必要があり長く 128 文字までである場合もあります。 スクリプト キープアライブをディセーブルにするために、次のコマンドの発行によってサービスを再構成します:

CS100(config-service[cs100])# keepalive type none

サービスのスクリプト キープアライブの表示

スクリプト キープアライブがサービスの下で設定されるとき、スクリプトネームは show service コマンド出力で表示される場合があります。 スクリプトは KeepAlive型の下に出て来、どの潜在的な引数でもスクリプト の 引数のその行の下で直接見つけることができます: フィールドの URL のみが置換されます。 スクリプト の 引数がない場合、そのフィールドは表示する。 スクリプトとのサービス cs100 の例は引数 vxworks との ap-kal-pop3 を呼出し、mipspci は下記に示されています。

webns_scripted_keepalives-1.gif

この電源によって、ap-kal-pop3 のようなスクリプトは POP3 サーバのためのホスト名、ユーザ名およびパスワードを一致する 3 つのパラメータを奪取 する可能性があります。 POP サーバへの単にログオンはこのサーバが ALIVE 状態にあることを判別するスクリプトのため十分です。

show running-config コマンド出力は下記に示されています。

webns_scripted_keepalives-2.gif

上記のコマンド 出力はどんなスクリプト(および引数)このサービスで設定されたか丁度示します。 引数がない場合、スクリプトネームに従がって引用されたテキストはありません。

スクリプトロギングを使用するとき、設定は次の通りです:

webns_scripted_keepalives-3.gif

この例は testlog.log に出力されるスクリプト キープアライブを記録 するサービスを示したものです。

ソケット プリミティブ

スクリプト キープアライブで構造化 プロトコルの構築で助けるのに使用できる少数のソケット コマンドがあります。 ソケット プリミティブは ASCII か 16 進法送信を可能にし、機能性を受け取ります。 各コマンド オプションの未加工キーワードを標準 ASCII からの 16進法 変換への変更をデータもらう。 たとえば、0x61 0x62 0x63 0x64 を表示する ASCII の abcd は 61626364 によって表されます。

詳細についてはソケット コマンドの次のリストを参照して下さい:

  • ソケットはホスト ホスト名ポート ポート TCP を接続します | UDP (ユーザ・データグラム・プロトコル) [整数] [セッション]

    -このコマンドは TCP または UDP 接続を行います。 TCP 接続を行うことは含みますハンドシェイク(SYN-SYNACK…)を 仕様 IP/port に。 UDP 接続を行うことはただホスト/ポートの予約です。 ソケット値はスクリプトの $ {ソケット}変数で受け取られます。

    注: 32 のソケットだけスイッチのすべてのスクリプトを渡ってどんな時点でも開くことができます。

    リストは下記の各パラメータで情報を提供します。

    • リモート システムのホスト名か IP アドレスに先行させる必要がある host-a キーワード。

    • 接続をネゴシエートするためポートに先行させる必要がある Port キーワード

    • TCP - TCP を使用する接続。

    • UDP (ユーザ・データグラム・プロトコル) - UDP を使用する接続。

    • 整数-秒のネットワーク 確立のタイムアウト値。 接続が正常になされた前に制限時間が切れれば、試みは失敗します。 これは TCP 接続に UDP がコネクションレス型であるのでだけ、適用します。 デフォルト値は 5 秒のタイムアウトです。

    • セッション-セッションが終了するまでソケットを開いている残るように告げるキーワード。 それはあらゆるスクリプト ユーザがログアウトするまでセッションの開いたソケットそれらを自分自身で残る開いている閉じない意味し。

  • ソケット送信 socket# ストリング[未加工 | base64]

    -このコマンドは以前に接続された TCP 接続を通してデータを書き込みます。

    リストは下記の各パラメータで情報を提供します。

    • socket# -ソケット ファイル 記述子(整数形式)。 この記述子はから接続します戻ります。

    • ストリング-長さが 128 文字までの引用された文字列。

    • 未加工-規定 されたら場合、文字列型の値を単純な文字列よりもむしろ実際の 16 進法バイトとして転送します。 たとえば、0D0A は「0'として「D」「0' 「A」、むしろ 0x0D 0x0A 送信 されません(またはキャリッジリターン、ライン フィード)として。

    • base64 -これは接続を通ってそれを送信 する前に base64 符号化する ストリング。 パスワードに接続が Webサイトを保護した場合の HTTP 基本的な認証のために有用。

  • ソケット レシーブ socket# [[未加工]整数]

    -このコマンドはリモートホストから入るデータで 10K 内部バッファが充満します。 このコマンドはそれから新しいデータがこの内部バッファに置かれないようにバッファをロックします。 使用 Inspect に標準出力にこの内部 10K バッファに常駐するすべてのデータをダンプすることを進むことができます。 注: 10K 内部バッファのすべての前のデータは新しいデータが置かれる前に流し出されます。

    リストは下記の各パラメータで情報を提供します。

    • socket# -ソケット ファイル 記述子(整数形式)。 この記述子はから接続します戻ります。

    • 整数-表す整数値内部 10K バッファをロックし、ユーザへ戻る前に待つミリ秒数。 整数時間が規定 されない場合、レシーブはユーザへ戻る前に 100ms を待っています。

    • 未加工-規定 されたら場合、文字列型の値を単純な文字列よりもむしろ実際の 16 進法バイトとして転送します。 たとえば、0D0A は「0'として「D」「0' 「A」、むしろ 0x0D 0x0A 送信 されません(またはキャリッジリターン、ライン フィード)として。

  • ソケット waitfor socket# ストリング[[大文字/小文字の区別がある]整数] [相殺して下さい] [未加工]

    -このコマンドはソケット レシーブに類似したです、但し例外としては特定の文字列 引数を見つけた上ですぐに戻ります。 特定の文字列が検索すれば、ゼロの $ {ステータス}戻します。 さもなければ、それは 1.を戻します。 取得されるデータは socket inspect コマンドの発行によって更に表示することができます。

    リストは下記の各パラメータで情報を提供します。

    • socket# -ソケット ファイル 記述子(整数形式)。 この記述子はから接続します戻ります。

    • ストリング-見つけられて示すゼロの $ {ステータス}という結果に終るために検索する必要がある特定のストリング。 ストリングが検索する場合、すぐに戻り、全体の整数 タイムアウト 長さを待っていません。

    • 整数-表す整数値内部 10K バッファをロックし、ユーザへ戻る前に待つミリ秒数。 整数時間が規定 されない場合、レシーブはユーザへ戻る前に 100ms を待っています。

    • 大文字/小文字の区別がある-規定 されたら場合、ストリング比較が大文字/小文字の区別があるはずであることを示します。 たとえば、ユーザ: ユーザと同等でであってはなりません:

    • 受け取ったデータへの何バイトを見つけるストリングが必要があるかオフセットか-。 たとえば、a0 を捜し、10 のオフセットを与えれば、受け取ったデータに 10 バイト a0 を探します。

    • 未加工-規定 されたら場合、文字列型の値を単純な文字列よりもむしろ実際の 16 進法バイトとして転送します。 たとえば、0D0A は「0'として「D」「0' 「A」、むしろ 0x0D 0x0A 送信 されません(またはキャリッジリターン、ライン フィード)として。

  • ソケット Inspect socket# [きれいな] [未加工]

    -このコマンドは実際のデータのためにソケットのデータバッファを(内部)点検します。 データがある場合、そのデータは標準出力に表示する。 表示する 文字が印刷不可能である場合、読みやすさのためのドットによって(。)表されます。

    リストは下記の各パラメータで情報を提供します。

    • socket# -ソケット ファイル 記述子(整数形式)。 この記述子はから接続します戻ります。

    • 未加工-規定 されたら場合、文字列型の値を幾分そして単純な文字列実際の 16 進法バイトとして表示する。 標準出力に幾分それから ABCD を印刷して、それは 41424344 を印刷します(1 つのバイト 16 進法等量)。

    • 出力のかなり- pretty プリント。 各行は各バイトのデータのために同等の ASCII か 16 進法が両方含まれています。 各行で印刷された 16 バイトがあります。 たとえば、0x41 0x42 0x43 0x44 0x10 0x05 ABCD

  • ソケット 接続解除 socket# [段階的]

    -このコマンドはリモートホストへの接続を切断します。 これはリモートホストへ RST を送信 することによってデータを送信 して いる終了することを確認するように実行されます。

    リストは下記の各パラメータで情報を提供します。

    • socket# -ソケット ファイル 記述子(整数形式)。 この記述子はから接続します戻ります。

    • 段階的-段階的接続解除接続を閉じるためにリモートホストに RST よりもむしろ FIN を送信 する。

ソケット 管理

どんな時点でもスイッチの 32 の開いた(使用中の)ソケットの制限があります。 ユーザがソケットを接続すればおよびすればソケット 接続解除がパラメータとしてそのソケットによって呼出されるまでそのソケットのファイル 記述子のためのソケット 接続解除で($ {ソケット保存される}で)、ソケット残ります開いている終了しません。 スクリプトの内で開くソケットは(セッション 引数がソケットで接続すれば渡されなければ)スクリプトが終了するとき閉じます。 セッションの内で開くソケットはセッションが終了するとき閉じます。

ソケットが開いている残る場合、これは通常ユーザがきちんと閉じないでか接続をしたケースです。 ソケットは開き、使用されてまでそれ閉じる残るまたはスクリプトこと(またはターミナルコレクションまで)閉じられました。 show sockets コマンドは開いて、ものを閉じるものをユーザが認知しているように現在使用中であるすべての使用されたソケット ファイル 記述子をリストする実行されました。

注: リモートホストがソケットを時間を計るか、またはソケットがリモートホストによって閉じられれば場合それをクリーンアップするには、ソケット アーキテクチャは十分にスマートで使用されたソケットのリストからそれを奪取 します(show sockets コマンドの発行によって検索する)。 これはユーザがリモートホスト(他ではユーザーのニーズを待つアイドル状態を坐らせます)によって閉じられたソケットに別の転送をするように試みた後だけ発生します。

show sockets コマンド出力は下記に示されています。

webns_scripted_keepalives-4.gif

画面はずっと記述子が開いているどの位のかソケット ID (ファイル 記述子)、接続されたホスト/ポート ペア、ユーザおよびタイマーをリストします。 USER フィールドは CLI の show lines コマンド出力に見られるようにライン識別子を表します。

ソケット レシーブを使用してデータの取得はデータの 10K 価値を一度にバッファリングできます。 このバッファはユーザが別のソケット レシーブをする、その時点でバッファがきれいにされ、来るより多くのデータ ネットワークと補充されるまで変更されません。 各ソケット 記述子に(ソケットから接続して下さい作成される)自身の 10K バッファがあります。

コピー スクリプトファイル

コードの新しい バージョンにアップグレードするとき、前のバージョンのスクリプト ディレクトリで修正したすべてのスクリプトファイルは新しい バージョンにコピーされる必要があります。

スイッチをアップグレードする前に次の手順に従って下さい:

  1. CSSスイッチに FTP して下さい。 マネージメントポートか VLAN 回線アドレスを使用して下さい。

  2. スクリプト ディレクトリへの CD。

  3. ローカルマシンに編集したすべてのスクリプトをダウンロードして下さい。

  4. スイッチをアップグレードして下さい。

  5. ローカルマシンからスイッチの新しいスクリプト ディレクトリにスクリプトをアップロードして下さい。

サンプルのスクリプトを書いて下さい

次のスクリプトはいくつかの既定の実装を提供して利用できます。 これらのサンプルは DNS、エコー、NetBIOS、指、時間、HttpList、PingList、HttpAuth、Imap4、CookieSet、POP3、HttpTag、MailHost および SMTP のために書かれているスクリプトが含まれています。

提示スクリプトを発行して下さいか。 スクリプトを調べるために命じて下さい。 次にコマンドの出力例を示します。

CS150# show script
  ap-kal-dns          NOV 17 09:58:36           1555
  ap-kal-echo         NOV 17 09:58:36           1920
  ap-kal-finger       NOV 17 09:58:36           1172
  ap-kal-httpauth     NOV 17 09:58:36           1927
  ap-kal-httplist     NOV 17 09:58:36           1674
  ap-kal-httptag      NOV 17 09:58:36           1180
  ap-kal-imap4        NOV 17 09:58:36           1556
  ap-kal-ldap         NOV 17 09:58:36           1640
  ap-kal-mailhost     NOV 17 09:58:36           2437
  ap-kal-netbios      NOV 17 09:58:36           1632
  ap-kal-pinglist     NOV 17 09:58:36            739
  ap-kal-pop3         NOV 17 09:58:36           1568
  ap-kal-setcookie    NOV 17 09:58:38           1436
  ap-kal-smtp         NOV 17 09:58:38           1310
  ap-kal-ssl          NOV 17 09:58:38           2053
  ap-kal-time         NOV 17 09:58:38           1064
  cache.map           NOV 17 09:58:38           1615
  commit_redundancy   NOV 17 09:58:38         109224
  commit_vip_redund.. NOV 17 09:58:38         132147
  default-profile     NOV 17 09:58:38           1240
  dnslookup           NOV 17 09:58:40           8009
  eql-cacheable       NOV 17 09:58:40           1186
  eql-graphics        NOV 17 09:58:40            234
  eql-multimedia      NOV 17 09:58:40            279
  flowinfo            NOV 17 09:58:40           5665
  monitor             NOV 17 09:58:40           3734
  pcm-collect-cfgs    NOV 17 09:58:40           2373
  pcm-repeat-cmd      NOV 17 09:58:40           4995
  service-load        NOV 17 09:58:40            920
  setup               NOV 17 09:58:40          24328
  showtech            NOV 17 09:58:40           2528
  testpeering         NOV 17 09:58:40          34142
  upgrade             NOV 17 09:58:40          17117
  ap-kal-ssl.txt      NOV 24 09:18:00           2053

確認

現在、この設定に使用できる確認手順はありません。

トラブルシューティング

設定をトラブルシューティングするのに次のガイドラインを使用して下さい:

  • script play コマンドの発行によってコマンド・ラインからスクリプトを実行して下さい。 それを確かめるスーパーユーザがエラーなしで完了するようにログオンされた場合このコマンドを発行して下さい。 それがエラーをする場合、エラーを引き起こした行は発行する必要があります。

  • スクリプトが期待しているものを vs スクリプトが見ると動作するとき実際に戻るものが観察するために CSS と Webサーバの間でスニファートレースを奪取 して下さい。

  • 5.x コードのバージョンでは、使用出力コマンドは追加されました。 このコマンドは grep コマンドを使用するすべてのスクリプトと使用する必要があります。 たとえば、KeepAlive型スクリプト ap-kal-dns 引数使用出力

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 12076