JPWO2017122365A1 - 逆コマンド生成プログラム、逆コマンド生成方法及び逆コマンド生成装置 - Google Patents

逆コマンド生成プログラム、逆コマンド生成方法及び逆コマンド生成装置 Download PDF

Info

Publication number
JPWO2017122365A1
JPWO2017122365A1 JP2017561499A JP2017561499A JPWO2017122365A1 JP WO2017122365 A1 JPWO2017122365 A1 JP WO2017122365A1 JP 2017561499 A JP2017561499 A JP 2017561499A JP 2017561499 A JP2017561499 A JP 2017561499A JP WO2017122365 A1 JPWO2017122365 A1 JP WO2017122365A1
Authority
JP
Japan
Prior art keywords
setting
rollback
communication device
setting data
reverse command
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
Application number
JP2017561499A
Other languages
English (en)
Other versions
JP6525067B2 (ja
Inventor
大輔 竹澤
大輔 竹澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2017122365A1 publication Critical patent/JPWO2017122365A1/ja
Application granted granted Critical
Publication of JP6525067B2 publication Critical patent/JP6525067B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ネットワーク管理装置(10)は、通信装置の設定が更新される度に通信装置が記憶する第1の設定データを所定の記憶部に格納する処理と、通信装置に対する設定操作を受け付ける処理と、受け付けた設定操作の対象の通信装置から通信装置が記憶する第2の設定データを取得する処理と、取得した第2の設定データに基づいて通信装置へ送信する設定コマンドの逆コマンドを生成する処理と、取得する処理で取得された第2の設定データと記憶部に記憶された第1の設定データとに差分がある場合に記憶部に記憶された第1の設定データに基づいて生成した逆コマンドを無効化する処理とを実行する。

Description

本発明は、逆コマンド生成プログラム、逆コマンド生成方法及び逆コマンド生成装置に関する。
ネットワークの設定に関する技術の一例として、SDN(Software-Defined Networking)などの技術が知られている。かかるSDN技術では、企業等の組織内のネットワークに含まれるネットワーク装置に対する設定、例えばVLAN(Virtual Local Area Network)やサブネットなどの設定を一括で実行できるネットワーク管理装置が提供される。
特開2011−199623号公報 特開2015−142167号公報
ところで、上記のネットワークの設定が行われる場合、認識の誤りや操作のミスなどが原因となってネットワークの管理者等が意図する通りの設定を必ずしも実施できるとは限らない。このため、ネットワークの設定時にオペレーションにより編集された内容を設定に反映するコマンドから逆コマンドを生成しておき、ロールバックが指示された場合に逆コマンドを使用してネットワーク装置の設定を変更される前の状態に戻すロールバック処理が行われる場合がある。
しかしながら、上記の技術では、次に説明するように、逆コマンドの実行によりネットワークに不具合が発生する場合がある。
例えば、ネットワークの設定は、必ずしもネットワーク管理装置を介して行われるとは限らず、ネットワークの管理者等がtelnetなどのプロトコルを介してネットワーク装置に接続し、CLI(Command Line Interface)などを介して設定が行われる場合がある。この場合、ネットワーク管理装置が解釈できる設定コマンドだけが使用されるとは限らず、逆コマンドが生成できない場合がある。このように逆コマンドが生成できなかったにもかかわらず、それ以前に生成されていた逆コマンドが実行された場合、CLI等を介して行われた設定が無視された状態でロールバックが実行されることになる。この結果、逆コマンドの実行によりネットワークに不具合が発生する場合もある。
1つの側面では、本発明は、逆コマンドの実行により発生するネットワークの不具合を抑制できる逆コマンド生成プログラム、逆コマンド生成方法及び逆コマンド生成装置を提供することを目的とする。
一態様では、逆コマンド生成プログラムは、通信装置の設定が更新される度に前記通信装置が記憶する第1の設定データを所定の記憶部に格納する処理と、通信装置に対する設定操作を受け付ける処理と、受け付けた前記設定操作の対象の前記通信装置から前記通信装置が記憶する第2の設定データを取得する処理と、取得した前記第2の設定データに基づいて前記通信装置へ送信する設定コマンドの逆コマンドを生成する処理と、前記取得する処理で取得された前記第2の設定データと前記記憶部に記憶された前記第1の設定データとに差分がある場合に前記記憶部に記憶された前記第1の設定データに基づいて生成した逆コマンドを無効化する処理と、をコンピュータに実行させる。
逆コマンドの実行により発生するネットワークの不具合を抑制できる。
図1は、実施例1に係るネットワーク管理システムの構成例を示す図である。 図2は、実施例1に係るネットワーク管理装置の機能的構成を示すブロック図である。 図3は、逆コマンドの生成の一例を示す図である。 図4は、操作履歴データの一例を示す図である。 図5は、設定操作および設定内容の時系列を示す模式図である。 図6は、ロールバック一覧画面の一例を示す図である。 図7は、ロールバック一覧画面の一例を示す図である。 図8は、ロールバック一覧画面の一例を示す図である。 図9は、ロールバック一覧画面の一例を示す図である。 図10は、実施例1に係る逆コマンド生成処理の手順を示すフローチャートである。 図11は、実施例1に係るロールバック処理の手順を示すフローチャート(1)である。 図12は、実施例1に係るロールバック処理の手順を示すフローチャート(2)である。 図13は、実施例1及び実施例2に係るロールバック処理制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。
以下に添付図面を参照して本願に係る逆コマンド生成プログラム、逆コマンド生成方法及び逆コマンド生成装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
図1は、実施例1に係るネットワーク管理システムの構成例を示す図である。図1に示すネットワーク管理システム1は、ネットワークNWを構築するネットワーク装置30A〜30Cを管理するネットワーク管理サービスを提供するものであり、一例として、ネットワーク装置30A〜30Cに対する各種設定を実行したり、ネットワーク装置30A〜30Cへの設定をロールバックしたりすることができる。
図1に示すように、ネットワーク管理システム1には、ネットワーク管理装置10と、ネットワーク装置30A〜30Cと、クライアント端末50とが含まれる。以下では、ネットワーク装置30A〜30Cのことを総称する場合に「ネットワーク装置30」と記載する場合がある。なお、図1には、3つのネットワーク装置30A、ネットワーク装置30B及びネットワーク装置30Cがネットワーク管理装置10に収容される場合を例示したが、これに限定されない。すなわち、ネットワーク管理装置10が収容するネットワーク装置の数30は任意であってかまわない。
ネットワーク管理装置10は、上記のネットワーク管理サービスを提供するコンピュータである。
一実施形態として、ネットワーク管理装置10は、上記のネットワーク管理サービスを実現するパッケージソフトウェアやオンラインソフトウェアを所望のコンピュータにインストールさせることによってSDN(Software-Defined Networking)コントローラとして実装できる。このネットワーク管理装置10は、ネットワークNWの一例として、IP−VPN(Internet Protocol Virtual Private Network)や広域イーサネット(登録商標)などのキャリアイーサネット(登録商標)の監視、設定や制御などを含む管理を実行することができる。このようにネットワーク管理装置10により管理されるネットワークNWは、物理ネットワークに限定されず、SDNやNFV(Network Function Virtualization)などの技術により仮想化された仮想ネットワークであってもよい。
ネットワーク装置30は、ネットワークNWを構築する装置であり、例えば、ルータやスイッチなどのデータ転送装置を始め、ファイアーウォール、ロードバランサなどを採用することができる。
クライアント端末50は、上記のネットワーク管理サービスの提供を受けるコンピュータであり、一例として、ネットワークNWを管理するネットワーク管理者等の関係者により使用される。
[ネットワーク管理装置10の構成]
図2は、実施例1に係るネットワーク管理装置10の機能的構成を示すブロック図である。図2に示すように、ネットワーク管理装置10は、通信I/F(interface)部11と、記憶部13と、制御部15とを有する。なお、ネットワーク管理装置10は、図2に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
通信I/F部11は、他の装置、例えばネットワーク装置30やクライアント端末50との間で通信制御を行うインタフェースである。
一実施形態として、通信I/F部11は、LANカードなどのネットワークインタフェースカードを採用できる。例えば、通信I/F部11は、ネットワークの設定に関するコマンドやその逆コマンドをネットワーク装置30へ送信したり、ネットワーク装置30からネットワーク装置30が記憶する設定ファイル、例えば「running-config」や「startup-config」を受信したりする。また、通信I/F部11は、クライアント端末50からネットワークの設定に対する編集操作やネットワークの設定に関するロールバック指示を受け付ける。この他、通信I/F部11は、ネットワークの設定を編集する編集画面やロールバックの対象とされる設定操作の一覧が登載されたロールバック一覧画面などをクライアント端末50へ送信したりする。
記憶部13は、制御部15で実行されるOS(Operating System)を始め、上記のネットワーク管理サービスを実現するネットワーク管理プログラムなどの各種プログラムに用いられるデータを記憶する記憶デバイスである。
一実施形態として、記憶部13は、ネットワーク管理装置10における補助記憶装置として実装することができる。例えば、記憶部13には、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などを採用できる。なお、記憶部13は、必ずしも補助記憶装置として実装されずともよく、ネットワーク管理装置10における主記憶装置として実装することもできる。この場合、記憶部13には、各種の半導体メモリ素子、例えばRAM(Random Access Memory)やフラッシュメモリを採用できる。
記憶部13は、制御部15で実行されるプログラムに用いられるデータの一例として、操作履歴データ13aと、逆コマンドデータ13bとを記憶する。このように図2に示された操作履歴データ13a及び逆コマンドデータ13b以外にも、他の電子データを併せて記憶することもできる。
例えば、記憶部13には、ネットワーク管理装置10及び各ネットワーク装置30との間で互いが記憶する設定ファイル、例えば「running-config」や「startup-config」を比較することにより差分を抽出するために、各ネットワーク装置30に記憶された設定ファイルの複製を記憶することができる。また、記憶部13には、ネットワークの管理者等のユーザの権限を管理するために、ユーザごとにネットワークの設定を許可するネットワーク装置30またはネットワーク装置30のグループが規定されたユーザ権限データを記憶することができる。さらに、記憶部13には、ネットワークの設定コマンドからその逆コマンドを生成するために、設定コマンドのテンプレートを記憶することもできる。この他、記憶部13には、ネットワークNWのトポロジを管理するために、ネットワーク装置30に関するデバイスデータやネットワーク装置30が形成するリンクに関するリンクデータなどを記憶することもできる。
なお、ここでは、操作履歴データ13a及び逆コマンドデータ13bの説明については、操作履歴データ13a及び逆コマンドデータ13bが生成される処理部の説明がなされる段階で併せて説明することとする。
制御部15は、各種のプログラムや制御データを格納する内部メモリを有し、これらによって各種の処理を実行するものである。
一実施形態として、制御部15は、中央処理装置、いわゆるCPU(Central Processing Unit)として実装される。なお、制御部15は、必ずしも中央処理装置として実装されずともよく、MPU(Micro Processing Unit)として実装されることとしてもよい。また、制御部15は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
制御部15は、図示しない主記憶装置として実装されるDRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などのRAMのワークエリア上に記憶部13に記憶されたネットワーク管理プログラムを展開することにより、下記の処理部を仮想的に実現する。例えば、制御部15は、図2に示すように、第1受付部15aと、監視部15bと、設定部15cと、逆コマンド生成部15dと、ロールバック制御部15eと、出力制御部15fと、第2受付部15gとを有する。
第1受付部15aは、ネットワーク装置30に対する各種設定を受け付ける処理部である。
一実施形態として、第1受付部15aは、ネットワーク装置30に対する各種の設定をGUI(Graphical User Interface)を介して受け付けることができる。例えば、第1受付部15aは、物理ネットワークや仮想ネットワークのトポロジが可視化されたマップ上でネットワーク装置30の指定を受け付けた状態、例えばマウスオーバーがなされた状態で、ネットワーク設定を実施するGUIコンポーネントが操作された場合に、当該ネットワーク装置30に関する各種設定の新規登録や更新などの編集を受け付けることができる。ここで、第1受付部15aは、1つのネットワーク装置30に対する設定を個別に受け付けることもできるし、複数のネットワーク装置30、例えばグループ設定が行われたネットワーク装置30群に対する設定を一括して受け付けることもできる。かかる設定の例として、第1受付部15aは、VLAN(Virtual Local Area Network)やサブネットなどの設定を受け付けることができる。その後、第1受付部15aは、編集が受け付けられた内容を設定に反映する操作を受け付ける。以下では、設定の編集を受け付ける操作、さらには、編集が受け付けられた内容を設定に反映する操作を総称して「設定操作」と記載する場合がある。
監視部15bは、ネットワークNWを監視する処理部である。
一実施形態として、監視部15bは、あくまで一例として、第1受付部15aにより設定操作が受け付けられた場合、例えば1又は複数のネットワーク装置30に対する設定の新規登録または設定変更が実施される場合、次のような処理を実行する。
例えば、監視部15bは、設定操作が行われたネットワーク装置30から、起動時にNVRAM(Non Volatile RAM)等の不揮発性メモリから読み込まれる「startup-config」と、RAM上に展開されている「running-config」とを取得する。その上で、監視部15bは、設定操作が行われたネットワーク装置30から取得された「startup-config」及び「running-config」の2つの設定ファイルを比較することにより、2つの設定ファイルが一致するか否かを判定する。例えば、監視部15bは、2つの設定ファイルからdiffやハッシュ値を算出する処理を実行することにより、2つの設定ファイルの差分の有無を判定することができる。
ここで、「startup-config」及び「running-config」が一致しない場合、次のような状況を判断できる。例えば、ネットワークの管理者等がtelnetなどのプロトコルを介してネットワーク装置30に接続し、CLI(Command Line Interface)などを介して設定が行われた公算が高く、ネットワーク管理装置10、いわゆるSDNコントローラを介さずに「running-config」が更新された状況を推定できる。以下では、CLIを介して行われるコマンドによりネットワーク設定が行われることを「外部コマンド操作」と記載する場合がある。このように外部コマンド操作が行われた場合、ネットワーク装置30から取得された更新後の「running-config」と、記憶部13がネットワーク装置30の管理用に記憶する更新前の「running-config」との差分から、更新の内容に対応する設定コマンドを解釈できるとは限らず、逆コマンドも生成できるとは限らない。この場合、外部コマンド操作が行われる以前の操作へのロールバックが実行されると、ネットワークNWに不具合が発生する場合もある。よって、外部コマンド操作が行われる以前の操作へのロールバックを規制するために、外部コマンド操作が行われる以前に生成された逆コマンドは無効化される。
一方、監視部15bは、「startup-config」及び「running-config」が一致する場合、記憶部13に記憶された図示しないリンクデータを参照する。かかるリンクデータには、一例として、リンクがトポロジから削除されたか否かを示す削除フラグが含まれる。例えば、削除フラグが「false」であればリンクが削除されておらず、削除フラグが「true」であればリンクが削除されたことを判別できる。このようなリンクデータを参照して、監視部15bは、設定が編集されるネットワーク装置30を含むリンクに関する削除フラグに「false」が設定されているか否かを判定する。
このとき、設定が編集されるネットワーク装置30を含むリンクに関する削除フラグに「true」が設定されている場合、トポロジから削除されたリンクに含まれるネットワーク装置30の設定がロールバックされるのを規制するために、削除フラグに「true」が設定される以前に生成された逆コマンドは無効化される。
また、監視部15bは、設定が編集されるネットワーク装置30を含むリンクに関する削除フラグに「false」が設定されている場合、先にネットワーク装置30から取得された「startup-config」と、記憶部13がネットワーク装置30の管理用に記憶する「startup-config」とを比較する。例えば、監視部15bは、2つの「startup-config」の更新日時の一致または不一致を判定したり、2つの「startup-config」からdiffやハッシュ値を算出する処理を実行することにより2つの「startup-config」の差分の有無を判定したりすることができる。
この結果、2つの「startup-config」が一致しない場合、上記の外部コマンド操作が行われた公算が高いと判断できる。この場合にも、外部コマンド操作が行われる以前の操作へのロールバックを規制するために、外部コマンド操作が行われる以前に生成された逆コマンドは無効化される。
なお、ここでは、あくまで一例として、設定操作が行われた場合に、上記3つの判定、すなわちネットワーク装置30における2つの設定ファイルの比較、リンクの削除フラグの確認およびネットワーク装置30及びネットワーク管理装置10間の「startup-config」の比較を行う場合を例示したが、これに限定されない。すなわち、監視部15bは、時間に関する条件にしたがって各ネットワーク装置30ごとに上記3つの判定を実施することができる。例えば、監視部15bは、前回に判定を行ってから所定の期間、例えば1分間が経過した場合、ネットワーク管理装置10が保持するシステム時刻が所定の定期時刻に到達する場合、上記3つの判定を実施することができる。この他、監視部15bは、ロールバックが指示された場合にも、ロールバック処理を実行する前に上記3つの判定を実施することもできる。
設定部15cは、ネットワーク装置30に対する各種設定を行う処理部である。
一実施形態として、設定部15cは、第1受付部15aにより編集が受け付けられた内容に関する設定コマンドをネットワーク装置30へ送信する。これによって、第1受付部15aにより編集が受け付けられた内容がネットワーク装置30に記憶された「running-config」へ登録される結果、ネットワーク装置30の設定が更新される。そして、設定部15cは、ネットワーク装置30から更新後の「startup-config」または「startup-config」の更新日時を取得し、記憶部13がネットワーク装置30の管理用に記憶する「startup-config」または「startup-config」の更新日時を上書き更新する。
ここで、設定部15cは、ネットワーク装置30の設定が更新された場合、記憶部13がロールバック用に記憶する操作履歴データ13aを更新する。かかる操作履歴データ13aには、「操作No.」、「ユーザ名」、「デバイスグループ名」、「機能種別」、「変更日時」、「内容」、「フラグ1」、「フラグ2」及び「フラグ3」などの項目の一部または全部を含むデータを採用できる。ここで言う「操作No.」とは、設定操作を識別する番号を指し、例えば、最新に行われた設定操作から昇順に連番が採番される。また、「ユーザ名」とは、設定操作を行ったユーザの名称を指す。また、「デバイスグループ名」とは、設定操作が行われたネットワーク装置30のグループの名称を指す。また、「変更日時」とは、設定操作により設定が変更された日時を指し、例えば、「yyyy/mm/dd hh/mm/ss」などで表される。また、「設定操作内容」とは、設定操作の内容を指す。また、「フラグ1」は、設定操作が行われた後に当該設定操作が行われたネットワーク装置30に外部コマンド操作が行われたか否かを示すフラグを指し、例えば、フラグ1が「false」に設定されている場合には外部コマンド操作が行われておらず、フラグ1が「true」に設定されている場合には外部コマンド操作が行われていることを意味する。また、「フラグ2」は、設定操作が行われた後に当該設定操作が行われたネットワーク装置30を含むリンクが削除または編集されたか否かを示すフラグを指し、例えば、フラグ2が「false」に設定されている場合にはリンクの編集または削除が行われておらず、フラグ2が「true」に設定されている場合にはリンクの編集または削除が行われていることを意味する。また、「フラグ3」は、設定操作のロールバック処理にエラーが発生したか否かを示すフラグを指し、例えば、フラグ3が「false」に設定されている場合には設定操作に対するロールバック処理時が実行されておらず、フラグ3が「true」に設定されている場合にはロールバック処理時にエラーが発生したことを意味する。
例えば、設定部15cは、ネットワーク装置30から取得された「startup-config」及び「running-config」が一致し、ネットワーク装置30を含むリンクの削除フラグに「false」が設定されており、かつネットワーク管理装置10及びネットワーク装置30の間で「startup-config」が一致する場合、第1受付部15aを介して受け付けた設定操作に関するレコードを記憶部13に記憶された操作履歴データ13aに追加登録する。このとき、設定部15cは、最新の設定操作から所定数、例えば20操作までの履歴に関するレコードを操作履歴データ13aとして記憶部13に保持させ、それ以前の設定操作に関するレコードを記憶部13から削除することもできる。
また、設定部15cは、監視部15bにより外部コマンド操作が検出された場合、すなわちネットワーク装置30から取得された「startup-config」及び「running-config」が一致しない場合、あるいはネットワーク管理装置10及びネットワーク装置30の間で「startup-config」が一致しない場合、次のような処理を実行する。すなわち、設定部15cは、記憶部13に記憶された操作履歴データ13aのうち外部コマンド操作が検出されたネットワーク装置30のデバイス名を設定操作内容のフィールドに含み、かつ外部コマンド操作が検出された時点以前のレコードを検索する。その上で、設定部15cは、当該検索がヒットした全てのレコードが持つフラグ1に「true」を設定する。これによって、フラグ1に「true」が設定されたレコードに関する設定操作のロールバックが規制される。
また、設定部15cは、ネットワーク装置30を含むリンクの削除フラグに「true」が設定されている場合、記憶部13に記憶された操作履歴データ13aのうちリンクの削除が検出されたネットワーク装置30のデバイス名を設定操作内容のフィールドに含み、かつリンクの削除が検出された以前のレコードを検索する。その上で、設定部15cは、当該検索がヒットした全てのレコードが持つフラグ2に「true」を設定する。これによって、フラグ2に「true」が設定されたレコードに関する設定操作のロールバックが規制される。
逆コマンド生成部15dは、逆コマンドを生成する処理部である。
一実施形態として、逆コマンド生成部15dは、ネットワーク装置30から取得された「startup-config」及び「running-config」が一致し、ネットワーク装置30を含むリンクの削除フラグに「false」が設定されており、かつネットワーク管理装置10及びネットワーク装置30の間で「startup-config」が一致する場合、逆コマンドを生成する。例えば、逆コマンド生成部15dは、ネットワーク装置30から更新後の「running-config」を取得した上で更新前後の「running-config」を比較することにより、2つの「running-config」の差分を抽出する。続いて、逆コマンド生成部15dは、2つの「running-config」の差分から設定操作が設定値の変更であるか否かを判定する。そして、逆コマンド生成部15dは、設定操作が設定値の変更である場合、次のようにして逆コマンドを生成する。すなわち、逆コマンド生成部15dは、当該設定操作が行われたネットワーク装置30ごとに「running-config」に含まれる項目のうち差分が抽出された項目の設定値を当該設定操作前の設定値へ変更する逆コマンドを生成する。また、逆コマンド生成部15dは、設定操作が設定値の変更でない場合、2つの「running-config」の差分から設定操作が初期値、例えばエンプティ等からの変更、すなわち新規登録であるか否かを判定する。このとき、逆コマンド生成部15dは、設定操作が新規登録である場合、次のようにして逆コマンドを生成する。すなわち、逆コマンド生成部15dは、当該設定操作が行われたネットワーク装置30ごとに「running-config」に含まれる項目のうち差分が抽出された項目の設定値を削除する逆コマンドを生成する。なお、初期値がNULL値である場合には、差分が抽出された項目の設定値を初期値、すなわちNULL値へ変更する逆コマンドを生成することとすればよい。さらに、逆コマンド生成部15dは、設定操作が設定値の変更でも新規登録でもない場合、2つの「running-config」の差分から設定操作が削除であるか否かを判定する。このとき、逆コマンド生成部15dは、設定操作が設定値の削除である場合、次のようにして逆コマンドを生成する。すなわち、逆コマンド生成部15dは、当該設定操作が行われたネットワーク装置30ごとに「running-config」に含まれる項目のうち差分が抽出された項目の設定値を当該削除操作前の設定値で新規登録する逆コマンドを生成する。このように生成された逆コマンドは、操作履歴データ13aのフィールド「操作No.」の値と関連付けられた状態で記憶部13に記憶された逆コマンドデータ13bへ追加登録される。
図3は、逆コマンドの生成の一例を示す図である。図3には、デバイスAのVLAN設定が行われた例が示されている。図3に示すデバイスAの例では、操作1によりVLAN IDを設定a0から設定a1へ変更する更新、すなわちVLAN IDを「10」から「100」へ変更する更新が行われている。この場合、VLAN IDの設定値を「10」に変更する逆コマンドが生成される。さらに、操作2によりVLAN IDを設定a1から設定a2へ変更する更新、すなわちVLAN IDを「100」から「200」へ変更する更新が行われている。この場合、VLAN IDの設定値を「100」に変更する逆コマンドが生成される。さらに、操作3によりVLAN IDを設定a2から設定a3へ変更する更新、すなわちVLAN IDを「200」から「300」へ変更する更新が行われている。この場合、VLAN IDの設定値を「200」に変更する逆コマンドが生成される。
一方、逆コマンド生成部15dは、ネットワーク装置30から取得された「startup-config」及び「running-config」が一致しない場合、ネットワーク装置30を含むリンクの削除フラグに「true」が設定されている場合、あるいはネットワーク管理装置10及びネットワーク装置30の間で「startup-config」が一致しない場合、当該ネットワーク装置30に関する逆コマンドを無効化する。例えば、逆コマンド生成部15dは、記憶部13に記憶された逆コマンドデータ13bのうち外部コマンド操作が検出されたネットワーク装置30またはリンクの削除が検出されたネットワーク装置30に関する逆コマンドを削除する。
ロールバック制御部15eは、ロールバック処理の制御を行う処理部である。
一実施形態として、ロールバック制御部15eは、クライアント端末50からロールバックの対象とされる設定操作の一覧を含むロールバック一覧画面の閲覧要求を受け付けた場合、記憶部13に記憶された操作履歴データ13aを読み出す。続いて、ロールバック制御部15eは、操作履歴データ13aに含まれるレコードのうちレコードを1つ選択する。例えば、ロールバック制御部15eは、最新の設定操作に関するレコードから順にレコードを1つずつ選択することができる。
続いて、ロールバック制御部15eは、先に選択された操作履歴データ13aのレコードが持つロールバックエラーのフラグ3に「false」が設定されているか否かを判定する。このとき、ロールバックエラーのフラグ3に「true」が設定されている場合、先に選択されたレコードに対応する設定操作のロールバック処理が過去に実施されているものの、その結果がエラーであったことがわかる。この場合、ロールバック制御部15eは、当該レコードに関するロールバックのステータスに「ロールバックエラー」を割り当てる。
一方、ロールバック制御部15eは、ロールバックエラーのフラグ3に「false」が設定されている場合、先に選択された操作履歴データ13aのレコードに対応する設定操作がユーザ権限の範囲内か否かをさらに判定する。例えば、ロールバック制御部15eは、記憶部13に記憶されたユーザ権限データのうち、ロールバック一覧画面の閲覧要求を行うクライアント端末50がネットワーク管理システム1にログイン認証に成功したアカウントのユーザ名に対応するユーザ権限を特定する。その上で、ロールバック制御部15eは、先に選択された操作履歴データ13aのレコードに含まれるフィールド「デバイスグループ名」が先に特定されたユーザ権限の範囲内であるか否かを判定する。このとき、設定操作がユーザ権限の範囲外である場合、ロールバック制御部15eは、先に選択された操作履歴データ13aのレコードに関するロールバックのステータスに「ロールバック不可」を割り当てる。
また、ロールバック制御部15eは、設定操作がユーザ権限の範囲内である場合、先に選択された操作履歴データ13aのレコードが持つ外部コマンド操作のフラグ1に「false」が設定されているか否かをさらに判定する。このとき、外部コマンド操作のフラグ1に「true」が設定されている場合、当該レコードに対応する設定操作が行われた後に外部コマンド操作が実施されていることがわかる。この場合、ロールバック制御部15eは、当該レコードに関するロールバックのステータスに「ロールバック不可」を割り当てる。
また、ロールバック制御部15eは、外部コマンド操作のフラグ1に「false」が設定されている場合、次のような処理をさらに実行する。すなわち、ロールバック制御部15eは、記憶部13に記憶された図示しないデバイスデータに含まれるネットワーク装置30のうち、先に選択された操作履歴データ13aのレコードが持つフィールド「設定操作内容」に含まれるネットワーク装置30の削除フラグに「false」が設定されているか否かを判定する。このとき、ネットワーク装置30の削除フラグに「true」が設定されている場合、当該レコードに対応する設定操作が行われた後にネットワーク装置30に関するデータがデバイスデータから削除されていることがわかる。この場合、ロールバック制御部15eは、当該レコードに関するロールバックのステータスに「ロールバック不可」を割り当てる。
また、ロールバック制御部15eは、ネットワーク装置30の削除フラグに「false」が設定されている場合、先に選択された操作履歴データ13aのレコードが持つリンクの編集・削除のフラグ2に「false」が設定されているか否かをさらに判定する。このとき、リンクの編集・削除のフラグ2に「true」が設定されている場合、当該レコードに対応する設定操作が行われた後にネットワーク装置30を含むリンクがトポロジから削除されていることがわかる。この場合、ロールバック制御部15eは、当該レコードに関するロールバックのステータスに「ロールバック不可」を割り当てる。
また、ロールバック制御部15eは、リンクの編集・削除のフラグ2に「false」が設定されている場合、先に選択された操作履歴データ13aのレコードが持つフィールド「設定操作内容」に含まれるネットワーク装置30ごとに、ロールバック一覧画面の閲覧要求を受け付けた時点から遡って最初の設定操作、すなわち最新の設定操作であるかをさらに判定する。このとき、全てのネットワーク装置30において最新の設定操作である場合、ロールバック処理の実行に支障がない公算が高いことを判断できる。この場合、ロールバック制御部15eは、当該レコードに関するロールバックのステータスに「ロールバック可」を割り当てる。一方、いずれかのネットワーク装置30において最新の設定操作でない場合、先に選択された操作履歴データ13aのレコードに対応する設定操作よりも前に行われた設定操作の中でもフィールド「設定操作内容」に含まれるネットワーク装置30よりも先に行われた関連の設定操作に関するロールバック処理が実行されることを条件に、先に選択された操作履歴データ13aのレコードに対応する設定操作のロールバックを許可してもよいことがわかる。この場合、ロールバック制御部15eは、当該レコードに関するロールバックのステータスに「ロールバック待ち」を割り当てる。
このように操作履歴データ13aに含まれるレコードに対応する設定操作ごとに当該設定操作が「ロールバック可」、「ロールバック待ち」、「ロールバック不可」または「ロールバックエラー」のいずれかに分類されることになる。
出力制御部15fは、クライアント端末50に対する出力制御を行う処理部である。
一実施形態として、出力制御部15fは、ロールバック制御部15eにより設定操作ごとに割り当てられたロールバックのステータスにしたがってロールバック一覧画面をクライアント端末50に表示させる。例えば、出力制御部15fは、操作履歴データ13aに含まれる各レコードが持つフィールド「操作No.」が小さい順に各レコードが持つフィールの情報の一部又は全部を登載すると共に、各レコードに割り当てられたロールバックのステータス「ロールバック可」、「ロールバック待ち」、「ロールバック不可」または「ロールバックエラー」に対応するアイコン等のマークを対応付けることにより、ロールバック一覧画面の表示用データを生成する。このように生成された表示用データを用いて、出力制御部15fは、ロールバック一覧画面をクライアント端末50に表示させる。
第2受付部15gは、ロールバック指示を受け付ける処理部である。
一実施形態として、第2受付部15gは、出力制御部15fによりロールバック一覧画面がクライアント端末50に表示された状態でロールバック指示を受け付ける。具体的には、第2受付部15gは、ロールバック一覧画面に含まれるレコードの一覧の中からいずれかのレコードを選択することにより、ロールバック処理を実行する設定操作の指定を受け付ける。例えば、ロールバックのステータスとして「ロールバック可」が割り当てられたレコードが選択された場合、ロールバック処理の実行指示を受け付けるGUIコンポーネント、例えば実行ボタンがアクティブな状態で出力制御部15fにより表示される。また、ロールバックのステータスとして「ロールバック待ち」が割り当てられたレコードが選択された場合、出力制御部15fにより次のような表示が行われる。すなわち、当該選択されたレコードに対応する設定操作よりも前に行われた設定操作であり、かつ当該選択されたレコードが持つフィールド「設定操作内容」に含まれるネットワーク装置30に関する設定操作が先に行われた関連の設定操作に対応するレコードが他のレコードの表示形態と異なる区別可能な表示形態、例えば文字や塗り潰しの表示色の変更、「関連ロールバック」等のアイコンの表示、あるいは網掛け等の強調表示で表示されると共に、ロールバック処理の実行指示を受け付けるGUIコンポーネントが非アクティブな状態で表示される。また、ロールバックのステータスとして「ロールバック不可」が割り当てられたレコードが選択された場合、ロールバック処理の実行指示を受け付けるGUIコンポーネントが非アクティブな状態で表示される。
このように設定操作の指定が受け付けられた状態で、第2受付部15gは、上記のGUIコンポーネントを介して、ロールバック処理の実行指示をさらに受け付ける。ここで、GUIコンポーネントが操作された場合、GUIコンポーネントがアクティブな状態であれば、当該指定が受け付けられた設定操作に対応する逆コマンドを実行することにより、設定操作をロールバックするロールバック処理がロールバック制御部15eにより実施される。このようにロールバック処理が実行された場合、当該ロールバック処理により設定が更新された後の「startup-config」をロールバック処理が実行された各ネットワーク装置30から取得した上で記憶部13がネットワーク装置30の管理用に記憶する「startup-config」または「startup-config」の更新日時が上書き更新される。これと共に、当該ロールバック処理が実行された設定操作に対応するレコードが操作履歴データ13aから削除される。一方、GUIコンポーネントがアクティブな状態でなければ、当該指定が受け付けられた設定操作をロールバックするロールバック処理は規制される。
[ロールバック制御の具体例]
図4〜図9を用いて、ロールバック制御の具体例について説明する。図4は、操作履歴データ13aの一例を示す図である。図5は、設定操作および設定内容の時系列を示す模式図である。図6〜図9は、ロールバック一覧画面の一例を示す図である。
図4には、操作1〜操作7の計7個の設定操作に関するレコードが示されている。ここでは、説明の便宜上、7つのレコードを抜粋して例示したが、ロールバック一覧画面に表示されるレコード数はこれに限定されない。図4に示す操作履歴データ13aの場合、各設定操作とその設定操作の内容は図5に示す模式図の通りとなる。なお、図4及び図5に示すデバイスA、デバイスB及びデバイスCには、次のようなグループ設定がなされているものとする。すなわち、図5に示すように、グループAには、デバイスAが含まれ、グループBには、デバイスBが含まれると共に、グループCには、デバイスCが含まれる。また、グループZには、デバイスA及びデバイスBが含まれる。さらに、グループXには、デバイスA、デバイスB及びデバイスCが含まれる。
図5に示す操作7では、デバイスAのVLAN IDを「初期値」から「2」へ新規登録することにより、デバイスAの設定ファイルが初期状態の「a0」から「a1」へ更新されたことを意味する。そして、図5に示す操作6では、デバイスAのルーティングのデフォルトルートが変更されることにより、デバイスAの設定ファイルが「a1」から「a2」へ更新されたことを意味する。その後、図5に示す操作5では、デバイスA、デバイスB及びデバイスCのVLAN IDが一括設定されている。すなわち、デバイスAのVLAN IDを「2」から「3」へ更新することにより、デバイスAの設定ファイルが「a2」から「a3」へ更新されたことを意味する。これと共に、デバイスBのVLAN IDを「初期値」から「3」へ新規登録することにより、デバイスBの設定ファイルが初期状態の「b0」から「b1」へ更新されたことを意味する。さらに、デバイスCのVLAN IDを「初期値」から「3」へ新規登録することにより、デバイスCの設定ファイルが初期状態の「c0」から「c1」へ更新されたことを意味する。
続いて、図5に示す操作4では、デバイスA及びデバイスBのVLAN IDが一括設定されている。すなわち、デバイスAのVLAN IDを「3」から「4」へ更新することにより、デバイスAの設定ファイルが「a3」から「a4」へ更新されたことを意味する。これと共に、デバイスBのVLAN IDを「3」から「4」へ更新することにより、デバイスBの設定ファイルが「b1」から「b2」へ更新されたことを意味する。そして、図5に示す操作3では、デバイスBのVLAN IDを「4」から「5」へ更新することにより、デバイスBの設定ファイルが「b2」から「b3」へ更新されたことを意味する。続いて、図5に示す操作2では、デバイスAのVLAN IDを「4」から「6」へ更新することにより、デバイスAの設定ファイルが「a4」から「a5」へ更新されたことを意味する。さらに、図5に示す操作1では、デバイスAのVLAN IDを「6」から「7」へ更新することにより、デバイスAの設定ファイルが「a5」から「a6」へ更新されたことを意味する。
ここで、図4に示す操作1及び操作3に対応するレコードが「ロールバック可」に分類されると共に、図4に示す操作1及び操作3に対応するレコード以外のレコードが「ロールバック待ち」に分類される。なぜなら、各レコードのフラグ1〜フラグ3には「true」が設定されておらず、かつ操作1及び操作3に対応するレコード以外のレコードには、フィールド「設定操作内容」に含まれるデバイスの中に先に設定操作が行われたデバイスが存在するからである。
このような設定操作の履歴の下、全体管理者権限を持つユーザ、すなわち図4に示したユーザの中では全体管理者3及び全体管理者4などの場合、図6に示すロールバック一覧画面がクライアント端末50に表示される。図6の上段には、一覧の中のレコードが未選択の状態である場合のロールバック一覧画面600が示されていると共に、図6の下段には、一覧の中のレコードのうち操作5に対応するレコードが選択された状態である場合のロールバック一覧画面620が示されている。
図6に示すロールバック一覧画面600の通り、全体管理者3及び全体管理者4は、全てのデバイスに対する設定操作を行う権限を有するので、図4に示した操作履歴データ13aに含まれる全てのレコードが表示される。そして、ロールバック処理を実行する設定操作が指定されていない状態では、操作1及び操作3に対応するレコードには、当該レコードのロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示される。この段階では、ロールバック処理の実行指示を受け付ける実行ボタン610は非アクティブな状態で表示される。仮に操作1及び操作3に対応するレコードが選択された場合、当該実行ボタン610の状態がアクティブに切り替わる。
このとき、一覧の中のレコードのうち操作5に対応するレコードが選択された場合、クライアント端末50の表示は、図6の上段に示すロールバック一覧画面600から図6の下段に示すロールバック一覧画面620へ遷移する。図6に示すロールバック一覧画面620の通り、選択が行われた操作5に対応するレコードが他のレコードの表示形態とは異なる表示形態、図中では一番濃いハッチングで表示される。さらに、選択が行われた操作5よりも前に行われた設定操作であり、かつ操作5に対応するレコードが持つフィールド「設定操作内容」に含まれるデバイスA、デバイスBまたはデバイスCに関する設定操作が先に行われた関連の操作1〜4に対応するレコードが他のレコードの表示形態と異なる区別可能な表示形態、例えば2番目に濃いハッチングで表示される。このとき、関連の操作1〜4に対応するレコードのうち、現状でロールバックが可能である操作1及び操作3に対応するレコードには、「ロールバック可」であることを示すアイコンが対応付けて表示される。また、「ロールバック待ち」に分類された操作2及び操作4に対応するレコードには、同様に「ロールバック待ち」に分類された操作5に対応するレコードと共に「関連ロールバック」であることを示すアイコンが対応付けて表示される。この場合、関連の操作1〜4のロールバックが実行されなければ、操作5のロールバックは実行できないので、実行ボタン630は非アクティブな状態で表示される。かかるロールバック一覧画面620によれば、操作5のロールバックの前に行った方がよい操作1〜4のロールバックが一目で把握できる。
また、デバイスグループ管理者権限を持つユーザ、すなわち図4に示したユーザの中ではGrpA管理者5の場合、図7に示すロールバック一覧画面がクライアント端末50に表示される。図7の上段には、一覧の中のレコードが未選択の状態である場合のロールバック一覧画面700が示されている。図7の中段には、一覧の中のレコードのうち操作4に対応するレコードが選択された状態である場合のロールバック一覧画面720が示されている一方で、図7の下段には、ロールバック一覧画面720上で操作1及び操作2のロールバックが実行された場合のロールバック一覧画面740が示されている。なお、図7では、図4に示した操作履歴データ13aとの対応を明記する観点から図4に示した操作履歴データ13aの「操作No.」と、図7に示すロールバック一覧画面700、720及び740の「操作No.」との対応関係を一致させた例を示したが、ユーザ権限またはロールバックの実行により欠番が発生した場合には一覧の上から昇順に採番し直すこともできるのは言うまでもない。
図7に示すロールバック一覧画面700の通り、GrpA管理者5は、デバイスAに対する設定操作を行う権限しか持たない。このため、GrpA管理者5には、図4に示した操作履歴データ13aに含まれる全てのレコードが表示される訳ではない。具体的には、操作3に対応するレコードは、デバイスBに対する設定操作であり、GrpA管理者5のユーザ権限の範疇であるデバイスAが含まれないので、一覧上に表示されない。さらに、一覧上の操作4及び操作5には、GrpA管理者5のユーザ権限の範囲外のデバイスB、デバイスCに対する設定操作も含まれるので、どういう操作を行ったかは公開されず、設定操作内容には非公開のマーク「−」が表示される。さらに、操作4及び操作5は、操作4及び操作5を全体管理者にロールバックしてもらうことができるので、「ロールバック不可」のアイコンは付与されない。
このようにロールバック処理を実行する設定操作が指定されていない状態では、操作1に対応するレコードには、当該レコードのロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示される。この段階では、ロールバック処理の実行指示を受け付ける実行ボタン710は非アクティブな状態で表示される。仮に操作1に対応するレコードが選択された場合、当該実行ボタン710の状態がアクティブに切り替わる。
このとき、一覧の中のレコードのうち操作4に対応するレコードが選択された場合、クライアント端末50の表示は、図7の上段に示すロールバック一覧画面700から図7の中段に示すロールバック一覧画面720へ遷移する。図7に示すロールバック一覧画面720の通り、選択が行われた操作4に対応するレコードが他のレコードの表示形態とは異なる表示形態、図中では一番濃いハッチングで表示される。さらに、選択が行われた操作4よりも前に行われた設定操作であり、かつ操作4に対応するレコードが持つフィールド「設定操作内容」に含まれるデバイスAまたはデバイスBに関する設定操作が先に行われた関連の操作1〜2に対応するレコードが他のレコードの表示形態と異なる区別可能な表示形態、例えば2番目に濃いハッチングで表示される。このとき、関連の操作1及び操作2に対応するレコードのうち、現状でロールバックが可能である操作1に対応するレコードには、「ロールバック可」であることを示すアイコンが対応付けて表示される。また、「ロールバック待ち」に分類された操作2に対応するレコードには、同様に「ロールバック待ち」に分類された操作4に対応するレコードと共に「関連ロールバック」であることを示すアイコンが対応付けて表示される。この場合、関連の操作1〜2のロールバックが実行されなければ、操作4のロールバックは実行できないので、実行ボタン730は非アクティブな状態で表示される。かかるロールバック一覧画面720によれば、操作4のロールバックの前に行った方がよい操作1〜2のロールバックが一目で把握できる。
そして、ロールバック一覧画面720上で操作1及び操作2のロールバックが実行された場合、クライアント端末50の表示は、図7の中段に示すロールバック一覧画面720から図7の下段に示すロールバック一覧画面740へ遷移する。図7に示すロールバック一覧画面740の通り、ロールバックが実行済みである操作1及び操作2が一覧から削除されると共に、その後に選択が行われた操作4に対応するレコードが他のレコードの表示形態とは異なる表示形態、図中では一番濃いハッチングで表示される。さらに、選択が行われた操作4は、GrpA管理者5のユーザ権限の範囲外であるデバイスBのロールバックが条件となるので、実行ボタン750は非アクティブな状態で表示される。この場合、GrpA管理者5は、GrpZ管理者1、全体管理者3または全体管理者4に、ロールバック実行を依頼することになる。
続いて、ロールバック不可の場合の表示について説明する。例えば、操作2及び操作3の間の期間、例えば2015年の5月10日に、デバイスAに接続されているリンクが変更または削除された場合を想定する。この場合、図4に示した操作履歴データ13aに含まれるフラグ2のカラムのうち操作4〜操作7のカラムには「true」が設定されることになる。これら操作4〜操作7をロールバックしてしまうとネットワークNW全体としての整合性が取れなくなってしまう可能性が高い。このため、図8の上段に示すロールバック一覧画面800が表示される。なお、図8に示すロールバック一覧画面800、820、840には、全体管理者権限を持つユーザへの表示が示されていることとする。
図8に示すロールバック一覧画面800では、操作4〜操作7に対応するレコードには、各レコードのロールバックに関するステータスが「ロールバック不可」であることを示すアイコンが対応付けて表示される。一方、操作1及び操作2は、デバイスAのリンクが変更された後にVLAN設定が行われたので、ロールバックしてもネットワーク構成全体としての整合性は取れる可能性が高い。よって、操作1および操作2は、ロールバック不可とはされない。すなわち、操作1に対応するレコードには、ロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示されると共に、操作2に対応するレコードは、「ロールバック待ち」に分類されているので、いずれのレコードも選択されていない現状ではアイコンが付与されずに無印で表示される。なお、例えば、操作2に対応するレコードが選択された場合、操作2に対応するレコードには、ロールバックに関するステータスが「ロールバック待ち」であることを示すアイコンを対応付けて表示することもできる。加えて、操作3は、リンクを変更したデバイスAとは関係のないデバイスBに対する操作であるので、「ロールバック不可」とはされず、ロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示される。このような状況の下、ロールバック不可のレコードが選択されたとしても、実行ボタン810の状態は非アクティブで表示される。
次に、操作1の後に、デバイスAがトポロジから削除された場合を想定する。この場合、図8の中段に示すロールバック一覧画面820が表示される。図8に示すロールバック一覧画面820では、フィールド「設定操作内容」にデバイスAが含まれる操作1、2、4〜7に対応するレコードには、各レコードのロールバックに関するステータスが「ロールバック不可」であることを示すアイコンが対応付けて表示される。このため、デバイスAに対して行った操作のロールバックは一切できない状態となる。一方、操作3は、トポロジから削除されたデバイスAとは関係のないデバイスBに対する操作であるので、「ロールバック不可」とはされず、ロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示される。このような状況の下、ロールバック不可のレコードが選択されたとしても、実行ボタン830の状態は非アクティブで表示される。
次に、操作2及び操作3の間の期間、例えば2015年の5月10日に、デバイスAに外部コマンド操作が実行された場合を想定する。この場合、図4に示した操作履歴データ13aに含まれるフラグ1のカラムのうち操作4〜操作7のカラムには「true」が設定されることになる。これら操作4〜操作7をロールバックしてしまうと、外部コマンド操作が行われた日時以前の操作4〜操作7に、SDNコントローラが把握可能な範囲で設定を戻すこともできなくはないが、ネットワークNW全体としての整合性が取れなくなってしまう可能性があるので、敢えて操作4〜操作7は「ロールバック不可」とされる。この結果、図8の下段に示すロールバック一覧画面840が表示される。
図8に示すロールバック一覧画面840では、操作4〜操作7に対応するレコードには、各レコードのロールバックに関するステータスが「ロールバック不可」であることを示すアイコンが対応付けて表示される。一方、操作1及び操作2は、デバイスAのリンクが変更された後にVLAN設定が行われたので、ロールバックしてもネットワーク構成全体としての整合性は取れる可能性が高い。よって、操作1および操作2は、ロールバック不可とはされない。すなわち、操作1に対応するレコードには、ロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示されると共に、操作2に対応するレコードは、「ロールバック待ち」に分類されているので、いずれのレコードも選択されていない現状ではアイコンが付与されずに無印で表示される。なお、例えば、操作2に対応するレコードが選択された場合、操作2に対応するレコードには、ロールバックに関するステータスが「ロールバック待ち」であることを示すアイコンを対応付けて表示することもできる。加えて、操作3は、外部コマンド操作が行われたデバイスAとは関係のないデバイスBに対する操作であるので、「ロールバック不可」とはされず、ロールバックに関するステータスが「ロールバック可」であることを示すアイコンが対応付けて表示される。このような状況の下、ロールバック不可のレコードが選択されたとしても、実行ボタン850の状態は非アクティブで表示される。
続いて、ロールバックエラーの場合の表示について説明する。例えば、操作3のロールバックを実行したが、デバイスBの電源が落ちていた等の原因により失敗したケースを想定する。この場合、図4に示した操作履歴データ13aに含まれるフラグ3のカラムのうち操作3のカラムには「true」が設定されることになる。この場合、図9に示すロールバック一覧画面900が表示される。図9に示すロールバック一覧画面900では、図6に示したロールバック一覧画面600と比べて、操作3に対応するレコードの表示が異なる。すなわち、操作3に対応するレコードには、ロールバックに関するステータスが「ロールバックエラー」であることを示すアイコンが対応付けて表示される。これは、操作3は元々「ロールバック可」であったので、ユーザがロールバックを実行したが、結果としてロールバックが失敗してしまったことを表す。この場合、ロールバック失敗の原因が、デバイスBの電源断やネットワーク断など、一時的な要因であれば再度実行して成功する可能性がある。このため、再度、操作3に対応するレコードを選択して実行することが可能である。すなわち、ロールバックエラー状態の操作3に対応するレコードが選択された場合、実行ボタン910の状態はアクティブに切り替わる。このような状況の下、例えば、操作4に対応するレコードが選択されると、操作1、操作2、操作3の順番にロールバックするように、関連ロールバックのアイコンが操作1、操作2、操作3の各レコードに対応付けて表示される。
[処理の流れ]
次に、本実施例に係るネットワーク管理装置10の処理の流れについて説明する。なお、ここでは、ネットワーク管理装置10が実行する(1)逆コマンド生成処理を説明した後に、(2)ロールバック処理について説明することとする。
(1)逆コマンド生成処理
図10は、実施例1に係る逆コマンド生成処理の手順を示すフローチャートである。この処理は、一例として、第1受付部15aにより設定の編集が受け付けられた場合に開始される。図10に示すように、第1受付部15aにより設定操作が受け付けられると(ステップS101)、例えば、監視部15bは、ステップS101で設定操作が行われたネットワーク装置30から「startup-config」及び「running-config」を取得する(ステップS102)。
その上で、監視部15bは、ステップS102で取得された「startup-config」及び「running-config」の2つの設定ファイルを比較することにより、2つの設定ファイルが一致するか否かを判定する(ステップS103)。
ここで、「startup-config」及び「running-config」が一致しない場合(ステップS103No)、設定部15cは、ステップS101で編集が受け付けられた内容に関する設定コマンドをネットワーク装置30へ送信することによりネットワーク装置30の設定を更新する(ステップS111)。この場合、設定部15cは、記憶部13に記憶された逆コマンドデータ13bのうち外部コマンド操作が検出されたネットワーク装置30に関する操作履歴レコードのフラグ1を「true」に設定することにより無効化する(ステップS112)。
一方、「startup-config」及び「running-config」が一致する場合(ステップS103Yes)、監視部15bは、記憶部13に記憶された図示しないリンクデータを参照して、ステップS101で設定の編集が受け付けられたネットワーク装置30を含むリンクに関する削除フラグに「false」が設定されているか否かを判定する(ステップS104)。
このとき、リンクに関する削除フラグに「true」が設定されている場合(ステップS104No)、設定部15cは、ステップS101で編集が受け付けられた内容に関する設定コマンドをネットワーク装置30へ送信することによりネットワーク装置30の設定を更新する(ステップS111)。この場合も、設定部15cは、記憶部13に記憶された逆コマンドデータ13bのうちリンクの削除が検出されたネットワーク装置30に関する操作履歴レコードのフラグ2を「true」に設定することにより無効化する(ステップS112)。
一方、リンクに関する削除フラグに「false」が設定されている場合(ステップS104Yes)、監視部15bは、ステップS102でネットワーク装置30から取得された「startup-config」と、記憶部13がネットワーク装置30の管理用に記憶する「startup-config」とを比較する(ステップS105)。
ここで、2つの「startup-config」が一致しない場合(ステップS105No)、上記の外部コマンド操作が行われた公算が高いと判断できる。この場合、設定部15cは、ステップS101で編集が受け付けられた内容に関する設定コマンドをネットワーク装置30へ送信することによりネットワーク装置30の設定を更新する(ステップS111)。この場合にも、設定部15cは、記憶部13に記憶された逆コマンドデータ13bのうち外部コマンド操作が検出されたネットワーク装置30に関する操作履歴レコードのフラグ1を「true」に設定することにより無効化する(ステップS112)。
一方、ネットワーク管理装置10及びネットワーク装置30の間で「startup-config」が一致する場合(ステップS105Yes)、設定部15cは、ステップS101で編集が受け付けられた内容に関する設定コマンドをネットワーク装置30へ送信することによりネットワーク装置30の設定を更新する(ステップS106)。
その後、逆コマンド生成部15dは、ネットワーク装置30から更新後の「running-config」を取得した上で更新前後の「running-config」を比較することにより、2つの「running-config」の差分を抽出する(ステップS107)。
続いて、逆コマンド生成部15dは、2つの「running-config」の差分から設定操作が設定値の変更であるか否かを判定する(ステップS108)。そして、設定操作が設定値の変更である場合(ステップS108Yes)、逆コマンド生成部15dは、次のようにして逆コマンドを生成する。すなわち、逆コマンド生成部15dは、当該設定操作が行われたネットワーク装置30ごとに「running-config」に含まれる項目のうち差分が抽出された項目の設定値を当該設定操作前の設定値へ変更する逆コマンドを生成する(ステップS109)。
また、設定操作が設定値の変更でない場合(ステップS108No)、逆コマンド生成部15dは、2つの「running-config」の差分から設定操作が新規登録であるか否かを判定する(ステップS110)。そして、設定操作が新規登録である場合(ステップS110Yes)、逆コマンド生成部15dは、当該設定操作が行われたネットワーク装置30ごとに「running-config」に含まれる項目のうち差分が抽出された項目の設定値を削除する逆コマンドを生成する(ステップS1101)。一方、設定操作が新規登録でない場合(ステップS110No)、設定操作が設定値の削除であると判明する。この場合、逆コマンド生成部15dは、当該設定操作が行われたネットワーク装置30ごとに「running-config」に含まれる項目のうち差分が抽出された項目の設定値を当該削除操作前の設定値で新規登録する逆コマンドを生成する(ステップS1102)。
その上で、設定部15cは、ネットワーク装置30から更新後の「startup-config」または「startup-config」の更新日時を取得し、記憶部13がネットワーク装置30の管理用に記憶する「startup-config」または「startup-config」の更新日時を上書き更新する(ステップS113)。
その後、設定部15cは、ステップS101で受け付けた設定操作に関するレコードを記憶部13に記憶された操作履歴データ13aに追加登録し(ステップS114)、処理を終了する。ここで、ステップS114では、ステップS103の分岐でNoと判定された場合、設定部15cは、記憶部13に記憶された操作履歴データ13aのうち外部コマンド操作が検出されたネットワーク装置30のデバイス名を設定操作内容のフィールドに含み、かつ外部コマンド操作が検出された時点以前のレコードが持つフラグ1に「true」を設定する。また、ステップS114では、ステップS104の分岐でNoと判定された場合、設定部15cは、記憶部13に記憶された操作履歴データ13aのうちリンクの削除が検出されたネットワーク装置30のデバイス名を設定操作内容のフィールドに含み、かつリンクの削除が検出された時点以前のレコードが持つフラグ2に「true」を設定する。また、ステップS114では、ステップS105の分岐でNoと判定された場合、設定部15cは、記憶部13に記憶された操作履歴データ13aのうち外部コマンド操作が検出されたネットワーク装置30のデバイス名を設定操作内容のフィールドに含み、かつ外部コマンド操作が検出された時点以前のレコードが持つフラグ1に「true」を設定する。
(2)ロールバック処理
図11及び図12は、実施例1に係るロールバック処理の手順を示すフローチャートである。この処理は、一例として、クライアント端末50からロールバックの対象とされる設定操作の一覧を含むロールバック一覧画面の閲覧要求を受け付けた場合に開始される。
図11に示すように、ロールバック制御部15eは、記憶部13に記憶された操作履歴データ13aを読み出す(ステップS301)。続いて、ロールバック制御部15eは、操作履歴データ13aに含まれるレコードのうちレコードを1つ選択する(ステップS302)。
続いて、ロールバック制御部15eは、ステップS302で選択された操作履歴データ13aのレコードが持つロールバックエラーのフラグ3に「false」が設定されているか否かを判定する(ステップS303)。
このとき、ロールバックエラーのフラグ3に「true」が設定されている場合(ステップS303No)、ステップS302で選択されたレコードに対応する設定操作のロールバック処理が過去に実施されているものの、その結果がエラーであったことがわかる。この場合、ロールバック制御部15eは、当該レコードに関するロールバックのステータスに「ロールバックエラー」を割り当てる(ステップS304)。その後、ステップS313の処理へ移行する。
一方、ロールバックエラーのフラグ3に「false」が設定されている場合(ステップS303Yes)、ロールバック制御部15eは、ステップS302で選択された操作履歴データ13aのレコードに対応する設定操作がユーザ権限の範囲内か否かをさらに判定する(ステップS305)。このとき、設定操作がユーザ権限の範囲外である場合(ステップS305No)、ロールバック制御部15eは、ステップS302で選択された操作履歴データ13aのレコードに関するロールバックのステータスに「一覧表示対象外」を割り当てる(ステップS3051)。その後、ステップS313の処理へ移行する。
また、設定操作がユーザ権限の範囲内である場合(ステップS305Yes)、ロールバック制御部15eは、ステップS302で選択された操作履歴データ13aのレコードが持つ外部コマンド操作のフラグ1に「false」が設定されているか否かをさらに判定する(ステップS307)。このとき、外部コマンド操作のフラグ1に「true」が設定されている場合(ステップS307No)、当該レコードに対応する設定操作が行われた後に外部コマンド操作が実施されていることがわかる。この場合、ロールバック制御部15eは、当該レコードに関するロールバックのステータスに「ロールバック不可」を割り当てる(ステップS306)。その後、ステップS313の処理へ移行する。
また、外部コマンド操作のフラグ1に「false」が設定されている場合(ステップS307Yes)、ロールバック制御部15eは、次のような処理をさらに実行する。すなわち、ロールバック制御部15eは、記憶部13に記憶された図示しないデバイスデータに含まれるネットワーク装置30のうち、先に選択された操作履歴データ13aのレコードが持つフィールド「設定操作内容」に含まれるネットワーク装置30の削除フラグに「false」が設定されているか否かを判定する(ステップS308)。
このとき、ネットワーク装置30の削除フラグに「true」が設定されている場合(ステップS308No)、当該レコードに対応する設定操作が行われた後にネットワーク装置30に関するデータがデバイスデータから削除されていることがわかる。この場合、ロールバック制御部15eは、当該レコードに関するロールバックのステータスに「ロールバック不可」を割り当てる(ステップS306)。その後、ステップS313の処理へ移行する。
また、ネットワーク装置30の削除フラグに「false」が設定されている場合(ステップS308Yes)、ロールバック制御部15eは、ステップS302で選択された操作履歴データ13aのレコードが持つリンクの編集・削除のフラグ2に「false」が設定されているか否かをさらに判定する(ステップS309)。このとき、リンクの編集・削除のフラグ2に「true」が設定されている場合(ステップS309No)、当該レコードに対応する設定操作が行われた後にネットワーク装置30を含むリンクがトポロジから削除されていることがわかる。この場合、ロールバック制御部15eは、当該レコードに関するロールバックのステータスに「ロールバック不可」を割り当てる(ステップS306)。その後、ステップS313の処理へ移行する。
また、リンクの編集・削除のフラグ2に「false」が設定されている場合(ステップS309Yes)、ロールバック制御部15eは、ステップS302で選択された操作履歴データ13aのレコードが持つフィールド「設定操作内容」に含まれるネットワーク装置30ごとに、ロールバック一覧画面の閲覧要求を受け付けた時点から遡って最初の設定操作、すなわち最新の設定操作であるかをさらに判定する(ステップS310)。
ここで、全てのネットワーク装置30において最新の設定操作である場合(ステップS310Yes)、ロールバック処理の実行に支障がない公算が高いことを判断できる。この場合、ロールバック制御部15eは、当該レコードに関するロールバックのステータスに「ロールバック可」を割り当てる(ステップS311)。
一方、いずれかのネットワーク装置30において最新の設定操作でない場合(ステップS310No)、ステップS302で選択された操作履歴データ13aのレコードに対応する設定操作よりも前に行われた設定操作の中でもフィールド「設定操作内容」に含まれるネットワーク装置30よりも先に行われた関連の設定操作に関するロールバック処理が実行されることを条件に、先に選択された操作履歴データ13aのレコードに対応する設定操作のロールバックを許可してもよいことがわかる。この場合、ロールバック制御部15eは、当該レコードに関するロールバックのステータスに「ロールバック待ち」を割り当てる(ステップS312)。
その後、操作履歴データ13aに含まれる各レコードが選択されるまで(ステップS313No)、上記のステップS302〜ステップS312までの処理が繰り返し実行される。そして、操作履歴データ13aに含まれる各レコードが選択された場合(ステップS313Yes)、出力制御部15fは、ロールバック制御部15eにより設定操作ごとに割り当てられたロールバックのステータスにしたがってロールバック一覧画面をクライアント端末50に表示させる(ステップS314)。
その後、第2受付部15gは、ロールバック一覧画面に含まれるレコードの一覧の中からいずれかのレコードの選択を受け付ける(ステップS315)。このとき、ロールバックのステータスとして「ロールバック可」が割り当てられたレコードが選択された場合(ステップS316Yes)、出力制御部15fは、ロールバック処理の実行指示を受け付ける実行ボタンをアクティブな状態で表示させる(ステップS317)。
また、ロールバックのステータスとして「ロールバック待ち」が割り当てられたレコードが選択された場合(ステップS318Yes)、出力制御部15fにより次のような表示が行われる。すなわち、出力制御部15fは、ステップS315で選択されたレコードに対応する設定操作よりも前に行われた設定操作であり、かつ当該選択されたレコードが持つフィールド「設定操作内容」に含まれるネットワーク装置30に関する設定操作が先に行われた関連の設定操作に対応するレコードが他のレコードの表示形態と異なる区別可能な表示形態、例えば文字や塗り潰しの表示色の変更、あるいは網掛け等の強調表示で表示させると共に、実行ボタンを非アクティブな状態で表示させる(ステップS319及びステップS320)。
また、ロールバックのステータスとして「ロールバック不可」が割り当てられたレコードが選択された場合(ステップS318No)、出力制御部15fは、実行ボタンを非アクティブな状態で表示させる(ステップS320)。
その後、ロールバックの実行ボタンが操作されるまで(ステップS321No)、上記のステップS315〜ステップS320の処理が繰り返し実行される。そして、ロールバックの実行ボタンが操作された場合(ステップS321Yes)、ロールバック制御部15eは、実行ボタンの状態がアクティブであるか否かを判定する(ステップS322)。
ここで、実行ボタンの状態がアクティブである場合(ステップS322Yes)、ロールバック制御部15eは、当該指定が受け付けられた設定操作に対応する逆コマンドを実行することにより、設定操作をロールバックするロールバック処理を実行する(ステップS323)。なお、実行ボタンの状態が非アクティブである場合(ステップS322No)、当該指定が受け付けられた設定操作のロールバック処理は規制される。この場合、ステップS315の処理に戻る。
その後、ロールバック制御部15eは、当該ロールバック処理により設定が更新された後の「startup-config」をロールバック処理が実行された各ネットワーク装置30から取得した上で記憶部13がネットワーク装置30の管理用に記憶する「startup-config」または「startup-config」の更新日時を上書き更新する(ステップS324)と共に、当該ロールバック処理が実行された設定操作に対応するレコードを操作履歴データ13aから削除する(ステップS325)。その後、ステップS301で説明した操作履歴データの取得に戻り、以降の処理を繰り返し実行する。
[効果の一側面]
上述してきたように、本実施例に係るネットワーク管理装置10は、ネットワーク装置30が記憶する設定データ及びネットワーク管理装置10が記憶する設定データに差分がある場合に当該ネットワーク装置30に対して過去に生成した逆コマンドを無効化する。したがって、本実施例に係るネットワーク管理装置10によれば、逆コマンドの実行により発生するネットワークの不具合を抑制できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[逆コマンド]
上記の実施例1では、外部コマンド操作が検出された場合、逆コマンドの生成を規制する場合を例示したが、外部コマンドにより行われた設定であっても、更新前後の設定ファイルの差分から逆コマンドを割り出す解釈が可能である設定であれば、ロールバックを実行することとしてもかまわない。
[ロールバック]
上記の実施例1では、ネットワーク管理システム1が操作を1つずつロールバックさせる場合を例示したが、一度に複数の操作をロールバックさせることもできる。この場合、一連の逆コマンドを実行することとしてもよいし、一連の逆コマンドが同種のコマンドであるか否かを判定し、同種のコマンドである場合、ロールバックが指定された操作、すなわち複数の操作のうち最も古くに行われた操作に対応する逆コマンドだけを実行させることもできる。例えば、全ての逆コマンドが設定値の変更である場合、一度の設定値の変更によりロールバックが指定された操作の直前の操作まで設定を戻すこともできる。
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、第1受付部15a、監視部15b、設定部15c、逆コマンド生成部15d、ロールバック制御部15e、出力制御部15fまたは第2受付部15gをネットワーク管理装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、第1受付部15a、監視部15b、設定部15c、逆コマンド生成部15d、ロールバック制御部15e、出力制御部15fまたは第2受付部15gを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のネットワーク管理装置10の機能を実現するようにしてもよい。
[逆コマンド生成プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図13を用いて、上記の実施例と同様の機能を有する逆コマンド生成プログラムを実行するコンピュータの一例について説明する。
図13は、実施例1及び実施例2に係る逆コマンド生成プログラムを実行するコンピュータのハードウェア構成例を示す図である。図13に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、図13に示すように、上記の実施例1で示した第1受付部15a、監視部15b、設定部15c、逆コマンド生成部15d、ロールバック制御部15e、出力制御部15fまたは第2受付部15gと同様の機能を発揮する逆コマンド生成プログラム170aが記憶される。この逆コマンド生成プログラム170aは、図2に示した第1受付部15a、監視部15b、設定部15c、逆コマンド生成部15d、ロールバック制御部15e、出力制御部15fまたは第2受付部15gの各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から逆コマンド生成プログラム170aを読み出した上でRAM180へ展開する。この結果、逆コマンド生成プログラム170aは、図13に示すように、逆コマンド生成プロセス180aとして機能する。この逆コマンド生成プロセス180aは、RAM180が有する記憶領域のうち逆コマンド生成プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、逆コマンド生成プロセス180aが実行する処理の一例として、図10〜図12に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の逆コマンド生成プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。
1 ネットワーク管理システム
10 ネットワーク管理装置
11 通信I/F部
13 記憶部
13a 操作履歴データ
13b 逆コマンドデータ
15 制御部
15a 第1受付部
15b 監視部
15c 設定部
15d 逆コマンド生成部
15e ロールバック制御部
15f 出力制御部
15g 第2受付部
30A,30B,30C ネットワーク装置

Claims (9)

  1. 通信装置の設定が更新される度に前記通信装置が記憶する第1の設定データを所定の記憶部に格納する処理と、
    通信装置に対する設定操作を受け付ける処理と、
    受け付けた前記設定操作の対象の前記通信装置から前記通信装置が記憶する第2の設定データを取得する処理と、
    取得した前記第2の設定データに基づいて前記通信装置へ送信する設定コマンドの逆コマンドを生成する処理と、
    前記取得する処理で取得された前記第2の設定データと前記記憶部に記憶された前記第1の設定データとに差分がある場合に前記記憶部に記憶された前記第1の設定データに基づいて生成した逆コマンドを無効化する処理と、
    をコンピュータに実行させることを特徴する逆コマンド生成プログラム。
  2. 前記取得する処理は、前記通信装置の不揮発性メモリに記憶される第3の設定データと、前記通信装置の揮発性メモリに記憶された前記第2の設定データとを取得し、
    前記無効化する処理は、前記取得する処理で取得された第1の設定データおよび第3の設定データに差分がある場合、または前記第2の設定データと前記記憶部に記憶された前記第1の設定データとに差分がある場合に、前記記憶部に記憶された前記第1の設定データに基づいて生成した逆コマンドを無効化することを特徴とする請求項1に記載の逆コマンド生成プログラム。
  3. 前記通信装置の設定が更新される前後で前記通信装置が記憶する設定データの差分を抽出する処理と、
    前記抽出する処理で抽出された差分から前記設定操作が設定値の変更または設定値の新規登録または削除のいずれかを判定する処理とをさらに前記コンピュータに実行させ、
    前記生成する処理は、前記設定操作が設定値の変更である場合に更新前後の差分が抽出された項目の設定値を当該設定操作前の設定値へ変更する逆コマンドを生成し、前記設定操作が設定値の新規登録である場合に更新前後の差分が抽出された項目の設定値を削除する逆コマンドを生成し、前記設定操作が設定値の削除である場合に更新前後の差分が抽出された項目の設定値を当該削除操作前の設定値で新規登録する逆コマンドを生成することを特徴とする請求項1に記載の逆コマンド生成プログラム。
  4. 通信装置の設定が更新される度に前記通信装置が記憶する第1の設定データを所定の記憶部に格納する処理と、
    通信装置に対する設定操作を受け付ける処理と、
    受け付けた前記設定操作の対象の前記通信装置から前記通信装置が記憶する第2の設定データを取得する処理と、
    取得した前記第2の設定データに基づいて前記通信装置へ送信する設定コマンドの逆コマンドを生成する処理と、
    前記取得する処理で取得された前記第2の設定データと前記記憶部に記憶された前記第1の設定データとに差分がある場合に前記記憶部に記憶された前記第1の設定データに基づいて生成した逆コマンドを無効化する処理と、
    がコンピュータにより実行されることを特徴する逆コマンド生成方法。
  5. 前記取得する処理は、前記通信装置の不揮発性メモリに記憶される第3の設定データと、前記通信装置の揮発性メモリに記憶された前記第2の設定データとを取得し、
    前記無効化する処理は、前記取得する処理で取得された第1の設定データおよび第3の設定データに差分がある場合、または前記第2の設定データと前記記憶部に記憶された前記第1の設定データとに差分がある場合に、前記記憶部に記憶された前記第1の設定データに基づいて生成した逆コマンドを無効化することを特徴とする請求項4に記載の逆コマンド生成方法。
  6. 前記通信装置の設定が更新される前後で前記通信装置が記憶する設定データの差分を抽出する処理と、
    前記抽出する処理で抽出された差分から前記設定操作が設定値の変更または設定値の新規登録または削除のいずれかを判定する処理とがさらに前記コンピュータにより実行され、
    前記生成する処理は、前記設定操作が設定値の変更である場合に更新前後の差分が抽出された項目の設定値を当該設定操作前の設定値へ変更する逆コマンドを生成し、前記設定操作が設定値の新規登録である場合に更新前後の差分が抽出された項目の設定値を削除する逆コマンドを生成し、前記設定操作が設定値の削除である場合に更新前後の差分が抽出された項目の設定値を当該削除操作前の設定値で新規登録する逆コマンドを生成することを特徴とする請求項4に記載の逆コマンド生成方法。
  7. 通信装置の設定が更新される度に前記通信装置が記憶する第1の設定データを所定の記憶部に格納する格納部と、
    通信装置に対する設定操作を受け付ける受付部と、
    受け付けた前記設定操作の対象の前記通信装置から前記通信装置が記憶する第2の設定データを取得する取得部と、
    取得した前記第2の設定データに基づいて前記通信装置へ送信する設定コマンドの逆コマンドを生成する生成部と、
    前記取得部により取得された前記第2の設定データと前記記憶部に記憶された前記第1の設定データとに差分がある場合に前記記憶部に記憶された前記第1の設定データに基づいて生成した逆コマンドを無効化する設定部と、
    を有することを特徴とする逆コマンド生成装置。
  8. 前記取得部は、前記通信装置の不揮発性メモリに記憶される第3の設定データと、前記通信装置の揮発性メモリに記憶された前記第2の設定データとを取得し、
    前記設定部は、前記取得部により取得された第1の設定データおよび第3の設定データに差分がある場合、または前記第2の設定データと前記記憶部に記憶された前記第1の設定データとに差分がある場合に、前記記憶部に記憶された前記第1の設定データに基づいて生成した逆コマンドを無効化することを特徴とする請求項7に記載の逆コマンド生成装置。
  9. 前記通信装置の設定が更新される前後で前記通信装置が記憶する設定データの差分を抽出する抽出部と、
    前記抽出部により抽出された差分から前記設定操作が設定値の変更または設定値の新規登録または削除のいずれかを判定する判定部とをさらに有し、
    前記生成部は、前記設定操作が設定値の変更である場合に更新前後の差分が抽出された項目の設定値を当該設定操作前の設定値へ変更する逆コマンドを生成し、前記設定操作が設定値の新規登録である場合に更新前後の差分が抽出された項目の設定値を削除する逆コマンドを生成し、前記設定操作が設定値の削除である場合に更新前後の差分が抽出された項目の設定値を当該削除操作前の設定値で新規登録する逆コマンドを生成することを特徴とする請求項7に記載の逆コマンド生成装置。
JP2017561499A 2016-01-15 2016-01-15 逆コマンド生成プログラム、逆コマンド生成方法及び逆コマンド生成装置 Active JP6525067B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/051193 WO2017122365A1 (ja) 2016-01-15 2016-01-15 逆コマンド生成プログラム、逆コマンド生成方法及び逆コマンド生成装置

Publications (2)

Publication Number Publication Date
JPWO2017122365A1 true JPWO2017122365A1 (ja) 2018-09-20
JP6525067B2 JP6525067B2 (ja) 2019-06-05

Family

ID=59311186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017561499A Active JP6525067B2 (ja) 2016-01-15 2016-01-15 逆コマンド生成プログラム、逆コマンド生成方法及び逆コマンド生成装置

Country Status (2)

Country Link
JP (1) JP6525067B2 (ja)
WO (1) WO2017122365A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6881479B2 (ja) * 2019-01-28 2021-06-02 株式会社安川電機 産業機器管理システム、産業機器管理方法、及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7307979B2 (en) * 2002-07-31 2007-12-11 Jeremy Benjamin As Receiver For Chiaro Networks Ltd Configuration rollback
US20060015591A1 (en) * 2004-06-08 2006-01-19 Datla Krishnam R Apparatus and method for intelligent configuration editor
JP5142186B2 (ja) * 2007-07-03 2013-02-13 Kddi株式会社 ネットワーク設定復元方法およびシステム

Also Published As

Publication number Publication date
WO2017122365A1 (ja) 2017-07-20
JP6525067B2 (ja) 2019-06-05

Similar Documents

Publication Publication Date Title
JP5285353B2 (ja) 複数のサービス構成要素に対応するアクションの実行を管理するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
JP5288334B2 (ja) 仮想アプライアンス配備システム
US8639798B2 (en) Managing configuration items
US8612574B2 (en) Computer system for managing configuration item, and method and computer program therefor
JP5471666B2 (ja) ネットワーク管理装置、ネットワーク管理方法及びネットワーク管理プログラム
WO2020082558A1 (zh) 基于函数名称的埋点方法、装置、计算机设备及存储介质
JP2010129028A (ja) ゲートウェイサーバ、ファイル管理システム、ファイル管理方法とプログラム
JP2009199528A (ja) 複数のサービスステップを含むサービスプロセスを管理するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
US7376898B1 (en) Methods and apparatus for managing resources
JP2015142167A (ja) 管理装置、管理プログラムおよびネットワーク装置の設定情報管理方法
JP2011170725A (ja) 座席表示サーバ装置、および、その管理方法
JPWO2010116475A1 (ja) 情報管理装置および情報管理プログラム
US8838790B2 (en) Configuration value management apparatus and management method
JP5385991B2 (ja) 構成情報の取得が制限された構成要素を含むシステムの構成要素の構成情報を形成するためのシステム、プログラム、および方法
US8880661B2 (en) Management of data nodes in an application server
WO2017122365A1 (ja) 逆コマンド生成プログラム、逆コマンド生成方法及び逆コマンド生成装置
JP6421200B2 (ja) クラウド構成保存システム、クラウド構成保存方法及びクラウド構成保存プログラム
JP6575611B2 (ja) ロールバック処理制御プログラム、ロールバック処理制御方法及びロールバック処理制御装置
JP5239072B2 (ja) 構成要素を管理するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
EP2355409B1 (en) Network management device
JP5811869B2 (ja) マスタ管理プログラム、マスタ管理方法及びマスタ管理装置
JP5737062B2 (ja) バッチジョブ実行システム、ジョブ管理サーバ、ジョブ認証情報更新方法および更新プログラム
JP2010198335A (ja) ソフトウェア自動試験装置およびその方法
JP2018124788A (ja) 制御装置、制御方法及び制御プログラム
JP2003140969A (ja) コンテンツチェックシステムならびに同システムにおけるコンテンツの改竄検知方法、およびコンテンツチェックプログラム、記録媒体

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180606

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180606

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: 20190409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190422

R150 Certificate of patent or registration of utility model

Ref document number: 6525067

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150