(57)【要約】【課題】同じ内容のパケットを繰り返し複製して転送することを防止すること。【解決手段】パケット制御装置１００は、ポートｐ１を通じてＶＭ１へと出力されるパケット１０１を受信し、パケット１０１がミラーリング対象であるか否かを判定し、ミラーリング済みか否かを判定する。パケット制御装置１００は、パケット１０１がミラーリング対象であると判定し、ミラーリング済みではないと判定した場合、パケット１０１を複製したパケット１０２を生成し、パケット１０２の所定領域の値を反転し、パケット１０２を転送先に転送する。また、パケット制御装置１００は、パケット１０１を、ポートｐ１を通じて宛先であるＶＭ１に送信する。パケット制御装置１００は、パケット１０３を受信し、パケット１０３がミラーリング対象であると判定し、ミラーリング済みであると判定した場合、パケット１０３の所定領域の値を反転し、宛先であるＶＭ１に送信する。【選択図】図１
2019080253.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
いずれかのポートを通じて入力または出力される第１パケットを受け付け、
ポートごとに、前記ポートを通じて入力または出力されるパケットがミラーリング対象であるか否かを表す情報を参照し、受け付けた前記第１パケットがミラーリング対象であるか否かを判定し、
前記第１パケットがミラーリング対象であると判定した場合、前記第１パケットの所定領域の値に基づいて、前記第１パケットがミラーリング済みであるか否かを判定し、
前記第１パケットがミラーリング済みではないと判定した場合、前記第１パケットを複製した第２パケットを生成し、前記第２パケットの所定領域の値をミラーリング済みであることを示す値に設定して転送先に転送し、前記第１パケットを宛先に送信し、
前記第１パケットがミラーリング済みであると判定した場合、前記第１パケットの所定領域の値をミラーリング済みではないことを示す値に設定して宛先に送信する、
処理を実行させることを特徴とするパケット制御プログラム。
【請求項２】
前記コンピュータに、
前記いずれかのポートを通じて出力されるパケットがミラーリング対象であるか否かを判定する処理を実行させ、
前記第１パケットがミラーリング済みであるか否かを判定する処理は、前記第１パケットがミラーリング対象であると判定し、前記いずれかのポートを通じて出力されるパケットがミラーリング対象であると判定した場合、前記第１パケットがミラーリング済みであるか否かを判定する、ことを特徴とする請求項１に記載のパケット制御プログラム。
【請求項３】
前記コンピュータに、
ポートごとに、前記ポートが別ポートを通じて入力されるミラーパケットの転送先に通じるポートであるか否かを表す第２情報を参照し、前記いずれかのポートが別ポートを通じて入力されるミラーパケットの転送先に通じるポートであるか否かを判定する処理を実行させ、
前記第１パケットがミラーリング済みであるか否かを判定する処理は、前記第１パケットがミラーリング対象であると判定し、前記いずれかのポートが別ポートを通じて入力されるミラーパケットの転送先に通じるポートであると判定した場合、前記第１パケットがミラーリング済みであるか否かを判定する、ことを特徴とする請求項１または２に記載のパケット制御プログラム。
【請求項４】
前記第１パケットがミラーリング済みであるか否かを判定する処理は、前記第１パケットの所定領域の値を反転して計算したチェックサムと、前記第１パケットに含まれるチェックサムとが一致すれば、前記第１パケットがミラーリング済みであると判定する、ことを特徴とする請求項１〜３のいずれか一つに記載のパケット制御プログラム。
【請求項５】
コンピュータが、
いずれかのポートを通じて入力または出力される第１パケットを受け付け、
ポートごとに、前記ポートを通じて入力または出力されるパケットがミラーリング対象であるか否かを表す情報を参照し、受け付けた前記第１パケットがミラーリング対象であるか否かを判定し、
前記第１パケットがミラーリング対象であると判定した場合、前記第１パケットの所定領域の値に基づいて、前記第１パケットがミラーリング済みであるか否かを判定し、
前記第１パケットがミラーリング済みではないと判定した場合、前記第１パケットを複製した第２パケットを生成し、前記第２パケットの所定領域の値をミラーリング済みであることを示す値に設定して転送先に転送し、前記第１パケットを宛先に送信し、
前記第１パケットがミラーリング済みであると判定した場合、前記第１パケットの所定領域の値をミラーリング済みではないことを示す値に設定して宛先に送信する、
処理を実行することを特徴とするパケット制御方法。
【請求項６】
いずれかのポートを通じて入力または出力される第１パケットを受け付け、
ポートごとに、前記ポートを通じて入力または出力されるパケットがミラーリング対象であるか否かを表す情報を参照し、受け付けた前記第１パケットがミラーリング対象であるか否かを判定し、
前記第１パケットがミラーリング対象であると判定した場合、前記第１パケットの所定領域の値に基づいて、前記第１パケットがミラーリング済みであるか否かを判定し、
前記第１パケットがミラーリング済みではないと判定した場合、前記第１パケットを複製した第２パケットを生成し、前記第２パケットの所定領域の値をミラーリング済みであることを示す値に設定して転送先に転送し、前記第１パケットを宛先に送信し、
前記第１パケットがミラーリング済みであると判定した場合、前記第１パケットの所定領域の値をミラーリング済みではないことを示す値に設定して宛先に送信する、
制御部を有することを特徴とするパケット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット制御プログラム、パケット制御方法、およびパケット制御装置に関する。
【背景技術】
【０００２】
従来、仮想スイッチが有する特定のポートを通じてターゲットＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）にパケットが送受信される際、ターゲットＶＭに送受信されるパケットを複製したミラーパケットを生成し、別のポートを通じてモニタＶＭに転送するポートミラーリングの技術がある。
【０００３】
先行技術としては、例えば、設定された制御情報に基づいて、採取対象のトラフィックに属するパケットを複製し、パケット採取用のフローであることを識別できるよう改変を加えた上で、所定のトラフィック解析装置に宛てて転送するものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２２３１９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、同じ内容のパケットを繰り返し複製してモニタＶＭに転送してしまう場合がある。例えば、仮想スイッチが、受信したＶＭ１宛のパケットを複製してＶＭ２に転送した結果、転送したパケットがさらに複製されてＶＭ１宛のパケットとして戻ってくる場合があり、戻ってきたＶＭ１宛のパケットを再び複製してＶＭ２に転送してしまう。
【０００６】
１つの側面では、本発明は、同じ内容のパケットを繰り返し複製して転送することを防止することができるパケット制御プログラム、パケット制御方法、およびパケット制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様によれば、いずれかのポートを通じて入力または出力される第１パケットを受け付け、ポートごとに、前記ポートを通じて入力または出力されるパケットがミラーリング対象であるか否かを表す情報を参照し、受け付けた前記第１パケットがミラーリング対象であるか否かを判定し、前記第１パケットがミラーリング対象であると判定した場合、前記第１パケットの所定領域の値に基づいて、前記第１パケットがミラーリング済みであるか否かを判定し、前記第１パケットがミラーリング済みではないと判定した場合、前記第１パケットを複製した第２パケットを生成し、前記第２パケットの所定領域の値をミラーリング済みであることを示す値に設定して転送先に転送し、前記第１パケットを宛先に送信し、前記第１パケットがミラーリング済みであると判定した場合、前記第１パケットの所定領域の値をミラーリング済みではないことを示す値に設定して宛先に送信するパケット制御プログラム、パケット制御方法、およびパケット制御装置が提案される。
【発明の効果】
【０００８】
一態様によれば、同じ内容のパケットを繰り返し複製して転送することを防止することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかるパケット制御方法の一実施例を示す説明図である。
【図２】図２は、ポートミラーリングシステム２００の一例を示す説明図である。
【図３】図３は、パケット制御装置１００のハードウェア構成例を示すブロック図である。
【図４】図４は、ミラーポート管理テーブル４００の記憶内容の一例を示す説明図である。
【図５】図５は、ポート状態管理テーブル５００の記憶内容の一例を示す説明図である。
【図６】図６は、パケット制御装置１００の機能的構成例を示すブロック図である。
【図７】図７は、ポートミラーリングシステム２００のモジュール構成例を示す説明図である。
【図８】図８は、ポート状態管理テーブル５００を作成する一例を示す説明図である。
【図９】図９は、ミラーリング済みであるか否かを判定する一例を示す説明図である。
【図１０】図１０は、ポートミラーリングを設定する一例を示す説明図である。
【図１１】図１１は、ポートミラーリングシステム２００の第１動作例を示す説明図（その１）である。
【図１２】図１２は、ポートミラーリングシステム２００の第１動作例を示す説明図（その２）である。
【図１３】図１３は、ポートミラーリングシステム２００の第２動作例を示す説明図である。
【図１４】図１４は、ポートミラーリングシステム２００の第３動作例を示す説明図（その１）である。
【図１５】図１５は、ポートミラーリングシステム２００の第３動作例を示す説明図（その２）である。
【図１６】図１６は、ポートミラーリングシステム２００の第４動作例を示す説明図である。
【図１７】図１７は、テーブル作成処理手順の一例を示すフローチャートである。
【図１８】図１８は、ミラーパケット判定処理手順の一例を示すフローチャートである。
【図１９】図１９は、ミラーマーク読出処理手順の一例を示すフローチャートである。
【図２０】図２０は、ミラーパケット送信処理手順の一例を示すフローチャートである。
【図２１】図２１は、ミラーマーク除去処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかるパケット制御プログラム、パケット制御方法、およびパケット制御装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態にかかるパケット制御方法の一実施例）
図１は、実施の形態にかかるパケット制御方法の一実施例を示す説明図である。パケット制御装置１００は、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を動作させるコンピュータである。
【００１２】
パケット制御装置１００で動作するＶＭは、ポートミラーリングにおけるモニタＶＭ、または、ポートミラーリングにおけるターゲットＶＭとして機能する。パケット制御装置１００で動作するＶＭは、ポートミラーリングにおけるモニタＶＭとして機能し、かつ、ポートミラーリングにおけるターゲットＶＭとして機能する場合があってもよい。以下の説明では、ポートミラーリングを「ミラーリング」と表記する場合がある。
【００１３】
モニタＶＭは、ミラーパケットの宛先になるＶＭである。ミラーパケットは、ターゲットＶＭに送受信されるパケットを複製したパケットである。モニタＶＭは、例えば、ミラーリングにより、ターゲットＶＭに送受信されるパケットを複製したミラーパケットが送信されるＶＭである。
【００１４】
ターゲットＶＭは、ミラーパケットを生成する対象であるパケットが入出力されるポートに接続されるＶＭであり、ミラーパケットを生成する対象であるパケットが送受信されるＶＭである。ターゲットＶＭは、例えば、ミラーリングにより複製され、ミラーパケットを生成される対象であるパケットが送受信されるＶＭである。
【００１５】
ここで、ミラーリングは、例えば、ターゲットＶＭを動作させるコンピュータが有する仮想スイッチにより実現される。例えば、仮想スイッチは、仮想スイッチからターゲットＶＭへのポートを通じてターゲットＶＭに送受信されるパケットを複製したミラーパケットを、仮想スイッチからモニタＶＭへのポートを通じて転送する。転送は、例えば、ＯｐｅｎＦｌｏｗによる転送や、Ｌ３パケットを用いたカプセル化による転送である。
【００１６】
しかしながら、仮想スイッチが、同じ内容のパケットを繰り返し複製してモニタＶＭに転送してしまう場合がある。例えば、いずれかのミラーリングにおいてミラーパケットが流れるポートと、別のミラーリングにおいて複製対象とするパケットが流れるポートとが同じポートになり、複数のミラーリングがループ状に設定される場合がある。
【００１７】
具体的には、第１仮想スイッチが、ＶＭ１に通じるポートを有し、ＶＭ１宛のパケットを複製してＶＭ２に転送すると設定され、第２仮想スイッチが、ＶＭ２に通じるポートを有し、ＶＭ２宛のパケットを複製してＶＭ１に転送すると設定される場合がある。
【００１８】
この場合、第１仮想スイッチが、ＶＭ１宛のパケットを複製してＶＭ２に転送すると、第２仮想スイッチは、第１仮想スイッチから転送されたＶＭ２宛のパケットを複製してＶＭ１に転送することになる。結果として、第１仮想スイッチは、ＶＭ２に転送したパケットと同じ内容のパケットを、ＶＭ１宛のパケットとして受信することになる。ここで、第１仮想スイッチは、受信したＶＭ１宛のパケットが、過去にＶＭ２に転送したパケットが複製されたパケットであるか否かを判別することができないため、受信したＶＭ１宛のパケットを、再び複製してＶＭ２に転送することになる。一方で、第２仮想スイッチも、同様に、ＶＭ２宛のパケットを受信し、再び複製してＶＭ１に転送することになる。
【００１９】
このように、第１仮想スイッチと第２仮想スイッチとは、同じ内容のパケットを繰り返し複製して転送することになり、ネットワークに同じ内容のパケットがループ状に流れ続けることになる。そして、第１仮想スイッチと第２仮想スイッチとの処理量の増大化を招き、ネットワークの通信量の増大化を招いてしまう。
【００２０】
これに対し、仮想スイッチが、自スイッチに接続されたＶＭが送信元ではなく、かつ、宛先でもないパケットを受信した際、受信したパケットはミラーパケットであると判断し、受信したパケットをミラーリングしないようにする場合が考えられる。
【００２１】
しかしながら、この場合も、仮想スイッチが、同じ内容のパケットを繰り返し複製してモニタＶＭに転送してしまうことがある。例えば、仮想スイッチは、ブロードキャストまたはマルチキャストされたパケットを受信した際、受信したパケットがミラーパケットであるか否かを正確に判断することができない。
【００２２】
このほか、仮想スイッチが、ＳＴＰ（Ｓｐａｎｎｉｎｇ  Ｔｒｅｅ  Ｐｒｏｔｏｃｏｌ）により、Ｌ２ネットワークにデータが流れ続けることを防止することが考えられる。しかしながら、ＳＴＰでは、仮想スイッチのミラーリングの設定を変更しないため、仮想スイッチが、同じ内容のパケットを繰り返し複製して転送することを防止することができない。
【００２３】
そこで、本実施の形態では、ミラーリング対象のパケットを複製したミラーパケットにマーキングして転送し、ミラーリング対象のパケットでもマーキング済みであれば複製せず、ポートミラーリングの繰り返しを防止するパケット制御方法について説明する。
【００２４】
図１の例では、ポートｐ１を通じてＶＭ１から入力されるパケットおよびＶＭ１へと出力されるパケットが、ＶＭ２に転送されるように設定される。一方で、ポートｐ２を通じてＶＭ２から入力されるパケットおよびＶＭ２へと出力されるパケットが、ＶＭ１に転送されるように設定される。
【００２５】
（１−１）パケット制御装置１００は、いずれかのポートを通じて入力または出力される第１パケットを受け付ける。第１パケットは、例えば、ポートを通じてＶＭから入力されるパケット、または、ポートを通じてＶＭへと出力されるパケットである。図１（ａ）の例では、パケット制御装置１００は、ポートｐ１を通じてＶＭ１へと出力されるパケット１０１を受信する。
【００２６】
（１−２）パケット制御装置１００は、所定情報を参照し、受け付けた第１パケットがミラーリング対象であるか否かを判定する。所定情報は、ポートごとに、ポートを通じて入力または出力されるパケットがミラーリング対象であるか否かを表す情報である。所定情報は、例えば、図４に後述するミラーポート管理テーブル４００によって実現される。図１（ａ）の例では、パケット制御装置１００は、パケット１０１がミラーリング対象であると判定する。
【００２７】
（１−３）パケット制御装置１００は、第１パケットがミラーリング対象であると判定した場合、第１パケットの所定領域の値に基づいて、第１パケットがミラーリング済みであるか否かを判定する。所定領域は、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）ヘッダやＩＰヘッダである。所定領域は、具体的には、ＶＬＡＮ  ＴａｇフィールドやＴＯＳ（Ｔｙｐｅ  ｏｆ  Ｓｅｒｖｉｃｅ）フィールドである。
【００２８】
パケット制御装置１００は、例えば、所定領域の値が、所定領域の値に基づき計算したチェックサムと、第１パケットに含まれるチェックサムとを一致させるような値である場合、第１パケットがミラーリング済みであると判定する。一方で、パケット制御装置１００は、例えば、所定領域の値が、所定領域の値に基づき計算したチェックサムと、第１パケットに含まれるチェックサムとを一致させないような値である場合、第１パケットがミラーリング済みではないと判定する。図１（ａ）の例では、パケット制御装置１００は、パケット１０１がミラーリング済みではないと判定する。
【００２９】
（１−４）パケット制御装置１００は、第１パケットがミラーリング済みではないと判定した場合、第１パケットを複製した第２パケットを生成する。第２パケットは、ミラーパケットである。そして、パケット制御装置１００は、第２パケットの所定領域の値をミラーリング済みであることを示す値に設定して転送先に転送する。また、パケット制御装置１００は、第１パケットを宛先に送信する。宛先は、例えば、パケット制御装置１００において動作するＶＭである。宛先は、例えば、パケット制御装置１００とは異なる装置において動作するＶＭであってもよい。
【００３０】
以下の説明では、ミラーリング済みであることを示す値に設定することを「マーキング」と表記する場合がある。また、以下の説明では、ミラーリング済みであることを示す値を「ミラーマーク」と表記する場合がある。
【００３１】
図１（ａ）の例では、パケット制御装置１００は、パケット１０１がミラーリング済みではないと判定したため、パケット１０１を複製したパケット１０２を生成する。そして、パケット制御装置１００は、パケット１０２の所定領域の値を反転し、所定領域の値に基づき計算されるチェックサムと、パケット１０２に含まれるチェックサムとが一致しないようにして、パケット１０２を転送先に転送する。また、パケット制御装置１００は、パケット１０１を、ポートｐ１を通じて宛先であるＶＭ１に送信する。
【００３２】
これにより、パケット制御装置１００は、ポートｐ２を有するコンピュータが、ポートｐ２を通じてＶＭ２へと出力される第２パケットを受信した際、第２パケットがミラーリング済みであると判定可能なようにすることができる。また、ポートｐ２を有するコンピュータは、ポートｐ２を通じてＶＭ２へと出力される第２パケットを受信した際、第２パケットを複製した第３パケットをＶＭ１に転送してもよい。次に、図１（ｂ）の説明に移行する。
【００３３】
（１−５）パケット制御装置１００は、第１パケットと同様に、外部のコンピュータから送信された第３パケットや第４パケットを受け付ける。第３パケットと第４パケットとは、ミラーリング済みのパケットであり、所定領域の値がミラーリング済みを示す値であるパケットである。第３パケットは、例えば、パケット制御装置１００が転送した第２パケットを複製したパケットである。図１（ｂ）の例では、パケット制御装置１００は、パケット１０３やパケット１０４を受信する。
【００３４】
パケット制御装置１００は、第１パケットと同様に、第３パケットや第４パケットがミラーリング対象であるか否かを判定し、第３パケットや第４パケットがミラーリング済みであるか否かを判定する。図１（ｂ）の例では、パケット制御装置１００は、パケット１０３やパケット１０４がミラーリング対象であると判定し、ミラーリング済みであると判定する。
【００３５】
（１−６）パケット制御装置１００は、第３パケットや第４パケットがミラーリング済みであると判定した場合、第３パケットや第４パケットの所定領域の値をミラーリング済みではないことを示す値に設定して宛先に送信する。図１（ｂ）の例では、パケット制御装置１００は、パケット１０３やパケット１０４の所定領域の値を反転し、ポートｐ１を通じて宛先であるＶＭ１に送信する。この際、パケット制御装置１００は、パケット１０３やパケット１０４を複製して転送しなくてよい。
【００３６】
これにより、パケット制御装置１００は、パケット１０１と同じ内容のパケット１０３を複製して転送せず、同じ内容のパケットを繰り返し複製して転送することを防止することができ、ループ状に同じ内容のパケットが流れ続けることを防止することができる。そして、パケット制御装置１００は、処理量の増大化を抑制し、ネットワークの通信量の増大化を抑制することができる。
【００３７】
また、パケット制御装置１００は、ブロードキャストまたはマルチキャストされたパケットを複製したミラーパケットを送信する際にも、ミラーマークを付与することができる。そして、パケット制御装置１００は、ブロードキャストまたはマルチキャストされたパケットを複製したミラーパケットを受信した場合でも、受信したパケットがミラーパケットであると正確に判断することができる。このため、パケット制御装置１００は、同じ内容のパケットを繰り返し複製して転送することを防止することができる。
【００３８】
ここでは、パケットの宛先がＶＭである場合について説明したが、これに限らない。例えば、パケットの宛先が物理マシンである場合があってもよい。また、ここでは、パケットを仮想スイッチが受信する場合について説明したが、これに限らない。例えば、パケットを物理スイッチが受信する場合があってもよい。また、ここでは、パケット制御装置１００が、ポートｐ２を有するコンピュータとは異なるコンピュータである場合について説明したが、これに限らない。例えば、パケット制御装置１００が、ポートｐ２を有するコンピュータでもある場合があってもよい。
【００３９】
（ポートミラーリングシステム２００の一例）
次に、図２を用いて、図１に示したパケット制御装置１００を適用した、ポートミラーリングシステム２００の一例について説明する。
【００４０】
図２は、ポートミラーリングシステム２００の一例を示す説明図である。図２において、ポートミラーリングシステム２００は、複数のパケット制御装置１００と、管理装置２０１とを含む。
【００４１】
ポートミラーリングシステム２００において、複数のパケット制御装置１００と、管理装置２０１とは、有線または無線のネットワーク２１０を介して接続される。ネットワーク２１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。
【００４２】
パケット制御装置１００は、ＶＭを動作させ、仮想スイッチを有し、ポートミラーリングを実現するコンピュータである。パケット制御装置１００は、ポートミラーリングの際、パケットをミラーリングするか否かを決定し、パケットにマーキングしてミラーリングするか、または、パケットをミラーリングしない。パケット制御装置１００は、例えば、サーバである。それぞれのパケット制御装置１００が有する仮想スイッチは、例えば、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を介して接続される。以下の説明では、それぞれのパケット制御装置１００を区別する場合には「パケット制御装置１００−ｉ」と表記する場合がある。ｉは、１〜ｎの整数である。ｎは、パケット制御装置１００の数である。
【００４３】
管理装置２０１は、ポートミラーマネージャを実行するコンピュータである。ポートミラーマネージャは、例えば、パケット制御装置１００で動作するＶＭへと入力されるパケットおよびパケット制御装置１００で動作するＶＭから出力されるパケットのうち、いずれのパケットを複製して転送するかを設定し、ポートミラーリングを管理する。管理装置２０１は、例えば、サーバである。ここでは、管理装置２０１が、パケット制御装置１００とは異なる装置である場合について説明したが、これに限らない。例えば、管理装置２０１は、いずれかのパケット制御装置１００と一体であってもよい。
【００４４】
（パケット制御装置１００のハードウェア構成例）
次に、図３を用いて、パケット制御装置１００のハードウェア構成例について説明する。
【００４５】
図３は、パケット制御装置１００のハードウェア構成例を示すブロック図である。図３において、パケット制御装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、記録媒体Ｉ／Ｆ３０４と、記録媒体３０５とを有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００４６】
ここで、ＣＰＵ３０１は、パケット制御装置１００の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００４７】
ネットワークＩ／Ｆ３０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ３０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ３０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４８】
記録媒体Ｉ／Ｆ３０４は、ＣＰＵ３０１の制御に従って記録媒体３０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ３０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体３０５は、記録媒体Ｉ／Ｆ３０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体３０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体３０５は、パケット制御装置１００から着脱可能であってもよい。
【００４９】
パケット制御装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、パケット制御装置１００は、記録媒体Ｉ／Ｆ３０４や記録媒体３０５を複数有していてもよい。また、パケット制御装置１００は、記録媒体Ｉ／Ｆ３０４や記録媒体３０５を有していなくてもよい。
【００５０】
（管理装置２０１のハードウェア構成例）
ここで、管理装置２０１のハードウェア構成例については、図３に示したパケット制御装置１００のハードウェア構成例と同様であるため、説明を省略する。次に、パケット制御装置１００や管理装置２０１が記憶する各種テーブルの記憶内容について説明する。
【００５１】
（ミラーポート管理テーブル４００の記憶内容）
次に、図４を用いて、ミラーポート管理テーブル４００の記憶内容の一例について説明する。ミラーポート管理テーブル４００は、例えば、管理装置２０１の記憶領域により実現される。
【００５２】
図４は、ミラーポート管理テーブル４００の記憶内容の一例を示す説明図である。図４に示すように、ミラーポート管理テーブル４００は、ＩＤと、名前と、ミラーポートＩＤと、ポートミラー方向と、モニタポートＩＤとのフィールドを有する。ミラーポート管理テーブル４００は、ポートミラーリングによって複製されるパケットが流れるミラーポートごとに各フィールドに情報を設定することにより、ミラーポート管理情報がレコードとして記憶される。
【００５３】
ＩＤのフィールドには、レコードに割り振られたＩＤが設定される。名前のフィールドには、ポートミラーリングによって複製されるパケットが流れるミラーポートになるポートの名前が設定される。ミラーポートＩＤのフィールドには、ミラーポートを識別するＩＤが設定される。ポートミラー方向のフィールドには、ミラーポートをいずれの方向に流れるパケットを複製するかを示す状態情報が設定される。状態情報「入力」は、仮想スイッチからミラーポートを通じてＶＭに入力される方向を示す。状態情報「出力」は、仮想スイッチへとミラーポートを通じてＶＭから出力される方向を示す。状態情報「双方向」は、「入力」と「出力」とを含む。モニタポートＩＤのフィールドには、ミラーパケットを受信するモニタＶＭに通じるモニタポートを識別するＩＤが設定される。
【００５４】
ミラーポート管理テーブル４００は、管理装置２０１によって生成され更新される。管理装置２０１は、ミラーポート管理テーブル４００を用いることにより、いずれのポートを流れるパケットを複製してミラーパケットを生成するかを特定し、いずれのモニタＶＭにミラーパケットを送信するかを特定することができる。ミラーポート管理テーブル４００は、管理装置２０１からパケット制御装置１００に提供されてもよい。
【００５５】
（ポート状態管理テーブル５００の記憶内容）
次に、図５を用いてポート状態管理テーブル５００の記憶内容について説明する。ポート状態管理テーブル５００は、例えば、図３に示したパケット制御装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００５６】
図５は、ポート状態管理テーブル５００の記憶内容の一例を示す説明図である。図５に示すように、ポート状態管理テーブル５００は、Ｐｏｒｔ  ＩＤと、Ｍｉｒｒｏｒ  Ｓｒｃと、Ｍｉｒｒｏｒ  Ｄｓｔとのフィールドを有する。ポート状態管理テーブル５００は、ポートミラーリングによって複製されるパケットが流れるミラーポートごとに各フィールドに情報を設定することにより、ポート状態管理情報がレコードとして記憶される。
【００５７】
Ｐｏｒｔ  ＩＤのフィールドには、ポートを識別するＩＤが設定される。Ｍｉｒｒｏｒ  Ｓｒｃのフィールドには、仮想スイッチからポートを通じてＶＭに入力される入力パケットがミラーリング対象であるか否かを示す状態情報が設定される。状態情報「Ｙｅｓ」は、ミラーリング対象であることを示す。状態情報「Ｎｏ」は、ミラーリング対象ではないことを示す。Ｍｉｒｒｏｒ  Ｄｓｔのフィールドには、ポートの接続先がミラーパケットの宛先であるか否かを示す状態情報が設定される。状態情報「Ｙｅｓ」は、ミラーパケットの宛先であることを示す。状態情報「Ｎｏ」は、ミラーパケットの宛先ではないことを示す。
【００５８】
ポート状態管理テーブル５００は、パケット制御装置１００によって生成され更新される。パケット制御装置１００は、ポート状態管理テーブル５００を用いることにより、ポートミラーリングの設定を特定することができる。このため、パケット制御装置１００は、ポートミラーリングの際に、ミラーパケットをマーキングするか否かを判定することができる。
【００５９】
（パケット制御装置１００の機能的構成例）
次に、図６を用いて、パケット制御装置１００の機能的構成例について説明する。
【００６０】
図６は、パケット制御装置１００の機能的構成例を示すブロック図である。パケット制御装置１００は、記憶部６００と、取得部６０１と、判定部６０２と、変換部６０３と、出力部６０４とを含む。
【００６１】
記憶部６００は、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域によって実現される。以下では、記憶部６００が、パケット制御装置１００に含まれる場合について説明するが、これに限らない。例えば、記憶部６００が、パケット制御装置１００とは異なる装置に含まれ、記憶部６００の記憶内容がパケット制御装置１００から参照可能である場合があってもよい。
【００６２】
取得部６０１〜出力部６０４は、制御部となる機能である。取得部６０１〜出力部６０４は、具体的には、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、ネットワークＩ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶される。
【００６３】
記憶部６００は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部６００は、例えば、第１情報を記憶する。第１情報は、ポートごとに、ポートを通じて入力または出力されるパケットがミラーリング対象であるか否かを表す情報である。第１情報は、例えば、図４に示したミラーポート管理テーブル４００によって実現される。
【００６４】
記憶部６００は、例えば、第２情報を記憶する。第２情報は、ポートごとに、ポートが別ポートを通じて入力されるミラーパケットの転送先に通じるポートであるか否かを表す情報である。第２情報は、例えば、図５に示したポート状態管理テーブル５００によって実現される。これにより、記憶部６００は、各種情報を、各機能部に参照可能にすることができる。
【００６５】
取得部６０１は、各機能部の処理に用いられる各種情報を記憶部６００から取得し、各機能部に出力する。取得部６０１は、例えば、各機能部の処理に用いられる各種情報を記憶部６００から取得し、各機能部に出力してもよい。取得部６０１は、例えば、各機能部の処理に用いられる各種情報を、パケット制御装置１００とは異なる装置から取得し、各機能部に出力してもよい。取得部６０１は、具体的には、図４に示したミラーポート管理テーブル４００や図５に示したポート状態管理テーブル５００などを受信し、記憶部６００に記憶する。
【００６６】
取得部６０１は、具体的には、いずれかのポートを通じて入力または出力される第１パケットを受け付ける。ポートを通じて入力される第１パケットは、仮想スイッチが有するポートを通じて、ＶＭから出力されて仮想スイッチに入力される出力パケットである。ポートを通じて出力される第１パケットは、仮想スイッチから出力されてＶＭへと入力される入力パケットである。取得部６０１は、仮想スイッチで、仮想スイッチが有するポートを通じて、ＶＭから出力されて仮想スイッチに入力される出力パケット、または、仮想スイッチから出力されてＶＭへと入力される入力パケットを受信する。
【００６７】
判定部６０２は、第１情報を参照し、受け付けた第１パケットがミラーリング対象であるか否かを判定する。判定部６０２は、例えば、図４に示したミラーポート管理テーブル４００を有する管理装置２０１からの制御にしたがって、受け付けた第１パケットがミラーリング対象であるか否かを判定する。判定部６０２は、例えば、管理装置２０１から図４に示したミラーポート管理テーブル４００を受信し、受け付けた第１パケットがミラーリング対象であるか否かを判定してもよい。これにより、判定部６０２は、ミラーリング対象ではないパケットについてミラーリングしないようにすることができる。
【００６８】
判定部６０２は、第１パケットがミラーリング対象であると判定した場合、第１パケットの所定領域の値に基づいて、第１パケットがミラーリング済みであるか否かを判定する。所定領域は、例えば、Ｅｔｈｅｒｎｅｔヘッダ領域に含まれる。所定領域は、例えば、ＩＰヘッダ領域に含まれる。所定領域は、分断された２以上の領域であってもよい。所定領域は、例えば、Ｅｔｈｅｒｎｅｔヘッダ領域と、ＩＰヘッダ領域とであってもよい。
【００６９】
判定部６０２は、例えば、第１パケットの所定領域の値を反転して計算したチェックサムと、第１パケットに含まれるチェックサムとが一致するか否かを判定する。判定部６０２は、一致すれば、第１パケットがミラーリング済みであると判定する。判定部６０２は、一致しなければ、第１パケットがミラーリング済みではないと判定し、反転した値を元に戻す。これにより、判定部６０２は、受信したパケットがミラーリング済みであれば、受信したパケットをミラーリングしないようにすることができる。
【００７０】
判定部６０３は、例えば、第１パケットの第１領域の値を反転して計算したチェックサムと第１チェックサムとが一致するか否かを判定してもよい。さらに、判定部６０３は、第１パケットの第２領域の値を反転して計算したチェックサムと第２チェックサムとが一致するか否かを判定してもよい。第１領域は、例えば、ＩＰヘッダ領域である。第１チェックサムは、例えば、ＩＰヘッダ領域のヘッダチェックサムフィールドの値である。第２領域は、Ｅｔｈｅｒｎｅｔ領域である。第２チェックサムは、ＦＣＳである。
【００７１】
判定部６０３は、具体的には、第１パケットのＩＰヘッダ領域のＴＯＳフィールドの先頭ビットの値を反転して計算したチェックサムと、ＩＰヘッダ領域のヘッダチェックサムフィールドの値とが一致するか否かを判定する。さらに、判定部６０３は、第１パケットのＥｔｈｅｒｎｅｔ領域のＶＬＡＮ  Ｔａｇフィールドの先頭ビットの値を反転して計算したチェックサムと、ＦＣＳフィールドの値とが一致するか否かを判定する。
【００７２】
そして、判定部６０３は、判定した結果に基づいて、第１パケットがミラーリング済みであるか否かを判定してもよい。判定部６０３は、例えば、いずれかの判定結果が、一致しないことを示す場合、第１パケットがミラーリング済みであると判定する。また、判定部６０３は、いずれの判定結果も、一致しないことを示す場合、第１パケットがミラーリング済みであると判定してもよい。これにより、判定部６０３は、ミラーマークが付与されていないが第１領域と第２領域とのいずれかにエラーがある場合と、ミラーマークが付与されている場合とを区別可能にすることができる。また、判定部６０３は、判定した結果に基づいて、第１パケットが壊れているか否かを判定してもよい。また、判定部６０３は、判定した結果に基づいて、第１パケットが通常パケットであるか否かを判定してもよい。
【００７３】
また、判定部６０２は、第１パケットが通過するポートと同じポートを通じて出力されるパケットがミラーリング対象に設定されているか否かを判定してもよい。そして、判定部６０２は、判定した結果に基づいて、第１パケットがミラーリング済みであるか否かを判定しないようにする場合があってもよい。
【００７４】
判定部６０２は、例えば、図５に示したポート状態管理テーブル５００を参照し、第１パケットが通過するポートと同じポートを通じて仮想スイッチから出力されてＶＭへと入力される入力パケットがミラーリング対象に設定されているか否かを判定する。そして、判定部６０２は、第１パケットがミラーリング対象であると判定し、かつ、第１パケットが通過するポートと同じポートを通じて出力されるパケットがミラーリング対象であると判定した場合、第１パケットがミラーリング済みであるか否かを判定する。
【００７５】
一方で、判定部６０２は、第１パケットが通過するポートと同じポートを通じて出力されるパケットがミラーリング対象ではない場合、第１パケットがミラーリング済みであるか否かを判定しないようにする。これにより、判定部６０２は、ミラーパケットにマーキングしなくてもループ状に同じ内容のパケットが流れ続けない場合、判定にかかる処理量の低減化を図ることができる。
【００７６】
また、判定部６０２は、第２情報を参照し、第１パケットが通過するポートが、別ポートを通じて入力されるミラーパケットの転送先に通じるポートであるか否かを判定してもよい。そして、判定部６０２は、判定した結果に基づいて、第１パケットがミラーリング済みであるか否かを判定しないようにする場合があってもよい。
【００７７】
判定部６０２は、例えば、図５に示したポート状態管理テーブル５００を参照し、第１パケットが通過するポートが、別ポートを通じて仮想スイッチに入力されるミラーパケットの転送先に通じるポートであるか否かを判定してもよい。そして、判定部６０２は、第１パケットがミラーリング対象であり、かつ、第１パケットが通過するポートが別ポートを通じて仮想スイッチに入力されるミラーパケットの転送先に通じるポートである場合、第１パケットがミラーリング済みであるか否かを判定する。
【００７８】
一方で、判定部６０２は、第１パケットが通過するポートが、別ポートを通じて仮想スイッチに入力されるミラーパケットの転送先に通じるポートではない場合、第１パケットがミラーリング済みであるか否かを判定しないようにする。これにより、判定部６０２は、ミラーパケットにマーキングしなくてもループ状に同じ内容のパケットが流れ続けない場合、判定にかかる処理量の低減化を図ることができる。
【００７９】
変換部６０３は、第１パケットがミラーリング済みではないと判定した場合、第１パケットを複製した第２パケットを生成する。そして、変換部６０３は、第２パケットの所定領域の値をミラーリング済みであることを示す値に設定する。変換部６０３は、出力部６０４を制御して、第２パケットを転送先に転送し、第１パケットを宛先に送信する。所定領域は、例えば、Ｅｔｈｅｒｎｅｔヘッダ領域に含まれる。所定領域は、例えば、ＩＰヘッダ領域に含まれる。
【００８０】
変換部６０３は、例えば、第２パケットの所定領域の値を反転し、所定領域の値を、第２パケットに基づき計算されるチェックサムと、第２パケットに含まれるチェックサムとが一致しないような値に設定する。これにより、変換部６０３は、パケットにマーキングし、ミラーパケットの転送先においてミラーパケットであるか否かを判定可能にすることができる。また、変換部６０３は、仮にミラーパケットがさらに複製されて戻ってきた場合でも、ミラーパケットであるか否かを判定可能にすることができる。
【００８１】
変換部６０３は、第１パケットがミラーリング済みであると判定した場合、第１パケットの所定領域の値をミラーリング済みではないことを示す値に設定する。そして、変換部６０３は、出力部６０４を制御して、第１パケットを宛先に送信する。宛先は、例えば、第１パケットがポートを通じてＶＭから出力されて仮想スイッチに入力される出力パケットであれば、仮想スイッチに接続された他のＶＭ、または、他のコンピュータで動作する他のＶＭである。宛先は、例えば、第１パケットが仮想スイッチから出力されてＶＭへと入力される入力パケットであれば、仮想スイッチに接続されたＶＭである。
【００８２】
変換部６０３は、例えば、出力部６０４を制御して、第１パケットが仮想スイッチに入力される際に通過したポートとは異なるポートを通じて、宛先である他のコンピュータで動作する他のＶＭに、第１パケットを送信する。また、変換部６０３は、例えば、出力部６０４を制御して、第１パケットが仮想スイッチに入力される際に通過したポートとは異なるポートを通じて、自装置で動作するＶＭに、第１パケットを送信する。これにより、変換部６０３は、ミラーリング済みのパケットを繰り返しミラーリングすることを防止することができる。
【００８３】
出力部６０４は、変換部６０３の制御にしたがって、第１パケットを宛先に送信し、または、第２パケットを転送先に転送する。出力部６０４は、各機能部の処理結果を出力してもよい。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ３０３による外部装置への送信、または、メモリ３０２や記録媒体３０５などの記憶領域への記憶である。これにより、出力部６０４は、各機能部の処理結果を利用者に通知可能にし、パケット制御装置１００の管理や運用、例えば、パケット制御装置１００の設定値の更新などを支援することができ、パケット制御装置１００の利便性の向上を図ることができる。
【００８４】
（ポートミラーリングシステム２００のモジュール構成例）
次に、図７を用いて、図６に示した各機能部の動作を実現するためのポートミラーリングシステム２００のモジュール構成例について説明する。
【００８５】
図７は、ポートミラーリングシステム２００のモジュール構成例を示す説明図である。以下の説明では、それぞれのパケット制御装置１００−ｉが有するポート状態管理テーブル５００を区別する場合、「ポート状態管理テーブル５００−ｉ」と表記する場合がある。
【００８６】
図７の例では、管理装置２０１のハードウェア７１０において、管理装置２０１のハイパーバイザ７１１が実行されている。管理装置２０１のハイパーバイザ７１１において、ＯＳ７１２が実行されている。ＯＳ７１２において、仮想マネージャ７１３と、ポートミラーマネージャ７１５とが実行されている。ポートミラーマネージャ７１５は、テーブル作成部７１４を含む。
【００８７】
仮想マネージャ７１３は、仮想化環境を制御する。ポートミラーマネージャ７１５は、ポートミラーリングを制御する。図７において、（７−１）ポートミラーマネージャ７１５は、管理者７０３の操作入力に基づいてポートミラーリングを設定する設定情報を受信し、ミラーポート管理テーブル４００に反映する。
【００８８】
テーブル作成部７１４は、ミラーポート管理テーブル４００を参照し、ポート状態管理テーブル５００を作成する。テーブル作成部７１４は、作成したポート状態管理テーブル５００を、パケット制御装置１００に送信する。テーブル作成部７１４は、具体的には、図１７に後述するテーブル作成処理を実行する。管理装置２０１のハイパーバイザ７１１はなくてもよい。ここで、図８の説明に移行し、ポート状態管理テーブル５００を作成する一例について説明する。
【００８９】
図８は、ポート状態管理テーブル５００を作成する一例を示す説明図である。図８において、テーブル作成部７１４は、ミラーポート管理テーブル４００の１番目のレコードを参照する。テーブル作成部７１４は、ミラーポートＩＤ「Ｐｏｒｔ１」に、ポートミラー方向「双方向」が対応付けられているので、ミラーポートＩＤ「Ｐｏｒｔ１」のミラーポートにおける入力パケットがミラーリング対象であると判定する。このため、テーブル作成部７１４は、ポート状態管理テーブル５００においてＰｏｒｔ  ＩＤ「Ｐｏｒｔ１」にＭｉｒｒｏｒ  Ｓｒｃ「Ｙｅｓ」を対応付ける。
【００９０】
また、テーブル作成部７１４は、ミラーポートＩＤ「Ｐｏｒｔ１」に、モニタポートＩＤ「Ｐｏｒｔ２」が対応付けられているので、ミラーパケットの宛先が、モニタポートＩＤ「Ｐｏｒｔ２」のミラーポートの接続先であると判定する。このため、テーブル作成部７１４は、ポート状態管理テーブル５００においてＰｏｒｔ  ＩＤ「Ｐｏｒｔ２」にＭｉｒｒｏｒ  Ｄｓｔ「Ｙｅｓ」を対応付ける。
【００９１】
同様に、テーブル作成部７１４は、ミラーポート管理テーブル４００の２番目のレコードを参照する。テーブル作成部７１４は、ミラーポートＩＤ「Ｐｏｒｔ２」に、ポートミラー方向「出力」が対応付けられているので、ミラーポートＩＤ「Ｐｏｒｔ２」のミラーポートにおける入力パケットがミラーリング対象ではないと判定する。このため、テーブル作成部７１４は、ポート状態管理テーブル５００においてＰｏｒｔ  ＩＤ「Ｐｏｒｔ２」にＭｉｒｒｏｒ  Ｓｒｃ「Ｎｏ」を対応付ける。
【００９２】
また、テーブル作成部７１４は、ミラーポートＩＤ「Ｐｏｒｔ２」に、モニタポートＩＤ「Ｐｏｒｔ３」が対応付けられているので、ミラーパケットの宛先が、モニタポートＩＤ「Ｐｏｒｔ３」のミラーポートの接続先であると判定する。このため、テーブル作成部７１４は、ポート状態管理テーブル５００においてＰｏｒｔ  ＩＤ「Ｐｏｒｔ３」にＭｉｒｒｏｒ  Ｄｓｔ「Ｙｅｓ」を対応付ける。
【００９３】
同様に、テーブル作成部７１４は、ミラーポート管理テーブル４００の３番目のレコードを参照する。テーブル作成部７１４は、ミラーポートＩＤ「Ｐｏｒｔ３」に、ポートミラー方向「入力」が対応付けられているので、ミラーポートＩＤ「Ｐｏｒｔ３」のミラーポートにおける入力パケットがミラーリング対象であると判定する。このため、テーブル作成部７１４は、ポート状態管理テーブル５００においてＰｏｒｔ  ＩＤ「Ｐｏｒｔ３」にＭｉｒｒｏｒ  Ｓｒｃ「Ｙｅｓ」を対応付ける。
【００９４】
また、テーブル作成部７１４は、ミラーポートＩＤ「Ｐｏｒｔ３」に、モニタポートＩＤ「Ｐｏｒｔ４」が対応付けられているので、ミラーパケットの宛先が、モニタポートＩＤ「Ｐｏｒｔ４」のミラーポートの接続先であると判定する。このため、テーブル作成部７１４は、ポート状態管理テーブル５００においてＰｏｒｔ  ＩＤ「Ｐｏｒｔ４」にＭｉｒｒｏｒ  Ｄｓｔ「Ｙｅｓ」を対応付ける。
【００９５】
また、テーブル作成部７１４は、「Ｙｅｓ」を設定しなかったフィールドには「Ｎｏ」を設定する。テーブル作成部７１４は、例えば、ポート状態管理テーブル５００においてＰｏｒｔ  ＩＤ「Ｐｏｒｔ１」にＭｉｒｒｏｒ  Ｄｓｔ「Ｎｏ」を対応付ける。また、テーブル作成部７１４は、例えば、ポート状態管理テーブル５００においてＰｏｒｔ  ＩＤ「Ｐｏｒｔ４」にＭｉｒｒｏｒ  Ｓｒｃ「Ｎｏ」を対応付ける。
【００９６】
図７に戻り、パケット制御装置１００−ｉのハードウェア７２０−ｉにおいて、パケット制御装置１００−ｉのハイパーバイザ７２１−ｉが実行されている。パケット制御装置１００−ｉのハイパーバイザ７２１−ｉにおいて、パケット制御装置１００−ｉのホストＯＳ７２２−ｉが実行されている。パケット制御装置１００−ｉのホストＯＳ７２２−ｉにおいて、ターゲットＶＭ７０１、または、モニタＶＭ７０２が実行可能である。また、ターゲットＶＭ７０１とモニタＶＭ７０２とのいずれかがない場合があってもよい。また、ターゲットＶＭ７０１が２以上ある場合や、モニタＶＭ７０２が２以上ある場合があってもよい。
【００９７】
パケット制御装置１００−ｉのホストＯＳ７２２−ｉは、仮想スイッチ７２３−ｉを含む。仮想スイッチ７２３−ｉは、パケット受信部７２４−ｉと、ミラーパケット判定部７２５−ｉと、ミラーパケット送信部７２６−ｉと、ミラーマーク除去部７２７−ｉと、パケット送信部７２８−ｉとを含む。仮想スイッチ７２３−ｉは、ポート状態管理テーブル５００−ｉを有する。
【００９８】
パケット受信部７２４−ｉは、ポートを介してパケットを受信する。パケット受信部７２４−ｉは、例えば、ターゲットＶＭ７０１からポートを通じて仮想スイッチ７２３−ｉに出力される出力パケットを受信する。また、パケット受信部７２４−ｉは、仮想スイッチ７２３−ｉからポートを通じてターゲットＶＭ７０１に入力される、ターゲットＶＭ７０１宛てのパケットを、別のポートから受信する。パケット受信部７２４−ｉは、ポートミラーマネージャ７１５の制御によって、受信したパケットがミラーリング対象であるか否かを判定する。
【００９９】
ミラーパケット判定部７２５−ｉは、受信したパケットがミラーリング対象である場合、ポート状態管理テーブル５００を参照し、ミラーパケットにマーキングしなくても、ループ状に同じ内容のパケットが流れ続けることを防止可能であるか否かを判定する。ループ状に同じ内容のパケットが流れ続けない状態は、例えば、ミラーポートに対応するＭｉｒｒｏｒ  ＤｓｔとＭｉｒｒｏｒ  Ｓｒｃとのいずれかが「Ｎｏ」である場合である。ループ状に同じ内容のパケットが流れ続けない状態は、図９〜図１６を用いて後述する。
【０１００】
ミラーパケット判定部７２５−ｉは、例えば、受信したパケットが出力パケットであれば、受信したパケットがＶＭから出力された際に通過したミラーポートに対応するＭｉｒｒｏｒ  ＤｓｔとＭｉｒｒｏｒ  Ｓｒｃとを取得する。そして、ミラーパケット判定部７２５−ｉは、取得したＭｉｒｒｏｒ  ＤｓｔとＭｉｒｒｏｒ  Ｓｒｃとが「Ｙｅｓ」であれば、ループ状に同じ内容のパケットが流れ続ける可能性があると判定する。一方で、ミラーパケット判定部７２５−ｉは、取得したＭｉｒｒｏｒ  ＤｓｔとＭｉｒｒｏｒ  Ｓｒｃとのいずれかが「Ｎｏ」であれば、ループ状に同じ内容のパケットが流れ続けない状態であると判定する。
【０１０１】
ミラーパケット判定部７２５−ｉは、例えば、受信したパケットが入力パケットであれば、受信したパケットをＶＭに入力する際に通過するミラーポートに対応するＭｉｒｒｏｒ  ＤｓｔとＭｉｒｒｏｒ  Ｓｒｃとを取得する。そして、ミラーパケット判定部７２５−ｉは、取得したＭｉｒｒｏｒ  ＤｓｔとＭｉｒｒｏｒ  Ｓｒｃとが「Ｙｅｓ」であれば、ループ状に同じ内容のパケットが流れ続ける可能性があると判定する。一方で、ミラーパケット判定部７２５−ｉは、取得したＭｉｒｒｏｒ  ＤｓｔとＭｉｒｒｏｒ  Ｓｒｃとのいずれかが「Ｎｏ」であれば、ループ状に同じ内容のパケットが流れ続けない状態であると判定する。
【０１０２】
ミラーパケット判定部７２５−ｉは、ループ状に同じ内容のパケットが流れ続ける可能性がある場合、受信したパケットの所定領域の値にミラーマークがあるか否かに基づいて、受信したパケットがミラーリング済みであるか否かを判定する。所定領域は、例えば、Ｅｔｈｅｒｎｅｔヘッダ領域に含まれる。所定領域は、例えば、ＩＰヘッダ領域に含まれる。ここで、図９の説明に移行し、パケットのデータ構造の一例について説明し、ミラーリング済みであるか否かを判定する一例について説明する。
【０１０３】
図９は、ミラーリング済みであるか否かを判定する一例を示す説明図である。図９に示すように、パケット９００は、Ｅｔｈｅｒｎｅｔヘッダと、ＩＰヘッダと、ＴＣＰヘッダと、ペイロードと、ＦＣＳとを含む。Ｅｔｈｅｒｎｅｔヘッダは、ＶＬＡＮ  Ｔａｇなどのフィールドを含む。ＩＰヘッダは、ＴＯＳなどのフィールドを含む。
【０１０４】
ここで、所定領域は、例えば、ＶＬＡＮ  Ｔａｇフィールドと、ＴＯＳフィールドとの先頭ビットを用いることができる。ミラーパケットの転送の際には送信元ＩＰアドレスや宛先ＩＰアドレスなどを用いないため、所定領域は、例えば、送信元ＩＰアドレスフィールドや宛先ＩＰアドレスフィールドの先頭ビットを用いることもできる。ミラーマークは、例えば、ＴＯＳフィールドの先頭ビットの値を反転した値である。ミラーマークは、具体的には、ＩＰチェックサムと、ＩＰヘッダのヘッダチェックサムフィールドとが一致しなくなるように、ＴＯＳフィールドの先頭ビットの値を反転した値である。
【０１０５】
また、ミラーマークは、例えば、ＶＬＡＮ  Ｔａｇフィールドの先頭ビットの値を反転した値であってもよい。ミラーマークは、具体的には、Ｅｔｈｅｒチェックサムと、ＦＣＳとが一致しなくなるように、ＶＬＡＮ  Ｔａｇフィールドの先頭ビットの値を反転した値である。所定領域は、分断された２以上の領域であってもよい。所定領域は、１ビットではなく、２ビット以上であってもよい。
【０１０６】
ミラーパケット判定部７２５−ｉは、受信したパケットのＩＰチェックサムを計算し、ＩＰヘッダのヘッダチェックサムフィールドと比較する。ミラーパケット判定部７２５−ｉは、比較した結果一致しなければ、ＴＯＳフィールドにミラーマークがあるか、または、受信したパケットが壊れていると判定する。
【０１０７】
そこで、ミラーパケット判定部７２５−ｉは、比較した結果一致しなければ、ＴＯＳフィールドの先頭ビットの値を反転し、再度、受信したパケットのＩＰチェックサムを計算し、ＩＰヘッダのヘッダチェックサムフィールドと比較する。ミラーパケット判定部７２５−ｉは、再度比較した結果一致しなければ、受信したパケットが壊れていると判定する。一方で、ミラーパケット判定部７２５−ｉは、再度比較した結果一致すれば、ＴＯＳフィールドにミラーマークがあり、受信したパケットはミラーリング済みであると判定する。
【０１０８】
また、ミラーパケット判定部７２５−ｉは、受信したパケットのＩＰチェックサムを計算し、ＩＰヘッダのヘッダチェックサムフィールドと比較した結果一致すれば、さらに、Ｅｔｈｅｒチェックサムを計算し、ＦＣＳと比較する。ミラーパケット判定部７２５−ｉは、比較した結果一致しなければ、ＶＬＡＮ  Ｔａｇフィールドにミラーマークがあるか、または、受信したパケットが壊れていると判定する。
【０１０９】
そこで、ミラーパケット判定部７２５−ｉは、比較した結果一致しなければ、ＶＬＡＮ  Ｔａｇフィールドの先頭ビットの値を反転し、再度、受信したパケットのＥｔｈｅｒチェックサムを計算し、ＦＣＳと比較する。ミラーパケット判定部７２５−ｉは、再度比較した結果一致しなければ、受信したパケットが壊れていると判定する。一方で、ミラーパケット判定部７２５−ｉは、再度比較した結果一致すれば、ＴＯＳフィールドにミラーマークがあり、受信したパケットはミラーリング済みであると判定する。また、ミラーパケット判定部７２５−ｉは、Ｅｔｈｅｒチェックサムを計算し、ＦＣＳと比較した結果一致すれば、受信したパケットは、ミラーパケットではない通常パケットであると判定する。
【０１１０】
図７に戻り、ミラーパケット判定部７２５−ｉは、受信したパケットがミラーリング済みでなければ、ミラーパケットを生成し、ミラーパケットにマーキングし、ミラーパケット送信部７２６−ｉを制御してミラーパケットを送信させる。ミラーパケット判定部７２５−ｉは、例えば、ミラーパケットの、ＴＯＳフィールドの先頭ビットの値、または、ＶＬＡＮ  Ｔａｇフィールドの先頭ビットの値を反転することにより、ミラーパケットにマーキングする。また、ミラーパケット判定部７２５−ｉは、パケット送信部７２８−ｉを制御してパケットを送信させる。
【０１１１】
ミラーパケット判定部７２５−ｉは、受信したパケットがミラーリング済みであれば、ミラーマーク除去部７２７−ｉを制御してパケットからミラーマークを除去させ、パケット送信部７２８−ｉを制御してパケットを送信させる。ミラーパケット判定部７２５−ｉは、例えば、ミラーパケットの、ＴＯＳフィールドの先頭ビットの値、または、ＶＬＡＮ  Ｔａｇフィールドの先頭ビットの値を反転することにより、ミラーマークを除去する。
【０１１２】
また、ミラーパケット判定部７２５−ｉは、ループ状に同じ内容のパケットが流れ続けない状態であれば、受信したパケットがミラーリング済みであるか否かを判定せず、ミラーパケットにマーキングせず、ミラーパケットを転送してもよい。ループ状に同じ内容のパケットが流れ続けない状態は、具体的には、図１０〜図１６を用いて後述する。
【０１１３】
ミラーパケット送信部７２６−ｉは、ミラーパケット判定部７２５−ｉの制御にしたがって、ミラーパケットを送信する。ミラーマーク除去部７２７−ｉは、ミラーパケット判定部７２５−ｉの制御にしたがって、ミラーマークを除去する。パケット送信部７２８−ｉは、ミラーパケット判定部７２５−ｉの制御にしたがって、パケットを送信する。次に、図１０〜図１６の説明に移行し、ポートミラーリングシステム２００において、どのようにミラーパケットが流れるかについて説明する。
【０１１４】
（ポートミラーリングを設定する一例）
次に、図１０を用いて、ポートミラーリングを設定する一例について説明する。
【０１１５】
図１０は、ポートミラーリングを設定する一例を示す説明図である。図１０の例では、ＶＭｉは、パケット制御装置１００−ｉで動作しており、パケット制御装置１００−ｉの仮想スイッチ７２３−ｉのポートｐｉに接続されている。
【０１１６】
これに対し、例えば、ＶＭｉが接続されたポートｐｉを流れるパケットを複製してポートｐｉ＋１を通じてＶＭｉ＋１に転送されるように、ポートミラーリングが設定される。ｉは、１〜ｎ−１である。また、ＶＭｎが接続されたポートｐｎを流れるパケットを複製してポートｐ１を通じてＶＭ１に転送されるように、ポートミラーリングが設定される。
【０１１７】
このように、ループ状に同じ内容のパケットが流れ続ける可能性が生じるようにポートミラーリングが設定される場合がある。この場合について、図１１および図１２を用いて、第１動作例について説明する。
【０１１８】
（ポートミラーリングシステム２００の第１動作例）
まず、図１１および図１２を用いて、ポートミラーリングシステム２００の第１動作例について説明する。
【０１１９】
図１１および図１２は、ポートミラーリングシステム２００の第１動作例を示す説明図である。第１動作例では、ポート状態管理テーブル５００の、ポートｐ１に対応するＭｉｒｒｏｒ  ＤｓｔとＭｉｒｒｏｒ  Ｓｒｃとは「Ｙｅｓ」である。
【０１２０】
図１１の例では、（１１−１）パケット制御装置１００−１は、ポートｐ１を通じてＶＭ１に入力されるパケット１１０１を受信する。パケット制御装置１００−１は、ポートｐ１に対応するＭｉｒｒｏｒ  ＳｒｃとＭｉｒｒｏｒ  Ｄｓｔとが「Ｙｅｓ」であるため、ミラーマークを付けなければループ状に同じ内容のパケットが流れ続ける可能性があると判定する。
【０１２１】
（１１−２）パケット制御装置１００−１は、受信したパケット１１０１にミラーマークがあるか否かを判定する。パケット制御装置１００−１は、受信したパケット１１０１にミラーマークがないと判定し、受信したパケット１１０１を複製したミラーパケット１１０２にミラーマークを付与してＶＭ２に転送する。
【０１２２】
（１１−３）パケット制御装置１００−２は、受信したパケット１１０２にミラーマークがあると判定し、受信したパケット１１０２を複製しない。これにより、ポートミラーリングシステム２００は、ループ状に同じ内容のパケットが流れ続けることを防止することができ、パケット制御装置１００−ｉの処理量の低減化を図ることができる。
【０１２３】
ここで、パケット制御装置１００−２が、受信したパケット１１０２にミラーマークがあるか否かを判定せず、受信したパケット１１０２を複製して転送してしまう場合があってもよい。次に、図１２の説明に移行し、パケット制御装置１００−２が、受信したパケット１１０２を複製して転送してしまう場合について説明する。
【０１２４】
図１２の例では、（１２−１）パケット制御装置１００−２が、受信したパケット１１０２を複製したミラーパケット１２０１をＶＭ３（不図示）に転送する。
【０１２５】
（１２−２）パケット制御装置１００−２が、受信したパケット１１０２を複製したミラーパケット１２０１をＶＭ３（不図示）に転送した結果、ミラーパケット１２０１と同じ内容のミラーパケット１２０２が、ＶＭｎに転送される。
【０１２６】
（１２−３）パケット制御装置１００−ｎが、受信したパケット１２０２を複製したミラーパケット１２０３をＶＭ１に転送する。
【０１２７】
（１２−４）パケット制御装置１００−１は、ポートｐ１を通じてＶＭ１に入力されるパケット１２０３を受信する。パケット制御装置１００−１は、受信したパケット１２０３にミラーマークがあるため、受信したパケット１２０３を複製しない。
【０１２８】
これにより、ポートミラーリングシステム２００は、ループ状に同じ内容のパケットが流れ続けることを防止することができ、パケット制御装置１００−ｉの処理量の低減化を図ることができる。また、ポートミラーリングシステム２００は、ポートミラーリングシステム２００の性能低下を抑制することができる。
【０１２９】
（ポートミラーリングシステム２００の第２動作例）
次に、図１３を用いて、ポートミラーリングシステム２００の第２動作例について説明する。
【０１３０】
図１３は、ポートミラーリングシステム２００の第２動作例を示す説明図である。第２動作例は、図１０とは異なり、ポートｐｎを流れるパケットを複製しないように、ポートミラーリングが設定される場合の動作例である。このため、第２動作例では、ポート状態管理テーブル５００の、ポートｐ１に対応するＭｉｒｒｏｒ  Ｓｒｃは「Ｙｅｓ」であり、Ｍｉｒｒｏｒ  Ｄｓｔは「Ｎｏ」である。
【０１３１】
図１３の例では、（１３−１）パケット制御装置１００−１は、ポートｐ１を通じてＶＭ１に入力されるパケット１３０１を受信する。パケット制御装置１００−１は、ポートｐ１に対応するＭｉｒｒｏｒ  Ｄｓｔが「Ｎｏ」であるため、ミラーマークを付けなくてもループ状に同じ内容のパケットが流れ続けない状態であると判定する。
【０１３２】
（１３−２）パケット制御装置１００−１は、受信したパケット１３０１のミラーマークを確認せず、受信したパケット１３０１を複製したミラーパケット１３０２にミラーマークを付与せずＶＭ２に転送する。
【０１３３】
（１３−３）パケット制御装置１００−２が、受信したパケット１３０２を複製したミラーパケット１３０３をＶＭ３（不図示）に転送する。
【０１３４】
（１３−４）パケット制御装置１００−２が、受信したパケット１３０２を複製したミラーパケット１３０３をＶＭ３（不図示）に転送した結果、ミラーパケット１３０２と同じ内容のミラーパケット１３０４が、ＶＭｎに転送される。
【０１３５】
ここで、パケット制御装置１００−ｎは、受信したパケット１３０４を複製してＶＭ１に転送することがないため、パケット制御装置１００−１は、転送したパケット１３０１と同じ内容のパケットを受信することがない。
【０１３６】
これにより、ポートミラーリングシステム２００は、ループ状に同じ内容のパケットが流れ続けない状態であれば、パケット制御装置１００−ｉの処理量の低減化を図ることができる。また、ポートミラーリングシステム２００は、ポートミラーリングシステム２００の性能低下を抑制することができる。
【０１３７】
（ポートミラーリングシステム２００の第３動作例）
次に、図１４および図１５を用いて、ポートミラーリングシステム２００の第３動作例について説明する。
【０１３８】
図１４および図１５は、ポートミラーリングシステム２００の第３動作例を示す説明図である。第３動作例は、図１０とは異なり、ポートｐ１を流れるパケットのうち、ポートｐ１を通じてＶＭ１に入力されるパケットを複製せず、ＶＭ１から出力されるパケットを複製するように、ポートミラーリングが設定される場合の動作例である。このため、第３動作例では、ポート状態管理テーブル５００の、ポートｐ１に対応するＭｉｒｒｏｒ  Ｓｒｃは「Ｎｏ」であり、Ｍｉｒｒｏｒ  Ｄｓｔは「Ｙｅｓ」である。
【０１３９】
図１４の例では、（１４−１）パケット制御装置１００−１は、ポートｐ１を通じてＶＭ１から出力されるパケット１４０１を受信する。パケット制御装置１００−１は、ポートｐ１に対応するＭｉｒｒｏｒ  Ｓｒｃが「Ｎｏ」であるため、ミラーマークを付けなくてもループ状に同じ内容のパケットが流れ続けない状態であると判定する。
【０１４０】
（１４−２）パケット制御装置１００−１は、受信したパケット１４０１のミラーマークを確認せず、受信したパケット１４０１を複製したミラーパケット１４０２にミラーマークを付与せずＶＭ２に転送する。
【０１４１】
（１４−３）パケット制御装置１００−２が、受信したパケット１４０２を複製したミラーパケット１４０３をＶＭ３（不図示）に転送する。
【０１４２】
（１４−４）パケット制御装置１００−２が、受信したパケット１４０２を複製したミラーパケット１４０３をＶＭ３（不図示）に転送した結果、ミラーパケット１４０２と同じ内容のミラーパケット１４０４が、ＶＭｎに転送される。ここで、図１５の説明に移行する。
【０１４３】
図１５の例では、（１５−１）パケット制御装置１００−ｎが、受信したパケット１４０４を複製したミラーパケット１５０１をＶＭ１に転送する。
【０１４４】
（１５−２）パケット制御装置１００−１は、ポートｐ１を通じてＶＭ１に入力されるパケット１５０１を受信する。パケット制御装置１００−１は、受信したパケット１５０１がミラーリング対象ではないため、受信したパケット１５０１を複製しない。
【０１４５】
これにより、ポートミラーリングシステム２００は、ループ状に同じ内容のパケットが流れ続けない状態であれば、パケット制御装置１００−ｉの処理量の低減化を図ることができる。また、ポートミラーリングシステム２００は、ポートミラーリングシステム２００の性能低下を抑制することができる。
【０１４６】
（ポートミラーリングシステム２００の第４動作例）
次に、図１６を用いて、ポートミラーリングシステム２００の第４動作例について説明する。
【０１４７】
図１６は、ポートミラーリングシステム２００の第４動作例を示す説明図である。第４動作例は、図１０とは異なり、ポートｐ１を流れるパケットのうち、ポートｐ１を通じてＶＭ１に入力されるパケットを複製せず、ＶＭ１から出力されるパケットを複製するように、ポートミラーリングが設定される場合の動作例である。
【０１４８】
また、第４動作例は、図１０とは異なり、ポートｐｎを流れるパケットを複製しないように、ポートミラーリングが設定される場合の動作例である。このため、第４動作例では、ポート状態管理テーブル５００の、ポートｐ１に対応するＭｉｒｒｏｒ  ＳｒｃとＭｉｒｒｏｒ  Ｄｓｔとが「Ｎｏ」である。
【０１４９】
図１６の例では、（１６−１）パケット制御装置１００−１は、ポートｐ１を通じてＶＭ１に入力されるパケット１６０１を受信する。パケット制御装置１００−１は、ポートｐ１に対応するＭｉｒｒｏｒ  ＳｒｃとＭｉｒｒｏｒ  Ｄｓｔとが「Ｎｏ」であるため、ミラーマークを付けなくてもループ状に同じ内容のパケットが流れ続けない状態であると判定する。
【０１５０】
（１６−２）パケット制御装置１００−１は、受信したパケット１６０１のミラーマークを確認せず、受信したパケット１６０１を複製したミラーパケット１６０２にミラーマークを付与せずＶＭ２に転送する。
【０１５１】
（１６−３）パケット制御装置１００−２が、受信したパケット１６０２を複製したミラーパケット１６０３をＶＭ３（不図示）に転送する。
【０１５２】
（１６−４）パケット制御装置１００−２が、受信したパケット１６０２を複製したミラーパケット１６０３をＶＭ３（不図示）に転送した結果、ミラーパケット１６０２と同じ内容のミラーパケット１６０４が、ＶＭｎに転送される。
【０１５３】
ここで、パケット制御装置１００−ｎは、受信したパケット１６０４を複製してＶＭ１に転送することがないため、パケット制御装置１００−１は、転送したパケット１６０１と同じ内容のパケットを受信することがない。
【０１５４】
これにより、ポートミラーリングシステム２００は、ループ状に同じ内容のパケットが流れ続けない状態であれば、パケット制御装置１００−ｉの処理量の低減化を図ることができる。また、ポートミラーリングシステム２００は、ポートミラーリングシステム２００の性能低下を抑制することができる。
【０１５５】
（テーブル作成処理手順）
次に、図１７を用いて、管理装置２０１が実行する、テーブル作成処理手順の一例について説明する。テーブル作成処理は、例えば、管理装置２０１のＣＰＵと、管理装置２０１の記憶領域と、管理装置２０１のＩ／Ｆとによって実現される。
【０１５６】
図１７は、テーブル作成処理手順の一例を示すフローチャートである。図１７において、管理装置２０１は、ミラーポート管理テーブル４００のいずれかのエントリを選択する（ステップＳ１７０１）。次に、管理装置２０１は、選択したエントリと同じミラーポートＩＤを含む、ポート状態管理テーブル５００のエントリを検索する（ステップＳ１７０２）。
【０１５７】
そして、管理装置２０１は、エントリがあるか否かを判定する（ステップＳ１７０３）。ここで、エントリがある場合（ステップＳ１７０３：Ｙｅｓ）、管理装置２０１は、ステップＳ１７０５の処理に移行する。一方で、エントリがない場合（ステップＳ１７０３：Ｎｏ）、管理装置２０１は、ステップＳ１７０４の処理に移行する。
【０１５８】
ステップＳ１７０４では、管理装置２０１は、選択したエントリと同じミラーポートＩＤを含み、Ｍｉｒｒｏｒ  ＳｒｃとＭｉｒｒｏｒ  Ｄｓｔとのフィールドに初期値「Ｎｏ」が設定された新たなエントリを作成する。管理装置２０１は、作成したエントリをポート状態管理テーブル５００に追加する（ステップＳ１７０４）。そして、管理装置２０１は、ステップＳ１７０５の処理に移行する。
【０１５９】
ステップＳ１７０５では、管理装置２０１は、選択したエントリのポートミラー方向のフィールドに「入力」または「双方向」が設定されているか否かを判定する（ステップＳ１７０５）。ここで、「入力」または「双方向」が設定されている場合（ステップＳ１７０５：Ｙｅｓ）、管理装置２０１は、ステップＳ１７０６の処理に移行する。一方で、「出力」が設定されている場合（ステップＳ１７０５：Ｎｏ）、管理装置２０１は、ステップＳ１７０７の処理に移行する。
【０１６０】
ステップＳ１７０６では、管理装置２０１は、選択したエントリと同じミラーポートＩＤを含む、ポート状態管理テーブル５００のエントリのＭｉｒｒｏｒ  Ｓｒｃのフィールドに「Ｙｅｓ」を設定する（ステップＳ１７０６）。そして、管理装置２０１は、ステップＳ１７０８の処理に移行する。
【０１６１】
ステップＳ１７０７では、管理装置２０１は、選択したエントリと同じミラーポートＩＤを含む、ポート状態管理テーブル５００のエントリのＭｉｒｒｏｒ  Ｓｒｃのフィールドに「Ｎｏ」を設定する（ステップＳ１７０７）。そして、管理装置２０１は、ステップＳ１７０８の処理に移行する。
【０１６２】
ステップＳ１７０８では、管理装置２０１は、選択したエントリと同じモニタポートＩＤを含む、ポート状態管理テーブル５００のエントリを検索する（ステップＳ１７０８）。
【０１６３】
そして、管理装置２０１は、エントリがあるか否かを判定する（ステップＳ１７０９）。ここで、エントリがある場合（ステップＳ１７０９：Ｙｅｓ）、管理装置２０１は、ステップＳ１７１１の処理に移行する。一方で、エントリがない場合（ステップＳ１７０９：Ｎｏ）、管理装置２０１は、ステップＳ１７１０の処理に移行する。
【０１６４】
ステップＳ１７１０では、管理装置２０１は、選択したエントリと同じモニタポートＩＤを含み、Ｍｉｒｒｏｒ  ＳｒｃとＭｉｒｒｏｒ  Ｄｓｔとのフィールドに初期値「Ｎｏ」が設定された新たなエントリを作成する。管理装置２０１は、作成したエントリを、ポート状態管理テーブル５００に追加する（ステップＳ１７１０）。そして、管理装置２０１は、ステップＳ１７１１の処理に移行する。
【０１６５】
ステップＳ１７１１では、管理装置２０１は、選択したエントリと同じモニタポートＩＤを含む、ポート状態管理テーブル５００のエントリのＭｉｒｒｏｒ  Ｄｓｔのフィールドに「Ｙｅｓ」を設定する（ステップＳ１７１１）。
【０１６６】
次に、管理装置２０１は、ミラーポート管理テーブル４００のすべてのエントリを選択したか否かを判定する（ステップＳ１７１２）。ここで、未選択のエントリがある場合（ステップＳ１７１２：Ｎｏ）、管理装置２０１は、ステップＳ１７０１の処理に移行する。一方で、すべてのエントリを選択した場合（ステップＳ１７１２：Ｙｅｓ）、管理装置２０１は、テーブル作成処理を終了する。
【０１６７】
（ミラーパケット判定処理手順）
次に、図１８を用いて、パケット制御装置１００が実行する、ミラーパケット判定処理手順の一例について説明する。ミラーパケット判定処理は、例えば、図３に示したＣＰＵ３０１と、メモリ３０２や記録媒体３０５などの記憶領域と、ネットワークＩ／Ｆ３０３とによって実現される。
【０１６８】
図１８は、ミラーパケット判定処理手順の一例を示すフローチャートである。図１８において、パケット制御装置１００は、ミラーリング対象のパケットを受信する（ステップＳ１８０１）。次に、パケット制御装置１００は、受信したパケットの宛先に対応するポートＩＤでポート状態管理テーブル５００のエントリを検索する（ステップＳ１８０２）。
【０１６９】
そして、パケット制御装置１００は、検索したエントリのＭｉｒｒｏｒ  Ｓｒｃのフィールドが「Ｙｅｓ」であるか否かを判定する（ステップＳ１８０３）。ここで、Ｍｉｒｒｏｒ  Ｓｒｃのフィールドが「Ｙｅｓ」である場合（ステップＳ１８０３：Ｙｅｓ）、パケット制御装置１００は、ステップＳ１８０４の処理に移行する。一方で、Ｍｉｒｒｏｒ  Ｓｒｃのフィールドが「Ｙｅｓ」ではない場合（ステップＳ１８０３：Ｎｏ）、パケット制御装置１００は、ステップＳ１８１２の処理に移行する。
【０１７０】
ステップＳ１８０４では、パケット制御装置１００は、検索したエントリのＭｉｒｒｏｒ  Ｄｓｔのフィールドが「Ｙｅｓ」であるか否かを判定する（ステップＳ１８０４）。ここで、Ｍｉｒｒｏｒ  Ｄｓｔのフィールドが「Ｙｅｓ」である場合（ステップＳ１８０４：Ｙｅｓ）、パケット制御装置１００は、ステップＳ１８０５の処理に移行する。一方で、Ｍｉｒｒｏｒ  Ｄｓｔのフィールドが「Ｙｅｓ」ではない場合（ステップＳ１８０４：Ｎｏ）、パケット制御装置１００は、ステップＳ１８１１の処理に移行する。
【０１７１】
ステップＳ１８０５では、パケット制御装置１００は、図１９に後述するミラーマーク読出処理を実行する（ステップＳ１８０５）。
【０１７２】
次に、パケット制御装置１００は、受信したパケットが破棄パケットであるか否かを判定する（ステップＳ１８０６）。ここで、破棄パケットである場合（ステップＳ１８０６：Ｙｅｓ）、パケット制御装置１００は、ステップＳ１８０７の処理に移行する。一方で、破棄パケットではない場合（ステップＳ１８０６：Ｎｏ）、パケット制御装置１００は、ステップＳ１８０８の処理に移行する。
【０１７３】
ステップＳ１８０７では、パケット制御装置１００は、受信したパケットを破棄する（ステップＳ１８０７）。そして、パケット制御装置１００は、ミラーパケット判定処理を終了する。
【０１７４】
ステップＳ１８０８では、パケット制御装置１００は、受信したパケットがミラーパケットであるか否かを判定する（ステップＳ１８０８）。ここで、ミラーパケットである場合（ステップＳ１８０８：Ｙｅｓ）、パケット制御装置１００は、ステップＳ１８１０の処理に移行する。一方で、ミラーパケットではない場合（ステップＳ１８０８：Ｎｏ）、パケット制御装置１００は、ステップＳ１８０９の処理に移行する。
【０１７５】
ステップＳ１８０９では、パケット制御装置１００は、受信したパケットとＴｒｕｅとを引数として、図２０に後述するミラーパケット送信処理を実行する（ステップＳ１８０９）。そして、パケット制御装置１００は、ステップＳ１８１０の処理に移行する。
【０１７６】
ステップＳ１８１０では、パケット制御装置１００は、受信したパケットを宛先に送信する（ステップＳ１８１０）。そして、パケット制御装置１００は、ミラーパケット判定処理を終了する。
【０１７７】
ステップＳ１８１１では、パケット制御装置１００は、受信したパケットとＦａｌｓｅとを引数として、図２０に後述するミラーパケット送信処理を実行する（ステップＳ１８１１）。そして、パケット制御装置１００は、ステップＳ１８１２の処理に移行する。
【０１７８】
ステップＳ１８１２では、パケット制御装置１００は、受信したパケットを引数として、図２１に後述するミラーマーク除去処理を実行する（ステップＳ１８１２）。そして、パケット制御装置１００は、ミラーパケット判定処理を終了する。
【０１７９】
（ミラーマーク読出処理手順）
次に、図１９を用いて、パケット制御装置１００が実行する、ミラーマーク読出処理手順の一例について説明する。ミラーマーク読出処理は、例えば、図３に示したＣＰＵ３０１と、メモリ３０２や記録媒体３０５などの記憶領域と、ネットワークＩ／Ｆ３０３とによって実現される。
【０１８０】
図１９は、ミラーマーク読出処理手順の一例を示すフローチャートである。図１９において、パケット制御装置１００は、パケットのＩＰチェックサムを計算する（ステップＳ１９０１）。
【０１８１】
次に、パケット制御装置１００は、計算したチェックサムが、ＩＰヘッダのチェックサムと一致するか否かを判定する（ステップＳ１９０２）。ここで、一致しない場合（ステップＳ１９０２：Ｎｏ）、パケット制御装置１００は、ステップＳ１９０３の処理に移行する。一方で、一致する場合（ステップＳ１９０２：Ｙｅｓ）、パケット制御装置１００は、ステップＳ１９０７の処理に移行する。
【０１８２】
ステップＳ１９０３では、パケット制御装置１００は、パケットのＴＯＣフィールドの所定のビットの値を反転し、チェックサムを再計算する（ステップＳ１９０３）。
【０１８３】
次に、パケット制御装置１００は、再計算したチェックサムが、ＩＰヘッダのチェックサムと一致するか否かを判定する（ステップＳ１９０４）。ここで、一致する場合（ステップＳ１９０４：Ｙｅｓ）、パケット制御装置１００は、ステップＳ１９０６の処理に移行する。一方で、一致しない場合（ステップＳ１９０４：Ｎｏ）、パケット制御装置１００は、ステップＳ１９０５の処理に移行する。
【０１８４】
ステップＳ１９０５では、パケット制御装置１００は、パケットが破棄パケットであると決定する（ステップＳ１９０５）。そして、パケット制御装置１００は、ミラーマーク読出処理を終了する。
【０１８５】
ステップＳ１９０６では、パケット制御装置１００は、パケットがミラーパケットであると決定する（ステップＳ１９０６）。そして、パケット制御装置１００は、ミラーマーク読出処理を終了する。
【０１８６】
ステップＳ１９０７では、パケット制御装置１００は、パケットのＥｔｈｅｒチェックサムを計算する（ステップＳ１９０７）。
【０１８７】
次に、パケット制御装置１００は、計算したチェックサムが、ＦＣＳと一致するか否かを判定する（ステップＳ１９０８）。ここで、一致する場合（ステップＳ１９０８：Ｙｅｓ）、パケット制御装置１００は、ステップＳ１９１２の処理に移行する。一方で、一致しない場合（ステップＳ１９０８：Ｎｏ）、パケット制御装置１００は、ステップＳ１９０９の処理に移行する。
【０１８８】
ステップＳ１９０９では、パケット制御装置１００は、パケットのＶＬＡＮ  Ｔａｇフィールドの所定のビットの値を反転し、チェックサムを再計算する（ステップＳ１９０９）。
【０１８９】
次に、パケット制御装置１００は、再計算したチェックサムが、ＦＣＳと一致するか否かを判定する（ステップＳ１９１０）。ここで、一致する場合（ステップＳ１９１０：Ｙｅｓ）、パケット制御装置１００は、ステップＳ１９０６の処理に移行する。一方で、一致しない場合（ステップＳ１９１０：Ｎｏ）、パケット制御装置１００は、ステップＳ１９１１の処理に移行する。
【０１９０】
ステップＳ１９１１では、パケット制御装置１００は、パケットが破棄パケットであると決定する（ステップＳ１９１１）。そして、パケット制御装置１００は、ミラーマーク読出処理を終了する。
【０１９１】
ステップＳ１９１２では、パケット制御装置１００は、パケットが通常パケットであると決定する（ステップＳ１９１２）。そして、パケット制御装置１００は、ミラーマーク読出処理を終了する。
【０１９２】
（ミラーパケット送信処理手順）
次に、図２０を用いて、パケット制御装置１００が実行する、ミラーパケット送信処理手順の一例について説明する。ミラーパケット送信処理は、例えば、図３に示したＣＰＵ３０１と、メモリ３０２や記録媒体３０５などの記憶領域と、ネットワークＩ／Ｆ３０３とによって実現される。
【０１９３】
図２０は、ミラーパケット送信処理手順の一例を示すフローチャートである。図２０において、パケット制御装置１００は、パケットを複製する（ステップＳ２００１）。
【０１９４】
次に、パケット制御装置１００は、ミラーマーク設定フラグがＴｒｕｅであるか否かを判定する（ステップＳ２００２）。ここで、Ｔｒｕｅである場合（ステップＳ２００２：Ｙｅｓ）、パケット制御装置１００は、ステップＳ２００３の処理に移行する。一方で、Ｔｒｕｅではない場合（ステップＳ２００２：Ｎｏ）、パケット制御装置１００は、ステップＳ２００４の処理に移行する。
【０１９５】
ステップＳ２００３では、パケット制御装置１００は、複製したパケットにミラーマークを設定する（ステップＳ２００３）。そして、パケット制御装置１００は、ステップＳ２００４の処理に移行する。
【０１９６】
ステップＳ２００４では、パケット制御装置１００は、複製したパケットを転送先に送信する（ステップＳ２００４）。そして、パケット制御装置１００は、ミラーパケット送信処理を終了する。
【０１９７】
（ミラーマーク除去処理手順）
次に、図２１を用いて、パケット制御装置１００が実行する、ミラーマーク除去処理手順の一例について説明する。ミラーマーク除去処理は、例えば、図３に示したＣＰＵ３０１と、メモリ３０２や記録媒体３０５などの記憶領域と、ネットワークＩ／Ｆ３０３とによって実現される。
【０１９８】
図２１は、ミラーマーク除去処理手順の一例を示すフローチャートである。図２１において、パケット制御装置１００は、図１９のミラーマーク読出処理を実行する（ステップＳ２１０１）。
【０１９９】
次に、パケット制御装置１００は、破棄パケットであるか否かを判定する（ステップＳ２１０２）。ここで、破棄パケットである場合（ステップＳ２１０２：Ｙｅｓ）、パケット制御装置１００は、ミラーマーク除去処理を終了する。一方で、破棄パケットではない場合（ステップＳ２１０２：Ｎｏ）、パケット制御装置１００は、ステップＳ２１０３の処理に移行する。
【０２００】
ステップＳ２１０３では、パケット制御装置１００は、パケットを送信する（ステップＳ２１０３）。そして、パケット制御装置１００は、ミラーマーク除去処理を終了する。
【０２０１】
以上説明したように、パケット制御装置１００によれば、パケット１０１を受け付け、第１情報を参照し、受け付けたパケット１０１がミラーリング対象であるか否かを判定することができる。パケット制御装置１００によれば、パケット１０１がミラーリング対象であると判定した場合、パケット１０１の所定領域の値に基づいて、パケット１０１がミラーリング済みであるか否かを判定することができる。パケット制御装置１００によれば、パケット１０１がミラーリング済みではないと判定した場合、パケット１０１を複製したパケット１０２を生成することができる。パケット制御装置１００によれば、パケット１０２の所定領域の値をミラーリング済みであることを示す値に設定して転送先に転送し、パケット１０１を宛先に送信することができる。これにより、パケット制御装置１００は、パケット１０２の転送先において、パケット１０２がミラーリング済みであると判定可能なようにすることができる。
【０２０２】
パケット制御装置１００によれば、パケット１０１がミラーリング済みであると判定した場合、パケット１０１の所定領域の値をミラーリング済みではないことを示す値に設定して宛先に送信することができる。これにより、パケット制御装置１００は、一度転送したパケット１０１と同じ内容のパケット１０３を受信しても複製せず、同じ内容のパケットを繰り返し複製して転送することを防止することができる。
【０２０３】
パケット制御装置１００によれば、パケット１０１と同じポートを通じてＶＭに対して出力されるパケットがミラーリング対象であるか否かを判定することができる。パケット制御装置１００によれば、パケット１０１がミラーリング対象であり、かつ、パケット１０１と同じポートを通じてＶＭに対して出力されるパケットがミラーリング対象である場合、パケット１０１がミラーリング済みであるか否かを判定することができる。これにより、パケット制御装置１００は、ミラーパケットにマーキングしなくてもループ状に同じ内容のパケットが流れ続けない場合、判定にかかる処理量の低減化を図ることができる。
【０２０４】
パケット制御装置１００によれば、第２情報を参照し、パケット１０１が通過するポートが、別ポートを通じて入力されるミラーパケットの転送先に通じるポートであるか否かを判定することができる。パケット制御装置１００によれば、パケット１０１がミラーリング対象であり、パケット１０１が通過するポートが別ポートを通じて入力されるミラーパケットの転送先に通じるポートである場合、パケット１０１がミラーリング済みか否かを判定することができる。これにより、パケット制御装置１００は、ミラーパケットにマーキングしなくてもループ状に同じ内容のパケットが流れ続けない場合、判定にかかる処理量の低減化を図ることができる。
【０２０５】
パケット制御装置１００によれば、パケット１０１の所定領域の値を反転して計算したチェックサムと、パケット１０１に含まれるチェックサムとが一致すれば、パケット１０１がミラーリング済みであると判定することができる。これにより、パケット制御装置１００は、パケット１０１の内容に関わらず、パケット１０１を復元可能にパケット１０１にミラーマークを付与することができる。
【０２０６】
パケット制御装置１００によれば、所定領域に、Ｅｔｈｅｒｎｅｔヘッダ領域を用いることができる。また、パケット制御装置１００によれば、所定領域に、ＩＰヘッダ領域を用いることができる。これにより、パケット制御装置１００は、パケット１０１にミラーマークを付与することができる。また、パケット制御装置１００は、所定領域にＩＰヘッダ領域を用いて、パケット１０１がミラーリング済みであるか否かを判定する際に、比較的計算量の少ないＩＰチェックサムを用いることができる。
【０２０７】
パケット制御装置１００によれば、パケット１０１の第１領域の値を反転して計算したチェックサムと、パケット１０１に含まれる第１チェックサムとが一致するか否かを判定することができる。パケット制御装置１００によれば、パケット１０１の第２領域の値を反転して計算したチェックサムと、パケット１０１に含まれる第２チェックサムとが一致するか否かを判定することができる。パケット制御装置１００によれば、それぞれを判定した結果に基づいて、パケット１０１がミラーリング済みであるか否かを判定することができる。これにより、パケット制御装置１００は、ミラーマークが付与されていないが第１領域と第２領域とのいずれかにエラーがある場合と、ミラーマークが付与されている場合とを区別可能にすることができる。
【０２０８】
なお、本実施の形態で説明したパケット制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明したパケット制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明したパケット制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２０９】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２１０】
（付記１）コンピュータに、
いずれかのポートを通じて入力または出力される第１パケットを受け付け、
ポートごとに、前記ポートを通じて入力または出力されるパケットがミラーリング対象であるか否かを表す情報を参照し、受け付けた前記第１パケットがミラーリング対象であるか否かを判定し、
前記第１パケットがミラーリング対象であると判定した場合、前記第１パケットの所定領域の値に基づいて、前記第１パケットがミラーリング済みであるか否かを判定し、
前記第１パケットがミラーリング済みではないと判定した場合、前記第１パケットを複製した第２パケットを生成し、前記第２パケットの所定領域の値をミラーリング済みであることを示す値に設定して転送先に転送し、前記第１パケットを宛先に送信し、
前記第１パケットがミラーリング済みであると判定した場合、前記第１パケットの所定領域の値をミラーリング済みではないことを示す値に設定して宛先に送信する、
処理を実行させることを特徴とするパケット制御プログラム。
【０２１１】
（付記２）前記コンピュータに、
前記いずれかのポートを通じて出力されるパケットがミラーリング対象であるか否かを判定する処理を実行させ、
前記第１パケットがミラーリング済みであるか否かを判定する処理は、前記第１パケットがミラーリング対象であると判定し、前記いずれかのポートを通じて出力されるパケットがミラーリング対象であると判定した場合、前記第１パケットがミラーリング済みであるか否かを判定する、ことを特徴とする付記１に記載のパケット制御プログラム。
【０２１２】
（付記３）前記コンピュータに、
ポートごとに、前記ポートが別ポートを通じて入力されるミラーパケットの転送先に通じるポートであるか否かを表す第２情報を参照し、前記いずれかのポートが別ポートを通じて入力されるミラーパケットの転送先に通じるポートであるか否かを判定する処理を実行させ、
前記第１パケットがミラーリング済みであるか否かを判定する処理は、前記第１パケットがミラーリング対象であると判定し、前記いずれかのポートが別ポートを通じて入力されるミラーパケットの転送先に通じるポートであると判定した場合、前記第１パケットがミラーリング済みであるか否かを判定する、ことを特徴とする付記１または２に記載のパケット制御プログラム。
【０２１３】
（付記４）前記第１パケットがミラーリング済みであるか否かを判定する処理は、前記第１パケットの所定領域の値を反転して計算したチェックサムと、前記第１パケットに含まれるチェックサムとが一致すれば、前記第１パケットがミラーリング済みであると判定する、ことを特徴とする付記１〜３のいずれか一つに記載のパケット制御プログラム。
【０２１４】
（付記５）前記第１パケットがミラーリング済みであるか否かを判定する処理は、前記第１パケットの第１領域の値を反転して計算したチェックサムと、前記第１パケットに含まれる第１チェックサムとが一致するか否かを判定した結果、および、前記第１パケットの第２領域の値を反転して計算したチェックサムと、前記第１パケットに含まれる第２チェックサムとが一致するか否かを判定した結果に基づいて、前記第１パケットがミラーリング済みであるか否かを判定する、ことを特徴とする付記１〜３のいずれか一つに記載のパケット制御プログラム。
【０２１５】
（付記６）前記所定領域は、Ｅｔｈｅｒｎｅｔヘッダ領域に含まれる、ことを特徴とする付記１〜４のいずれか一つに記載のパケット制御プログラム。
【０２１６】
（付記７）前記所定領域は、ＩＰヘッダ領域に含まれる、ことを特徴とする付記１〜４のいずれか一つに記載のパケット制御プログラム。
【０２１７】
（付記８）コンピュータが、
いずれかのポートを通じて入力または出力される第１パケットを受け付け、
ポートごとに、前記ポートを通じて入力または出力されるパケットがミラーリング対象であるか否かを表す情報を参照し、受け付けた前記第１パケットがミラーリング対象であるか否かを判定し、
前記第１パケットがミラーリング対象であると判定した場合、前記第１パケットの所定領域の値に基づいて、前記第１パケットがミラーリング済みであるか否かを判定し、
前記第１パケットがミラーリング済みではないと判定した場合、前記第１パケットを複製した第２パケットを生成し、前記第２パケットの所定領域の値をミラーリング済みであることを示す値に設定して転送先に転送し、前記第１パケットを宛先に送信し、
前記第１パケットがミラーリング済みであると判定した場合、前記第１パケットの所定領域の値をミラーリング済みではないことを示す値に設定して宛先に送信する、
処理を実行することを特徴とするパケット制御方法。
【０２１８】
（付記９）いずれかのポートを通じて入力または出力される第１パケットを受け付け、
ポートごとに、前記ポートを通じて入力または出力されるパケットがミラーリング対象であるか否かを表す情報を参照し、受け付けた前記第１パケットがミラーリング対象であるか否かを判定し、
前記第１パケットがミラーリング対象であると判定した場合、前記第１パケットの所定領域の値に基づいて、前記第１パケットがミラーリング済みであるか否かを判定し、
前記第１パケットがミラーリング済みではないと判定した場合、前記第１パケットを複製した第２パケットを生成し、前記第２パケットの所定領域の値をミラーリング済みであることを示す値に設定して転送先に転送し、前記第１パケットを宛先に送信し、
前記第１パケットがミラーリング済みであると判定した場合、前記第１パケットの所定領域の値をミラーリング済みではないことを示す値に設定して宛先に送信する、
制御部を有することを特徴とするパケット制御装置。
【符号の説明】
【０２１９】
１００  パケット制御装置
１０１〜１０４，９００，１１０１，１１０２，１２０１〜１２０３，１３０１〜１３０４，１４０１〜１４０４，１５０１，１６０１〜１６０４  パケット
２００  ポートミラーリングシステム
２０１  管理装置
２１０  ネットワーク
３００  バス
３０１  ＣＰＵ
３０２  メモリ
３０３  ネットワークＩ／Ｆ
３０４  記録媒体Ｉ／Ｆ
３０５  記録媒体
４００  ミラーポート管理テーブル
５００  ポート状態管理テーブル
６００  記憶部
６０１  取得部
６０２  判定部
６０３  変換部
６０４  出力部
７０１  ターゲットＶＭ
７０２  モニタＶＭ
７０３  管理者
７１０  ハードウェア
７１１  ハイパーバイザ
７１２  ＯＳ
７１３  仮想マネージャ
７１４  テーブル作成部
７１５  ポートミラーマネージャ
【図１】
2019080253.tif 000003
【図２】
2019080253.tif 000004
【図３】
2019080253.tif 000005
【図４】
2019080253.tif 000006
【図５】
2019080253.tif 000007
【図６】
2019080253.tif 000008
【図７】
2019080253.tif 000009
【図８】
2019080253.tif 000010
【図９】
2019080253.tif 000011
【図１０】
2019080253.tif 000012
【図１１】
2019080253.tif 000013
【図１２】
2019080253.tif 000014
【図１３】
2019080253.tif 000015
【図１４】
2019080253.tif 000016
【図１５】
2019080253.tif 000017
【図１６】
2019080253.tif 000018
【図１７】
2019080253.tif 000019
【図１８】
2019080253.tif 000020
【図１９】
2019080253.tif 000021
【図２０】
2019080253.tif 000022
【図２１】
2019080253.tif 000023