JP2008046847A - アダプタ生成装置、方法およびプログラム - Google Patents
アダプタ生成装置、方法およびプログラム Download PDFInfo
- Publication number
- JP2008046847A JP2008046847A JP2006221572A JP2006221572A JP2008046847A JP 2008046847 A JP2008046847 A JP 2008046847A JP 2006221572 A JP2006221572 A JP 2006221572A JP 2006221572 A JP2006221572 A JP 2006221572A JP 2008046847 A JP2008046847 A JP 2008046847A
- Authority
- JP
- Japan
- Prior art keywords
- character string
- information
- unit
- script
- connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【解決手段】アダプタ生成装置は、NMSが用いる設定機能であり対象NEごとに仕様が異なるアダプタ部(スクリプトファイル)を自動生成するために、オペレータのCLI上の操作をキャプチャする機能、スクリプトとして必要最低限の情報のみを表示する機能、その情報を用いて装置にて操作を再現する機能、テキストで表示されたコマンドや応答条件を画面上で変更する機能、変更されたスクリプトを実行する機能、本発明装置専用の見易さを重視したスクリプトを汎用のスクリプトフォーマットに変換しアダプタを生成する機能、対象装置のコンフィグレーションファイルを取得するバックアップ機能、本発明装置を接続したIPネットワークの構成を検出する機能を有する。
【選択図】図1
Description
これらの作業には、情報取得や機器の動作確認試験など、例えば、1日に1回、1時間に1回と定期的に同様の操作を行なうルーチンワークが含まれる。
また、ネットワーク運用者が知識を持っている場合でも、その場で実現したいルーチンワークのスクリプト記述を行なうために、スクリプトの文法などの記述ルールを調べる手間がかかる。
そのため、スクリプトやマクロコードを実際の業務に用いるためには、スクリプトやマクロコードの開発ステップと、実際のNEに対する試験ステップとの、2つのステップが必要となる。
この場合、実際のネットワーク運用者の処理からスクリプトが生成されるため、試験を行なう必要はなく、上述の問題が解決できる。
NTT技術ジャーナルVol.17 No.8,2005年8月号,pp.14〜17,インタフェース触診・調合技術,三好優,木村辰幸
例)NEのCPU使用率を検出するコマンドのあと、80%以上ならばアクセス制限を行なうコマンドを実行するが、80%未満ならばコマンドを実行しないで処理を終了する、ことが出来ない。
(イ)コマンドを送信する前に明示的に待ち時間を設定すること(待ち時間処理記述の追加)が出来ない。
例)1分間で受信したパケット数を計測するために、受信パケット数を表示するコマンドを実行したあと1分間明示的に待ち状態とし、再度同じコマンドを実行することが出来ない。
例)コマンド送信後、応答が10秒なかった場合、NEとの接続を切断することが出来ない。
(エ)外部アプリケーションから実行される場合に、特定のパラメータを受け、同時に実行すること(外部引数処理の追加)が出来ない。
例)外部アプリケーションが、IPアドレス192.168.1.1を送信し、そのIPアドレス192.168.1.1が付けられたインタフェースであるEhternet0に関するトラヒックやルーティング情報、アクセスリストの情報を取得することが出来ない。また、外部アプリケーションは送信するIPアドレスを変更することによって実行する対象となるインタフェースを変更することが出来ない。
しかし、多くの場合、NEの応答により、複数の選択肢から次の処理を決定する高度な作業が存在する。これらの判断を反映したスクリプトは、上記非特許文献2に示されるようなシーケンシャルな実行記録だけではなく、複数の処理記述が必要であるため、生成できない。
つまり、単一の状況の実行は簡単化し、正常に実行できるが、与えられたパラメータや応答に対して処理を変更できないため、柔軟性を欠くという問題がある。
また、機器側のOSの更新や機能の追加による仕様変更や、新しい機器の導入といったネットワークの増改築によってもNMSのインタフェースアダプタを作成しなければならないという問題がある。
結果、上記のような機器やネットワーク構成の変更に合わせ、その場で(オンサイト)で対応するインタフェースアダプタを構築し、利用するといった柔軟性を持っていないという問題がある。
アダプタ生成装置1は、NE2とネットワークNW3とを介して接続されている。また、ユーザAは、アダプタ生成装置1を用いて、NE2との通信や処理を実行する。
なお、ユーザAとは、オペレータ、ネットワーク管理者、操作者などのユーザである。
CLI部131は、従来の特定の通信ソフトや特定のOS(オペレーティングシステム)上でのCLIによるコマンドプロンプトと同様に、仮装端末として、ユーザAから入力される送信コマンドを表示し、NE2の応答情報を表示する機能を有する。
GUI部101は、表示装置と入力装置とを有しており、ユーザAが入力した入力情報を、または、ユーザAが確認するための出力情報を、表示装置を介してユーザAへ表示する機能を有する。また、GUI部101は、ユーザAが入力装置を用いて入力した入力情報を受信する機能を有する。
ここで、例えば、表示装置とはCRT(Cathode Ray Tube)や液晶表示装置等であり、入力装置とはキーボードやマウス等の入力デバイスのことである。
図2に示されるように、GUIの中に、対象選択画面、ファイルツリー画面、スクリプト表示画面、CLIコンソールがある。実施の形態においては、このように、GUIの一部にCLIがある。
一般的には、ユーザAは、GUIにおいてはマウスを用いて選択や入力の操作をし、GUI上のCLI部分をマウスで選択した後、CLIにおいてキーボードでコマンドなどを入力し、NE2との接続やNE2での処理を実行する。
なお、文字列とは、複数の文字からなるものであり、改行などの制御文字を含んでもよい。
また、キャプチャ部141は、取得した送信文字列および応答文字列である文字列情報を、後述のスクリプト生成部142に送信する。
スクリプト生成部142は、例えば、コマンドとNE2からの応答文字列の一部、該通信時のログインユーザ名やパスワード、プロトコル情報を明示的に記録し、スクリプトを生成し、ユーザAにGUI部101を通じて生成したスクリプトを表示させる機能を有する。スクリプト生成部142は、例えば、図2のスクリプト生成画面に、生成したスクリプトを表示する。
なお、スクリプト生成部142は、接続しているNE2を識別できる情報、例えば、NE2のIPアドレス情報などをスクリプトにファイル名として記述しておく。これにより、NE2毎に、スクリプトファイルが作成される。
スクリプト生成部142が、キャプチャ部141から受信した文字列情報からスクリプトを生成する方法は後に詳述する。
また、アダプタ生成部143は、処理内容の自動変換では記述されない条件分岐やタイムアウト処理、待ち時間処理、外部APからの引き数受付処理を、アダプタ追加パターンファイルルール記憶部154に予め格納されている処理記述に基づいて、アダプタファイルに追記する機能を有する。
例えば、図16から18に示すように、同一の処理についてスクリプトによる記述と汎用のスクリプト言語(汎用言語)による記述とが関連付けて予め保存されている。
また、同一の処理であるため、1つのコマンドを示す文字列の関連付けでもよいし、または、複数のコマンドからなる文字列との関連付けでもよい。
また、例えば、図18(B)に示すように、スクリプトファイルの記述による複数の行からなる処理に対して、汎用言語の記述の複数の行からなる処理が関連付けて予め記憶されている。
なお、ここでは説明のために、図16(A)では引数の5まで記述しているが、コマンド部分とそのコマンドの引数の部分とを検出できるようにし、検出したコマンド部分に対して、1つのコマンドまたは複数のコマンドのよる同一の処理に対して、スクリプトファイルの記述と汎用言語の記述とが関連付けて記憶されるようしてもよい。また、アダプタ生成部143も、コマンドと引数とを検出できるようにしてもよい。
アダプタ追加パターンファイルルール記憶部154には、アダプタファイルに追記するための、条件分岐やタイムアウト処理、待ち時間処理、外部APからの引き数受付処理などの、処理記述のパターンが予め格納されている。
自動実行部144は、例えば、スクリプトファイルからコマンド情報を抜き出し、抜き出したコマンド情報をCLI部131とNE−IF部132とを通じてNE2に送信する。
なお、自動実行部144は、アダプタ生成装置1がNE2と接続した後、NE2を識別する情報、例えばNE2のIPアドレスに基づいて、スクリプトファイルを選択する。
また、自動実行部144はタイマー部145を有しており、タイマー部145が有するタイマー機能により、例えば、予め設定された時刻に予め指定されたNE2に対し接続し、スクリプトに記述された処理を実行する機能を有する。
また、自動接続部171は、NE2の機種やバージョンなどに応じて、接続する機能を有する。自動接続部171については、後に詳述される。
次に、図3を用いて、アダプタ生成装置1がNE2と接続した後、ユーザAが入力するコマンドと、NE2からの応答を記録する概要を説明する。
図3のステップF1からステップF6を用いて、ユーザAがCLI部131とNE−IF部132を用いて実行するオペレーションを説明する。また、図3のG1からG7を用いて、ユーザAのオペレーションに基づいて、キャプチャ部141およびスクリプト生成部142が実行するスクリプトの生成について説明する。
このとき、アダプタ生成装置1が、対象のIPアドレスを指定し、該IPアドレスを持つ対象となるNE2に接続を行ない、ユーザ名とパスワードを送信する。また、後述するように、接続パターンファイルである接続パターンに格納されているユーザ名とパスワードを対象となるNE2に送信することで自動接続する方法がある。
なお、接続の直後、後述のバックアップ機能がNE2の設定ファイルをダウンロードし、設定ファイルに一意の名前をつけてNE2の設定情報を保存することができる。
まず、アダプタ生成装置1がNE2とTelnetによりNE2に接続する(ステップF1)。次に、NE2との接続に応じて、NE−IF部132によりCLI部131の表示装置にプロンプトが表示される(ステップF2)。
その後、ユーザAは、CLI部131の入力装置よりコマンドを入力し、NE−IF部132を介してNE2へコマンドを送信する(ステップF3)。NE−IF部132は、送信したコマンドの応答情報をNE2より受信し、受信した応答情報に基づいてCLI部131の表示装置に応答情報を表示する(ステップF4)。
以降、ステップF3とステップF4とが繰り返される。
図3の説明に戻り、ステップF2において、ユーザAが記録開始ボタンを押したことにより、キャプチャ部141およびスクリプト生成部142は待ち状態(ステップG1)から、スクリプトを生成するモード(ステップH1、および、ステップG2からG4)に移行する。
スクリプトを生成するモードにおいては、キャプチャ部141は、ステップF3とステップF4とにおいて、CLI部131とNE−IF部132との間で送受信される文字列情報を取得する(ステップH1)。
キャプチャ部141が取得した文字列情報に基づいて、スクリプト生成部142はスクリプトを生成し、生成したスクリプトをスクリプト表示画面(図2参照)に表示する。
なお、記録停止ボタン(図2参照)の押下に応じて、スクリプト生成部142は、生成したスクリプトをスクリプトファイルとしてスクリプト記憶部152に保存するようにしてもよい。
その後、スクリプト生成部142は、待ち状態(ステップG1)に戻る。
次に、キャプチャ部141とスクリプト生成部142とが、スクリプトを生成する方法について説明する。
アダプタ生成装置1がNE2とTelnetによりNE2に接続した後(図3のステップF1)、ユーザAはNE2の仮想端末としてのCLI部131を用いてコマンドを入力し実行し、その応答である応答情報をNE2から取得する。コマンドおよび応答情報はCLI部131上に表示される。
このとき、CLI部131上の表示情報全てをキャプチャ部141が保存する。
キャプチャ部141は表示情報全てを保存しログに記録すると共に、スクリプト生成部142に表示情報を送信する。
スクリプト生成部142が抜き出す情報は、ユーザAの操作によって表示されるコマンド文字列(以降U1とする)と、そのコマンド文字列送信に対する応答情報の、最後の行の最後の文字(以降U2とする)および、最後の行の一番先頭の文字(以降U3とする)とを記録する。また、コマンド送信の決定キー(Enterキー)(以降U4とする)を記録する。
これらU1からU4の4種類の情報は、一つのコマンドを送信するタイミングで記録される。つまり、一つのコマンドごとに4種類の情報が抜き出され、記録される。
なお、スクリプト生成部142は、改行コードを検出することにより、文字列が行として改行されていることを検出し、また、文字列の最後の行であることを検出することにより、文字列の最後の行を検出する。
また、U2やU3で記録する文字列のパターンが、そのコマンドの応答中(最後の行以外または最後の行の最後や最初の文字以外)に出現した場合、一意になる文字数を記録することとして、記録する文字数を可変にすることとしても良い。
次に、キャプチャ部141とスクリプト生成部142とが、スクリプトを生成する具体的な例を、オペレーションの例と記録の例とを用いて、説明する。
なお、説明において、NE2との接続は既に完了しており、NE−IF部132によりCLI部131の表示装置にプロンプトが表示されており(図2のステップF2参照)、記録開始ボタンは既に押下されているものとする。
なお、説明においては、U2およびU3として、文字数を二文字として説明する。
Cisco1#
(ステップV2)次に、ステップV1のプロンプトが出ている状態で、オペレータは、CLI部131を用いてコマンド「show interfaces」を入力し、NE−IF部132を介してNE2へ送信する。
Cisco1# show interfaces<Enterキー入力>
(ステップV3)ステップV2のコマンドの送信に応じて、例えば、以下のような応答情報をNE−IF部132がNE2から受信し、CLI部131に表示する。
Fastnet0/0 is up, line protocol is up <改行>
Hardware is AmdFE, address is 000d.286a.98e0 (bia 000d.286a.98e0) <改行>
Internet address is 192.168.10.1/24<改行>
MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, <改行>
reliability 255/255, txload 1/255, rxload 1/255<改行>
Encapsulation ARPA, loopback not set<改行>
Keepalive set (10 sec) <改行>
Full-duplex, 100Mb/s, 100BaseTX/FX<改行>
(途中省略)<改行>
355 lost carrier, 0 no carrier<改行>
0 output buffer failures, 0 output buffers swapped out<改行>
Cisco1#
(ステップV4)このとき、スクリプト生成部142が、最後に受信した1行の文字列「Cisco1#」を抽出しておく。抽出した文字列より、U2とU3は、「Ci」と「1#」とになる。
(ステップV5)次に、オペレータは、例えばコマンド「show version」を入力し、NE2へ送信する。
Cisco1# show version<Enterキー入力>
(V6)送信したコマンド「show version」に対する、NE2からの応答は以下のようになる。
(応答文字列省略。)<改行>
Cisco1#
このとき、スクリプト生成部142が、最後に受信した1行の文字列「Cisco1#」を抽出する。抽出した文字列より、U2とU3は、「Ci」と「1#」とになる。
(ステップV7)このとき、スクリプトは以下のようになり、スクリプトの最後の4行が、上記に対応して、このタイミングで追加して記録される。
この意味の概要は、U2とU3である、「Ci」と「1#」を受信した場合、U3である「show version」とU4である「Enter」を送信する、ということである。なお、U4である「Enter」を送信するとは、Enterキーの入力を送信することである。
スクリプトの詳細な説明については、後に説明する。
telnet.send('show interfaces')
telnet.sendSpecial('Enter')
telnet.waitFor('Ci')
match = telnet.waitPrompt('1#')
telnet.send('show version')
telnet.sendSpecial('Enter')
(ステップV8)続いて、オペレータは、例えばコマンド「disable」を入力する。
Cisco1# disable<Enterキー入力>
(V9)送信したコマンド「disable」に応じて、NE2から以下のような応答が返ってくる。
Cisco1>
スクリプト生成部142が、この受信した最後の1行の文字列の「Cisco1>」の先頭2文字(U2)と最後の2文字(U3)とを記憶する。抽出した文字列より、U2とU3は、「Ci」と「1>」とになる。
(ステップV10)さらに、オペレータは、例えばコマンド「show version」入力する。
この時、先に記憶した文字と、入力したコマンドと、エンターキーの入力に基づいて、以下のようなスクリプトとして生成される。
telnet.waitFor('Ci')
match = telnet.waitPrompt('1>')
telnet.send('show version')
telnet.sendSpecial('Enter')
(ステップV11)生成されたスクリプトには、前のスクリプトの記述にさらに追記され、生成されたスクリプトは、以下のようになる。
telnet.send('show interfaces')
telnet.sendSpecial('Enter')
telnet.waitFor('Ci')
match = telnet.waitPrompt('1#')
telnet.send('show version')
telnet.sendSpecial('Enter')
telnet.waitFor('Ci')
match = telnet.waitPrompt('1#')
telnet.send('disable')
telnet.sendSpecial('Enter')
telnet.waitFor('Ci')
match = telnet.waitPrompt('1>')
telnet.send('show version')
telnet.sendSpecial('Enter')
telnet.waitFor('Ci')
match = telnet.waitPrompt('1#')
telnet.send('show version')
telnet.sendSpecial('Enter')
自動実行部144は、NE2から受信する文字列の最後の1行の先頭の2文字が「Ci」であり、最後の2文字が「1#」である場合に、「show version」の文字列と、決定キーである「Enter」に相当する制御文字列を、NE2へ送信する。
自動実行部144は、送信した後、スクリプトに次に記述されている行を実行する。
なお、具体的な処理については、後に、自動接続も含めたスクリプトファイルの生成と実行において、説明する。
次に、アダプタ生成装置1が、NE2との接続を自動的に行う方法について説明する。なお、以下に説明する機能は、主に、図1の自動接続部171と接続パターン記憶部181とに関する機能である。
なお、以下に説明するネットワーク接続装置1は、アダプタ生成装置1の一部の機能であり、その対応については、後に説明する。
以下に説明するような接続方法を用いることにより、ネットワーク接続装置1は、例えば、接続するNE2が、同じメーカー製である場合や、バージョンが変わった場合などにおいても、NE2と接続することが可能となる。
SNMP(Simple Network Management Protocol)とは、TCP/IPネットワークにおいて、ルータやコンピュータ、端末など、ネットワークに接続された通信機器(NE)をネットワーク経由で監視・制御するためのプロトコルである。
また、MIB−IIの1つにSysDescr情報があり、SysDescr情報には、対象NEの機器名や機器名のベンダ名(製造元の情報)や対象NEで動作するプログラムの情報(例えば、OS(オペレーティングシステム)のバージョンなど)などの対象NEのシステム情報が含まれる。
なお、本発明による実施の形態においては、後述するように、対象NEでSNMPエージェントが動作していない場合においても、適応可能である。
同図において図1の各部に対応する部分には同一の符号を付け、その説明を省略する。
図4において、ネットワーク接続装置1は、ユーザAへ出力情報を表示し、また、ユーザAからの入力情報を受信する。また、ネットワーク接続装置1は、NE2へネットワーク3(NW3)を介してNE2と接続する。
例えば、同じ製造元のNEに対して同じログイン方法をしたい場合には、製造元により分類してもよいし、同じOSのNEに対して同じログイン方法をしたい場合には、同じOSにより分類してもよい。また、分類をどのようにするかも任意である。
例えば、図5においては、NEのOS名としてOS1、OS2006、OSY、OS1500、OSZ、OSXPがあり、NEのベンダ名としてRED、BLUE、GREEN、PURPLEがある。なお、NEのOS名には、NEのOS名だけでなくOSのバージョンを含めてもよく、NEのベンダ名には、NEのベンダ名だけでなくNEのシリーズ名やそのバージョンなどを含めた情報であってもよい。
自動ログイン用接続パターンファイル記憶部121が記憶するそれぞれの接続パターンファイルには、該当する対象NEに接続するための情報(接続情報)が記憶されている。
また、接続パターンファイルには、対象NEに接続するための情報である、ログイン名情報、パスワード情報とともに、対象NEが送信してくるプロンプトに関する情報であるプロンプト情報も記憶してある。ここで、プロンプト情報とは、対象NEが、認証のために送信してくる「Username:」や「Password:」などのプロンプトの文字列である。
実施の形態においては、例えば図5に示すproductcsv記憶部120のProduct.csvファイルに含まれる文字列の1つと、例えば図6に示す自動ログイン用接続パターンファイル記憶部121が記憶する1つの接続パターンファイルの<product></product>タグで囲まれる文字列とが一致する。
ここで、例えば、表示装置とはCRT(Cathode Ray Tube)や液晶表示装置等であり、入力装置とはキーボードやマウス等の入力デバイスのことである。
また、例えば、GUI部101がユーザから入力装置を介して受信する入力情報は、直接入力された対象NEのIP、または、選択されたアイコンに関連付けられた対象NEのIPアドレスである。
また、GUI部101は、入力された接続方法の情報が自動接続の場合には、入力された対象NEのIPアドレスをプロダクト検出部102および自動ログイン部105へ送信し、入力された接続方法の情報が手動接続の場合には、入力された対象NEのIPアドレスを手動ログイン部106へ送信する機能を有する。
プロダクト検出部102が、受信したIPアドレスに基づき対象NEのプロダクト情報を検出する方法は、PING接続部103を介して対象NEが稼動しているか否かを検出し、稼動している場合には、SNMP接続部104を介して対象NEのMIB−IIの一つであるSysDescr情報を取得し、次に、取得したSysDescr情報(の文字列)がproductcsv記憶部120のProduct.csvファイルの記述内に存在するか否かを検出し、検出結果が存在する場合には、SysDescr情報(の文字列)と一致するProduct.csvファイルの記述をプロダクト情報として検出する。
PING接続部103が行うIPアドレスにより指定されるNEが正常に稼動しているか否かの検出の方法は、例えば、PING接続部103が、IPアドレスにより指定されるNEに対してIPパケットを発行し、そのパケットがNEに正しく届き、NEから発行したIPパケットの応答が行われ、IPパケットの応答をNEから受信するか否かを検出することにより行う。
また、NEが正常に稼動していることの検出により、NEまでのネットワークが正常か否かの検出を行うことも可能である。
SNMP接続部104が、対象NEのMIB−IIの一つであるSysDescr情報を取得する方法は、例えば、対象NEとSNMPによるSNMP GetコマンドによりMIB−IIを取得し、MIB−IIの一つであるSysDescr情報を取得する。
ここで、自動ログイン部105が受信したプロダクト情報に基づき接続パターンファイルを選択する方法は、自動ログイン部105が、接続パターンファイルにおいて<product></product>タグで囲まれている文字列が、受信したプロダクト情報と一致する接続パターンファイルを、自動ログイン用接続パターンファイル記憶部121から選択することにより実行する。
また、手動ログイン部106は、生成した接続情報に基づいて、受信したIPアドレスにより指定される対象NEへ接続が成功した場合には、後述の接続パターンファイル生成部108を介して、生成した接続情報を接続パターンファイルとして自動ログイン用接続パターンファイル記憶部121に記憶する機能を有する。
まず図7を用いて、第1の動作例として、接続対象であるNEのプロダクトを検出し、検出したNEのプロダクトが有効な接続パターンファイルを予め登録してあるXMLファイルから選択し、選択した接続パターンファイルの内容であるユーザ名やパスワードなどの接続情報に基づき、対象NEに自動ログインする場合の動作を説明する。
次に、GUI部101は、ユーザAからの入力した対象NEに、自動接続するのか手動接続するのかの選択入力を受信する(ステップA3)。ここでは、ユーザAは自動接続を選択入力したとして説明する。
次に、対象NEのIPアドレスを受信したプロダクト検出部102は、PING接続部103を介して、対象NEが正常に稼動しているか否かの検出を実行する(ステップA4)。ここでは、対象NEは正常に稼動していると検出されたものとして説明する。
次に、プロダクト検出部102は、SNMP接続部104を介して、対象NEのMIB−IIの一つであるSysDescrの情報を取得する(ステップA5)。
ここでは、SysDescrの文字列情報とProduct.csvに記述されている情報とで一致した文字列が「RED」であったとし、「RED」という文字列(プロダクト情報)を、プロダクト検出部102が自動ログイン部105へ送信するとして説明する。
例えば、自動ログイン部105は、受信したプロダクト情報が「RED」という文字列の場合、<product>タグと</product>タグとで囲まれる文字列が「RED」である接続パターンファイルを、自動ログイン用接続パターンファイル記憶部121から選択する。
この場合、自動ログイン部105が選択した接続パターンファイルは、例えば、図6で示す接続パターンファイルであるとする。
自動ログイン部105が対象NEへログインを実行する方法は、例えば、まず、自動ログイン部105がIPアドレスにより指定される対象NEへTelnet接続部107を介してTelnetにより接続する。
この場合、対象NEから「Username:」または「Password:」の文字列が送信されてくるのを待つことになる。
これにより、例えば、Telnetなどの通信プロトコル上による対象NEとの接続が完了し、その後、ユーザAは、CLI上で対象NEの設定などが行なえるようになる。
その後、GUI部101が、ユーザAからの対象NEとの接続終了の情報を受信し、受信した接続終了の情報を対象NEへ送信し(ステップA11)、対象NEと接続を切断し(ステップA12)、処理を終了する。
以上により、自動ログイン部105が、選択した接続パターンファイルに基づき、対象NEに接続し、権限変更を実行することが可能となる。
次に、一実施形態によるネットワーク接続装置1に接続パターンファイルが存在しない場合の動作について説明する。接続パターンファイルが存在しない場合に、CLIによる運用知識のみを用いて、以後の運用で自動ログインするための設定処理を行なう第2の動作例を図7と図8とを用いて説明する。
次に、手動ログイン部106は、GUI部101を介してユーザAへ、接続パターンファイルの選択かプロンプト情報の入力の選択かを表示する(図8のステップB4)。ここでは、ユーザAは、プロンプト情報の入力を選択したものとして説明する。
次に、手動ログイン部106は、GUI部101を介してユーザAへ、接続に必要な情報(プロンプト情報)を入力するための画面を表示し、ユーザAがGUI部101を介して入力したプロンプト情報を受信する(ステップB5)。
ユーザAは、図9の入力画面の各入力欄に、それぞれに該当する情報を入力する。
なお、手動ログイン部106は、プロンプト情報を入力するための画面を表示する時に、対象NEのIPアドレスの入力欄に、先に手動ログイン部106がGUI部101から受信した対象NEのIPアドレスを予め入力して表示してもよい。
さらにテンポラリ接続パターンファイルにおいて、図9の入力において権限を変更するコマンドが入力された場合には、<Prompt></Prompt>内に例えば入力された「>」の文字列が記述され、<EnableCommand></EnableCommand>には入力された「enable」や「su」といったコマンドの文字列が記述され、<EnablePassword></EnablePassword>内には権限を変更するための入力されたパスワードの文字列が記述される。
ここで、手動ログイン部106が実行する対象NEへの接続(図8のステップB6)は、第1の動作例において、自動ログイン部105がプロダクトファイルに基づいて対象NEへ接続した接続(図7のステップA7)と同じである。
また、手動ログイン部106は、<PasswordPrompt></PasswordPrompt>内の文字列である「Username:」を検出した場合、<Password></Password>内に記述されたパスワード文字列を、Telnet接続部107を介して対象NEへ送信する。
ここでは、生成する接続パターンファイルとして、接続パターンファイル名には入力された接続対象のIPアドレスを用いる。例えば、IPアドレスが「192.168.1.5」だとすると、接続パターンファイル名として「192.168.1.5.adapter」といったIPアドレスに「adapter」を付ける命名則で、接続パターンファイルを生成する。
以降、実施の形態におけるネットワーク接続装置1の自動ログイン部105が、生成した接続パターンファイルを用いて、対象NEと接続することが可能となる。
まず、図7のステップA4で、対象NEのIPアドレスを受信したプロダクト検出部102が、PING接続部103を介して、対象NEが正常に稼動しているか否かの検出を実行し、対象NEは正常に稼動していなかった場合には、対象NEとの接続が不可能であるため、処理を終了する。
ユーザAからの選択入力が、接続パターンファイルの選択の場合、手動ログイン部106が、GUI部101を介してユーザAへ、接続パターンファイルの選択かプロンプト情報の入力の選択かを表示する(ステップB4)。以降の処理は先に説明した手順と同様である。
例えば、GUI部101から受信したIPアドレスが192.168.1.5だとすると、接続パターンファイル名が「192.168.1.5.adapter」である接続パターンファイルを、自動ログイン部105がproductcsv記憶部120から、検索する。
この場合、自動ログイン部105は、接続パターンファイルの中でタグ<IPADDRESS>と</IPADDRESS>との間の文字列が、GUI部101から受信したIPアドレスと一致する接続パターンファイルを選択し、選択した接続パターンファイルに基づき、受信したIPアドレスにより指定されるNEに接続する機能を有するようにする。
このようにして接続パターンファイルを生成することにより、自動ログイン部105がGUI部101から受信したIPアドレスの接続パターンファイルを自動ログイン用接続パターンファイル記憶部121から検索する(ステップB9)ときに、同じIPアドレスの接続パターンファイルが複数ある場合においても、自動ログイン部105が、例えば、生成された日時が新しい接続パターンファイルを選択するようにするようにして、1つの接続パターンファイルを選択するようにすることも可能である。
なお、接続パターンファイルにおいて、日時についての情報を、接続パターンファイルの中のタグで囲まれた情報として記述してもよい。この場合、自動ログイン部105は、例えば、接続パターンファイルが複数ある場合、接続パターンファイルのタグの中の日時において、日時が新しい接続パターンファイルを選択するようにする。
接続パターンファイルに必要な文字列が入力されていることで、自動ログイン部105が自動ログインを行う手順については第1および第2の動作例にて説明した。
次に、第2の動作例で生成した接続パターンファイルを書き換えて、より汎用的な接続パターンファイルに変更する方法について述べる。
例えば、対象NEに複数の接続ユーザが存在する場合や、ルータに管理者権限で自動ログインしたい場合と一般使用者権限でログインしたい場合とを使い分けたい場合などが該当する。
接続パターンファイルに、例えば、図10に示すように複数のパターン(default、login、enable、lab)の接続情報を記述しておくことで、多様なログインの方法(ログインパターン)を選択することができる。
それぞれdefault、login、enable、labというユニークな文字列で識別され、これらの文字列をユーザが選択することでログインパターンを変更し自動ログインする。
また、タグ<select>と</select>とで囲まれた部分に、複数のパターンの文字列を記述しておく(default、login、enable、lab)。
複数のパターンの文字列がある場合には、手動ログイン部106が、GUI部101を介して、選択した接続パターンファイルのタグ<select>と</select>とで囲まれた文字列(例えば、default、login、enable、lab)をユーザAに表示し、表示した文字列からのユーザAによる選択入力を待つ。
そのために、まずSNMPによってNEからMIB−IIのSysDescrオブジェクトのパラメータを取得し、NEやOSの製造ベンダ、OSのバージョンなどを特定する。
次に、特定したNEのOS、OSのバージョン、製造ベンダなどに基づき、記憶装置から接続情報を検索し、検索した接続情報に基づいて、接続対象NEへ接続する。
また、NEの製造ベンダやOSの違いにより、プロンプト情報の応答などインタフェース仕様が異なる多種類のNEに対する接続を自動で行なうことができる。NEの製造ベンダやOSの違いにより、プロンプト情報の応答などインタフェース仕様が異なる多種類のNEに対する接続を上記の方法により自動で行なうことができない場合でも、手動でCLIを利用し接続する場合と同等の知識のみで最初の一回以後の処理を自動接続する設定が可能となる。
また、自動接続のみならず、権限の変更コマンドなど接続時に自動で行ないたい処理の設定を、オペレータが手動でCLIを利用し接続する場合と同等の知識のみある場合でも可能となる。
また、自動接続のみならず、権限の変更コマンドなど接続時に自動で行ないたい処理の設定を、ネットワーク管理装置のアプリケーションプログラムの開発・実装を行なうことなく可能となる。
したがって、新規NEを導入し管理対象とする場合においても、ネットワーク管理装置の開発にかかる期間やコスト、手間を一切かけることなく、自動接続および以後の設定処理を継続することができる。
また、本発明は、XMLの設定定義を表示・変更する複数のユーザインタフェースによる簡単化、設定定義の自動生成を行う機能、XML設定定義を選択する機能を有していることにより、CLIによる設定業務に必要なスキルや知識のみを用いるだけで、自動接続の設定を行い以後の自動接続を実現することが可能となる。
図11の(1)に示すように、例えば、NE1からNE10がある。
ここで、NEの管理において、NE1からNE6は同じ接続方法であり(接続情報として、接続のためのユーザ名やパスワードなどが同じ)、また、NE7からNE10は同じ接続方法であるとする。
ここで、NE1からNE6までから取得したシステム情報であるSysDescr情報は、ベンダがベンダ1であり、それぞれのOSがOS2からOS7である、という情報を(文字列として)含んでいるとする。
また、NE7からNE10までから取得したシステム情報であるSysDescr情報は、OSがOS1であり、それぞれのベンダがベンダ2からベンダ5である、という情報を(文字列として)含んでいるとする。
ここで、図11の(3)と(4)に示すように、Product.csvファイルに含まれる文字列と、接続パターンファイルの<product></product>タグで囲まれる文字列は一致する。
また、新規にベンダがベンダ1であるNE12が追加された場合においても、NE12にベンダ1の場合の接続方法を設定することのみで、NE12に接続することが可能となる。これは、NE12のシステム情報の一部がベンダ1と一致し、ベンダ1の接続パターンファイルが選択され、選択されたベンダ1の接続パターンファイルに基づきNE12に接続することによる。
次に、上記説明した自動接続を用いた場合の、スクリプトファイルの生成について説明する。まず第1の具体例として、ユーザAによる設定処理の記録手順について述べる。
例えば、ユーザAは、図2の対象選択画面より、接続するNE2をアイコンにより選択する。次に、図1の自動接続部171が、選択されたNE2と接続する。
ここで、自動接続部171が、選択されたNE2と接続する方法は、図7から図8を用いて説明したように、選択されたNE2に対応する接続パターンファイルを自動ログイン接続パターンファイル記憶部121から選択し、選択した接続パターンファイルに基づき自動接続部171(または、より詳細には自動ログイン部105)が、NE2と接続の処理を実行する。
接続が完了した後、ユーザAが図2の記録開始ボタンを押すことにより、図3を用いて説明したように、ユーザAの入力とNE2からの応答とに基づいて、スクリプト生成部142がスクリプトを生成する。
例えば、自動接続部171(または、より詳細には自動ログイン部105)が、選択した接続パターンファイルに基づきNE2と接続の処理を実行するときに、選択した接続パターンファイルを識別する情報、例えば接続パターンファイルのファイル名を、選択接続パターンファイル識別情報として記憶しておく。ここでは、選択接続パターンファイル識別情報である接続パターンファイルのファイル名を、「RedPattern.xml」として説明する。
説明の簡略のため、「自動接続部171(または、より詳細には自動ログイン部105)」を、「自動接続部171」として説明する。
ユーザAが図2の記録開始ボタンを押すことにより、スクリプト生成部142は、スクリプトを生成するが、生成するスクリプトに、自動接続部171から受信した選択接続パターンファイル識別情報に基づいて、選択接続パターンファイル識別情報により自動接続するためのスクリプトを生成する。
この場合、例えば、ファイル名が「RedPattern.xml」である接続パターンファイルにより、自動接続するためのスクリプトを生成する。具体的には、後述する図12の(W1)から(W4)の行である。
その後、スクリプト生成部142は、図3を用いて説明したように、ユーザAの入力とNE2からの応答とに基づいて、スクリプト生成部142がスクリプトを生成する。具体的には、後述する図12の(W5)から(W18)の行である。
例えば、スクリプトの中に選択接続パターンファイル識別情報が、ファイル名が「RedPattern.xml」である接続パターンファイルにより接続する記述である場合、自動実行部144は、選択接続パターンファイル識別情報を、つまりファイル名が「RedPattern.xml」である接続パターンファイルにより接続するという情報を、自動接続部171に送信する。
スクリプトの単位を示す記述である。例ではfunction main(){}内の記述をスクリプトの単位として表現している。なお、処理の始まりと終わりとが明示的に示されるならば、どのような記述でも構わない。
なお(W0)の行は、接続記録開始と同時に、スクリプトに記録される。
接続手段としてTelnetを用いることを明示的に宣言している。例えばFTPにより接続する場合には、var ftp =newFTP();といった記述により明示的に接続手段を記述する。
例で示しているvarといった記述は、明示的に接続手段が判断できる記述ならばどのようなものでも構わない。例では、Telnet接続を表すtelnetというインスタンスを生成していることを示している。接続記録開始と同時に記録される。Telnetで接続した場合には例に示したように記録されるというように、接続手段によって記述が決定される。
自動ログインするために必要な、ユーザ名やログインパスワードといった情報を選択する情報を示す。例では、接続ファイルとしてRedPattern.xmlというファイルを読み込み、その中のlabというパターンを選択してログインすることを宣言している。
このパターンやxmlファイルを変更することでユーザ名等を変更してログインすることができる。自動接続しない場合にはこの記述を記録しないこともできる。また、ユーザ名やパスワードを直接このスクリプト内に記述する方法をとることもできる。
接続するタイミングで接続パターンが一意に決まり、接続記録開始と同時に記録される。
例として、本スクリプトファイルが参照するRedPattern.xmlファイルを図13に示す。これについては、後に詳述する。
接続後、応答が一定時間以上認められなかった場合、自動的にコネクションを切断する場合の時間を指定する。例では引数の(10)の設定により、10秒返事がなかった場合に切断する処理となっている。
また、引数の値を、例えば(−1)と設定することでタイムアウトによる切断処理を行なわず、応答を待ち続けるように動作させても良い。また、タイムアウトによる設定を記述せずに動作させるようにしても良い。
また、語頭のtelnetという文字列は(W1)で宣言したインスタンスtelnetを示しており、Telnet接続における処理に対する命令であることを明示的に示している。
この記述は接続記録開始と同時に記録される。数値(例では10)は接続記録開始時にあらかじめ決定されており、一意であるものとする。この数値はスクリプトファイルに記述後、ユーザAがGUI部101の画面上から自由に書き換えられるものとする。
(W1)で宣言したTelnet接続にて、自動接続をする命令を示す記述である。この記述により、本発明のアダプタ生成装置は対象NEに接続する。例では、(W2)で宣言したpatternにて示されたパターンにより接続を試みる。
接続記録開始時に記述される。
(W6)match=telnet.waitPrompt(‘o>’);
接続後、NEの応答の最後の行の一部を記録したものが(W5)と(W6)である。
例では、ログイン後、NE2の応答が「Tokyo>」だった場合の記述例である。(W5)は最後の行の頭文字を記述する。(W6)は最後の行の行末文字を記録する。
記録される文字は、NE2から応答された文字のうち、一意になるパターンを記述するようにする。例では、最後の行の前に、Tという文字が含まれているため、(W5)の記述がToとなる。また、〉という文字が含まれるため(W6)の記述はo〉となる。
例えば、match=が記述されていない行は無視し、match=が記述されている行のみ、最後の行の行末に特定された文字列が検出された場合のみ、次の行を実行する。なお(W5)のパターンは無視する。
最後の行の行末に「o〉」が検出された場合のみ、以降の処理を継続する。
なお、(W5)の行頭に文字列「match=」を記述する場合、最後の行の行頭に「To」が検出された場合のみ以降の処理を継続するといった処理に変更される。
この場合、「match=」が記述されないことにより(W5)の行は実行されないが、(W5)の行に応答の文字列の行頭が表示されるため、ユーザAがスクリプトを見た場合に、確認がしやすい、という効果がある。
ユーザAが送信するコマンド文字列が記述されている。
(W7)ではtelnet上でenableというコマンドをユーザAがCLI部131にて入力し送信した場合に記述された例が示されている。
NE2に実際に送信するまでを一塊として記述する。
ユーザAがEnter(またはReturn)キーなどを操作し、コマンドをNE2に送信した場合に記録される。sendSの文字列Enterは実際にEnterとコマンドをうったのではなく、Enterキーを押したことを明示的に示している。
この後はユーザAによる処理およびNEの応答の一部が上記(W5)から(W8)の記述に従って記述される。(W9)から(W12)、(W13)から(W16)がユーザAによって記述された例である。
(W18)}
ユーザAまたはNEによってコネクションが切断された場合、切断を明示的に示す記述が記録される。このとき、スクリプト記述の終わりを示す(W18)の記述が同時に記録される。
例えば、上記に説明したU1からU4の4種の情報を、それぞれ識別できるように、「telnet.wait」、「match=telnet.waitPrompt」、「telnet.send」、「telnet.sendS」と、それぞれ異なるスクリプトのコマンドの引き数として記述する。
なお、切断時、ログおよびスクリプトにGUIを通じファイル名を登録させてもよい。また、切断時間や接続時間、対象のIPアドレスなどを利用し一意のファイル名を自動的に追加しても良い。
また、このときキャプチャ部141はCLI上の表示情報を保存しなくともよい。その場合、本アダプタ生成装置は、通常のCLIを有するソフトウェアとして機能する。
なお、スクリプトの記録はユーザAによってCLI上で行なわれる接続処理、コマンド送信と受信の対話型処理、切断処理と並行して進められ、ユーザAの動作と同時にスクリプトコードが生成され、GUI上に表示される。しかし、GUI上に表示せず、スクリプトを保存することとしてもよい。
スクリプトは4種類の情報を、コマンド送信のたびに追記していくこととし、記録される順番は必ずコマンド送信と同じ順番で記録されるものとする。
接続パターンファイルには、複数のパターンを記述できる。例えば、図13においては、defaultとlabという二つのパターンが記述されている。なお、接続パターンファイルは、一例としてはXMLで記述されているが、同様の別形式で保存されていても構わない。
また、多くの応答情報があった際に画面送りを自動で行なうように、あらかじめ画面送りを自動で行なうコマンドを記述しておくことができる。例では<pager−off−cmd>terminal length 0</pager−off−cmd>の記述であり、再生時にこのPatternファイルが選択された場合、自動ログイン後にterminallength 0 コマンドを送信する。この場合、terminallength 0 コマンドは、画面送りを自動で行なうコマンドである。
第1の具体例では、ユーザAによる操作をスクリプトおよびログとして記録する方法について述べた。
次に、記録したスクリプトを用いて自動実行する手順について説明する。
ユーザAは、GUI部101を介してアダプタファイル記憶部153に保存してあるスクリプトを選択する。このとき接続対象となるNE2をユーザAがIPアドレスを入力するなどして指定する。ただし、スクリプトに接続先のIPアドレスやログインユーザ名、パスワードが書いてある場合はその情報を利用し、自動接続をしてもよい。
ここでは、一例として、図12のスクリプトを選択し、図12のスクリプトを実行した際のアダプタ生成装置1の自動実行部144の動作について説明する。
スクリプトファイルであることを検出した場合には、次の行である(W1)を実行する。スクリプトファイルでないことを検出した場合には、例えば、ワーニングメッセージを表示し以降の処理を中断する。
ここでは、スクリプトファイルであることを検出するため、次の行に進む。
次に(W2)の行を抽出し、利用するログインパターンがRedPattern.xmlのlabというパターンであることを検出する。
次に(W3)の行を抽出し、NE2の応答が10秒確認できない場合、コネクションを切断することを決定する。
ここでは、10秒以内にNE2からの確認があるものとして説明する。
接続が成功した場合、NE2から応答がある。
なお、文字列「match=」記述を検出した場合には、NE2からの応答の行頭が「To」であることを検出するまで待機する。検出した場合、次の行へ進む。検出できなかった場合、(W3)の行で示されたように10秒間応答を待ち、10秒以内に検出できなかった場合、NE2との接続を切断する。
ここでは、10秒以内に文字列「o〉」を検出できた場合について説明する。
次に(W8)の行を抽出し、(W8)のsendS行にある「Enter」を検出し、Enterキー送信時に送信される文字コードをNE2に送信する。
その後(W17)の行を検出し、Telnetを切断する。
以上のように、スクリプトファイルに基づいて自動実行部144が以上の処理を実行したことにより、ユーザAがスクリプトを記録した時と同じ処理を繰り返すことが可能となる。
またエディタ機能を具備したGUI部101上にスクリプトを表示することで、スクリプトの情報を変更することができるため、例えばコマンド文字列を変更することで送信されるコマンドが変わり、処理内容が変更される。処理内容が異なるマクロ相当の機能をコマンドの書き換えだけで生成することができる。
このとき、NE2からの応答が多く、一画面で表示できない場合のページ送りを自動で行なうために、接続直後にページ送りを自動で行なうコマンドを送信しておく方法をとることができる。
また、タイマー部145によりスクリプトと対象を指定し、同時に時間を指定することで、毎日1度スクリプトを行なうなどタイマー設定、スケジューリングによる予約実行指定が可能となる。
次に、第1の具体例で生成したスクリプトファイルを、汎用のスクリプト言語であるアダプタファイルに変換する手順について説明する。第1の具体例で生成したスクリプトは、第2の具体例のような手順でユーザAが処理内容を再利用するために必要な、例えば図12の(W5)(W6)(W7)(W8)の行のような、NE2から受信する最終行の文字列の先頭の文字列と最後の文字列と、それに応じて送信するコマンドの文字列と送信コードとの、4種の情報に限定することで、ユーザAが見やすく、変更しやすい利点があるが、本発明のアダプタ生成装置1上でしか実行ができない。
なお、図16から図18に示すスクリプトをExpect言語に変換するルールは、変換ルール記憶部155に予め記憶されているものである。
次に、アダプタファイルに第3の具体例から変換される以外の機能、つまり、ユーザAのNE2に対する操作のキャプチャからは得られない情報を、アダプタファイルに追加記述する手順について説明する。
Expectなどスクリプト言語で記述されたアダプタファイルには、NE2との通信のやり取りがパターン化されて記述されており、アダプタ生成部143がそのパターンにあわせて追加挿入可能な記述パターン(追加挿入可能記述)を、追加記述の推薦としてGUI部101を介してユーザAに提示し、また、提示した記述パターンを挿入するか否かの選択の情報、例えば「挿入する」ボタンまたは「挿入しない」ボタンの選択を、GUI部101を介してユーザAに提示する。
アダプタ生成部143は、アダプタファイルの記述されるパターンに基づいて、アダプタ追加パターンファイルルール記憶部154から追加挿入可能な記述パターンを検索し、追加記述の推薦としてGUI部101を介してユーザAに提示する。
GUI部101は、ユーザAが入力した選択の情報をアダプタ生成部143に送信し、ユーザAの選択が「挿入する」である場合には、アダプタ生成部143が、提示した追加挿入可能な記述パターンを、アダプタファイルに挿入する。
追加が完了すると、アダプタ生成部143が、追加挿入可能な記述パターンが追加されたアダプタファイルを、アダプタファイル記憶部153に保存する。
アダプタ生成部143は、GUI部101からユーザAにより選択されたアダプタファイルをアダプタファイル記憶部153から読み出し、読み出したアダプタファイルの記述パターンに基づいて、アダプタ追加パターンファイルルール記憶部154から追加挿入可能な記述パターンを抽出し、抽出した追加挿入可能な記述パターンを、アダプタファイルに追記する。
なお、アダプタ生成部143は、抽出した追加挿入可能な記述パターンが複数ある場合には、複数の抽出した追加挿入可能な記述パターンをユーザAにGUI部101を介して表示し、複数の抽出した追加挿入可能な記述パターンの中から選択された抽出した追加挿入可能な記述パターンを追加するようにする。
まず、Expectの記述例について説明する。Expectの記述において、「expect{」の次の記述は、NE2からの応答情報であり、この応答情報を検出後、sendの後の記述により検出後にどのような情報をNEに送信するかを決定する。
この記述を複数用意することで、エラーメッセージなどの異常処理対処や、特定の文字列出現時に異なる処理を行なう。
なお、条件が異なる処理をアダプタファイルに追記するために、アダプタ生成部143は、ログ記憶部151に記録されているログ中に存在する通信履歴から、該コマンドに対するNE2からの応答文字列全てを抽出し、GUI部101に出力するようにしてもよい。
より具体的には、アダプタファイルの記述に対し、図23に示すように、「timeout{XXX}」の記述を追加する場合について説明する。ここで、「XXX」は任意の文字列である。
アダプタ生成部143は、文字列パターン「send」を検出した場合、アダプタ追加パターンファイルルール記憶部154から検出した文字列パターン「send」の次に来るパターンを検出し、検出したパターンが、例えば、「timeout{send_user(省略)」であるとすると、検出した文字列パターンのあとに「timeout{send_user(省略)」の記述挿入を推薦する画面を表示する(図23のXA参照)。
ユーザAは、XAで示される枠の中から、候補のX1、X2、X3のいずれかを選択、または、いずれも選択しない。
アダプタ生成部143は、選択された場合には、選択された文字列パターンをアダプタファイルに挿入する。
次に、図1の説明に戻り、バックアップ部173、ロールバック部174、ディスカバリ部172の説明をする。
バックアップ部173は、NE2への接続時に、その時点でのNE2のコンフィグレーションファイルを取得し、設定内容をNEコンフィグファイル記憶部182に保存するバックアップ機能を有する。
〔第5の具体例〕バックアップ、ロールバック
次に、本発明装置がユーザAや自動実行部144によりNE2に対して処理を行なう前に、NE2の設定ファイルを本発明装置側にアップロードするバックアップ手順および、処理後にアップロードした該設定ファイルをNE2に送信し該設定ファイルの内容をNE2に反映するロールバックの手順について説明する。
本装置によりNE2の設定情報を手動または自動により変更することが可能であるが、変更の前にバックアップを取っておくことにより、変更前に戻すことが可能となる。なお、バックアップ部173が実行するバックアップは、履歴として設定情報をファイルとしてNEコンフィグファイル記憶部182に保存する。また、ロールバック部174は、NEコンフィグファイル記憶部182に保存された設定情報の中から任意に選択し、選択した設定情報に基づいてロールバックすることにより、選択した任意の設定情報にNE2の設定情報を戻すことが可能である。
バックアップ機能の利用プロトコルとして、TFTPおよびFTPクライアント、サーバ機能の実装などが考えられる。
バックアップ機能には設定パラメータファイルがテキストファイルで用意されており、対象NE2のプロダクトごとに該テキストファイルに記述したパラメータを読み込んで動作する。
バックアップ部173は、バックアップの処理を実行した後、ダウンロードしたファイルについては、例えば、時間などを利用しユニークなファイル名を自動生成し、生成したファイル名で保存する。例えば、IPアドレスの情報、プロダクト名の情報、およびダウンロード時間の情報を、任意に組み合わせてファイル名を生成する。
まず、ユーザAがGUI部101により入力したIPアドレスを、GUI部101を介して受信する(ステップS1901)
次に、受信したIPアドレスに基づいて、接続パターン記憶部181(productcsv記憶部120)からプロダクト名を検出する(ステップS1902、S1903)。
次に、検出したプロダクト名に基づいて、自動ログイン用接続パターンファイル記憶部121から接続パターンファイルを取得する(ステップS1904、1905)。
取得した接続パターンファイルに基づいてNEと接続し、接続したNEの設定ファイルを取得する(ステップS1906、1907)。
取得したNEの設定ファイルをNEコンフィグファイル記憶部182に保存する(ステップS1908)。
なお、NEコンフィグファイル記憶部182に保存される設定ファイルにはNEを識別するIPアドレスの情報が記憶されており、そのIPアドレスに基づいて、ロールバック部174は、NEと接続してもよい。
また、バックアップ部173およびロールバック部174により、NEの設定ファイルが、バックアップされ、また、ロールバックさることにより、NEの管理が確実なものとなる。
次に、ディスカバリ部172が実行する、ディスカバリ手順について説明する。
まず、ディスカバリとは、本装置が接続するネットワークNW3のIPレイヤの接続関係(構成)を探索し、把握する機能である。ディスカバリ部172が有するディスカバリ機能によって、例えば図22に示すような画面から、接続対象となるNE2を選択できるため、ユーザAはNE2のIPアドレスを調べる必要なしに、簡単にNE2を指定することが可能となる。
まず、本装置の起動時に、ディスカバリ部172は、自端末のIPアドレス、ディスカバリレンジ、シードデバイスのアドレスの3つのパラメータを、ユーザAの入力としてGUI部101を介して、取得する。
第1のパラメータである自端末のIPアドレスは、自端末設定済みのIPアドレスを探して決定する。さらに、ユーザがIPアドレスを指定する機能を持ってもよい。
ディスカバリレンジの第1の設定方法として、二つのIPアドレスと一つのサブネットマスク指定により範囲を設定する方法がある。例えば、例1として、ディスカバリレンジを、192.168.1.0から192.168.50.255として設定する。また、例2としてディスカバリレンジを192.168.1.0/24192.168.50.0/24として設定する。
ディスカバリレンジの第2の設定方法として、一つのIPアドレスと一つのサブネットマスク指定により範囲を設定する方法がある。例えば、例として、ディスカバリレンジを、192.168.1.0/24として設定する。これは、つまり192.168.1.0から192.168.1.255のことである。
一般的には、シードデバイスのIPアドレスにはゲートウェイのIPアドレスが設定される。なお、設定されるIPアドレスは、何でも構わない。シードデバイスのアドレスを設定しない場合、別動作にてディスカバリを継続することも可能である。
(ステップS2001)シードデバイスと指定されたアドレスに対してPingを送信し、応答を検出する。例えば、Pingは2回以上4回未満で終了とする。
(ステップS2002)シードデバイスに対してSNMP接続を試し、可能ならばSNMPの応答を取得する。SNMP walkによりMIB情報を全て取得する。SysDescrオブジェクトからプロダクト名(例:RED router 2611)を取得する。
(ステップS2005)ステップS2004で探索したIPアドレスのサブネットマスクから同じネットワークアドレスを持つIPアドレスをMIBから探し出し、Pingを送信する。なお、ここで応答を検出したIPアドレスは、シードデバイスとは異なる新たなデバイスのはずである。
自端末IPアドレス192.168.1.4/24、シードデバイスIPアドレス192.168.1.1、ディスカバリ対象のIPアドレスの範囲を192.168.0.0/24から192.168.50.0/24と設定し、ディスカバリを実行した場合の動作は次のようになる。
(ステップS2102)192.168.1.1からの応答を確認後、SNMP walkにより192.168.1.1のMIBを取得する。
(ステップS2104)192.168.1.1のサブネットマスクは/24である。よってネットワークアドレスは192.168.1.0/24であるため、アドレスレンジは192.68.1.1から192.168.1.254と検出する。
(ステップS2107)ディスカバリ機能は、Pingの応答を検出し、検出したアドレスをDBに登録する。この場合、上記4つのアドレスからが応答が返ってくるので、シードデバイス(192.168.1.1)と接続しているものとみなし、上記4つのアドレスをDBに登録する。
(ステップS2111)ステップS2110で検出した192.168.10.2は、DBに登録されていない未知のIPアドレスのため、新しいデバイスとして検出する。
(ステップS2112)ステップS2111で新しいデバイスとして検出した192.168.10.2に対し、SNMP walk、プロダクトを確定する。
(ステップS2117)ステップS2116で算出した192.168.20.0/24内の対向IPアドレスを検索し、192.168.20.3を検出する。
(ステップS2118)192.168.20.3はDBに登録されていない未知のIPアドレスのため、新しいデバイスと検出し、192.168.20.3に対しSNMP walk、プロダクトを確定する。
(ステップS2121)この時点で処理が完結していないステップS2114で検出した192.168.30.2とステップS2120で検出した192.168.40.1とを比較し、数値の小さい192.168.30.2に対して検索の処理を行なう。
なお、図21においては、L2スイッチ192.168.1.5/24については、IPレイヤのディスカバリに限定しているため、L2の接続関係を検出していない。
また、192.168.60.1/24は範囲外のIPアドレスであるが、範囲内のIPアドレス192.168.30.3などと同じデバイスのIPアドレスのため、検出がされている。
また、192.168.60.1の対向については処理を行っていないため、ネットワークが存在することのみわかっている状態で処理が終了している。
ユーザAは、図22のように表示されるNE2を選択することにより、簡易に接続をするNE2を選択することが可能である。
そのため、例えば既に記述したスクリプトやマクロコードのなかから、一つのコマンドのパラメータなどを変更してコードを作り直すといった簡単な変更処理に向いていないといった問題がある。
その対処として、本発明により、ネットワーク運用者のコマンド処理とその応答のみを表示させ、スクリプトの実行処理をソフトウェアで隠蔽することによって、ネットワーク運用者の必要な情報に対する視認性を向上させるという効果を奏する。
そこで、本発明により、スクリプトに条件分岐、待機処理記述を追加する仕組みを追加することで、状況に応じて異なる処理を記述できる柔軟性ある記述を追加できるという効果を奏する。
また、本発明により、バックアップによって、自動処理が行なわれたあとに自動処理の状態を元に戻すための情報を適宜蓄えることができるという効果を奏する。
2 NE
3 NW
101 GUI部
131 CLI部
132 NE−IF部
141 キャプチャ部
142 スクリプト生成部
143 アダプタ生成部
144 自動実行部
145 タイマー部
171 自動接続部
172 ディスカバリ部
173 バックアップ部
174 ロールバック部
175 タイマー部
151 ログ記憶部
152 スクリプト記憶部
153 アダプタファイル記憶部
154 アダプタ追加パターンファイルルール記憶部
155 変換ルール記憶部
181 接続パターン記憶部
182 NEコンフィグファイル記憶部
Claims (10)
- 端末とネットワークを介して接続されるアダプタ生成装置であり、
ユーザより入力された第1の文字列を送信する入出力手段と、
前記入出力手段から受信した第1の文字列を前記端末に送信し、前記送信した第1の文字列の応答である第2の文字列を前記端末から受信し、前記受信した第2の文字列を前記入出力手段に送信する送受信手段と、
前記第1の文字列と前記第2の文字列とを取得するキャプチャ手段と、
前記取得した第2の文字列と前記第1の文字列とを関連付けて、前記端末へ文字列を送信するためのスクリプトを生成するスクリプト生成手段と、
を有することを特徴とするアダプタ生成装置。 - 同一の処理に対するスクリプトの記述と汎用的に用いられる汎用言語による記述とを関連付けて変換ルールとして予め記憶している変換ルール記憶手段と、
前記生成したスクリプトを前記変換ルールに基づいてアダプタ言語の記述に変換することにより、前記端末へ文字列を送信するための汎用言語により記述されるアダプタファイルを生成するアダプタ生成手段と、
を有することを特徴とする請求項1に記載のアダプタ生成装置。 - 汎用言語により記述される文字列の記述と追加的な制御を実行するための文字列の記述である追加挿入可能記述とを関連付けてアダプタ追加パターンファイルルールとして予め記憶しているアダプタ追加パターンファイルルール記憶手段を有し、
前記アダプタ生成手段が、
前記アダプタファイルの記述から文字列の記述を検出し、前記検出した文字列の記述に基づいて前記アダプタ追加パターンファイルルールから追加挿入可能記述を抽出し、前記抽出した追加挿入可能記述を表示し、前記表示した追加挿入可能記述の中から選択された追加挿入可能記述を前記アダプタファイルに追記する、
ことを特徴とする請求項1または請求項2に記載のアダプタ生成装置。 - 前記スクリプトまたは前記アダプタファイルに基づいて、前記端末へ文字列を送信する自動実行手段、
を有することを特徴とする請求項1から請求項3に記載のアダプタ生成装置。 - 端末のシステム情報と関連付けて前記端末と接続するための接続情報を予め記憶する接続情報記憶手段と、
接続先の端末を指定する接続先情報を受信する接続先入力手段と、
前記接続先入力手段の受信した接続先情報に基づいて、前記接続先情報の端末に関するシステム情報を検出するプロダクト検出手段と、
前記プロダクト検出手段が検出したシステム情報と関連する接続情報を前記接続情報記憶部から選択し、前記選択した接続情報に基づき前記接続先情報の端末へ接続するログイン手段と、
を有することを特徴とする請求項1から請求項4に記載のアダプタ生成装置。 - 前記ログイン手段が、前記選択した接続情報を識別する接続情報識別情報を前記スクリプト生成手段に送信し、
前記スクリプト生成手段が、前記ログイン手段から受信した接続情報識別情報に基づいた記述を前記スクリプトファイルまたはアダプタファイルに記述し、
前記自動実行手段が、前記スクリプトファイルまたはアダプタファイルの前記接続情報識別情報に基づいた記述により、前記接続情報識別情報を前記ログイン手段に送信し、
前記ログイン手段が、前記自動実行手段から受信した接続情報識別情報に基づいて、接続情報を前記接続情報記憶部から選択し、前記選択した接続情報に基づき前記接続先情報の端末へ接続する、
ことを特徴とする請求項5に記載のアダプタ生成装置。 - 前記端末の設定情報を保存するためのNEコンフィグファイル記憶手段と、
前記端末に接続し、前記接続した端末の設定情報を前記端末から取得し、前記取得した設定情報を前記NEコンフィグファイル記憶手段に保存するバックアップ手段と、
前記NEコンフィグファイル記憶手段に保存される設定情報に基づいて端末に接続し、前記接続した端末の設定情報を、前記設定情報に基づいて変更するロールバック手段と、
を有することを特徴とする請求項1から請求項6に記載のアダプタ生成装置。 - 前記アダプタ生成装置のIPアドレスの情報と検索するIPアドレスの範囲の情報とシードデバイスのIPアドレスの情報とに基づき、ネットワーク上の端末を検出するディスカバリ手段、
を有することを特徴とする請求項1から請求項7に記載のアダプタ生成装置。 - 端末とネットワークを介して接続されるアダプタ生成装置で用いられるアダプタ生成方法であり、
入出力方法が、ユーザより入力された第1の文字列を送信する入出力過程と、
送受信方法が、前記入出力方法から受信した第1の文字列を前記端末に送信し、前記送信した第1の文字列の応答である第2の文字列を前記端末から受信し、前記受信した第2の文字列を前記入出力方法に送信する送受信過程と、
キャプチャ方法が、前記第1の文字列と前記第2の文字列とを取得するキャプチャ過程と、
スクリプト生成方法が、前記取得した第2の文字列と前記第1の文字列とを関連付けて、前記端末へ文字列を送信するためのスクリプトを生成するスクリプト生成過程と、
を有することを特徴とするアダプタ生成方法。 - 端末とネットワークを介して接続されるコンピュータに、
ユーザより入力された第1の文字列を送信する入出力手段と、
前記入出力手段から受信した第1の文字列を前記端末に送信し、前記送信した第1の文字列の応答である第2の文字列を前記端末から受信し、前記受信した第2の文字列を前記入出力手段に送信する送受信手段と、
前記第1の文字列と前記第2の文字列とを取得するキャプチャ手段と、
前記取得した第2の文字列と前記第1の文字列とを関連付けて、前記端末へ文字列を送信するためのスクリプトを生成するスクリプト生成手段と、
の機能を実行させるアダプタ生成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006221572A JP4869831B2 (ja) | 2006-08-15 | 2006-08-15 | アダプタ生成装置、方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006221572A JP4869831B2 (ja) | 2006-08-15 | 2006-08-15 | アダプタ生成装置、方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008046847A true JP2008046847A (ja) | 2008-02-28 |
JP4869831B2 JP4869831B2 (ja) | 2012-02-08 |
Family
ID=39180539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006221572A Expired - Fee Related JP4869831B2 (ja) | 2006-08-15 | 2006-08-15 | アダプタ生成装置、方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4869831B2 (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009271640A (ja) * | 2008-05-01 | 2009-11-19 | Nippon Telegr & Teleph Corp <Ntt> | ネットワーク機器設定装置およびネットワーク機器設定方法 |
JP2010015512A (ja) * | 2008-07-07 | 2010-01-21 | Nippon Telegr & Teleph Corp <Ntt> | コンフィグ設定管理モデル作成装置、コンフィグ設定管理モデル作成方法およびそのプログラム |
JP2010045769A (ja) * | 2008-07-14 | 2010-02-25 | Ricoh Co Ltd | 組み込み機器、遠隔処理方法およびプログラム |
JP2010122929A (ja) * | 2008-11-20 | 2010-06-03 | Mitsubishi Electric Information Systems Corp | 遠隔端末及び遠隔端末処理プログラム |
JP2012059039A (ja) * | 2010-09-09 | 2012-03-22 | Nec Corp | コマンド管理装置、その方法及びそのプログラム |
JP2012093996A (ja) * | 2010-10-27 | 2012-05-17 | Hitachi Systems Ltd | ドキュメント類自動生成機能付クライアントコンピュータ |
JP2012185599A (ja) * | 2011-03-04 | 2012-09-27 | Encourage Technologies Co Ltd | 情報処理システム、プログラム改修装置、プログラム改修方法、及びプログラム |
JP2015052934A (ja) * | 2013-09-06 | 2015-03-19 | Kddi株式会社 | 作業システム及びプログラム |
US10216863B2 (en) | 2016-10-17 | 2019-02-26 | Panasonic Intellectual Property Management Co. Ltd. | Program generation method, program generation apparatus, and storage medium |
CN111625397A (zh) * | 2020-04-14 | 2020-09-04 | 北京捷通华声科技股份有限公司 | 业务日志备份方法、集群、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6276955A (ja) * | 1985-09-30 | 1987-04-09 | Matsushita Electric Ind Co Ltd | 通信端末装置 |
JPH09186716A (ja) * | 1995-12-28 | 1997-07-15 | Sumitomo Electric Ind Ltd | ネットワークトポロジ認識方法およびネットワークトポロジ認識装置 |
JPH10107839A (ja) * | 1996-10-01 | 1998-04-24 | Murata Mach Ltd | 通信端末装置 |
JP2000090028A (ja) * | 1998-09-10 | 2000-03-31 | Toshiba Corp | ネットワーク管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2007053485A (ja) * | 2005-08-16 | 2007-03-01 | Nec Corp | ネットワーク機器制御システム |
-
2006
- 2006-08-15 JP JP2006221572A patent/JP4869831B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6276955A (ja) * | 1985-09-30 | 1987-04-09 | Matsushita Electric Ind Co Ltd | 通信端末装置 |
JPH09186716A (ja) * | 1995-12-28 | 1997-07-15 | Sumitomo Electric Ind Ltd | ネットワークトポロジ認識方法およびネットワークトポロジ認識装置 |
JPH10107839A (ja) * | 1996-10-01 | 1998-04-24 | Murata Mach Ltd | 通信端末装置 |
JP2000090028A (ja) * | 1998-09-10 | 2000-03-31 | Toshiba Corp | ネットワーク管理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2007053485A (ja) * | 2005-08-16 | 2007-03-01 | Nec Corp | ネットワーク機器制御システム |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009271640A (ja) * | 2008-05-01 | 2009-11-19 | Nippon Telegr & Teleph Corp <Ntt> | ネットワーク機器設定装置およびネットワーク機器設定方法 |
JP2010015512A (ja) * | 2008-07-07 | 2010-01-21 | Nippon Telegr & Teleph Corp <Ntt> | コンフィグ設定管理モデル作成装置、コンフィグ設定管理モデル作成方法およびそのプログラム |
JP2010045769A (ja) * | 2008-07-14 | 2010-02-25 | Ricoh Co Ltd | 組み込み機器、遠隔処理方法およびプログラム |
JP4691177B2 (ja) * | 2008-07-14 | 2011-06-01 | 株式会社リコー | 組み込み機器、遠隔処理方法およびプログラム |
JP2010122929A (ja) * | 2008-11-20 | 2010-06-03 | Mitsubishi Electric Information Systems Corp | 遠隔端末及び遠隔端末処理プログラム |
JP2012059039A (ja) * | 2010-09-09 | 2012-03-22 | Nec Corp | コマンド管理装置、その方法及びそのプログラム |
JP2012093996A (ja) * | 2010-10-27 | 2012-05-17 | Hitachi Systems Ltd | ドキュメント類自動生成機能付クライアントコンピュータ |
JP2012185599A (ja) * | 2011-03-04 | 2012-09-27 | Encourage Technologies Co Ltd | 情報処理システム、プログラム改修装置、プログラム改修方法、及びプログラム |
JP2015052934A (ja) * | 2013-09-06 | 2015-03-19 | Kddi株式会社 | 作業システム及びプログラム |
US10216863B2 (en) | 2016-10-17 | 2019-02-26 | Panasonic Intellectual Property Management Co. Ltd. | Program generation method, program generation apparatus, and storage medium |
CN111625397A (zh) * | 2020-04-14 | 2020-09-04 | 北京捷通华声科技股份有限公司 | 业务日志备份方法、集群、装置、电子设备及存储介质 |
CN111625397B (zh) * | 2020-04-14 | 2023-09-12 | 北京捷通华声科技股份有限公司 | 业务日志备份方法、集群、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP4869831B2 (ja) | 2012-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4869831B2 (ja) | アダプタ生成装置、方法およびプログラム | |
US7475126B2 (en) | Method and apparatus for system lineup and testing | |
CN109495308B (zh) | 一种基于管理信息系统的自动化运维系统 | |
US20110239189A1 (en) | Software management system for network data processing systems | |
CN104536890B (zh) | 测试系统、方法和装置 | |
JP2001282655A (ja) | ネットワークデバイス管理方法、装置、および記憶媒体 | |
US7831959B1 (en) | Method and apparatus to manage configuration for multiple file server appliances | |
KR20040051738A (ko) | 이기종 네트워크 장비의 구성 관리를 위한 엑스엠엘 기반망 관리 시스템 및 방법 | |
KR100865015B1 (ko) | 실시간 통합 관리정보 데이터 변환 및 모니터링 장치 및 그방법 | |
KR101913346B1 (ko) | 클라우드 환경에서의 클라우드 서버 관리 방법 및 장치 | |
JP7231518B2 (ja) | パッケージ化支援システムおよびパッケージ化支援方法 | |
CN108037937A (zh) | 一种动态更新资源的方法 | |
CN115357662A (zh) | 一种数据同步的方法、装置及介质 | |
CN109471621B (zh) | 一种基于大数据的Linux系统下的工具构建方法 | |
CN114237538A (zh) | 一种投屏控制方法、服务器、投屏设备和系统 | |
JP4636775B2 (ja) | ネットワーク監視システム | |
JP4293169B2 (ja) | ネットワーク機器制御システム | |
US8032540B1 (en) | Description-based user interface engine for network management applications | |
Loddo et al. | Marionnet: a virtual network laboratory and simulation tool | |
JP2006331202A (ja) | 管理システム | |
Cisco | Release Notes for Device Fault Manager 1.1 on Windows 2000 and Windows NT | |
CN110837612B (zh) | 统一资源标识符uri数据的获取方法和装置、存储介质 | |
JP2014186432A (ja) | 電子機器、およびスクリプト生成装置 | |
JP4675834B2 (ja) | ネットワーク接続装置、方法およびプログラム | |
Choi | Python Network Automation Labs: Ansible, pyATS, Docker, and the Twilio API |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080801 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110621 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110803 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110823 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111021 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111108 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111116 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141125 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |