(58)【調査した分野】(Int.Cl.,DB名)
前記フロー情報格納処理機能は、前記メタデータを各テーブル用の区画に区切り、各テーブルでの前記転送ルールIDをそれぞれの前記区画に記載することを特徴とする請求項1から3のいずれかに記載のネットワーク検証システム。
パケットのマッチ条件、前記マッチ条件に合致したアクションを記した転送ルール、及び前記転送ルールの情報である転送ルールIDが設定されたフローテーブルを有する、少なくとも1台の転送装置で構成される仮想ネットワークの正常性を検証するフロー検査装置であって、
前記転送装置の前記フローテーブルに設定されている前記転送ルール及び前記転送ルールIDを保管するフロー情報管理部と、
所望の前記マッチ条件に合致するヘッダー情報を持つ試験パケットを生成し、前記転送装置へ送信する試験パケット生成部と、
前記転送装置からの試験結果を受信する試験結果受信部と、
前記試験パケットを送信する前に、前記転送装置の前記フローテーブルに設定されている前記転送ルールを、
受信したパケットが前記試験パケットであるか否かを判断する試験パケット判定機能
、
前記試験パケットのマッチ条件に合致する前記転送ルールの前記転送ルールIDをメ
タデータに書き込むフロー情報格納処理機能、及び
受信したパケットが前記試験パケットである場合に前記メタデータに書き込まれてい
る前記転送ルールIDを前記試験パケットとともに前記試験結果として前記試験結果受
信部へ送信し、さらに前記転送ルールに他の転送装置への転送又は廃棄が設定されてい
る場合は前記試験パケットを転送又は廃棄する転送先判定機能、
を有するルールへ変換するフローテーブル変換部と、
前記試験結果受信部が受信した前記試験結果の前記試験パケットの識別情報に基づいて前記フロー情報管理部から前記所望のマッチ条件に対する前記転送ルールを検出し、該転送ルールと前記試験結果受信部が受信した前記試験結果の前記転送ルールとを比較して前記仮想ネットワークの正常性を検証する試験結果判定部と、
を有することを特徴とするフロー検査装置。
【背景技術】
【0002】
SDN(Software−Defined Networking)を実現するための代表的なプロトコルの1つにOpenFlowがある。OpenFlowはデータ転送制御機能部をデータ転送機能部と分離し、その間に統一的でオープンなインタフェースを規定する事により、データ転送機能の柔軟な制御を実現する。OpenFlowは通信をエンドツーエンドの“フロー”として捉え、フロー単位で経路制御を行う。
【0003】
OpenFlowはOSI参照モデルで規定された各レイヤの宛先アドレスに従ってパケット転送を行うのではなく、複数のレイヤに跨がる情報の組み合わせで構成されたマッチ条件に一致したヘッダ情報を持つパケットに対して、指定したアクションを実施し転送を行う。このマッチ条件とアクションの組み合わせを“フローエントリ”と呼ぶ。フローエントリには、マッチフィールド、とアクションフィールドに加えて、カウンタと呼ばれるフロー毎の統計情報が付加される。
【0004】
上記OpenFlowに代表されるフローベースのパケット処理を行うSDNノードにより構成されたネットワークの正常性を検査するためには、検査したいフローエントリにマッチするヘッダ情報を持つ試験パケットを送信して、相手先SDNノードへの到着確認、経由したSDNノード情報の取得、各SDNノード内でマッチしたフローエントリ情報の取得を行う必要がある。なお、以下の説明では、「SDNノード」を「転送装置」と記載することがある。
【0005】
従来、ネットワーク装置の動作や各装置間の到達性を確認し、ネットワークの正常性を検査するために、Ethernet(登録商標) OAMやICMPプロトコルを利用したpingやtraceroute等が用いられてきた。しかし、SDNノードにより形成された仮想ネットワーク内でEthernet(登録商標) OAMやping、traceroute等を利用したとしても、各ツールと同じマッチ条件を持つ特定のフローエントリを検査する事しかできず、マッチ条件に異なる条件(異なるIPプロトコル番号等)が含まれるフローエントリの正常性を検査する事はできない。
【0006】
従来の研究では、仮想ネットワーク上を流れるユーザパケットを疑似した試験パケットとOpenFlowコントローラのような制御装置への問い合わせ処理(Packet−In)を活用する事により、上記課題に対応する方法が提案されている(例えば、非特許文献1、2を参照。)。
【0007】
非特許文献1では、試験パケットのTTL減算処理及びTTL InvalidによるPacket−Inを活用する事により、指定したSDNノード間の疎通確認と経路情報の取得を可能とする手法を提案している。
【0008】
非特許文献1ではまず、試験パケットとしてUDPパケット(他のL4プロトコルがOpenFlowスイッチのフローテーブル内で使用されている場合はそれを利用する)を生成し、検査対象フローエントリにマッチするヘッダ情報を設定する。この時、マッチ条件に用いられていないヘッダフィールドに試験パケットを識別するための値を格納する。TTL領域には2(経路確認の場合は、宛先までのホップ数)を、ペイロード部には検査したい経路情報(送信元SDNノードや宛先SDNノードを識別可能な情報)を格納し、Packet−Outする。これにより、任意のパケットの到達性と経路情報を取得する事が可能となる。
【0009】
非特許文献2では、各SDNノードにタグ付けを行う事により試験パケットとユーザパケットを区別して処理する事を可能とし、指定したSDNノード間の疎通確認と経路情報の取得を実現している。SDNノードのタグ付けには、隣接SDNノードが同一のタグを持たないようグラフ彩色アルゴリズムを活用する。制御装置から検査したいSDNノードに試験パケットを送信する際には、試験パケットのヘッダフィールドに、Packet−Out先のSDNノードを示すタグを挿入する。この時、SDNノードを示すタグは各フローエントリのマッチ条件に利用されていないヘッダフィールド(VLAN priority bit等)に格納される。Packet−Outにより試験パケットを受け取ったSDNノードは、パケットがマッチするフローエントリに従って試験パケットを処理する。次に試験パケットを受け取った隣接SDNノードでは、「自身のタグと異なるタグが格納されているパケットの場合はPacket−Inを行う」というフローエントリ(これは事前に設定しておく)に基づきPacket−Inを実施する。このような一連の動作により、任意のパケットの到達情報と経路情報を、制御装置を介して取得する事が可能となる。
【発明の概要】
【発明が解決しようとする課題】
【0012】
非特許文献1や非特許文献2では、試験パケットを実ネットワークに送信する事により、任意のヘッダ情報をもつパケットのSDNノード間の疎通確認と経路情報の取得を実現している。しかし、仮想ネットワークを管理するためには、先に述べた通り、これらの情報に加えて各SDNノード内でパケットがマッチしたフローエントリ情報を取得する事が必要となる。これは、主に設定作成や設定検証、障害発生時の障害箇所特定等に用いられる。
【0013】
そこで、本発明は、上記課題を解決すべく、転送装置内に設定されているフローエントリ情報を収集できるネットワーク検証システム、ネットワーク検証方法、フロー検査装置、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0014】
上記目的を達成するため、本発明に係るネットワーク検証システムは、所望の転送ルールにマッチするヘッダー情報を持つ試験パケットを転送装置へ送信するとともに、転送装置に対して試験パケットを処理する際に当該転送ルールに合致したフローエントリーの情報を収集させ、処理された試験パケットを回収して分析することとした。
【0015】
具体的には、本発明に係るネットワーク検証システムは、仮想ネットワークを構成する少なくとも1台の転送装置と、前記仮想ネットワークの正常性を検証するフロー検査装置と、を備えるネットワーク検証システムであって、
前記転送装置は、
パケットのマッチ条件、前記マッチ条件に合致した場合に実施するアクションを記した転送ルール、及び前記転送ルールの情報である転送ルールIDが設定されたフローテーブルを有し、
前記フロー検査装置は、
前記転送装置の前記フローテーブルに設定されている前記転送ルール及び前記転送ルールIDを保管するフロー情報管理部と、
所望の前記マッチ条件に合致するヘッダー情報を持つ試験パケットを生成し、前記転送装置へ送信する試験パケット生成部と、
前記転送装置からの試験結果を受信する試験結果受信部と、
前記試験パケットを送信する前に、前記転送装置の前記フローテーブルに設定されている前記転送ルールを、
受信したパケットが前記試験パケットであるか否かを判断する試験パケット判定機能
、
前記試験パケットのマッチ条件に合致する前記転送ルールの前記転送ルールIDをメ
タデータに書き込むフロー情報格納処理機能、及び
受信したパケットが前記試験パケットである場合に前記メタデータに書き込まれてい
る前記転送ルールIDを前記試験パケットとともに前記試験結果として前記試験結果受
信部へ送信し、さらに前記転送ルールに他の転送装置への転送又は廃棄が設定されてい
る場合は前記試験パケットを転送又は廃棄する転送先判定機能、
を有するルールへ変換するフローテーブル変換部と、
前記試験結果受信部が受信した前記試験結果の前記試験パケットの識別情報に基づいて前記フロー情報管理部から前記所望のマッチ条件に対する前記転送ルールを検出し、該転送ルールと前記試験結果受信部が受信した前記試験結果の前記転送ルールとを比較して前記仮想ネットワークの正常性を検証する試験結果判定部と、
を有することを特徴とする。
【0016】
本発明に係るネットワーク検証方法は、少なくとも1台の転送装置で構成された仮想ネットワークの正常性を検証するネットワーク検証方法であって、
前記転送装置のフローテーブルに、パケットのマッチ条件、前記マッチ条件に合致した場合に実施するアクションを記した転送ルール、及び前記転送ルールの情報である転送ルールIDを設定するフローテーブル設定手順と、
前記転送装置の前記フローテーブルに設定されている前記転送ルール及び前記転送ルールIDをフロー情報管理部に保管するフロー情報管理手順と、
所望の前記マッチ条件に合致するヘッダー情報を持つ試験パケットを生成し、前記転送装置へ送信する試験パケット生成手順と、
前記試験パケットを送信する前に、前記転送装置の前記フローテーブルに設定されている前記転送ルールを、
受信したパケットが前記試験パケットであるか否かを判断する試験パケット判定機能
、
前記試験パケットのマッチ条件に合致する前記転送ルールの前記転送ルールIDをメ
タデータに書き込むフロー情報格納処理機能、及び
受信したパケットが前記試験パケットである場合に前記メタデータに書き込まれてい
る前記転送ルールIDを前記試験パケットとともに試験結果として送信し、さらに前記
転送ルールに他の転送装置への転送又は廃棄が設定されている場合は前記試験パケット
を転送又は廃棄する転送先判定機能、
を有するルールへ変換するフローテーブル変換手順と、
前記転送装置からの前記試験結果を受信し、前記試験結果の前記試験パケットの識別情報に基づいて前記フロー情報管理部から前記所望のマッチ条件に対する前記転送ルールを検出し、該転送ルールと受信した前記試験結果の前記転送ルールとを比較して前記仮想ネットワークの正常性を検証する試験結果判定手順と、
を行うことを特徴とする。
【0017】
本発明に係るフロー検査装置は、パケットのマッチ条件、前記マッチ条件に合致した場合に実施するアクションを記した転送ルール、及び前記転送ルールの情報である転送ルールIDが設定されたフローテーブルを有する、少なくとも1台の転送装置で構成される仮想ネットワークの正常性を検証するフロー検査装置であって、
前記転送装置の前記フローテーブルに設定されている前記転送ルール及び前記転送ルールIDを保管するフロー情報管理部と、
所望の前記マッチ条件に合致するヘッダー情報を持つ試験パケットを生成し、前記転送装置へ送信する試験パケット生成部と、
前記転送装置からの試験結果を受信する試験結果受信部と、
前記試験パケットを送信する前に、前記転送装置の前記フローテーブルに設定されている前記転送ルールを、
受信したパケットが前記試験パケットであるか否かを判断する試験パケット判定機能
、
前記試験パケットのマッチ条件に合致する前記転送ルールの前記転送ルールIDをメ
タデータに書き込むフロー情報格納処理機能、及び
受信したパケットが前記試験パケットである場合に前記メタデータに書き込まれてい
る前記転送ルールIDを前記試験パケットとともに前記試験結果として前記試験結果受
信部へ送信し、さらに前記転送ルールに他の転送装置への転送又は廃棄が設定されてい
る場合は前記試験パケットを転送又は廃棄する転送先判定機能、
を有するルールへ変換するフローテーブル変換部と、
前記試験結果受信部が受信した前記試験結果の前記試験パケットの識別情報に基づいて前記フロー情報管理部から前記所望のマッチ条件に対する前記転送ルールを検出し、該転送ルールと前記試験結果受信部が受信した前記試験結果の前記転送ルールとを比較して前記仮想ネットワークの正常性を検証する試験結果判定部と、
を有することを特徴とする。
【0018】
現在のOpenFlowの枠組みでは、転送ルールを識別するためのID等を各転送ルールに付与する機能がない。このため、本発明はすべての転送ルールのアクション部分を利用し、転送ルールIDを各転送ルールに設定することとしている。
【0019】
試験パケットを送信する前に、転送装置内のフローテーブルに設定されているフローエントリー情報としてそのIDをメタデータに書き込むように変更しておく。そして、試験パケットを当該転送装置に処理させることで、転送装置内のフローテーブルに設定されているフローエントリー情報を収集することができる。収集したフローエントリー情報とフロー検査装置が保管しているフローエントリー情報とを比較することで設定作成や設定検証、障害発生時の障害箇所特定等が可能になる。
【0020】
本発明に係るプログラムは、コンピュータを前記フロー検査装置として機能させる。本発明に係るフロー検査装置はコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【0021】
従って、本発明は、転送装置内に設定されているフローエントリー情報を収集できるネットワーク検証システム、ネットワーク検証方法、フロー検査装置、及びプログラムを提供することができる。
【0022】
さらに、SDNノードをネットワークサービスに適用していくためには、様々なユーザトラヒックがネットワーク内に流れている状況下において特定の試験パケットの流れを追跡し、前記情報を取得できる必要がある。
【0023】
そこで、本発明に係るネットワーク検証システムが備えるフロー検査装置の前記試験パケット生成部は、ユーザパケットに用いられる前記転送ルールのマッチ条件と異なるプロトコルで前記試験パケットをカプセル化することを特徴とする。転送装置は、パケットのヘッダー情報がマッチ条件と一致するかどうかを確認することでユーザパケットか試験パケットかを判断することができる。
【0024】
さらに、本発明に係るネットワーク検証システムが備えるフロー検査装置の前記試験パケット判定機能は、受信したパケットが前記試験パケットである場合に試験パケット判定フラグとして前記メタデータ内の特定の1ビットに記録し、前記転送先判定機能は、前記メタデータの前記試験パケット判定フラグで処理するパケットが試験パケットであることを認識することを特徴とする。
【0025】
転送装置のフローテーブルが作業内容が記載されたテーブルを複数持つマルチテーブルである場合もある。この場合、本発明に係るネットワーク検証システムが備えるフロー検査装置の前記フロー情報格納処理機能は、前記メタデータを各テーブル用の区画に区切り、各テーブルでの前記転送ルールIDをそれぞれの前記区画に記載することを特徴とする。
【発明の効果】
【0026】
本発明は、転送装置内に設定されているフローエントリー情報を収集できるネットワーク検証システム、ネットワーク検証方法、フロー検査装置、及びプログラムを提供することができる。
【発明を実施するための形態】
【0028】
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施形態であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【0029】
本発明は、試験パケットが各SDNノード内でマッチしたフローエントリ(以下、転送ルールとする)の情報を取得するネットワーク検証システムである。本ネットワーク検証システムは、仮想ネットワークを構成する少なくとも1台の転送装置と、前記仮想ネットワークの正常性を検証するフロー検査装置と、を備えるネットワーク検証システムであって、
前記転送装置は、
パケットのマッチ条件、前記マッチ条件に合致した場合に実施するアクションを記した転送ルール、及び前記転送ルールの情報である転送ルールIDが設定されたフローテーブルを有し、
前記フロー検査装置は、
前記転送装置の前記フローテーブルに設定されている前記転送ルール及び前記転送ルールIDを保管するフロー情報管理部と、
所望の前記マッチ条件に合致するヘッダー情報を持つ試験パケットを生成し、前記転送装置へ送信する試験パケット生成部と、
前記転送装置からの試験結果を受信する試験結果受信部と、
前記試験パケットを送信する前に、前記転送装置の前記フローテーブルに設定されている前記転送ルールを、
受信したパケットが前記試験パケットであるか否かを判断する試験パケット判定機能
、
前記試験パケットのマッチ条件に
合致する前記転送ルールの前記転送ルールIDをメタデータに書き込むフロー情報格納
処理機能、及び
受信したパケットが前記試験パケットである場合に前記メタデータに書き込まれてい
る前記転送ルールIDを前記試験パケットとともに前記試験結果として前記試験結果受
信部へ送信し、さらに前記転送ルールに他の転送装置への転送又は廃棄が設定されてい
る場合は前記試験パケットを転送又は廃棄する転送先判定機能、
を有するルールへ変換するフローテーブル変換部と、
前記試験結果受信部が受信した前記試験結果の前記試験パケットの識別情報に基づいて前記フロー情報管理部から前記所望のマッチ条件に対する前記転送ルールを検出し、該転送ルールと前記試験結果受信部が受信した前記試験結果の前記転送ルールとを比較して前記仮想ネットワークの正常性を検証する試験結果判定部と、
を有することを特徴とする。
【0030】
フロー検査装置は、主に転送装置内のフローテーブルの管理とユーザパケットを疑似した試験パケットの生成及び送信、試験結果の受信と判定を行う機能部である。フローテーブル変換部は、転送装置内のフローテーブルに試験パケットの判別機能と、試験パケットがマッチした転送ルール情報の取得機能を埋め込むために、フローテーブル内の転送ルールに変更を行う機能部である。試験パケットの判別は、転送用ルール群の前後にテストパケット識別用のフローテーブルをそれぞれ1つずつ用意する事で実現する。試験パケットがマッチした転送ルール情報の取得は、各転送ルールのアクションフィールドの変更と、SDNノード内において各パケットの処理情報を格納可能なメタデータを利用する事により実現する。
【0031】
図1から
図5は、このようなネットワーク検証システムを実現する構成を説明する図である。
【0032】
図1に示した機能接続構成301では、フロー検査装置100内部に制御装置1を設け、試験パケットの送信と試験結果の受信に制御装置1を利用する。これは、OpenFlowのPacket−InとPacket−Outの機能を利用する事により、実現可能である。
【0033】
図2に示した機能接続構成302では、制御装置1とフローテーブル変換部2をフロー検査装置100から切り離し、試験パケット送信部105と試験結果受信部104を設ける事により、フロー検査装置100が試験パケットの送信と試験結果の受信を担う。また、フローテーブル変換部2を制御装置1の上段に設置し、制御装置から転送装置に投入される転送ルール(フローテーブル)に対して、事前に変更を加える。そのため、本発明の試験機能が導入された状態のフローテーブル202が制御装置1より転送装置200に設定される。
【0034】
図3に示した機能接続構成303では、フローテーブル変換部2を制御装置1の下段に設置し、制御装置1から送信されたフローテーブルへの設定内容をフローテーブル変換部2で受信し、本発明を適用する変換を行った後、転送装置200へ設定する。フローテーブル変換部2が制御装置1と転送装置200の間に入る場合には、転送装置200はフローテーブル変換部を制御装置と見なす仕組みが必要となり、さらに、制御装置1も、フローテーブル変換部2を転送装置200と見なして設定情報等を送信する事が求められる。
【0035】
図4に示した機能接続構成304及び
図5に示した機能接続構成305では、試験パケット生成装置250を新たに設け、試験パケット生成部102と試験パケット送信部105をフロー検査装置100と切り離す。
【0036】
以下に、それぞれの機能接続構成のネットワーク検証システムについて説明する。
【0037】
(実施形態1)
本実施形態のネットワーク検証システムは
図1の機能接続構成301である。
フロー検査装置100は、試験結果判定部101、試験パケット生成部102、フロー情報管理部103、試験結果受信部104、フローテーブル変換部2、及び制御装置1を備える。
【0038】
試験結果判定部101は、受信した試験結果のペイロードに付加されている試験パケット識別情報から、試験パケットと試験結果の対応付けを行う。試験結果判定部101は、フロー情報管理部103に保存されている転送ルール群から試験結果に記された転送ルールIDに一致する転送ルールを呼び出す。
【0039】
試験パケット生成部102は、フロー情報管理部103から得た検査対象転送装置200のフローテーブルの情報を元に試験したい転送ルールにマッチするヘッダ情報を持つ試験パケットを生成する。SDNノード内で試験パケットをユーザパケットと区別して処理するために、試験パケット生成部102は、試験パケットは全ての転送装置200内でマッチ条件に用いられていないプロトコルを用いてカプセル化し、試験パケットを一意に識別するための識別情報を付加する。
【0040】
フロー情報管理部103は、各転送装置200に設定されている転送ルールと、転送ルールIDの対応付けと、試験パケットに付加する試験パケット識別子を保存する。
【0041】
フローテーブル変換部2は、制御装置1から転送装置200内のフローテーブル202に設定予定の転送ルールを試験パケット判定部203、フロー情報格納処理部204、転送先判定部205の3つの要素で構成されるように変換を行い、制御装置1へ送信する。
【0042】
制御装置1は、転送装置200のフローテーブル202への転送ルールの設定や、試験パケットの送信及び試験結果の受信、転送装置200との制御情報のやり取りを行う。
【0043】
試験結果受信部104は、試験結果(転送装置200内でマッチした転送ルールのID)を試験対象の転送装置200から、制御装置1を介して受信する。
【0044】
転送装置200(SDNノード)は、受信部201、フローテーブル202、及び送信部206を備える。
【0045】
受信部201は、他の転送装置からのパケット及びフロー検査装置100からの試験パケットと制御情報を受信する。
【0046】
送信部206は、他の転送装置へのパケット及びフロー検査装置100への試験パケットとメタデータの情報を送信する。
【0047】
フローテーブル202は、パケットのマッチ条件に応じた処理が記載されたアクションフィールドを持つテーブルを有する。マッチ条件とその処理で転送ルールが構成され、転送ルールごとにIDが付与される。また、テーブルは1つでもよいし、テーブルが複数存在するマルチテーブルであってもよい。フローテーブル202は、フロー検査装置100からの制御信号に基づき転送ルールを、試験パケット判定部203、フロー情報格納処理部204、及び転送先判定部205に変換する。
図16は、フロー検査装置100からの制御信号に基づき転送ルールを変更した例である。
図16(A)は転送ルール変更前の状態である。フローテーブルにはテーブルは1つだけ存在し、処理内容“src_mac=01:23:45:67:89:AB,, actions=output:2”が記載される。
図16(B)は転送ルール変更後の状態である。フローテーブルにはテーブルが3つ(table_id=0、table_id=1、及びtable_id=2)形成される。
【0048】
table_id=0のテーブルが試験パケット判定部203に相当する。table_id=0のテーブルには、受信パケットが試験パケット(mpls_label=100)ならば記載データ“0x800000”のメタデータを作成し、メタデータの特定ビットに試験パケットを識別するフラグを書き込み、カプセル化を解除(pop_mpls)する命令がある。試験パケットは、この処理を経ることで次のテーブルへ移行した時には他のユーザパケットと同じ状態となっており同じ転送ルールで処理されることになる。
table_id=1のテーブルがフロー情報格納処理部204に相当する。table_id=1のテーブルには、パケット種別に関わらずメタデータにこの転送ルールのID“0x000001”を記載し、処理内容(output:2)をスタックに保存(write_actios output:2)する命令がある。
table_id=2のテーブルが転送先判定部205に相当する。table_id=2のテーブルには、メタデータの内容を確認(前記フラグの確認)してパケットが試験パケットであるか否かを判断し、試験パケットであるならばメタデータの内容を含めて試験パケットをカプセル化し(“push_mpls”)、フロー検査装置へ転送(“output:3”)するとともにスタックされた通常処理(output:2)を行う命令(apply−actions)がある。また、パケットがユーザパケットであるならば、指定された転送ルールを実行する命令(apply_actions)もある。
【0049】
試験パケット判定部203は、転送装置200で受信したパケットが試験パケットであるかどうかを判定する。試験パケットであればカプセル化されているため、カプセル化を解除し、ユーザパケットと同じ状態にする。更に、試験パケット判定部203は、転送装置200内で各パケットの処理情報を格納可能なメタデータ内の1ビットを試験パケット判定フラグとして利用し、試験パケット処理中である事を記録する(値を1に設定する)。
図14は、メタデータ内の1ビットを試験パケット判定フラグとして利用する例を示した図である。
【0050】
フロー情報格納処理部204は、事前に制御装置1からの設定によって転送ルールのアクションフィールドに変更を加えておき、試験パケットがマッチした転送ルールのIDをメタデータに格納する。
【0051】
転送先判定部205は、全てのパケットは転送(または破棄)処理が実施される前に必ず転送先判定部を通過する。転送先判定部205は、メタデータの試験パケット判定フラグを参照し、現在処理しているパケットが試験パケットであるかどうかを判断する。試験パケットの場合、転送先判定部205は、再度カプセル化し、マッチした転送ルールのIDが格納されたメタデータの情報と共にフロー検査装置100に向けて送信する。更に、転送先判定部205は、次の転送装置200に向けて同じ試験パケットを送信する。一方、ユーザパケットの場合、転送先判定部205は、アクションフィールドに記された通りに転送(または破棄)処理を実施する。
【0052】
次に、
図1のネットワーク検証システムの動作を説明する。
図6は、転送装置のフローテーブル202が設定された後のパケット処理を説明したフローチャートである。また、
図7から
図13に試験パケットの流れを説明する図を示す。
図7から
図13は、機能接続構成301において監視区間である転送装置200−1から転送装置200−3に向けて試験パケットを送信する場合を説明した図である。
【0053】
まず始めに、転送装置200に転送ルールを設定する前に、フロー検査装置100のフローテーブル変換部2は、転送装置200のフローテーブル202に設定予定の転送ルールを試験パケット判定部203、フロー情報格納処理部204、及び転送先判定部205で構成される形に変換し、制御装置1を介して各転送装置に設定しておく。
【0054】
次に、ネットワーク管理者からの要求を契機に、フロー情報管理部103が持つ管理情報を元に試験パケット生成部102で試験パケットが生成され、制御装置1から最初の宛先である転送装置200に送信される(
図7)。この時、試験パケットのヘッダ部分には、試験したい転送ルール群にマッチするヘッダ情報が格納される。更に、試験パケットは全てのSDNノードのフローテーブル202内でマッチ条件に用いられていないプロトコルを利用してカプセル化される。これは、試験パケットとユーザパケットを区別して認識しつつ、同じ転送ルールにマッチさせるためである。
【0055】
転送装置200で受信された試験パケットは、まず、試験パケット判定部203で処理が行われる(
図8)。試験パケット判定部203では、受信したパケットが指定したプロトコルでカプセル化されているかどうかを判断し、カプセル化されていれば試験パケットと見なす。試験パケットの場合は、カプセル化を解除し、転送装置200内で各パケットの処理情報を格納可能なメタデータ内に設けた試験パケット判定フラグを1に設定する。ここで、メタデータは転送装置200の内部でのみ利用可能であり、その値はパケットに直接格納する事はできない。
【0056】
次に、試験パケットはフロー情報格納処理部204で処理される。フロー情報格納処理部204には転送ルールが格納されており、試験パケットはユーザパケットと同様に転送ルールに沿って処理される。フロー情報格納処理部204では、試験パケットがマッチした転送ルールのIDを取得するために、事前に各転送ルールのアクションフィールドに変更を加え、メタデータに転送ルールIDを書き込むアクションを追加しておく。このアクションはフローテーブル変換部2からの指示で追加される。転送ルールが複数テーブルに及ぶ場合は、メタデータを分割しマスク処理する事により全てのテーブルでマッチした転送ルールの情報を格納する。
図15は、転送用ルールがマルチテーブルでありメタデータをテーブルの合計数に区切って、各区画をテーブル毎に割り当てた例を説明する図である。
【0057】
最後に、試験パケットは転送先判定部205で処理される。転送先判定部205はメタデータ内の試験パケット判定フラグを参照し、値が1であるかどうかを確認する。試験パケット判定フラグが1の場合は試験パケットであるとして、転送先判定部205はマッチした転送ルールのIDを格納したメタデータと処理された試験パケットをフロー検査装置100へ送信する。さらに、転送先判定部205は再び試験パケットをカプセル化して、アクション(転送または破棄)を実行する。試験パケット判定フラグが0の場合は、ユーザパケットであるとして、転送先判定部205は何も処理せずアクション(転送又は廃棄)を実行する。
【0058】
試験パケットとメタデータを取得した制御装置1は試験結果受信部104にこれらを送信する。試験結果受信部104はさらに試験結果判定部101に受信した試験結果を送信し、受信した試験結果のペイロードに付加されている試験パケット識別情報から試験パケットと試験結果の対応付けを行い、メタデータ内の転送ルールIDから転送ルールを導き出す。そして、試験結果受信部104で試験結果を受け取った後, 試験結果判定部101で監視区間の正常性を判断する。例えば、試験結果判定部101は、試験パケットの識別情報に基づいてフロー情報管理部103から当該試験パケットのマッチ条件に対する転送ルールのIDを検出し、該転送ルールと試験パケットとともに受信した転送ルールのIDとを比較する。そして、両者が同じIDであれば監視区間は正常であると判断し、互いに異なるIDであれば監視区間の異常(設定異常や障害発生等)と判断する。
【0059】
図16に記載した転送ルールに基づいて本ネットワーク検証システムの動作を具体的に説明する。
(1)フロー検査装置100から「mplsラベルが100番で、かつmacアドレス01:23:45:67:89:AB」という試験パケットを送信する。
(2)前述のように、転送装置200には、試験パケット判定部203、フロー情報格納処理部204、及び転送先判定部205として「macアドレス01:23:45:67:89:ABからのパケットはメタデータに転送ルールID(0x000001)を記録し、“2”へ出力するアクションをスタックに保存(write_actions output:2)し、table_id=2へ遷移(goto_table:2)」という転送ルールがあらかじめ設定されている。このため、試験パケット判定部203(table_id=0)で試験パケットと判定されたパケットは、table_id=1でメタデータに転送ルールID(0x000001)を記載し、table_id=2で試験パケットをフロー検査装置へ返送(output:3)し、スタックされたアクション「“2”へ転送(output:2)」を実行する。
(3)フロー検査装置100では返送されてきた試験パケットに付属する転送ルールIDに基づいてフロー情報管理部103が保管する転送ルールを検出し、投入した試験パケットのペイロード部分に事前に格納しておいた試験パケット識別情報に基づいて送信した試験パケット情報を取得し、試験パケットがマッチすべき転送ルール群(フロー情報管理部103で保持)と、実際にマッチした転送ルール群が同一であるかを比較する。
【0060】
(実施形態2)
本実施形態のネットワーク検証システムは
図2の機能接続構成302である。
機能接続構成302は、
図1の機能接続構成301と異なり、フローテーブル変換部2、及び制御装置1がフロー検査装置100の外部に配置される。
【0061】
制御装置1は、転送装置200のフローテーブル202への転送ルールの設定を行う。
【0062】
フローテーブル変換部2は、フローテーブル202に設定予定の転送ルールを試験パケット判定部203、フロー情報格納処理部204、転送先判定部205の3つの要素で構成されるように変換し、制御装置1へ送信する。
【0063】
フロー検査装置100は、試験結果判定部101、試験パケット生成部102、フロー情報管理部103、試験結果受信部104、及び試験パケット送信部105を備える。
【0064】
試験結果判定部101は、受信した試験結果のペイロードに付加されている試験パケット識別情報から、試験パケットと試験結果の対応付けを行う。試験結果判定部101は、フロー情報管理部103に保存されている転送ルール群から試験結果に記された転送ルールIDに一致する転送ルールを呼び出す。
【0065】
試験パケット生成部102は、フロー情報管理部103から得た検査対象転送装置200のフローテーブル202を元に試験したい転送ルールにマッチするヘッダ情報を持つ試験パケットを生成する。転送装置200で試験パケットをユーザパケットと区別して処理するために、試験パケット生成部102では、試験パケットは全ての転送装置200内でマッチ条件に用いられていないプロトコルを用いてカプセル化し、試験パケットを一意に識別するための識別情報を付加する。
【0066】
フロー情報管理部103は、各転送装置200に設定されている転送ルールと、転送ルールIDの対応付けと、試験パケットに付加する試験パケット識別子を保存する。
【0067】
試験パケット送信部105は、試験パケット生成部102で生成された試験パケットを試験対象の転送装置200へ送信する。
【0068】
試験結果受信部104は、試験結果(転送装置200内でマッチした転送ルールのIDを含む試験パケット)を試験対象の転送装置200から受信する。
【0069】
転送装置200(SDNノード)は、実施形態1で説明した転送装置200と同じである。
【0070】
次に、
図2のネットワーク検証システムの動作を説明する。転送装置のフローテーブル202が設定された後のパケット処理は、実施形態1で説明した
図6のフローチャートと同じである。また、試験パケットの流れも実施形態1で説明した
図7から
図13の説明とほぼ同じである。
【0071】
まず始めに、転送装置200に転送ルールを設定する前に、フローテーブル変換部2は、転送装置200のフローテーブル202に設定予定の転送ルールを試験パケット判定部203、フロー情報格納処理部204、転送先判定部205により構成される形に変換し、制御装置1を介して各転送装置200に設定しておく。
【0072】
次に、ネットワーク管理者からの要求を契機に、フロー情報管理部103における管理情報を元に試験パケット生成部102で試験パケットが生成され、試験パケット送信部105から最初の宛先である転送装置200に送信される(
図7参照)。この時、試験パケットのヘッダ部分には、試験したい転送ルール群にマッチするヘッダ情報が格納される。更に、試験パケットは全ての転送装置200のフローテーブル202内でマッチ条件に用いられていないプロトコルを利用してカプセル化される。これは、試験パケットとユーザパケットを区別して認識しつつ、同じ転送ルールにマッチさせるためである。
【0073】
転送装置200で受信された試験パケットは、まず、試験パケット判定部203で処理が行われる(
図8参照。)。試験パケット判定部203では、受信したパケットが指定したプロトコルでカプセル化されているかどうかを判断し、カプセル化されていれば試験パケットと見なす。試験パケットの場合は、カプセル化を解除し、転送装置200内で各パケットの処理情報を格納可能なメタデータ内に設けた試験パケット判定フラグを1に設定する。
【0074】
次に、試験パケットはフロー情報格納処理部204で処理される。フロー情報格納処理部204には転送ルールが格納されており、試験パケットはユーザパケットと同様に転送ルールに沿って処理される。フロー情報格納処理部204では、試験パケットがマッチした転送ルールのIDを取得するために、事前に各転送ルールのアクションフィールドに変更を加え、メタデータに転送ルールIDを書き込むアクションを追加しておく。このアクションはフローテーブル変換部2からの指示で追加される。転送ルールが複数テーブルに及ぶ場合は、メタデータを分割しマスク処理する事により、全てのテーブルでマッチした転送ルールの情報を格納する。
【0075】
最後に、試験パケットは転送先判定部205で処理される。転送先判定部205はメタデータ内の試験パケット判定フラグを参照し、値が1であるかどうかを確認する。試験パケット判定フラグが1の場合は試験パケットであるとして、転送先判定部205はメタデータに格納されたマッチした転送ルールのIDを試験パケットの空きヘッダフィールドへ格納し、フロー検査装置100へ向けて送信する。さらに、転送先判定部205は再び試験パケットをカプセル化し、アクション(転送または破棄)を実行する。試験パケット判定フラグが0の場合はユーザパケットであるとして、転送先判定部205は何も処理せずアクション(転送又は廃棄)を実行する。
【0076】
試験結果は試験結果受信部104で取得され、試験結果判定部101に送信される。試験結果判定部101では、受信した試験結果のペイロードに付加されている試験パケット識別情報から試験パケットと試験結果の対応付けを行い、メタデータ内の転送ルールIDから転送ルールを導き出す。そして、試験結果受信部104は実施形態1で説明したような手法例で監視区間の正常性を判断する。
【0077】
(実施形態3)
本実施形態のネットワーク検証システムは
図3の機能接続構成303である。
機能接続構成303は、
図1の機能接続構成301と異なり、フローテーブル変換部2、及び制御装置1がフロー検査装置100の外部に配置される。
【0078】
制御装置1は、転送装置200のフローテーブル202への転送ルールの設定や、転送装置200との制御情報のやり取りを行う。
【0079】
フローテーブル変換部2は、制御装置1から転送装置200内のフローテーブルに設定予定の転送ルールを受け取り、転送ルールが試験パケット判定部203、フロー情報格納処理部204、転送先判定部205の3つの要素で構成されるよう変換を行い、転送装置200へ送信する。
【0080】
フロー検査装置100の構成は
図2で説明した機能接続構成302と同じである。
【0081】
転送装置200(SDNノード)は、実施形態1で説明した転送装置200と同じである。
【0082】
次に、
図3のネットワーク検証システムの動作を説明する。転送装置のフローテーブル202が設定された後のパケット処理は、実施形態1で説明した
図6のフローチャートと同じである。また、試験パケットの流れも実施形態1で説明した
図7から
図13の説明とほぼ同じである。
【0083】
転送装置200に転送ルールを設定する際に、制御装置1から送信されるフローテーブルの設定情報をフローテーブル変換部2が取得する。フローテーブル変換部2はフローテーブル202に設定予定の転送ルールを試験パケット判定部203、フロー情報格納部204、及び転送先判定部205により構成される形に変換した後、各転送装置200に送信する。
【0084】
フロー検査装置100での試験パケット生成、転送装置での処理、及び試験結果の判断については、
図2の機能接続構成202での説明と同じである。
【0085】
(実施形態4)
本実施形態のネットワーク検証システムは
図4の機能接続構成304である。
機能接続構成304は、
図2の機能接続構成302と異なり、試験パケット生成部102と試験パケット送信部105がフロー検査装置100の外部に配置される。
【0086】
制御装置1及びフローテーブル変換部2は、
図2の機能接続構成302の説明と同じである。
【0087】
フロー検査装置100は、試験結果判定部101、フロー情報管理部103、及び試験結果受信部104を有する。
【0088】
試験結果判定部101は、受信した試験結果のペイロードに付加されている試験パケット識別情報から、試験パケットと試験結果の対応付けを行う。試験結果判定部101は、フロー情報管理部103に保存されている転送ルール群から試験結果に記された転送ルールのIDに一致する転送ルールを呼び出す。
【0089】
フロー情報管理部103は、各転送装置200に設定されている転送ルールと、転送ルールIDの対応付けと、試験パケットに付加する試験パケット識別子を保存する。
【0090】
試験結果受信部104は、試験結果(転送装置200内でマッチした転送ルールのID)を試験対象の転送装置200から受信する。
【0091】
試験パケット生成装置250は、試験パケット生成部102及び試験パケット送信部105を有する。
【0092】
試験パケット生成部102は、フロー情報管理部103から得た検査対象転送装置200のフローテーブル202を元に試験したい転送ルールにマッチするヘッダ情報を持つ試験パケットを生成する。転送装置200で試験パケットをユーザパケットと区別して処理するために、試験パケット生成部102は、試験パケットは全ての転送装置200内でマッチ条件に用いられていないプロトコルを用いてカプセル化し、試験パケットを一意に識別するための識別情報を付加する。
【0093】
試験パケット送信部105は、試験パケット生成部102で生成された試験パケットを試験対象の転送装置200へ送信する。
【0094】
転送装置200(SDNノード)は、実施形態1で説明した転送装置200と同じである。
【0095】
次に、
図4のネットワーク検証システムの動作を説明する。転送装置200のフローテーブル202が設定された後のパケット処理は、実施形態1で説明した
図6のフローチャートと同じである。また、試験パケットの流れも実施形態1で説明した
図7から
図13の説明とほぼ同じである。
【0096】
制御装置1及びフローテーブル変換部2による転送ルールの変換は
図2の機能接続構成302での説明と同じである。
【0097】
次に、ネットワーク管理者からの要求を契機に、フロー情報管理部103から取得した管理情報を元に試験パケット生成装置250の試験パケット生成部102で試験パケットが生成され、試験パケット送信部105から最初の宛先である転送装置200に送信される(
図7参照)。この時、試験パケットのヘッダ部分には、試験したい転送ルール群にマッチするヘッダ情報が格納される。更に、試験パケットは全てのSDNノードのフローテーブル202内でマッチ条件に用いられていないプロトコルを利用してカプセル化される。これは、試験パケットとユーザパケットを区別して認識しつつ、同じ転送ルールにマッチさせるためである。
【0098】
転送装置での処理、及び試験結果の判断については、
図2の機能接続構成302での説明と同じである。
【0099】
(実施形態5)
本実施形態のネットワーク検証システムは
図5の機能接続構成305である。
機能接続構成305は、
図4の機能接続構成304と異なり、フローテーブル変換部2と制御装置1の接続が逆に配置される。
【0100】
制御装置1及びフローテーブル変換部2は、
図3の機能接続構成303の説明と同じである。また、フロー検査装置100及び試験パケット生成装置250は、
図4の機能接続構成304の説明と同じである。
【0101】
転送装置200(SDNノード)は、実施形態1で説明した転送装置200と同じである。
【0102】
次に、
図5のネットワーク検証システムの動作を説明する。転送装置200のフローテーブル202が設定された後のパケット処理は、実施形態1で説明した
図6のフローチャートと同じである。また、試験パケットの流れも実施形態1で説明した
図7から
図13の説明とほぼ同じである。
【0103】
転送装置200に転送ルールを設定する手法及び転送ルールを変換する手法は
図3の機能接続構成303と同じである。
【0104】
(他の実施形態)
図1のフロー検査装置100、
図2〜
図3のフロー検査装置100、制御装置1、及びフローテーブル変換部2、
図4〜
図5のフロー検査装置100、制御装置1、フローテーブル変換部2、及び試験パケット生成装置250は、コンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【0105】
(発明によって生じる効果)
本発明では、各SDNノード内で試験パケットがマッチした転送ルールを、カウンタ値を利用せずに取得するための手法を提案した。これは、既存手法では実現されていない機能である。本発明により、ネットワーク管理者はユーザパケットとは区別して、試験パケットの流れを詳細に把握する事ができるようになるため、従来に比べて仮想ネットワーク内の正常性をより細かく検証する事が可能となる。更に、障害が発生した際には、本発明を用いて各SDNノードにおける試験パケットの処理を順に追う事により、障害発生箇所の特定を従来よりも迅速に行う事が可能となる。
【0106】
(発明のポイント)
転送装置に転送ルールが設定される前に、各転送ルールが試験パケット判定部、フロー情報格納処理部、転送先判定部の3つの要素から構成されるよう、変更を行う(
図16)。
【0107】
試験パケットをユーザパケットと区別して識別するために、試験パケットは転送用ルールのマッチ条件に用いられていないプロトコルでカプセル化する。
【0108】
転送ルールを一意に識別するために、新たに転送ルールIDを定義する。
【0109】
試験パケットがマッチした転送ルールの情報(転送ルールID)を得るために、転送用フローエントリのアクションフィールドに転送ルールIDをメタデータに格納するアクションを追加する。
【0110】
SDNノード内部で試験パケットを識別し、ユーザパケットとは異なる処理を行うために、転送用ルールが格納されたテーブルの前後に試験パケット制御用テーブルを1つずつ設ける(マルチテーブルの仕組みを活用する)。
【0111】
転送用ルール群の前段に設置したテーブル(試験パケット判定部)では、試験パケットのカプセル化を解除し、SDNノード内部で利用可能なメタデータの特定ビット(試験パケット判定フラグ)に試験パケット処理中である事を示すために1をセットする(
図14)。
【0112】
転送用ルールがマルチテーブルの場合は、メタデータをテーブルの合計数に区切って、各区画をテーブル毎に割り当てる(
図15)。
【0113】
転送用ルール群の後段に設置したテーブル(転送先判定部)では、メタデータ内の試験パケット判定フラグを参照する事により処理中のパケットが試験パケットであるかどうかを識別する。試験パケットであれば再度カプセル化してアクションを実行し、更に、メタデータ内に保存してある転送ルールIDをフロー検査装置へ送信する。試験パケットでなければ、ユーザパケットと見なしてアクションを実行し、転送(または破棄)する。
【0114】
転送用ルール群に記述されているアクションのうち、パケットの転送(フラッディング等も含む)や破棄に関するものは、後段に設けた転送先判定部での判定処理の後に必ず実行される。