(57)【要約】【課題】ＳＤＮにおいてネットワーク内の経路（ツリー）を簡易に検査する。【解決手段】パケットが経由する複数のＯＦＳと経由順序とを定めた計算ツリーを記憶しておくデータ情報記憶部１１と、計算ツリーに従ってパケットを転送する複数のＯＦＳに対して、検査用のプローブパケットにＯＦＳのＩＤを付与し、ＩＤを付与したプローブパケットを返信し、当該プローブパケットを計算ツリーに従って転送する命令を定めたフローエントリを送信するスイッチ制御部１２と、検査用のプローブパケットを計算ツリーのＯＦＳへ送信するプローブパケット送信部１３と、ＯＦＳから返信された返信プローブパケットに付与されているＯＦＳのＩＤを用いて、検査用のプローブパケットが経由した複数のＯＦＳと経由順序とを含む実ツリーを生成する実ツリー生成部１５と、実ツリーと計算ツリーとを比較するツリー比較部１６と、を備える。【選択図】図２
2019033306.tif 000002
【特許請求の範囲】
【請求項１】
ＳＤＮ（Software Defined Networking）を用いてネットワーク内の経路を検査する経路検査装置において、
パケットが経由する複数の転送装置と経由順序とを定めた計算ツリーを記憶しておく記憶部と、
前記計算ツリーに従ってパケットを転送する複数の転送装置に対して、検査用のプローブパケットに転送装置の識別情報を付与し、前記識別情報を付与したプローブパケットを返信し、当該プローブパケットを前記計算ツリーに従って転送する命令を定めた命令情報を送信する制御部と、
前記検査用のプローブパケットを前記計算ツリーの転送装置へ送信する送信部と、
当該計算ツリーの転送装置から返信された返信プローブパケットに付与されている転送装置の識別情報を用いて、前記検査用のプローブパケットが経由した複数の転送装置と経由順序とを含む実ツリーを生成する生成部と、
前記実ツリーと前記計算ツリーとを比較する比較部と、
を備えることを特徴とする経路検査装置。
【請求項２】
前記転送装置の識別情報を付与する命令は、
前記検査用のプローブパケットにＶＬＡＮ（Virtual Local Area Network）タグまたはＭＰＬＳ（Multi-Protocol Label Switching）ラベルを追加し、前記ＶＬＡＮタグまたは前記ＭＰＬＳラベルに含まれる情報を前記転送装置の識別情報に変更する命令であることを特徴とする請求項１に記載の経路検査装置。
【請求項３】
前記送信部は、前記検査用のプローブパケットに時刻情報を付与して送信し、
前記生成部は、
前記返信プローブパケットに付与されている時刻情報に基づき、送信した前記検査用のプローブパケットに対応する返信プローブパケットを特定することを特徴とする請求項１または２に記載の経路検査装置。
【請求項４】
前記記憶部は、
前記計算ツリーをマルチキャストグループ毎に定めることを特徴とする請求項１乃至３のいずれかに記載の経路検査装置。
【請求項５】
ＳＤＮ（Software Defined Networking）を用いてネットワーク内の経路を検査する経路検査装置で行う経路検査方法において、
前記経路検査装置は、
パケットが経由する複数の転送装置と経由順序とを定めた計算ツリーを記憶部に記憶しておく記憶ステップと、
前記計算ツリーに従ってパケットを転送する複数の転送装置に対して、検査用のプローブパケットに転送装置の識別情報を付与し、前記識別情報を付与したプローブパケットを返信し、当該プローブパケットを前記計算ツリーに従って転送する命令を定めた命令情報を送信する制御ステップと、
前記検査用のプローブパケットを前記計算ツリーの転送装置へ送信する送信ステップと、
当該計算ツリーの転送装置から返信された返信プローブパケットに付与されている転送装置の識別情報を用いて、前記検査用のプローブパケットが経由した複数の転送装置と経由順序とを含む実ツリーを生成する生成ステップと、
前記実ツリーと前記計算ツリーとを比較する比較ステップと、
を行うことを特徴とする経路検査方法。
【請求項６】
前記転送装置の識別情報を付与する命令は、
前記検査用のプローブパケットにＶＬＡＮ（Virtual Local Area Network）タグまたはＭＰＬＳ（Multi-Protocol Label Switching）ラベルを追加し、前記ＶＬＡＮタグまたは前記ＭＰＬＳラベルに含まれる情報を前記転送装置の識別情報に変更する命令であることを特徴とする請求項５に記載の経路検査方法。
【請求項７】
前記送信ステップでは、前記検査用のプローブパケットに時刻情報を付与して送信し、
前記生成ステップでは、
前記返信プローブパケットに付与されている時刻情報に基づき、送信した前記検査用のプローブパケットに対応する返信プローブパケットを特定することを特徴とする請求項５または６に記載の経路検査方法。
【請求項８】
前記記憶ステップでは、
前記計算ツリーをマルチキャストグループ毎に定めることを特徴とする請求項５乃至７のいずれかに記載の経路検査方法。
【請求項９】
請求項１乃至４のいずれかに記載の経路検査装置としてコンピュータを機能させることを特徴とする経路検査プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク内の経路を検査する技術に関する。
【背景技術】
【０００２】
従来、マルチキャスト通信に用いられる経路（ツリー）は、レイヤ２ではＩＧＭＰ（Internet Group Management Protocol）、レイヤ３ではＰＩＭ（Protocol-Independent Multicast）などにより形成されている。マルチキャスト通信のツリーを制御・管理する場合、一般的には、ＮｅｔＦｌｏｗやＳＮＭＰ（Simple Network Management Protocol）を用いてネットワーク内の通信を実際に計測することにより行われている（特許文献１）。
【０００３】
また、近年注目されているネットワーク技術として、ＳＤＮ（Software Defined Networking）がある。ＳＤＮは、単一のソフトウェアによりネットワーク機器を集中して制御する技術であり、ネットワーク内の通信機器や通信経路をＳＤＮコントローラで一元的に制御・管理することができる。
【０００４】
ＳＤＮを用いてもマルチキャスト通信のツリーを制御・管理可能である。例えば、ＳＤＮコントローラで経路検索を行うことにより、物理的なネットワーク内に論理的に形成されているマルチキャスト通信のツリーを取得することができる。また、ＳＤＮコントローラを用いて、ネットワーク内の各スイッチに所望のマルチキャスト通信のツリーを通るフローエントリを設定することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４６２７３２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来のＳＤＮでは、以前に設定していたマルチキャスト通信のツリーを現在も引き続き使用していることが保障されていない。そのため、何らかの原因でフローが想定していたツリーと異なるツリーを通過していたり、スイッチ内の制御プログラムの異常により設定していたツリーの途中でパケットが消失していたりしていることを検知できないという課題があった。また、特許文献１は、実際の通信を計測することで使用中のツリーを特定するため、サーバ側では通信の異常を検知することはできない。
【０００７】
本発明は、上記事情を鑑みてなされたものであり、マルチキャスト通信に限らず、ＳＤＮにおいてネットワーク内の経路（ツリー）を簡易に検査することを目的とする。
【課題を解決するための手段】
【０００８】
以上の課題を解決するため、請求項１に係る経路検査装置は、ＳＤＮ（Software Defined Networking）を用いてネットワーク内の経路を検査する経路検査装置において、パケットが経由する複数の転送装置と経由順序とを定めた計算ツリーを記憶しておく記憶部と、前記計算ツリーに従ってパケットを転送する複数の転送装置に対して、検査用のプローブパケットに転送装置の識別情報を付与し、前記識別情報を付与したプローブパケットを返信し、当該プローブパケットを前記計算ツリーに従って転送する命令を定めた命令情報を送信する制御部と、前記検査用のプローブパケットを前記計算ツリーの転送装置へ送信する送信部と、当該計算ツリーの転送装置から返信された返信プローブパケットに付与されている転送装置の識別情報を用いて、前記検査用のプローブパケットが経由した複数の転送装置と経由順序とを含む実ツリーを生成する生成部と、前記実ツリーと前記計算ツリーとを比較する比較部と、を備えることを特徴とする。
【０００９】
請求項２に係る経路検査装置は、請求項１に記載の経路検査装置において、前記転送装置の識別情報を付与する命令は、前記検査用のプローブパケットにＶＬＡＮ（Virtual Local Area Network）タグまたはＭＰＬＳ（Multi-Protocol Label Switching）ラベルを追加し、前記ＶＬＡＮタグまたは前記ＭＰＬＳラベルに含まれる情報を前記転送装置の識別情報に変更する命令であることを特徴とする。
【００１０】
請求項３に係る経路検査装置は、請求項１または２に記載の経路検査装置において、前記送信部は、前記検査用のプローブパケットに時刻情報を付与して送信し、前記生成部は、前記返信プローブパケットに付与されている時刻情報に基づき、送信した前記検査用のプローブパケットに対応する返信プローブパケットを特定することを特徴とする。
【００１１】
請求項４に係る経路検査装置は、請求項１乃至３のいずれかに記載の経路検査装置において、前記記憶部は、前記計算ツリーをマルチキャストグループ毎に定めることを特徴とする。
【００１２】
請求項５に係る経路検査方法は、ＳＤＮ（Software Defined Networking）を用いてネットワーク内の経路を検査する経路検査装置で行う経路検査方法において、前記経路検査装置は、パケットが経由する複数の転送装置と経由順序とを定めた計算ツリーを記憶部に記憶しておく記憶ステップと、前記計算ツリーに従ってパケットを転送する複数の転送装置に対して、検査用のプローブパケットに転送装置の識別情報を付与し、前記識別情報を付与したプローブパケットを返信し、当該プローブパケットを前記計算ツリーに従って転送する命令を定めた命令情報を送信する制御ステップと、前記検査用のプローブパケットを前記計算ツリーの転送装置へ送信する送信ステップと、当該計算ツリーの転送装置から返信された返信プローブパケットに付与されている転送装置の識別情報を用いて、前記検査用のプローブパケットが経由した複数の転送装置と経由順序とを含む実ツリーを生成する生成ステップと、前記実ツリーと前記計算ツリーとを比較する比較ステップと、を行うことを特徴とする。
【００１３】
請求項６に係る経路検査方法は、請求項５に記載の経路検査方法において、前記転送装置の識別情報を付与する命令は、前記検査用のプローブパケットにＶＬＡＮ（Virtual Local Area Network）タグまたはＭＰＬＳ（Multi-Protocol Label Switching）ラベルを追加し、前記ＶＬＡＮタグまたは前記ＭＰＬＳラベルに含まれる情報を前記転送装置の識別情報に変更する命令であることを特徴とする。
【００１４】
請求項７に係る経路検査方法は、請求項５または６に記載の経路検査方法において、前記送信ステップでは、前記検査用のプローブパケットに時刻情報を付与して送信し、前記生成ステップでは、前記返信プローブパケットに付与されている時刻情報に基づき、送信した前記検査用のプローブパケットに対応する返信プローブパケットを特定することを特徴とする。
【００１５】
請求項８に係る経路検査方法は、請求項５乃至７のいずれかに記載の経路検査方法において、前記記憶ステップでは、前記計算ツリーをマルチキャストグループ毎に定めることを特徴とする。
【００１６】
請求項９に係る経路検査プログラムは、請求項１乃至４のいずれかに記載の経路検査装置としてコンピュータを機能させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、ＳＤＮにおいてネットワーク内の経路（ツリー）を簡易に検査することができる。
【図面の簡単な説明】
【００１８】
【図１】オープンフローシステムの全体構成を示す図である。
【図２】オープンフローコントローラの機能ブロック構成を示す図である。
【図３】経路検査処理手順を示すシーケンスである。
【図４】計算ツリーの例を示す図である。
【図５】フローテーブルの例を示す図である。
【図６】ツリー管理テーブルの例を示す図である。
【図７】プローブパケットが返信される様子を示す図である。
【図８】返信プローブパケットの構造を示す図である。
【図９】実ツリーの検索結果を示す図である。
【図１０】実ツリーの例を示す図である。
【発明を実施するための形態】
【００１９】
本発明では、対象のマルチキャストグループまたはユニキャストのグループ（複数のユニキャストの組）に対してプローブパケットを送信し、当該プローブパケットのパケットヘッダに印をつけることにより、実際に使用している経路（ツリー）を求める。これにより、一般に広帯域と想定されるマルチキャスト通信またはユニキャスト通信を開始する前に現在のツリーを確認することができる。
【００２０】
更に、本発明では、求めたツリーが想定しているツリーであるかを判定し、想定外のツリーを使用している場合やツリー途中でパケットが破棄されている場合、修正・迂回路検索・設定を行う。これにより、ツリー内での通信を保障することができる。
【００２１】
以下、本発明を実施する一実施の形態について図面を用いて説明する。
【００２２】
なお、本実施の形態では、マルチキャスト通信のツリーを検査する場合について説明する。また、本実施の形態では、ＳＤＮの一技術であるオープンフロー（OpenFlow）を用いて説明する。オープンフローでは、オープンフローネットワークＯＦＮを流れるパケットのヘッダと出力ポートの組をフローと呼ぶ。オープンフローコントローラＯＦＣは、パケットのヘッダ情報に基づき、オープンフロースイッチＯＦＳを経由するパケットのフローを識別し、対象フローを制御することができる。オープンフローについては、例えば、“OpenFlow”（一般社団法人日本ネットワークインフォメーションセンター、平成29年8月1日検索、https://www.nic.ad.jp/ja/newsletter/No52/0800.html）に説明されている。
【００２３】
図１は、本実施の形態に係るオープンフローシステムの全体構成を示す図である。当該オープンフローシステムは、オープンフローコントローラＯＦＣと、オープンフローネットワークＯＦＮと、を備えて構成される。
【００２４】
オープンフローネットワークＯＦＮは、相互通信可能な複数のオープンフロースイッチＯＦＳで構成された物理的なネットワークである。複数のオープンフロースイッチＯＦＳは、それぞれオープンフローコントローラＯＦＣに接続されており、オープンフローコントローラＯＦＣとの間でも相互通信可能である。
【００２５】
オープンフローネットワークＯＦＮには、１つ以上のオープンフロースイッチＯＦＳを用いて１つ以上のマルチキャストグループが論理的に形成されている。図１には、６つのオープンフロースイッチＯＦＳ１〜ＯＦＳ６により１つのマルチキャストグループが形成されている。当該マルチキャストグループでは、サーバ側のビデオカメラから当該マルチキャストグループ宛てに配信された映像パケットを、ＯＦＳ１→ＯＦＳ５→ＯＦＳ６→当該マルチキャストグループのメンバ端末１へ転送する経路と、ＯＦＳ１→ＯＦＳ２→ＯＦＳ４→メンバ端末２へ転送する経路と、ＯＦＳ１→ＯＦＳ２→ＯＦＳ３→メンバ端末３へ転送する経路と、からなるツリーを持つ。
【００２６】
次に、オープンフローコントローラＯＦＣについて説明する。オープンフローコントローラＯＦＣは、オープンフロースイッチＯＦＳを管理・制御するコントローラであり、本実施の形態において、マルチキャスト通信の経路（ツリー）を検査する経路検査装置を備える。
【００２７】
図２は、本実施の形態に係るオープンフローコントローラＯＦＣの機能ブロック構成を示す図である。オープンフローコントローラＯＦＣは、データ情報記憶部１１と、スイッチ制御部１２と、プローブパケット送信部１３と、プローブパケット受信部１４と、実ツリー生成部１５と、ツリー比較部１６と、迂回路検索部１７と、を備えて構成される。
【００２８】
データ情報記憶部１１は、所定のマルチキャストグループでパケットが経由する複数のオープンフロースイッチＯＦＳと当該複数のオープンフロースイッチＯＦＳでのパケットの経由順序とを定めた計算ツリーをマルチキャストグループ毎に記憶しておく機能部である。
【００２９】
スイッチ制御部１２は、上記計算ツリーに従ってパケットを転送する複数のオープンフロースイッチＯＦＳに対して、検査用のプローブパケットにオープンフロースイッチＯＦＳのｄｐｉｄ（後述する）を付与し、当該ｄｐｉｄを付与したプローブパケットを返信し、当該プローブパケットを上記計算ツリーに従って転送する命令を定めたフローエントリ（命令情報）を送信する機能部である。
【００３０】
プローブパケット送信部１３は、検査用のプローブパケットをマルチキャストグループのオープンフロースイッチＯＦＳへ送信する機能部である。
【００３１】
プローブパケット受信部１４は、オープンフロースイッチＯＦＳから返信された返信プローブパケットを受信する機能部である。
【００３２】
実ツリー生成部１５は、受信した返信プローブパケットに付与されているオープンフロースイッチＯＦＳのｄｐｉｄを用いて、上記検査用のプローブパケットが経由した複数のオープンフロースイッチＯＦＳと当該複数のオープンフロースイッチＯＦＳでのパケットの経由順序とを含む実ツリーを生成する機能部である。
【００３３】
ツリー比較部１６は、実ツリーと計算ツリーを比較する機能部である。
【００３４】
迂回路検索部１７は、実ツリーと計算ツリーの比較結果に基づき迂回路を検索・設定する機能部である。
【００３５】
ここで、ｄｐｉｄについて説明する。ｄｐｉｄとは、オープンフローで用いられるＤＰＩＤ（Datapath ID）の上位１６ビットの情報である。オープンフローでは、６４ビットのＤＰＩＤに与えられたフィールドのうち下位４８ビットにはオープンフロースイッチＯＦＳのＭＡＣアドレスが既に割り当てられているため、本実施の形態では、オープンフローの利用者が自由に使用可能な上位１６ビットを用いる。例えば、オープンフロースイッチＯＦＳを識別するためのビット列を１６ビットの範囲内で生成し、ＤＰＩＤの上位１６ビットに含めて利用する。
【００３６】
次に、上述したオープンフローシステムで行う通信の経路検査方法について説明する。ここでは、所定のマルチキャストグループにおいて、パケットが現在経由しているオープンフロースイッチＯＦＳの経路（実ツリー）が以前に設定していた経路（計算ツリー）に合致するかを検証し、合致しない場合には再び計算ツリーを設定して、それでも合致しない場合には迂回路を設定することにより、ツリー内での通信の保障を実現する。
【００３７】
図３は、マルチキャスト通信の経路検査処理手順を示すシーケンスである。データ情報記憶部１１には、図４に例示する計算ツリーが予め登録されているものとする。「No.1」の計算ツリーには、「239.0.0.1」のマルチキャストグループについて、ＯＦＳ１→ＯＦＳ２→ＯＦＳ３の経路と、ＯＦＳ１→ＯＦＳ２→ＯＦＳ４の経路と、ＯＦＳ１→ＯＦＳ５→ＯＦＳ６の経路と、が設定されている。
【００３８】
ステップＳ１；
まず、スイッチ制御部１２は、ユーザにより指定されたマルチキャストグループに対応する計算ツリーをデータ情報記憶部１１から取得する。
【００３９】
ステップＳ２；
次に、スイッチ制御部１２は、取得した計算ツリーに定義されている複数のオープンフロースイッチＯＦＳに対して、当該計算ツリーに従ってパケットを転送する通信用フローエントリをそれぞれ送信する。図４に示した「No.1」の計算ツリーの場合、スイッチ制御部１２は、例えばオープンフロースイッチＯＦＳ５に対して、オープンフロースイッチＯＦＳ６にパケットを転送する通信用フローエントリを送信する。
【００４０】
このとき、スイッチ制御部１２は、当該第１のフローエントリをオープンフロースイッチＯＦＳ内の「フローテーブル１」に登録することを、フローエントリのパケット内で指示する。オープンフロースイッチＯＦＳのフローテーブル１を図５（ａ）に例示する。オープンフロースイッチＯＦＳ５の場合、「GroupTable(1)」に「パケットをＯＦＳ６へ転送する」ことが設定される。これにより、オープンフロースイッチＯＦＳ５は、「239.0.0.1」宛てのパケットをＯＦＳ６へ転送することになる。
【００４１】
同時に、スイッチ制御部１２は、ステップＳ１で取得した計算ツリーに定義されている複数のオープンフロースイッチＯＦＳに対して、送信元ＩＰアドレスがオープンフローコントローラＯＦＣであるパケット（検査用のプローブパケット）を受信した場合、当該プローブパケットにＶＬＡＮ（Virtual Local Area Network）タグを追加する命令（PushVLAN）と、当該ＶＬＡＮタグのデフォルト値をオープンフロースイッチＯＦＳのｄｐｉｄに変更する命令（SetField(VLAN)）と、当該ｄｐｉｄを含むプローブパケットをオープンフローコントローラＯＦＣへ返信する命令（Output(Controller)）と、フローテーブル１を実行する命令（GoToTable1）と、を含めた検査用フローエントリをそれぞれ送信する。
【００４２】
また、スイッチ制御部１２は、ステップＳ１で取得した計算ツリーに定義されている複数のオープンフロースイッチＯＦＳに対して、テーブルミスフローエントリ（table-miss flow entry；フローテーブルの条件に一致しないパケットを処理するためのフローエントリ）として、フローテーブル１を実行する命令（GoToTable1）のみを含めたテーブルミス用フローエントリをそれぞれ送信する。
【００４３】
そして、スイッチ制御部１２は、検査用フローエントリとテーブルミス用フローエントリをオープンフロースイッチＯＦＳ内の「フローテーブル０」に登録することを、それら２つのフローエントリのパケット内でそれぞれ指示する。ただし、プローブパケットはメンバ端末側へ転送する必要がないので、オープンフロースイッチＯＦＳ３，４，６に送信する検査用フローエントリには、「フローテーブル１を実行する命令（GoToTable1）」は含めない。
【００４４】
オープンフロースイッチＯＦＳのフローテーブル０を図５（ｂ）に例示する。各オープンフロースイッチＯＦＳは、それぞれ、フローテーブル０に基づき、オープンフローコントローラＯＦＣからプローブパケットを受信すると、PushVLAN Actionに基づきプローブパケットにＶＬＡＮタグを追加し、SetField(VLAN) Actionに基づき当該ＶＬＡＮタグの値をオープンフロースイッチＯＦＳのｄｐｉｄに変更し、Output(Controller) Actionに基づき当該ＶＬＡＮタグをオープンフローコントローラＯＦＣへ返信するとともに、フローテーブル１に基づき、「GroupTable(1)」に設定された処理（他のオープンフロースイッチＯＦＳへのパケット転送処理）を行うことになる。
【００４５】
ステップＳ３；
次に、プローブパケット送信部１３は、検査するマルチキャストグループの計算ツリーをデータ情報記憶部１１から選択した後、オープンフローコントローラＯＦＣのＩＰアドレスを送信元に設定し、選択したマルチキャストグループのＩＰアドレスを宛先に設定したＲＴＰパケットを生成し、オープンフローコントローラＯＦＣ内の時刻をＲＴＰパケット内のＲＴＰタイムスタンプ（時刻情報）に記述して、当該ＲＴＰパケットをプローブパケットとしてサーバ側のオープンフロースイッチＯＦＳに向けて送信する。
【００４６】
例えば、「No.1」の計算ツリーが選択された場合、プローブパケット送信部１３は、プローブパケットをオープンフロースイッチＯＦＳ１に向けて送信する。なお、プローブパケットの送信処理は、オープンフローコントローラＯＦＣが持つフローエントリに従うものとする。
【００４７】
このとき、プローブパケット送信部１３は、送信したマルチキャストアドレスと、ＲＴＰタイムスタンプと、計算ツリーのNoと、実ツリーのNoとを関連付けたツリー管理テーブルを生成してデータ情報記憶部１１に記憶する。例えば、図６に例示するツリー管理テーブルを生成する。
【００４８】
ステップＳ４〜Ｓ１１；
次に、ツリー上の各オープンフロースイッチＯＦＳは、オープンフローコントローラＯＦＣからプローブパケットを受信すると、フローテーブル０，１に登録された処理を行う。具体的には、各オープンフロースイッチＯＦＳは、それぞれ、ＶＬＡＮタグを付与し、当該ＶＬＡＮタグの値を自オープンフロースイッチＯＦＳのｄｐｉｄに変更し、当該ｄｐｉｄを含むプローブパケットをオープンフローコントローラＯＦＣへ返信するとともに、転送先のオープンフロースイッチＯＦＳへ向けて送信する。
【００４９】
例えば、図７（ａ），（ｂ）に示すように、オープンフロースイッチＯＦＳ１は、プローブパケットにｄｐｉｄ１のＶＬＡＮタグを追加した「プローブパケット＋α」（図８（ａ），（ｂ））をオープンフローコントローラＯＦＣへ返信するとともに、オープンフロースイッチＯＦＳ２，５へも送信する。また、オープンフロースイッチＯＦＳ４は、図７（ｃ）に示すように、オープンフロースイッチＯＦＳ２からのプローブパケットにｄｐｉｄ４のＶＬＡＮタグを更に追加した「プローブパケット＋β」（図８（ｃ））をオープンフローコントローラＯＦＣへ返信する。同様にオープンフロースイッチＯＦＳ６は、図７（ｃ）に示すように、オープンフロースイッチＯＦＳ５からのプローブパケットにｄｐｉｄ６のＶＬＡＮタグを更に追加した「プローブパケット＋γ」（図８（ｄ））をオープンフローコントローラＯＦＣへ返信する。
【００５０】
ステップＳ１２；
次に、プローブパケット受信部１４は、オープンフロースイッチＯＦＳから返信されたプローブパケットを受信し、実ツリー生成部１５は、受信したプローブパケットに付与されたＶＬＡＮタグ内のｄｐｉｄを用いて、サーバ側のオープンフロースイッチＯＦＳから経由した全てのオープンフロースイッチＯＦＳによる実ツリーを生成する。
【００５１】
例えば、図９に示すように、オープンフロースイッチＯＦＳ１をツリーの根とし、ＯＦＳ１→ＯＦＳ２→ＯＦＳ４の経路と、ＯＦＳ１→ＯＦＳ５→ＯＦＳ６の経路と、からなる実ツリー（図１０）が生成される。オープンフロースイッチＯＦＳ３からプローブパケットが返信されなかったため、オープンフロースイッチＯＦＳ３への経路は含まれていない。
【００５２】
ステップＳ１３；
次に、ツリー比較部１６は、メンバ端末側の全てのオープンフロースイッチＯＦＳからプローブパケットが返信された後、または、規定時間が経過した後、ツリー管理テーブルを用いて比較対象のツリーを特定し、特定した実ツリーと計算ツリーとを比較する。当該比較の結果、実ツリーと計算ツリーが等しければそのまま終了する。
【００５３】
ステップＳ１４；
一方、ステップＳ１３での比較の結果、実ツリーと計算ツリーが等しくない場合、スイッチ制御部１２は、等しくない箇所のオープンフロースイッチＯＦＳに対して計算ツリーと等しくなるようなフローエントリ（計算ツリーに合致するように転送先のオープンフロースイッチＯＦＳを設定させるフローエントリ）を送信し、ステップＳ３〜Ｓ１３の検査を再度行う。当該検査の結果、実ツリーと計算ツリーが等しい場合は処理を終了する。
【００５４】
ステップＳ１５；
一方、ステップＳ１４での検査の結果、実ツリーと計算ツリーが等しくない場合、スイッチ制御部１２は、ステップＳ１４を規定回数繰り返し行い、できる限り元の計算ツリーに合致することを試みる。それでも実ツリーが計算ツリーと等しくならない場合、不一致箇所を故障とみなす。
【００５５】
ステップＳ１６；
その後、迂回路検索部１７は、故障対象のオープンフロースイッチＯＦＳを経由しない迂回路を検索し、検索した迂回路を用いて計算ツリーを変更する。例えば、オープンフロースイッチＯＦＳ５を故障とみなした場合、オープンフロースイッチＯＦＳ１とオープンフロースイッチＯＦＳ６との間を接続している他のオープンフロースイッチＯＦＳを検索する。また、例えば、パケットがメンバ端末側の全てのオープンフロースイッチＯＦＳに到達していない場合、正常ツリーから当該全てのオープンフロースイッチＯＦＳ以外のメンバ端末側のオープンフロースイッチＯＦＳにパケットが到達する迂回路を検索し、検索した迂回路上のオープンフロースイッチＯＦＳに対してステップＳ１，Ｓ２を行う。この場合もプローブパケットによる検査を行う。
【００５６】
なお、ステップＳ３で複数の計算ツリーが選択され、対象となる複数のマルチキャストグループに対して短時間に複数のプローブパケットが連続して送信されると、オープンフローコントローラＯＦＣは、オープンフロースイッチＯＦＳから返信されたプローブパケットが、どの送信プローブパケットに対応するものであるかを特定できない可能性がある。この場合、オープンフローコントローラＯＦＣは、返信されたプローブパケットに含まれるＲＴＰタイムスタンプ（プローブパケット毎に付与されていた時刻）に基づき、所望のプローブパケットに対応する返信プローブパケットを特定する。
【００５７】
以上より、本実施の形態によれば、所定のマルチキャストグループでパケットが経由する複数のオープンフロースイッチＯＦＳと当該複数のオープンフロースイッチＯＦＳでのパケットの経由順序とを定めた計算ツリーを記憶しておき、計算ツリーに従ってパケットを転送する複数のオープンフロースイッチＯＦＳに対して、検査用のプローブパケットにオープンフロースイッチＯＦＳの識別情報を付与し、識別情報を付与したプローブパケットを返信し、当該プローブパケットを計算ツリーに従って転送する命令を定めたフローエントリを送信し、検査用のプローブパケットをマルチキャストグループのオープンフロースイッチＯＦＳへ送信し、当該マルチキャストグループのオープンフロースイッチＯＦＳから返信された返信プローブパケットに付与されているオープンフロースイッチＯＦＳの識別情報を用いて、検査用のプローブパケットが経由した複数のオープンフロースイッチＯＦＳと当該複数のオープンフロースイッチＯＦＳでのパケットの経由順序とを含む実ツリーを生成して、実ツリーと計算ツリーとを比較するので、ＳＤＮのネットワークに対して意図した経路を使用しているかを簡易に検査することができる。また、当該検査の結果に基づき、自動で異常箇所を判別し、経路の修正を行うことができる。
【００５８】
なお、本実施の形態では、ステップＳ２で３つのフローエントリをそれぞれ送信する場合を例に説明したが、当該３つのフローエントリを１つに纏めて一度に送信してもよい。
【００５９】
また、本実施の形態では、ＶＬＡＮタグを用いる場合を例に説明したが、ＶＬＡＮタグに代えて、ＭＰＬＳ（Multi-Protocol Label Switching）ラベルを用いてもよい。具体的には、プローブパケットにＭＰＬＳラベルを追加し、当該ＭＰＬＳラベルに含まれる値をオープンフロースイッチＯＦＳのｄｐｉｄに変更する。
【００６０】
また、本実施の形態では、ｄｐｉｄ（ＤＰＩＤの上位１６ビット）を用いる場合を例に説明したが、形成するオープンフローネットワークＯＦＮをプライベートネットワーク（例えば、社内ネットワーク）とする場合には、６４ビットのＤＰＩＤを自由に決定できるので、ＤＰＩＤそのものをオープンフロースイッチＯＦＳの識別情報として用いてもよい。
【００６１】
また、本実施の形態では、マルチキャストグループを用いる場合を例に説明したが、ユニキャストのグループ（複数のユニキャストの組）にも適用可能である。例えば、対象とする複数のオープンフロースイッチＯＦＳを経由するツリーを定めておき、計算ツリーのグループアドレス欄にサーバ側のオープンフロースイッチＯＦＳのＩＰアドレスのみを登録しておく。これにより、同様の方法で上記ユニキャストのグループでのツリーも検査することができる。通常の経路検索（tracerouteなど）ではスイッチ毎にパケットをそれぞれ送信してツリーを検査するが、プローブパケットをサーバ側のオープンフロースイッチＯＦＳにのみ送信すればよいので、パケット数を１つに抑えることができる。
【００６２】
また、本実施の形態では、マルチキャストＩＰアドレスを用いた場合を例に説明したが、マルチキャストＩＰアドレスに代えて、マルチキャストＭＡＣアドレスを用いてもよい。これにより、Ｌ２のマルチキャストツリーについても検査することができる。
【００６３】
また、本実施の形態では、オープンフローを用いる場合を例に説明したが、オープンフロー以外にも適用可能である。すなわち、物理ネットワーク内のネットワーク情報を一元管理し、当該ネットワーク情報を用いて物理ネットワーク全体の経路制御を一括してソフトウェアで行うＳＤＮの技術範囲内であればよい。
【００６４】
また、本実施の形態では、スイッチを用いる場合を例に説明したが、ルータなどの転送装置で形成されたネットワークについても適用可能である。
【００６５】
最後に、本実施の形態で説明したオープンフローコントローラＯＦＣ（経路検査装置）は、ＣＰＵおよびメモリなどを備えたコンピュータで実現できる。また、オープンフローコントローラＯＦＣとしてコンピュータを機能させるための経路検査プログラム、当該経路検査プログラムの記憶媒体を作成することも可能である。
【符号の説明】
【００６６】
ＯＦＣ…オープンフローコントローラ
ＯＦＮ…オープンフローネットワーク
ＯＦＳ（ＯＦＳ１〜ＯＦＳ６）…オープンフロースイッチ
１１…データ情報記憶部
１２…スイッチ制御部
１３…プローブパケット送信部
１４…プローブパケット受信部
１５…実ツリー生成部
１６…ツリー比較部
１７…迂回路検索部
【図１】
2019033306.tif 000003
【図２】
2019033306.tif 000004
【図３】
2019033306.tif 000005
【図４】
2019033306.tif 000006
【図５】
2019033306.tif 000007
【図６】
2019033306.tif 000008
【図７】
2019033306.tif 000009
【図８】
2019033306.tif 000010
【図９】
2019033306.tif 000011
【図１０】
2019033306.tif 000012