以下に、本願の開示するネットワーク管理装置、ネットワーク管理方法及びネットワーク管理プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例では、ネットワークに接続されたルータ等のネットワーク機器に対し、IP(Internet Protocol)ネットワーク網の監視・制御する設定情報をプロビジョニングを利用して設定するネットワーク管理装置に適用した場合を示す。しかし、本実施例によってこの発明が限定されるものではなく、本発明は、MPLS−VPN(Multi Protocol Label Switching-Virtual Private Network)網に接続されたネットワーク機器に適用可能であるし、その他のネットワークに接続されたネットワーク機器にも適用可能である。
[実施例2に係るネットワーク管理装置の概要]
本実施例2に係るネットワーク管理装置は、MPLS−VPN網に接続されたネットワーク機器に対して、プロビジョニングを用いて、ネットワークの監視及び制御をするための環境設定情報を設定する。この際、ネットワーク管理装置は、プロビジョニングによって設定された環境設定情報を、プロビジョニング前の環境設定情報に戻す場合がある。かかる場合に、ネットワーク管理装置は、プロビジョニング前の適正な環境設定情報にロールバックさせる必要がある。
このため、ネットワーク管理装置は、ネットワークの設定を定めるコマンドが有する属性に対応させてロールバックの動作方法を示す動作種別を予め記憶装置に記憶しておく。そして、ネットワーク管理装置は、コマンドによって設定された環境設定情報をプロビジョニング前の環境設定情報に戻す場合に、プロビジョニング後の環境設定情報を形成するコマンドとプロビジョニング前の環境設定情報を形成するコマンドの差分を抽出する。そして、ネットワーク管理装置は、当該差分として抽出されたコマンドの属性に対応する動作種別を記憶装置から取得し、該取得された動作種別に応じた、ロールバック動作を規定するロールバックコマンドを生成する。なお、プロビジョニング前の環境設定情報に戻す場合とは、プロビジョニングに失敗した場合であったり、プロビジョニング前のプロトコルやIPアドレス等に戻す場合であったりするが、これに限定されるものではない。
[実施例2に係るネットワーク管理装置の構成]
図2は、実施例2に係るネットワーク管理装置の構成について説明する。図2は、実施例2に係るネットワーク管理装置の構成を示す機能ブロック図である。図2に示すように、実施例2に係るネットワーク管理装置2は、操作部21、機器操作部22、記憶部23及び制御部24を有する。また、機器操作部22は、プロビジョニングにて環境設定情報を設定するネットワーク機器と接続されている。なお、ネットワーク機器とは、CEルータやPEルータ等である。
操作部21は、プロビジョニングやロールバックを行う際に操作を行う装置であり、例えば、キーワード、マウスまたはモニター等を含む。機器操作部22は、制御部24から受けた指示にしたがい、ネットワーク機器にコマンドを実行する。また、機器操作部22は、ネットワーク機器から受けた結果を制御部24に通知する。
記憶部23は、管理データテーブル41、バックアップ管理データテーブル42、コマンドテンプレートテーブル43及びロールバック動作判定テーブル44を有する。なお、記憶部23は、例えば、RAM(Random Access Memory)、フラッシュメモリ(flash memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置である。
制御部24は、プロビジョニング実行部31、ロールバック制御部32、設定後コマンド生成部33、設定前コマンド生成部34、設定前後コマンド差分抽出部35及びロールバックコマンド生成部36を有する。さらに、ロールバックコマンド生成部36は、ロールバック判定部36a、判定結果設定コマンド生成部36b及び不要コマンド削除部36cを有する。
コマンドテンプレートテーブル43は、環境設定情報に設定される可能性のあるコマンドのテンプレートを記憶するとともにコマンドが有する属性を記憶する。ここで、テンプレートの一例を示しながら、コマンドテンプレートテーブル43のデータ構造について説明する。図3は、テンプレートの一例を示す図である。図3に示すように、スタティックプロトコルの環境設定情報に設定される可能性のあるコマンドの一例が示されている。
ラインL1には、vrf(virtual/VPN routing and forwarding)コマンドが示される。vrfコマンドは、VPNにネットワークパーティションを割り当てるためにVPN名を指定するパラメータを持っている。ラインL2には、ipv4のアドレスファミリーであることを宣言するコマンドが示される。ラインL3には、割り当てられたVRFにインポートルートターゲットを作成するコマンドが示される。ラインL4には、インポートルートターゲットのipアドレス及びネットマスクを指定するコマンドが示される。ラインL5には、物理インタフェース名を指定するコマンドが示される。ラインL6には、割り当てられたVRFにエクスポートルートターゲットを作成するコマンドが示される。ラインL7には、エクスポートルートターゲットのipアドレスを指定するコマンドが示される。
次に、これらコマンドの属性について説明する。属性とは、ロールバックコマンドを生成する際に制約条件となる。ここでは、「上書き属性」、「複数設定属性」及び「削除影響範囲属性」を属性とする。「上書き属性」とは、コマンドを更新設定する場合に上書きが可能か不可能かを示す属性である。「複数設定属性」とは、コマンドを連続して複数設定することが有るか否かを示す属性である。「削除影響範囲属性」とは、コマンドを削除すると、影響を及ぼすことになるコマンド範囲が単独か複数かを示す属性である。
かかる属性について具体的に説明する。ラインL1に示されるvrfコマンドは、上書き属性を「不可」、複数設定属性を「有り」、削除影響範囲属性を「ラインL1からラインL7まで影響を及ぼすため複数」とする。ラインL2に示されるipv4宣言コマンドは、上書き属性を「不可」、複数設定属性を「無し」、削除影響範囲属性を「ラインL2からラインL7まで影響を及ぼすため複数」とする。ラインL3に示されるインポートルートターゲット作成コマンドは、上書き属性を「不可」、複数設定属性を「無し」、削除影響範囲属性を「ラインL3からラインL5まで影響を及ぼすため複数」とする。ラインL4に示されるインポートルートターゲットのipアドレス指定コマンドは、上書き属性を「可」、複数設定属性を「無し」、削除影響範囲属性を「ラインL4にのみ影響を及ぼすため単独」とする。ラインL5に示される物理インタフェース名指定コマンドは、上書き属性を「不可」、複数設定属性を「有り」、削除影響範囲属性を「ラインL5にのみ影響を及ぼすため単独」とする。ラインL6に示されるエクスポートルートターゲット指定コマンドは、上書き属性を「不可」、複数設定属性を「無し」、削除影響範囲属性を「ラインL6からラインL7まで影響を及ぼすため複数」とする。ラインL7に示されるインポートルートターゲットのipアドレス指定コマンドは、上書き属性を「可」、複数設定属性を「無し」、削除影響範囲属性を「ラインL7にのみ影響を及ぼすため単独」とする。
なお、ラインL3からラインL7までの各コマンドは、各コマンドずつ属性を設定するようにしても良いし、これらコマンドを1行に纏めて設定するようにしても良い。1行に纏めて設定する場合には、上書き属性を「不可」、複数設定属性を「有り」、削除影響範囲属性を「自行のみに影響を及ぼす単独」となる。以降の説明では、1行に纏めて設定する後者を採用するものとする。
このスタティックプロトコルのテンプレートに対するコマンドテンプレートテーブル43は、以下のようになる。図4は、コマンドテンプレートテーブル43のデータ構造の一例を示す図である。図4に示すように、コマンドテンプレートテーブル43は、キー情報43a及びキー詳細No43b毎に、コマンドのテンプレート43cと、コマンドの属性である上書き43d、複数設定43e及び削除影響範囲43fと、テンプレートのパラメータ43gとを対応付けて記憶する。さらに、コマンドテンプレートテーブル43は、上記テンプレート43c毎に、削除接頭語43h、削除テンプレート43i及び削除テンプレートのパラメータ43jを対応付けて記憶する。
具体的に、キー情報43aは、ネットワーク機器が用いるプロトコル毎に定められる識別番号を示す。例えば、スタティックプロトコルの識別番号を「001」とし、図示しないBGPプロトコルの識別番号を「002」としても良い。キー詳細No43bは、後述するテンプレート43c毎の識別番号であり、昇順に付けられる。
テンプレート43cは、コマンドのテンプレートを示し、パラメータを含む形式で示される。ここでは、ラインL10で示されるテンプレート43cは、ルーティングプロトコルがスタティックであることを示すコマンドのテンプレートを表す。ラインL11で示されるテンプレート43cは、図3で示されたラインL1に対応するvrfコマンドのテンプレートを示し、VRF名を指定するパラメータを含む形式で示される。ラインL12で示されるテンプレート43cは、図3で示されたラインL2に対応するipv4宣言コマンドのテンプレートを示す。ラインL13で示されるテンプレート43cは、図3で示されたラインL3からラインL7までの各種アドレス設定コマンドのテンプレートを示す。各種アドレス設定コマンドは、例えばインポートルートターゲットのipアドレス、そのネットマスク、物理インタフェース名及びエクスポートターゲットのipアドレスを指定するパラメータを含む形式で示される。なお、テンプレート43cは、連続するコマンドの属性を考慮して1個のコマンドのテンプレートである場合もあるし、複数のコマンドを含むテンプレートである場合もある。上述したラインL13で示された各種アドレス設定コマンドのテンプレートは、複数のコマンドを含むテンプレートである場合である。
上書き43dは、テンプレート43cで示されるコマンド毎の上書き属性を示す。例えば、「上書き不可能」の場合には「0」、「上書き可能」の場合には「1」、「該当しない」場合には「2」が設定される。
複数設定43eは、テンプレート43cで示されるコマンド毎の複数設定属性を示す。例えば、「複数設定無し」の場合には「0」、「複数設定有り」の場合には「1」、「該当しない」場合には「2」が設定される。
削除影響範囲43fは、テンプレート43cで示されるコマンド毎の削除影響範囲属性を示し、コマンドが削除されると影響を及ぼすキー詳細No43bの値が設定される。例えば、ラインL13で示されるコマンドが削除されると、削除影響範囲43fとして影響を及ぼすキー詳細No43bの値が「4」である場合には、削除影響範囲43fの値とキー詳細No43bの値とが一致するので、削除影響範囲が単独であることがわかる。
テンプレートのパラメータ43gは、テンプレート43cに含まれるパラメータの書式を示す。削除接頭語43hは、テンプレート43cで示されるコマンドを取り消す際のコマンド生成規定を示す。例えば、「no」の場合には、テンプレート43cで示されるコマンドを取り消す際のコマンドの接頭語を示す。「0」の場合には、テンプレート43cで示されるコマンドには「削除コマンドが不要」であることを示す。すなわち、この場合には、上位の削除コマンドによって重畳的に削除されることになる。「1」の場合には、「無条件にコマンドを投入する」ことを示す。「3」の場合には、「接頭語以外の削除コマンドである」ことを示す。
削除テンプレート43iは、削除接頭語43hが「3」、すなわち「接頭語以外の削除コマンドである」場合の削除コマンドパターンのテンプレートを示し、パラメータを含む形式で示される。削除テンプレートのパラメータ43jは、削除テンプレート43jに含まれるパラメータの書式を示す。
なお、例えばネットワーク機器のファームウェアのアップグレード等によって環境設定情報に設定可能なコマンド自体の属性が追加または変更になる場合が想定される。かかる場合であっても、コマンドテンプレートテーブル43には、当該コマンドに関する属性が追加または変更されることが可能である。
図2に戻って、管理データテーブル41は、ネットワーク機器に設定されている最新の環境設定情報の内容を記憶する。すなわち、管理データテーブル41は、プロビジョニング直後のネットワーク機器に設定されている環境設定情報の内容を記憶する。ここで、管理データテーブル41のデータ構造について図5を参照しながら説明する。図5に示すように、管理データテーブル41は、キー詳細No41c毎に、ノード番号41a、キー情報41b及びパラメータ41dを対応付けて記憶する。
ノード番号41aは、MPLS−VPN網に接続されたネットワーク機器が所属するノード番号を示す。キー情報41b及びキー詳細No41cは、コマンドテンプレートテーブル43のキー情報43a及びキー詳細No43bと同様であるので、その説明を省略する。パラメータ41dは、環境設定情報に設定されているコマンドの実際のパラメータの内容である。例えば、キー詳細No41cが「4」の場合のパラメータ41dは、コマンドテンプレートテーブル43のラインL13のテンプレート43cに含まれる各種アドレス設定コマンドのパラメータ43gを意味する。このため、パラメータ41dのパラメータ1〜4には、パラメータ43gに対応する実際のパラメータ1〜4の内容が格納されている。
図2に戻って、バックアップ管理データテーブル42は、プロビジョニング直前のネットワーク機器の環境設定情報の内容を記憶する。すなわち、バックアップ管理データテーブル42は、ネットワーク管理装置2が管理するプロビジョニング直前のネットワーク機器の環境設定情報であって1世代前の環境設定情報の内容を記憶する。ここで、バックアップ管理データテーブル42のデータ構造については、図6に記載したとおりであるが、管理データテーブル41と同様であるので、その説明を省略する。
図2に戻って、プロビジョニング実行部31は、操作部21から指定されたプロビジョニングの内容に基づいたプロビジョニングを実行する。具体的には、プロビジョニング実行部31は、管理データテーブル41に管理されている最新の環境設定情報の内容を読み出し、読み出した内容をバックアップ管理データテーブル42に退避する。管理データテーブル41から読み出した内容は、プロビジョニング後に1世代前の環境設定情報となるので、予めバックアップするのである。また、プロビジョニング実行部31は、読み出した内容をコマンド化して、プロビジョニングを実施するための環境設定情報を形成するコマンド列を生成する。そして、プロビジョニング実行部31は、機器操作部22に対して、生成したコマンド列を含んだプロビジョニングの実行依頼を指示する。また、プロビジョニング実行部31は、機器操作部22からプロビジョニングの実行結果を取得すると、この実行結果を管理データテーブル41に反映するとともに、操作部21に通知する。
ロールバック制御部32は、操作部21から指定されたロールバックの内容に基づき、設定後コマンド生成部33に対してロールバックの実行依頼を指示する。また、ロールバック制御部32は、後述するロールバック動作によるロールバックの実行結果を機器操作部22から取得すると、この実行結果を操作部21に通知する。そして、ロールバック制御部32は、ロールバックによってネットワーク機器の環境設定情報が1世代前に戻るので、バックアップ管理データテーブル42に記憶された環境設定情報の内容を管理データテーブル41に上書きする。そして、ロールバック制御部32は、さらに1世代前の環境設定情報がないので、バックアップ管理データテーブル42に記憶された環境設定情報の内容を破棄する。
設定後コマンド生成部33は、ロールバック対象であるネットワーク機器に設定されている、プロビジョニング直後の最新の環境設定情報をコマンド化し、設定後コマンド列とする。具体的に、設定後コマンド生成部33は、ロールバック制御部32からロールバックの実行依頼の指示を取得すると、実行依頼指示に含まれたロールバック対象となるネットワーク機器に対し、現在の環境設定情報の抽出依頼を機器操作部22に指示する。また、設定後コマンド生成部33は、機器操作部22からネットワーク機器の現在の環境設定情報の抽出結果を取得すると、抽出結果から当該環境設定情報を形成する設定後コマンド列を生成する。
設定前コマンド生成部34は、ロールバック対象であるネットワーク機器の1世代前の環境設定情報をコマンド化し、設定前コマンド列とする。具体的には、設定前コマンド生成部34は、バックアップ管理データテーブル42から環境設定情報の内容を読み出し、当該内容から設定前コマンド列を生成する。例えば、設定前コマンド生成部34は、バックアップ管理データテーブル42のキー情報42b及びキー詳細No42cをキーとし、コマンドテンプレートテーブル43からテンプレート43cを読み出す。そして、設定前コマンド生成部34は、バックアップ管理データテーブル42の同一キー詳細No42bに対応するパラメータ42dを、読み出したテンプレート43c内のパラメータ部分と置き換えて、1つのコマンドを生成する。そして、設定前コマンド生成部34は、この動作をキー詳細No42cの昇順に順次実行し、設定前コマンド列を生成する。
設定前後コマンド差分抽出部35は、設定前コマンド列及び設定後コマンド列からコマンドの差分を抽出する。具体的には、設定前後コマンド差分抽出部35は、設定前コマンド列及び設定後コマンド列をそれぞれ個々のコマンドに分解する。また、設定前後コマンド差分抽出部35は、設定前コマンド列の分解された個々のコマンド及び設定後コマンド列の分解された個々のコマンドを同一コマンド毎に比較し、変化のあったコマンドを差分コマンドとして抽出する。そして、設定前後コマンド差分抽出部35は、抽出した変化のあった差分コマンドを、設定前コマンド列及びコマンド設定後コマンド列のいずれにあるかの区別をつけて、一時的に記憶部23に記憶する。
ロールバックコマンド生成部36は、ロールバック判定部36a、判定結果設定コマンド生成部36b及び不要コマンド削除部36cを有する。ロールバック判定部36aは、設定前後コマンド差分抽出部35によって抽出されたコマンドの属性に対応する動作種別をロールバック動作判定テーブル44から取得する。この属性とは、前述したとおり、ここでは、「上書き属性」、「複数設定属性」及び「削除影響範囲属性」とする。
ここで、ロールバック動作判定テーブル44について説明する。ロールバック動作判定テーブル44は、ネットワークの設定を定めるコマンドが有する属性に対応させてロールバックの動作方法を示す動作分類を記憶する。このロールバック動作判定テーブル44は、後述するロールバック動作分類表に基づいて作成される。そこで、ロールバック動作判定テーブル44の説明の前提として、ロールバック動作分類表を、図7を参照しながら説明する。図7は、ロールバック動作分類表の一例を説明する図である。図7に示すように、ロールバック動作分類表は、「ネットワーク機器側コマンド有無」、「バックアップ管理側コマンド有無」、「上書き属性」、「複数設定属性」、「削除影響範囲属性」及び「動作分類」を含んで構成される。
「ネットワーク機器側コマンド有無」とは、差分コマンドがネットワーク機器側の環境設定情報に設定されているか否かを示す。「バックアップ管理側コマンド有無」とは、「ネットワーク機器側コマンド有無」で判断された差分コマンドがバックアップ管理データテーブル42に記憶されているか否かを示す。「上書き属性」、「複数設定属性」及び「削除影響範囲属性」は、前述したとおりであるのでその説明を省略する。「動作分類」とは、差分コマンドが有する属性に対応させてロールバックの動作方法を示す動作分類を示す。この属性は、ここでは、「上書き属性」、「複数設定属性」及び「削除影響範囲属性」である。
動作分類には、属性に対応させて6種類のパターンがある。第1の動作分類として、削除パターン1がある。削除パターン1とは、ネットワーク機器側の環境設定情報から抽出されたコマンドをもとに単独の削除コマンドを生成する動作分類である。具体的には、削除パターン1の動作分類となるには、コマンドがネットワーク機器側の環境設定情報に「設定あり」の場合且つバックアップ側の環境設定情報に「設定なし」の場合であって、削除影響範囲属性を「単独」として持つ場合である。この場合には、このコマンドの削除コマンドによって他のコマンドに影響を及ぼさないので、ロールバックコマンドとして単独の削除コマンドを生成すれば良い。図7の例では、P2、P4、P6及びP8の場合である。
第2の動作分類として、削除パターン2がある。削除パターン2とは、ネットワーク機器側の環境設定情報から抽出したコマンドをもとに単独の削除コマンドを生成するとともに、該削除コマンドによって影響を及ぼすコマンドを抽出し、抽出したコマンドのロールバック処理を行わない動作分類である。具体的には、削除パターン2の動作分類となるには、コマンドがネットワーク機器側の環境設定情報に「設定あり」の場合且つバックアップ側の環境設定情報に「設定なし」の場合であって、上書き属性を「不可」且つ削除影響範囲属性を「複数」として持つ場合である。この場合には、このコマンドを取り消すと、ともに取り消すことになる他のコマンドがあるので、このコマンドに対しては単独の削除コマンドを生成し、他のコマンドに対してはロールバックコマンドを生成しないようにすれば良い。図7の例では、P7及びP9の場合である。
第3の動作分類として、変化パターン1がある。変化パターン1とは、ネットワーク機器側の環境設定情報から抽出したコマンドをもとに単純に変更コマンドとして生成する動作分類である。具体的には、変化パターン1の動作分類となるには、コマンドがネットワーク機器側の環境設定情報に「設定あり」且つバックアップ側の環境設定情報に「設定あり(変化あり)」の場合であって、上書き属性「可」且つ削除影響範囲属性「単独」として持つ場合である。この場合には、変化のあったコマンドを上書きできるので、ネットワーク機器側の該コマンドをバックアップ側のコマンドに設定するために、単純にバックアップ側のコマンドに変更する変更コマンドを生成すれば良い。図7の例では、P10及びP12の場合である。
第4の動作分類として、変化パターン2がある。変化パターン2とは、ネットワーク機器側の環境設定情報から抽出したコマンドをもとに単純に削除コマンドを生成するとともに、バックアップ側から抽出したコマンドを単純に変更コマンドとして生成する動作分類である。具体的には、変化パターン2の動作分類となるには、コマンドがネットワーク機器側の環境設定情報に「設定あり」且つバックアップ側の環境設定情報に「設定あり(変化あり)」の場合であって、上書き属性「不可」且つ削除影響範囲属性「単独」として持つ場合である。この場合には、変化のあったコマンドを上書きできないので、ネットワーク機器側の該コマンドを単純に削除する削除コマンドを生成し、バックアップ側の該コマンドを単純に設定する設定コマンドを生成すれば良い。図7の例では、P14及びP16の場合である。
第5の動作分類として、変化パターン3がある。変化パターン3は、ネットワーク機器側の環境設定情報から抽出したコマンドをもとに単純に削除コマンドを生成する。さらに、変化パターン3は、該削除コマンドによって影響を及ぼすコマンドをバックアップ側から抽出し、抽出コマンドを変化コマンドとして生成する。具体的には、変化パターン3の動作分類となるには、コマンドがネットワーク機器側の環境設定情報に「設定あり」且つバックアップ側の環境設定情報に「設定あり(変化あり)」の場合であって、上書き属性「不可」且つ削除影響範囲属性「複数」として持つ場合である。この場合には、変化のあったコマンドを上書きできないので、ネットワーク機器側の該コマンドを単純に削除する削除コマンドを生成する。そして、該削除コマンドによって一括して取り消すことになる他のコマンドがあるので、他のコマンドの中でバックアップ側との差分のコマンドを、バックアップ側から変化コマンドとして単純に生成すれば良い。図7の例では、P15及びP17の場合である。
第6の動作分類として、設定パターンがある。設定パターンとは、バックアップ側の環境設定情報から抽出したコマンドを設定コマンドとして生成する動作分類である。具体的には、設定パターンの動作分類となるには、コマンドがネットワーク機器側の環境設定情報に「設定なし」の場合且つバックアップ側の環境設定情報に「設定あり」の場合である。この場合には、コマンドの属性に関わらず、バックアップ側のコマンドをロールバックコマンドとして単独の設定コマンドを生成すれば良い。図7の例では、P18からP25までのパターンの場合である。なお、動作分類として「ケース無し」とは、該当する条件の組み合わせがない場合である。
このようなロールバック動作分類表の内容を記憶部23に記憶したものが、ロールバック動作判定テーブル44である。ここで、ロールバック動作判定テーブル44のデータ構造について図8を参照しながら説明する。図8は、ロールバック動作判定テーブル44のデータ構造の一例を示す図である。図8に示すように、ロールバック動作判定テーブル44は、ネットワーク機器設定区分44a、バックアップ設定区分44b、上書き区分44c、複数設定区分44d及び削除影響範囲区分44e毎にロールバックコマンドパターン44fを対応付けて記憶する。
ネットワーク機器設定区分44aは、ロールバック動作分類表の「ネットワーク機器側コマンド有無」に対応する。例えば、ネットワーク機器設定区分44aが「0」である場合には、差分コマンドがネットワーク機器側の環境設定情報に設定されていないことを指す。また、ネットワーク機器設定区分44aが「1」である場合には、差分コマンドがネットワーク機器側の環境設定情報に設定されていることを指す。
バックアップ設定区分44bは、ロールバック動作分類表の「バックアップ管理側コマンド有無」に対応する。例えば、バックアップ設定区分44bが「0]である場合には、差分コマンドがバックアップ管理データテーブル42に記憶されていないことを指す。また、バックアップ設定区分44bが「1」である場合には、差分コマンドがバックアップ管理データテーブル42に記憶されていることを指す。さらに、バックアップ設定区分44bが「2」である場合には、バックアップ管理データテーブル42に記憶されている差分コマンドがネットワーク機器側のものと変化があることを指す。
上書き区分44cは、ロールバック動作分類表の「上書き属性」に対応する。例えば、上書き区分44cが「0」である場合には、差分コマンドを更新設定する場合に上書きが不可能であることを指す。また、上書き区分44cが「1」である場合には、差分コマンドを更新設定する場合に上書きが可能であることを指す。さらに、上書き区分44cが「2」である場合には、例えば差分コマンドが管理外のコマンドであるので、該当しないことを指す。
複数設定区分44dは、ロールバック動作分類表の「複数設定属性」に対応する。例えば、複数設定区分44dが「0」である場合には、差分コマンドの複数設定が無しであることを指す。また、複数設定区分44dが「1」である場合には、差分コマンドの複数設定が有りであることを指す。さらに、複数設定区分44dが「2」である場合には、例えば差分コマンドが管理外のコマンドであるので、該当しないことを指す。
削除影響範囲区分44eは、ロールバック動作分類表の「削除影響範囲属性」に対応する。例えば、削除影響範囲区分44eが「0」である場合には、差分コマンドを削除すると、影響を及ぼすことになるコマンド範囲が単独であることを指す。また、削除影響範囲区分44eが「1」である場合には、差分コマンドを削除すると、影響を及ぼすことになるコマンド範囲が複数であることを指す。さらに、除影響範囲区分44eが「2」である場合には、例えば差分コマンドが管理外のコマンドであるので、該当しないことを指す。
ロールバックコマンドパターン44fは、ロールバック動作分類表の「動作分類」に対応する。例えば、ロールバックコマンドパターン44fが「0」である場合には、ロールバックの動作方法を示す動作分類がケース無しであることを指す。ロールバックコマンドパターン44fが「1」である場合には、動作分類が削除パターン1であることを指す。ロールバックコマンドパターン44fが「2」である場合には、動作分類が削除パターン2であることを指す。ロールバックコマンドパターン44fが「3」である場合には、動作分類が変化パターン1であることを指す。ロールバックコマンドパターン44fが「4」である場合には、動作分類が変化パターン2であることを指す。ロールバックコマンドパターン44fが「5」である場合には、動作分類が変化パターン3であることを指す。ロールバックコマンドパターン44fが「6」である場合には、動作分類が設定パターンであることを指す。
なお、ネットワークの設定を定めるコマンドが有する属性が追加または変更になる場合も想定される。かかる場合であっても、ロールバック動作判定テーブル44には、追加または変更になった属性に対応させてロールバックコマンドパターン44fを記憶するようにしても良い。
図2に戻って、ロールバック判定部36aの制御について具体的に説明する。ロールバック判定部36aは、設定前後コマンド差分抽出部35によって抽出された差分コマンドが設定前コマンド列側及び設定後コマンド列側のいずれにあるかの区別を差分コマンド毎に判定する。また、ロールバック判定部36aは、差分コマンドの属性を差分コマンド毎にコマンドテンプレートテーブル43から読み出す。そして、ロールバック判定部36aは、ロールバック動作判定テーブル44から差分コマンドに関する環境設定情報の区別及び属性に対応するロールバックコマンドパターンを読み出す。
例えば、差分コマンドとして「IPアドレス」がネットワーク機器側の設定後コマンド列にあり、バックアップ側の設定前コマンド列にない場合について説明する。ロールバック判定部36aは、「IPアドレス」の属性をコマンドテンプレートテーブル43から読み出す。ここでは、「IPアドレス」の属性は、上書き43dが「0」(「上書き不可能」)、複数設定43eが「1」(「複数設定有り」)、削除影響範囲43fが「キー詳細Noが4」(削除影響範囲が単独)となる。そして、ロールバック判定部36aは、ロールバック動作判定テーブル44から「IPアドレス」に関する環境設定情報の区別及び属性に対応するロールバックコマンドパターンを読み出す。ここでは、ロールバックパターンは、パターン6に示される「1」を指す。すなわち、ネットワーク機器側から抽出した差分コマンドをもとに単独の削除パターンを生成する削除パターン1となる。
判定結果設定コマンド生成部36bは、ロールバック判定部36aによって取得された差分コマンドのロールバックパターンに応じた、ロールバック動作を規定するロールバックコマンドを生成する。具体的には、判定結果設定コマンド生成部36bは、差分コマンドのロールバックパターンが「1」(削除パターン1)の場合には、この差分コマンドの削除コマンドをコマンドテンプレートテーブル43に表される削除接頭語43hに基づいて生成する。そして、判定結果設定コマンド生成部36bは、不要コマンドであるか否かを示すフラグを、不要コマンドでないとして「1」に設定する。なお、フラグは、例えば、記憶部23の一時領域に設定される。
また、判定結果設定コマンド生成部36bは、差分コマンドのロールバックパターンが「2」(削除パターン2)の場合には、該差分コマンドの削除コマンドをコマンドテンプレートテーブル43に表される削除接頭語43に基づいて生成する。そして、判定結果設定コマンド生成部36bは、不要コマンドでないとしてフラグを「1」に設定する。さらに、判定結果設定コマンド生成部36bは、該差分コマンドの削除によって他のコマンドに影響を及ぼすので、影響するコマンドをそのままロールバックコマンドとし、不要コマンドとしてフラグを「0」に設定する。
また、判定結果設定コマンド生成部36bは、差分コマンドのロールバックパターンが「3」(変更パターン1)の場合には、バックアップ側のコマンドを単純にロールバックコマンドとする。そして、判定結果設定コマンド生成部36bは、不要コマンドでないとしてフラグを「1」に設定する。
また、判定結果設定コマンド生成部36bは、差分コマンドのロールバックパターンが「4」(変更パターン2)の場合には、ネットワーク機器側の差分コマンドをコマンドテンプレートテーブル43に表される削除接頭語43に基づいて生成する。さらに、判定結果設定コマンド生成部36bは、バックアップ側のコマンドを単純にロールバックコマンドとする。そして、判定結果設定コマンド生成部36bは、不要コマンドでないとしてフラグを「1」に設定する。
また、判定結果設定コマンド生成部36bは、差分コマンドのロールバックパターンが「5」(変更パターン3)の場合には、ネットワーク機器側の差分コマンドをコマンドテンプレートテーブル43に表される削除接頭語43に基づいて生成する。そして、判定結果設定コマンド生成部36bは、不要コマンドでないとしてフラグを「1」に設定する。また、判定結果設定コマンド生成部36bは、該差分コマンドの削除によって影響を及ぼすコマンドをバックアップ側から生成する。そして、判定結果設定コマンド生成部36bは、不要コマンドでないとしてフラグを「1」に設定する。
また、判定結果設定コマンド生成部36bは、差分コマンドのロールバックパターンが「6」(設定パターン1)の場合には、バックアップ側のコマンドを単純にロールバックコマンドとする。そして、判定結果設定コマンド生成部36bは、不要コマンドでないとしてフラグを「1」に設定する。
なお、判定結果設定コマンド生成部36bは、差分コマンドのロールバックパターンが「0」(ケース無し)の場合には、この差分コマンドをそのままロールバックコマンドとするものとする。そして、判定結果設定コマンド生成部36bは、不要コマンドでないとして、フラグを「1」に設定する。
不要コマンド削除部36cは、判定結果設定コマンド生成部36bによって不要コマンドとして「0」が設定された差分コマンドを削除する。すなわち、差分コマンドのうち不要コマンド削除部36cは、不要なコマンドを削除し、残りの差分コマンドをロールバック設定コマンドとして決定する。
[実施例2に係るネットワーク管理装置の処理手順]
次に、実施例2に係るネットワーク管理装置2の処理手順を、図9−1を参照して説明する。図9−1は、実施例2に係るネットワーク管理装置2の処理手順を示すフローチャートである。
まず、ロールバック制御部32は、操作部21からロールバック対象のネットワーク機器に対するロールバックの実行依頼を受け付ける(ステップS11)。次に、設定後コマンド生成部33は、ロールバック対象のネットワーク機器に設定されている、プロビジョニング直後の最新の環境設定情報の抽出依頼を、機器操作部22に指示する(ステップS12)。
そして、設定後コマンド生成部33は、該当するネットワーク機器の環境設定情報の抽出結果を機器操作部22から取得すると、抽出結果から当該環境設定情報を形成する設定後コマンド列を生成する(ステップS13)。そして、設定前コマンド生成部34は、バックアップ管理データテーブル42から該当するネットワーク機器の環境設定情報の内容を読み出し、該内容から設定前コマンド列を生成する(ステップS14)。
続いて、設定前後コマンド差分抽出部35は、設定前コマンド列及び設定後コマンド列からコマンドの差分を抽出し、抽出した差分コマンド毎に設定前コマンド列及びコマンド設定後コマンド列のいずれにあるかの区別を記憶部23の一時領域に記憶する。そして、ロールバック判定部36aは、設定前後コマンド差分抽出部35によって抽出された差分コマンドの属性に対応するロールバックコマンドパターンを差分コマンド毎にロールバック動作判定テーブル44から取得する(ステップS15)。
続いて、判定結果設定コマンド生成部36bは、ロールバック判定部36aによって取得された差分コマンドのロールバックパターンに応じた、ロールバック動作を規定するロールバックコマンドを生成する(ステップS16)。そして、不要コマンド削除部36cは、判定結果設定コマンド生成部36bによって差分コマンドのうち不要コマンドとされたコマンドを削除し、残りの差分コマンドをロールバック設定コマンドとして決定する(ステップS17)。
続いて、不要コマンド削除部36cは、決定したロールバック設定コマンドを用いたロールバック処理を機器操作部22に依頼する(ステップS18)。その後、ロールバック制御部32は、該当するネットワーク機器のロールバック処理結果を機器操作部22から取得すると、操作部21に通知する。
次に、図9−1に示すロールバック判定処理(ステップS15)の手順について、図9−2を用いて説明する。図9−2は、ロールバック判定処理の手順を示すフローチャートである。
まず、ロールバック判定部36aは、設定前コマンド列及び設定後コマンド列から抽出した差分コマンドのうち1個の差分コマンドを選択する。すると、ロールバック判定部36aは、選択した差分コマンドがネットワーク機器側にあるか否かを、一時領域に基づいて判定する(ステップS21)。そして、ロールバック判定部36aは、差分コマンドがネットワーク機器側にないと判定する場合に(ステップS21No)、ネットワーク機器設定区分「0」を一時領域に記憶する(ステップS22)。一方、ロールバック判定部36aは、差分コマンドがネットワーク機器側にあると判定する場合に(ステップS21Yes)、ネットワーク機器設定区分「1」を一時領域に記憶する(ステップS23)。
そして、ロールバック判定部36aは、差分コマンドがバックアップ側にあるか否かを、一時領域に基づいて判定する(ステップS24)。そして、ロールバック判定部36aは、差分コマンドがバックアップ側にないと判定する場合に(ステップS24No)、バックアップ設定区分「0」を一時領域に記憶する(ステップS25)。一方、ロールバック判定部36aは、差分コマンドがバックアップ側にあると判定する場合に(ステップS24Yes)、バックアップ側の差分コマンドとネットワーク機器側の差分コマンドとに変化があるか否かを判定する(ステップS26)。そして、ロールバック判定部36aは、バックアップ側の差分コマンドとネットワーク機器側の差分コマンドとに変化がないと判定する場合に(ステップS26No)、バックアップ設定区分「1」を一時領域に記憶する(ステップS27)。一方、ロールバック判定部36aは、バックアップ側の差分コマンドとネットワーク機器側の差分コマンドとに変化があると判定する場合に(ステップS26Yes)、バックアップ設定区分「2」を一時領域に記憶する(ステップS28)。
そして、ロールバック判定部36aは、差分コマンドの上書き属性が「可」であるか否かを、コマンドテンプレートテーブル43に基づいて判定する(ステップS29)。このとき、ロールバック判定部36aは、差分コマンドの上書き属性が「不可」の場合に(ステップS29不可)、上書き区分「0」を一時領域に記憶する(ステップS31)。また、ロールバック判定部36aは、差分コマンドの上書き属性が「可」の場合に(ステップS29可)、上書き区分「1」を一時領域に記憶する。さらに、ロールバック判定部36aは、差分コマンドの上書き属性が「該当なし」、例えば差分コマンドが管理外のコマンドであるような場合に(ステップS29該当なし)、上書き区分「2」を一時領域に記憶する(ステップS30)。
そして、ロールバック判定部36aは、差分コマンドの複数設定属性が「あり」であるか否かを、コマンドテンプレートテーブル43に基づいて判定する(ステップS33)。このとき、ロールバック判定部36aは、差分コマンドの複数設定属性が「なし」の場合に(ステップS33なし)、複数設定区分「0」を一時領域に記憶する(ステップSS35)。また、ロールバック判定部36aは、差分コマンドの複数設定属性が「あり」の場合に(ステップS33あり)、複数設定区分「1」を一時領域に記憶する(ステップS36)。さらに、ロールバック判定部36aは、差分コマンドの複数設定属性が「該当なし」、例えば差分コマンドが管理外のコマンドであるような場合に(ステップS33該当なし)、複数設定区分「2」を一時領域に記憶する(ステップS34)。
そして、ロールバック判定部36aは、差分コマンドの削除影響範囲が単独であるか否かを、コマンドテンプレートテーブル43に基づいて判定する(ステップS37)。このとき、ロールバック判定部36aは、差分コマンドの削除影響範囲が単独であると判定する場合に(ステップS37Yes)、削除影響範囲区分「0」を一時領域に記憶する(ステップS39)。また、ロールバック判定部36aは、差分コマンドの削除影響範囲が複数であると判定する場合に(ステップS37No)、削除影響範囲区分「1」を一時領域に記憶する(ステップS40)。さらに、ロールバック判定部36aは、差分コマンドの削除影響範囲が「該当なし」、例えば差分コマンドが管理外のコマンドであるような場合に(ステップS37該当なし)、削除影響範囲区分「2」を一時領域に記憶する。
そして、ロールバック判定部36aは、ネットワーク機器設定区分、バックアップ設定区分、上書き区分、複数設定区分及び削除影響範囲区分に対応するロールバックコマンドパターンをロールバック動作判定テーブル44から読み出す(ステップS41)。そして、ロールバック判定部36aは、全差分コマンドについてチェックを完了したか否かを判定する(ステップS42)。そして、ロールバック判定部36aは、全差分コマンドについてチェックを完了していない場合に(ステップS42No)、次の差分コマンドを選択し、ステップS21に移行する。一方、ロールバック判定部36aは、全差分コマンドについてチェックを完了した場合に(ステップS42Yes)、ロールバック判定処理を終了する。
次に、図9−1に示すロールバック判定結果設定コマンド生成処理(ステップS16)の手順について、図9−3を用いて説明する。図9−3は、ロールバック判定結果設定コマンド生成処理の手順を示すフローチャートである。
まず、判定結果設定コマンド生成部36bは、設定前コマンド列及び設定後コマンド列から抽出した差分コマンドのうち1個の差分コマンドを選択する。次に、判定結果設定コマンド生成部36bは、選択した差分コマンドが削除影響コマンド行か否かを判定する(ステップS51)。すなわち、判定結果設定コマンド生成部36bは、選択した差分コマンドが後述するステップS56によって抽出されたコマンド行(他の差分コマンドの削除によって影響するコマンド行)であるか否かを判定する。
そして、判定結果設定コマンド生成部36bは、選択した差分コマンドが削除影響コマンド行である場合に(ステップS51Yes)、該当コマンドをそのままコマンドとして一時領域に記憶する。そして、判定結果設定コマンド生成部36bは、他のコマンドによって削除することになるので、不要コマンドとしてフラグを「0」に記憶する(ステップS52)。
一方、判定結果設定コマンド生成部36bは、選択した差分コマンドが削除影響コマンド行でない場合に(ステップS51No)、以下の判定をする。判定結果設定コマンド生成部36bは、ロールバックコマンドパターンが「1」(削除パターン1)、「2」(削除パターン2)または「5」(変更パターン3)であるか否かを判定する(ステップS53)。
そして、ロールバックコマンドパターンが「1」、「2」または「5」のいずれでもない場合、すなわち「0」、「3」、「4」または「6」の場合に(ステップS53No)、該当コマンドをそのままコマンドとして一時領域に記憶する。そして、判定結果設定コマンド生成部36bは、不要コマンドでないとしてフラグを「1」に記憶する(ステップS54)。ここで、ロールバックコマンドパターン「0」は、ケースなしを示す。ロールバックコマンドパターン「3」は、変化パターン1を示す。ロールバックコマンドパターン「4」は、変化パターン2を示す。ロールバックコマンドパターン「6」は、設定パターンを示す。
一方、ロールバックコマンドパターンが「1」、「2」または「5」である場合に(ステップS53Yes)、「1」以外であるか否かを判定する(ステップS55)。ロールバックコマンドパターンが「1」以外、すなわち「2」または「5」である場合に(ステップS55Yes)、本コマンドが削除すると影響するコマンド行をコマンドテンプレートテーブル43に基づいて抽出し(ステップS56)、一時領域に記憶する。ここで、ロールバックコマンドパターン「2」は、削除パターン2を示す。ロールバックコマンドパターン「5」は、変化パターン3を示す。
さらに、判定結果設定コマンド生成部36bは、本コマンドの削除接頭語をコマンドテンプレートテーブル43に基づいてチェックする(ステップS57)。ここで、判定結果設定コマンド生成部36bは、本コマンドの削除接頭語が「no」または「3」(接頭語以外の削除コマンド)であるか否かを判定する(ステップS58)。本コマンドの削除接頭語が「no」及び「3」のいずれでもない場合に(ステップS58No)、本コマンドの削除接頭語が「1」(無条件にコマンドを投入)であるか否かを判定する(ステップS59)。
そして、本コマンドの削除接頭語が「1」でない場合、すなわち「0」(削除コマンドが不要)である場合に(ステップS59No)、本コマンドの先頭に「no」を付与し、削除コマンドを生成する。そして、判定結果設定コマンド生成部36bは、削除コマンドが不要であるので、不要コマンドであるとしてフラグを「0」に記憶する(ステップS60)。
一方、本コマンドの削除接頭語が「1」(無条件にコマンドを投入)である場合に、該当コマンドをそのまま削除コマンドとして生成する。そして、判定結果設定コマンド生成アブ36bは、無条件にコマンドを投入するので、不要コマンドでないとしてフラグを「1」に記憶する(ステップS61)。
また、本コマンドの削除接頭語が「no」または「3」(接頭語以外の削除コマンド)である場合に(ステップS58Yes)、該削除接頭語が「3」であるか否かを判定する(ステップS62)。そして、削除接頭語が「3」でない場合、すなわち「no」である場合に(ステップS62No)、本コマンドの先頭に「no」を付与し、削除コマンドを生成する。そして、判定結果設定コマンド生成部36bは、不要コマンドでないとして「1」に記憶する(ステップS63)。
一方、削除接頭語が「3」(接頭語以外の削除コマンド)である場合に(ステップS62Yes)、コマンドテンプレートテーブル43の削除テンプレートに基づいて、該当コマンドの削除コマンドを生成する。そして、そして、判定結果設定コマンド生成部36bは、不要コマンドでないとして「1」に記憶する(ステップS64)。
そして、判定結果設定コマンド生成部36bは、全差分コマンドについてチェックを完了したか否かを判定する(ステップS67)。そして、判定結果設定コマンド生成部36bは、全差分コマンドについてチェックを完了していない場合に(ステップS67No)、次の差分コマンドを選択し、ステップS51に移行する。一方、判定結果設定コマンド生成部36bは、全差分コマンドについてチェックを完了した場合に(ステップS67Yes)、ロールバック判定結果設定コマンド生成処理を終了する。
[ロールバック設定コマンド生成の具体例1]
次に、ロールバック設定コマンド生成の具体例について、図10及び図11を参照しながら説明する。図10では、差分コマンドのロールバックコマンドパターンが他のコマンドに影響を及ぼさない場合について説明し、図11では、差分コマンドのロールバックコマンドパターンが他のコマンドに影響を及ぼす場合について説明する。なお、図10及び図11で示される設定後コマンド列、設定前コマンド列、判定結果、設定コマンド及びロールバック設定コマンドは、それぞれ記憶部23の一時領域に記憶される情報であるものとする。
まず、図10を参照して、差分コマンドのロールバックコマンドパターンが他のコマンドに影響を及ぼさない場合について説明する。図10に示すように、設定後コマンド生成部33は、ロールバック対象のネットワーク機器の現状の環境設定情報を、機器操作部22を介して取得すると、該環境設定情報を形成する設定後コマンド列M1を生成する。また、設定前コマンド生成部34は、バックアップ管理データテーブル42からロールバック対象のネットワーク機器の環境設定情報の内容を読み出し、該内容から設定前コマンド列B1を生成する。そして、設定前後コマンド差分抽出部35は、設定後コマンド列M1及び設定前コマンド列B1からコマンドの差分を差分コマンドとして抽出する。ここでは、差分コマンドは、m1、m2、b1及びb2の各コマンドである。
次に、ロールバック判定部36aは、差分コマンドの属性に対応するロールバックコマンドパターンを差分コマンド毎にロールバック動作判定テーブル44から取得する。具体的には、ロールバック判定部36aは、差分コマンドm1を選択すると、差分コマンドm1が設定後コマンド列M1にあり設定前コマンド列B1にないので、ネットワーク機器設定区分を「1」及びバックアップ設定区分を「0」に設定する。そして、ロールバック判定部36aは、差分コマンドm1をコマンドテンプレートテーブル43のテンプレート43cと照合し、キー詳細No43b「4」に対応するアドレス設定コマンドであることを判別する。そして、ロールバック判定部36aは、キー詳細No43b「4」に対応する属性(上書き43d、複数設定43e、削除影響範囲43f)を読み出す。ここでは、上書き属性が「0」(不可)であるので上書き区分「0」、複数設定属性が「1」(あり)であるので複数設定区分「1」、削除影響範囲属性が「4」(単独)であるので削除影響範囲区分「4」をそれぞれ記憶する。さらに、ロールバック判定部36aは、ネットワーク機器設定区分「1」、バックアップ設定区分「0」、上書き区分「0」、複数設定区分「1」及び削除影響範囲区分「4」に対応するロールバックコマンドパターンをロールバック動作判定テーブル44から読み出す。ここでは、ロールバック判定部36aは、「削除パターン1」をロールバックコマンドパターンとして読み出す。この結果、「削除パターン1」に対応するロールバックコマンドパターン「1」が、判定結果D1のr1に設定される。
同様に、ロールバック判定部36aは、差分コマンドを順次選択し、差分コマンドm2のロールバックコマンドパターンとして「削除パターン1」を読み出す。この結果、「削除パターン1」に対応するロールバックコマンドパターン「1」が、判定結果D1のr2に設定される。
次に、ロールバック判定部36aは、差分コマンドb1を選択すると、差分コマンドb1が設定後コマンド列になく設定前コマンド列にあるので、ネットワーク機器設定区分を「0」及びバックアップ設定区分を「1」に設定する。そして、ロールバック判定部36aは、差分コマンドb1をコマンドテンプレートテーブル43のテンプレート43cと照合し、キー詳細No43b「4」に対応するアドレス設定コマンドであることを判別する。そして、ロールバック判定部36aは、キー詳細No43b「4」に対応する属性(上書き43d、複数設定43e、削除影響範囲43f)を読み出す。ここでは、上書き属性が「0」(不可)であるので上書き区分「0」、複数設定属性が「1」(あり)であるので複数設定区分「1」、削除影響範囲属性が「4」(単独)であるので削除影響範囲区分「0」をそれぞれ記憶する。さらに、ロールバック判定部36aは、ネットワーク機器設定区分「0」、バックアップ設定区分「1」、上書き区分「0」、複数設定区分「1」及び削除影響範囲区分「0」に対応するロールバックコマンドパターンをロールバック動作判定テーブル44から読み出す。ここでは、ロールバック判定部36aは、「設定パターン」をロールバックコマンドパターンとして読み出す。この結果、「設定パターン」に対応するロールバックコマンドパターン「6」が、判定結果D1のr3に設定される。
同様に、ロールバック判定部36aは、差分コマンドを順次選択し、差分コマンドb2のロールバックコマンドパターンとして「設定パターン」を読み出す。この結果、「設定パターン」に対応するロールバックコマンドパターン「6」が、判定結果D1のr4に設定される。なお、差分コマンド以外のコマンドは、設定後コマンド列及び設定前コマンド列に変化しないで存在するので、「ケースなし」に対応するロールバックコマンドパターン「0」が、判定結果D1に設定される。
次に、判定結果設定コマンド生成部36bは、差分コマンドのロールバックパターンに応じた、ロールバック動作を規定するロールバックコマンドを生成する。具体的には、判定結果設定コマンド生成部36bは、差分コマンドm1を選択すると、差分コマンドm1のロールバックコマンドパターンが「1」であるので、差分コマンドm1に対応する削除接頭語をコマンドテンプレートテーブル43から読み出す。ここでは、差分コマンドm1は、アドレス設定コマンドであるので、キー詳細No43b「4」に対応する削除接頭語43h「no」を読み出す。そして、判定結果設定コマンド生成部36bは、符号r1に示すように、読み出した「no」を差分コマンドm1の先頭に付与したコマンドを設定コマンドT1に設定し、不要コマンドでないとしてフラグを「1」に設定する。
同様に、判定結果設定コマンド生成部36bは、差分コマンドm2について、符号r2に示すように、「no」を差分コマンドm2の先頭に付与したコマンドを設定コマンドT1に設定し、不要コマンドでないとしてフラグを「1」に設定する。
次に、判定結果設定コマンド生成部36bは、差分コマンドb1を選択すると、差分コマンドb1のロールバックコマンドパターンが「6」であるので、差分コマンドb1をそのまま使用することを決定する。そして、判定結果設定コマンド生成部36bは、符号r3に示すように、差分コマンドb1を設定コマンドT1に設定し、不要コマンドでないとしてフラグを「1」に設定する。同様に、判定結果設定コマンド生成部36bは、差分コマンドb2について、符号r4に示すように、差分コマンドb2を設定コマンドT1に設定し、不要コマンドでないとしてフラグを「1」に設定する。なお、差分コマンド以外のコマンドは、設定前コマンド列から変化しないでそのまま設定後コマンド列に存在するので、不要コマンドでないとしてフラグを「1」に設定される。
そして、不要コマンド削除部36cは、設定コマンドT1に設定されたコマンドのうち不要コマンドとされるコマンドを削除し、ロールバック設定コマンドを生成する。すなわち、不要コマンド削除部36cは、設定コマンドT1に設定されたコマンドのうちフラグが「0」のコマンドを削除し、残りのコマンドをロールバック設定コマンドとする。この結果、設定コマンドT1に設定されたコマンドのうち符号r1からr4に示されるコマンド及び変化がなかったコマンドがロールバック設定コマンドR1として生成されることになる。
これにより、ロールバック設定コマンドを用いたロールバック処理がネットワーク機器に実施されると、バックアップされたプロビジョニング直前のネットワーク機器の環境設定情報に戻ることになる。
[ロールバック設定コマンド生成の具体例2]
次に、図11を参照して、差分コマンドのロールバックコマンドパターンが他のコマンドに影響を及ぼす場合について説明する。図11に示すように、設定後コマンド生成部33は、ロールバック対象のネットワーク機器の現状の環境設定情報を、機器操作部22を介して取得すると、該環境設定情報を形成する設定後コマンド列M2を生成する。また、設定前コマンド生成部34は、バックアップ管理データテーブル42からロールバック対象のネットワーク機器の環境設定情報の内容を読み出し、該内容から設定前コマンド列B2を生成する。そして、設定前後コマンド差分抽出部35は、設定後コマンド列M2及び設定前コマンド列B2からコマンドの差分を差分コマンドとして抽出する。ここでは、差分コマンドは、m3〜m6、b3及びb4の各コマンドである。
次に、ロールバック判定部36aは、差分コマンドの属性に対応するロールバックコマンドパターンを差分コマンド毎にロールバック動作判定テーブル44から取得する。具体的には、ロールバック判定部36aは、差分コマンドm3を選択すると、差分コマンドm3が設定後コマンド列M2にあり設定前コマンド列B2にないので、ネットワーク機器設定区分を「1」及びバックアップ設定区分を「0」に設定する。そして、ロールバック判定部36aは、差分コマンドm3をコマンドテンプレートテーブル43のテンプレート43cと照合し、キー詳細No43b「2」に対応するvrfコマンドであることを判別する。そして、ロールバック判定部36aは、キー詳細No43b「2」に対応する属性(上書き43d、複数設定43e、削除影響範囲43f)を読み出す。ここでは、上書き属性が「0」(不可)であるので上書き区分「0」、複数設定属性が「0」(なし)であるので複数設定区分「0」、削除影響範囲属性が「5」(複数)であるので削除影響範囲区分「1」をそれぞれ設定する。さらに、ロールバック判定部36aは、ネットワーク機器設定区分「1」、バックアップ設定区分「0」、上書き区分「0」、複数設定区分「0」及び削除影響範囲区分「1」に対応するロールバックコマンドパターンをロールバック動作判定テーブル44から読み出す。ここでは、ロールバック判定部36aは、「削除パターン2」をロールバックコマンドパターンとして読み出す。この結果、「削除パターン2」に対応するロールバックコマンドパターン「2」が、判定結果D2のr5に設定される。
同様に、ロールバック判定部36aは、差分コマンドを順次選択し、差分コマンドのロールバックコマンドパターンをロールバック処理判定テーブル44から読み出す。この結果、差分コマンドm4〜m6については、それぞれ「削除パターン1」に対応するロールバックコマンドパターン「1」が、判定結果D2のr6〜r8に設定される。また、差分コマンドb3〜b4については、それぞれ「設定パターン」に対応するロールバックコマンドパターン「6」が、判定結果D2のr9〜r10に設定される。
次に、判定結果設定コマンド生成部36bは、差分コマンドのロールバックパターンに応じた、ロールバック動作を規定するロールバックコマンドを生成する。具体的には、判定結果設定コマンド生成部36bは、差分コマンドm3を選択すると、差分コマンドm3のロールバックコマンドパターンが「2」であるので、差分コマンドm3が削除すると影響するコマンド行をコマンドテンプレートテーブル43に基づいて抽出し、一時領域に記憶する。ここでは、削除影響範囲属性が「5」(複数)であるので、差分コマンドm3が削除すると影響するコマンド行は、キー詳細No43bが「3」(差分コマンドm3のキー詳細)から「5」までのコマンドとなる。すなわち、キー詳細No43bが「3」を示すipv4宣言コマンド、「4」を示すアドレス設定コマンド、「5」を示すexitコマンドとなる。
次に、判定結果設定コマンド生成部36bは、差分コマンドm3に対応する削除接頭語をコマンドテンプレートテーブル43から読み出す。ここでは、差分コマンドm3は、vrfコマンドであるので、キー詳細No43b「2」に対応する削除接頭語43h「no」を読み出す。そして、判定結果設定コマンド生成部36bは、符号r5に示すように、読み出した「no」を差分コマンドm3の先頭に付与したコマンドを設定コマンドT2に設定し、不要コマンドでないとしてフラグを「1」に設定する。
次に、判定結果設定コマンド生成部36bは、差分コマンドm3が削除すると影響するコマンド行の差分コマンドを一時領域から読み出し、そのままコマンドとして設定し、不要コマンドであるとしてフラグを「0」に設定する。すなわち、判定結果設定コマンド生成部36bは、符号r6からr10に示すように、差分コマンドを設定コマンドT2に設定し、不要コマンドであるとしてフラグを「0」に設定する。なお、差分コマンド以外のコマンドは、設定前コマンド列から変化しないでそのまま設定後コマンド列に存在するので、不要コマンドでないとしてフラグを「1」に設定される。したがって、exitコマンドは、差分コマンドm3が削除すると影響するコマンド行であるが、差分コマンド以外のコマンドであるので、不要コマンドでないとしてフラグを「1」に設定される。
そして、不要コマンド削除部36cは、設定コマンドT1に設定されたコマンドのうち不要コマンドとされるコマンドを削除し、ロールバック設定コマンドを生成する。すなわち、不要コマンド削除部36cは、設定コマンドT1に設定されたコマンドのうちフラグが「0」のコマンドを削除し、残りのコマンドをロールバック設定コマンドとする。この結果、設定コマンドT1に設定されたコマンドのうち符号r5に示されるコマンド及び変化がなかったコマンドがロールバック設定コマンドR2として生成されることになる。
これにより、その後、ロールバック設定コマンドを用いたロールバック処理がネットワーク機器に実施されると、バックアップされたプロビジョニング直前の適正なネットワーク機器の環境設定情報に戻ることになる。すなわち、図11の例では、プロビジョニング直前のバックアップでは、実際には設定アドレスが設定されていたが、vrfコマンドが設定されていなかった。したがって、本来は設定アドレスが設定されるはずがないところ、設定されてしまう設定アドレスを設定しないようにすることで適正な環境設定情報に戻ることになる。
[実施例2の効果]
上記実施例2によれば、ネットワーク管理装置2は、環境設定情報に設定可能なコマンド毎に各コマンドが有する属性を記憶するコマンドテンプレートテーブル43を備える。そして、ロールバック判定部32aが、設定前後コマンド差分抽出部35によって抽出された、設定前コマンド列及び設定後コマンド列の差分のコマンドに関し、当該コマンドに対する属性をコマンドテンプレートテーブル43から取得する。そして、ロールバック判定部32aが、取得された属性及び当該コマンドが形成された環境設定情報の設定前後の区別に対応するロールバックコマンドパターンをロールバック動作判定テーブル44からコマンド毎に取得する。そして、判定結果設定コマンド生成部36bは、ロールバック判定部36aによって取得されたコマンド毎のロールバックコマンドパターンに基づいてロールバックコマンドを生成する。
これにより、ネットワーク管理装置2は、差分コマンドが有する属性に対応させたロールバックコマンドパターンに応じたロールバックコマンドを生成する。このため、ネットワーク管理装置2は、差分コマンドを単純に取り消すロールバックコマンドを生成する場合と異なり、適正なロールバックコマンドを生成できる。この結果、ネットワーク管理装置2は、生成したロールバックコマンドをネットワーク機器に設定すると、コマンドを単純に取り消すロールバックコマンドを設定する場合と異なり、不適正な環境設定情報に戻るのを回避できる。
また、実施例2によれば、コマンドテンプレートテーブル43は、環境設定情報に設定可能なコマンド自体の属性が追加または変更になった場合に、当該コマンドに対する属性を追加または変更できるようにした。これにより、コマンドテンプレートテーブル43は、コマンド自体の属性が追加等になった場合であっても、その都度該追加等に応じて変更できることになる。このため、ネットワーク管理装置2は、ネットワーク機器の種類が追加されたり、ファームウェアがアップグレードされたりしても、柔軟に対応できるロールバックコマンド生成処理を実現できる。
また、実施例2によれば、ロールバック動作判定テーブル44は、ネットワークの設定を定めるコマンドが有する属性が追加または変更になった場合に、追加又は変更になった属性に対応させてロールバックコマンドパターンを記憶するようにした。これにより、ロールバック動作判定テーブル44は、コマンド自体の属性が追加等になった場合であっても、その都度該追加等に応じて変更できることになる。このため、ロールバック動作判定テーブル44は、ネットワーク機器の種類が追加されたり、ファームウェアがアップグレードされたりしても、柔軟に対応できるロールバックコマンド生成処理を実現できる。
また、実施例2によれば、ネットワークの設定を定めるコマンドが有する属性とは、コマンドの上書きの可否、複数設定の有無、削除した場合の影響範囲のうち少なくともいずれか1つを含むようにした。これにより、ネットワーク管理装置2は、例えば属性に上書きの可否を含む場合、上書きが不可能なコマンドについて、該コマンドを取り消すコマンドを単純に上書き設定することによって、設定の失敗となることを回避できる。
[プログラム等]
なお、上記実施例2の設定後コマンド生成部33は、機器操作部22を介して取得したネットワーク機器の現在の環境設定情報から当該環境設定情報を形成する設定後コマンド列を生成するとして説明した。しかしながら、実施例2では、これに限定されるものではなく、設定後コマンド生成部33は、ネットワーク機器に設定されている最新の環境設定情報の内容が記憶された管理データテーブル41に基づいて、設定後コマンド列を生成するようにしても良い。
また、上記実施例2では、属性とは、「上書き属性」、「複数設定属性」及び「削除影響範囲属性」を対象とすると説明した。しかしながら、ロールバックコマンドを生成する際に制約条件となるコマンドが有する属性であれば、これに限定されるものではない。
また、上記実施例2では、ロールバック判定部36aは、差分コマンドの属性をコマンドテンプレートテーブル43から読み出し、読み出した属性に対応するロールバックコマンドパターンをロールバック動作判定テーブル44から取得する。ところが、設定後コマンド列に存在する差分コマンドが、ネットワーク管理装置2の管理外のコマンドであり、コマンドテンプレートテーブル43に記憶されていない場合も想定される。この場合であっても、ロールバック判定部36aは、このコマンドをロールバックコマンドにそのまま生成されるようなロールバックコマンドパターンを、ロールバック動作判定テーブル44から取得できるようにしても良い。この場合、ロールバック動作判定テーブル44に、ネットワーク機器設定区分44a「設定あり」、バックアップ設定区分44b「設定なし」、全属性「該当なし」、ロールバックコマンドパターン44f「6」(設定パターン)とするデータを追加するようにする。そうすると、ロールバック判定部36aは、管理外のコマンドに応じたロールバックコマンドパターンを取得できるので、判定結果設定コマンド生成部36bにロールバックコマンドパターンに応じたロールバックコマンドを生成させることができる。これにより、ネットワーク管理装置2は、ネットワーク管理装置2以外からネットワーク機器に設定されたコマンドであっても、ロールバックの際、無条件に削除してしまうことを防止できる。
また、図示したネットワーク管理装置2の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、ネットワーク管理装置2の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、設定前後コマンド差分抽出部35とロールバックコマンド生成部36とを1つの部として統合しても良い。一方、ロールバック判定部36aをコマンドの属性を取得する属性取得部と、属性に対応するロールバックコマンドパターンを取得するロールバックコマンドパターン取得部とに分散しても良い。また、記憶部23、操作部21または機器操作部22をネットワーク管理装置2の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図14を用いて、図2に示したネットワーク管理装置2と同様の機能を有するネットワーク管理プログラムを実行するコンピュータの一例を説明する。
図14は、ネットワーク管理プログラムを実行するコンピュータを示す図である。図14に示すように、コンピュータ1000は、RAM(Random Access Memory)1010と、キャッシュ1020と、HDD1030と、ROM(Read Only Memory)1040と、CPU(Central Processing Unit)1050、バス1060とを有する。RAM1010、キャッシュ1020、HDD1030、ROM1040、CPU1050は、バス1060によって接続されている。
ROM1040には、図2に示したネットワーク管理装置2と同様の機能を発揮するネットワーク管理プログラム1041が記憶されている。
そして、CPU1050は、これらのネットワーク管理プログラム1041を読み出して実行する。これにより、図14に示すように、ネットワーク管理プログラム1041は、ネットワーク管理プロセス1051になる。なお、ネットワーク管理プロセス1051は、図2に示したプロビジョニング実行部31、ロールバック制御部32、設定後コマンド生成部33、設定前コマンド生成部34、設定前後コマンド差分抽出部35及びロールバックコマンド生成部36に対応する。
また、HDD1030には、図14に示すようにネットワーク管理関連情報1031が設けられる。ネットワーク管理関連情報1031は、例えば、図2に示した管理データテーブル41、バックアップ管理データテーブル42、コマンドテンプレートテーブル43及びロールバック動作判定テーブル44に対応する。
なお、上述したプログラム1041については、必ずしもROM1040に記憶させなくても良い。例えば、コンピュータ1000に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラム1041を記憶させても良い。又は、コンピュータ1000の内外に備えられるハードディスクドライブ(HDD)などの「固定用の物理媒体」にプログラム1041を記憶させても良い。又は、公衆回線、インターネット、LAN、WANなどを介してコンピュータ1000に接続される「他のコンピュータ(又はサーバ)」にプログラム1041を記憶させても良い。そして、コンピュータ1000は、上述したフレキシブルディスクなどからプログラムを読み出して実行するようにしても良い。
以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。
(付記1)ネットワークの設定を定めるコマンドが有する属性に対応させてロールバックの動作方法を示す動作種別を記憶するロールバック動作種別記憶部と、
前記コマンドによって設定された設定情報を以前の設定情報に戻す場合に、現在の設定情報を形成するコマンドと以前の設定情報を形成するコマンドの差分を抽出するコマンド差分抽出部と、
前記コマンド差分抽出部によって抽出されたコマンドの属性に対応する動作種別を前記ロールバック動作種別記憶部から取得し、該取得された動作種別に応じた、ロールバック動作を規定するロールバックコマンドを生成するロールバックコマンド生成部と
を備えたことを特徴とするネットワーク管理装置。
(付記2)前記設定情報に設定可能なコマンド毎に各コマンドが有する属性を記憶するコマンドテンプレート記憶部をさらに備え、
前記ロールバックコマンド生成部は、
前記コマンド差分抽出部によって抽出された差分のコマンドに関し、当該コマンドに対する属性を前記コマンドテンプレート記憶部から取得し、該取得された属性及び当該コマンドが形成された設定情報の区別に対応する動作種別を前記ロールバック動作種別記憶部からコマンド毎に取得し、コマンド毎の動作種別に基づいて、前記ロールバックコマンドを生成することを特徴とする付記1に記載のネットワーク管理装置。
(付記3)前記コマンドテンプレート記憶部は、
前記設定情報に設定可能なコマンド自体の前記属性が追加または変更になった場合、当該コマンドに対する属性を追加または変更させることを特徴とする付記2に記載のネットワーク管理装置。
(付記4)前記ロールバック動作種別記憶部は、
ネットワークの設定を定めるコマンドが有する属性が追加または変更になった場合、追加または変更になった属性に対応させて動作種別を記憶することを特徴とする付記1から付記3のいずれか1つに記載のネットワーク管理装置。
(付記5)前記属性は、コマンドの上書きの可否、複数設定の有無、削除した場合の影響範囲のうち少なくともいずれか1つを含むことを特徴とする付記1から付記4のいずれか1つに記載のネットワーク管理装置。
(付記6)ネットワーク管理装置がネットワークを管理するネットワーク管理方法であって、
ネットワークの設定を定めるコマンドが有する属性に対応させてロールバックの動作方法を示す動作種別を記憶する記憶部を有する前記ネットワーク管理装置が、
前記コマンドによって設定された設定情報を以前の設定情報に戻す場合に、現在の設定情報を形成するコマンドと以前の設定情報を形成するコマンドの差分を抽出するコマンド差分抽出工程と、
前記コマンド差分抽出工程によって抽出されたコマンドの属性に対応する動作種別を前記記憶部から取得し、該取得された動作種別に応じた、ロールバック動作を規定するロールバックコマンドを生成するロールバックコマンド生成工程と
を実行することを特徴とするネットワーク管理方法。
(付記7)コンピュータが、ネットワークの設定を定めるコマンドが有する属性に対応させてロールバックの動作方法を示す動作種別を記憶する記憶部を有し、
前記コマンドによって設定された設定情報を以前の設定情報に戻す場合に、現在の設定情報を形成するコマンドと以前の設定情報を形成するコマンドの差分を抽出するコマンド差分抽出手順と、
前記コマンド差分抽出手順によって抽出されたコマンドの属性に対応する動作種別を前記記憶部から取得し、該取得された動作種別に応じた、ロールバック動作を規定するロールバックコマンドを生成するロールバックコマンド生成手順と
を前記コンピュータに実行させることを特徴とするネットワーク管理プログラム。