以下に添付図面を参照して本願に係る制御プログラム、制御方法及び制御装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
図1は、実施例1に係るネットワーク管理システムの構成例を示す図である。図1に示すネットワーク管理システム1は、企業システム等の監視対象システム3に構築されるネットワークNWに関する設定をGUI環境で実現するネットワーク管理サービスを提供するものである。このネットワーク管理サービスの一環として、ネットワーク管理システム1は、ネットワークデバイスの実機が配備された後に行われるデバイス登録との間で矛盾が発生するのを抑制するデバイス登録の制御処理により、実機配備前のデバイス登録を実現する。
図1に示すように、ネットワーク管理システム1には、監視対象システム3と、ネットワーク管理装置10と、クライアント端末50とが含まれる。この監視対象システム3には、ネットワークデバイス30A〜30Cが収容される。以下では、ネットワークデバイス30A〜30Cのことを総称する場合に「ネットワークデバイス30」と記載する場合がある。
図1には、あくまで一例として、監視対象システム3に3つのネットワークデバイス30が収容される例を示したが、任意の数のネットワークデバイスが収容されることとしてもよい。さらに、図1には、ネットワークNWに接続される装置として、ネットワーク管理装置10及びネットワークデバイス30を示したが、これ以外の他の装置がネットワークNWに接続されることを妨げず、また、ネットワークデバイス30にも他の装置が接続されることとしてもかまわない。
ネットワーク管理装置10は、上記のネットワーク管理サービスを提供するコンピュータである。このネットワーク管理装置10は、監視装置の一例である。
一実施形態として、ネットワーク管理装置10は、上記のネットワーク管理サービスを実現するパッケージソフトウェアやオンラインソフトウェアを所望のコンピュータにインストールさせることによってSDN(Software-Defined Networking)コントローラとして実装できる。このネットワーク管理装置10は、ネットワークNWの一例として、IP−VPN(Internet Protocol Virtual Private Network)や広域イーサネット(登録商標)などのキャリアイーサネットの監視、設定や制御などを含む管理を実行することができる。このようにネットワーク管理装置10により管理されるネットワークNWは、物理ネットワークに限定されず、SDNやNFV(Network Function Virtualization)などの技術により仮想化された仮想ネットワークであってもよい。
ネットワークデバイス30は、監視対象システム3のネットワークNWを形成する装置である。このネットワークデバイス30には、一例として、ルータやスイッチなどのデータ転送装置を始め、ファイアーウォール、ロードバランサなどを採用することができる。
クライアント端末50は、上記のネットワーク管理サービスの提供を受けるコンピュータである。このクライアント端末50は、一例として、ネットワークNWを管理するネットワーク管理者等の関係者により使用される。ここで、上記のネットワーク管理サービスの提供により、クライアント端末50は、必ずしもtelnetやSSH(Secure SHell)の動作環境を有さずともかまわない。このため、クライアント端末50には、汎用のブラウザの動作環境を有する任意のコンピュータを採用することができる。
[ネットワーク管理装置10の構成]
図2は、実施例1に係るネットワーク管理装置10の機能的構成を示すブロック図である。図2に示すように、ネットワーク管理装置10は、通信I/F(interface)部11と、記憶部13と、制御部15とを有する。なお、ネットワーク管理装置10は、図2に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
通信I/F部11は、他の装置、例えばネットワークデバイス30やクライアント端末50との間で通信制御を行うインタフェースである。
一実施形態として、通信I/F部11は、LAN(Local Area Network)カードなどのネットワークインタフェースカードを採用できる。例えば、通信I/F部11は、各種のコマンドをネットワークデバイス30へ送信したり、ネットワークデバイス30からネットワークデバイス30が記憶するConfig情報やMIB(Management Information Base)の全部またはその一部を受信したりする。また、通信I/F部11は、クライアント端末50からネットワークデバイス30の登録やネットワークの設定に対する操作入力などを受け付けたり、ネットワークNWの接続形態が模式化されたトポロジマップを含むウィンドウなどをクライアント端末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を記憶する。このトポロジ情報13a以外にも、他の電子データを併せて記憶することもできる。例えば、記憶部13には、ネットワーク管理者等のユーザの権限を管理するために、ユーザごとに設定操作や閲覧を許可するネットワークデバイス30またはネットワークデバイス30のグループが規定されたユーザ権限情報なども記憶することができる。
トポロジ情報13aは、ネットワークNWの接続形状に関する情報である。このトポロジ情報13aには、デバイス情報13a1、ポート情報13a2、リンク情報13a3及び登録ステータス情報13a4などが含まれる。
このうち、デバイス情報13a1には、ネットワークデバイス30に関する情報が定義される。例えば、デバイス情報13a1には、デバイスID、デバイス名、IPアドレス及び表示位置などの項目が対応付けられたデータを採用できる。ここで言う「デバイスID」とは、ネットワークデバイス30を識別する識別情報を指す。また、「デバイス名」とは、ネットワークデバイス30に定義された名称を指す。また、「IPアドレス」は、言葉通りの意味であるが、ここでは、デバイスIDを持つネットワークデバイス30に割り当てられたIPアドレスを指し、例えば、ネットワークNWの構築時にSE等により設定される。また、「表示位置」とは、トポロジマップ上で表示される位置を指し、例えば、ネットワークデバイス30が模式化されたアイコンの基準点、例えば重心や頂点がトポロジマップ上で配置される座標が登録される。なお、ここでは、ネットワークデバイス30を定義する項目の一例として、デバイス名やIPアドレスを例示したが、この他にもネットワークデバイス30へのSSH接続のログインに用いるユーザ名、パスワードや管理者パスワードなどの他の項目をデバイス情報13a1にさらに含めることもできる。
また、ポート情報13a2には、ネットワークデバイス30が有するポートに関する情報が定義される。例えば、ポート情報13a2には、デバイスID、ポートID、表示番号、インタフェース名、untag VLAN(Virtual LAN) ID及びなどの項目が対応付けられたデータを採用できる。ここで言う「デバイスID」は、デバイス情報13a1に含まれるデバイスIDと同様に、ネットワークデバイス30の識別情報を指すが、ここでは、ポートIDで識別されるポートを有するネットワークデバイス30のことを意味する。また、「ポートID」とは、ネットワークデバイス30が有するポートを識別する識別情報を指す。また、「表示番号」とは、トポロジマップ上でポートが展開表示されるときの番号を指す。また、「インタフェース名」とは、ポートに定義されたインタフェースの名称を指す。また、「untag VLAN ID」とは、アクセスポートに設定されるVLAN IDを指す。すなわち、スタティックVLAN、いわゆるポートベースVLANが設定された場合、アクセスポートに設定されるVLAN IDが記述される。また、「tag VLAN ID」とは、トランクポートに設定されるVLAN IDを指す。すなわち、タグVLANがポートに設定された場合、トランクポートに設定される1または複数のVLAN IDが記述される。
また、リンク情報13a3は、ネットワークデバイス30のポート間を接続するリンクに関する情報が定義される。例えば、リンク情報13a3には、リンクID、デバイスID1、ポートID1、デバイスID2及びポートID2などの項目が対応付けられたデータを採用できる。ここで言う「リンクID」とは、リンクを識別する識別情報を指す。また、「ポートID1」及び「ポートID2」は、ポート情報13a2に含まれるポートIDと同様に、ポートの識別情報を指すが、ここでは、リンクIDで識別されるリンクを接続する2つのポートの識別情報を意味する。さらに、「デバイスID1」及び「デバイスID2」は、デバイス情報13a1に含まれるデバイスIDと同様に、ネットワークデバイス30の識別情報を指すが、ここでは、ポートID1で識別されるポートを有するネットワークデバイス30の識別情報と、ポートID2で識別されるポートを有するネットワークデバイス30の識別情報のことを意味する。このように、リンク情報13a3には、デバイス情報13bに含まれるポートの中でも、結線済みのポートまたはリンクアップ後のポートが登録される。
登録ステータス情報13a4は、ネットワークデバイス30の登録ステータスに関する情報が定義される。
ここで、本実施例では、ネットワークデバイス30の実機配備前においても、ネットワークデバイス30に関するデータ登録を認める。以下では、ネットワークデバイス30に関するデータ登録のことを「デバイス登録」と記載する場合がある。
このように実機配備前のデバイス登録を認める場合、デバイス登録は、実機配備前のタイミングと、実機配備後に実機からtelnetやSSHなどのコマンドを用いてインタフェース、VLANや障害などの各種の情報が収集されるタイミングとの2つのタイミングで実施される。このうち、前者のタイミングでデバイス登録が行われたデータのことを第1のステータスと記載し、後者のタイミングでデバイス登録が行われたデータのことを第2のステータスと記載する場合がある。さらに、以下では、実機配備前のデバイス登録のことを「仮登録」と記載し、実機配備後のデバイス登録のことを「本登録」と記載する場合がある。
例えば、登録ステータス情報13a4には、デバイスID及び登録ステータスなどの項目が対応付けられたデータを採用できる。ここで言う「登録ステータス」とは、ネットワークデバイス30の登録状態を指し、例えば、登録ステータスのフィールドには、第1のステータスまたは第2のステータスのいずれであるかを識別できる情報、例えばフラグなどの2値情報が設定される。このようにデバイスIDに登録ステータスを対応付けることにより、第1のステータスが設定されたデバイスIDを含むデバイス情報13a1、ポート情報13a2及びリンク情報13a3のエントリは、実機配備前に登録されたデータ、すなわち仮登録のデータと識別できる一方で、第2のステータスが設定されたデバイスIDを含むデバイス情報13a1、ポート情報13a2及びリンク情報13a3のエントリは、実機配備後に登録されたデータ、すなわち本登録のデータと識別できる。なお、以下では、第1のステータスが設定されたデバイスIDを持つネットワークデバイス30のことを「仮登録デバイス」と記載する場合がある。
制御部15は、ネットワーク管理装置10の全体制御を行う処理部である。
一実施形態として、制御部15は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などのハードウェアプロセッサにより実装することができる。ここでは、プロセッサの一例として、CPUやMPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより実装することができる。この他、制御部15は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることとしてもかまわない。
制御部15は、図示しない主記憶装置として実装されるDRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などのRAMのワークエリア上に、上記のネットワーク管理サービスの機能を実現する制御プログラムを展開することにより、下記の処理部を仮想的に実現する。
制御部15は、図2に示すように、表示制御部15aと、第1の登録部15bと、収集部15cと、判定部15dと、第2の登録部15eと、出力部15fとを有する。
表示制御部15aは、クライアント端末50に対する表示制御を行う処理部である。
一側面として、表示制御部15aは、記憶部13に記憶されたトポロジ情報13aを参照して、ネットワークNWに含まれるデバイス間の接続形状が模式化されたトポロジマップを含むウィンドウをクライアント端末50に表示させる。例えば、表示制御部15aは、上記のトポロジ情報13aのうちデバイス情報13a1に含まれるデバイスIDごとに、当該デバイスIDに対応付けられた表示位置にしたがってネットワークデバイス30が模式化されたデバイスアイコンを配置する。このとき、表示制御部15aは、登録ステータス情報13a4に含まれる登録ステータスが第1のステータスであるデバイスアイコンの表示形態と、第2のステータスであるデバイスアイコンの表示形態とを区別する。例えば、第1のステータスであるデバイスアイコンには、仮登録であることを示すアイコン、例えばスパナマークが付与される。さらに、表示制御部15aは、上記のトポロジ情報13aのうちポート情報13a2にしたがってデバイスアイコンに対応するネットワークデバイス30が有する各ポートが模式化されたシンボルをさらに展開して表示する。さらに、表示制御部15aは、上記のトポロジ情報13aのうちリンク情報13a3にポートID1及びポートID2の登録があるネットワークデバイス30のポートのシンボル同士を接続するリンクの線画をさらに描画する。このようにして生成されたトポロジマップのウィンドウがクライアント端末50に表示される。
第1の登録部15bは、実機配備前のデバイス登録を行う処理部である。
一実施形態として、第1の登録部15bは、トポロジマップのウィンドウ上でトポロジマップの編集を行うタブやメニューなどのGUIコンポーネントが操作された場合、トポロジマップの編集を行うことができる。このトポロジマップの編集時には、デバイス登録を行うウィンドウを呼び出すことができる。例えば、デバイス登録のウィンドウ上では、スイッチやルータなどのネットワークデバイスの種類の指定やメーカの機種の指定を受け付けることにより、デバイスIDやデバイス名を自動的に採番することができる。この他、第1の登録部15bは、ネットワークデバイス30の基本情報として、ネットワークデバイス30に割り当てられるIPアドレスやポートのインタフェース名の設定を受け付ける。このとき、配備予定の実機が有する全てのポートのインタフェース名を必ずしも設定せずともかまわない。すなわち、トポロジマップ上で結線の描画編集を行うポートのインタフェース名に絞って設定することもできる。
これらの入力を受け付けた上で、仮登録の意思を確認するGUIコンポーネント、例えば仮登録ボタンに対する操作が行われた場合、第1の登録部15bは、デバイスに関する仮登録を行う。例えば、第1の登録部15bは、デバイスIDやデバイス名の自動採番を行った上でデバイス情報13a1に新規のエントリを生成したり、設定が行われたインタフェース名にしたがって各インタフェースに対応するポートIDや表示番号の自動採番を行った上でポート情報13a2に新規のエントリを生成したり、登録ステータス情報13a4に先に採番されたデバイスIDに第1のステータスが対応付けられた新規のエントリを生成したりする。このように仮登録が行われた後には、仮登録であることを示すアイコンが付加されたデバイスアイコンがトポロジマップ上に表示される。さらに、デバイスアイコンには、仮登録時に設定されたインタフェース名に対応するポートのシンボルが展開表示される。このデバイスアイコンは、ドラッグ&ドロップや座標指定により、任意の位置に配置することができる。
このようにトポロジマップ上にデバイスアイコンが表示されると、仮登録のデバイスアイコンであっても結線の描画編集を行うことができる。ここで、仮登録のデバイスアイコンに展開表示されたポートのシンボルと、他のデバイスアイコンに展開表示されたポートのシンボルとを接続する結線の描画操作が行われた場合、第1の登録部15bは、リンクに関する仮登録を行う。例えば、第1の登録部15bは、リンクIDを自動採番した上で、上記の結線が接続する2つのポートからデバイスID1及びポートID1とデバイスID2及びポートID2を特定してリンク情報13a3に新規のエントリを生成する。この他、仮登録のデバイスアイコンから各種のVLANや障害情報などのメニューを呼び出すことにより、VLAN設定や障害情報の仮登録を行うこともできる。このようにして仮登録が行われたVLAN設定や障害情報もトポロジマップ上で表示することができる。
収集部15cは、ネットワークデバイス30から各種の情報を収集する処理部である。
一側面として、収集部15cは、ネットワークデバイス30の仮登録を本登録へ移行するリクエストを受け付けた場合、収集部15cは、登録ステータス情報13a4に含まれるデバイスIDのうち第1のステータスに紐付けられたデバイスIDごとに、次のような処理を実行する。すなわち、収集部15cは、デバイス情報13a1に含まれるIPアドレスのうち登録ステータスが第1のステータスである仮登録デバイスのデバイスIDに対応するIPアドレスを始め、SSH接続のログインに用いるユーザ名およびパスワード、あるいは管理者でログインを行う場合、ユーザ名、パスワード及び管理者パスワードを参照する。続いて、収集部15cは、当該IPアドレスが割り当てられた仮登録デバイスにSSH接続を行ってネットワークデバイス30にログインする。その上で、収集部15cは、show running-configやshow interfaces status等のコマンドを送信する。これにより、仮登録デバイスに対応するネットワークデバイス30の実機から、ポートのインタフェース名やリンクアップ状態などのインタフェース情報をコマンドの戻り値として収集することができる。このように収集されたポートのインタフェース名を用いて、後述の判定部15dにより仮登録時のインタフェース名に誤りや漏れなどの不備が存在するか否かが判定される。
このように仮登録から本登録へ移行する場合、インタフェース情報以外にも、他の情報をさらに収集することができる。すなわち、仮登録時には、必ずしもネットワークデバイス30の配備後に実機から収集される情報ほどに詳細な情報が登録される訳ではない。例えば、仮登録時に結線が行われる予定がないポートのインタフェース名は必ずしも登録されるとは限らず、また、ポートに設定される各種のVLAN設定等も登録されるとは限らない。このことから、仮登録から本登録への移行時には、収集部15cは、トポロジやVLAN設定に関する情報を収集する。
より具体的には、トポロジに関する情報が収集される場合、収集部15cは、登録ステータス情報13a4に含まれるデバイスIDのうち第1のステータスに紐付けられたデバイスIDごとに、次のような処理を実行する。すなわち、収集部15cは、デバイス情報13a1に含まれるIPアドレスのうち第1のステータスを持つデバイスIDに対応するIPアドレスを参照する。続いて、収集部15cは、当該IPアドレスが割り当てられたネットワークデバイス30にSSH接続を行ってネットワークデバイス30にログインする。その上で、収集部15cは、show lldp neighbors等のコマンドをネットワークデバイス30へ送信する。これにより、コマンドの送信先のネットワークデバイス30と、コマンドの送信先のネットワークデバイス30が隣接するネットワークデバイス30との間でLLDP(Link Layer Discovery Protocol)を介してアドバタイズされる情報、例えばリンクを形成する2つのポートのインタフェース情報などをコマンドの戻り値として取得することができる。その上で、収集部15cは、コマンドを用いて収集されたポートの組合せの中に、リンク情報13a3のエントリに存在しないポートの組合せが存在する場合、リンク情報13a3に新規のエントリを作成する。
また、ポートに対する各種のVLANの設定が取得される場合、収集部15cは、show vlanやshow interfaces trunk等のコマンドをネットワークNW上のネットワークデバイス30へ送信する。これにより、ポートごとに当該ポートに対する各種のVLANの設定をコマンドの戻り値として取得することができる。例えば、ポートの動作モードの他、各種のVLANの設定値が取得される。すなわち、動作モードが「アクセス」である場合、アクセスポートに設定されたポートベースVLANのVLAN IDが取得される。また、動作モードが「トランク」である場合、トランクポートに設定されたタグVLANのVLAN IDが取得される。これらのコマンドを用いて収集された情報にしたがって、収集部15cは、トポロジ情報13aのポート情報13a2に含まれるVLAN設定に関するフィールド、すなわちuntag VLAN IDやtag VLAN IDなどに設定値を新規登録したり、更新したりする。
これらトポロジやVLAN設定の収集は、仮登録から本登録への移行時に限らず、本登録後にも、次のようなタイミングで、トポロジやVLAN設定に関する情報を収集することにより、記憶部13に記憶されたトポロジ情報13aを更新することができる。このような収集が実行されるタイミングの例として、前回に取得が実行されてからの時間が所定の周期、例えば5秒間を経過する場合の他、クライアント端末50を介して指示入力が行われた場合、図示しない内部メモリに保存されるシステム時刻が所定の定期時刻、例えば6時、12時、18時などの時刻に到達する場合などが挙げられる。
判定部15dは、仮登録時のポートのインタフェース名に不備が存在するか否かを判定する処理部である。
一実施形態として、判定部15dは、ポート情報13a2に含まれるポートのインタフェース名のうち、収集部15cによる収集に用いられたデバイスIDに対応付けられた仮登録のインタフェース名を取得する。その上で、判定部15dは、ポート情報13a2から取得された仮登録のインタフェース名と、収集部15cによりネットワークデバイス30の実機から収集されたポートのインタフェース名とを比較する。例えば、判定部15dは、仮登録のインタフェース名ごとに、実機から収集されたポートのインタフェース名の中に当該仮登録のインタフェース名の文字列と完全一致するインタフェース名が存在するか否かを判定する。このとき、実機から収集されたポートのインタフェース名の中に、仮登録のインタフェース名の文字列と完全一致するインタフェース名が仮登録のインタフェース名ごとに存在する場合、全ての仮登録のインタフェース名に誤りがないことが確認できる。一方、いずれかの仮登録のインタフェース名の文字列が実機から収集されたポートのインタフェース名のいずれとも完全一致しない場合、実機から収集されたポートのインタフェース名の中に、文字列が完全一致するインタフェース名が存在しない仮登録のインタフェース名に誤りがあることがわかる。
続いて、判定部15dは、全ての仮登録のインタフェース名に誤りがない場合、仮登録のインタフェース名の個数と、実機から収集されたポートのインタフェース名の個数とが同数であるか否かをさらに判定する。このとき、両者が同数である場合、仮登録のインタフェース名に漏れがないことを確認できる。一方、仮登録のインタフェース名の個数が実機から収集されたポートのインタフェース名の個数よりも少ない場合、仮登録のインタフェース名に漏れがあることを確認できる。
第2の登録部15eは、実機配備後のデバイス登録を行う処理部である。
一実施形態として、第2の登録部15eは、仮登録のインタフェース名の個数が実機から収集されたポートのインタフェース名の個数よりも少ない場合、実機から収集されたポートのインタフェース名のうち仮登録のインタフェース名に存在しないインタフェース名を補充用のインタフェース名としてポート情報13a2に追加登録する。その上で、第2の登録部15eは、登録ステータス情報13a4に含まれるデバイスIDのうち、インタフェース名に誤り及び漏れの不備がないことが確認されたデバイスIDに対応する登録ステータスを第1のステータスから第2のステータスに更新する。このとき、仮登録時に設定されたインタフェース名に誤りはなくとも、ポート情報13a2へのインタフェース名の登録順序が実機でポートが配置されるインタフェース名の並び順とは一致しない場合がある。このような場合、第2の登録部15eは、仮登録時にポート情報13a2に設定されたインタフェース名の登録順を、実機でポートが配置されるインタフェース名の並び順に並べ替える。この登録ステータスの更新により、当該デバイスIDを有するデバイス情報13a1、ポート情報13a2及びリンク情報13a3のエントリが仮登録から本登録へ移行することになる。一方、第2の登録部15eは、仮登録のインタフェース名の個数と、実機から収集されたポートのインタフェース名の個数とが同数である場合、上記の補充用のインタフェース名の登録をスキップして、インタフェース名に不備がないことが確認されたデバイスIDに対応する登録ステータスを第1のステータスから第2のステータスに更新する。
なお、ここでは、インタフェース名の登録に焦点を絞って説明したが、上記の補充用のインタフェース名の登録や上記の登録ステータスの更新が行われる前後または同時のタイミングで、収集部15cにより実機から収集された各ポートのVLAN設定や障害情報をポート情報13a2に登録することもできる。
出力部15fは、エラーを出力する処理部である。
一実施形態として、出力部15fは、仮登録のインタフェース名のいずれかに誤りがある場合、誤りがあるインタフェース名をエラーとして出力する。例えば、出力部15fは、誤りがあるインタフェース名と共に、そのインタフェースが存在しない旨のメッセージの表示および/または音声出力を行う。
[具体例1]
図3は、仮登録から本登録への移行例を示す図である。図3には、デバイスID「Node−1」の仮登録を本登録へ移行する例が示されている。図3の符号300は、デバイスID「Node−1」に関するポート情報13a2のエントリの一覧を示す。また、図3の符号310は、デバイスID「Node−1」の実機から収集されたインタフェース名の一覧を示す。また、図3の符号320は、仮登録から本登録へ移行されたときのポート情報13a2のエントリの一覧を示す。
図3に示すように、デバイスID「Node−1」に関するポート情報13a2のエントリの一覧300に含まれる仮登録のインタフェース名と、デバイスID「Node−1」の実機から収集されたインタフェース名の一覧310とが判定部15dにより比較される。この場合、デバイスID「Node−1」の実機から収集されたインタフェース名の一覧310の中に、仮登録のインタフェース名の文字列と完全一致するインタフェース名が仮登録のインタフェース名ごとに存在する。すなわち、仮登録のインタフェース名「ether1」と完全一致するインタフェース名が一覧310の中に存在し、仮登録のインタフェース名「ether2」と完全一致するインタフェース名が一覧310の中に存在し、かつ仮登録のインタフェース名「ether3」と完全一致するインタフェース名も一覧310の中に存在する。このため、仮登録のインタフェース名に誤りがないことが確認できる。
一方、図3に示す例では、仮登録のインタフェース名の個数「3」<デバイスID「Node−1」の実機から収集されたインタフェース名の個数「6」であるので、仮登録のインタフェース名に3つの漏れがあることがわかる。このため、ポート情報13a2のエントリの一覧320に示す通り、デバイスID「Node−1」の実機から収集されたインタフェース名のうち仮登録のインタフェース名に存在しないインタフェース名「ether4」〜「ether6」が補充用のインタフェース名としてポート情報13a2に追加登録される。
[具体例2]
図4は、仮登録から本登録への移行例を示す図である。図4には、デバイスID「Node−1」の仮登録を本登録へ移行する例が示されている。図4の符号400は、デバイスID「Node−1」に関するポート情報13a2のエントリの一覧を示す。また、図4の符号410は、デバイスID「Node−1」の実機から収集されたインタフェース名の一覧を示す。また、図4の符号420は、仮登録から本登録へ移行されたときのポート情報13a2のエントリの一覧を示す。
図4に示すように、デバイスID「Node−1」に関するポート情報13a2のエントリの一覧400に含まれる仮登録のインタフェース名と、デバイスID「Node−1」の実機から収集されたインタフェース名の一覧410とが判定部15dにより比較される。この場合、デバイスID「Node−1」の実機から収集されたインタフェース名の一覧410の中に、仮登録のインタフェース名の文字列と完全一致するインタフェース名が仮登録のインタフェース名ごとに存在する。すなわち、仮登録のインタフェース名「ether3」と完全一致するインタフェース名が一覧310の中に存在し、仮登録のインタフェース名「ether2」と完全一致するインタフェース名が一覧310の中に存在し、かつ仮登録のインタフェース名「ether6」と完全一致するインタフェース名も一覧410の中に存在する。このため、仮登録のインタフェース名に誤りがないことが確認できる。
一方、図4に示す例では、仮登録のインタフェース名の個数「3」<デバイスID「Node−1」の実機から収集されたインタフェース名の個数「6」であるので、仮登録のインタフェース名に3つの漏れがあることがわかる。このため、ポート情報13a2のエントリの一覧420に示す通り、デバイスID「Node−1」の実機から収集されたインタフェース名のうち仮登録のインタフェース名に存在しないインタフェース名「ether1」、「ether4」及び「ether5」が補充用のインタフェース名としてポート情報13a2に追加登録される。
さらに、図4に示す例では、ポート情報13a2へのインタフェース名の登録順序が実機でポートが配置されるインタフェース名の並び順とは一致しない。すなわち、ポート情報13a2では、インタフェース名が「ether3」、「ether2」、「ether6」の順に登録されている。一方、実機でポートが配置されるインタフェース名の並び順は、「ether1」、「ether2」、「ether3」、「ether4」、「ether5」、「ether6」の順である。このようにポート情報13a2へのインタフェース名の登録順序が実機でポートが配置されるインタフェース名の並び順と一致しない場合、ポート情報13a2のエントリの一覧420に示す通り、仮登録時にポート情報13a2に設定されたインタフェース名の登録順は、実機でポートが配置されるインタフェース名の並び順に並び替えられる。
例えば、インタフェース名が補充される前に並び替えを行う場合、ポート情報13a2のエントリがインタフェース名「ether3」、インタフェース名「ether2」、インタフェース名「ether6」の登録順からインタフェース名「ether2」、インタフェース名「ether3」、インタフェース名「ether6」の登録順へ並び替えられる。また、インタフェース名が補充された後に並び替えを行う場合、ポート情報13a2のエントリがインタフェース名「ether1」、「ether3」、インタフェース名「ether2」、インタフェース名「ether4」、インタフェース名「ether5」、インタフェース名「ether6」の登録順からインタフェース名「ether1」、インタフェース名「ether2」、インタフェース名「ether3」、インタフェース名「ether4」、インタフェース名「ether5」、インタフェース名「ether6」の登録順へ並び替えられる。
[具体例3]
図5は、仮登録から本登録への移行例を示す図である。図5には、デバイスID「Node−1」の仮登録を本登録へ移行する例が示されている。図5の符号500は、デバイスID「Node−1」に関するポート情報13a2のエントリの一覧を示す。また、図5の符号510は、デバイスID「Node−1」の実機から収集されたインタフェース名の一覧を示す。また、図5の符号520は、エラーの出力例を示す。
図5に示すように、デバイスID「Node−1」に関するポート情報13a2のエントリの一覧500に含まれる仮登録のインタフェース名と、デバイスID「Node−1」の実機から収集されたインタフェース名の一覧510とが判定部15dにより比較される。この場合、仮登録時に設定されたインタフェース名のうちインタフェース名「ether3」及び「ether6」には、デバイスID「Node−1」の実機から収集されたインタフェース名の一覧510の中に文字列が一致するインタフェース名が存在する。一方、仮登録時に設定されたインタフェース名「ether2a」には、デバイスID「Node−1」の実機から収集されたインタフェース名の一覧510の中に文字列が一致するインタフェース名が1つも存在しない。このため、仮登録のインタフェース名「ether2a」に誤りがあることが判明する。
この場合、仮登録のインタフェース名「ether2a」に該当するインタフェースが存在しない旨のエラーメッセージがクライアント端末50に出力される。さらに、図5に示すエラーの出力例520の通り、ポート情報13a2のうちインタフェース名に誤りがあるエントリの表示形態とインタフェース名に誤りがないエントリの表示形態とを区別する。例えば、ポート情報13a2のうちインタフェース名に誤りがあるエントリのフォントや塗り潰しなどが強調表示される。このとき、デバイスID「Node−1」の実機から収集されたインタフェース名の一覧510を合わせて表示することもできる。このようなエラーの出力の結果、誤りのないインタフェース名の訂正入力をネットワーク管理者等に促すことができる。
[具体例1〜具体例3の効果の一側面]
このように、誤りのないインタフェース名が入力された場合に絞って仮登録から本登録への移行を認める。さらに、仮登録のインタフェース名に漏れがある場合、漏れがあるインタフェース名を補充して本登録を行うことができる。さらに、仮登録時のインタフェース名の登録順が実機でポートが配置される並び順と異なる場合、ポートが配置される並び順に合わせてインタフェース名をソートして本登録を行うことができる。これらのことから、仮登録を認める場合でも仮登録および本登録の間でデバイス登録の内容に矛盾が発生するのを抑制できる結果、トポロジマップの表示及びネットワークの実体の間にも矛盾が生じるのも抑制できる。したがって、実機配備前のデバイス登録を実現できる。
[処理の流れ]
図6は、実施例1に係る制御処理の手順を示すフローチャートである。この処理は、あくまで一例として、ネットワークデバイス30の仮登録を本登録へ移行するリクエストを受け付けることを条件に起動する。なお、図6に示すステップS102〜ステップS111の処理は、登録ステータスが第1のステータスであるデバイスIDごとに繰り返し実行される。
図6に示すように、ネットワークデバイス30の仮登録を本登録へ移行するリクエストを受け付けると(ステップS101)、収集部15cは、次のような処理を実行する。すなわち、収集部15cは、デバイス情報13a1に含まれるIPアドレスのうち登録ステータスが第1のステータスである仮登録デバイスのデバイスIDに対応するIPアドレスを始め、SSH接続のログインに用いるユーザ名およびパスワードを参照する(ステップS102)。
続いて、収集部15cは、ステップS102で参照されたIPアドレスが割り当てられた仮登録デバイスにSSH接続を行ってネットワークデバイス30にログインする(ステップS103)。その上で、収集部15cは、show running-configやshow interfaces status等のコマンドを送信する。このようなコマンドの送信を通じて、収集部15cは、仮登録デバイスに対応するネットワークデバイス30の実機から、ポートのインタフェース名やリンクアップ状態などのインタフェース情報をコマンドの戻り値として収集する(ステップS104)。
その上で、判定部15dは、ポート情報13a2に含まれる仮登録デバイスのインタフェース名と、ステップS104でネットワークデバイス30の実機から収集されたポートのインタフェース名とを比較する(ステップS105)。
このとき、全ての仮登録のインタフェース名に誤りがない場合(ステップS106No)、判定部15dは、仮登録のインタフェース名の個数と、実機から収集されたポートのインタフェース名の個数とが同数であるか否かをさらに判定する(ステップS107)。
ここで、仮登録のインタフェース名の個数が実機から収集されたポートのインタフェース名の個数よりも少ない場合(ステップS107Yes)、仮登録のインタフェース名に漏れがあることを確認できる。この場合、第2の登録部15eは、実機から収集されたポートのインタフェース名のうち仮登録のインタフェース名に存在しないインタフェース名を補充用のインタフェース名としてポート情報13a2に追加登録する(ステップS108)。なお、両者が同数である場合(ステップS107No)、仮登録のインタフェース名に漏れがないことを確認できるので、ステップS108の処理はスキップされる。
その後、第2の登録部15eは、登録ステータス情報13a4に含まれるデバイスIDのうち、インタフェース名に誤り及び漏れの不備がないことが確認されたデバイスIDに対応する登録ステータスを第1のステータスから第2のステータスに更新する(ステップS109)。そして、第2の登録部15eは、仮登録から本登録への移行の結果、例えば移行OKのメッセージと共に本登録後のポート情報13a2のうち当該デバイスIDに関するエントリなどをクライアント端末50に表示し(ステップS110)、処理を終了する。
一方、仮登録のインタフェース名のいずれかに誤りがある場合(ステップS106Yes)、出力部15fは、誤りがあるインタフェース名をエラーとして出力し(ステップS111)、処理を終了する。
[効果の一側面]
上述してきたように、本実施例に係るネットワーク管理装置10は、実機配備前に仮登録されたインタフェース名が実機から収集したインタフェース名に全て含まれるか否かによりインタフェース名の登録状態を仮登録から本登録へ更新するか、エラー出力するかを制御する。このため、仮登録を認める場合でも仮登録および本登録の間でデバイス登録の内容に矛盾が発生するのを抑制できる結果、トポロジマップの表示及びネットワークの実体の間にも矛盾が生じるのも抑制できる。したがって、本実施例に係るネットワーク管理装置10によれば、実機配備前のデバイス登録を実現できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[リンクの判定]
上記の実施例1では、仮登録時に設定されたインタフェース名と、実機から収集されたインタフェース名との比較を行う場合を例示したが、この他にも、仮登録時に設定されたリンクと、実機から収集されたポート間の接続情報との比較により、仮登録時に設定されたリンクごとに当該リンクに誤りがないか否かを判定することもできる。
すなわち、第1の登録部15bは、ネットワークデバイス30のIPアドレスやインタフェース名の他にも、2つのポート間を接続する結線、いわゆるリンクの登録をさらに行うことができる。例えば、仮登録のデバイスアイコンに展開表示されたポートのシンボルと、他のデバイスアイコンに展開表示されたポートのシンボルとを接続する結線の描画操作が行われた場合、第1の登録部15bは、リンクに関する仮登録を行う。例えば、第1の登録部15bは、リンクIDを自動採番した上で、上記の結線が接続する2つのポートからデバイスID1及びポートID1とデバイスID2及びポートID2を特定してリンク情報13a3に新規のエントリを生成する。
このように仮登録が行われたリンクは、仮登録から本登録への移行を行う場合、実機から収集されたポート間のインタフェース情報との比較により、仮登録時に設定されたリンクに誤りがないか否かを判定することもできる。
例えば、収集部15cは、登録ステータスが第1のステータスである仮登録デバイスに対応するネットワークデバイス30にログインした上で、show cdp neighbors等のコマンドをネットワークデバイス30へ送信する。これにより、仮登録の状態にあるネットワークデバイス30と、そのネットワークデバイス30が隣接する他のネットワークデバイス30との間でLLDPを介してアドバタイズされる情報、例えばリンクを形成する2つのポートのインタフェース情報などをコマンドの戻り値として取得することができる。
その上で、判定部15dは、リンク情報13a3のエントリのうち、収集部15cによる収集が行われたデバイスIDが含まれるエントリを抽出する。そして、判定部15dは、リンク情報13a3から抽出されたエントリごとに、ポートIDの組合せに対応するインタフェース名の組合せ、すなわち仮登録時にリンクとして設定されたインタフェース名の組合せと一致するインタフェースの組合せが、収集部15cによりネットワークデバイス30の実機から収集されたインタフェース情報の中に含まれるか否かを判定する。
このとき、リンク情報13a3から抽出されたエントリが持つポートIDの組合せに対応するインタフェース名の組合せと一致するインタフェースの組合せが、実機から収集されたインタフェース情報の中に含まれない場合、仮登録時に設定されたリンクに誤りがあることが判明する。
このように誤りがある場合、下記2つのケースに分類できる。すなわち、仮登録時にリンクとして設定されたインタフェース名の組合せのうち一方のインタフェース名だけが実機から収集されたインタフェース情報の中に含まれる場合、実機配備時に行われた結線のうち一方のポートに挿し間違いがあることが判明する。また、仮登録時にリンクとして設定されたインタフェース名の組合せに含まれる2つのインタフェース名の両方が実機から収集されたインタフェース情報の中に含まれない場合、実機配備前に仮登録されたリンクの結線が行われていないことが判明する。これらのケースでは、出力部15fは、ポートの挿し間違いや未結線を通知することができる。
一方、仮登録時にリンクとして設定されたインタフェース名の組合せの全てが実機から収集されたインタフェース情報の中に含まれる場合、仮登録時に設定された各リンクに誤りがないことが判明する。この場合、第2の登録部15eは、登録ステータス情報13a4に含まれるデバイスIDのうち、仮登録デバイスのインタフェース名に誤りがなく、かつ仮登録デバイスが持つインタフェース名を組合せに含むリンクに誤りがない場合、当該デバイスIDに対応する登録ステータスを第1のステータスから第2のステータスに更新する。
図7Aは、トポロジマップの一例を示す図である。図7Aには、トポロジマップに含まれるデバイスアイコンのうち、仮登録が行われたNode−1及びNode−2のデバイスアイコンが抜粋して示されている。図7Aに示すように、Node−1のデバイスアイコン及びNode−2のデバイスアイコンには、結線が描画されている。すなわち、Node−1のデバイスアイコンが有する4つのポートのうち表示番号「01」のポートと、Node−2のデバイスアイコンが有する4つのポートのうち表示番号「01」のポートとの間に結線が描画されている。このような結線の描画編集により、リンク情報13a3には、Node−1のデバイスアイコンが有する表示番号「01」に対応するポートIDと、Node−2のデバイスアイコンが有する表示番号「01」に対応するポートIDとの組合せを含むエントリがリンクとして仮登録される。なお、ここでは、トポロジマップ上でデバイスアイコンに展開表示されるポートの表示番号を図示したが、ポート情報13a2上でポートの表示番号にはインタフェース名が関連付けられている。
図7Bは、実機の接続状況の一例を示す図である。図7Bには、Node−1のネットワークデバイス30の実機と、Node−2のネットワークデバイス30の実機との接続状況が示されている。図7Bに示すように、Node−1の実機及びNode−2の実機の間では、Node−1の表示番号「01」のポートと、Node−2の表示番号「02」のポートが接続されている。
図7Aに示す仮登録のリンク及び図7Bに示す実機の接続状況とが比較される。すなわち、リンク情報13a3のリンクのエントリに含まれるポートIDの組合せに対応するインタフェース名の組合せ、すなわち仮登録時にリンクとして設定されたインタフェース名の組合せと、Node−1またはNode−2の実機から収集されるインタフェース情報とが比較される。これらのうち、リンク情報13a3には、Node−1のデバイスアイコンが有する表示番号「01」に対応するインタフェース名と、Node−2のデバイスアイコンが有する表示番号「01」に対応するインタフェース名との組合せがエントリとして含まれる。一方、Node−1の実機から収集されるインタフェース情報では、Node−1の表示番号「01」に対応するインタフェース名と、Node−2の表示番号「02」に対応するインタフェース名との関連付けが含まれる。
この場合、Node−1のデバイスアイコンが有する表示番号「01」に対応するインタフェース名と、Node−2のデバイスアイコンが有する表示番号「01」に対応するインタフェース名との組合せのうち、インタフェース情報には、Node−1の表示番号「01」に対応するインタフェース名が含まれる一方で、Node−2のデバイスアイコンが有する表示番号「01」に対応するインタフェース名は含まれない。このため、Node−1の表示番号「01」のポートまたはNode−2の表示番号「02」のポートのいずれかにポートの挿し間違いがある旨がエラーとして出力される。
図7Cは、エラーの出力例を示す図である。例えば、図7Cに示すように、ポート情報13a2のうち、ポートの挿し間違いのおそれがある2つのエントリ、すなわちNode−1の表示番号「01」のエントリ及びNode−2の表示番号「02」のエントリを他のエントリと異なる表示形態で表示する。この他、Node−1の表示番号「01」のポートまたはNode−2の表示番号「02」のポートのいずれかにポートの挿し間違いがある旨のエラーメッセージを出力することとしてもよいし、トポロジマップ上で上記2つのポートのシンボルを強調表示することしてもかまわない。
これにより、仮登録時に設定されたリンクと、実機から収集されたインタフェース情報との間でポートの挿し間違いや未結線がない場合に絞ってリンクを仮登録から本登録へ更新することができる。
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、表示制御部15a、第1の登録部15b、収集部15c、判定部15d、第2の登録部15eまたは出力部15fをネットワーク管理装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、表示制御部15a、第1の登録部15b、収集部15c、判定部15d、第2の登録部15eまたは出力部15fを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のネットワーク管理装置10の機能を実現するようにしてもよい。また、記憶部に記憶されるトポロジ情報13aの全部または一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のネットワーク管理装置10の機能を実現するようにしてもかまわない。
[制御プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図8を用いて、上記の実施例と同様の機能を有する制御プログラムを実行するコンピュータの一例について説明する。
図8は、実施例1及び実施例2に係る制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。図8に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、図8に示すように、上記の実施例1で示した表示制御部15a、第1の登録部15b、収集部15c、判定部15d、第2の登録部15e及び出力部15fと同様の機能を発揮する制御プログラム170aが記憶される。この制御プログラム170aは、図2に示した表示制御部15a、第1の登録部15b、収集部15c、判定部15d、第2の登録部15e及び出力部15fの各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から制御プログラム170aを読み出した上でRAM180へ展開する。この結果、制御プログラム170aは、図8に示すように、制御プロセス180aとして機能する。この制御プロセス180aは、RAM180が有する記憶領域のうち制御プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、制御プロセス180aが実行する処理の一例として、図6に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の制御プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。