以下に、本願に係る監視システム、監視方法、情報処理装置および監視プログラムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態により本願に係る監視システム、監視方法、情報処理装置および監視プログラムが限定されるものではない。
[第1の実施形態]
以下の実施の形態では、第1の実施形態に係る監視システム1の構成、情報処理装置100の構成、監視システム1における処理の流れを順に説明し、最後に第1の実施形態による効果を説明する。
[監視システムの構成]
図1は、第1の実施形態に係る監視システムの構成の一例を示す図である。第1の実施形態に係る監視システム1は、複数のVNF10A〜10C、EtherOAMコントローラ20、SDN(Software-Defined Networking)コントローラ30、VNFM(Virtual Network Function Manager)40、VIM(Virtualized Infrastructure Manager)50、複数のアクセス装置60A、60Bを有する。
また、各VNF10A〜10Cは、L2伝送ネットワーク70およびL2スイッチ80を介して、監視対象のアクセス装置60A、60Bと接続されている。なお、図1に示す構成は一例にすぎず、具体的な構成や各装置の数は特に限定されない。また、複数のVNF10A〜10C、複数のアクセス装置60A、60Bについて、特に区別なく説明する場合には、VNF10、アクセス装置60と記載する。
VNF10A〜10Cは、L2伝送ネットワーク70に接続され、L2伝送ネットワーク70およびL2スイッチ80を介してアクセス装置60との間でEtherOAMを送受信することで、監視を実現する。監視システム1では、EtherOAMの送信先MACアドレスとして対向のMACアドレスを指定して伝送するため、アクセス装置60と各アクセス装置を監視するVNF10はそれぞれL2レイヤで透過的に接続されている必要がある。ここで、図1の例を上げて説明すると、例えば、アクセス装置60Aは、アクセス装置60Aを監視するVNF10Aと透過的に接続されており、アクセス装置60Bは、アクセス装置60Bを監視するVNF10Bと透過的に接続されている。アクセス装置60Aとアクセス装置60Bの間は透過的に接続される必要はない。例えば、L2スイッチ80のVNF10と接続するポートをトランクポートにし複数VLAN収容可能にすることで、アクセス装置60間は別L2セグメントに分離しつつ、アクセス装置60と各アクセス装置を監視するVNF10は透過的に接続する。
VNF10A〜10Cは、OpenStackに代表されるVIM50上に仮想的に構築される。また、VNF10A〜10Cのインスタンス生成・削除・スケールアウト・インなどのライフサイクル管理は、VNFM40によって制御される。VNF10A〜10CにおけるEtherOAM関連設定情報の管理は、EtherOAMコントローラ20によって実施される。なお、ここでEtherOAM関連設定情報とは、例えば、監視対象のアクセス装置60A、60BのMEG ID、MEP ID、MACアドレス、VLANなどである。また、VNF10A〜10Cおよびアクセス装置60A、60Bの両者に整合性の取れたプロビジョニングを実施する必要があり、上位のSDNコントローラ30によって実施される。
ここで、図1では、EtherOAMコントローラ20、SDNコントローラ30、VNFM40、VIM50の各機能は、同一の物理マシンで実現してもよいし、別々の物理マシンで実現してもよい。以下の説明では、EtherOAMコントローラ20、SDNコントローラ30、VNFM40、VIM50が同一の物理マシンである情報処理装置100で実現しているものとして説明する。
[情報処理装置の構成]
次に、図2を用いて、情報処理装置100の構成を説明する。図2は、第1の実施形態に係る情報処理装置の構成例を示すブロック図である。図2に示すように、この情報処理装置100は、通信処理部11、制御部12および記憶部13を有する。以下に情報処理装置100が有する各部の処理を説明する。
通信処理部11は、各種情報に関する通信を制御する。例えば、通信処理部11は、伝送ネットワーク70とL2スイッチ80を介してアクセス装置60との間でEtherOAMフレームの送受信を行う。
記憶部13は、制御部12による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、仮想MAC管理テーブル記憶部13aを有する。例えば、記憶部13は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置などである。
仮想MAC管理テーブル記憶部13aは、各VNF10が管理する監視対象のアクセス装置60ごとにそれぞれ設定されたVNF10の仮想MACアドレスと、アクセス装置60のMACアドレス・VLAN IDを記憶する。例えば、仮想MAC管理テーブル記憶部13aは、図3に例示するように、「MEG ID」と「MEP ID」に対応付けて、監視対象のアクセス装置60ごとにそれぞれ設定されたVNF10の仮想MACアドレスである「仮想MAC」を記憶する。また、アクセス装置60の構成情報として、「監視対象MAC」および「VLAN ID」を記憶する。図3では「VLAN ID」が一つ使用する場合を示しているが、「VLAN ID」は多段に付与してもよい。ただし、前提条件として、「監視対象MAC」と0以上の「VLAN ID」の組み合わせで一意性の制約を満たし、同様に「仮想MAC」と0以上の「VLAN ID」の組み合わせで一意性の制約を満たす。
以降の記述では、記述を簡易化するために、「仮想MAC」だけで一意性の制約を満たしている場合を例とするが、上述の通り「仮想MAC」だけで一意性の制約を満たすことは要しない。「仮想MAC」と0以上の「VLAN ID」の組み合わせで一意性の制約を満たしていればよい。
図3の例を挙げて説明すると、例えば、仮想MAC管理テーブル記憶部13aは、VNF10Aが管理する管理対象のアクセス装置60Aに対応する情報として、MEG ID「MEG10」と、MEP ID「100」と、仮想MAC「XX:XX:XX:XX:XX:X1」と、アクセス装置60Aの構成情報(監視対象MAC「YY:YY:YY:YY:YY:Y1」およびVLAN ID「10」)とを対応付けて記憶し、VNF10Bが管理する管理対象のアクセス装置60Bに対応する情報として、MEG ID「MEG20」と、MEP ID「200」と、仮想MAC「XX:XX:XX:XX:XX:X2」と、アクセス装置60Bの構成情報(監視対象MAC「YY:YY:YY:YY:YY:Y2」およびVLAN ID「20」)とを対応付けて記憶する。
図3に例示する仮想MAC管理テーブルについて、EtherOAMコントローラ20は、仮想MAC管理テーブルに含まれる全てのレコードを保持する。各VNF10は、仮想MAC管理テーブルのうち、各自が管理する管理対象のアクセス装置60に対応するレコードをそれぞれ保持する。例えば、VNF10Aは、VNF10Aが管理する管理対象のアクセス装置60Aに対応する情報として、MEG ID「MEG10」と、MEP ID「100」と、仮想MAC「XX:XX:XX:XX:XX:X1」と、アクセス装置60Aの構成情報(監視対象MAC「YY:YY:YY:YY:YY:Y1」およびVLAN ID「10」)とが対応付けられたレコードを仮想MAC管理テーブルとして保持する。
制御部12は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、事前設定部12a、判定制御部12b、監視制御部12c、設定制御部12d、決定部12e、通知部12fおよび更新部12gを有する。ここで、制御部12は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路である。
また、各部のうち、事前設定部12aがSDNコントローラ30が有する機能であり、判定制御部12b、監視制御部12cおよび設定制御部12dがVNF10が有する機能であり、決定部12e、通知部12fおよび更新部12gがEtherOAMコントローラ20が有する機能であるものとする。
事前設定部12aは、仮想MACアドレスの事前設定処理として、監視対象のアクセス装置60に対応するVNF10の仮想MACアドレスを払い出し、該監視対象のアクセス装置60に対して該仮想MACアドレスをEtherOAMフレームの送信先MACアドレスとして設定するとともに、払い出された仮想MACアドレスを仮想MAC管理テーブル記憶部13aに設定する。
ここで、図4を用いて、仮想MACアドレスの事前設定処理の一例を説明する。図4は、仮想MACアドレスの事前設定処理の一例を説明する図である。なお、以下の説明では、VNF10と監視対象のアクセス装置60とが一対一の関係である場合を例に説明するが、当然これに限定されるものではなく、例えば、VNF10が一つに対して、複数のアクセス装置60を監視対象としてもよい。
図4に示すように、SDNコントローラ30は、監視対象のアクセス装置60A、60Bに対してEtherOAM送信先MACアドレスとして任意の仮想MACアドレスを払い出し、該仮想MACアドレスをMEG ID、MEP ID、VLAN IDと合わせてアクセス装置60A、60Bに設定する。なお、仮想MACアドレスを払い出す際には、前述の一意性の制約を満たす必要がある。
図4の例を挙げて説明すると、例えば、SDNコントローラ30は、監視対象のアクセス装置60Aに対してEtherOAM送信先MACアドレスとして、仮想MAC「XX:XX:XX:XX:XX:X1」を設定するとともに、MEG ID「MEG10」と、MEP ID「100」と、VLAN ID「10」を設定する。また、SDNコントローラ30は、監視対象のアクセス装置60Bに対してEtherOAM送信先MACアドレスとして、仮想MAC「XX:XX:XX:XX:XX:X2」を設定するとともに、MEG ID「MEG20」と、MEP ID「200」と、VLAN ID「20」を設定する。
また、SDNコントローラ30は、アクセス装置60の有するMACアドレスを取得し、EtherOAMコントローラ20に対してアクセス装置60の構成情報(MEG ID、MEP ID、MACアドレス、VLAN ID)とともに、払い出した仮想MACアドレスを設定する。EtherOAMコントローラ20は、払い出された仮想MACアドレス、アクセス装置のMACアドレス、VLAN IDを、「MEG ID」、「MEP ID」を複合主キーとする仮想MAC管理テーブルに格納する。図4の例を挙げて説明すると、例えば、EtherOAMコントローラ20は、MEG ID「MEG10」と、MEP ID「100」と、仮想MAC「XX:XX:XX:XX:XX:X1」と、構成情報(監視対象MAC「YY:YY:YY:YY:YY:Y1」およびVLAN ID「10」)とが対応付けられたレコードと、MEG ID「MEG20」と、MEP ID「200」と、仮想MAC「XX:XX:XX:XX:XX:X2」と、構成情報(監視対象MAC「YY:YY:YY:YY:YY:Y2」およびVLAN ID「20」)とが対応付けられたレコードを記憶する。
そして、EtherOAMコントローラ20は、登録されたアクセス装置60A、60Bの監視をどのVNF10が担当するかを決定し、仮想MAC管理テーブルの該当レコードをVNF10に通知する。そして、VNF10は、EtherOAMコントローラ20から通知されたレコードを基に、指定されたアクセス装置60の監視を行う。図4の例を挙げて説明すると、例えば、EtherOAMコントローラ20は、MEG ID「MEG10」と、MEP ID「100」と、仮想MAC「XX:XX:XX:XX:XX:X1」とが対応付けられたレコードをVNF10Aに通知し、VMEG ID「MEG20」と、MEP ID「200」と、仮想MAC「XX:XX:XX:XX:XX:X2」とが対応付けられたレコードをVNF10Bに通知する。
判定制御部12bは、各VNF10が監視対象のアクセス装置60から送信されたEtherOAMフレームを受信した場合に、該EtherOAMフレームの送信先MACアドレスが自VNF10の仮想MACアドレスのいずれかと一致するか各VNF10にそれぞれ判定させ、送信先MACアドレスと仮想MACアドレスとが一致しないVNF10については、EtherOAMフレームを破棄させるように制御する。
監視制御部12cは、送信先MACアドレスと仮想MACアドレスとが一致するVNF10については、EtherOAMフレームに含まれる情報を基に監視対象のアクセス装置60の通信を監視させるように制御する。具体的には、監視制御部12cは、送信先MACアドレスと仮想MACアドレスとが一致するVNF10については、EtherOAMフレームから情報を取得させ、監視対象のアクセス装置60のステータスを更新させるように制御する。
ここで、図5を用いて、EtherOAMフレームの受信処理の一例を説明する。図5は、EtherOAMフレームの受信処理の一例を説明する図である。図5に示すように、アクセス装置60Aは、仮想MACアドレス「XX:XX:XX:XX:XX:X1」を送信先として、EtherOAMフレームを送信する。VNF10A〜10Cでは、自身のMACアドレスと異なるEtherOAMフレームを取得するために、インタフェースをプロミスキャスモードに設定しておく。これにより、同一物理ホスト内の全てのVNF10A〜10Cが、EtherOAMフレームを受信する。
各VNF10A〜10Cが受信したEtherOAMフレームは、ソケットを通じてアプリケーション内に引き込まれる。各VNF10A〜10CのEtherOAMアプリケーションでは、送信先MACアドレスをキーとして仮想MAC管理テーブルを検索する。そして、EtherOAMアプリケーションは、検索の結果、レコードが存在しない場合、つまり、自VNF10にとって監視対象からのEtherOAMフレームでない場合には、EtherOAMフレームを破棄する。
また、EtherOAMアプリケーションは、検索の結果、レコードが存在する場合、つまり、自VNF10にとって監視対象からのEtherOAMフレームである場合には、EtherOAMフレームに含まれる情報を基に監視対象のアクセス装置60に対する監視処理として、アクセス装置60のステータス更新を実施する。
図5の例では、VNF10Aの仮想MAC管理テーブルには、MEG ID「MEG10」と、MEP ID「100」と、仮想MAC「XX:XX:XX:XX:XX:X1」とが対応付けられたレコードが記憶されている。VNF10Bの仮想MAC管理テーブルには、MEG ID「MEG20」と、MEP ID「200」と、仮想MAC「XX:XX:XX:XX:XX:X2」とが対応付けられたレコードが記憶されている。このため、VNF10Aは、送信先MACアドレス「XX:XX:XX:XX:XX:X1」と一致する仮想MAC「XX:XX:XX:XX:XX:X1」のレコードが存在するので、EtherOAMフレームを受信して監視処理を行う。また、VNF10BおよびVNF10Cは、送信先MACアドレス「XX:XX:XX:XX:XX:X1」と一致するレコードが存在しないので、EtherOAMフレームを破棄する。
設定制御部12dは、VNF10が監視対象のアクセス装置60にEtherOAMフレームを送信する際には、仮想MAC管理テーブル記憶部13aから送信先のアクセス装置60に対応するVNF10の仮想MACアドレスを取得し、該取得した仮想MACアドレスを送信元MACアドレスに設定するように制御する。
ここで、図6を用いて、EtherOAMフレームの送信処理の一例を説明する。図6は、EtherOAMフレームの送信処理の一例を説明する図である。図6に示すように、VNF10Aは、仮想MAC管理テーブルより監視対象のレコードを順次取得し、仮想MACアドレス「XX:XX:XX:XX:XX:X1」を送信元、アクセス装置60AのMACアドレス「YY:YY:YY:YY:YY:Y1」を送信先として、EtherOAMフレームを送信する。
この際、EtherOAMフレームを送信したVNF10Aを除く他のVNF10B、10Cは、インタフェースがプロミスキャスモードに設定されているため、当該EtherOAMフレームを受信する。EtherOAMアプリケーションでは、仮想MAC管理テーブルに合致しないEtherOAMフレームは破棄されるため、本フレームがステータス変更には影響しない。
決定部12eは、情報処理装置100に新たなVNF10が生成された場合に、すでに動作しているVNF10が管理する監視対象のアクセス装置60のうち、新たなVNF10に監視させるアクセス装置60を決定する。つまり、決定部12eは、VNF10がスケールアウトしVNFインスタンスを増やした場合、稼働中のVNF10から新規VNF10に委譲する監視対象を決定する。
また、決定部12eは、情報処理装置100とは異なる別の情報処理装置に新たなVNF10が生成された場合に、すでに動作しているVNF10が管理する監視対象のアクセス装置60のうち、新たなVNF10に監視させるアクセス装置60を決定する。つまり、決定部12eは、別物理ホストにスケールアウトする場合も、稼働中のVNF10から別物理ホストの新規VNF10に委譲する監視対象を決定する。
通知部12fは、決定部12eによって決定された新たなVNF10に監視させる監視対象のアクセス装置60に対応する仮想MACアドレスを、新たなVNF10の仮想MACアドレスとして登録するように別のVNF10に通知する。なお、通知部12fは、異なる物理ホスト上で生成された場合だけでなく、新たなVNFが同一物理ホスト上で生成された場合であっても、新たなVNF10に監視させる監視対象のアクセス装置60に対応する仮想MACアドレスを、新たなVNF10の仮想MACアドレスとして登録するように別のVNF10に通知する。
更新部12gは、新たなVNF10に監視させる監視対象のアクセス装置60に対応する仮想MACアドレスを、通知部12fによって通知された仮想MACアドレスに変更するように仮想MAC管理テーブル記憶部13aを更新する。
ここで、図7および図8を用いて、スケールアウト実施時の処理の一例を説明する。図7は、同一物理ホスト上でのスケールアウト実施時の処理の一例を説明する図である。図8は、別物理ホストへのスケールアウト実施時の処理の一例を説明する図である。図7に例示するように、同一物理ホスト上でEtherOAM VNFをスケールアウトし、新たにVNF10Dを増やした場合、EtherOAMコントローラ20は、稼働中のVNF10Aから新規VNF10Dに委譲する監視対象を決定する。ここでは、EtherOAMコントローラ20は、稼働中のVNF10Aから新規VNF10Dに委譲する監視対象として、アクセス装置60Aを決定したものとする。
この際、EtherOAMコントローラ20からの通知により、委譲元のVNF10Aの仮想MAC管理テーブルからは対象のアクセス装置60Aのレコードは破棄され、新規VNF10Dの仮想MAC管理テーブルにアクセス装置60Aのレコードが追加される。ここで、アクセス装置60Aのレコードとは、図7に例示されるように、MEG ID「MEG10」と、MEP ID「100」と、仮想MAC「XX:XX:XX:XX:XX:X1」とが対応付けられたレコードである。このように、委譲により監視を行うVNFインスタンスが変更されるが、この場合でも送受信フレームのMACアドレスは変化せず、監視に影響を及ぼさない。
このため、スケールアウト時だけでなく、スケールインや障害発生時など、VNF10間で監視対象の委譲を行うケースにおいて、監視処理に影響を与えることなく容易に実施することが可能となる。ただし、VNF10に障害が発生した場合には、EtherOAMコントローラ20にて障害検知し、フェールオーバを行う必要がある。
なお、スケールアウト実施時の委譲する監視対象の決定や仮想MAC管理テーブルの更新をEtherOAMコントローラ20が制御する場合を例に説明するが、これに限定されるものではなく、例えば、VNF10が委譲する監視対象を決定してもよいし、VNF10間で通信を行うことで仮想MAC管理テーブルの更新を実施するようにしてもよい。
続いて、図8を用いて、別物理ホストへのスケールアウト実施時の処理の一例を説明する。図8に示すように、別物理ホストにスケールアウトする場合も、図7の場合と同様に、仮想MAC管理テーブルの更新を実施する。
例えば、EtherOAMコントローラ20は、稼働中のVNF10Bから新規VNF10Eに委譲する監視対象のアクセス装置60Bを決定すると、監視対象のアクセス装置60Bに対応する仮想MACアドレス「XX:XX:XX:XX:XX:X2」を、新規VNF10Eの仮想MACアドレスとして変更させるように別の物理ホストに通知する。そして、スケールアウト先のVNF10EがEtherOAMフレームを送出することで、経路上にあるL2スイッチ80AのMAC学習テーブルが学習される。これにより、移動先の物理ホストにのみフレームが到達するようになり、処理の負荷分散を実現することが可能である。
このように、第1の実施形態に係る監視システム1では、監視対象ごとに仮想MACアドレスを用意し、VMインスタンス生成時に動的に割り当てられたMACアドレスではなく、監視対象装置用の仮想MACアドレスを用いて、VNF10とアクセス装置60との間でフレームの送受信を行う。各VNF10は、仮想MAC管理テーブルを持ち、対向装置ごとに別のMACアドレスを使用する。
ここで、図9を用いて、監視対象装置ごとに設定された仮想MACアドレスを用いてフレームの送受信を行う処理の概要について説明する。図9は、監視対象装置ごとに設定された仮想MACアドレスを用いてフレームの送受信を行う処理の概要を説明する図である。例えば、図9の例では、VNF10Bは、監視対象ごとの仮想MACアドレスとして、「XX:XX:XX:XX:XX:10」、「XX:XX:XX:XX:XX:11」・・・「XX:XX:XX:XX:XX:XX」が規定された仮想MAC管理テーブルを有している。例えば、第1の実施形態に係る監視システム1では、1つのVNF10で監視するアクセス装置60が1000台ある場合には、1000個の対向装置ごとの仮想MACアドレスを使用することとなる。
また、スケールアウトやフェールオーバにより監視元VNFが変更になった際は、VNF10は、仮想MAC管理テーブルのレコードを更新し、移動先のVNF10にて同仮想MACアドレスを使用してフレームの送受信を行う。例えば、図9の例では、別物理ホストのVIM50Aに新しくVNF50E〜50Gが生成され、アクセス装置60の監視をVNF10BからVNF10Eに変更する場合には、VNF10Bの仮想MAC管理テーブルからはアクセス装置60のレコードが破棄され、新規VNF10Eの仮想MAC管理テーブルにアクセス装置60のレコードが追加される。ここで、アクセス装置60のレコードとは、図9に例示されるように、MEG ID「MEG10」と、MEP ID「100」と、仮想MAC「XX:XX:XX:XX:XX:10」とが対応付けられたレコードである。
[監視システムの処理手順]
次に、図10を用いて、第1の実施形態に係る監視システム1による事前設定処理の手順の例を説明する。図10は、第1の実施形態に係る監視システムにおける事前設定処理の流れの一例を示すシーケンス図である。
図10に示すように、SDNコントローラ30は、監視対象のアクセス装置60に対してEtherOAM送信先MACアドレスとして任意の仮想MACアドレスを払い出し(ステップS101)、該仮想MACアドレスをMEG ID、MEP ID、VLAN IDと合わせてアクセス装置60に通知する(ステップS102)。なお、仮想MACアドレスを払い出す際には、同一L2セグメント内で重複がないようにする必要がある。そして、アクセス装置60は、仮想MACアドレスを受信すると、該受信した仮想MACアドレスをEtherOAM送信先MACアドレスとして設定する(ステップS103)。
その後、SDNコントローラ30は、アクセス装置60の有するMACアドレスを取得する(ステップS104)。そして、SDNコントローラ30は、EtherOAMコントローラ20に対してアクセス装置60の構成情報(MEG ID、MEP ID、MACアドレス、VLAN ID)とともに、払い出した仮想MACアドレスを通知する(ステップS105)。そして、EtherOAMコントローラ20は、払い出された仮想MACアドレスを、アクセス装置60の構成情報を複合キーとして仮想MAC管理テーブルに格納する(ステップS106)。そして、EtherOAMコントローラ20は、登録されたアクセス装置60の監視を担当する担当VNFをVNF10A〜10Cのなかから決定する(ステップS107)。ここでは、例えば、アクセス装置60の監視をVNF10Aが担当すると決定したものとする。
この場合には、EtherOAMコントローラ20は、監視対象のアクセス装置60に対応する仮想MACアドレスをVNF10Aに通知する(ステップS108)。そして、VNF10Aは、EtherOAMコントローラ20から通知された仮想MACアドレスを仮想MAC管理テーブルに設定する(ステップS109)。
次に、図11および図12を用いて、第1の実施形態に係るVNFによる送受信処理の手順の例を説明する。図11は、第1の実施形態に係るVNFにおける受信処理の流れの一例を示すフローチャートである。図12は、第1の実施形態に係るVNFにおける送信処理の流れの一例を示すフローチャートである。
まず、図11を用いて、VNF10における受信処理の流れを説明する。図11に例示するように、VNF10は、フレームを受信すると(ステップS201肯定)、送信先MACアドレスをキーとして仮想MAC管理テーブルを検索する(ステップS202)。
そして、VNF10は、検索の結果、レコードが存在する場合(ステップS203肯定)、つまり、自VNFにとって監視対象からのフレームである場合には、EtherOAMフレームに含まれる情報を基に監視対象のアクセス装置60に対する監視処理を実施する(ステップS204)。
また、VNF10は、検索の結果、仮想MAC管理テーブルにレコードが存在しない場合(ステップS203否定)、つまり、自VNFにとって監視対象からのフレームでない場合には、EtherOAMフレームを破棄する(ステップS205)。
次に、図12を用いて、VNF10における送信処理の流れを説明する。図12に例示するように、VNF10は、アクセス装置60に対してEtherOAMフレームを送信する際には、仮想MAC管理テーブルより監視対象のアクセス装置60のレコードを取得する(ステップS301)。
そして、VNF10は、取得したレコードを参照し、仮想MACアドレスを送信元、アクセス装置60のMACアドレスを送信先としてEtherOAMフレームに設定し(ステップS302)、EtherOAMフレームを送信する(ステップS303)。
[第1の実施形態の効果]
第1の実施形態に係る監視システム1における情報処理装置100は、各VNF10が管理するアクセス装置60ごとにそれぞれ設定されたVNF10の仮想MACアドレスを記憶する仮想MAC管理テーブル記憶部13aを有する。そして、情報処理装置100は、各VNF10がアクセス装置60から送信されたフレームを受信した場合に、該フレームの送信先MACアドレスが自VNF10の仮想MACアドレスと一致するか各VNF10にそれぞれ判定させ、送信先MACアドレスと仮想MACアドレスとが一致しないVNF10については、フレームを破棄させるように制御する。また、情報処理装置100は、送信先MACアドレスと仮想MACアドレスとが一致するVNF10については、フレームに含まれる情報を基にアクセス装置60の通信を監視させるように制御する。また、情報処理装置100は、VNF10がアクセス装置60にフレームを送信する際には、仮想MAC管理テーブル記憶部13aから送信先のアクセス装置60に対応するVNF10の仮想MACアドレスを取得し、該取得した仮想MACアドレスを送信元MACアドレスに設定するように制御する。
このように、第1の実施形態に係る監視システム1では、監視対象のアクセス装置60ごとに仮想MACアドレスを事前に用意し、それを保持する仮想MAC管理テーブルを使用するので、VNF10に動的に割り当てられるMACアドレスを用いることなく、オペレーションコストを低減して簡易に監視処理を行うことが可能である。
また、第1の実施形態に係る監視システム1では、監視元VNF10が移動した場合にも仮想MACアドレスを引き継ぐため、移動先のVNFのMACアドレスを追跡する必要がなくなる。一方、VNFに動的に割り当てられたMACアドレスする従来のやり方では、移動先のVNFのMACアドレスを追跡する必要がある。
例えば、図13に例示するように、従来方式では、監視元VNFがVNF110BからVNF110Dに変更した場合に、アクセス装置600に対して、EtherOAMの送信先MACアドレスがVNF110BのMACアドレス(A)からVNF110DのMACアドレス(B)に変更したことを通知する必要がある。なお、ここでMACアドレス(A)とは、VNF110B生成時に動的に割り当てられたVNF110BのMACアドレスであり、MACアドレス(B)とは、VNF110D生成時に動的に割り当てられたVNF110DのMACアドレスである。
また、第1の実施形態に係る監視システム1では、VNF10ごとに異なるユニキャストアドレスを使用するため、必要なVIM物理ホストにのみフレームが到達し、VIM物理ホスト間での負荷分散が可能となる。さらに、第1の実施形態に係る監視システム1では、監視対象ごとに異なるユニキャストアドレスを使用することで、同一仮想MACアドレスを維持したまま物理ホストをまたいでも経路上のL2スイッチで適切にMAC学習が実施されるようになり、物理ホストをまたいだ移動が可能となる。
つまり、例えば、仮にマルチキャストアドレスを使用した場合には、MAC学習の対象ではなくVIMの全物理ホストに到達する。このため、NIC I/O負荷や仮想ブリッジでのL2フォワーディングなどのカーネルドメイン処理の負荷がVIMを構成する全ての物理ホストで発生し、処理負荷を分散することができない。これに対して、第1の実施形態に係る監視システム1では、VNF10ごとに異なるユニキャストアドレスを使用するため、必要なVIM物理ホストにのみフレームが到達し、VIM物理ホスト間での負荷分散が可能となる。
また、例えば、仮にユニキャストアドレスを複数VIM物理ホストをまたぐ共通仮想MACアドレスとして使用した場合、複数のVIM物理ホストから同一MACアドレスを送信元とするEtherOAMが到達するため、経路上のL2スイッチで適切にMAC学習することができない。これに対して、第1の実施形態に係る監視システム1では、監視対象ごとに異なるユニキャストアドレスを使用するため、同一仮想MACアドレスを維持したまま物理ホストをまたいでも経路上のL2スイッチで適切にMAC学習が実施されるようになり、物理ホストをまたいだ移動が可能となる。
また、第1の実施形態に係る監視システム1では、CCMヘッダ内のMEG IDやMEP IDを用いた監視対象の判定を行う代わりに、仮想MAC管理テーブルを用いて送信先MACアドレスをもとに監視対象か否かを判断する。これにより、Etherフレームのデコードだけで監視対象判定を実施可能となり、ユーザドメイン処理負荷を低減できる。
ここで、CCMヘッダ内のMEG IDやMEP IDを用いた対象判定について、図14を用いて説明する。図14に示すように、VNFは、受信したEtherOAMフレームが監視対象であるか否かを判断するために、ヘッダ内のMEG IDやMEP IDを抽出し、MEG IDやMEP IDを用いて、送信元解決を行っていた。これに対して、第1の実施形態に係る監視システム1では、VNF10は、CCMヘッダからMEG IDやMEP IDを抽出することなく、Etherヘッダの送信先MACアドレスをもとに仮想MAC管理テーブルを用いて監視対象か否かを判断することができるので、負荷を低減することができる。
図14に例示する処理Aは、Etherフレームが到達する全VNFに共通的に発生する処理であり、B処理は監視を担当するVNFのみ発生する処理である。B処理については、VNF単位で負荷分散されるため、高い負荷分散効果が期待できる。A処理については、同一物理ホスト上の全てのVNFで発生するためVIMを構成する物理ホスト単位でしか負荷分散できず、その効果はB処理に比べて低い。また、一般に、ユーザドメインで実施される処理はカーネルやハイパーバイザにて処理最適化がされているカーネルドメインの処理に比べて処理性能が低い。このため、負荷分散効果が低いA処理のユーザドメイン処理を最小化することで、効果的に負荷を低減することができる。
なお、前述の図6で説明したように、EtherOAMフレームを送信したVNF10Aを他のVNF10B、10CがEtherOAMフレームを受信するので、受信回数が増加し、NICの負荷増加が懸念されるが、A処理のユーザドメイン処理の負荷が軽減されているため、結果的に全体の負荷を低減することができる。
また、第1の実施形態に係る監視システム1では、OpenStackなどの標準的なVIMおよびVNFM製品の機能のみを用いて、VNFのスケールイン・アウトを実現することが可能となり、機能追加が不要となる。
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
また、上記実施形態において説明した情報処理装置が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、実施形態に係る情報処理装置100が実行する処理をコンピュータが実行可能な言語で記述した監視プログラムを作成することもできる。この場合、コンピュータが監視プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる監視プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された監視プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。
図15は、監視プログラムを実行するコンピュータを示す図である。図15に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
メモリ1010は、図15に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、図15に例示するように、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、図15に例示するように、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、図15に例示するように、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、図15に例示するように、例えばディスプレイ1130に接続される。
ここで、図15に例示するように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の監視プログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ1090に記憶される。
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、各種処理手順を実行する。
なお、監視プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、監視プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
上記の実施形態やその変形は、本願が開示する技術に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。