(57)【要約】ＱｉｎＱモデルにおけるコアスイッチは、ＩＶＩＤは異なるが、送信元ＭＡＣアドレスが同じフレームを受信する場合があり、コアスイッチにおいてＭＡＣ重複の問題が発生してしまうため、本発明のフロー処理装置は、ＭＡＣエントリが登録されたＭＡＣアドレステーブル４２０と、受信したフレームに基づいてＭＡＣエントリの送信先情報が更新されたことに応じて、フレームに関連する情報を含む重複エントリを登録するＭＡＣ重複テーブル４９０と、ＭＡＣ重複テーブルに互いに関連する複数の重複エントリが登録されたことに応じて、複数の重複エントリに関連するフレームを転送するための転送用のエントリを登録するアクセスリストテーブル４５０Ａと、を備え、複数の重複エントリに関連するフレームを、転送用のエントリに従って転送することを特徴とする。
2017073033.tif 000002
【特許請求の範囲】
【請求項１】
ＭＡＣエントリが登録されたＭＡＣアドレステーブルと、  受信したフレームに基づいて前記ＭＡＣエントリの送信先情報が更新されたことに応じて、前記フレームに関連する情報を含む重複エントリを登録するＭＡＣ重複テーブルと、  前記ＭＡＣ重複テーブルに互いに関連する複数の前記重複エントリが登録されたことに応じて、複数の前記重複エントリに関連する前記フレームを転送するための転送用のエントリを登録するアクセスリストテーブルと、を備え、  複数の前記重複エントリに関連する前記フレームを、転送用の前記エントリに従って転送する  ことを特徴とするフロー処理装置。
【請求項２】
前記ＭＡＣ重複テーブルに互いに関連する複数の前記重複エントリが登録されたことに応じて、前記ＭＡＣアドレステーブルから、複数の前記重複エントリに関連する前記フレームに対応する前記ＭＡＣエントリを削除する制御手段をさらに備える  ことを特徴とする請求項１に記載のフロー処理装置。
【請求項３】
前記ＭＡＣ重複テーブルに、Ｏｕｔｅｒ  ＶＬＡＮ  ＩＤ及びＭＡＣアドレスが同一である複数の前記フレームの各々に対応する前記重複エントリが登録されたことに応じて、アクセスリストテーブルに対して複数の前記フレームの各々を転送するための転送用の前記エントリを登録する  ことを特徴とする請求項１又は２に記載のフロー処理装置。
【請求項４】
前記ＭＡＣ重複テーブルに互いに関連する複数の前記重複エントリが登録されたことに応じて、アクセスリストテーブルに対してＯｕｔｅｒ  ＶＬＡＮ  ＩＤ、Ｉｎｔｅｒ  ＶＬＡＮ  ＩＤ及びＭＡＣアドレスをキーとする転送用の前記エントリを登録する  ことを特徴とする請求項１乃至３のいずれか１項に記載のフロー処理装置。
【請求項５】
受信した前記フレームに基づいて前記ＭＡＣエントリに含まれる送信先ポートに関する情報が更新されたことに応じて、前記ＭＡＣ重複テーブルに対して前記フレームに関連する情報を含む前記重複エントリを登録する  ことを特徴とする請求項１乃至４のいずれか１項に記載のフロー処理装置。
【請求項６】
ＯＶＩＤ及び送信元ＭＡＣアドレスが同一の異なる前記フレームが、異なるポートから入力されたことに応じて、前記ＭＡＣアドレステーブルにおける前記ＭＡＣエントリの送信先情報を更新する  ことを特徴とする請求項１乃至５のいずれか１項に記載のフロー処理装置。
【請求項７】
転送用の前記エントリが登録された前記フレームに対して、前記ＭＡＣアドレステーブルに含まれる前記ＭＡＣエントリを用いた転送をキャンセルするアクションを含むエージング用エントリを登録するフレーム変換用テーブルをさらに含む  ことを特徴とする請求項１乃至６のいずれか１項に記載のフロー処理装置。
【請求項８】
制御装置からの指示に基づいてフレームを転送するノードと、  前記ノードから受信した前記フレームを、ＭＡＣエントリが登録されたＭＡＣアドレステーブルに基づいて転送するフロー処理装置と、を含み、  前記フロー処理装置は、  受信した前記フレームに基づいて前記ＭＡＣエントリの送信先情報が更新されたことに応じて、前記フレームに関連する情報を含む重複エントリを登録するＭＡＣ重複テーブルと、  前記ＭＡＣ重複テーブルに互いに関連する複数の重複エントリが登録されたことに応じて、前記複数の重複エントリに関連する前記フレームを転送するための転送用のエントリを登録するアクセスリストテーブルと、を備え、  前記複数の重複エントリに関連する前記フレームを、転送用の前記エントリに従って転送する  ことを特徴とする通信システム。
【請求項９】
ＭＡＣエントリを登録し、  受信したフレームに基づいて前記ＭＡＣエントリの送信先情報が更新されたことに応じて、前記フレームに関連する情報を含む重複エントリを登録し、  互いに関連する複数の前記重複エントリが登録されたことに応じて、複数の前記重複エントリに関連する前記フレームを転送するための転送用のエントリを登録し、  複数の前記重複エントリに関連する前記フレームを、転送用の前記エントリに従って転送する、  ことを特徴とするフロー処理方法。
【請求項１０】
前記互いに関連する複数の前記重複エントリが登録されたことに応じて、複数の前記重複エントリに関連する前記フレームに対応する前記ＭＡＣエントリを削除する  ことを特徴とする請求項９に記載のフロー処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、フロー処理装置、通信システム及び通信方法に関する。
【背景技術】
【０００２】  ネットワークの規格として、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ，  Ｉｎｃ．）８０２．１Ｑがある。ＩＥＥＥ８０２．１Ｑは、ＱｉｎＱと呼ばれている。【０００３】  また、ネットワークに仮想的なＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を構築する技術として、ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）がある。【０００４】  大規模な仮想ネットワークを構築するために、ＱｉｎＱを用いた仮想ネットワーク構成モデル（ＱｉｎＱモデル）が採用されている。【０００５】  ＱｉｎＱモデルでは、制御装置が、ユーザや上位制御装置により設定された仮想ネットワーク構成に基づき、ＯｐｅｎＦｌｏｗなどの制御プロトコルを使用して、複数のフロー処理装置を制御する。ＱｉｎＱモデルは、例えば、仮想ネットワークの配下に仮想ブリッジを配置する構成である。ＱｉｎＱモデルは、フロー制御装置が管理する仮想ネットワークＩＤ（ＩＤｅｎｔｉｆｉｅｒ）と仮想ブリッジＩＤとを、それぞれフレームのＯＶＩＤ（Ｏｕｔｅｒ  ＶＬＡＮ  ＩＤ）とＩＶＩＤ（Ｉｎｎｅｒ  ＶＬＡＮ  ＩＤ）とに対応づける。このことで、ＱｉｎＱモデルは、当該仮想ブリッジ単位でＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）フォワーディングを実現する。【０００６】  ここで、特許文献１には、仮想的に構築される仮想マシンとネットワーク装置とで構成されるネットワーク環境では、正常な通信ができなくなってしまう場合があることが記載されている。詳細には、特許文献１には、上記環境では、仮想マシン作成時に設定されるＭＡＣアドレスが重複すると、ＭＡＣアドレスが重複してしまった稼働中の仮想マシンに対して、正常な通信ができなくなってしまう場合があることが記載されている。【０００７】  そして、特許文献２には、ＭＡＣ重複によって正常な通信ができなくなってしまうことを回避するために、クライアント装置を異なるサブネットに割り当てることが開示されている。詳細には、特許文献２には、上記を回避するため、必要に応じて同じＭＡＣアドレスをもつ２つのクライアント装置が同じサブネットに割り当てられないように、クライアント装置を異なるサブネットに割り当てることが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１３−１６８７７１号公報
【特許文献２】特表２０１２−５２５０１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】  上述したとおり、特許文献２に記載の発明は、同じＭＡＣアドレスをもつ２つのクライアント装置が同じサブネットに割り当てられないようにすることで、ＭＡＣ重複を発生させないようにするものである。【００１０】  しかしながら、特許文献２に記載の発明では、同じサブネット内に同じＭＡＣアドレスをもつ２つのクライアント装置を割り当てることができないため、ＭＡＣアドレスの設定の柔軟性が低下してしまうという問題が生じる。また、ＱｉｎＱモデルにおけるコアスイッチは、ＩＶＩＤは異なるが、送信元ＭＡＣアドレスが同じフレームを受信する場合があり、当該コアスイッチにおいてＭＡＣ重複の問題が発生してしまう。【００１１】  本発明は、上記課題に鑑み、フロー処理装置においてＭＡＣ重複が発生した場合であっても、当該ＭＡＣ重複による誤転送を回避することが可能なフロー処理装置、通信システム及びフロー処理方法を提供することである。
【課題を解決するための手段】
【００１２】  本発明の一態様のフロー処理装置は、ＭＡＣエントリが登録されたＭＡＣアドレステーブルと、受信したフレームに基づいてＭＡＣエントリの送信先情報が更新されたことに応じて、当該フレームに関連する情報を含む重複エントリを登録するＭＡＣ重複テーブルと、ＭＡＣ重複テーブルに互いに関連する複数の重複エントリが登録されたことに応じて、当該複数の重複エントリに関連するフレームを転送するための転送用エントリを登録するアクセスリストテーブルと、を備え、複数の重複エントリに関連するフレームを、転送用エントリに従って転送することを特徴とする。【００１３】  本発明の一態様の通信システムは、制御装置からの指示に基づいてフレームを転送するノードと、ノードから受信したフレームを、ＭＡＣエントリが登録されたＭＡＣアドレステーブルに基づいて転送するフロー処理装置と、を含み、フロー処理装置は、受信したフレームに基づいてＭＡＣエントリの送信先情報が更新されたことに応じて、当該フレームに関連する情報を含む重複エントリを登録するＭＡＣ重複テーブルと、ＭＡＣ重複テーブルに互いに関連する複数の重複エントリが登録されたことに応じて、当該複数の重複エントリに関連するフレームを転送するための転送用エントリを登録するアクセスリストテーブルと、を備え、複数の重複エントリに関連するフレームを、転送用エントリに従って転送することを特徴とする。【００１４】  本発明の一態様のフロー処理方法は、ＭＡＣエントリを登録し、受信したフレームに基づいてＭＡＣエントリの送信先情報が更新されたことに応じて、当該フレームに関連する情報を含む重複エントリを登録し、互いに関連する複数の重複エントリが登録されたことに応じて、当該複数の重複エントリに関連するフレームを転送するための転送用エントリを登録し、複数の重複エントリに関連するフレームを、転送用エントリに従って転送する、ことを特徴とする。
【発明の効果】
【００１５】  本発明のフロー処理装置、通信システム及びフロー処理方法は、フロー処理装置においてＭＡＣ重複が発生した場合であっても、当該ＭＡＣ重複による誤転送を回避することが可能である。
【図面の簡単な説明】
【００１６】
【図１】第１の実施形態の通信システムの構成例である。
【図２】第１の実施形態のフロー処理装置の構成例である。
【図３】第１の実施形態におけるフロー処理装置の動作例を示すフローチャートである。
【図４】第２の実施形態の通信システムの構成例である。
【図５】第２の実施形態のフロー処理装置の構成例である。
【図６】第２の実施形態の各テーブルに格納されるエントリの構成例である。
【図７】第２の実施形態におけるフロー処理装置の動作例を示すフローチャートである。
【図８】第２の実施形態のフロー処理装置の構成例である。
【図９】第２の実施形態のフロー処理装置の他の構成例である。
【図１０】第２の実施形態におけるフロー処理装置の他の動作例を示すフローチャートである。
【図１１】第２の実施形態におけるフロー処理装置の他の動作例を示すフローチャートである。
【図１２】第２の実施形態のフロー処理装置の他の構成例である。
【図１３】第２の実施形態におけるフロー処理装置の他の動作例を示すフローチャートである。
【図１４】第２の実施形態のフロー処理装置の他の構成例である。
【図１５】第２の実施形態におけるフロー処理装置の他の動作例を示すフローチャートである。
【図１６】第２の実施形態のフロー処理装置の他の構成例である。
【図１７】第２の実施形態におけるフロー処理装置の他の動作例を示すフローチャートである。
【図１８】第２の実施形態のフロー処理装置の他の構成例である。
【図１９】第１の実施形態の概要の構成例である。
【発明を実施するための形態】
【００１７】  以下、本発明の実施形態及び実施例について、図面を参照して説明する。各実施形態は、例示であり、本発明は各実施形態に限定されるものではない。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００１８】  なお、同様の複数の構成には、同じ参照符号とアルファベットを付す。これらの構成をまとめて説明する場合は、参照符号を用いる。
【００１９】  ＜第１の実施形態＞  図１は、本発明の第１の実施形態における通信システムの構成例を示す図である。
【００２０】  図１に示すように、第１の実施形態における通信システムは、フロー制御装置１００と、エッジノード２００と、端末３００と、フロー処理装置４００とを含む。フロー処理装置４００は、物理ネットワーク５００に含まれる。
【００２１】  フロー制御装置１００は、例えば、集中管理型のアーキテクチャにおいて、パケット処理を実行するノードを管理可能である。
【００２２】  集中管理型のアーキテクチャは、例えば、ＯｐｅｎＦｌｏｗネットワークである。ＯｐｅｎＦｌｏｗネットワークでは、一般的なスイッチの機構が、次のモジュールに分離されている。第１のモジュールは、経路の決定処理を外部からプログラミングすることで変更可能としたモジュールであるＯＦＣ（ＯＦＣ：ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ）である。第２のモジュールは、パケット転送処理のみを行うモジュールであるＯＦＳ（ＯＦＳ：ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ）である。
【００２３】  ＯｐｅｎＦｌｏｗネットワークにおけるＯＦＳとは、ＯｐｅｎＦｌｏｗネットワークを形成し、ＯＦＣの制御下にあるエッジスイッチ及びコアスイッチのことである。ＯｐｅｎＦｌｏｗネットワークでは、ＯＦＣが、ＯＦＳのフローテーブルを操作することによりＯＦＳの挙動を制御する。
【００２４】  フローテーブルとは、所定の条件（ルール）に適合（マッチ）するパケット（通信データ）に対して行うべき所定の動作（アクション）を定義したフローエントリ（Ｆｌｏｗ  ｅｎｔｒｙ）が登録されたテーブルである。
【００２５】  各ＯＦＳは、フローテーブルを少なくとも１つ保持している。ＯＦＣは、配下の各ＯＦＳのフローテーブルと同じ内容のフローテーブルを全て保持している。すなわち、ＯＦＣは、各ＯＦＳのフローテーブルのマスターテーブルを保持している。なお、「フローテーブルを保持している」とは、そのフローテーブルを管理していることを意味する。そのフローテーブルをネットワーク経由等で管理可能であれば、実際には、そのフローテーブルが自身の内部に存在していなくても良い。例えば、ＯＦＣとＯＦＳが、ネットワーク上にある同一のフローテーブルを共有することも考えられる。
【００２６】  フローエントリのルールは、以下のアドレス及びポートのいずれか、又は、全てを用いた様々な組み合わせにより定義され、区別可能である。アドレスは、パケットの各プロトコル階層のヘッダ領域に含まれる送信先アドレス（Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、及び、送信元アドレス（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）である。ポートは、送信先ポート（Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ）、及び送信元ポート（Ｓｏｕｒｃｅ  Ｐｏｒｔ）のいずれか又は全てを用いた様々な組み合わせにより定義され、区別可能である。なお、上記のアドレスは、ＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓ）やＩＰアドレス（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ａｄｄｒｅｓｓ）を含むものとする。また、上記に加えて、入口ポート（Ｉｎｇｒｅｓｓ  Ｐｏｒｔ）の情報も、フローエントリのルールとして使用可能である。また、フローエントリのルールは、フローエントリのルールとして、フローを示すパケットのヘッダ領域の値の一部（又は全部）を、正規表現やワイルドカード「＊」等で表現したものを設定することもできる。
【００２７】  ＯＦＳは、ルールの欄に記述された内容にマッチするパケットを、アクションの欄に記述された内容に従って処理する。ＯＦＣは、このようなフローエントリをＯＦＳに登録することで、マッチするパケットに対する処理を制御できるのである。
【００２８】  ＯＦＳは、パケットが到着した時、当該パケットのヘッダ情報（送信元情報や送信先情報等）を読み取り、自身のフローテーブルの中から、マッチするルールを持つフローエントリ（以下、マッチするフローエントリと呼ぶ）を検索する。検索の結果、マッチするフローエントリが見つかった場合、ＯＦＳは、そのフローエントリのアクションに記載されている通りにパケットを処理する。なお、複数のフローエントリが見つかった場合、見つかったフローエントリのうち、最も優先度が高いフローエントリに従い、パケットを処理する。また、検索の結果、マッチするフローエントリが見つからなかった場合、ＯＦＳは、当該パケットを「ファーストパケット」と判断する。そして、ＯＦＳは、当該パケットのコピー（複製）をＯＦＣに転送することで、当該パケットをどのように処理すべきかについてＯＦＣに問い合わせる。
【００２９】  ＯＦＣは、ＯＦＳから問い合わせを受けた場合、経路計算を行い、問い合わせを受けたパケットを送信先まで転送するための最適な経路を導出する。また、ＯＦＣは、ＯＦＳのフローテーブルに、導出した経路を構成するためのフローエントリを新規に追加登録する。このとき、ＯＦＣは、自身のフローテーブルにも同じフローエントリを新規に追加登録する。
【００３０】  エッジノード２００は、物理ネットワーク５００の境界に位置し、パケットに対する処理を実行する。エッジノード２００は、例えば、ＯＦＳの機能を含む。なお、エッジノード２００は、ＯＦＳの機能でパケットを処理するだけでなく、例えば、ＭＡＣ学習によってパケットを処理する機能も含む。
【００３１】  なお、エッジノード２００と、フロー処理装置４００とは、同様の構成を備える装置であってもよい。この場合において、当該装置が物理ネットワーク５００の境界に配置される場合には、エッジノード２００となり、フロー制御装置１００からの制御によって、転送処理を実行する。一方、当該装置が物理ネットワーク５００のコア部分に配置される場合には、フロー処理装置４００となり、ＭＡＣ学習によって転送処理を実行する。
【００３２】  端末３００は、エッジノード２００やフロー処理装置４００などを介して通信を行う装置である。端末３００は、例えば、携帯電話、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、又は、モバイルルータである。あるいは、端末３００は、例えば、スマートデバイス（例えば、家庭の消費電力をモニタするスマートメータ、スマートテレビ、ウェアラブル端末）、又は、Ｍ２Ｍ（Ｍａｃｈｉｎｅ  ｔｏ  Ｍａｃｈｉｎｅ）デバイス等である。Ｍ２Ｍデバイスは、例えば、上記のデバイスに加え、産業機器、車、ヘルスケア機器、及び、家電等を含む。
【００３３】  フロー処理装置４００は、例えば、ＱｉｎＱを用いたネットワーク（ＱｉｎＱモデル）に含まれるコアノードである。なお、フロー処理装置４００は、受信したフレーム６００を、ＭＡＣ学習に基づいて転送する。
【００３４】  ＱｉｎＱモデルでは、フロー制御装置１００が、ユーザや上位制御装置により設定された仮想ネットワーク構成に基づき、ＯｐｅｎＦｌｏｗなどの制御プロトコルを使用して、エッジノード２００及びフロー処理装置４００を遠隔制御する。ＱｉｎＱモデルは、仮想ネットワーク配下に仮想ブリッジを配置する単純な構成である。ＱｉｎＱモデルは、フロー制御装置１００が管理する仮想ネットワークＩＤと仮想ブリッジＩＤを、それぞれフレーム６００のＯＶＩＤとＩＶＩＤに対応づける。そのことで、ＱｉｎＱモデルは、仮想ネットワーク単位の仮想ブリッジ単位で、ＭＡＣフォワーディングの転送制御を実現している。
【００３５】  しかしながら、フロー処理装置４００の制御は、ハードウェアチップで制御可能なＯｕｔｅｒＶＬＡＮ単位のＭＡＣフォワーディングで実行される。そのため、１つのフロー処理装置４００に、送信元ＭＡＣアドレスとＯＶＩＤとは同じだが、異なるＩＶＩＤである異なるフレーム６００が、異なるポートから入力（受信）した場合、ＭＡＣ移動（ＭＡＣ重複）が発生してしまう。つまり、当該異なるフレーム６００が入力する都度、ＭＡＣ移動（ＭＡＣ重複）が発生してしまう。すなわち、特定の仮想ネットワークに含まれる複数の仮想ブリッジに対して、送信元ＭＡＣアドレスとＯＶＩＤとは同じだが、異なるＩＶＩＤである異なるフレーム６００が入力した場合には、ＭＡＣ移動（ＭＡＣ重複）が発生してしまう。つまり、当該異なるＩＶＩＤ間においてフレーム６００が入力される度に、ＭＡＣ移動（ＭＡＣ重複）が発生してしまう。この場合、当該送信元ＭＡＣアドレスを送信先とするフレーム６００が、正しい送信先だけでなく、誤った送信先にも転送されてしまうという問題が生じる。
【００３６】  図２は、フロー処理装置４００の構成例を示す図である。フロー処理装置４００は、例えば、制御部４０１と、ポート４１０と、ＭＡＣアドレステーブル４２０と、ＭＡＣ重複テーブル４９０と、アクセスリストテーブル４５０とを備える。制御部４０１とＭＡＣ重複テーブル４９０は、ソフトウェア上に構成される。ポート４１０と、ＭＡＣアドレステーブル４２０と、アクセスリストテーブル４５０とは、ハードウェアとして構成される。
【００３７】  ポート４１０は、フレーム６００を送受信するインターフェースである。
【００３８】  ＭＡＣアドレステーブル４２０は、ＭＡＣエントリ４２１を含む。ＭＡＣエントリ４２１は、キーが“ＯＶＩＤ及び送信先ＭＡＣアドレス”であり、アクションが“出力ポート”の指定である。すなわち、ＭＡＣエントリ４２１に指定された“ＯＶＩＤ及び送信先ＭＡＣアドレス”を含むフレーム６００が入力した場合、フロー処理装置４００は、出力ポートを決定できる。
【００３９】  ここで、フロー処理装置４００は、エッジノード２００Ｂから、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ１、送信元ＭＡＣアドレス：Ｍ１”のフレーム６００Ｂを受信する。この場合、フロー処理装置４００のＭＡＣアドレステーブル４２０は、フレーム６００Ｂを受信したことに応じて、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｂに転送する”旨の転送ルールを学習する（ＭＡＣ学習）。
【００４０】  フロー処理装置４００は、フレーム６００Ｂを受信した後に、エッジノード２００Ｃから、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ２、送信元ＭＡＣアドレス：Ｍ１”のフレーム６００Ｃを受信する。この場合、フロー処理装置４００のＭＡＣアドレステーブル４２０は、フレーム６００Ｃを受信したことに応じて、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｂに転送する”旨の転送ルールを更新する。ここで、更新後の転送ルールは、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｃに転送する”旨である。これが、ＭＡＣ移動である。
【００４１】  続いて、フロー処理装置４００は、エッジノード２００Ａから、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ１、送信元ＭＡＣアドレス：Ｍ２、送信先ＭＡＣアドレス：Ｍ１”のフレーム６００Ａを受信する。この場合、フロー処理装置４００は、更新した“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｃに転送する”旨の転送ルールに従って、当該フレーム６００Ａを転送する。ここで、フレーム６００Ａは送信先ＭＡＣアドレスが“Ｍ１”であるところ、本来の転送先は“ポート４１０Ｂ”である。しかしながら、フレーム６００Ｃに基づいてＭＡＣアドレステーブル４２０が更新された結果、当該フレーム６００Ａは本来の転送先（“ポート４１０Ｂ”）とは異なる“ポート４１０Ｃ”に転送されてしまうという問題が生じる。また、フレーム６００Ｂとフレーム６００Ｃとが受信する毎にＭＡＣアドレステーブル４２０が書き換わる（ＭＡＣ移動する）。そのため、フレーム６００Ａが、ある時は“ポート４１０Ｂ”に転送され、別の時は“ポート４１０Ｃ”に転送されてしまうという問題も生じる。
【００４２】  そこで、第１の実施形態におけるフロー処理装置４００は、ＭＡＣ重複テーブル４９０を含み、ＭＡＣ重複による問題を解決する。
【００４３】  フロー処理装置４００の制御部４０１は、異なる入力ポートの各々から、送信元ＭＡＣアドレスとＯＶＩＤとが重複するフレーム６００（例えば、フレーム６００Ｂとフレーム６００Ｃ）を受信したことに応じて、次のように動作する。制御部４０１は、ＭＡＣ重複テーブル４９０に、送信先ＭＡＣアドレスと、ＯＶＩＤと、ＩＶＩＤとを用いた転送ルールを登録する。例えば、フロー処理装置４００は、フレーム６００Ｂに続いてフレーム６００Ｃを受信した場合、次のように動作する。フロー処理装置４００は、ＭＡＣ重複テーブル４９０において、フレーム６００Ｃに基づいて、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ２のフレームを、ポート４１０Ｃに転送する”旨のＭＡＣ重複エントリ４９１を学習する。フロー処理装置４００は、フレーム６００Ｃを受信した後に、再度、フレーム６００Ｂを受信すると、ＭＡＣアドレステーブル４２０において、再度、ＭＡＣ移動が発生する。従って、制御部４０１は、ＭＡＣ重複テーブル４９０に、フレーム６００Ｂに基づいて、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ１のフレームを、ポート４１０Ｂに転送する”旨のＭＡＣ重複エントリ４９１を学習する。
【００４４】  フロー処理装置４００の制御部４０１は、ＭＡＣ重複テーブル４９０において、送信先ＭＡＣアドレスとＯＶＩＤとが同じであるＭＡＣ重複エントリ４９１が複数登録されたことに応じて、次のように動作する。すなわち、制御部４０１は、ＭＡＣアドレステーブル４２０から、当該重複エントリに関連する転送ルールを削除する。フロー処理装置４００は、例えば、ＭＡＣ重複テーブル４９０に“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ２”及び“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ１”が登録された場合、次のように動作する。すなわち、フロー処理装置４００は、ＭＡＣアドレステーブル４２０から、関連する“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｂに転送する”旨の転送ルールを削除する。ここで、削除される転送ルールは、ＭＡＣ重複エントリ４９１と、“送信先ＭＡＣアドレスと、ＯＶＩＤ”が同じ転送ルールである。
【００４５】  フロー処理装置４００の制御部４０１は、アクセスリストテーブル４５０に、ＭＡＣ重複テーブル４９０に学習した転送ルールに対応する出力用のＭＡＣ重複エントリ４９１（転送ルール）を設定する。制御部４０１は、例えば、ＭＡＣ重複テーブル４９０において、“送信先ＭＡＣアドレス”と“ＯＶＩＤ”とが同じである重複エントリが複数登録されたことに応じて、次のように動作する。すなわち、制御部４０１は、アクセスリストテーブル４５０に、出力用のエントリ（ＭＡＣ重複ＵＣ（Ｕｎｉｆｉｅｄ  Ｃｏｍｍｕｎａｔｉｏｎ）出力用エントリ４５３）を登録する。ＭＡＣ重複ＵＣ出力用エントリ４５３は、キーが“送信先ＭＡＣアドレス”と“ＯＶＩＤ”と“ＩＶＩＤ”で、アクションが“送信先ポート”のエントリである。例えば、アクセスリストテーブル４５０には、２つの転送ルールが登録される。第１の転送ルールは、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ１のフレームを、ポート４１０Ｂに転送する”旨の転送ルールである。そして、第２の転送ルールは、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ２のフレームを、ポート４１０Ｃに転送する”旨の転送ルールである。
【００４６】  その結果、フロー処理装置４００は、“ＩＶＩＤ”を加味した転送が可能となり、当該フレーム６００を本来の転送先に転送することが可能となる。例えば、フロー処理装置４００は、エッジノード２００Ａからフレーム６００Ａを受信した場合、次のように動作する。フロー処理装置４００は、アクセスリストテーブル４５０に含まれる“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ１のフレームを、ポート４１０Ｂに転送する”旨の転送ルールに従って、当該フレーム６００Ａをポート４１０Ｂに転送する。
【００４７】  図３は、第１の実施形態におけるフロー処理装置４００の動作例を示すフローチャートである。
【００４８】  フロー処理装置４００が、送信元アドレスが同じ異なるフレーム６００を、異なるポート４１０から受信する（Ｓ１０１）。フロー処理装置４００は、例えば、エッジノード２００Ｂから、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ１、送信元ＭＡＣアドレス：Ｍ１”のフレーム６００Ｂを受信する。一方、フロー処理装置４００は、例えば、エッジノード２００Ｃから、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ２、送信元ＭＡＣアドレス：Ｍ１”のフレーム６００Ｃを受信する。
【００４９】  フロー処理装置４００の制御部４０１は、送信元アドレスが同じ異なるフレーム６００を、異なるポート４１０から受信したことに起因して、ＭＡＣアドレステーブル４２０において、ＭＡＣ移動が発生したことを検出する（Ｓ１０２）。ＭＡＣアドレステーブル４２０は、フレーム６００Ｂを受信したことに応じて、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｂに転送する”旨の転送ルールを学習する（ＭＡＣ学習）。その後、ＭＡＣアドレステーブル４２０は、フレーム６００Ｃを受信したことに応じて、第１の転送ルールを第２の転送ルールに更新する（ＭＡＣ移動）。第１の転送ルールは、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｂに転送する”旨の転送ルールである。第２の転送ルールは、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｃに転送する”旨の転送ルールである。制御部４０１は、当該ＭＡＣ移動が発生したことを検出する。
【００５０】  制御部４０１は、ＭＡＣ重複テーブル４９０に、受信したフレーム６００に関連するＭＡＣ重複エントリ４９１を登録する（Ｓ１０３）。具体的には、制御部４０１は、ＭＡＣ重複テーブル４９０に対して、フレーム６００Ｃに基づき、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ２のフレームを、ポート４１０Ｃに転送する”旨のＭＡＣ重複エントリ４９１を学習する。制御部４０１は、例えば、フレーム６００Ｃの後に再度フレーム６００Ｂを受信した場合、次のように動作する。すなわち、制御部４０１は、当該フレーム６００Ｂに基づき、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ２のフレームを、ポート４１０Ｃに転送する”旨のＭＡＣ重複エントリ４９１を学習する。
【００５１】  フロー処理装置４００の制御部４０１は、ＭＡＣ重複テーブル４９０において、送信先ＭＡＣアドレスとＯＶＩＤとが同じであるＭＡＣ重複エントリ４９１が複数登録されたことに応じて、次のように動作する。すなわち、制御部４０１は、ＭＡＣアドレステーブル４２０から、当該ＭＡＣ重複エントリ４９１に関連する転送ルールを削除する（Ｓ１０４）。制御部４０１は、例えば、ＭＡＣ重複テーブル４９０に“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ２”及び“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ１”が登録された場合、次のように動作する。制御部４０１は、ＭＡＣアドレステーブル４２０から、関連する“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｂ（又は、ポート４１０Ｃ）に転送する”旨の転送ルールを削除する。
【００５２】  具体的には、制御部４０１は、転送ルールとして、ＭＡＣエントリ４２１を削除する。
【００５３】  制御部４０１は、アクセスリストテーブル４５０に、ＭＡＣ重複テーブル４９０に学習した転送ルールに対応する出力用のエントリ（転送ルール）を設定する（Ｓ１０５）。制御部４０１は、例えば、ＭＡＣ重複テーブル４９０において、“送信先ＭＡＣアドレス”と“ＯＶＩＤ”とが同じである重複エントリが複数登録されたことに応じて、次のように動作する。すなわち、制御部４０１は、アクセスリストテーブル４５０に、出力用のエントリ（ＭＡＣ重複ＵＣ出力用エントリ４５３）を登録する。
【００５４】  フロー処理装置４００は、受信したフレーム６００を、当該ＭＡＣ重複ＵＣ出力用エントリ４５３に従って転送する（Ｓ１０６）。フロー処理装置４００は、例えば、フレーム６００Ａを受信した場合、次のように動作する。フロー処理装置４００は、アクセスリストテーブル４５０に含まれる“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ１のフレームを、ポート４１０Ｂに転送する”旨の転送ルールに従って、当該フレーム６００Ａをポート４１０Ｂに転送する。
【００５５】  上記のとおり、フロー処理装置４００は、ソフトウェア上で動作するＭＡＣ重複テーブル４９０を備え、重複するＭＡＣが発生したことに応じて、“ＩＶＩＤ”を加味した転送ルールを設定する。そのため、フロー処理装置４００は、ＭＡＣ重複が発生した場合であっても、フレーム６００を正しい送信先に転送することができる。
【００５６】  ［第１の実施形態の概要］図面を参照して、第１の実施形態の概要を説明する。図１９は、第１の実施形態の概要の構成例を示す図である。フロー制御装置４００は、ＭＡＣアドレステーブル４２０と、ＭＡＣ重複テーブル４９０と、アクセスリストテーブル４５０とを備える。
【００５７】  ＭＡＣアドレステーブル４２０は、ＭＡＣエントリ４２１を登録する。
【００５８】  ＭＡＣ重複テーブル４９０は、受信したフレームに基づいてＭＡＣエントリ４２１の送信先情報が更新されたことに応じて、フレームに関連する情報を含む重複エントリを登録する。重複エントリの一例が、ＭＡＣ重複エントリ４９１である。
【００５９】  アクセスリストテーブル４５０は、重複テーブルに互いに関連する複数の重複エントリが登録されたことに応じて、複数の重複エントリに関連するフレームを転送するための転送用のエントリを登録する。転送用のエントリに一例が、ＭＡＣ重複ＵＣ出力用エントリ４５３である。
【００６０】  図１９のフロー制御装置４００は、図２のフロー処理装置４００と同様に、複数の重複エントリに関連するフレームを、転送用のエントリに従って転送する。
【００６１】  つまり、図１９のフロー処理装置４００は、図２のフロー処理装置４００と同様に、ＭＡＣ重複テーブル４９０を備え、重複するＭＡＣが発生したことに応じて、“ＩＶＩＤ”を加味した転送ルールを設定する。そのため、図１９のフロー処理装置４００は、ＭＡＣ重複が発生した場合であっても、フレーム６００を正しい送信先に転送することができる。
【００６２】  ＜第２の実施形態＞  図４は、本発明の第２の実施形態における通信システムの構成例を示す図である。
【００６３】  なお、第２の実施形態の技術は、第１の実施形態、及び、後述の実施形態のいずれにも適用可能である。
【００６４】  図４において、通信システムは、例えば、フロー制御装置１００と、エッジノード２００と、端末３００と、フロー処理装置４００とを含む。なお、エッジノード２００と、端末３００とは、図１に示す第１の実施形態における通信システムのエッジノード２００と、端末３００と同様の構成であるため、詳細な説明は省略される。
【００６５】  フロー制御装置１００は、例えばユーザや上位制御装置からの要求に応じて、仮想ネットワーク７００と、仮想ブリッジ７１０とを設定する。
【００６６】  物理ネットワーク５００は、例えば、エッジノード２００と、フロー処理装置４００とを含み、仮想ネットワーク７００Ａと、仮想ブリッジ７１０Ａ及び７１０Ｂとを用いた仮想ネットワークにおけるフレーム６００の転送を実現するための物理環境を提供する。フロー制御装置１００は、管理するエッジノード２００に対して、仮想ネットワーク７００における端末３００間の仮想的な通信を実現するために必要な、物理ネットワーク５００上の設定を行う。例えば、フロー制御装置１００は、端末３００Ａから送信されたフレーム６００Ａを仮想ネットワーク７００Ａ上において転送するために、エッジノード２００Ａに対して、当該フレーム６００Ａのフレーム変換を指示する。より具体的には、フロー制御装置１００は、エッジノード２００Ａに対して、端末３００Ａから受信したフレーム６００ＡのＯＶＩＤを仮想ネットワーク７００ＡのＩＤ：Ｎ１に対応づける。そして、フロー制御装置１００は、当該フレーム６００ＡのＩＶＩＤを仮想ブリッジ７１０ＡのＩＤ：Ｂ１に対応づけるためのフレーム変換を指示する。
【００６７】  フロー処理装置４００において、フレーム６００Ｂ（ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ１、送信元ＭＡＣアドレス：Ｍ１）と、フレーム６００Ｃ（ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ２、送信元ＭＡＣアドレス：Ｍ１）とは、ＩＶＩＤ（仮想ブリッジ）は異なる。しかし、ＯＶＩＤと送信元ＭＡＣアドレスが同一である。したがって、フロー処理装置４００に含まれるＭＡＣアドレステーブル４２０は、フレーム６００Ｂとフレーム６００Ｃとを受信すると、ＭＡＣ移動を生じてしまう。そのため、フロー処理装置４００が、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ１、送信元ＭＡＣアドレス：Ｍ１、送信先ＭＡＣアドレス：Ｍ１”のフレーム６００Ａを受信した場合、ＭＡＣアドレステーブル４２０に従って転送を実行すると、誤転送が発生する可能性がある。
【００６８】  そこで、フロー処理装置４００は、異なる入力元から受信したフレーム６００において、ＭＡＣ重複が発生した際に、例えば、ソフトウェアのＭＡＣ重複テーブル４９０を用いて、当該ＭＡＣ移動による誤転送を回避する。
【００６９】  図５は、第２の実施形態における、フロー処理装置４００の構成例を示す図である。フロー処理装置４００は、ポート４１０、フレーム変換用テーブル４３０、ＶＬＡＮテーブル４４０、ＭＡＣアドレステーブル４２０、及びアクセスリストテーブル４５０を含む。また、フロー処理装置４００は、フレーム処理部４６０、ＭＡＣ重複処理部４７０、ハードウェア処理部４８０、及びＭＡＣ重複テーブル４９０を含む。
【００７０】  フロー処理装置４００において、ポート４１０、フレーム変換用テーブル４３０、ＶＬＡＮテーブル４４０、ＭＡＣアドレステーブル４２０、及びアクセスリストテーブル４５０は、ハードウェアに構成される。フレーム処理部４６０、ＭＡＣ重複処理部４７０、ハードウェア処理部４８０、及びＭＡＣ重複テーブル４９０は、ソフトウェアに構成される。
【００７１】  ここで、フロー処理装置４００のフレーム処理部４６０は、フレーム６００Ｂとフレーム６００Ｃとが、ハードウェアのＭＡＣアドレステーブル４２０を通過した際に、ＭＡＣ移動を検出する。ＭＡＣ移動は、ＭＡＣアドレステーブル４２０において、ＯＶＩＤと送信先ＭＡＣアドレスが同一の転送ルールにおいて、転送ルールが書き換えられる処理である。例えば、ＭＡＣアドレステーブル４２０は、フレーム６００Ｂが通過した際に、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｂに転送する”旨の転送ルールを学習する。ＭＡＣアドレステーブル４２０は、フレーム６００Ｂの通過後フレーム６００Ｃが通過した際に、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｂに転送する”旨の転送ルールを、次のように書きかえる。すなわち、ＭＡＣアドレステーブル４２０は、その転送ルールを、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｃに転送する”旨の転送ルールに書き換える。
【００７２】  上記のとおり、フレーム６００Ｂと６００Ｃとは、ＩＶＩＤは異なるが、ＯＶＩＤと送信元ＭＡＣアドレスが同じであるため、フロー処理装置４００のＭＡＣアドレステーブル４２０で学習するキー情報（ＯＶＩＤとＭＡＣアドレス）が同じとなる。そのため、フレーム６００Ｂ及び６００Ｃが入力する度に、ＭＡＣアドレステーブル４２０のＭＡＣエントリ４２１（転送ルール）は、ポート４１０Ｂと４１０Ｃとの間でＭＡＣ移動を繰り返す。そのため、フロー処理装置４００は、ＭＡＣアドレス：Ｍ１を送信先とするフレーム６００Ａを受信した場合、当該フレーム６００Ａを、ＭＡＣアドレステーブル４２０のＭＡＣエントリ４２１（転送ルール）のポート４１０Ｃに対して送信する。そのため、フロー処理装置４００は、正しい送信先であるポート４１０Ｂだけでなく、誤った送信先であるポート４１０Ｃにも送信する。
【００７３】  そこで、フロー処理装置４００は、ＭＡＣ重複テーブル４９０を備え、ＭＡＣ移動による誤転送を防止する。
【００７４】  ポート４１０は、フレーム６００を送受信するインターフェースである。なお、受信後のフレーム６００は、ポート４１０、フレーム変換用テーブル４３０、ＶＬＡＮテーブル４４０、ＭＡＣアドレステーブル４２０、及びアクセスリストテーブル４５０の順に、パイプライン処理される。
【００７５】  フレーム変換用テーブル４３０は、フレーム６００のＶＬＡＮ変換を実施するテーブルである。なお、フレーム変換用テーブル４３０は、フレーム６００を更新するための機能を備え、フレーム６００に対するその他のアクションも実行することができる。第２の実施形態において、フレーム変換用テーブル４３０は、例えば、ＭＡＣ学習のキャンセルのアクションを実行するために用いられる。
【００７６】  ＶＬＡＮテーブル４４０は、ＶＬＡＮエントリ４４１Ａを含む。ＶＬＡＮエントリ４４１Ａは、キーが“ＯＶＩＤ”であり、アクションが“フレーム中継（例えば、後段のＭＡＣアドレステーブル４２０への処理へ進ませるためのアクション）”である。ＶＬＡＮテーブル４４０において、入力されたフレーム６００に対応するエントリが存在しない場合には、当該フレーム６００は廃棄される。ＶＬＡＮテーブル４４０は、フロー制御装置１００の指示、または、フロー処理装置４００のコンフィグにより、ＶＬＡＮエントリ４４１Ａの登録／更新／削除を実行する。
【００７７】  ＭＡＣアドレステーブル４２０は、ＭＡＣエントリ４２１を含む。ＭＡＣエントリ４２１は、キーが“ＯＶＩＤ及び送信先ＭＡＣアドレス”であり、アクションが“出力ポート”指定である。すなわち、ＭＡＣエントリ４２１に指定された“ＯＶＩＤ及び送信先ＭＡＣアドレス”を含むフレーム６００が入力した場合、出力ポートが決定できる。ＭＡＣエントリ４２１は、ハードウェアによって、自動的に登録／更新／削除される。ＭＡＣアドレステーブル４２０に入力されたフレーム６００に含まれる“ＯＶＩＤ及び送信先ＭＡＣアドレス”をキーとするＭＡＣエントリ４２１が存在しない場合、ＭＡＣ学習が実行される（すなわち、新たなＭＡＣエントリ４２１が登録される）。ＭＡＣエントリ４２１が存在するが、ＭＡＣエントリ４２１に指定された出力のポート４１０と、フレーム６００の入力のポート４１０とが異なる場合、次のとおりとなる。すなわち、ＭＡＣエントリ４２１は、ＭＡＣエントリ４２１に指定された出力ポートの情報（ポート４１０の識別子やポート番号など）を、フレーム６００の入力ポートの情報（ポート４１０の識別子やポート番号など）に更新する（ＭＡＣ移動）。
【００７８】  なお、ＭＡＣアドレステーブル４２０において、所定の時間である“エージング設定時間”を超える間、ＭＡＣエントリ４２１のキーに一致するフレーム６００を受信しなかった場合、当該ＭＡＣエントリ４２１は削除される。
【００７９】  アクセスリストテーブル４５０は、２つの論理的なテーブルであるフレーム転送用のアクセスリストテーブル４５０Ａと、ＭＡＣ重複監視用のアクセスリストテーブル４５０Ｂとを含む。アクセスリストテーブル４５０に含まれるエントリにヒット（ＨＩＴ）するフレーム６００が入力した場合、当該ヒットしたエントリのアクションが当該フレーム６００に対して適用される。
【００８０】  また、アクセスリストテーブル４５０は、論理テーブルにおいて、フレーム６００に適用される際の優先度を示す“エントリ優先度”を有する。例えば、アクセスリストテーブル４５０に含まれるエントリの各々は優先度を含み、入力されたフレーム６００にヒットするエントリが複数ある場合には、当該優先度の高いエントリで指定されたアクションが当該フレーム６００に優先して適用される。なお、第２の実施形態の図面においては、アクセスリストテーブル４５０のより上位（上位位置）に記載されたエントリが、高優先のエントリとする。
【００８１】  アクセスリストテーブル４５０Ａ（フレーム転送用）に含まれるＵＣ出力用エントリ４５１Ａは、ＭＡＣアドレステーブル４２０のＭＡＣエントリ４２１にヒット（ＨＩＴ）したフレーム６００だけがヒット（ＨＩＴ）するエントリである。そのＵＣ出力用エントリ４５１Ａは、ＭＡＣエントリ４２１によって指定されたポート４１０からフレーム６００を出力する役割を有する。
【００８２】  フレーム６００がＵＣ出力用エントリ４５１Ａにヒット（ＨＩＴ）しない場合（ＭＡＣ学習されていない場合）、当該フレーム６００は、ＵＣ出力用エントリ４５１Ａよりも優先度が低いＦｌｏｏｄｉｎｇ出力用エントリ４５２Ａにヒット（ＨＩＴ）する。そして、当該フレーム６００は、Ｆｌｏｏｄｉｎｇ出力される。ＵＣ出力用エントリ４５１Ａ及びＦｌｏｏｄｉｎｇ出力用エントリ４５２Ａは、フロー制御装置１００の指示により、アクセスリストテーブル４５０Ａに登録／更新／削除される。
【００８３】  フレーム処理部４６０は、ＭＡＣアドレステーブル４２０におけるＭＡＣ移動が発生した場合に、当該ＭＡＣ移動の要因となったフレーム６００又はそのコピーを受信する。フレーム処理部４６０は、監視用エントリ４５４Ａにヒット（ＨＩＴ）したフレーム６００又はそのコピーを受信する。フレーム処理部４６０は、ＭＡＣ重複処理部４７０に、フレーム６００又はそのコピーを通知する。
【００８４】  ＭＡＣ重複処理部４７０は、フレーム処理部４６０から受信したフレーム６００の情報（ヘッダ情報など）に基づいて、ＭＡＣ重複テーブル４９０にエントリを登録する。例えば、ＭＡＣ重複処理部４７０は、ＭＡＣ重複テーブル４９０に、フレーム６００Ａ、及び、６００Ｂのそれぞれに対応するＭＡＣ重複エントリ４９１Ａと、４９１Ｂとを登録し、ＩＶＩＤを含めた形式のＭＡＣエントリとして管理する。
【００８５】  また、ＭＡＣ重複処理部４７０は、フレーム処理部４６０から受信したフレーム６００の情報（ヘッダ情報など）に基づいて、ハードウェアの各テーブルのエントリの登録／更新／削除を、ハードウェア処理部４８０に指示する。例えば、ＭＡＣ重複処理部４７０は、ＭＡＣ重複テーブル４９０内のＭＡＣ重複エントリ４９１Ａと、４９１Ｂとの情報に基づき、ハードウェアのフレーム変換用テーブル４３０に対して、エージング用エントリ４３１Ａと、４３１Ｂとの登録を指示する。エージング用エントリ４３１Ａ、及び４３１Ｂは、フレーム６００Ａ、及び６００Ｂが入力しなくなった際のエージングを検出する役割を持つ。
【００８６】  エージング用エントリ４３１は、キーが“ＯＶＩＤ、ＩＶＩＤ、送信元ＭＡＣアドレス、入力ポート”であり、アクションが“ＭＡＣ学習キャンセル及びＷｒｉｔｅＭｅｔａｄａｔａ”である。ＭＡＣ学習キャンセルは、当該エージング用エントリ４３１にヒット（ＨＩＴ）するフレーム６００がＭＡＣアドレステーブル４２０に入力した場合に、ＭＡＣ学習させないという役割を持つ。ＷｒｉｔｅＭｅｔａｄａｔａは、当該エージング用エントリ４３１にヒット（ＨＩＴ）したことを、フレーム情報として保持させる役割を持つ。
【００８７】  また、ＭＡＣ重複ＵＣ出力用エントリ４５３は、キーが“ＶＩＤ、ＩＶＩＤ、送信先ＭＡＣアドレス”であり、アクションが“ポート出力”である。
【００８８】  また、ＭＡＣ重複処理部４７０は、アクセスリストテーブル４５０Ａに対して、ＭＡＣ重複ＵＣ出力用エントリ４５３Ａと、４５３Ｂとの登録を指示する。ＭＡＣ重複ＵＣ出力用エントリ４５３Ａと、４５３Ｂは、重複ＭＡＣが発生したフレーム６００を、正しいポート４１０へ出力するための役割を持つ。例えば、アクセスリストテーブル４５０Ａは、ＭＡＣ重複ＵＣ出力用エントリ４５３Ａとして、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ１のフレームを、ポート４１０Ｂに転送する”旨を登録する。また、アクセスリストテーブル４５０Ａは、ＭＡＣ重複ＵＣ出力用エントリ４５３Ｂとして、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１で、ＩＶＩＤがＢ２のフレームを、ポート４１０Ｃに転送する”旨を登録する。
【００８９】  ハードウェア処理部４８０は、ＭＡＣ重複処理部４７０の指示に従い、ハードウェアの各テーブルに、エントリを登録／更新／削除する。また、ハードウェア処理部４８０は、エージング用エントリ４３１のフレーム６００の統計情報（フレーム統計）から、ＭＡＣ重複エントリ４９１のエージアウトを検出する。ハードウェア処理部４８０は、エージアウトを検出した場合、ＭＡＣ重複処理部４７０に当該エージアウトを通知する。
【００９０】  上記のとおり、ＭＡＣ重複ＵＣ出力用エントリ４５３と、エージング用エントリ４３１によって、フロー処理装置４００における誤転送を回避するとともに、エージングにも追随することができる。また、ＭＡＣ重複処理部４７０は、ハードウェアで構成される各テーブルに対する、ＭＡＣエントリ４５１Ａの削除と、監視用エントリ４５４Ａの登録を指示する。ＭＡＣエントリ４５１Ａを削除することで、新規のＭＡＣ重複がさらに発生した場合であっても、ハードウェア上ですみやかにＭＡＣ学習が動作し、フレーム６００の転送処理を、ＵＣ転送に移行することが可能となる。
【００９１】  監視用エントリ４５４Ａは、新たに発生したＭＡＣ重複の要因となったフレーム６００を、ソフトウェア上で動作するＭＡＣ重複処理部４７０に通知する役割を担っている。ＭＡＣ重複処理部４７０は、新規のＭＡＣ重複に対するＭＡＣ重複エントリ４９１をＭＡＣ重複テーブル４９０に登録し、また、エージング用エントリ４３１やＭＡＣ重複ＵＣ出力用エントリ４５３をハードウェア上の各テーブルに登録する。そのため、フロー処理装置４００は、動的にＭＡＣ重複に対応することが可能となる。
【００９２】  監視用エントリ４５４Ａは、キーが“ＯＶＩＤ、送信元ＭＡＣアドレス、Ｍｅｔａｄａｔａ”であり、アクションが“ソフトウェアへのフレーム６００のコピー”である。Ｍｅｔａｄａｔａは、エージング用エントリ４３１で設定されたＭｅｔａｄａｔａに基づいて、エージング用エントリ４３１にヒット（ＨＩＴ）していないフレーム６００だけがヒット（ＨＩＴ）する条件で登録される。すなわち、Ｍｅｔａｄａｔａは、新たに発生したＭＡＣ重複のみを検出して、ソフトウェアに通知するために使用する。
【００９３】  図６は、上記で説明した各テーブルに格納されるエントリの構成例を示す図である。図６に示すように、ＭＡＣ重複エントリ４９１は、キーが“ＯＶＩＤ、ＩＶＩＤ、送信先ＭＡＣアドレス”であり、アクションが“出力ポート指定”である。また、ＭＡＣエントリ４２１は、キーが“ＯＶＩＤ、送信先ＭＡＣアドレス”であり、アクションが“出力ポート指定”である。また、ＶＬＡＮエントリ４４１Ａは、キーが“ＯＶＩＤ”であり、アクションが“フレーム中継”である。また、エージング用エントリ４３１は、キーが“ＯＶＩＤ、ＩＶＩＤ、送信元ＭＡＣアドレス、入力ポート”であり、アクションが“ＭＡＣ学習キャンセル、ＷｒｉｔｅＭｅｔａｄａｔａ”である。また、ＭＡＣ重複ＵＣ出力用エントリ４５３は、キーが“ＯＶＩＤ、ＩＶＩＤ、送信先ＭＡＣアドレス”であり、アクションが“ポート指定”である。また、監視用エントリ４５４Ａは、キーが“ＯＶＩＤ、送信元ＭＡＣアドレス、Ｍｅｔａｄａｔａ”であり、アクションが“ソフトウェアにフレームをコピー”である。
【００９４】  図７は、第２の実施形態におけるフロー処理装置４００の動作例を示すフローチャートである。
【００９５】  端末３００Ａと端末３００Ｂとは、フロー処理装置４００を介して、相互に通信している（Ｓ２０１）。具体的には、フロー処理装置４００は、ポート４１０Ａから、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ１、送信元ＭＡＣアドレス：Ｍ２、送信先ＭＡＣアドレス：Ｍ１”のフレーム６００Ａを受信し、ポート４１０Ｂを介して転送する。また、フロー処理装置４００は、ポート４１０Ｂから、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ１、送信元ＭＡＣアドレス：Ｍ１，送信先ＭＡＣアドレス：Ｍ２”のフレーム６００Ｂを受信し、ポート４１０Ａを介して転送する。
【００９６】  図８は、端末３００Ａと端末３００Ｂとが相互に通信している場合の、フロー処理装置４００の構成例を示す図である。
【００９７】  フロー処理装置４００は、端末３００Ａから、ポート４１０Ａを介して、フレーム６００Ａを受信する。その結果、フロー処理装置４００のＭＡＣアドレステーブル４２０は、“送信先ＭＡＣアドレスがＭ２で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ａに転送する”というＭＡＣエントリ４２１Ｂを学習する。一方、フロー処理装置４００は、端末３００Ｂから、ポート４１０Ｂを介して、フレーム６００Ｂを受信する。その結果、フロー処理装置４００のＭＡＣアドレステーブル４２０は、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｂに転送する”というＭＡＣエントリ４２１Ａを学習する。その結果、図８に示すように、ＭＡＣアドレステーブル４２０には、ＭＡＣエントリ４２１Ａと、ＭＡＣエントリ４２１Ｂとが学習される。なお、図８のフロー処理装置４００は、予めＭＡＣエントリ４２１ＣとＭＡＣエントリ４２１Ｄとが学習されている。
【００９８】  フロー処理装置４００が、フレーム６００Ｂを受信した場合には、ＭＡＣアドレステーブル４２０に登録されているＭＡＣエントリ４２１Ｂに従って、当該フレーム６００Ｂの転送処理が実行される。また、フロー処理装置４００が、フレーム６００Ａを受信した場合には、ＭＡＣアドレステーブル４２０に登録されているＭＡＣエントリ４２１Ａに従って、当該フレーム６００Ａの転送処理が実行される。
【００９９】  また、図９に示すように、アクセスリストテーブル４５０Ａは、ＵＣ出力用エントリ４５１Ａと、Ｆｌｏｏｄｉｎｇ出力用エントリ４５２Ａとが登録されている。図９に示すように、ＭＡＣアドレステーブル４２０に登録されているＭＡＣエントリ４２１にヒットしたフレーム６００は、ＵＣ出力用エントリ４５１Ａに従って、ＭＡＣエントリ４２１で指定されたポート４１０から転送される。例えば、フレーム６００Ａは、ＵＣ出力用エントリ４５１Ａに従って、ＭＡＣエントリ４２１Ａで指定されたポート４１０Ａから転送される。
【０１００】  次に、フロー処理装置４００は、ポート４１０Ｃから、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ２、送信元ＭＡＣアドレス：Ｍ１、送信先ＭＡＣアドレス：Ｍ５”のフレーム６００Ｃを受信する（Ｓ２０２）。フレーム６００Ｃは、ＶＬＡＮテーブル４４０のＶＬＡＮエントリ４４１Ａにヒット（ＨＩＴ）することにより、ＭＡＣアドレステーブル４２０の処理に進む（Ｓ２０３）。
【０１０１】  フロー処理装置４００がフレーム６００Ｃを受信した場合、ＭＡＣアドレステーブル４２０のＭＡＣエントリ４２１Ａが、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｃに転送する”旨の内容に書き換わる（ＭＡＣ移動）。すなわち、フレーム６００Ｃが、ＭＡＣアドレステーブル４２０ですでに学習済みのＭＡＣエントリ４２１Ａの“ＯＶＩＤ：Ｎ１、送信先ＭＡＣアドレスＭ１”と同一のキーであり、ポート４１０が異なる。そのため、フロー処理装置４００は、当該ＭＡＣエントリ４２１Ａのポートを、フレーム６００Ｃの入力のポート４１０Ｃに更新する（Ｓ２０４）。
【０１０２】  フロー処理装置４００は、フレーム６００Ｃを、ＭＡＣアドレステーブル４２０に予め学習されている送信先のＭＡＣエントリ４２１Ｃと、アクセスリストテーブル４５０Ａに登録されているＵＣ出力用エントリ４５１Ａに従って、転送する（Ｓ２０５）。
【０１０３】  フロー処理装置４００は、ＭＡＣアドレステーブル４２０におけるＭＡＣ移動（ＭＡＣ重複）が生じたことに応じて、フレーム６００Ｃを、フレーム処理部４６０に通知する。フレーム処理部４６０は、フレーム６００Ｃを、ＭＡＣ重複処理部４７０に通知する（Ｓ２０６）。
【０１０４】  ＭＡＣ重複処理部４７０は、フレーム６００Ｃに含まれる情報（例えば、ヘッダ情報）に基づき、ＭＡＣ重複テーブル４９０に、ＭＡＣ重複エントリ４９１Ｂを登録する（Ｓ２０７）。ＭＡＣ重複エントリ４９１Ｂは、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ２、送信先ＭＡＣアドレス：Ｍ１”をキーとして、“ポート４１０Ｃ”を出力ポートとするエントリである。
【０１０５】  ＭＡＣ重複処理部４７０は、ハードウェア処理部４８０に、ＭＡＣエントリ４２１Ａの削除を指示する。ハードウェア処理部４８０は、指示されたＭＡＣエントリ４２１Ａを削除する（Ｓ２０８）。
【０１０６】  ＭＡＣエントリ４２１Ａを削除することにより、次に受信したフレーム６００が、６００Ｃであっても、フレーム６００Ｂであっても、すみやかにＭＡＣ学習が動作し、ＵＣ転送に移行することが可能である。
【０１０７】  また、フロー処理装置４００は、ＭＡＣ重複ではなく、ＭＡＣ移動の際には、ソフトウェアにフレーム６００が通知されないため、一定時間経過した場合には、ＭＡＣ重複テーブル４９０からＭＡＣ重複エントリ４９１Ｂを削除する処理を行う。
【０１０８】  図９は、図８の状態において、フロー処理装置４００のポート４１０Ｃを介して、フレーム６００Ｃを受信した場合の、フロー処理装置４００の構成例を示す図である。
【０１０９】  フロー処理装置４００のＭＡＣアドレステーブル４２０において、フレーム６００Ｃが入力されたことによりＭＡＣ移動が発生するため、フレーム処理部４６０は、当該フレーム６００Ｃの通知を受ける。
【０１１０】  ＭＡＣ重複処理部４７０は、フレーム処理部４６０からフレーム６００Ｃを通知されたことにより、ＭＡＣ重複テーブル４９０にＭＡＣ重複エントリ４９１Ｂを登録する。
【０１１１】  ＭＡＣ重複エントリ４９１Ｂは、キーが“ＯＶＩＤ，ＩＶＩＤ、送信先ＭＡＣアドレス”であり、アクションが“出力ポート”である。すなわち、ＭＡＣ重複エントリ４９１は、ハードウェアで表現できないＩＶＩＤを含めたＭＡＣエントリ４２１を、ソフトウェアで管理する。
【０１１２】  ＭＡＣ重複エントリ４９１Ｂのキーは、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ２、送信先ＭＡＣアドレス：Ｍ１”であり、アクションは“ポート４１０Ｃ“である。ＭＡＣ重複エントリ４９１Ｂは、フレーム６００Ｃに基づいて、設定される。
【０１１３】  ＭＡＣエントリ４２１Ａは、ＭＡＣ重複処理部４７０の指示により、ハードウェア処理部４８０を介して、削除される。ＭＡＣエントリ４２１Ａの削除により、ＭＡＣアドレス：Ｍ１を送信先とするフレーム６００Ａは、アクセスリストテーブル４５０ＡのＦｌｏｏｄｉｎｇ出力用エントリ４５２Ａにヒット（ＨＩＴＦ）し、Ｆｌｏｏｄｉｎｇ出力される。
【０１１４】  図１０は、第２の実施形態におけるフロー処理装置４００の他の動作例を示すフローチャートである。図１０は、フロー処理装置４００が、図７の動作の後に、ポート４１０Ｃからフレーム６００Ｃを受信した場合の動作例を示すフローチャートである。
【０１１５】  フロー処理装置４００は、ポート４１０Ｃから、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ２、送信元ＭＡＣアドレス：Ｍ１、送信先ＭＡＣアドレス：Ｍ５”のフレーム６００Ｃを受信する（Ｓ３０１）。
【０１１６】  フロー処理装置４００のＶＬＡＮテーブル４４０において、フレーム６００Ｃは、ＶＬＡＮエントリ４４１Ａにヒット（ＨＩＴ）し、ＭＡＣアドレステーブル４２０の処理に進む（Ｓ３０２）。
【０１１７】  フロー処理装置４００は、ＭＡＣアドレステーブル４２０に、フレーム６００Ｃに対応する“ＯＶＩＤ：Ｎ１、送信先ＭＡＣアドレス：Ｍ１”をキーとするエントリがないため、ＭＡＣエントリ４２１Ａを登録する（Ｓ３０３）。
【０１１８】  フロー処理装置４００は、フレーム６００Ｃを、ＭＡＣアドレステーブル４２０に予め学習されていた送信先のＭＡＣエントリ４２１Ｃと、アクセスリストテーブル４５０ＡのＵＣ出力用エントリ４５１Ａに従って、転送処理を実行する（Ｓ３０４）。
【０１１９】  図１１は、第２の実施形態におけるフロー処理装置４００の他の動作例を示すフローチャートである。図１１は、フロー処理装置４００が、図１０の動作の後に、ポート４１０Ｂからフレーム６００Ｂを受信した場合の動作例を示すフローチャートである。
【０１２０】  フロー処理装置４００は、ポート４１０Ｂを介して、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ１、送信元ＭＡＣアドレス：Ｍ１，送信先ＭＡＣアドレス：Ｍ２”のフレーム６００Ｂを受信する（Ｓ４０１）。
【０１２１】  フロー処理装置４００において、フレーム６００Ｂは、ＶＬＡＮテーブル４４０のＶＬＡＮエントリ４４１Ａにヒット（ＨＩＴ）することで、ＭＡＣアドレステーブル４２０の処理に進む（Ｓ４０２）。
【０１２２】  フロー処理装置４００がフレーム６００Ｂを受信した場合、ＭＡＣアドレステーブル４２０のＭＡＣエントリ４２１Ａが、“送信先ＭＡＣアドレスがＭ１で、ＯＶＩＤがＮ１のフレームを、ポート４１０Ｂに転送する”旨の内容に書き換わる（ＭＡＣ移動）。すなわち、フレーム６００Ｂが、ＭＡＣアドレステーブル４２０ですでに学習済みのＭＡＣエントリ４２１Ａの“ＯＶＩＤ：Ｎ１、送信ＭＡＣアドレスＭ１”と同一のキーであり、ポート４１０が異なる。そのため、フロー処理装置４００は、当該ＭＡＣエントリ４２１Ａのポートを、フレーム６００Ｂの入力のポート４１０Ｂに更新する（Ｓ４０３）。
【０１２３】  フロー処理装置４００は、フレーム６００Ｂを、ＭＡＣアドレステーブル４２０に予め学習されているＭＡＣエントリ４２１Ｂと、アクセスリストテーブル４５０Ａに登録されているＵＣ出力用エントリ４５１Ａに従って、転送処理する（Ｓ４０４）。
【０１２４】  送信先のフロー処理装置４００は、ＭＡＣアドレステーブル４２０におけるＭＡＣ移動が生じたことに応じて、フレーム６００Ｂを、フレーム処理部４６０に通知する。フレーム処理部４６０は、フレーム６００Ｂを、ＭＡＣ重複処理部４７０に通知する（Ｓ４０５）。
【０１２５】  ＭＡＣ重複処理部４７０は、フレーム６００Ｂに含まれる情報（例えば、ヘッダ情報）に基づき、ＭＡＣ重複テーブル４９０に、ＭＡＣ重複エントリ４９１Ａを登録する（Ｓ４０６）。ＭＡＣ重複エントリ４９１Ａは、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ１、送信先ＭＡＣアドレス：Ｍ１”をキーとして、“ポート４１０Ｂ”を出力ポートとするエントリである。
【０１２６】  ＭＡＣ重複処理部４７０は、ＭＡＣ重複テーブル４９０において、“ＯＶＩＤ：Ｎ１、送信先ＭＡＣアドレス：Ｍ１”が同一だが、“ＩＶＩＤ”が異なるエントリが複数存在することにより、ＭＡＣ重複（ＭＡＣ移動）が発生していると判断する（Ｓ４０７）。
【０１２７】  ＭＡＣ重複処理部４７０は、ハードウェア処理部４８０に対して、フレーム変換用テーブル４３０に“エージング用エントリ４３１Ａと４３１Ｂ”を登録することを指示する。また、ＭＡＣ重複処理部４７０は、ハードウェア処理部４８０に対して、アクセスリストテーブル４５０Ａに“ＭＡＣ重複ＵＣ出力用エントリ４５３Ａと４５３Ｂ”の登録を指示する（Ｓ４０８）。
【０１２８】  上記の動作により、ＵＣ出力用エントリ４５１ＡとＦｌｏｏｄｉｎｇ出力用エントリ４５２Ａよりも高優先であるＭＡＣ重複ＵＣ出力用エントリ４５３が登録される。よって、フロー処理装置４００は、フレーム６００Ａなどの送信先ＭＡＣアドレスがＭ１であるフレーム６００を、ハードウェア上のＭＡＣエントリ４２１Ａの有無に関わらず、ＭＡＣ重複ＵＣ出力用エントリ４５３にヒット（ＨＩＴ）する。従って、フロー処理装置４００は、送信先ＭＡＣアドレスがＭ１であるフレーム６００を、正しい送信先のポート４１０に出力することが可能となる。
【０１２９】  ＭＡＣ重複処理部４７０は、ハードウェア処理部４８０に対して、ＭＡＣエントリ４２１Ａの削除を指示する（Ｓ４０９）。また、ＭＡＣ重複処理部４７０は、アクセスリストテーブル４５０Ｂに、監視用エントリ４５４Ａの登録を指示する（Ｓ４０９）。
【０１３０】  図１２は、図９の状態において、ポート４１０Ｃからフレーム６００Ｃが入力した後に、さらにポート４１０Ｂからフレーム６００Ｂが入力した場合のフロー処理装置４００の構成例を示す図である。
【０１３１】  ＭＡＣアドレステーブル４２０は、フレーム６００Ｃの入力により、ＭＡＣエントリ４２１Ａを学習する。その後、ＭＡＣアドレステーブル４２０において、フレーム６００Ｂの入力により、ＭＡＣ移動（ＭＡＣ重複）が発生する。したがって、フレーム処理部４６０は、ＭＡＣ移動（ＭＡＣ重複）が発生したことに応じて、フレーム６００Ｂの通知を受ける。
【０１３２】  ＭＡＣ重複処理部４７０は、フレーム処理部４６０からの通知を受けたことに応じて、ＭＡＣ重複テーブル４９０に、ＭＡＣ重複エントリ４９１Ａを登録する。
【０１３３】  ＭＡＣ重複処理部４７０は、ハードウェア処理部４８０を介して、フレーム変換用テーブル４３０に、エージング用エントリ４３１Ａと４３１Ｂとを登録する。また、ＭＡＣ重複処理部４７０は、ハードウェア処理部４８０を介して、ＭＡＣ重複ＵＣ出力用エントリ４５３Ａと４５３Ｂとを登録する。
【０１３４】  エージング用エントリ４３１ＡとＭＡＣ重複ＵＣ出力用エントリ４５３Ａは、ＭＡＣ重複エントリ４９１Ａに対応するハードウェアエントリであり、ＭＡＣ重複エントリ４９１Ａの“キー”と“アクション”を基に設定される。同様に、エージング用エントリ４３１ＢとＭＡＣ重複ＵＣ出力用エントリ４５３Ｂは、ＭＡＣ重複エントリ４９１Ｂに対応するハードウェアエントリであり、ＭＡＣ重複エントリ４９１Ｂの“キー”と“アクション”を基に設定される。フロー処理装置４００のハードウェア構成においては、エージング用エントリ４３１とＭＡＣ重複ＵＣ出力用エントリ４５３が、ＩｎｎｅｒＶＬＡＮ単位のＭＡＣフォワーディングの役割として動作する。
【０１３５】  図１２に例示するフロー処理装置４００は、フレーム６００Ａを受信すると、ＭＡＣアドレステーブル４２０にはヒット（ＨＩＴ）するＭＡＣエントリ４２１は存在しない。しかし、フロー処理装置４００は、ＵＣ出力用エントリ４５１ＡやＭＡＣ重複ＵＣ出力用エントリ４５３Ａに従って、正しい送信先であるポート４１０Ｂに出力される。
【０１３６】  ここで、図１２のパターンとは逆に、フレーム６００Ｃに対応するＭＡＣ重複エントリ４９１Ｂが存在する状態で、再びフレーム６００ＣによるＭＡＣ移動が発生し、ソフトウェアにフレーム６００Ｃが通知される場合も発生し得る。この場合は、ＭＡＣ重複エントリ４９１Ｂに対応するエージング用エントリ４３１Ｂと、ＭＡＣ重複ＵＣ出力用エントリ４５３Ｂと、監視用エントリ４５４Ａとが登録される。その後、フレーム６００Ｂに対するエントリ登録は、監視用エントリ４５４Ａによりフレーム６００Ｂがソフトウェアに通知された契機で実施される。この場合、ＭＡＣ重複エントリ４９１Ｂだけが登録されているため、ＭＡＣ重複が発生しているのか、発生していないのかは不明である。そのため、一定時間経過後もＭＡＣ重複エントリ４９１Ｂだけが登録されている場合は、ＭＡＣ重複解消と判断し、エージング用エントリ４３１Ｂと、ＭＡＣ重複ＵＣ出力用エントリ４５３Ｂと、監視用エントリ４５４Ａとを削除する必要がある。
【０１３７】  図１３は、図１２の状態で、フロー処理装置４００が、ポート４１０Ｄからフレーム６００Ｄを受信した場合の動作例を示す図である。
【０１３８】  フロー処理装置４００は、ポート４１０Ｄから、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ３、送信先ＭＡＣアドレス：Ｍ１、送信元ＭＡＣアドレス：Ｍ４”のフレーム６００Ｄを受信する（Ｓ５０１）。
【０１３９】  フロー処理装置４００において、フレーム６００Ｄは、ＶＬＡＮテーブル４４０のＶＬＡＮエントリ４４１Ａにヒット（ＨＩＴ）することにより、ＭＡＣアドレステーブル４２０の処理に進む（Ｓ５０２）。
【０１４０】  フロー処理装置４００は、ＭＡＣアドレステーブル４２０に、フレーム６００Ｄに対応する“ＯＶＩＤ：Ｎ１、送信先ＭＡＣアドレス：Ｍ１”をキーとするエントリがない。そのため、フロー処理装置４００は、キーが“ＯＶＩＤ：Ｎ１、送信先ＭＡＣアドレス：Ｍ１”で“ポート４１０Ｄ”が出力ポートであるＭＡＣエントリ４２１Ａを登録する（Ｓ５０３）。
【０１４１】  フロー処理装置４００において、フレーム６００Ｄの受信に応じてＭＡＣエントリ４２１Ａが登録された直後において、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ３、送信先ＭＡＣアドレス：Ｍ１”のフレーム６００Ｄは、次のとおりである。フレーム６００Ｄは、ＭＡＣアドレステーブル４２０のＭＡＣエントリ４２１にヒット（ＨＩＴ）し、ＭＡＣ重複ＵＣ出力用エントリ４５３はキーに一致しないためヒット（ＨＩＴ）せず、ＵＣ出力用エントリ４５１Ａにヒット（ＨＩＴ）する。そのため、フレーム６００Ｄは、正しい送信先（ポート４１０Ｄ）に送信できるようになっている。
【０１４２】  フロー処理装置４００は、フレーム６００Ｄを、ＭＡＣアドレステーブル４２０に予め登録されているＭＡＣエントリ４２１Ｄと、送信先のアクセスリストテーブル４５０ＡのＵＣ出力用エントリ４５１Ａに従い、転送処理を実行する（Ｓ５０４）。
【０１４３】  フロー処理装置４００は、監視用エントリ４５４Ａのアクションにより、フレーム６００Ｄをフレーム処理部４６０に送信する。フレーム処理部４６０は、フレーム６００Ｄを、ＭＡＣ重複処理部４７０に通知する（Ｓ５０５）。
【０１４４】  ＭＡＣ重複処理部４７０は、フレーム６００Ｄに含まれる情報（ヘッダ情報など）に基づき、ＭＡＣ重複テーブル４９０にＭＡＣ重複エントリ４９１Ｃを登録する。ただし、ＭＡＣ重複処理部４７０は、“ＯＶＩＤ：Ｎ１、ＩＶＩＤ：Ｂ３、送信先ＭＡＣアドレス：Ｍ１”をキー、出力ポートを“ポート４１０Ｄ”として、ＭＡＣ重複テーブル４９０にＭＡＣ重複エントリ４９１Ｃを登録する（Ｓ５０６）。
【０１４５】  ＭＡＣ重複処理部４７０は、ハードウェア処理部４８０に対して、エージング用エントリ４３１Ｃと、ＭＡＣ重複ＵＣ出力用エントリ４５３Ｃの登録を指示する（Ｓ５０７）。フロー処理装置４００は、当該ＭＡＣ重複ＵＣ出力用エントリ４５３Ｃが登録されることにより、“ＯＶＩＤ：Ｎ１，ＩＶＩＤ：Ｂ３、送信ＭＡＣアドレス：Ｍ１”のフレーム６００Ｄも、正しい出力のポート４１０Ｄに送信することが可能となる。
【０１４６】  ＭＡＣ重複処理部４７０は、ハードウェア処理部４８０に、ＭＡＣエントリ４２１Ａの削除を指示する（Ｓ５０８）。ハードウェア処理部４８０が、ＭＡＣエントリ４２１Ａを削除する指示を行う。そのため、“ＯＶＩＤ：Ｎ１、送信元ＭＡＣアドレス：Ｍ１”を含む他のフレーム６００を受信することによって再度重複が発生した場合も、ＭＡＣエントリ４２１Ａが削除され、ＵＣ転送を行うことが可能となる。なお、再度の重複が発生した場合のフロー処理装置４００の処理は、図１１に例示する動作例と同様となる。
【０１４７】  図１４は、図１２の状態において、ポート４１０Ｄからフレーム６００Ｄが入力したときの、フロー処理装置４００の構成例を示す図である。
【０１４８】  フロー処理装置４００は、フレーム６００Ｄの受信により、ＭＡＣアドレステーブル４２０ではＭＡＣエントリ４２１ＡをＭＡＣ学習する。また、フロー処理装置４００は、アクセスリストテーブル４５０では、ＵＣ出力用エントリ４５１Ａ及び監視用エントリ４５４Ａの両方にヒット（ＨＩＴ）する。
【０１４９】  監視用エントリ４５４Ａにヒット（ＨＩＴ）することで、フレーム６００Ｄは、フレーム処理部４６０に通知される。
【０１５０】  ＭＡＣ重複処理部４７０は、ＭＡＣ重複エントリ４９１Ｃを登録し、エージング用エントリ４３１Ｃ及びＭＡＣ重複ＵＣ出力用エントリ４５３Ｃを、ハードウェア処理部４８０を介して登録する。
【０１５１】  また、ハードウェア処理部４８０が、ＭＡＣエントリ４２１Ａを削除する指示を行い、当該ＭＡＣエントリ４２１Ａは削除される。
【０１５２】  図１５は、図１４の状態から、フレーム６００Ｄの入力が停止し、ハードウェア処理部４８０がエージング用エントリ４３１Ｃのエージアウトを検出したときのフロー処理装置４００の動作例を示すフローチャートである。
【０１５３】  ハードウェア処理部４８０は、フロー処理装置４００におけるフレーム６００Ｄの受信が止まることにより、エージング用エントリ４３１Ｃのエージアウトを検出する（Ｓ６０１）。
【０１５４】  ハードウェア処理部４８０は、当該エージアウトを、ＭＡＣ重複処理部４７０に通知する（Ｓ６０２）。
【０１５５】  ハードウェア処理部４８０は、ＭＡＣ重複テーブル４９０のＭＡＣ重複エントリ４９１Ｃを削除する（Ｓ６０３）。
【０１５６】  ＭＡＣ重複処理部４７０は、ＭＡＣ重複テーブル４９０に異なるＩＶＩＤのエントリが複数存在することにより、ＭＡＣ重複が継続していると判断する（Ｓ６０４）。
【０１５７】  ＭＡＣ重複処理部４７０は、ハードウェア処理部４８０に対して、エージング用エントリ４３１ＣとＭＡＣ重複ＵＣ出力用エントリ４５３Ｃの削除を指示する。
【０１５８】  図１６は、図１４の状態において、フロー処理装置４００に対するフレーム６００Ｄの受信が停止し、ハードウェア処理部４８０がエージング用エントリ４３１Ｃのエージアウトを検出した場合の、フロー処理装置４００の構成例を示す図である。
【０１５９】  ＭＡＣ重複処理部４７０は、不要となったＭＡＣ重複エントリ４９１Ｃを削除し、エージング用エントリ４３１ＣとＭＡＣ重複ＵＣ出力用エントリ４５３Ｃを、ハードウェア処理部４８０を介して削除する。
【０１６０】  図１７は、図１６の状態から、フロー処理装置４００におけるフレーム６００Ｃの受信が停止し、ハードウェア処理部４８０がエージング用エントリ４３１Ｂのエージアウトを検出した場合の動作例を示すフローチャートである。
【０１６１】  ハードウェア処理部４８０は、フロー処理装置４００におけるフレーム６００Ｃの受信が停止した場合、ハードウェア処理部４８０は、エージング用エントリ４３１Ｂのエージアウトを検出する（Ｓ７０１）。
【０１６２】  ハードウェア処理部４８０は、エージアウトの検出を、ＭＡＣ重複処理部４７０に通知する（Ｓ７０２）。
【０１６３】  ハードウェア処理部４８０は、ＭＡＣ重複テーブル４９０のＭＡＣ重複エントリ４９１Ｂを削除する（Ｓ７０３）。
【０１６４】  ＭＡＣ重複処理部４７０は、ＭＡＣ重複テーブル４９０に異なるＩＶＩＤのエントリが複数存在しないため、ＭＡＣ重複が解消したと判断する（Ｓ７０４）。
【０１６５】  ＭＡＣ重複処理部４７０は、ＭＡＣ重複テーブル４９０のＭＡＣ重複エントリ４９１Ａを削除する。
【０１６６】  ＭＡＣ重複処理部４７０は、ハードウェア処理部４８０に、エージング用エントリ４３１Ａ及び４３１Ｂと、ＭＡＣ重複ＵＣ出力用エントリ４５３Ａ及び４５３Ｂの削除を指示する。ＭＡＣ重複処理部４７０が、上記の削除を指示することにより、フロー処理装置４００は、ＭＡＣ重複のハードウェアエントリを使用しない通常状態でのＭＡＣフォワーディングの処理に戻ることができる。
【０１６７】  図１８は、図１６の状態において、フロー処理装置４００におけるフレーム６００Ｃの受信が停止し、ハードウェア処理部４８０がエージング用エントリ４３１Ｂのエージアウトを検出した場合の、フロー処理装置４００の構成例を示す図である。
【０１６８】  ＭＡＣ重複処理部４７０は、ＭＡＣ重複が解消されたと判断し、ＭＡＣ重複エントリ４９１Ａ及び４９１Ｂを削除する。そして、ＭＡＣ重複処理部４７０は、エージング用エントリ４３１Ａ及び４３１Ｂ、ＭＡＣ重複ＵＣ出力用エントリ４５３Ａ及び４５３Ｂ、監視用エントリ４５４Ａを、ハードウェア処理部４８０を介して削除する。
【０１６９】  上記のとおり、フロー処理装置４００は、ＭＡＣ重複テーブル４９０を備え、重複するＭＡＣが発生したことに応じて、“ＩＶＩＤ”を加味した転送ルールを設定する。そのため、フロー処理装置４００は、ＭＡＣ重複が発生した場合であっても、フレーム６００を正しい送信先に転送することができる。
【０１７０】  ＜第３の実施形態＞  本発明の第３の実施形態は、“ＯＶＩＤ、ＩＶＩＤ、ＭＡＣアドレス”のいずれもが同一の異なるフレーム６００が、異なるポート４１０から入力されたことによってＭＡＣ移動が発生した場合におけるフロー処理装置４００の処理に関する実施形態である。なお、第３の実施形態の技術は、第１の実施形態、第２の実施形態、及び、後述の実施形態のいずれにも適用可能である。
【０１７１】  第３の実施形態の通信システムの構成例は、図４に例示する第２の実施形態の通信システムの構成例と同様であるため、詳細な説明は省略される。また、第３の実施形態のフロー処理装置４００の構成例は、図５に例示する第２の実施形態のフロー処理装置４００の構成例と同様であるため、詳細な説明は省略される。
【０１７２】  フロー処理装置４００は、図７の処理完了後の状態から、フレーム６００Ｃがポート４１０Ｃに入力することにより、ＭＡＣエントリ４２１Ａが作成される。その状態において、フレーム６００Ｃが図示しないポート４１０Ｅから入力すると、ＭＡＣアドレステーブル４２０に存在するＭＡＣエントリ４２１Ａのアクションで指定されている“ポート４１０Ｃ”とはポート４１０が異なるので、ＭＡＣ移動が発生する。そのため、フレーム６００Ｃが、再度、ＭＡＣ重複処理部４７０に通知される。ＭＡＣ重複処理部４７０は、フレーム６００Ｃに含まれる入力のポート４１０に関する情報に基づいて、ＭＡＣ重複エントリ４９１Ｂのポートを、“ポート４１０Ｃ”から“ポート４１０Ｅ”に更新する。その後のフロー処理装置４００の動作例は、第２の実施形態のフロー処理装置４００の動作例と同様である。
【０１７３】  また、フロー処理装置４００は、図１１の処理完了後の状態から、フレーム６００Ｃがポート４１０Ｃではなくポート４１０Ｅから入力すると、次のように動作する。フレーム６００Ｃに対応するエージング用エントリ４３１Ｂのキーに含まれるエントリ登録時の入力ポートは４１０Ｃであり、当該フレーム６００Ｃは当該エージング用エントリ４３１Ｂにヒット（ＨＩＴ）しない。そのため、フロー処理装置４００は、ＭＡＣアドレステーブル４２０において、ＭＡＣ学習が実行され、ＭＡＣエントリ４２１Ａが登録される。
【０１７４】  また、フレーム６００Ｃは監視用エントリ４５４Ａにヒット（ＨＩＴ）し、ＭＡＣ重複処理部４７０に、当該フレーム６００Ｃが通知される。ＭＡＣ重複処理部４７０は、フレーム６００Ｃに含まれる入力ポートに関する情報を基に、ＭＡＣ重複エントリ４９１Ｂに含まれるポート情報を、“ポート４１０Ｃ”から“ポート４１０Ｅ”に更新する。ＭＡＣ重複エントリ４９１Ｂの更新に応じて、ＭＡＣ重複処理部４７０は、ハードウェア処理部４８０にエージング用エントリ４３１Ｂの削除／追加（キーのポート情報を更新するため、削除／追加となる）する。また、ＭＡＣ重複処理部４７０は、ＭＡＣ重複ＵＣ出力用エントリ４５３Ｂのアクションのポート４１０を更新する。
【０１７５】  なお、上記の処理は、同一の“ＯＶＩＤ、ＩＶＩＤ、ＭＡＣアドレス”によってＭＡＣフラッピングが発生し、ソフトウェアに対するフレーム６００の通知が頻発する。そこで、フロー処理装置４００のＣＰＵの負荷軽減のために、エントリに保護時間を設けて、保護時間内のエントリ更新は実施しないように構成することが望ましい。
【０１７６】  上記のとおり、“ＯＶＩＤ、ＩＶＩＤ、ＭＡＣアドレス”のいずれもが同一の異なるフレーム６００が、異なるポート４１０から入力されたことによってＭＡＣ移動が発生した場合、次のようになる。すなわち、ＭＡＣ重複処理部４７０は、ＭＡＣ重複エントリ４９１のポート４１０、又は、ＭＡＣ重複ＵＣ出力用エントリ４５３Ｂのアクションのポート４１０を更新する。そのため、“ＯＶＩＤ、ＩＶＩＤ、ＭＡＣアドレス”のいずれもが同一の異なるフレーム６００が、異なるポート４１０から入力されたことによってＭＡＣ移動が発生した場合であっても、フレーム６００の重複の発生による誤転送を防止することができる。
【０１７７】  ＜第４の実施形態＞  本発明の第４の実施形態は、アクセスリストテーブル４５０のエントリ数の増加を抑制する実施形態である。なお、第４の実施形態の技術は、第１の実施形態、第２の実施形態、及び、第３の実施形態のいずれにも適用可能である。
【０１７８】  第４の実施形態の通信システムの構成例は、図４に例示する第２の実施形態の通信システムの構成例と同様であるため、詳細な説明は省略される。また、第４の実施形態のフロー処理装置４００の構成例は、図５に例示する第２の実施形態のフロー処理装置４００の構成例と同様であるため、詳細な説明は省略される。
【０１７９】  なお、以下で説明に用いるＶＲＲＰ（Ｖｉｒｔｕａｌ  Ｒｏｕｔｅｒ  Ｒｅｄｕｎｄａｎｃｙ  Ｐｒｏｔｏｃｏｌ）は、デフォルトゲートウェイを冗長化するためのプロトコルである。
【０１８０】  アクセスリストテーブル４５０は、ＭＡＣアドレステーブル４２０に比べ、登録できるエントリ数が少ないことが一般的である。この場合に、例えば、ＶＲＲＰルータをネットワークに接続し、ルータ間でアドバタイズのためのフレーム６００（ＭＡＣアドレスが同一）を全ＶＬＡＮで交換すると、テーブルのリソースを多く消費してしまう。アクセスリストテーブル４５０は、ＭＡＣアドレステーブル４２０に比べて、登録できるエントリ数が少ない場合がある。この場合に、例えば、ＶＲＲＰルータをネットワークに接続し、当該ルータ間でアドバタイズに用いられるフレーム６００（ＭＡＣアドレスが同一となる）を全てのＶＬＡＮで交換すると、アクセスリストテーブル４５０のリソースを多く消費してしまう。そこで、第４の実施形態のフロー処理装置４００は、ネットワーク構成などにおいて予め重複するＭＡＣアドレスが決まっている場合に、アクセスリストテーブル４５０のエントリリソースの枯渇を回避する。
【０１８１】  第４の実施形態のフロー処理装置４００は、コンフィグによって、アクセスリストテーブル４５０に静的なＭＡＣ重複エントリ４９１を登録できるようにする。
【０１８２】  フロー処理装置４００は、コンフィグによって、アクセスリストテーブル４５０の静的なＭＡＣ重複エントリ４９１に対して、ＭＡＣアドレスとＭＡＣアドレスマスクをパラメータとして入力する。
【０１８３】  ＭＡＣ重複処理部４７０は、コンフィグによる静的なＭＡＣ重複エントリ４９１の追加に応じて、フレーム処理部４６０を介して、ＭＡＣ学習キャンセル用エントリをフレーム変換用テーブル４３０に登録する。また、ＭＡＣ重複処理部４７０は、コンフィグによって設定されたＭＡＣアドレス／マスクに含まれるＭＡＣエントリ４２１を、ＭＡＣアドレステーブル４２０から削除する。
【０１８４】  ＭＡＣ学習キャンセル用エントリは、キーが“送信元ＭＡＣアドレスのＭＡＣアドレスマスク指定”であり、アクションが“ＭＡＣ学習キャンセル”である。フロー処理装置４００は、ＭＡＣ学習キャンセル用エントリにより、入力されたフレーム６００の送信元ＭＡＣアドレスが、当該ＭＡＣ学習キャンセル用エントリのキーの条件に含まれていれば、ＭＡＣアドレステーブル４２０においてＭＡＣ学習が行われなくなる。すなわち、ＭＡＣ学習キャンセル用エントリの“ＭＡＣアドレス／マスク”に含まれるＭＡＣアドレスを送信先とするフレーム６００は、ＭＡＣエントリ４２１が存在しないため、Ｆｌｏｏｄｉｎｇ動作となる。
【０１８５】  ＭＡＣ学習キャンセル用エントリは、動的に追加されたエージング用エントリ４３１及びＭＡＣ重複ＵＣ出力用エントリ４５３と競合する。そのため、ＭＡＣ学習キャンセル用エントリは、静的に設定されたＭＡＣ重複エントリ４９１を優先し、ＭＡＣアドレス／マスクに含まれる条件を持つエージング用エントリ４３１及びＭＡＣ重複ＵＣ出力用エントリ４５３は削除する必要がある。
【０１８６】  なお、上記のとおり、静的に設定されたＭＡＣ重複エントリ４９１を使用すると、Ｆｌｏｏｄｉｎｇ動作となるため、通信帯域を考慮すると最低限のコンフィグとすることが望ましい。
【０１８７】  上記のとおり、静的に設定されたＭＡＣ重複エントリ４９１を使用することにより、アクセスリストテーブル４５０のエントリ数の増加を抑制することが可能となる。
【０１８８】  以上、本発明の実施形態を説明したが、本発明は、上記したそれぞれの実施形態に限定されるものではない。本発明は、各実施形態の変形・置換・調整に基づいて実施できる。また、本発明は、各実施形態を任意に組み合わせて実施することもできる。即ち、本発明は、本明細書の全ての開示内容、技術的思想に従って実現できる各種変形、修正を含む。また、本発明は、ＳＤＮ（Ｓｏｆｔｗａｒｅ−Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）の技術分野にも適用可能である。
【０１８９】  この出願は、２０１５年１０月３０日に出願された日本出願特願２０１５−２１３５６６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１９０】  １００    フロー制御装置  ２００    エッジノード  ３００    端末  ４００    フロー処理装置  ４０１    制御部  ４１０    ポート  ４２０    ＭＡＣアドレステーブル  ４２１    ＭＡＣエントリ  ４３０    フレーム変換用テーブル  ４３１    エージング用エントリ  ４４０    ＶＬＡＮテーブル  ４４１    ＶＬＡＮエントリ  ４５０    アクセスリストテーブル  ４５１    ＵＣ出力用エントリ  ４５２    Ｆｌｏｏｄｉｎｇ出力用エントリ  ４５３    ＭＡＣ重複ＵＣ出力用エントリ  ４５４    監視用エントリ  ４６０    フレーム処理部  ４７０    ＭＡＣ重複処理部  ４８０    ハードウェア処理部  ４９０    ＭＡＣ重複テーブル  ４９１    ＭＡＣ重複エントリ  ５００    物理ネットワーク  ６００    フレーム
【図１】
2017073033.tif 000003
【図２】
2017073033.tif 000004
【図３】
2017073033.tif 000005
【図４】
2017073033.tif 000006
【図５】
2017073033.tif 000007
【図６】
2017073033.tif 000008
【図７】
2017073033.tif 000009
【図８】
2017073033.tif 000010
【図９】
2017073033.tif 000011
【図１０】
2017073033.tif 000012
【図１１】
2017073033.tif 000013
【図１２】
2017073033.tif 000014
【図１３】
2017073033.tif 000015
【図１４】
2017073033.tif 000016
【図１５】
2017073033.tif 000017
【図１６】
2017073033.tif 000018
【図１７】
2017073033.tif 000019
【図１８】
2017073033.tif 000020
【図１９】
2017073033.tif 000021
【国際調査報告】
2017073033.tif 000022
2017073033.tif 000023