(57)【要約】【課題】マルチキャストグループで使用しているオープンフロースイッチＯＦＳを容易に把握し、ネットワークリソースの利用を最適化する。【解決手段】ＯＦＮを構成するＯＦＳの接続構成に対応する第１の有向グラフを生成する全体有向グラフ生成部１２と、ＯＦＮに流れるフローの統計情報を用いて算出されたＯＦＳ間のリンクコストを第１の有向グラフに設定するリンクコスト設定部１３と、ＯＦＮにおいてマルチキャストパケットを所定経路で転送するＯＦＳの接続構成に対応する第２の有向グラフをマルチキャストグループ毎に管理するマルチキャストネットワーク管理部１５と、マルチキャストグループに参加要求された場合、第１の有向グラフを用いて参加要求を受信したＯＦＳと該マルチキャストグループのＯＦＳとの間で最小コストの経路を検索し、参加要求を受信したＯＦＳと最小コストの経路とを第２の有向グラフに追加する有向グラフ更新部１７とを備える。【選択図】図２
2018067746.tif 000002
【特許請求の範囲】
【請求項１】
物理ネットワークを構成する転送装置の接続構成に対応する第１の有向グラフを生成する生成部と、
前記物理ネットワークに流れるフローの統計情報を用いて算出された転送装置間のリンクコストを前記第１の有向グラフに設定する設定部と、
前記物理ネットワークにおいてマルチキャストパケットを所定経路で転送する転送装置の接続構成に対応する第２の有向グラフをマルチキャストグループ毎に管理する管理部と、
所定マルチキャストグループに参加要求された場合、前記第１の有向グラフを用いて前記参加要求を受信した転送装置と前記所定マルチキャストグループの転送装置との間で最小コストの経路を検索し、前記参加要求を受信した転送装置と前記最小コストの経路とを前記所定マルチキャストグループに対応する前記第２の有向グラフに追加する更新部と、
を備えることを特徴とするマルチキャストネットワーク管理装置。
【請求項２】
前記更新部は、
前記物理ネットワークで障害が生じた場合、障害リンクを除いた前記第１の有向グラフを用いて最小コストの迂回路を検索し、前記第２の有向グラフから前記障害リンクの経路を削除して前記最小コストの迂回路を追加することを特徴とする請求項１に記載のマルチキャストネットワーク管理装置。
【請求項３】
双方向型のマルチキャスト通信の場合、受信したマルチキャストパケットを送信元の転送装置へ転送しない設定を転送装置に設定する設定部、
を更に備えることを特徴とする請求項１又は２に記載のマルチキャストネットワーク管理装置。
【請求項４】
マルチキャストネットワーク管理装置で行うマルチキャストネットワーク管理方法において、
物理ネットワークを構成する転送装置の接続構成に対応する第１の有向グラフを生成する生成ステップと、
前記物理ネットワークに流れるフローの統計情報を用いて算出された転送装置間のリンクコストを前記第１の有向グラフに設定する設定ステップと、
前記物理ネットワークにおいてマルチキャストパケットを所定経路で転送する転送装置の接続構成に対応する第２の有向グラフをマルチキャストグループ毎に管理する管理ステップと、
所定マルチキャストグループに参加要求された場合、前記第１の有向グラフを用いて前記参加要求を受信した転送装置と前記所定マルチキャストグループの転送装置との間で最小コストの経路を検索し、前記参加要求を受信した転送装置と前記最小コストの経路とを前記所定マルチキャストグループに対応する前記第２の有向グラフに追加する更新ステップと、
を実行することを特徴とするマルチキャストネットワーク管理方法。
【請求項５】
前記更新ステップでは、
前記物理ネットワークで障害が生じた場合、障害リンクを除いた前記第１の有向グラフを用いて最小コストの迂回路を検索し、前記第２の有向グラフから前記障害リンクの経路を削除して前記最小コストの迂回路を追加することを特徴とする請求項４に記載のマルチキャストネットワーク管理方法。
【請求項６】
双方向型のマルチキャスト通信の場合、受信したマルチキャストパケットを送信元の転送装置へ転送しない設定を転送装置に設定する設定ステップ、
を更に実行することを特徴とする請求項４又は５に記載のマルチキャストネットワーク管理方法。
【請求項７】
請求項１乃至３のいずれかに記載のマルチキャストネットワーク管理装置としてコンピュータを機能させることを特徴とするマルチキャストネットワーク管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチキャストネットワークを管理する技術に関する。
【背景技術】
【０００２】
ビデオデータなどを配信する場合、一般的にはマルチキャスト通信が用いられる。マルチキャスト通信では、１つの原データをマルチキャストアドレスに配信しておき、ホスト端末からの参加要求に応じてルータ機器で原データを複製して配信するので、ユニキャスト通信よりも効率よくネットワークを利用できる。
【０００３】
その配信を受けたいホスト端末は、所望するマルチキャストグループのアドレスを記述したIGMP（Internet Group Management Protocol） Reportを送信する。IGMP Reportを受信したルータ機器は、他のルータ機器へメンバーシップ要求を送信し、ネットワーク内のルータ機器間で、所望されたマルチキャストグループのビデオデータを要求元のホスト端末へ配信可能になるまで、メンバーシップ要求の転送処理を繰り返す。その後、配信を受けない場合、ホスト端末は、脱退したいマルチキャストグループのアドレスを記述したIGMP leaveを送信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−０８２３２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ルータ機器は基本的にマルチキャストパケットの配信処理のみを行うため、マルチキャストグループで使用しているルータ機器の組み合わせおよびマルチキャストパケットの転送経路を簡易に把握することは難しい。また、マルチキャストパケットの転送経路を柔軟に変更できず、ネットワークのリソースを有効活用できない。さらに、ネットワークでリンクに障害が発生した場合、その障害リンクの迂回路を設定するには複雑な処理が必要となる。
【０００６】
本発明は、上記事情を鑑みてなされたものであり、マルチキャストグループで使用している転送装置を容易に把握し、ネットワークリソースの利用を最適化することを第１の目的とし、ネットワークで障害発生時にマルチキャストグループの構成を簡便に変更可能とすることを第２の目的とする。
【課題を解決するための手段】
【０００７】
以上の課題を解決するため、請求項１に係るマルチキャストネットワーク管理装置は、物理ネットワークを構成する転送装置の接続構成に対応する第１の有向グラフを生成する生成部と、前記物理ネットワークに流れるフローの統計情報を用いて算出された転送装置間のリンクコストを前記第１の有向グラフに設定する設定部と、前記物理ネットワークにおいてマルチキャストパケットを所定経路で転送する転送装置の接続構成に対応する第２の有向グラフをマルチキャストグループ毎に管理する管理部と、所定マルチキャストグループに参加要求された場合、前記第１の有向グラフを用いて前記参加要求を受信した転送装置と前記所定マルチキャストグループの転送装置との間で最小コストの経路を検索し、前記参加要求を受信した転送装置と前記最小コストの経路とを前記所定マルチキャストグループに対応する前記第２の有向グラフに追加する更新部と、を備えることを要旨とする。
【０００８】
請求項２に係るマルチキャストネットワーク管理装置は、請求項１に記載のマルチキャストネットワーク管理装置において、前記更新部は、前記物理ネットワークで障害が生じた場合、障害リンクを除いた前記第１の有向グラフを用いて最小コストの迂回路を検索し、前記第２の有向グラフから前記障害リンクの経路を削除して前記最小コストの迂回路を追加することを要旨とする。
【０００９】
請求項３に係るマルチキャストネットワーク管理装置は、請求項１又は２に記載のマルチキャストネットワーク管理装置において、双方向型のマルチキャスト通信の場合、受信したマルチキャストパケットを送信元の転送装置へ転送しない設定を転送装置に設定する設定部、を更に備えることを要旨とする。
【００１０】
請求項４に係るマルチキャストネットワーク管理方法は、マルチキャストネットワーク管理装置で行うマルチキャストネットワーク管理方法において、物理ネットワークを構成する転送装置の接続構成に対応する第１の有向グラフを生成する生成ステップと、前記物理ネットワークに流れるフローの統計情報を用いて算出された転送装置間のリンクコストを前記第１の有向グラフに設定する設定ステップと、前記物理ネットワークにおいてマルチキャストパケットを所定経路で転送する転送装置の接続構成に対応する第２の有向グラフをマルチキャストグループ毎に管理する管理ステップと、所定マルチキャストグループに参加要求された場合、前記第１の有向グラフを用いて前記参加要求を受信した転送装置と前記所定マルチキャストグループの転送装置との間で最小コストの経路を検索し、前記参加要求を受信した転送装置と前記最小コストの経路とを前記所定マルチキャストグループに対応する前記第２の有向グラフに追加する更新ステップと、を実行することを要旨とする。
【００１１】
請求項５に係るマルチキャストネットワーク管理方法は、請求項４に記載のマルチキャストネットワーク管理方法において、前記更新ステップでは、前記物理ネットワークで障害が生じた場合、障害リンクを除いた前記第１の有向グラフを用いて最小コストの迂回路を検索し、前記第２の有向グラフから前記障害リンクの経路を削除して前記最小コストの迂回路を追加することを要旨とする。
【００１２】
請求項６に係るマルチキャストネットワーク管理方法は、請求項４又は５に記載のマルチキャストネットワーク管理方法において、双方向型のマルチキャスト通信の場合、受信したマルチキャストパケットを送信元の転送装置へ転送しない設定を転送装置に設定する設定ステップ、を更に実行することを要旨とする。
【００１３】
請求項７に係るマルチキャストネットワーク管理プログラムは、請求項１乃至３のいずれかに記載のマルチキャストネットワーク管理装置としてコンピュータを機能させることを要旨とする。
【発明の効果】
【００１４】
本発明によれば、マルチキャストグループで使用している転送装置を容易に把握し、ネットワークリソースの利用を最適化できる。また、ネットワークで障害発生時にマルチキャストグループの構成を簡便に変更できる。
【図面の簡単な説明】
【００１５】
【図１】オープンフローシステムの全体構成を示す図である。
【図２】オープンフローコントローラの機能ブロック構成を示す図である。
【図３】オープンフローネットワークのトポロジー特定処理フローと全体の有向グラフの生成処理フローを示す図である。
【図４】全体の有向グラフの構成を示す図である。
【図５】全体の有向グラフのリンクコスト算出処理フローとリンクコストの設定処理フローを示す図である。
【図６】マルチキャストグループに対応する有向グラフの生成処理フローを示す図である。
【図７】マルチキャストグループに対応する有向グラフの構成を示す図である。
【図８】管理テーブルの具体例を示す図である。
【図９】マルチキャストグループへの参加要求を受けた場合の処理フローを示す図である。
【図１０−Ａ】参加要求に応じてマルチキャストグループに対応する有向グラフの構成を変更する様子を示す図である。
【図１０−Ｂ】参加要求に応じてマルチキャストグループに対応する有向グラフの構成を変更する様子を示す図である。
【図１０−Ｃ】参加要求に応じてマルチキャストグループに対応する有向グラフの構成を変更する様子を示す図である。
【図１１】オープンフローネットワークで障害が発生した場合の処理フローを示す図である。
【図１２−Ａ】障害発生時にマルチキャストグループに対応する有向グラフの構成を変更する様子を示す図である。
【図１２−Ｂ】障害発生時にマルチキャストグループに対応する有向グラフの構成を変更する様子を示す図である。
【図１３】マルチキャストグループから脱退する場合の処理フローを示す図である。
【図１４】脱退要求に応じてマルチキャストグループに対応する有向グラフの構成を変更する様子を示す図である。
【図１５】オープンフローネットワークの構成例とマルチキャストグループに対応する有向グラフの構成例を示す図である。
【図１６】図１５に対応するグループエントリ情報の設定例を示す図である。
【図１７】双方向型のマルチキャスト通信の場合における有向グラフの構成例を示す図である。
【図１８】図１７に対応するグループエントリ情報の設定例を示す図である。
【図１９】図１７に対応する改良後のグループエントリ情報の設定例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施する一実施の形態について図面を用いて説明する。
【００１７】
＜システム構成＞
本実施の形態では、ＳＤＮ（Software Design Network）の技術であるオープンフロー（OpenFlow）を用いる。ＳＤＮとは、物理ネットワーク内のネットワーク情報を一元管理し、そのネットワーク情報を用いて物理ネットワーク全体の制御を一括してソフトウェアで行う技術の総称である。例えば、スイッチ機器間の物理的接続構成、スイッチ機器間のリンク通信速度、スイッチ機器に流れるパケット通信速度を用いて、物理ネットワークを制御する。
【００１８】
オープンフローでは、オープンフローネットワークＯＦＮ内に流れるパケットの通信をフローと呼ぶ。オープンフローコントローラＯＦＣでパケットのヘッダ情報に基づきフローを識別し、さらに対象フローの通信経路を制御する。例えば、オープンフロースイッチＯＦＳおよび／またはオープンフローポートＯＦＰでカウントされたフローカウンタの統計情報を用いてフローの経路を切り替える。
【００１９】
図１は、本実施の形態に係るオープンフローシステムの全体構成を示す図である。このオープンフローシステムは、オープンフローネットワークＯＦＮと、オープンフローコントローラＯＦＣと、マルチキャスト配信サーバ１００と、ホスト端末３００と、を備えて構成される。
【００２０】
マルチキャスト配信サーバ１００は、ビデオデータなどのコンテンツを特定のマルチキャストネットワークＭＣＮへ配信するサーバである。また、ホスト端末３００は、コンテンツが配信されているマルチキャストネットワークＭＣＮにマルチキャストグループへの参加要求又はマルチキャストグループからの脱退要求を送信する。
【００２１】
オープンフローネットワークＯＦＮは、互いに通信可能な複数のオープンフロースイッチＯＦＳで構成された物理的なネットワークである。各オープンフロースイッチＯＦＳは、それぞれオープンフローコントローラＯＦＣに接続されている。また、オープンフローネットワークＯＦＮの内部では、少なくとも１つ以上のオープンフロースイッチＯＦＳにより少なくとも１つ以上の論理的なマルチキャストネットワークＭＣＮが形成されている。
【００２２】
オープンフローコントローラＯＦＣは、オープンフローネットワークＯＦＮを管理し制御する制御装置である。本実施の形態では、特にマルチキャストネットワークＭＣＮを管理する。オープンフローコントローラＯＦＣの機能ブロック構成を図２に示す。オープンフローコントローラＯＦＣは、ネットワークトポロジー特定部１１と、全体有向グラフ生成部１２と、リンクコスト設定部１３と、マルチキャストパケット受信部１４と、マルチキャストネットワーク管理部１５と、グループ参加・脱退要求受信部１６と、有向グラフ更新部１７と、障害検知部１８と、フローエントリ設定部１９と、データ記憶部２０と、を備えて構成される。
【００２３】
ネットワークトポロジー特定部１１は、オープンフローネットワークＯＦＮのトポロジーを特定する。
【００２４】
全体有向グラフ生成部１２は、特定されたオープンフローネットワークＯＦＮのトポロジーを用いて、オープンフロースイッチＯＦＳの接続構成に対応する全体の有向グラフ（all_topology；第１の有向グラフ）を生成する。
【００２５】
リンクコスト設定部１３は、オープンフローネットワークＯＦＮに流れるフローの統計情報を用いてオープンフロースイッチＯＦＳ間のリンクコストを算出し、算出したリンクコストを全体の有向グラフ（all_topology）に設定する。
【００２６】
マルチキャストパケット受信部１４は、オープンフローネットワークＯＦＮから転送されたマルチキャストパケットを受信する。
【００２７】
マルチキャストネットワーク管理部１５は、受信したマルチキャストパケットのヘッダ情報を元に、オープンフローネットワークＯＦＮにおいてマルチキャストパケットを所定経路で転送するオープンフロースイッチＯＦＳの接続構成に対応する論理的なマルチキャストネットワークＭＣＮの有向グラフ（mcn_topology_n；第２の有向グラフ）を生成し、マルチキャストグループ毎に管理テーブルで管理する。
【００２８】
グループ参加・脱退要求受信部１６は、オープンフローネットワークＯＦＮから転送されたホスト端末３００からの所定マルチキャストグループに対する参加要求又は脱退要求を受信する。
【００２９】
有向グラフ更新部１７は、所定マルチキャストグループに参加要求された場合、全体の有向グラフ（all_topology）を用いて参加要求を受信したオープンフロースイッチＯＦＳと所定マルチキャストグループのオープンフロースイッチＯＦＳとの間で最小コストの経路を検索し、少なくとも該参加要求を受信したオープンフロースイッチＯＦＳと最小コストの経路とを上記所定マルチキャストグループに対応する有向グラフ（mcn_topology_n）に追加する。
【００３０】
また、有向グラフ更新部１７は、オープンフローネットワークＯＦＮで障害が生じた場合、障害リンクを除いた全体の有向グラフ（all_topology）を用いて最小コストの迂回路を検索し、有向グラフ（mcn_topology_n）から障害リンクの経路を削除して最小コストの迂回路を追加する。
【００３１】
障害検知部１８は、オープンフローネットワークＯＦＮで発生した障害を検知する。
【００３２】
フローエントリ設定部１９は、フローを制御し管理するためのフローエントリ情報を各オープンフロースイッチＯＦＳにそれぞれ設定する。フローエントリ情報は、マッチ条件（Match Fields）、動作条件（Actions）、統計情報（Counters）などで構成される。なお、Match Fieldsとは、Version 1.3のオープンフローで用いられているマッチ条件の英語表記であり、Version 1.0の場合には、Header Fieldsと表現されている。
【００３３】
データ記憶部２０は、全体の有向グラフ（all_topology）と、マルチキャストグループに対応する有向グラフ（mcn_topology_n）を管理するための管理テーブルと、フローエントリ情報と、を記憶する。
【００３４】
＜システム動作＞
次に、オープンフローコントローラＯＦＣの動作を説明する。以降、オープンフローコントローラＯＦＣにより、フローエントリ情報が各オープンフロースイッチＯＦＳに設定されているものとする。また、マルチキャスト配信サーバ１００からコンテンツがオープンフローネットワークＯＦＮへマルチキャスト配信されているものとする。
【００３５】
（トポロジーの把握及び全体の有向グラフの生成）
図３は、オープンフローネットワークＯＦＮのトポロジーを特定し、全体の有向グラフ（all_topology）を生成する処理フローを示す図である。
【００３６】
ステップＳ１０１において、ネットワークトポロジー特定部１１は、各オープンフロースイッチＯＦＳに、LLDP（Link Layer Discovery Protocol）を他のオープンフロースイッチＯＦＳから受信した場合に自己のLLDPをオープンフローコントローラＯＦＣへ転送させる処理を設定する。
【００３７】
次に、ステップＳ１０２において、ネットワークトポロジー特定部１１は、LLDPを各オープンフロースイッチＯＦＳへ送信し、各オープンフロースイッチＯＦＳの保持する全てのオープンフローポートＯＦＰへ該オープンフロースイッチＯＦＳのLLDPを転送させ、さらに該LLDPを他のオープンフロースイッチＯＦＳへ転送させる。その後、ステップＳ１０１で行った設定により、各オープンフロースイッチＯＦＳからLLDPがオープンフローコントローラＯＦＣへ転送される。
【００３８】
次に、ステップＳ１０３において、ネットワークトポロジー特定部１１は、転送されたLLDPのペイロード情報を元に、オープンフローネットワークＯＦＮのトポロジーを特定する。具体的には、オープンフローネットワークＯＦＮを構成しているオープンフロースイッチＯＦＳを特定し、オープンフロースイッチＯＦＳ間の接続構成を特定する。
【００３９】
最後に、ステップＳ１０４において、全体有向グラフ生成部１２は、特定されたトポロジーに対応する全体の有向グラフ（all_topology）を生成し、データ記憶部２０に格納する。このとき、全体有向グラフ生成部１２は、オープンフロースイッチＯＦＳとオープンフローポートＯＦＰとを区別して登録することが好ましい。例えば、オープンフロースイッチＯＦＳが備える自身の機器構成に基づき、自身をセンターノードとし、自身の備えるオープンフローポートＯＦＰをエッジノードとして、センターノードとエッジノードとをリンクで結線する。このように、オープンフロースイッチＯＦＳとオープンフローポートＯＦＰとを別ノードとして登録しておくことにより、後述する経路検索時に、同じオープンフロースイッチＯＦＳを経由する場合でも複数のオープンフローポートＯＰＦを用いて２つ以上の経路を検索できるので、負荷分散を容易に実現可能となる。
【００４０】
以上の処理により、図４の中段に示すトポロジーが特定され、同図の下段に示す全体の有向グラフ（all_topology）が生成される。オープンフロースイッチＯＦＳ間の結線はリンクを示し、その矢印はパケットの転送可能方向を示す。
【００４１】
（リンクコストの把握）
図５は、全体の有向グラフ（all_topology）のリンクコストを算出し、そのリンクコストを設定する処理フローを示す図である。
【００４２】
ステップＳ２０１において、リンクコスト設定部１３は、フローの統計情報取得要求を各オープンフロースイッチＯＦＳへ送信し、各オープンフロースイッチＯＦＳからフローの統計情報を取得する。フローの統計情報とは、フローのトラフィックに関するデータである。各オープンフロースイッチＯＦＳ及びオープンフローポートＯＦＰでそれぞれカウントされている。例えば、受信パケット数、送信パケット数、受信バイト数、送信バイト数、受信ドロップ数、送信ドロップ数、受信エラー数、送信エラー数、フローエントリが作成されてから現在までの時間などである。
【００４３】
次に、ステップＳ２０２において、リンクコスト設定部１３は、取得したフローの統計情報を用いてオープンフロースイッチＯＦＳ間の各リンクに流れる総使用通信量をそれぞれ算出し、各リンクの最大転送可能量から各リンクの総使用通信量をそれぞれ減算することにより、リンク毎の未使用帯域量を算出する。
【００４４】
最後に、ステップＳ２０３において、リンクコスト設定部１３は、算出したリンク毎の未使用帯域量に対応するコストをそれぞれ算出し、全体の有向グラフ（all_topology）の各リンクにそれぞれ設定する。リンクコストは、未使用帯域量が大きいほど小さく設定される。
【００４５】
以上の処理により、リンクの使用通信量に応じたリンクコストを持つ重み付き全体の有向グラフ（all_topology）が生成される。リンクの使用通信量（フローの統計情報）は時間の経過に伴い変動するので、それに応じて各リンクコストも変動する。
【００４６】
（マルチキャストネットワークの把握）
図６は、マルチキャストグループに対応する有向グラフ（mcn_topology_n）を生成する処理フローを示す図である。
【００４７】
ステップＳ３０１において、マルチキャストパケット受信部１４は、各オープンフロースイッチＯＦＳから転送されたマルチキャストパケットを受信する。
【００４８】
次に、ステップＳ３０２において、マルチキャストネットワーク管理部１５は、受信したマルチキャストパケットについて空の有向グラフ（mcn_topology_n）を新規生成し、マルチキャストパケットを転送してきたオープンフロースイッチＯＦＳとオープンフローポートＯＦＰとをノードとして登録する。これにより、受信したマルチキャストパケットのマルチキャストグループに対応する有向グラフ（mcn_topology_n）が生成される。
【００４９】
このとき、マルチキャストネットワーク管理部１５は、オープンフロースイッチＯＦＳとオープンフローポートＯＦＰの間を結線し、送受信関係にあるオープンフロースイッチＯＦＳ間も結線する。また、マルチキャストパケットのヘッダ情報を参照し、そのヘッダ情報に含まれる宛先ＩＰアドレスなどを元にマルチキャストパケットの転送方向を矢印で表現する。
【００５０】
最後に、ステップＳ３０３において、マルチキャストネットワーク管理部１５は、生成した有向グラフ（mcn_topology_n）と該有向グラフの生成に用いたヘッダ情報とを関連付けてデータ記憶部２０の管理テーブルに格納する。
【００５１】
これらの処理は全てのマルチキャストグループに対してそれぞれ行われ、マルチキャストグループ毎に有向グラフ（mcn_topology_n）が生成される。例えば図７に示すように、ＯＦＳ１→ＯＦＳ３→ＯＦＳ５の順でマルチキャストパケットを転送するマルチキャストグループ１の有向グラフ（mcn_topology_1）が生成される。また、管理テーブルの具体例を図８に示す。
【００５２】
本実施の形態によれば、オープンフローネットワークＯＦＮにおいてマルチキャストパケットを所定経路で転送するオープンフロースイッチＯＦＳの接続構成に対応する有向グラフ（mcn_topology_n）をマルチキャストグループ毎に管理テーブルで管理するので、マルチキャストグループで使用しているオープンフロースイッチＯＦＳを容易に把握できる。
【００５３】
（マルチキャストグループへの参加）
図９は、マルチキャストグループへの参加要求を受けた場合の処理フローを示す図である。以降、ホスト端末３００からの参加要求（IGMP Report）がオープンフロースイッチＯＦＳからオープンフローコントローラＯＦＣへ転送されているものとする。ここでいうオープンフロースイッチＯＦＳとは、オープンフローネットワークＯＦＮ内でIGMP Reportを最初に受信したオープンフロースイッチＯＦＳである。例えば、図１に示したＯＦＳ５又はＯＦＳ６である。
【００５４】
ステップＳ４０１において、グループ参加・脱退要求受信部１６は、オープンフロースイッチＯＦＳから転送されたIGMP Reportを受信する。
【００５５】
次に、ステップＳ４０２において、有向グラフ更新部１７は、受信したIGMP Reportのパケットを解析し、参加要求を受けたマルチキャストグループを特定する。
【００５６】
次に、ステップＳ４０３において、有向グラフ更新部１７は、特定したマルチキャストグループがデータ記憶部２０の管理テーブルにあるか否かを判定する。
【００５７】
参加要求を受けたマルチキャストグループが管理テーブルにある場合、ステップＳ４０４において、有向グラフ更新部１７は、その管理テーブルから該マルチキャストグループに対応する有向グラフ（mcn_topology_n）を取得し、ステップＳ４０５において、IGMP Reportを転送した転送元のオープンフロースイッチＯＦＳと該オープンフロースイッチＯＦＳのオープンフローポートＯＦＰとを新規ノードとして追加登録する。このとき、そのオープンフロースイッチＯＦＳとオープンフローポートＯＦＰの間を結線する。
【００５８】
次に、ステップＳ４０６において、有向グラフ更新部１７は、ステップＳ４０４で取得した有向グラフ（mcn_topology_n）に含まれる全てのノード（追加登録された新規ノードを除く）を第１の配列へ格納する。
【００５９】
次に、ステップＳ４０７において、有向グラフ更新部１７は、重み付き全体の有向グラフ（all_topology）を用いて、ステップＳ４０５で追加登録された新規ノードと第１の配列に格納されたノードとの間の経路を検索し、ステップＳ４０８において、重み付き全体の有向グラフ（all_topology）のリンクコストを用いて検索経路のコスト値を算出し、算出したコスト値を該検索経路の経路情報と共に第２の配列へ格納する。
【００６０】
次に、ステップＳ４０９において、有向グラフ更新部１７は、第１の配列に格納されている全てのノードについて経路検索を行ったか否かを判定する。全てのノードについて経路検索を行っていない場合には、ステップＳ４０７へ戻る。
【００６１】
一方、全てのノードについて経路探索を行った場合、ステップＳ４１０において、有向グラフ更新部１７は、第２の配列の中から最小コストの経路を取得し、その最小コストの経路を上記有向グラフ（mcn_topology_n）に更に追加登録する。このとき、最小コストの経路上に未登録のノードがあれば、その未登録のノードも併せて追加登録する。
【００６２】
最後に、ステップＳ４１１において、有向グラフ更新部１７は、新規ノードと最小コストの経路とが追加登録された有向グラフ（mcn_topology_n）を用いて、データ記憶部２０のフローエントリ情報を変更し、フローエントリ設定部１９は、変更後のフローエントリ情報を各オープンフロースイッチＯＦＳにそれぞれ送信する。これにより、既存ノードから新規ノードへ対象のマルチキャストパケットが転送される。
【００６３】
このとき、フローエントリ設定部１９は、フローエントリ情報と共に、グループエントリ情報を併せて送信してもよい。フローエントリ情報には、パケットの転送条件を定めた動作条件が設定されるが、その動作条件には、例えば、出力先ポートを直接指定する方法、特定のグループ向けに予め指定した処理を実行するためのグループテーブルを指定する方法、を選択的に設定可能である。グループテーブルは１つ以上のグループエントリを持ち、そのグループエントリには処理動作が具体的に定義されている。グループエントリで定義される処理は、上記「出力先ポートを直接指定する」処理に対応する。それゆえ、出力先ポートをグループエントリで指定したグループエントリ情報を送信してもよい。これにより、フローエントリの動作条件は、フローエントリ情報に直接指定されたポート又は該フローエントリ情報に紐付くグループエントリ情報のグループテーブルで指定されたポート、にパケットを転送することとなる。いずれの場合でも、出力先ポートは、追加登録された最小コストの経路を介して新規ノードへパケットを転送するように指定される。なお、グループテーブル情報の具体例については後述する。
【００６４】
なお、ステップＳ４０３でマルチキャストグループが管理テーブルにない場合、ステップＳ４１２において、グループ参加・脱退要求受信部１６は、ステップＳ４０１で受信していたIGMP Reportを破棄して処理を終了する。
【００６５】
以下具体例を説明する。図１０−Ａ，Ｂ，Ｃは、ホスト端末３００からの参加要求に応じて有向グラフ（mcn_topology_n）の構成を変更する様子を示す図である。
【００６６】
図１０−Ａ（ａ）に示すように、ホスト端末３００ａからIGMP Reportが送信されると、そのIGMP ReportはオープンフロースイッチＯＦＳ５からオープンフローコントローラＯＦＣへ転送される。
【００６７】
次に、図１０−Ａ（ｂ）に示すように、オープンフローコントローラＯＦＣは、参加要求されたマルチキャストグループ１及びその有向グラフ（mcn_topology_1）を特定し、特定した有向グラフ（mcn_topology_1）にパケット転送元のオープンフロースイッチＯＦＳ５を追加登録する。
【００６８】
次に、図１０−Ｂ（ｃ）に示すように、オープンフローコントローラＯＦＣは、重み付き全体の有向グラフ（all_topology）を用いて、有向グラフ（mcn_topology_1）に含まれているオープンフロースイッチＯＦＳ１と追加登録されたオープンフロースイッチＯＦＳ５との間を繋ぐ複数の経路の中から最小コストの経路を検索し、その最小コストの経路上にあるオープンフロースイッチＯＦＳ３も併せて有向グラフ（mcn_topology_1）に追加登録する。
【００６９】
以降、他のホスト端末３００ｂからIGMP Reportが送信された場合も同様である。具体的には、図１０−Ｂ（ｄ）に示すように、他のホスト端末３００ｂからIGMP Reportが送信されると、図１０−Ｃ（ｅ）に示すように、オープンフローコントローラＯＦＣは、参加要求されたマルチキャストグループ１及びその有向グラフ（mcn_topology_1）を再び特定して該有向グラフ（mcn_topology_1）にオープンフロースイッチＯＦＳ６を追加登録する。その後、図１０−Ｃ（ｆ）に示すように、オープンフローコントローラＯＦＣは、重み付き全体の有向グラフ（all_topology）を用いて、有向グラフ（mcn_topology_1）に含まれているオープンフロースイッチＯＦＳ１，ＯＦＳ３，ＯＦＳ５と追加登録されたオープンフロースイッチＯＦＳ６との間を繋ぐ複数の経路の中から最小コストの経路を検索し、その最小コストの経路を有向グラフ（mcn_topology_1）に追加登録する。
【００７０】
ここで、最小コストの経路検索方法について説明する。図１０−Ａ（ｂ）においてＯＦＳ１とＯＦＳ５との間を繋ぐ経路としては、重み付き全体の有向グラフ（all_topology）の経路を参照すると、例えば、ＯＦＳ１→ＯＦＳ３→ＯＦＳ５の経路とＯＦＳ１→ＯＦＳ２→ＯＦＳ４→ＯＦＳ５の経路が検索される。その後、重み付き全体の有向グラフ（all_topology）のリンクコストを参照して、検索された各経路の総コストをそれぞれ求め、最も総コストの小さい経路を決定する。
【００７１】
なお、最小コストの経路探索方法としては、例えばダイクストラ法を用いて行うことができる。ダイクストラ法とは、最短経路問題を効率的に解くグラフ理論におけるアルゴリズムである。オープンフロースイッチＯＦＳをノードとみなし、例えばオープンフロースイッチＯＦＳ１をスタートノード、オープンフロースイッチＯＦＳ５をゴールノードとして、スタートノードからゴールノードまでの間に介在する複数の経路の中から最短コストの経路を検索する。尚、経路検索のアルゴリズム自体は公知技術であり、ここでの詳細説明は省略する。
【００７２】
本実施の形態では、所定のマルチキャストグループに参加要求された場合、重み付き全体の有向グラフ（all_topology）を用いて、参加要求を受信したオープンフロースイッチＯＦＳと上記所定マルチキャストグループのオープンフロースイッチＯＦＳとの間で最小コストの経路を検索し、有向グラフ（mcn_topology_n）に追加登録するので、リンク上のコストを考慮したマルチキャストネットワークを構築できる。また、重み付き全体の有向グラフ（all_topology）のリンクコストはフローの統計情報を用いて算出され時間経過に伴い変動するので、リンク上のコストを適切に考慮したマルチキャストネットワークを構築でき、ネットワークリソースをバランスよく利用できる。また、簡単な処理でマルチキャストネットワークの構成を変更できる。
【００７３】
（障害発生時）
図１１は、オープンフローネットワークＯＦＮで障害が発生した場合の処理フローを示す図である。
【００７４】
ステップＳ５０１において、障害検知部１８は、オープンフローネットワークＯＦＮで発生したリンク切断を検知し、障害リンクを持つオープンフローポートＯＦＰの情報を該当のオープンフロースイッチＯＦＳから取得する。
【００７５】
次に、ステップＳ５０２において、有向グラフ更新部１７は、データ記憶部２０に格納されている全体の有向グラフ（all_topology）から障害リンクを削除する。
【００７６】
次に、ステップＳ５０３において、有向グラフ更新部１７は、障害リンクの始点に位置するオープンフロースイッチＯＦＳと終点に位置するオープンフロースイッチＯＦＳとを特定する。
【００７７】
次に、ステップＳ５０４において、有向グラフ更新部１７は、変数ｎの値に「１」を代入し、ステップＳ５０５において、現在の変数ｎの値が有向グラフ（mcn_topology_n）の総数よりも大きいか否かを判定する。
【００７８】
変数ｎの値が有向グラフ（mcn_topology_n）の総数よりも大きくない場合、ステップＳ５０６において、有向グラフ更新部１７は、データ記憶部２０の管理テーブルからｎ＝１に対応する有向グラフ（mcn_topology_1）を取得し、ステップＳ５０７において、取得した有向グラフ（mcn_topology_1）に障害リンクが含まれるか否かを判定する。
【００７９】
取得した有向グラフ（mcn_topology_1）に障害リンクがある場合、ステップＳ５０８において、有向グラフ更新部１７は、障害リンクを削除した全体の有向グラフ（all_topology）を用いて、始点オープンフロースイッチＯＦＳと終点オープンフロースイッチＯＦＳとの間を繋ぐ複数の経路の中から最小コストの迂回路を検索する。
【００８０】
次に、ステップＳ５０９において、有向グラフ更新部１７は、有向グラフ（mcn_topology_1）から障害リンクを削除して最小コストの迂回路を登録する。このとき、最小コストの迂回路上に未登録のノードがあれば、その未登録のノードも併せて追加登録する。
【００８１】
最後に、ステップＳ５１０において、有向グラフ更新部１７は、障害リンクの迂回路が登録された有向グラフ（mcn_topology_1）を用いて、データ記憶部２０のフローエントリ情報を変更し、フローエントリ設定部１９は、変更後のフローエントリ情報を各オープンフロースイッチＯＦＳにそれぞれ送信する。
【００８２】
このときも、フローエントリ設定部１９は、フローエントリ情報と共に、グループエントリ情報を併せて送信してもよい。但し、迂回路が有向グラフ（mcn_topology_1）に既登録のオープンフロースイッチＯＦＳで構成される場合には、グループテーブルを変更するのみで間に合うので、グループテーブル情報のみを送信してもよい。その一方で、上述したマルチキャストグループへ参加する場合等、未登録のオープンフロースイッチＯＦＳ又はオープンフローポートＯＦＰを有向グラフ（mcn_topology_n）に新規登録する場合には、その登録に基づき変更したフローエントリ情報を必ず送信する必要がある。
【００８３】
ステップＳ５１０の後、又はステップＳ５０７で有向グラフ（mcn_topology_1）に障害リンクがないと判定された場合、ステップＳ５１１において、有向グラフ更新部１７は、変数ｎの値をインクリメントし、ステップＳ５０５へ戻る。そして、ステップＳ５０５で変数ｎの値が有向グラフ（mcn_topology_n）の総数よりも大きいと判定された場合に処理を終了する。
【００８４】
具体例を説明する。図１２−Ａ，Ｂは、障害発生時に有向グラフ（mcn_topology_n）の構成を変更する様子を示す図である。
【００８５】
図１２−Ａ（ａ）に示すように、ホスト端末３００ａは、オープンフロースイッチＯＦＳ１，ＯＦＳ３，ＯＦＳ５を介してコンテンツのマルチキャスト配信を享受しているものとする。このとき、図１２−Ａ（ｂ）に示すように、オープンフロースイッチＯＦＳ１とオープンフロースイッチＯＦＳ３との間のリンクがダウンすると、ホスト端末３００ａはコンテンツを受信できない状態となる。
【００８６】
そこで、オープンフローコントローラＯＦＣは、全体の有向グラフ（all_topology）から障害リンクを削除し、その障害リンクを接続していた始点オープンフロースイッチＯＦＳ３と終点オープンフロースイッチＯＦＳ５とを特定する。そして、オープンフローコントローラＯＦＣは、障害リンクを含む有向グラフ（mcn_topology_1）からも障害リンクを削除する。その後、図１２−Ｂ（ｃ）に示すように、オープンフローコントローラＯＦＣは、障害リンクを削除した全体の有向グラフ（all_topology）を用いてＯＦＳ３→ＯＦＳ４→ＯＦＳ５の迂回路を検索し、有向グラフ（mcn_topology_1）に追加する。
【００８７】
本実施の形態では、オープンフローネットワークＯＦＮで障害が発生した場合、重み付き全体の有向グラフ（all_topology）を用いて最小コストの迂回路を検索し、有向グラフ（mcn_topology_n）に追加登録するので、リンク上のコストを考慮したマルチキャストネットワークを構築できる。また、重み付き全体の有向グラフ（all_topology）のリンクコストはフローの統計情報を用いて算出され時間経過に伴い変動するので、リンク上のコストを適切に考慮したマルチキャストネットワークを構築でき、ネットワークリソースをバランスよく利用できる。また、簡単な処理でマルチキャストネットワークの構成を変更でき、障害リンクの迂回路を即座に検索して設定できる。
【００８８】
（マルチキャストグループから脱退）
図１３は、マルチキャストグループから脱退する場合の処理フローを示す図である。なお、オープンフロースイッチＯＦＳから、ホスト端末３００からの脱退要求（IGMP leave）がオープンフローコントローラＯＦＣへ転送されているものとする。ここでいうオープンフロースイッチＯＦＳとは、オープンフローネットワークＯＦＮ内でIGMP leaveを最初に受信したオープンフロースイッチＯＦＳである。
【００８９】
ステップＳ６０１において、グループ参加・脱退要求受信部１６は、オープンフロースイッチＯＦＳから転送されたIGMP leaveを受信する。
【００９０】
次に、ステップＳ６０２において、有向グラフ更新部１７は、IGMP leaveを転送したオープンフロースイッチＯＦＳ（＝脱退対象ＯＦＳ）とオープンフローポートＯＦＰ（＝脱退対象ＯＦＰ）を検出し、ステップＳ６０３において、受信したIGMP leaveのパケットを解析し、脱退要求を受けたマルチキャストグループを特定する。その後、ステップＳ６０４において、有向グラフ更新部１７は、特定したマルチキャストグループに対応する有向グラフ（mcn_topology_n）をデータ記憶部２０の管理テーブルから取得する。
【００９１】
次に、ステップＳ６０５において、有向グラフ更新部１７は、取得した有向グラフ（mcn_topology_n）とフローエントリ情報とを参照し、脱退対象ＯＦＳに脱退要求元のホスト端末以外のグループ参加ホスト端末が接続されているか否かを判定する。さらに、ステップＳ６０６において、有向グラフ更新部１７は、脱退対象ＯＦＳが脱退要求元のホスト端末以外へコンテンツを転送する以外に他のＯＦＳへ転送しているか否かを判定する。
【００９２】
そして、脱退対象ＯＦＳに脱退要求元のホスト端末以外のグループ参加ホスト端末が接続されていない場合、かつ、脱退対象ＯＦＳが脱退要求元のホスト端末以外へ転送する以外に他のＯＦＳへ転送していない場合、ステップＳ６０７において、有向グラフ更新部１７は、脱退対象ＯＦＳ及び脱退対象ＯＦＰを有向グラフ（mcn_topology_n）から削除する。
【００９３】
最後に、ステップＳ６０８において、有向グラフ更新部１７は、脱退対象ＯＦＳが削除された有向グラフ（mcn_topology_n）を用いて、データ記憶部２０のフローエントリ情報を変更し、フローエントリ設定部１９は、変更後のフローエントリ情報を各オープンフロースイッチＯＦＳにそれぞれ送信する。このときは、フローエントリ情報に代えて、グループエントリ情報を送信してもよい。その理由は、グループテーブルの削除又は更新で間に合うからである。
【００９４】
なお、ステップＳ６０５，Ｓ６０６の判定の結果、脱退対象ＯＦＳに脱退要求元のホスト端末以外のグループ参加ホスト端末が接続されている場合、又は脱退対象ＯＦＳが脱退要求元のホスト端末以外へ転送する以外に他のＯＦＳへ転送している場合、有向グラフ更新部１７は、脱退対象ＯＦＳを有向グラフ（mcn_topology_n）から削除してはならないが、脱退要求元のホスト端末への転送は停止する必要があるので、ステップＳ６０９において、脱退対象ＯＦＰを有向グラフ（mcn_topology_n）から削除する。その後、ステップＳ６０８へ進み、脱退対象ＯＦＰが削除された有向グラフ（mcn_topology_n）を用いてフローエントリ情報を変更し、変更後のフローエントリ情報を各オープンフロースイッチＯＦＳにそれぞれ送信する。
【００９５】
具体例を説明する。図１４は、ホスト端末からの脱退要求に応じて有向グラフ（mcn_topology_n）の構成を変更する様子を示す図である。
【００９６】
図１４（ａ）に示すように、ホスト端末３００ｂからIGMP leaveが送信されると、そのIGMP leaveはオープンフロースイッチＯＦＳ６からオープンフローコントローラＯＦＣへ転送される。
【００９７】
次に、図１４（ｂ）に示すように、オープンフローコントローラＯＦＣは、脱退要求されたマルチキャストグループ１及びその有向グラフ（mcn_topology_1）を特定し、転送元のオープンフロースイッチＯＦＳ６がコンテンツを脱退要求元のホスト端末３００ｂに配信している場合のみ、そのオープンフロースイッチＯＦＳ６を有向グラフ（mcn_topology_n）から削除する。
【００９８】
＜フローエントリ情報およびグループエントリ情報＞
次に、フローエントリ情報とグループエントリ情報について説明する。フローエントリ情報とグループエントリ情報との関係については、上述した通りである。フローエントリ情報とは、フローに対するマッチ条件、動作条件、統計情報をフロー毎に定義した情報である。マッチ条件に該当するパケットが動作条件で定義された出力先ポートへ転送され、統計情報に設定された種類の情報がカウントされる。
【００９９】
一方、グループエントリ情報とは、グループという概念を用いて複数のポートをグループ化して一括処理を定義した情報である。基本的には全てのポートへパケットを転送するため、グループタイプ（type）には「ALL」が設定されている。その一方で、マルチキャスト通信という特性に基づき特定のパケットを特定の出力ポートへ転送しなければならないので、出力先ポートが指定されることになる。例えば、図１５（ａ）に示すオープンフローネットワークＯＦＮを備え、同図（ｂ）に示す有向グラフ（mcn_topology_n）を持つ場合、図１６に示すグループエントリ情報が設定される。アクションには、パケットの出力先ポートが指定されている。
【０１００】
＜変形例＞
ここまで、マルチキャスト通信が一方通行である場合について説明した。一方、RTCP（Real-time Transport Control Protocol）など、双方向型でマルチキャスト通信を行うことも考えられる。この場合、図１５（ａ）のオープンフローネットワークＯＦＮに対応する有向グラフ（mcn_topology_n）は、図１７の矢印で示すように双方性を満たすように変更される。それゆえ、図１６に示したグループエントリ情報に対して、ホスト側からサーバ側へパケットを転送するためのアクションが追加される（図１８参照）。
【０１０１】
しかし、双方向通信を実現するためホスト端末毎にアクションを追加する場合、オープンフローコントローラＯＦＣで行うアクションの追加処理が膨大になるなど、オープンフローシステム全体の処理パフォーマンスを低下させてしまう可能性がある。また、オープンフロースイッチＯＦＳでは、パケットを受信する毎に指定された全ての出力先ポートにパケットを転送するため、オープンフローネットワークＯＦＮ内でブロードキャストストームのような状況が発生する。
【０１０２】
そこで、双方向型のマルチキャスト通信の場合、図１８に示したグループエントリ情報を改良する。具体的に、オープンフローコントローラＯＦＣは、各オープンフロースイッチＯＦＳに対して、オープンフロースイッチＯＦＳで受信したマルチキャストパケットを送信元のオープンフロースイッチＯＦＳへ転送しない設定を行う。そして、フローエントリ設定部１９は、その設定が反映された改良後のグループエントリ情報をオープンフロースイッチＯＦＳへ送信する。
【０１０３】
改良後のグループエントリ情報の設定例を図１９に示す。グループタイプを「All+」とし、オープンフローコントローラＯＦＣがオープンフロースイッチＯＦＳに指定する値を「OPFGT_All_PLUS」とする。これらの設定値は、オープンフローで既に使用されている既存値以外であればよい。そして、Ingress Portの項目を新規追加し、その項目の内容を「入力ポート（パケットを受信したオープンフローポートＯＦＰ）」に設定し、さらにその項目の値を「パケット受信時に判断」に設定する。
【０１０４】
この改良後のグループエントリ情報が設定されると、オープンフロースイッチＯＦＳは、パケットを受信したオープンフローポートＯＦＰに対して、そのパケットを転送しないように制御する。例えばオープンフロースイッチＯＦＳ＿Ａの場合、Ａ＿３のポートで受信したパケットをＩ＋とＩの各ポートへ転送するが、そのパケットをＡ＿３のポートへは転送しない。このように動作させることにより、パケットを期待通りに転送しつつ、パケットの逆流を防止し、ブロードキャストストームを回避できる。なお、本変形例では、グループエントリの構成を変更している。それゆえ、オープンフロースイッチＯＦＳは、その改良後のグループエントリ情報に基づきパケットを転送可能な機能（改良後のグループエントリ情報を受信した場合、パケットを受信したオープンフローポートＯＦＰに対して、そのパケットを転送しないように制御する機能）を予め備えているものとする。
【０１０５】
本実施の形態によれば、双方向型のマルチキャスト通信の場合、受信したマルチキャストパケットを送信元のオープンフロースイッチＯＦＳへ転送しない設定をオープンフロースイッチＯＦＳに設定するので、ブロードキャストストームを回避できる。
【０１０６】
最後に、本実施の形態では、本発明をオープンフロー技術に適用した場合について説明したが、一般的なスイッチ機器、ルータ機器で構成される汎用ネットワーク網、オープンフロー技術よりも広義のＳＤＮなどにも適用可能である。
【０１０７】
また、本実施の形態で説明したオープンフローコントローラＯＦＣおよびオープンフロースイッチＯＦＳは、ＣＰＵおよびメモリなどを備えたコンピュータ（スイッチ機器、サーバ装置など）で実現できる。また、オープンフローコントローラＯＦＣまたはオープンフロースイッチＯＦＳとしてコンピュータを機能させるためのプログラム、そのプログラムの記憶媒体を作成することも可能である。
【符号の説明】
【０１０８】
１００…マルチキャスト配信サーバ
３００…ホスト端末
ＯＦＣ…オープンフローコントローラ（マルチキャストネットワーク管理装置）
ＯＦＮ…オープンフローネットワーク
ＯＦＳ…オープンフロースイッチ（転送装置）
ＭＣＮ…マルチキャストネットワーク
１１…ネットワークトポロジー特定部
１２…全体有向グラフ生成部（生成部）
１３…リンクコスト設定部（設定部）
１４…マルチキャストパケット受信部
１５…マルチキャストネットワーク管理部（管理部）
１６…グループ参加・脱退要求受信部
１７…有向グラフ更新部（更新部）
１８…障害検知部
１９…フローエントリ設定部（設定部）
２０…データ記憶部
【図１】
2018067746.tif 000003
【図２】
2018067746.tif 000004
【図３】
2018067746.tif 000005
【図４】
2018067746.tif 000006
【図５】
2018067746.tif 000007
【図６】
2018067746.tif 000008
【図７】
2018067746.tif 000009
【図８】
2018067746.tif 000010
【図９】
2018067746.tif 000011
【図１０−Ａ】
2018067746.tif 000012
【図１０−Ｂ】
2018067746.tif 000013
【図１０−Ｃ】
2018067746.tif 000014
【図１１】
2018067746.tif 000015
【図１２−Ａ】
2018067746.tif 000016
【図１２−Ｂ】
2018067746.tif 000017
【図１３】
2018067746.tif 000018
【図１４】
2018067746.tif 000019
【図１５】
2018067746.tif 000020
【図１６】
2018067746.tif 000021
【図１７】
2018067746.tif 000022
【図１８】
2018067746.tif 000023
【図１９】
2018067746.tif 000024