JP2017005449A - ネットワーク検証装置、ネットワーク検証方法およびプログラム - Google Patents

ネットワーク検証装置、ネットワーク検証方法およびプログラム Download PDF

Info

Publication number
JP2017005449A
JP2017005449A JP2015116475A JP2015116475A JP2017005449A JP 2017005449 A JP2017005449 A JP 2017005449A JP 2015116475 A JP2015116475 A JP 2015116475A JP 2015116475 A JP2015116475 A JP 2015116475A JP 2017005449 A JP2017005449 A JP 2017005449A
Authority
JP
Japan
Prior art keywords
virtual
information
network
filter
physical
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.)
Pending
Application number
JP2015116475A
Other languages
English (en)
Inventor
智史 山崎
Tomohito Yamazaki
智史 山崎
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2015116475A priority Critical patent/JP2017005449A/ja
Publication of JP2017005449A publication Critical patent/JP2017005449A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 ネットワークの検証時間を短縮することが可能なネットワーク検証装置等を提供する。
【解決手段】 ネットワーク検証装置は、検証対象のネットワークにおいて通信パケットが送受信される物理経路の端点となる物理機器の対に関する物理経路情報を取得する物理経路取得手段と、ネットワークに対応付けられることにより、該ネットワークを利用して通信パケットを送るように仮想的に設定された仮想ネットワークにおける仮想機器の設定情報に基づいて、仮想ネットワークにおいて通信パケットを送受信するように設定された仮想経路の端点となる仮想機器の対を算出する仮想端点対算出手段と、物理経路取得手段により取得された物理経路情報と、前記仮想端点対算出手段により算出された仮想機器の対とに基づいて、前記ネットワークにおける設定違反を検出する違反検出手段とを備える。
【選択図】 図2

Description

本発明は、ネットワーク検証装置、ネットワーク検証方法およびプログラムに関する。
運用するネットワークに仮想化技術の適用を試みる企業や組織が増えてきている。関心が持たれている要因として、ネットワークの仮想化によりネットワーク運用者が様々な制御をソフトウエアによって自動かつ高速に行うことができるという点が考えられる。ネットワーク仮想化技術では、実際にある物理ネットワークを構成する機器との対応関係を持った仮想ネットワークを構築して運用が行われる。
図1は、物理機器により構築される物理ネットワークに、仮想的に構築された仮想ネットワークを対応(マッピング)させた構成を模式的に示す図である。仮想ネットワークは、仮想的に設定された仮想機器によりなる仮想経路を含み、その仮想経路に対応付けられた実際にある物理経路を利用して通信パケットを送信元から宛先に送信する。図1に示す物理ネットワークは、サーバ1、サーバ2および、スイッチ1乃至スイッチ4から構成されている。サーバ1は、スイッチ1のポート1に、サーバ2は、スイッチ2のポート1に、それぞれ接続されている。
図1では、仮想ネットワークの設定情報により、スイッチ1は仮想ネットワークの端点である仮想端点「vEx_1」に対応付けられ、スイッチ2は仮想端点「vEx_2」に対応付けられている。このように、仮想ネットワークの端点は、物理ネットワークのいずれかの機器に対応付けられる。仮想端点「vEx_1」と仮想端点「vEx_2」との間には、仮想ブリッジ「vBr_1」が配置されている。仮想端点「vEx_1」、仮想端点「vEx_2」および仮想ブリッジ「vBr_1」を結んでなる経路の識別情報(経路ID(Identification))を、経路ID=「1」とする。
上記のように構築された仮想ネットワークでは、何らかのトラブルによって仮想ネットワークの設定情報が物理ネットワークに伝わらず、物理ネットワークが運用者の設計意図にそぐわない状況が発生する虞がある。そのため、障害防止を考慮したネットワーク機器の実装や、物理ネットワークに仮想ネットワークの設定情報が正しく伝わっていることを検証するシステム等によって、ネットワーク仮想化技術の信頼性を担保することは、ネットワーク仮想化技術の進展のために重要である。特に、インターネットプロトコルのVLAN(Virtual Local Area Network)やMPLS(Multi Protocol Label Switching)などを用いて物理ネットワークに複数の仮想ネットワークを構築して複数ユーザに割り当てる場合、他のユーザに情報がリークされてはならない。
非特許文献1は、物理ネットワークから転送ルールを含むネットワーク設定情報を取得して、ネットワークをモデル化することにより、ホスト間の通信の到達性、及びユーザごとに定義した仮想ネットワークの隔離性を検証する方法を開示する。非特許文献1に開示される方法では、パケット情報をヘッダ空間として表現し、ネットワーク機器の機能をこのヘッダ空間に変更を与える関数としてモデル化する。このモデル化により、任意のホストが通信可能なホストおよびその通信時のパケットのヘッダ情報が計算され、現在のネットワーク設定におけるパケットの到達性を確認することができる。また、ユーザに割り当てた仮想ネットワークごとに対応したヘッダ空間を計算した後に全仮想ネットワーク間でヘッダ空間に重なる部分がないかを調べることで、ユーザ間でパケット情報がリークしないかを判定することができる。
ここで、図1に示したように、ネットワーク仮想化技術では、実際にある物理ネットワークを構成する機器と対応関係を持った仮想ネットワークおよび仮想機器を構築して運用が行われることがある。この仮想ネットワークでは、通常の物理ネットワークと同様に、ファイアウォール等のパケットフィルタ設定を行うことができる。つまり、仮想ネットワークと物理ネットワークの整合性を確認するツールでは、仮想ネットワークの設定として「所定のアドレスを持つパケットのみ通過を許可する」といったポリシーを読み込み、実際に物理ネットワークで通過し得るパケットがこのポリシーに反していないかの条件判定を行う。
非特許文献2は、物理スイッチの設定情報を充足可能性問題(SAT:SATisfiability problem)のインスタンスとして書き換え、SATソルバーと呼ばれる既存のエンジンを用いることで、高速に物理ネットワークの違反可能性を漏れなく検査する方法を開示する。ここで、違反とは、例えば、仮想ネットワークで定義された導通経路が、物理ネットワークにおいて到達不可能となっていることを指す。この検査の過程において、フィルタ設定を含む物理スイッチの全ての設定は、ブール代数で書き換えられると共に、既存の最適化手法によって再編される。非特許文献2は、また、誤設定検出の高速化のためのSATソルバーの入力データ最適化方法も開示する。
特許文献1は、構成変更後のネットワークシステムの妥当性を事前に検証する方法を開示する。特許文献1では、稼働中のネットワークシステムからネットワーク設定情報を検証サーバに自動収集し、各ネットワーク機器のルーティングテーブルを自動生成する。そして、構成変更後のネットワークのルーティングテーブルを擬似的に生成して、経路検索を実施することにより、ネットワークの接続性を検証する。
特許文献2は、ファイアウォール等のセキュリティ機器から設定情報を抽出して、機器の仕様に依存しない書式の汎用セキュリティポリシーを生成する方法を開示する。
特許文献3は、ファイアウォールプロセッサの負担を軽減するために、条件判定結果をキャッシュすることにより判定回数を削減する方法を開示する。
特許文献4は、ネットワークにおけるファイアウォール等で設定されているフィルタルールの管理を行い、複雑なフィルタルールの集合を最適化するとともに、複数の機器におけるパケットフィルタ処理の同一性を判断できるルール分析方法を開示する。
特開2002−185512 特開2006−040247 特開平11−163940 再特開WO2006−090781
Peyman Kazemian, George Varghese, Nick McKeown著「Header Space Analysis: Static Checking For Networks」, NSDI'12 Proceedings of the 9th USENIX conference on Networked Systems Design and Implementation、2012年、pp.9−22 H. Mai .et.al.著「Debugging the Data Plane with Anteater」, ACM SIGCOMM Computer Communication Review、2011年、pp.290-301
非特許文献1に記載の方法では、仮想ネットワークの設定違反を検証するために、到達可能物理経路数の2乗のオーダーの計算量が必要となる。そのため、例えば、データセンタの大規模ネットワークのように、多くの仮想ネットワークが設定されている場合、設定違反の検出に膨大な計算時間を要するので、検証が困難となるという課題がある。
非特許文献2に記載の方法では、ネットワークの検証を行う問題を充足可能性問題に落とす過程でフィルタ設定を含む物理ネットワーク設定情報の最適化を行っているが、ネットワークの検証にはやはり多くの時間を要する。
特許文献1ないし特許文献4においても、ネットワークの検証時間を短縮する技術は開示されていない。
本願発明は、上記課題を鑑みてなされたものであり、ネットワークの検証時間を短縮することが可能なネットワーク検証装置等を提供することを主要な目的とする。
本発明の第1のネットワーク検証装置は、検証対象のネットワークにおいて通信パケットが送受信される物理経路の端点となる物理機器の対に関する物理経路情報を取得する物理経路取得手段と、前記ネットワークに対応付けられることにより、該ネットワークを利用して前記通信パケットを送るように仮想的に設定された仮想ネットワークにおける仮想機器の設定情報に基づいて、当該仮想ネットワークにおいて前記通信パケットを送受信するように設定された仮想経路の端点となる前記仮想機器の対を算出する仮想端点対算出手段と、前記物理経路取得手段により取得された物理経路情報と、前記仮想端点対算出手段により算出された前記仮想機器の対とに基づいて、前記ネットワークにおける設定違反を検出する違反検出手段とを備える。
本発明の第1のネットワーク検証方法は、検証対象のネットワークにおいて通信パケットが送受信される物理経路の端点となる物理機器の対に関する物理経路情報を取得し、前記ネットワークに対応付けられることにより、該ネットワークを利用して前記通信パケットを送るように仮想的に設定された仮想ネットワークにおける前記仮想機器の設定情報に基づいて、当該仮想ネットワークにおいて前記通信パケットを送受信するように設定された仮想経路の端点となる前記仮想機器の対を算出し、前記取得された物理経路情報と、前記算出された前記仮想機器の対とに基づいて、前記ネットワークにおける設定違反を検出する。
なお同目的は、上記の各構成を有するネットワーク検証方法を、コンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
本願発明によれば、ネットワークの検証時間を短縮することが可能であるという効果が得られる。
ネットワーク仮想化技術によって運用されるネットワークを示す説明図である。 本発明の第1の実施形態に係るネットワーク検証装置の構成を示す図である。 本発明の第1の実施形態に係るネットワーク検証装置の動作の概要を示すフローチャートである。 本発明の第1の実施形態に係るネットワーク検証装置が取得した物理機器の設定情報の例を示す図である。 本発明の第1の実施形態に係るネットワーク検証装置が取得した物理機器間の結線情報の例を示す図である。 本発明の第1の実施形態に係るネットワーク検証装置の経路検証分析部により生成された到達可能物理経路情報の例を示す。 本発明の第1の実施形態に係るネットワーク検証装置が取得するヘッダ情報の一例を示す図である。 本発明の第1の実施形態に係るネットワーク検証装置の物理仮想突合部の動作を示すフローチャートである。 本発明の第1の実施形態に係るネットワーク検証装置の仮想ネットワーク設定入力部から取得した仮想機器設定情報の例を示す図である。 本発明の第1の実施形態に係るネットワーク検証装置の仮想端点対生成部が生成する仮想端点対情報の一例を示す図である。 本発明の第1の実施形態に係るネットワーク検証装置の結線経路突合部の動作を説明するフローチャートである。 本発明の第1の実施形態に係るネットワーク検証装置の結線突合経路記憶部に記憶された結線突合経路情報の例を示す図である。 本発明の第1の実施形態に係るネットワーク検証装置の結線突合経路記憶部に記憶された結線突合経路情報の例を示す図である。 本発明の第2の実施形態に係るネットワーク検証装置の構成を示すブロック図である。 本発明の第2の実施形態に係るネットワーク検証装置のフィルタ情報解析部の詳細な構成を示すブロック図である。 本発明の第2の実施形態に係るネットワーク検証装置の物理仮想突合部の動作の概要を示すフローチャートである。 本発明の第2の実施形態に係るネットワーク検証装置のフィルタ情報解析部、フィルタ判定部および違反経路分析部の動作を示すフローチャートである。 本発明の第2の実施形態に係るネットワーク検証装置のフィルタ設定情報集約部が取得するフィルタ設定情報の例を示す図である。 本発明の第2の実施形態に係るネットワーク検証装置のフィルタ設定情報集約部が生成する集約フィルタ情報の例を示す図である。 本発明の第2の実施形態に係るネットワーク検証装置のフィルタ設定情報集約部の動作を示すフローチャートである。 本発明の第2の実施形態に係るネットワーク検証装置の経路フィルタ情報生成部の動作を示すフローチャートである。 本発明の第2の実施形態に係るネットワーク検証装置の経路フィルタ情報記憶部で保持される経路フィルタ情報の例を示す図である。 本発明の第2の実施形態に係るネットワーク検証装置の経路フィルタ情報記憶部で保持される経路フィルタ情報の例を示す図である。 本発明の第2の実施形態に係るネットワーク検証装置のフィルタ判定情報生成部の動作を示すフローチャートである。 本発明の第2の実施形態に係るネットワーク検証装置のフィルタ判定情報生成部が生成するフィルタ判定情報の例を示す図である。 本発明の第2の実施形態に係るネットワーク検証装置のフィルタ判定部が生成するフィルタ判定結果情報の例を示す図である。 本発明の第2の実施形態に係るネットワーク検証装置の違反経路分析部の動作を示すフローチャートである。 本発明の第2の実施形態に係るネットワーク検証装置の違反経路分析部が生成する違反経路情報の例を示す図である。 本発明の第3の実施形態に係るネットワーク検証装置の構成を示す図である。 本発明の各実施形態に係るネットワーク検証装置のハードウエア構成を例示する図である。
以下、本発明の実施形態について図面を参照して詳細に説明する。
第1の実施形態
構成の説明
図2は、本発明の第1の実施形態に係るネットワーク検証装置200の構成を示す図である。図2に示すネットワーク100は、図1に模式的に示したように、実際にある物理ネットワークに、仮想ネットワークの設定情報がマッピングされた構成を有する。ネットワーク検証装置200は、ネットワーク100における、設定ミス(設定違反)を検出する機能を有する。
ネットワーク100には、仮想ネットワーク制御部101と、1または複数のネットワーク機器102、102、102、・・・(以降、総称して「ネットワーク機器102」と称する)とが配置されている。仮想ネットワーク制御部101は、プログラムにしたがってネットワーク100を制御している。
ネットワーク100は、OpenFlowプロトコルにしたがって制御されるネットワーク(OpenFlowネットワーク)環境でもよい。また、以下の説明において、「仮想ネットワークに関する設定」は、OpenFlowネットワーク環境におけるOpenFlowコントローラの設定を、「物理ネットワークに関する設定」はOpenFlowスイッチの設定を、それぞれ指してもよい。図2における仮想ネットワーク制御部101はOpenFlowネットワーク環境におけるOpenFlowコントローラに相当し、ネットワーク機器102はOpenFlowスイッチに相当する。ネットワーク100における仮想ネットワークには、仮想ネットワーク制御部101により制御される仮想機器が配置される。
図2においてネットワーク検証装置200は、ネットワーク100から仮想ネットワークに関する設定と物理ネットワークに関する設定とを取得して、ネットワーク100の設定の誤りを検出する。
ネットワーク検証装置200は、仮想ネットワーク設定入力部210、物理ネットワーク設定入力部220、経路検証分析部230、到達可能物理経路記憶部240、物理仮想突合部250および違反経路出力部260を備える。
各構成要素の概要について説明する。
仮想ネットワーク設定入力部210は、ネットワーク100に仮想ネットワーク制御部101により設定された仮想ネットワークに関する設定情報を、仮想ネットワーク制御部101から取得する。物理ネットワーク設定入力部220は、ネットワーク機器102などの設定情報(物理ネットワークに関する設定情報)を、ネットワーク機器102から取得する。
経路検証分析部230は、物理ネットワーク設定入力部220が取得した物理ネットワークに関する設定情報に基づいて、物理的に到達可能な端点の対である端点対と、その端点対を結ぶ経路を算出する。到達可能物理経路記憶部240は、経路検証分析部230が算出した到達可能な物理ネットワークの端点対と、その経路に関する情報(到達可能物理経路情報)を格納する。
物理仮想突合部250は、物理ネットワークに関する設定情報と、仮想ネットワークに関する設定情報とを突き合わせることにより、設定ミスによって生じた違反経路を検出する。違反経路出力部260は、物理仮想突合部250により検出された違反経路を出力する。
物理仮想突合部250は、仮想端点対生成部251、仮想端点対記憶部252、結線経路突合部253および結線突合経路記憶部254を備える。
仮想端点対生成部251は、仮想ネットワークに設定された仮想機器に関する設定情報および仮想機器間の結線情報を解析する。そして、仮想端点対生成部251は、仮想ネットワークにおいて到達可能な端点の対である仮想端点対を算出すると共に、その仮想端点対を含む仮想端点対情報を生成する。仮想端点対記憶部252は、仮想端点対生成部251が生成した仮想端点対情報を記憶する。
結線経路突合部253は、仮想端点対生成部251が生成した仮想端点対情報と、経路検証分析部230が算出した到達可能物理経路情報を参照して、違反経路を算出する。結線突合経路記憶部254は、結線経路突合部253が算出した違反経路に関する情報を格納する。
図3は、ネットワーク検証装置200の動作の概要を示すフローチャートである。図3を参照して、ネットワーク検証装置200の動作の概要について説明する。
ネットワーク検証装置200は、ネットワーク100から設定情報を取得する(A110)。すなわち、仮想ネットワーク設定入力部210は、仮想ネットワークの設定情報を取得する。物理ネットワーク設定入力部220は、物理ネットワークの設定情報を取得する。
次に、物理仮想突合部250は、取得した情報を参照して、経路の検証を実行し、違反の検出を行う(A120)。次に、違反経路出力部260は、物理仮想突合部250の検証の結果として得られた違反、すなわち到達性違反および隔離性違反(詳細は後述する)となる経路を出力する(A130)。
次に、経路検証分析部230の動作について説明する。経路検証分析部230は、物理ネットワークのネットワーク機器102(物理機器)に関する設定情報を、物理ネットワーク設定入力部220から取得する。そして、経路検証分析部230は、その設定情報に基づいて、到達可能な物理ネットワークの端点対の始点および終点に関する情報を含む到達可能物理経路情報の生成を行う。
図4Aおよび図4Bは、物理機器の設定に関する情報の例を示す図である。図4Aは、物理機器の設定情報の例を示す。図4Bは、物理機器間の結線情報の例を示す。図4Aに示すように、物理機器の設定情報は、物理機器であるスイッチの識別情報(スイッチID)、ポート番号、MAC(Media Access Control)アドレス、IP(Internet Protocol)アドレス、アクションを含む。図4Aでは、例えば、スイッチID=「1」を有するスイッチのポート番号=「1」に設定されたMACアドレスは「MAC1」、IPアドレスは「IP1」、アクションは「ActionA」であることが示される。
また、図4Bに示すように、物理機器間の結線情報は、互いに接続されているスイッチのポートの情報を含む。すなわち、物理機器間の結線情報には、互いに接続される、送信元スイッチIDと送信元ポート番号とを含む送信元情報と、宛先スイッチIDと宛先ポート番号とを含む宛先情報とを含む。図4Bでは、例えば、送信元となる、スイッチID=「1」を有するスイッチのポート番号=「1」は、スイッチID=「2」を有するスイッチのポート番号=「1」を宛先として接続されていることを示す。
経路検証分析部230は、上記のような物理機器の設定情報および物理機器間の結線情報を物理ネットワーク設定入力部220から取得し、これらに基づいて、到達可能物理経路情報を生成する。
図5は、経路検証分析部230により生成された到達可能物理経路情報の例を示す。到達可能物理経路情報には、到達可能な物理ネットワークの端点対の送信元(始点)に関する送信元情報と、宛先(終点)に関する宛先情報とが関連付けられた状態で格納される。送信元情報には、送信元スイッチID、送信元ポート番号、送信元VLAN−ID、送信元ヘッダ情報IDが含まれる。宛先情報には、宛先スイッチID、宛先ポート番号、宛先VLAN−ID、宛先ヘッダ情報IDが含まれる。
送信元スイッチID、送信元ポート番号は、スイッチ固有の情報である。送信元VLAN−IDは、仮想ネットワークの端点との対応付けのための情報である。送信元ヘッダ情報IDは、送信されるパケットの送信元のIPアドレスなどのパケット情報を含むヘッダパターン(ヘッダ情報)のIDである。図6は、ヘッダ情報の一例を示す図である。図6の例では、ヘッダ情報は、IDが付与された、パケットの送信元IPアドレスと送信元MACアドレスの組を含む。図5の宛先情報に含まれる各項目は、送信元情報に含まれる上記各項目と同様である。
経路検証分析部230は、到達可能な物理ネットワークの端点対の探索に、例えば、非特許文献1に示される技術を利用することにより、図5に示すような到達可能物理経路情報を生成してもよい。具体的には、経路検証分析部230は、ヘッダパターンをビット列、ネットワーク機器の動作をビット列に作用する遷移関数としてモデル化を行い、ネットワーク機器の始点から終点にたどり着くために許されるヘッダパターンを求めてもよい。
経路検証分析部230は、上記のように生成した到達可能物理経路情報を、到達可能物理経路記憶部240に格納する。
違反経路出力部260は、設定ミスにより生じた違反の種類、違反している物理経路、および対応する仮想ネットワーク端点の情報を出力する。違反の種類には、到達性の違反と隔離性の違反が含まれる。本実施形態における到達性の違反とは、仮想ネットワークの設定では到達可能であるにも関わらず、物理ネットワークに経路が存在しない場合を指す。また、本実施形態における隔離性の違反とは、仮想ネットワークの設定では到達不可能であるにも関わらず、物理ネットワークに経路が存在する場合を指す。到達性の違反は、例えば、仮想ネットワークの設定情報が何らかのトラブルで物理機器に伝わらず、物理ネットワークにネットワーク運用者の意図した物理経路が設定されない場合に生じる。違反経路出力部260は、違反経路を、例えばコマンドラインで違反の種類と違反経路の情報を列挙して表示したり、GUI(Graphical User Interface)で仮想または物理ネットワークトポロジーと合わせて違反経路を表示したり、またはデータファイルで出力してもよい。
次に、物理仮想突合部250の動作について説明する。まず、図7を参照して、物理仮想突合部250の動作の概要について説明する。
物理仮想突合部250の仮想端点対生成部251は、仮想ネットワークに設定された仮想機器の設定情報(以降、「仮想機器設定情報」とも称する)を、仮想ネットワーク設定入力部210から取得する(B110)。
仮想端点対生成部251は、仮想ネットワーク設定入力部210から取得した仮想機器設定情報を参照して、到達可能な仮想端点対を算出する(B120)。
図8は、仮想ネットワーク設定入力部210から取得した仮想機器設定情報の例を示す図である。図8に示すように、仮想機器設定情報は、設定情報と結線情報とを含む。ここで、仮想機器には、仮想ネットワークの端点(仮想端点)だけでなく仮想ルータや仮想ブリッジなど経路の途中に配置され得る仮想機器も含まれる。設定情報には、仮想機器IDなど、仮想ネットワークにおいてその機器を特定させる情報が含まれる。
仮想機器が仮想端点の場合(図8に示す例では、仮想機器ID=「vEx_1」、「vEx_2」)、その仮想機器に対応付けられる物理端点(物理機器)であるスイッチのIDおよびポート番号も設定情報に含まれる。
結線情報には、結線仮想機器IDが含まれる。結線仮想機器IDとは、その仮想機器に隣接するように設定された仮想機器(結線仮想機器)のIDである。例えば、図1に示した仮想ネットワークの場合、仮想機器ID=「vBr_1」を持つ仮想機器は、仮想機器「vEx_1」と「vEx_2」と接続されている。したがって、仮想機器ID=「vBr_1」に対応する結線情報は、「vEx_1」、「vEx_2」となる。また、仮想機器ID=「vEx_1」、「vEx_2」に対応する結線情報は、ともに「vBr_1」となる。
仮想端点対生成部251は、仮想ネットワーク設定入力部210から上記のような仮想機器設定情報を取得して、各仮想機器の結線情報を結ぶことにより図1に示すような仮想ネットワーク全体の結線状態を把握する。そして、仮想端点対生成部251は、把握した仮想ネットワークにおける結線状態に基づいて、到達可能な仮想端点対を全て算出する。仮想端点対生成部251は、例えば図8に示す仮想機器設定情報を参照すると、仮想端点「vEx_1」から始まる経路は、「vEx_1」の結線仮想機器である「vBr_1」に移り、さらに、「vBr_1」の結線仮想機器であり端点となる「vEx_2」に移ることが分かる。そこで、仮想端点対生成部251は、仮想端点対として「vEx_1」および「vEx_2」を算出する。
続いて、仮想端点対生成部251は、算出した仮想端点対を元に、仮想端点対情報を生成する。図9は、仮想端点対生成部251が生成した仮想端点対情報の一例を示す図である。仮想端点対には、経路IDが割り当てられる。
仮想端点対生成部251は、経路IDを付与した、送信元仮想端点情報と宛先仮想端点情報とを含む仮想端点対情報を生成する。仮想端点対生成部251は、算出した仮想端点対の「vEx_1」を送信元仮想機器IDに、「vEx_2」を宛先仮想機器IDに、それぞれ設定する。
さらに、仮想端点対生成部251は、送信元仮想機器IDおよび宛先仮想機器IDを、それぞれ物理端点と対応付けるために必要なスイッチのIDやポート番号、VLAN−IDも、仮想端点対情報に含める。仮想端点対生成部251は、生成した仮想端点対情報を仮想端点対記憶部252に記憶する。
続いて、図7のB130に示すように、結線経路突合部253は、仮想端点対記憶部252から取得した仮想ネットワークにおける仮想端点対情報と、到達可能物理経路記憶部240から取得した到達可能物理経路情報とを突き合わせることにより、隔離性違反(Isolation)または到達性違反(Reachability)の経路を算出する。
図10は、結線経路突合部253により、結線違反となる経路を算出する動作を説明するフローチャートである。図10を参照して、結線経路突合部253の動作について説明する。
結線経路突合部253は、まず、仮想端点対記憶部252から仮想端点対情報を取得する(C110)。また、結線経路突合部253は、到達可能物理経路記憶部240から到達可能物理経路情報を取得する(C120)。
続いて、結線経路突合部253は、仮想端点対情報に基づいて、到達可能物理経路を探索する(C130)。すなわち、結線経路突合部253は、全ての到達可能物理経路に対する探索を終了していない場合(C130においてNo)、仮想端点対情報と到達可能物理経路とを突き合わせ、到達可能物理経路が仮想ネットワークに存在するかを調べる(C140)。結線経路突合部253は、上記探索に、図5に示した到達可能物理経路情報に含まれる送信元情報と宛先情報を利用する。すなわち、結線経路突合部253は、到達可能物理経路情報に含まれる送信元情報の送信元スイッチID、送信元ポート番号および送信元VLAN−IDと一致する送信元仮想端点情報と、宛先情報の宛先スイッチID、宛先ポート番号および宛先VLAN−IDと一致する宛先仮想端点情報との対が、仮想端点対情報に存在しているかを調べる。
上記対が仮想端点対情報に存在する場合(C150においてYes)、結線経路突合部253は、到達可能物理経路が仮想ネットワークに存在すると判断し、その仮想端点対情報に確認済みである印(チェック)を付与する(C160)。そして、結線経路突合部253は、その仮想端点対情報により示される経路を整合経路として結線突合経路記憶部254に記憶する(C161)。
一方、上記対が仮想端点対情報に存在しない場合(C150においてNo)、結線経路突合部253は、到達可能物理経路は仮想ネットワークに存在しないと判断し、その経路を隔離性違反に属する違反経路として結線突合経路記憶部254に記憶する(C170)。
例えば、図5の1行目に示される到達可能物理経路情報の送信元情報は、上述のように把握した図1に示すネットワーク構成における仮想端点「vEx_1」にマッピングされ、宛先情報は仮想端点「vEx_2」にマッピングされる。図9を参照すると、このマッピングにより生成される経路は、送信元仮想機器ID=「vEx_1」と宛先仮想機器ID=「vEx_2」が成す経路であるID=「1」の経路に一致する。結線経路突合部253は、経路ID=「1」を有する経路は整合経路であると判断して結線突合経路記憶部254に記憶すると共に、その仮想端点対情報に、確認済みであるチェックを付与する。
一方で、図5の2行目に示される到達可能物理経路情報について、送信元情報により示される端点と、図9の2行目に示される仮想端点対情報の送信元仮想端点情報により示される端点は一致するが、宛先情報により示される端点と、宛先仮想端点情報により示される端点は一致しない。したがって、この到達可能物理経路情報により示される経路は隔離性違反と判断される。
結線経路突合部253は、全ての到達可能物理経路について上記の探索を行い、全ての経路について探索が終わると(C130においてYes)、未チェックの仮想端点対情報を探索する(C180)。未チェックの仮想端点対情報が存在する場合(C190でYes)、結線経路突合部253は、その仮想端点対情報により示される経路を、到達性違反に属する違反経路として、結線突合経路記憶部254に記憶する(C200)。
上記のように、結線経路突合部253による仮想端点対情報と到達可能物理経路との突き合せにより得られ、結線突合経路記憶部254に記憶された情報を「結線突合経路情報」と称する。
図11Aおよび図11Bは、結線突合経路記憶部254に記憶された結線突合経路情報の例を示す図である。図11Aおよび図11Bに示す結線突合経路情報は、結線経路突合部253による上記突き合わせの結果検出された経路のステータス、経路IDおよび仮想ネットワークの端点情報(送信元仮想端点情報、宛先仮想端点情報)を含む。
図11Aに示すように、ステータスには、違反の種類として、隔離性違反と到達性違反が示される。違反でない経路のステータスには、整合(consistent)が示される。送信元仮想端点情報には、送信元仮想機器ID、および(ステータスが隔離性違反および整合の場合には、)到達可能物理経路情報から抽出した送信元ヘッダ情報IDが含まれる。宛先仮想端点情報には、宛先仮想機器ID、および(ステータスが隔離性違反および整合の場合には、)到達可能物理経路情報から抽出した宛先ヘッダ情報IDが含まれる。
なお、到達性違反の場合は物理ネットワークに対応するパケット情報がないので、送信元ヘッダ情報ID、宛先ヘッダ情報IDの値を「−1」や「*」等に設定することにより対象となるパケットがないことを明示してもよい。また、隔離性違反には、仮想経路にはない物理経路が該当する、すなわち対象となる仮想経路がないので、経路IDの値を「−1」や「*」等に設定することにより対象となる仮想経路がないことを明示してもよい。
また、図11Bに示すように、送信元ヘッダ情報IDおよび宛先ヘッダ情報IDに代えて、パケットの送信元および宛先のIPアドレスやMACアドレスの具体値が結線突合経路情報に含まれてもよい。
結線経路突合部253は、上記のように生成した結線突合経路情報を結線突合経路記憶部254に格納する。
違反経路出力部260は、結線突合経路記憶部254に格納された図11Aまたは図11Bに示すような結線突合経路情報を、例えばGUI表示やデータファイル出力等でネットワーク管理者に出力する。
以上のように、本第1の実施形態によれば、ネットワーク検証装置200は、仮想ネットワーク制御部101から取得した仮想ネットワークの設定情報に基づいて、仮想ネットワークにおいて到達可能な端点の対である仮想端点対を算出する。そして、結線経路突合部253は、ネットワーク100の物理機器に関する設定情報や結線情報に基づいて算出された到達可能物理経路をなす端点の対と仮想端点対とを突き合わせる。結線経路突合部253は、到達可能物理経路をなす端点の対と一致する仮想端点対がない物理経路を、隔離性違反の経路として検出する。
上記構成を採用することにより、仮想ネットワークの設定違反の検証に、通常は到達可能物理経路数の2乗のオーダーの計算時間を要するに対して、到達可能物理経路数のオーダーの計算時間で経路の検証ができるので、隔離性違反の経路の検証を高速に行うことができるという効果が得られる。
第2の実施形態
構成の説明
次に、上述した第1の実施形態を基礎とする第2の形態について図面を参照して説明する。以下の説明では、第1の実施形態と同様の構成については同じ参照番号を付与することにより、重複する説明は省略する。
図12は、本発明の第2の実施形態に係るネットワーク検証装置300の構成を示すブロック図である。図12のネットワーク検証装置300は、第1の実施形態で説明した図2に示したネットワーク検証装置200と同様に、ネットワーク100における設定違反の検証を行う(図12においては、ネットワーク100の図示を省略している)。
図12に示すように、第2の実施の形態に係るネットワーク検証装置300は、第1の実施形態において説明した物理仮想突合部250に代えて物理仮想突合部350を備える。物理仮想突合部350は、第1の実施形態において説明した物理仮想突合部250の機能に加えて、ネットワーク100の仮想ネットワークに設定された仮想機器に設定されているフィルタ情報(以降、「フィルタ設定」とも称する)を考慮して違反経路の検出を行う機能を有する。ここで、本実施形態におけるフィルタ設定とは、仮想機器に設定されている、パケットの転送制御に関する条件を指す。パケットがネットワーク100(物理ネットワーク)の端点に流入した時点のヘッダ情報が、フィルタ設定で示されている条件にマッチする場合、仮想機器は、そのパケットに、フィルタ設定に含まれているアクションを適用する。
第2の実施形態に係る物理仮想突合部350は、上記の転送制御の条件を加味して、違反経路の検出を行う。
図12に示すように、物理仮想突合部350は、物理仮想突合部250の構成に加えて、破線315で囲った構成要素、すなわちフィルタ情報解析部255、フィルタ判定部256、フィルタ判定結果記憶部257および違反経路分析部258を備える。
物理仮想突合部350の各構成要素の概要について説明する。
フィルタ情報解析部255は、違反経路の特定に必要となるフィルタ判定情報を生成する。フィルタ判定部256は、フィルタ情報解析部255により生成されたフィルタ判定情報に基づいて、フィルタ設定を加味した経路の判定を行う。フィルタ判定結果記憶部257は、フィルタ判定部256による判定結果を記憶する。違反経路分析部258は、フィルタ判定部256による判定結果と、第1の実施形態にて説明した結線突合経路記憶部254に記憶される、違反経路と判断された結線突合経路情報とに基づいて、フィルタ設定を加味した違反経路の検出を行う。
図13は、図12に示したフィルタ情報解析部255の詳細な構成を示すブロック図である。図13に示すように、フィルタ情報解析部255は、フィルタ設定情報集約部(フィルタ情報取得手段)2551、集約フィルタ情報記憶部2552、経路フィルタ情報生成部2553、経路フィルタ情報記憶部2554およびフィルタ判定情報生成部2555を備える。
図14は、図12に示した物理仮想突合部350の動作の概要を示すフローチャートである。物理仮想突合部350は、第1の実施形態における物理仮想突合部250の動作に加えて、フィルタ設定を加味した経路の判定を行う。まず、図12および図14を参照して、物理仮想突合部350の動作の概要について説明する。
図14に示すD110乃至D130について、物理仮想突合部350は、図7に示すB110乃至B130と同様の動作を行う。ここで、D130において算出された違反経路は、仮想ネットワークにおける仮想機器になされたフィルタ設定は考慮されておらず、結線情報のみに基づいて検出された違反経路である。つまり、仮想機器になされたフィルタ設定によっては、違反ではない経路であっても、D130では違反として判断されている場合がある。そこで、本第2の実施形態では、D140以降の処理において、フィルタ設定を加味した違反経路の検出を行うことにより、違反経路検出の精度を上げることを説明する。
物理仮想突合部350は、概略以下の動作を行う。まず、フィルタ情報解析部255は、フィルタ判定情報を生成する(D140)。続いて、フィルタ判定部256は、生成されたフィルタ判定情報に基づいて、送信するパケットに関するパケット情報と、フィルタ判定情報に含まれる条件(フィルタ条件)がマッチするか否かを判定し、その判定結果であるフィルタ判定結果情報を生成する(D150)。続いて、違反経路分析部258は、D130で生成された結線違反経路情報と、D150で生成されたフィルタ判定結果情報とに基づいて、フィルタ設定を加味した違反経路の検出を行う(D160)。
次に、図13を参照して、フィルタ情報解析部255の詳細について説明する。
フィルタ情報解析部255のフィルタ設定情報集約部2551は、ネットワーク100の仮想ネットワークにある仮想機器に設定されているフィルタ情報を取得すると共に、機器単位で設定されているフィルタ情報を集約することにより、フィルタ条件単位で示される集約フィルタ情報を生成する。集約フィルタ情報記憶部2552は、フィルタ設定情報集約部2551により生成された集約フィルタ情報を記憶する。
経路フィルタ情報生成部2553は、フィルタ設定がなされた仮想機器にトポロジー情報を付与した(仮想機器がどの経路に属しているかを示す)経路フィルタ情報を生成する。経路フィルタ情報記憶部2554は、経路フィルタ情報生成部2553により生成された経路フィルタ情報を記憶する。フィルタ判定情報生成部2555は、集約フィルタ情報記憶部2552から取得した集約フィルタ情報に、経路フィルタ情報記憶部2554から取得した経路フィルタ情報により示されるトポロジー情報を付与するとともに、結線突合経路記憶部254に記憶される結線突合経路情報を参照して、フィルタ判定情報を生成する。
図15は、図14のD140に示したフィルタ情報解析部255の動作(E110乃至E140)と、D150に示したフィルタ判定部256の動作(E150)と、D160に示した違反経路分析部258の動作(E160)の概要を示すフローチャートである。また、図16乃至図25は、E110乃至E160に示す処理の実行にあたり、フィルタ情報解析部255、フィルタ判定部256または違反経路分析部258が生成する情報を示す図、またはそれらの動作を示すフローチャートである。図15乃至図25を参照して、フィルタ情報解析部255、フィルタ判定部256および違反経路分析部258の動作について説明する。
フィルタ情報解析部255のフィルタ設定情報集約部2551は、仮想機器ごとに設定されたフィルタ設定情報を仮想ネットワーク設定入力部210から取得する(E110)。図16は、フィルタ設定情報集約部2551が取得したフィルタ設定情報の例を示す図である。フィルタ設定情報は、例えば「vBr_1」など、フィルタ設定がなされた仮想機器ごとに生成されている。図16では、フィルタ設定情報は、フィルタID、仮想機器ID、優先度、条件値およびアクションを含む。条件値には、送信元IPアドレスおよび送信元MACアドレスが含まれる。
フィルタIDは、設定されているフィルタごとに付与された識別情報である。仮想機器IDは、そのフィルタ設定がなされている仮想機器の識別情報である。優先度は、同じフィルタIDを有する条件を適用する際の優先順位を示す値である。例えば、図16の1行目と2行目は同じフィルタID=「1」を有し、1行目の優先度の値が低い(優先順位が高い)ので、1行目に示される条件が先に適用されることを示す。条件値は、その仮想機器を通過するパケットの転送制御の条件を示す。すなわち、パケットの送信元のIPアドレスとMACアドレスが、当該フィルタ設定情報に含まれる条件値の「送信元IPアドレス」と「送信元MACアドレス」と整合するか否かが判定される(詳細は後述する)。アクションは、その仮想機器を通過するパケットの送信元のIPアドレスとMACアドレスが条件値の各値とマッチする場合、そのパケットに対して行われるアクションを示す。
送信元IPアドレス、送信元MACアドレスの条件値には、1つの値を指定してもよいし、ネットマスクやプレフィックス値を利用して範囲指定してもよいし、もしくは「ANY」(全ての値)を指定してもよい。アクションには、例えばパケット通過を指示する「Pass」、パケット破棄を指示する「Drop」などが指定されてもよい。
フィルタ設定情報集約部2551は、上記のようなフィルタ設定情報に基づいて、フィルタ条件単位で集約した集約フィルタ情報を生成する(E120)。図17は、集約フィルタ情報の例を示す図である。集約フィルタ情報は、仮想機器ごとに設定されたフィルタ設定情報のうち、条件値が重複する複数の情報を1つに集約した情報である。
具体的には、フィルタ設定情報集約部2551は、図18に示すフローチャートの手順で、集約フィルタ情報を生成する。フィルタ設定情報集約部2551は、仮想ネットワーク設定入力部210から、フィルタ設定情報を取得する(F110)。フィルタ設定情報集約部2551は、フィルタ設定情報について探索を行う(F120)。すなわち、フィルタ設定情報集約部2551は、未探索のフィルタ設定情報から、条件値とアクションの組(条件組)を取得する(F130)。そして、フィルタ設定情報集約部2551は、取得した条件組が、集約フィルタ情報記憶部2552に記憶されていない新しい条件組である場合(F140においてYes)、その条件組にフィルタグループIDを割り当てると共にその条件組を集約フィルタ情報記憶部2552に記憶する(F150)。
そして、フィルタ設定情報集約部2551は、集約フィルタ情報記憶部2552に記憶した条件組に含まれている条件値が設定されている仮想機器のIDを、フィルタ設定情報から抽出して条件組に追加する(F160)。上記動作により、集約フィルタ情報が生成される。F140において、新しい条件組でない場合、フィルタ設定情報集約部2551は、すでに集約フィルタ情報記憶部2552に記憶されている条件組に、当該条件値が設定されている仮想機器のIDを追加する。
図17におけるフィルタグループID=2で示される集約フィルタ情報は、図16のフィルタID=「2」、「3」を有するフィルタ設定情報が集約された結果である。この集約の際、条件同値性を調べる方法として、例えば特許文献4に記されているような条件情報の正規化とビット演算を用いた方法が利用されてもよい。
続いて、図15のE130に示すように、経路フィルタ情報生成部2553は、仮想端点対記憶部252に記憶されている仮想端点対情報と、仮想ネットワーク設定入力部210から取得した仮想機器設定情報およびフィルタ設定情報に基づいて、フィルタ設定にトポロジー情報を付与する。すなわち、経路フィルタ情報生成部2553は、仮想端点対を結ぶ経路で通過するフィルタのIDまたはフィルタ設定がなされている仮想機器のIDを列挙し、経路IDとフィルタID(または仮想機器ID)とを対応付けた経路フィルタ情報を生成する。経路フィルタ情報生成部2553は、生成した経路フィルタ情報を経路フィルタ情報記憶部2554に格納する。
図19は、経路フィルタ情報生成部2553により経路フィルタ情報を生成する動作を示すフローチャートである。図19に示すように、経路フィルタ情報生成部2553は、まず、仮想ネットワーク設定入力部210から仮想機器設定情報およびフィルタ設定情報を取得すると共に、仮想端点対記憶部252に記憶されている仮想端点対情報を取得する(G110)。
経路フィルタ情報生成部2553は、仮想端点対を結んだ経路にあるフィルタ設定がなされた仮想機器を検出し、その仮想機器の情報または設定されたフィルタIDを抽出する(G120)。ここで、仮想機器の情報は、例えば、「vEx_1」などの仮想機器IDや、物理機器と対応付けるためのスイッチID、ポート番号、VLAN−IDでもよい。例えば、図1に示した経路ID=1の場合、経路フィルタ情報生成部2553は、仮想端点対=「vEx_1:vEx_2」を結ぶ経路に存在する「vBr_1」を検出する。この「vBr_1」には、図16に基づいて、フィルタID=1が設定されていることが分かる。そこで、経路フィルタ情報生成部2553は、仮想機器ID=「vBr_1」、またはその仮想機器になされたフィルタID=「1」と、上記経路ID=「1」とを関連付けた経路フィルタ情報を生成し、経路フィルタ情報記憶部2554に記憶する(G130)。
図20Aおよび図20Bは、経路フィルタ情報記憶部2554で保持される経路フィルタ情報の例を示す図である。図20Aに示すように、経路フィルタ情報は、経路のIDと、その経路で通過するフィルタのIDとを関連づける。経路IDで示される経路を通過するフィルタが複数ある場合は、通過する順にフィルタのIDが列挙される。
続いて、図15のE140に示すように、フィルタ判定情報生成部2555は、フィルタ設定の情報と経路の情報とを対応付けて、フィルタ判定情報を生成する。ここで、ある経路にある仮想機器を通過するパケット情報と、その経路において仮想機器になされているフィルタ設定とが整合していれば、その仮想機器を通過するパケットはフィルタ設定通りに動作することになる。この場合、その経路は、結線情報に基づいて到達性違反と判定されていたとしても、フィルタ設定を加味すると到達性違反ではないと判定できる。フィルタ判定情報生成部2555は、このようなフィルタ設定を加味した経路の判定を行うためのフィルタ判定情報を生成する。ここで、上記の「整合している場合」には、仮想機器を通過するパケット情報が、「Pass」アクションが設定されたフィルタの条件にマッチする場合が含まれる。また、「Drop」アクションが設定されたフィルタの条件に関しては、仮想機器を通過するパケット情報が当該条件にマッチしない場合、「整合している」と判断される。
図21は、フィルタ判定情報生成部2555がフィルタ判定情報を生成する動作を示すフローチャートである。フィルタ判定情報生成部2555は、まず、集約フィルタ情報記憶部2552から集約フィルタ情報を、経路フィルタ情報記憶部2554から経路フィルタ情報を、結線突合経路記憶部254から結線突合経路情報を、それぞれ取得する(H110)。
フィルタ判定情報生成部2555は、結線突合経路情報により示される全ての経路の探索を行う(H120)。すなわち、結線突合経路情報に含まれる経路IDに対応するフィルタID(または仮想機器ID)を経路フィルタ情報から抽出する(H130)。ここでは、第1の実施形態において説明した図11Aまたは図11Bに示す結線突合経路情報を例として説明する。図11Aに示される結線突合経路情報において、経路ID=1に対応するフィルタIDは、図20Aに基づいて「1」であることが分かる。
続いて、フィルタ判定情報生成部2555は、上記経路IDにより示される経路のステータスを調べ(H140)、そのステータスが、「整合」である場合、パケット情報として、結線突合経路情報から送信元ヘッダ情報ID(またはIPアドレス、MACアドレスなどのパケット情報)を取得する(H150)。ステータスが「到達性違反」である場合、フィルタ判定情報生成部2555は、パケット情報として「ヘッダ情報がないこと」を保持する(H160)。
フィルタ判定情報生成部2555は、上記情報に基づいて、パケット情報と、パケット情報に関連するフィルタの情報とを対応付けたフィルタ判定情報を生成する(H170)。図22は、フィルタ判定情報を示す図である。図22に示すように、フィルタ判定情報は、経路ID、ヘッダ情報ID、仮想機器IDおよびフィルタグループIDを含む。
例えば、経路ID=「1」に対応するヘッダ情報IDは、図11Aの結線突合経路情報の送信元ヘッダ情報IDから「1」、仮想機器IDは、図20Bの経路フィルタ情報から「vBr_1」、フィルタグループIDは、図17の集約フィルタ情報から「1」が、それぞれフィルタ判定情報に設定されている。
経路ID=「3」の経路は、図11Aの結線突合経路情報からステータスが「到達性違反」であるのでヘッダ情報を保持しない。したがって、フィルタ判定情報のヘッダ情報IDには、ヘッダ情報がないことを示す「−1」が設定される。なお、ステータスが「隔離性違反」である結線突合経路情報については、仮想ネットワークが存在せずフィルタ設定に関する判定は不要であるので、何もしない。
続いて、図15のE150に示すように、フィルタ判定部256は、上述のように生成されたフィルタ判定情報に基づいて、フィルタ設定を加味した違反経路の検出を行う。図22の例では、経路ID=「1」の経路はステータスが「整合」であり違反ではないので、フィルタ判定部256は、ステータスが「到達性違反」である経路ID=「2」、「3」の経路について検討する。フィルタ判定部256は、まず、経路ID=「2」の経路のフィルタグループID=「2」の条件値を調べる。
図17に示したように、フィルタグループID=「2」の条件値は、送信元IPアドレス=「IP2」、送信元MACアドレス=「ANY」であり、アクションは「Drop」である。「Drop」アクションが設定されたフィルタに関しては、そのフィルタを適用した結果通過するパケットがない場合に、「違反ではない」と判断できる。フィルタグループID=「2」のフィルタの条件の場合、送信元IPアドレス=「IP2」以外のパケットは「Drop」せず、宛先に送信する必要がある。したがって、経路ID=「2」に関しては、到達性違反であるとの判断は変わらない。
続いて、フィルタ判定部256は、経路ID=「3」の経路のフィルタグループID=「x」の条件値を調べる。
図17に示したように、フィルタグループID=「x」の条件値は、すべて「ANY」であり、アクションは「Drop」である。つまり、経路ID=「3」にある仮想機器「vRt_1」には、「すべてのパケットをDropする」というフィルタ設定がなされている。経路ID=「3」は、結線突合経路情報に到達性違反として含まれている、つまり物理ネットワークが存在しないために違反であると判定されているが、フィルタ設定によりこの経路は「すべてのパケットをDrop」する。したがって、この経路は、到達性違反ではないと判断できる。
図23は、フィルタ判定部256による上記のようなフィルタ設定を加味した違反経路の判定の結果を示すフィルタ判定結果情報を示す図である。フィルタ判定結果情報は、図11Aに示した結線突合経路情報に、フィルタグループIDが追加された情報である。図23に示すように、フィルタ設定を加味した違反経路の判定の結果、検出された違反経路は経路ID=「2」の到達性違反のみである。つまり、図11Aではステータス「到達性違反」として結線突合経路情報に含まれている経路ID=「3」は、フィルタ設定を加味した違反経路の判定の結果、違反ではないと判定される。フィルタ判定部256は、生成したフィルタ判定結果情報を、フィルタ判定結果記憶部257に記憶する。
続いて、図15のE160に示すように、違反経路分析部258は、上述のように生成したフィルタ判定結果情報と、結線突合経路記憶部254に記憶されている結線突合経路情報に基づいて、フィルタ設定を加味した違反経路を検出する。
図24は、違反経路分析部258によりフィルタ設定を加味した違反経路を検出する動作を示すフローチャートである。違反経路分析部258は、まず、結線突合経路記憶部254から結線突合経路情報を取得すると共に、フィルタ判定結果記憶部257からフィルタ判定結果情報を取得する(I110)。
違反経路分析部258は、結線突合経路情報から、ステータスが「隔離性違反」である経路を抽出する(I120)。そして、違反経路分析部258は、結線突合経路情報から抽出したステータスが「隔離性違反」である経路の情報と、フィルタ判定結果記憶部257から取得したフィルタ判定結果情報を統合することにより、違反経路情報を生成する(I130)。
図25は、上記のように生成された違反経路情報の例を示す図である。図11Aに示した結線突合経路情報と比較して、経路ID=「3」の経路が含まれていない。これは、上述のように、フィルタ設定を加味して経路ID=「3」の経路は違反ではないと判断されたので、違反経路情報には含まれないことを示す。すなわち、上述のように、経路ID=「3」の経路では、「vRt_1」に「全てのパケットをDropする」というフィルタ(フィルタグループID=x)が設定されているので、経路ID=「3」の経路は到達不可能となる。よって、物理ネットワークに到達可能経路が無くても(ヘッダ情報ID=「−1」)、到達性違反とはならない。
経路ID=「-1」の経路は、ステータスが「隔離性違反」であり、フィルタ設定に関わらず検出される違反経路である。この場合は、フィルタグループIDには、「−1」、「*」など、フィルタ判定が不要である旨を設定してもよい。また、違反経路情報は、違反に関連するフィルタ設定情報を含んでもよい。
以上のように、本第2の実施形態によれば、ネットワーク検証装置300の物理仮想突合部350は、仮想ネットワークの仮想機器に設定されているフィルタ設定を取得すると共に、フィルタ設定がなされた仮想機器がどの経路に属しているかを算出する。そして、物理仮想突合部350は、仮想機器を通過するパケットのパケット情報と、仮想機器のフィルタ設定とに基づいて、第1の実施形態において違反と検出された経路のうち、フィルタ設定を加味すると違反でない経路を検出する。これにより、本第2の実施形態によれば、違反経路検出の精度を向上できるという効果が得られる。
また、物理仮想突合部350のフィルタ情報解析部255は、フィルタ設定情報集約部2551において、仮想ネットワークに仮想機器単位で設定されているフィルタ情報を条件単位のフィルタ情報に集約する。これにより、本第2の実施形態によれば、ブーリアン代数等のような変換を必要とせず、ネットワークで重複する条件を含むフィルタ情報を集約することにより、フィルタ設定がなされた仮想機器すべてのフィルタ情報に関する違反判定は不要となる。これにより、フィルタ情報に基づく違反判定の回数、すなわち違反判定時間を削減できるので、ネットワーク検証時間をさらに短縮できるという効果が得られる。
第3の実施形態
図26は、本発明の第3の実施形態に係るネットワーク検証装置400の構成を示す図である。上述の第1および第2の実施形態におけるネットワーク検証装置200、300は、第3の実施形態におけるネットワーク検証装置400を基本としている。図26に示すように、ネットワーク検証装置400は、物理経路取得部410、仮想端点対算出部420および違反検出部430を備える。
物理経路取得部410は、検証対象のネットワークにおいて通信パケットが送受信される物理経路の端点となる物理機器の対に関する物理経路情報を取得する。仮想端点対算出部420は、ネットワークに対応付けられることにより、該ネットワークを利用して通信パケットを送るように仮想的に設定された仮想ネットワークにおける仮想機器の設定情報に基づいて、仮想ネットワークにおいて通信パケットを送受信するように設定された仮想経路の端点となる仮想機器の対を算出する。
違反検出部430は、物理経路取得部410により取得された物理経路情報と、仮想端点対算出部420により算出された仮想機器の対とに基づいて、ネットワークにおける設定違反を検出する。
なお、物理経路取得部410および違反検出部430は、上記第1の実施形態における結線経路突合部253に相当し、仮想端点対算出部420は、仮想端点対生成部251に相当する。
上記構成を採用することにより、本第3の実施形態によれば、物理経路情報の数のオーダーの計算時間で経路の検証ができるので、違反の経路の検証を高速に行うことができるという効果が得られる。
なお、図2等に示したネットワーク検証装置の各部は、図27に例示するハードウエア資源において実現される。すなわち、図27に示す構成は、CPU(Central Processing Unit)10、RAM(Random Access Memory)11、ROM(Read Only Memory)12、I/O(Input/Output)デバイス13およびストレージ14を備える。CPU10は、ROM12またはストレージ14に記憶された各種ソフトウエア・プログラム(コンピュータ・プログラム)を、RAM11に読み出して実行することにより、ネットワーク検証装置の全体的な動作を司る。すなわち、上記各実施形態において、CPU10は、ROM12またはストレージ14を適宜参照しながら、ネットワーク検証装置が備える各機能(各部)を実行するソフトウエア・プログラムを実行する。
また、上述した各実施形態では、図2等に示したネットワーク検証装置における各ブロックに示す機能を、図27に示すCPU10が実行する一例として、ソフトウエア・プログラムによって実現する場合について説明した。しかしながら、図2等に示した各ブロックに示す機能は、一部または全部を、ハードウエアとして実現してもよい。
また、各実施形態を例に説明した本発明は、ネットワーク検証装置に対して、上記説明した機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、CPU10がRAM11に読み出して実行することによって達成される。
また、係る供給されたコンピュータ・プログラムは、読み書き可能なメモリ(一時記憶媒体)またはハードディスク装置等のコンピュータ読み取り可能な記憶デバイスに格納すればよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード或いは係るコンピュータ・プログラムを格納した記憶媒体によって構成されると捉えることができる。
100 ネットワーク
101 仮想ネットワーク制御部
102、102、102 ネットワーク機器
200、300、400 ネットワーク検証装置
210 仮想ネットワーク設定入力部
220 物理ネットワーク設定入力部
230 経路検証分析部
240 到達可能物理経路記憶部
250、350 物理仮想突合部
251 仮想端点対生成部
252 仮想端点対記憶部
253 結線経路突合部
254 結線突合経路記憶部
255 フィルタ情報解析部
256 フィルタ判定部
257 フィルタ判定結果記憶部
258 違反経路分析部
260 違反経路出力部
410 物理経路取得部
420 仮想端点対算出部
430 違反検出部
2551 フィルタ設定情報集約部
2552 集約フィルタ情報記憶部
2553 経路フィルタ情報生成部
2554 経路フィルタ情報記憶部
2555 フィルタ判定情報生成部

Claims (10)

  1. 検証対象のネットワークにおいて通信パケットが送受信される物理経路の端点となる物理機器の対に関する物理経路情報を取得する物理経路取得手段と、
    前記ネットワークに対応付けられることにより、該ネットワークを利用して前記通信パケットを送るように仮想的に設定された仮想ネットワークにおける仮想機器の設定情報に基づいて、当該仮想ネットワークにおいて前記通信パケットを送受信するように設定された仮想経路の端点となる前記仮想機器の対を算出する仮想端点対算出手段と、
    前記物理経路取得手段により取得された物理経路情報と、前記仮想端点対算出手段により算出された前記仮想機器の対とに基づいて、前記ネットワークにおける設定違反を検出する違反検出手段と
    を備えたネットワーク検証装置。
  2. 前記仮想経路の端点となる前記仮想機器に、前記ネットワークにおいて前記通信パケットが送受信される物理経路の端点となる前記物理機器がそれぞれ対応付けられた
    請求項1記載のネットワーク検証装置。
  3. 前記違反検出手段は、前記物理経路情報に含まれる前記物理経路の端点となる前記物理機器の対に対応付けられる前記仮想機器の対がない場合、当該物理機器の対がなす経路を違反と判定する
    請求項2記載のネットワーク検証装置。
  4. 前記違反検出手段は、前記仮想端点対算出手段により算出された前記仮想機器の対に対応付けられる前記物理機器の対が前記物理経路情報にない場合、前記仮想機器の対がなす経路を違反と判定する
    請求項2または請求項3記載のネットワーク検証装置。
  5. 前記仮想機器に設定されているフィルタ情報を取得するフィルタ情報取得手段と、
    前記仮想端点対算出手段により算出された前記仮想機器の対がなす前記仮想経路のうち前記フィルタ情報が設定された前記仮想機器を含む前記仮想経路を通る前記通信パケットのパケット情報を、当該仮想経路の端点となる前記仮想機器に対応付けられる前記物理機器に入力されるパケットから取得すると共に、当該仮想経路における前記仮想機器に設定された前記フィルタ情報と前記パケット情報とを関連付けたフィルタ判定情報を生成するフィルタ判定情報生成手段と、
    前記フィルタ判定情報に基づいて、前記違反検出手段により違反と判定された経路のうち、違反でない経路を検出するフィルタ判定手段
    をさらに備えた請求項4記載のネットワーク検証装置。
  6. 前記フィルタ判定手段は、前記フィルタ判定情報において前記フィルタ情報と前記パケット情報とが関連付けられた経路のうち、当該経路における前記仮想機器に設定された前記フィルタ情報に含まれる条件と、当該経路を通る前記通信パケットの前記パケット情報とが整合している場合、当該経路を違反ではないと判定する
    請求項5記載のネットワーク検証装置。
  7. 前記フィルタ判定手段は、前記フィルタ判定情報において前記フィルタ情報と前記パケット情報とが関連付けられた経路のうち、当該経路における前記仮想機器に設定された前記フィルタ情報に含まれるアドレスと、当該経路を通る前記通信パケットの送信元アドレスとが整合している場合、当該経路を違反ではないと判定する
    請求項6記載のネットワーク検証装置。
  8. 前記フィルタ情報取得手段は、前記仮想機器の単位で設定されている前記フィルタ情報のうち、当該フィルタ情報に含まれる条件が一致する前記フィルタ情報を集約して条件の単位で示される集約フィルタ情報を生成する
    請求項5ないし請求項7のいずれか1項記載のネットワーク検証装置。
  9. 検証対象のネットワークにおいて通信パケットが送受信される物理経路の端点となる物理機器の対に関する物理経路情報を取得し、
    前記ネットワークに対応付けられることにより、該ネットワークを利用して前記通信パケットを送るように仮想的に設定された仮想ネットワークにおける前記仮想機器の設定情報に基づいて、当該仮想ネットワークにおいて前記通信パケットを送受信するように設定された仮想経路の端点となる前記仮想機器の対を算出し、
    前記取得された物理経路情報と、前記算出された前記仮想機器の対とに基づいて、前記ネットワークにおける設定違反を検出する
    ネットワーク検証方法。
  10. 検証対象のネットワークにおいて通信パケットが送受信される物理経路の端点となる物理機器の対に関する物理経路情報を取得する処理と、
    前記ネットワークに対応付けられることにより、該ネットワークを利用して前記通信パケットを送るように仮想的に設定された仮想ネットワークにおける前記仮想機器の設定情報に基づいて、当該仮想ネットワークにおいて前記通信パケットを送受信するように設定された仮想経路の端点となる前記仮想機器の対を算出する処理と、
    前記取得された物理経路情報と、前記算出された前記仮想機器の対とに基づいて、前記ネットワークにおける設定違反を検出する処理と
    を、コンピュータに実行させるプログラム。
JP2015116475A 2015-06-09 2015-06-09 ネットワーク検証装置、ネットワーク検証方法およびプログラム Pending JP2017005449A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015116475A JP2017005449A (ja) 2015-06-09 2015-06-09 ネットワーク検証装置、ネットワーク検証方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015116475A JP2017005449A (ja) 2015-06-09 2015-06-09 ネットワーク検証装置、ネットワーク検証方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2017005449A true JP2017005449A (ja) 2017-01-05

Family

ID=57752377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015116475A Pending JP2017005449A (ja) 2015-06-09 2015-06-09 ネットワーク検証装置、ネットワーク検証方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2017005449A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019220862A (ja) * 2018-06-20 2019-12-26 エヌ・ティ・ティ・アドバンステクノロジ株式会社 仮想ネットワーク監視システム、仮想ネットワーク監視装置、仮想ネットワーク監視方法及びコンピュータープログラム
US11588713B2 (en) 2019-12-10 2023-02-21 Ntt Advanced Technology Corporation Virtual network monitoring system, virtual network monitoring apparatus, virtual network monitoring method, and non-transitory computer-readable recording medium

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019220862A (ja) * 2018-06-20 2019-12-26 エヌ・ティ・ティ・アドバンステクノロジ株式会社 仮想ネットワーク監視システム、仮想ネットワーク監視装置、仮想ネットワーク監視方法及びコンピュータープログラム
JP7005436B2 (ja) 2018-06-20 2022-02-10 エヌ・ティ・ティ・アドバンステクノロジ株式会社 仮想ネットワーク監視システム、仮想ネットワーク監視装置、仮想ネットワーク監視方法及びコンピュータープログラム
US11588713B2 (en) 2019-12-10 2023-02-21 Ntt Advanced Technology Corporation Virtual network monitoring system, virtual network monitoring apparatus, virtual network monitoring method, and non-transitory computer-readable recording medium

Similar Documents

Publication Publication Date Title
Beckett et al. A general approach to network configuration verification
WO2016199404A1 (ja) ネットワーク検証装置、ネットワーク検証方法およびプログラム記録媒体
Khurshid et al. Veriflow: Verifying network-wide invariants in real time
Shukla et al. Towards meticulous data plane monitoring
Lopes et al. Checking beliefs in dynamic networks
Gember-Jacobson et al. Automatically repairing network control planes using an abstract representation
Majumdar et al. Kuai: A model checker for software-defined networks
Sethi et al. Abstractions for model checking SDN controllers
US10305749B2 (en) Low latency flow cleanup of openflow configuration changes
Suzuki et al. A survey on OpenFlow technologies
Wu et al. Virtual network diagnosis as a service
Qiu et al. Global Flow Table: A convincing mechanism for security operations in SDN
Xu et al. Identifying SDN state inconsistency in OpenStack
CN114567582B (zh) 一种基于路径跟踪反馈的sdn网络可信路由调度方法
CN111698110B (zh) 一种网络设备性能分析方法、系统、设备及计算机介质
US11750490B2 (en) Communication coupling verification method, storage medium, and network verification apparatus
JP2017005449A (ja) ネットワーク検証装置、ネットワーク検証方法およびプログラム
Prabhu et al. Predicting network futures with plankton
Zhao et al. Troubleshooting data plane with rule verification in software-defined networks
US20140298329A1 (en) System, method, and computer-readable medium
US20230231806A1 (en) Ghost routing
Hussein et al. SDN verification plane for consistency establishment
Chowdhary et al. Intent-driven security policy management for software-defined systems
Xu et al. SDN state inconsistency verification in openstack
Zhang et al. Toward comprehensive network verification: Practices, challenges and beyond