(57)【要約】  詐称アドレスを利用した不正アクセスや妨害に対するセキュリティ強度を向上させる。本発明によるコンピュータシステムは、コントローラと、コントローラによって設定されたフローエントリに適合する受信パケットに対し、当該フローエントリで規定された中継動作を行うスイッチと、スイッチに接続されたホスト端末を具備する。スイッチは、自身に設定されたフローエントリに適合しない受信パケットの送信元アドレス情報を、コントローラに通知する。コントローラは、正当なホスト端末のアドレス情報と送信元アドレス情報とが一致しない場合、受信パケットの送信元アドレスが詐称されていると判定する。
2012077603.tif 000002
【特許請求の範囲】
【請求項１】
コントローラと、
前記コントローラによって設定されたフローエントリに適合する受信パケットに対し、前記フローエントリで規定された中継動作を行うスイッチと、
前記スイッチに接続されたホスト端末と
を具備し、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの送信元アドレス情報を、前記コントローラに通知し、
前記コントローラは、正当なホスト端末のアドレス情報と前記送信元アドレス情報とが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コンピュータシステム。
【請求項２】
請求項１に記載のコンピュータシステムにおいて、
前記コントローラは、前記受信パケットの送信元アドレスが詐称されていると判定した場合、前記送信元アドレス情報に示されたアドレスを送信元とするパケットを破棄することを規定したフローエントリを前記スイッチに設定する
コンピュータシステム。
【請求項３】
請求項１又は２に記載のコンピュータシステムにおいて、
前記送信元アドレス情報は前記受信パケットの送信元ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスを含み、
前記正当なホスト端末が利用するインタフェースに割り当てられたＭＡＣアドレスと、前記送信元ＭＡＣアドレスが一致しない場合、前記コントローラは、前記受信パケットの送信元アドレスが詐称されていると判定する
コンピュータシステム。
【請求項４】
請求項１から３のいずれか１項に記載のコンピュータシステムにおいて、
前記送信元アドレス情報は前記受信パケットの送信元ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを含み、
前記正当なホスト端末のＩＰアドレスと前記送信元ＩＰアドレスが一致しない場合、前記コントローラは、前記受信パケットの送信元アドレスが詐称されていると判定する
コンピュータシステム。
【請求項５】
請求項１から４のいずれか１項に記載のコンピュータシステムにおいて、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知し、
前記コントローラは、前記正当なホスト端末が利用するインタフェースに接続されたスイッチのポート名と、前記受信ポート名とが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コンピュータシステム。
【請求項６】
請求項１から５のいずれか１項に記載のコンピュータシステムにおいて、
前記コントローラは、正当な仮想サーバのＩＰアドレスとＤＰＩＤ（Ｄａｔａ  Ｐａｔｈ  ＩＤ）とが対応付けられて記録された仮想サーバデータベースを備え、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットを、自身のＤＰＩＤとともに、前記コントローラに通知し、
前記コントローラは、前記スイッチから通知されたＤＰＩＤを検索鍵として前記仮想サーバデータベースからＩＰアドレスを取得し、前記ＩＰアドレスを利用してアクセスした仮想サーバから、前記仮想サーバに搭載される仮想マシンが利用するインタフェースに割り当てられたＭＡＣアドレスを取得し、前記取得したＭＡＣアドレスと前記送信元ＭＡＣアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コンピュータシステム。
【請求項７】
請求項６に記載のコンピュータシステムにおいて、
前記コントローラは、正当な仮想マシンの仮想マシン名と前記正当な仮想マシンが利用するインタフェースに割り当てられたアドレスとが対応付けられたＶＭデータベースを保持し、
前記コントローラは、前記送信元アドレス情報を検索鍵として前記ＶＭデータベースから仮想マシン名を抽出し、前記ＭＡＣアドレスを取得する対象となる仮想マシンを特定する
コンピュータシステム。
【請求項８】
請求項６又は７に記載のコンピュータシステムにおいて、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知し、
前記コントローラは、前記スイッチから通知されたＤＰＩＤを検索鍵として前記仮想サーバデータベースからＩＰアドレスを取得し、前記ＩＰアドレスを利用してアクセスした仮想サーバから、前記仮想マシンが利用するインタフェースが接続するスイッチのポート名を取得し、前記取得したポート名と前記受信ポート名が一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コンピュータシステム。
【請求項９】
請求項１から８のいずれか１項に記載のコンピュータシステムにおいて、
前記コントローラにおいて、前記受信パケットの送信元アドレスが詐称されていると判定された場合、前記送信元アドレス情報を視認可能に出力する出力装置を更に具備する
コンピュータシステム。
【請求項１０】
請求項９に記載のコンピュータシステムにおいて、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知し、
前記コントローラにおいて、前記受信パケットの送信元アドレスが詐称されていると判定された場合、前記出力装置は、前記受信ポート名を視認可能に出力する
コンピュータシステム。
【請求項１１】
フローエントリをスイッチに設定するフロー制御部と、
前記スイッチは、設定されたフローエントリに適合する受信パケットに対し、前記フローエントリで規定された中継動作を行い、自身に設定された前記フローエントリに適合しない受信パケットの送信元アドレス情報を前記フロー制御部に通知し、
前記フロー制御部に通知された送信元アドレス情報と、正当なホスト端末のアドレス情報とが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するアドレス詐称検出部と
を具備する
コントローラ。
【請求項１２】
請求項１１に記載のコントローラにおいて、
前記アドレス詐称検出部が、前記受信パケットの送信元アドレスが詐称されていると判定した場合、前記フロー制御部は、前記送信元アドレス情報に示されたアドレスを送信元とするパケットを破棄することを規定したフローエントリを前記スイッチに設定する
コントローラ。
【請求項１３】
請求項１１又は１２に記載のコントローラにおいて、
前記送信元アドレス情報は前記受信パケットの送信元ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスを含み、
前記アドレス詐称検出部は、前記正当なホスト端末が利用するインタフェースに割り当てられたＭＡＣアドレスと、前記送信元ＭＡＣアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コントローラ。
【請求項１４】
請求項１１から１３のいずれか１項に記載のコントローラにおいて、
前記送信元アドレス情報は前記受信パケットの送信元ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを含み、
前記アドレス詐称検出部は、前記正当なホスト端末のＩＰアドレスと前記送信元ＩＰアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コントローラ。
【請求項１５】
請求項１１から１４のいずれか１項に記載のコントローラにおいて、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記フロー制御部に通知し、
前記正当なホスト端末が利用するインタフェースに接続されたスイッチのポート名と、前記フロー制御部に通知された受信ポート名とが一致しない場合、前記アドレス詐称検出部は、前記受信パケットの送信元アドレスが詐称されていると判定する
コントローラ。
【請求項１６】
請求項１１から１５のいずれか１項に記載のコントローラにおいて、
正当な仮想サーバのＩＰアドレスとＤＰＩＤ（Ｄａｔａ  Ｐａｔｈ  ＩＤ）とが対応付けられて記録された仮想サーバデータベースを更に具備し、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットを、自身のＤＰＩＤとともに、前記フロー制御部に通知し、
前記アドレス詐称検出部は、前記フロー制御部に通知されたＤＰＩＤを検索鍵として前記仮想サーバデータベースからＩＰアドレスを取得し、前記ＩＰアドレスを利用してアクセスした仮想サーバから、前記仮想サーバに搭載される仮想マシンが利用するインタフェースに割り当てられたＭＡＣアドレスを取得し、前記取得したＭＡＣアドレスと前記送信元ＭＡＣアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コントローラ。
【請求項１７】
請求項１６に記載のコントローラにおいて、
正当な仮想マシンの仮想マシン名と前記正当な仮想マシンが利用するインタフェースに割り当てられたアドレスとが対応付けられたＶＭデータベースを更に具備し、
前記アドレス詐称検出部は、前記送信元アドレス情報を検索鍵として前記ＶＭデータベースから仮想マシン名を抽出することで、前記ＭＡＣアドレスを取得する対象となる仮想マシンを特定する
コントローラ。
【請求項１８】
請求項１６又は１７に記載のコントローラにおいて、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知し、
前記アドレス詐称検出部は、前記スイッチから通知されたＤＰＩＤを検索鍵として前記仮想サーバデータベースからＩＰアドレスを取得し、前記ＩＰアドレスを利用してアクセスした仮想サーバから、前記仮想マシンが利用するインタフェースが接続するスイッチのポート名を取得し、前記取得したポート名と前記受信ポート名が一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コントローラ。
【請求項１９】
コンピュータによって実行されることで請求項１１から１８のいずれか１項に記載のコントローラを実現するネットワーク監視プログラム。
【請求項２０】
コントローラによって設定されたフローエントリに適合する受信パケットに対し、前記フローエントリで規定された中継動作を行うスイッチを備えるコンピュータシステムにおいて実行されるネットワーク監視方法において、
前記スイッチが、自身に設定されたフローエントリに適合しない受信パケットの送信元アドレス情報を、前記コントローラに通知するステップと、
前記コントローラが、正当なホスト端末のアドレス情報と前記送信元アドレス情報とが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップと
を具備する
ネットワーク監視方法。
【請求項２１】
請求項２０に記載のネットワーク監視方法において、
前記コントローラは、前記受信パケットの送信元アドレスが詐称されていると判定した場合、前記送信元アドレス情報に示されたアドレスを送信元とするパケットを破棄することを規定したフローエントリを前記スイッチに設定するステップを更に具備する
ネットワーク監視方法。
【請求項２２】
請求項２０又は２１に記載のネットワーク監視方法において、
前記送信元アドレス情報は前記受信パケットの送信元ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスを含み、
前記コントローラが、前記正当なホスト端末が利用するインタフェースに割り当てられたＭＡＣアドレスと、前記送信元ＭＡＣアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップを備える
ネットワーク監視方法。
【請求項２３】
請求項２０から２１のいずれか１項に記載のネットワーク監視方法において、
前記送信元アドレス情報は前記受信パケットの送信元ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスを含み、
前記コントローラが、前記正当なホスト端末のＩＰアドレスと前記送信元ＩＰアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップを備える
ネットワーク監視方法。
【請求項２４】
請求項２０から２３のいずれか１項に記載のネットワーク監視方法において、
前記スイッチが、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知するステップと、
前記コントローラが、前記正当なホスト端末が利用するインタフェースに接続されたスイッチのポート名と、前記受信ポート名とが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップと
を更に具備する
ネットワーク監視方法。
【請求項２５】
請求項２０から２４のいずれか１項に記載のネットワーク監視方法において、
前記コントローラは、正当な仮想サーバのＩＰアドレスとＤＰＩＤ（Ｄａｔａ  Ｐａｔｈ  ＩＤ）とが対応付けられて記録された仮想サーバデータベースを備え、
前記スイッチが、自身に設定されたフローエントリに適合しない受信パケットを、自身のＤＰＩＤとともに、前記コントローラに通知するステップと、
前記コントローラが、前記スイッチから通知されたＤＰＩＤを検索鍵として前記仮想サーバデータベースからＩＰアドレスを取得するステップと、
前記コントローラが、前記ＩＰアドレスを利用してアクセスした仮想サーバから、前記仮想サーバに搭載される仮想マシンが利用するインタフェースに割り当てられたＭＡＣアドレスを取得するステップと、
前記コントローラが、前記取得したＭＡＣアドレスと前記送信元ＭＡＣアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップと
を具備する
ネットワーク監視方法。
【請求項２６】
請求項２５に記載のネットワーク監視方法において、
前記コントローラは、正当な仮想マシンの仮想マシン名と前記正当な仮想マシンが利用するインタフェースに割り当てられたアドレスとが対応付けられたＶＭデータベースを保持し、
前記コントローラが、前記送信元アドレス情報を検索鍵として前記ＶＭデータベースから仮想マシン名を抽出するステップと、
前記コントローラが、前記ＭＡＣアドレスを取得する対象となる仮想マシンを特定するステップと
を更に具備する
ネットワーク監視方法。
【請求項２７】
請求項２５又は２６に記載のネットワーク監視方法において、
前記スイッチが、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知するステップと、
前記コントローラが、前記スイッチから通知されたＤＰＩＤを検索鍵として前記仮想サーバデータベースからＩＰアドレスを取得するステップと、
前記コントローラが、前記ＩＰアドレスを利用してアクセスした仮想サーバから、前記仮想マシンが利用するインタフェースが接続するスイッチのポート名を取得するステップと、
前記コントローラが、前記取得したポート名と前記受信ポート名が一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップと
を具備する
ネットワーク監視方法。
【請求項２８】
請求項２０から２７のいずれか１項に記載のネットワーク監視方法において、
前記コントローラにおいて、前記受信パケットの送信元アドレスが詐称されていると判定された場合、前記送信元アドレス情報を視認可能に出力するステップを更に具備する
ネットワーク監視方法。
【請求項２９】
請求項２８に記載のネットワーク監視方法において、
前記スイッチが、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知するステップと、
前記コントローラにおいて、前記受信パケットの送信元アドレスが詐称されていると判定された場合、前記受信ポート名を視認可能に出力するステップとを更に具備する
ネットワーク監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム、コントローラ、監視方法、及びネットワーク監視プログラムに関し、特に、オープンフロー（オープンフロー）技術を利用したコンピュータシステム、及びアドレス詐称パケットを遮断するためのネットワーク監視方法に関する。
【背景技術】
【０００２】
レイヤ２ネットワークでは、ネットワークを構成するネットワーク機器（計算機や仮想マシンを含む）を一意に識別するために、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスが利用される。しかし、ＭＡＣアドレスは、簡単に詐称できてしまうという問題がある。一方、計算機の物理的な移動や、仮想マシンの移動に伴って、レイヤ２ネットワークを流れるパケットの経路を変更する場合、Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）が有効であることが広く知られている（非特許文献１参照）。Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰは、自身のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスをターゲットＩＰアドレスに設定したＡＲＰ要求パケットであり、２つの効果をもたらす。１つは、自分以外が同じＩＰアドレスを利用していないかどうかを調べる効果である。ＡＲＰ要求パケットに設定されたターゲットＩＰアドレスを利用する他のネットワーク機器がＡＲＰ  Ｒｅｐｌｙを応答した場合、当該ＩＰアドレスが重複していると判断できる。もう１つの効果は、レイヤ２ネットワークを構成するスイッチが、Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰパケットの送信元ＭＡＣアドレスを参照して、自身のＡＲＰテーブルやＭＡＣテーブルを更新することで、計算機や仮想計算機の移動に追随して、パケットの転送経路を変更できる点にある。ところが、この特性を利用して、ネットワークに障害を発生させることが可能である。例えば、送信元ＭＡＣアドレスやターゲットＩＰアドレスを詐称したＧｒａｔｕｉｔｏｕｓ  ＡＲＰパケットが不正な第３者によって送信されることで、レイヤ２ネットワークを構成するスイッチのＡＲＰテーブルやＭＡＣテーブルが書き換えられる。これにより、正当な利用者のＴＣＰ／ＩＰ通信は容易に妨害されてしまう。更に、正当な利用者に届けられるべきパケットが、不正者に届くように仕向けられるため、盗聴することもできてしまう。【０００３】
このようなＡＲＰパケットを利用した不正アクセスや妨害を監視及び防止する技術が、例えば、特開２００５−２１０４５１に記載されている（特許文献１参照）。特許文献１に記載のシステムは、ＡＲＰ要求パケットを監視する監視ホストと、予めネットワーク内の正当なホストのＩＰアドレスや物理アドレスが登録されたデータベースを備える。監視ホストは、データベースに登録されていないＩＰアドレス又は物理アドレスのＡＲＰ要求パケットを検知すると、ＡＲＰパケットの要求先ノードに対して自身を要求元としてＡＲＰ要求パケットを送信して当該ノードのＡＲＰテーブルを更新する。これにより、不正アクセスに対する返信パケットは、不正な第３者ではなく監視サーバへ転送されることとなる。【０００４】
このように、特許文献１に記載のシステムでは、不正なＡＲＰパケットを検出した監視サーバによってノードにおけるパケットの転送先が制御されることで、ネットワークへの不正アクセスを防ぐことが可能となる。【０００５】
一方、コンピュータネットワークにおいて、各スイッチの転送動作等を外部のコントローラによって一元的に制御する技術（オープンフロー）が、ＯｐｅｎＦｌｏｗ  Ｃｏｎｓｏｒｔｉｕｍによって提案されている（非特許文献２参照）。この技術に対応したネットワークスイッチ（以下、オープンフロースイッチ（ＯＦＳ）と称す）は、プロトコル種別やポート番号等の詳細な情報をフローテーブルに保持し、フローの制御と統計情報の採取を行うことができる。ネットワーク内のＯＦＳのフローテーブルは、オープンフローコントローラ（ＯＦＣ）によって一元的に設定及び管理される。【０００６】
図１を参照して、オープンフロープロトコルを利用したコンピュータシステムの構成及び動作を説明する。図１を参照して、本発明の関連技術によるコンピュータシステムは、オープンフローコントローラ１００（以下、ＯＦＣ１００と称す）、複数のオープンスイッチ１０２−１〜１０２−ｎ（以下、ＯＦＳ１０２−１〜１０２−ｎと称す）を有するスイッチ群２００、複数のホストコンピュータ１０３−１〜１０３−ｉ（以下、ホスト１０３−１〜１０３−ｉと称す）を有するホスト群３００を具備する。ただし、ｎ、ｉは２以上の自然数である。以下、ＯＦＳ１０２−１〜１０２−ｎを区別せずに総称する場合はＯＦＳ１０２と称し、ホスト１０３−１〜１０３−ｉを区別せずに総称する場合はホスト１０３と称して説明する。【０００７】
ＯＦＣ１００は、ホスト１０３間の通信経路の設定や、経路上におけるＯＦＳ１０２に対する転送動作（中継動作）等の設定を行う。この際、ＯＦＣ１００は、ＯＦＳ１０２が保持するフローテーブルに、フロー（パケットデータ）を特定するルールと、当該フローに対する動作を規定するアクションとを対応付けたフローエントリを設定する。通信経路上のＯＦＳ１０２は、ＯＦＣ１００によって設定されたフローエントリに従って受信パケットデータの転送先を決定し、転送処理を行う。これにより、ホスト１０３は、ＯＦＣ１００によって設定された通信経路を利用して他のホスト１０３との間でパケットデータの送受信が可能となる。すなわち、オープンフローを利用したコンピュータシステムでは、通信経路を設定するＯＦＣ１００と、転送処理を行うＯＦＳ１０２とが分離されているため、システム全体の通信を一元的に制御及び管理することが可能となる。【０００８】
図１を参照して、ホスト１０３−１からホスト１０３−ｉへパケット送信を行う場合、ＯＦＳ１０２−１はホスト１０３−１から受け取ったパケット内にある送信先情報（ヘッダ情報：例えば宛先ＭＡＣアドレスや宛先ＩＰアドレス）を参照し、ＯＦＳ１０２−１内部で保持しているフローテーブルから当該ヘッダ情報に適合するエントリを探す。フローテーブルに設定されるエントリの内容については、例えば非特許文献２で規定されている。【０００９】
ＯＦＳ１０２−１は、受信パケットデータについてのエントリがフローテーブルに記載されていない場合、当該パケットデータ（以下、ファーストパケットと称す）、又はファーストパケットのヘッダ情報をＯＦＣ１００に転送する。ＯＦＳ１０２−１からファーストパケットを受け取ったＯＦＣ１００はパケット内に含まれている送信元ホストや送信先ホストという情報を元に経路４００を決定する。【００１０】
ＯＦＣ１００は、経路４００上の全てのＯＦＳ１０２に対して、パケットの転送先を規定するフローエントリの設定を指示する（フローテーブル更新指示を発行）。経路４００上のＯＦＳ１０２は、フローテーブル更新指示に応じて、自身で管理しているフローテーブルを更新する。この後ＯＦＳ１０２は、更新したフローテーブルに従い、パケットの転送を開始することで、ＯＦＣ１００が決定した経路４００を経由して、宛先のホスト１０３−ｉへパケットが到達するようになる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００５−２１０４５１
【非特許文献】
【００１２】
【非特許文献１】ＲＦＣ  ５２２７  （Ｕｐｄａｔｅｓ：  ８２６）  ＩＰｖ４  Ａｄｄｒｅｓｓ  Ｃｏｎｆｌｉｃｔ  Ｄｅｔｅｃｔｉｏｎ
【非特許文献２】ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  Ｖｅｒｓｉｏｎ  １．０．０  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０１）  Ｄｅｃｅｍｂｅｒ  ３１，  ２００９
【発明の概要】
【００１３】
上述のように、スイッチ毎のＡＲＰテーブルを利用して転送先が決定されるネットワークにおいては、特許文献１に例示されるように、偽証ＩＰアドレスを利用した不正アクセスを監視する技術が提案されている。しかし、オープンフロープロトコル環境のネットワークシステムにおいては、このような不正アクセスの監視技術は確立されていない。
【００１４】
又、特許文献１に記載の技術を利用した場合、スイッチがＡＲＰ要求に対して応答してから、監視サーバによってＡＲＰテーブルが書き換えられるまでの間、不正にアクセスされてしまう恐れがある。更に、スイッチにおけるＡＲＰテーブルの更新よりも先に監視サーバによるＡＲＰテーブルの更新が行われた場合、不正アクセスを防ぐことができないという問題がある。
【００１５】
以上のことから、本発明による目的は、オープンフロープロトコル環境のネットワークに対する不正アクセスの監視を可能とすることにある。
【００１６】
又、本発明による他の目的は、オープンフロープロトコル環境のネットワークに対する通信妨害を遮断することにある。
【００１７】
更に、本発明による他の目的は、詐称アドレスを利用した不正アクセスや妨害に対するセキュリティ強度を向上させることにある。
【００１８】
本発明によるコンピュータシステムは、コントローラと、コントローラによって設定されたフローエントリに適合する受信パケットに対し、当該フローエントリで規定された中継動作を行うスイッチと、スイッチに接続されたホスト端末を具備する。スイッチは、自身に設定されたフローエントリに適合しない受信パケットの送信元アドレス情報を、コントローラに通知する。コントローラは、正当なホスト端末のアドレス情報と送信元アドレス情報とが一致しない場合、受信パケットの送信元アドレスが詐称されていると判定する。
【００１９】
又、本発明によるコントローラは、フロー制御部とアドレス詐称検出部とを具備する。フロー制御部は、フローエントリをスイッチに設定する。スイッチは、設定されたフローエントリに適合する受信パケットに対し、フローエントリで規定された中継動作を行い、自身に設定されたフローエントリに適合しない受信パケットの送信元アドレス情報をフロー制御部に通知する。アドレス詐称検出部は、フロー制御部に通知された送信元アドレス情報と、正当なホスト端末のアドレス情報とが一致しない場合、受信パケットの送信元アドレスが詐称されていると判定する。
【００２０】
本発明によるコントローラの機能は、記憶装置に記憶され、コンピュータによって実行されるプログラムによって実現されることが好ましい。
【００２１】
又、本発明によるネットワーク監視方法は、コントローラによって設定されたフローエントリに適合する受信パケットに対し、当該フローエントリで規定された中継動作を行うスイッチを備えるコンピュータシステムにおいて実行されるネットワーク監視方法である。本発明によるネットワーク監視方法は、スイッチが、自身に設定されたフローエントリに適合しない受信パケットの送信元アドレス情報を、コントローラに通知するステップと、コントローラが、正当なホスト端末のアドレス情報と送信元アドレス情報とが一致しない場合、受信パケットの送信元アドレスが詐称されていると判定するステップとを具備する。
【００２２】
本発明によれば、オープンフロープロトコル環境のネットワークに対する不正アクセスの監視が可能となる。
【００２３】
又、オープンフロープロトコル環境のネットワークに対する通信妨害を遮断することが可能となる。
【００２４】
更に、詐称アドレスを利用した不正アクセスや妨害に対するセキュリティ強度を向上させることができる。
【図面の簡単な説明】
【００２５】
上記発明の目的、効果、特徴は、添付される図面と連携して実施の形態の記述から、より明らかになる。
【図１】図１は、オープンフロープロトコルを利用したコンピュータシステムの構成の一例を示す図である。
【図２】図２は、本発明によるコンピュータシステムの第１の実施の形態における構成を示す図である。
【図３】図３は、第１の実施の形態におけるアドレス詐称検証で用いられる仮想サーバデータの構造の一例を示す図である。
【図４】図４は、第１及び第２の実施の形態におけるアドレス詐称検証で用いられる仮想マシンデータ（ＶＭデータ）の構造の一例を示す図である。
【図５Ａ】図５Ａは、第１の実施の形態におけるアドレス詐称検証で用いられる検証情報の構造の一例を示す図である。
【図５Ｂ】図５Ｂは、第１の実施の形態におけるアドレス詐称検証で用いられる検証情報の構造の他の一例を示す図である。
【図６】図６は、第１及び第２の実施の形態におけるアドレス詐称検証でオープンフローコントローラがホストＯＳから取得する送信元情報の構造の一例を示す図である。
【図７】図７は、第１の実施の形態におけるネットワーク監視動作の一例を示すシーケンス図である。
【図８】図８は、第１の実施の形態におけるコンピュータシステムの構成及び動作を説明するための具体的な一例を示す図である。
【図９】図９は、本発明によるコンピュータシステムの第２の実施の形態における構成を示す図である。
【図１０】図１０は、第２の実施の形態におけるアドレス詐称検証で用いられる仮想サーバデータの構造の一例を示す図である。
【図１１】図１１は、第２の実施の形態におけるネットワーク監視動作の一例を示すシーケンス図である。
【図１２】図１２は、第２の実施の形態におけるコンピュータシステムの構成及び動作を説明するための具体的な一例を示す図である。
【図１３】図１３は、本発明によるコンピュータシステムの第３の実施の形態における構成を示す図である。
【図１４】図１４は、第３の実施の形態におけるアドレス詐称検証で用いられる機器データの構造の一例を示す図である。
【図１５】図１５は、第３の実施の形態におけるネットワーク監視動作の一例を示すシーケンス図である。
【図１６】図１６は、第３の実施の形態におけるコンピュータシステムの構成及び動作を説明するための具体的な一例を示す図である。
【発明を実施するための形態】
【００２６】
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。
【００２７】
１．第１の実施の形態
（コンピュータシステムの構成）
本発明によるコンピュータシステムは、図１に示すシステムと同様にオープンフロー技術を利用して通信経路の構築及びパケットデータの転送制御を行う。第１の実施の形態におけるコンピュータシステムでは、仮想サーバ３上で動作するオープンフロー仮想スイッチ３３からオープンフローコントローラ２に送信されるファーストパケットに基づいて、ＡＲＰ要求パケットやＩＰパケットのアドレス詐称の有無を監視する。
【００２８】
図２は、本発明によるコンピュータシステムの第１の実施の形態における構成を示す図である。図２を参照して、本発明によるコンピュータシステムの第１の実施の形態における構成を説明する。
【００２９】
図２を参照して、第１の実施の形態におけるコンピュータシステムは、入力装置１、オープンフローコントローラ２（ＯｐｅｎＦｌｏｗコントローラ：以下、ＯＦＣ２と称す）、仮想サーバ３、オープンフロースイッチ（Ｏｐｅｎ  Ｆｌｏｗ  Ｓｗｉｔｃｈ：以下、ＯＦＳ４と称す）、出力装置５を具備する。
【００３０】
第１の実施の形態における入力装置１は、アクセス詐称の検証に用いる仮想サーバデータ１１及び仮想マシンデータ１２（ＶＭデータ１２）が記録された記憶装置を具備する。仮想サーバデータ１１は、ＯＦＣ２が仮想サーバ３にアクセスするために必要なデータである。
【００３１】
図３は、第１の実施の形態におけるアドレス詐称検証で用いられる仮想サーバデータ１１の構造の一例を示す図である。図３を参照して、仮想サーバデータ１１は、システムに接続が許可された正当な仮想サーバ３に割り当てられたＩＰアドレス１１１と、当該仮想サーバ３の物理ネットワークインタフェースが接続するオープンフロー仮想スイッチ３３のＤＰＩＤ１１２（Ｄａｔａ  Ｐａｔｈ  ＩＤ）と、当該仮想サーバ３にアクセスするためのログイン情報１１３を含む。ＩＰアドレス１１１、ＤＰＩＤ１１２、ログイン情報１１３は、それぞれ仮想サーバ３毎に対応付けられて仮想サーバデータ１１として入力装置１に記録される。ここで、ＤＰＩＤ１１２は、ＯＦＳ４やオープンフロー仮想スイッチ３３（以下、ＯＦＶＳ３３と称す）を一意に識別するためにそれぞれに割り当てられた番号である。又、ログイン情報１１３は、仮想サーバ３へアクセス（ログイン）するためのＩＤやパスワード情報を含む。
【００３２】
図４は、第１の実施の形態におけるアドレス詐称検証で用いられるＶＭデータ１２の構造の一例を示す図である。ＶＭデータ１２は、オープンフローコントローラ２によって管理されるネットワーク上に存在する仮想マシン３１を特定するための情報である。図４を参照して、ＶＭデータ１２は、仮想マシン３１を一意に識別するためのＶＭ名１２０と、当該仮想マシン３１が持つネットワークインタフェースを一意に特定するためのインタフェース情報１２１を含む。ＶＭ名１２０とインタフェース情報１２１は、仮想マシン３１毎に対応付けられてＶＭデータ１２として入力装置１に記録される。ここで、ＶＭ名１２０は、例えば、仮想マシン３１に設定されたＵＵＩＤ（Ｕｎｉｖｅｒｓａｌ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）が好適である。又、インタフェース情報１２１は、仮想マシン３１の物理ネットワークインタフェースに割り当てられたＭＡＣアドレス１２２やＩＰアドレス１２３を含む。
【００３３】
入力装置１に記録される仮想サーバデータ１１及びＶＭデータ１２は、予めユーザにより設定又は更新されていても良いし、ＯＦＣ２によって取得したデータによって設定又は更新されても良い。
【００３４】
ＯＦＣ２は、オープンフロー技術により、システム内におけるパケット転送に係る通信経路の構築及びパケット転送処理を制御する。ここで、オープンフロー技術とは、ＯＦＣ２が、ルーティングポリシー（フローエントリ：フロー＋アクション）に従い、マルチレイヤ及びフロー単位の経路情報を通信経路上のＯＦＳ４やＯＦＶＳ３３に設定し、経路制御やノード制御を行う技術を示す（詳細は、非特許文献１を参照）。これにより、経路制御機能がルータやスイッチから分離され、コントローラによる集中制御によって最適なルーティング、トラフィック管理が可能となる。オープンフロー技術が適用されるＯＦＳ４やＯＦＶＳ３３は、従来のルータやスイッチのようにパケットやフレームの単位ではなく、ＥＮＤ２ＥＮＤのフローとして通信を取り扱う。
【００３５】
図２を参照して、第１の実施の形態におけるＯＦＣ２の構成の詳細を説明する。ＯＦＣ２は、ＣＰＵ及び記憶装置を備えるコンピュータによって実現されることが好適である。ＯＦＣ２では、図示しないＣＰＵが記憶装置に格納されたプログラムを実行することで、図２に示すアドレス詐称検出部２１及びフロー制御部２２の各機能が実現される。アドレス詐称検出部２１は、入力装置１から供給された仮想サーバデータ１１及びＶＭデータ１２のそれぞれを、検索し易い形式に変換し、仮想サーバデータベース２３及びＶＭデータベース２４としてアドレス詐称検証用データベース２０に記録する。
【００３６】
フロー制御部２２は、オープンフロープロトコルに従ったスイッチ（ここではＯＦＳ４、ＯＦＶＳ３３）に対してフローエントリ（ルール＋アクション）の設定又は削除を行う。これにより、ＯＦＳ４やＯＦＶＳ３３は、受信パケットのヘッダ情報に応じたルールに対応するアクション（例えばパケットデータの中継や破棄）を実行する。
【００３７】
フローエントリに設定されるルールには、例えば、ＴＣＰ／ＩＰのパケットデータにおけるヘッダ情報に含まれる、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）参照モデルのレイヤ１からレイヤ４のアドレスや識別子の組み合わせが規定される。例えば、レイヤ１の物理ポート、レイヤ２のＭＡＣアドレス、レイヤ３のＩＰアドレス、レイヤ４のポート番号、ＶＬＡＮタグ（ＶＬＡＮ  ｉｄ）のそれぞれの組み合わせがルールとして設定される。尚、ＶＬＡＮタグには、優先順位（ＶＬＡＮ  Ｐｒｉｏｒｉｔｙ）が付与されていても良い。
【００３８】
ここで、フロー制御部２２によってルールに設定されるポート番号等の識別子やアドレス等は、所定の範囲で設定されても構わない。又、宛先や送信元のアドレス等を区別してルールとして設定されルことが好ましい。例えば、ＭＡＣ宛先アドレスの範囲や、接続先のアプリケーションを特定する宛先ポート番号の範囲、接続元のアプリケーションを特定する送信元ポート番号の範囲がルールとして設定される。更に、データ転送プロトコルを特定する識別子をルールとして設定してもよい。
【００３９】
フローエントリに設定されるアクションには、例えばＴＣＰ／ＩＰのパケットデータを処理する方法が規定される。例えば、受信パケットデータを中継するか否かを示す情報や、中継する場合はその送信先が設定される。又、アクションとして、パケットデータの複製や、破棄することを指示する情報が設定されてもよい。
【００４０】
フロー制御部２２は、ＯＦＳ４やＯＦＶＳ３３からファーストパケットの通知を受けるとアドレス詐称検出部２１にパケットの転送可否を問い合わせ、問い合わせ結果に応じてフローエントリの設定又はファーストパケットの破棄を行う。
【００４１】
詳細には、先ず、フロー制御部２２は、ＯＦＳ４やＯＦＶＳ３３からファーストパケットが通知（以下、ＰａｃｋｅｔＩＮと称す）によって、図５Ａ又は図５Ｂに示す検証情報６取得する。検証情報６は、ファーストパケットの送信元アドレス情報６０、通知元スイッチの識別子（例えばＤＰＩＤ６３）、通知元スイッチのポート名（受信ポート番号６４）を含む。図５Ａを参照して、通知されたファーストパケットがＧｒａｔｕｉｔｏｕｓ  ＡＲＰパケットの場合、送信元アドレス情報６０には、送信元ＭＡＣアドレス６１やターゲットＩＰアドレス６２が含まれる。あるいは、図５Ｂを参照して、通知されたファーストパケットがＩＰパケットの場合、送信元アドレス情報６０には、送信元ＭＡＣアドレス６１や送信元ＩＰアドレス６５が含まれる。
【００４２】
フロー制御部２２は、検証情報６をアドレス詐称検出部２１に送信し、パケットの転送可否を問い合わせる。この問い合わせの結果、パケット転送可能と判断された場合、フロー制御部２２は、ファーストパケットのヘッダ情報から通信経路を算出する。そしてフロー制御部２２は、当該ヘッダ情報に一致するパケットを当該通信経路に転送するためのフローエントリを、当該通信経路上のＯＦＳ４やＯＦＶＳ３３に設定する。一方、アドレス詐称検出部２１においてパケット転送不可と判断された場合、問い合わせ対象のファーストパケットを廃棄する。この際、フロー制御部２２は、当該ファーストパケットのヘッダ情報に一致するパケットを廃棄するためのフローエントリを、ファーストパケットの通知元のスイッチに設定することが好ましい。
【００４３】
又、フロー制御部２２は、ＯＦＳ４やＯＦＶＳ３３から通知されたファーストパケットを解析し、当該パケットがＡＲＰパケットである場合のみ、上述のアドレス詐称検出部２１への問い合わせを行い、ＡＲＰパケット以外のＰａｃｋｅｔＩＮに対する問い合わせを省略してもよい。この場合、ＯＦＣ２はＡＲＰのみを監視することになるが、アドレス詐称検出部２１への問い合わせ回数やアドレス詐称検出処理のための負荷は軽減される。
【００４４】
尚、フロー制御部２２における通信経路の設定、フローエントリの設定及び管理は、非特許文献１に記載のオープンフロープロトコルに準拠して行われるため、ここでの詳細な説明は省略する。
【００４５】
アドレス詐称検出部２１は、フロー制御部２２から送信される検証情報６と検証用データベース２０に記録された情報を用いてアドレス詐称検証を行う。
【００４６】
詳細には、アドレス詐称検出部２１は、フロー制御部２２から非同期に発生するイベントと共に検証情報６を取得する。アドレス詐称検出部２１は、受給した送信元アドレス情報６０（ＭＡＣアドレスとＩＰアドレスの組み合わせ）を検索鍵として、ＶＭデータベース２４を検索し、当該検索鍵に一致するインタフェース情報１２１に対応するＶＭ名１２０（仮想マシン３１のＵＵＩＤ）を得る（ＭＡＣアドレス・ＩＰアドレス検証）。これにより、アドレス詐称検出部２１は、受給した送信元アドレス情報６０に対応する仮想マシン３１を特定する。アドレス詐称検出部２１は、ＶＭデータベース２４の検索の結果、受給した送信元アドレス情報６０に対応する仮想マシン３１を特定できない場合、すなわち送信元ＭＡＣアドレス６１やターゲットＩＰアドレス６２（送信元ＩＰアドレス６５）の組み合わせと一致するインタフェース情報（ＭＡＣアドレス１２２、ＩＰアドレス１２３）が、ＶＭデータベース２４にない場合、アドレス詐称ありと判定する。アドレス詐称有りと判定したアドレス詐称検出部２１は、フロー制御部２２に対し、アドレス詐称と判定したファーストパケットのヘッダ情報に一致するパケットの転送を許可せずに、破棄を指示する。
【００４７】
又、アドレス詐称検出部２１は、受給した通知元スイッチのＤＰＩＤ６３を検索鍵として、仮想サーバデータベース２３を検索し、当該検索鍵に一致するＤＰＩＤ１１２に対応するＩＰアドレス１１１及びログイン情報１１３（例えばパスワード情報）を得る。これにより、アドレス詐称検出部２１は、受給したＤＰＩＤ６３に対応するホストＯＳ３２を特定するとともに当該ホストＯＳ３２にアクセス（ログイン）するための情報を得ることができる。
【００４８】
アドレス詐称検出部２１は、仮想サーバデータベース２３から得られたＩＰアドレス１１１及びログイン情報１１３を利用して、仮想サーバ３内のホストＯＳ３２にアクセスし、ＶＭデータベース２４から得られたＶＭ名１２０に一致する仮想マシン３１に関する情報（以下、送信元情報７と称す）を取得する。例えば、アドレス詐称検出部２１は、図６に示す送信元情報７を取得する。
【００４９】
図６を参照して、送信元情報７は、アドレス詐称検出部２１によって特定された仮想マシン３１を識別するＶＭ名７１（例えばＵＵＩＤ）と、当該仮想マシン３１が利用するインタフェースのＭＡＣアドレス７２の一覧と、当該インタフェースが接続するＯＦＶＳ３３のポート名７３（ポート番号）の一覧を含む。
【００５０】
アドレス詐称検出部２１は、フロー制御部２２から受給した送信元ＭＡＣアドレス６１と一致するＭＡＣアドレスが、仮想サーバ３から取得した仮想マシン３１のＭＡＣアドレス７２にあるかを検証する（ＭＡＣアドレス検証）。アドレス詐称検出部２１は、ＭＡＣアドレス検証の結果に応じて、通知されたファーストパケットのヘッダ情報に一致するパケットの転送可否を決定し、フロー制御部２２に指示する。例えば、送信元ＭＡＣアドレス６１と一致するＭＡＣアドレスが送信元情報７に含まれていない場合、アドレス詐称検出部２１は、通知されたファーストパケットについて、アドレスが詐称された不正アクセスと判定する。この場合、アドレス詐称検出部２１は、当該ファーストパケットのヘッダ情報に一致するパケットの転送を許可せず、当該パケットの廃棄を指示する。一方、送信元ＭＡＣアドレス６１に一致するＭＡＣアドレス７２がある場合、アドレス詐称検出部２１は、アドレス詐称なしと判断し、通知されたファーストパケットのヘッダ情報に一致するパケットを転送するためのフローエントリの設定をフロー制御部２２に指示する。
【００５１】
又、アドレス詐称検出部２１は、ＶＭデータベース２４の検索において特定された仮想マシン３１から、当該仮想マシン３１が利用するインタフェースのＭＡＣアドレス７２を取得できない場合、アドレス詐称ありと判定し、フロー制御部２２に対し、アドレス詐称と判定したファーストパケットのヘッダ情報に一致するパケットの転送を許可せずに、破棄を指示する。
【００５２】
出力装置５は、モニタやプリンタに例示され、ＭＡＣアドレス又はＩＰアドレスを詐称した仮想マシンを特定する情報（例えば詐称したＶＭのＶＭ名やＭＡＣアドレス、又はＩＰアドレス）を視認可能に出力する。又、アドレス詐称検出部２１において、詐称した仮想マシンのポート名７３を取得した場合、出力装置５は当該ポート名７３を視認可能に出力することが好ましい。これにより、ＩＰアドレスやＭＡＣアドレスを詐称した不正なパケットが、どのスイッチの、どのポートから侵入したかを特定することが可能となる。
【００５３】
仮想サーバ３は、図示しないＣＰＵやＲＡＭを備えるコンピュータ装置（物理サーバ）であり、図示しない記憶装置に格納されたプログラムを実行することで、少なくとも１つの仮想マシン３１及びＯＦＶＳ３３を実現する。仮想マシン３１及びＯＦＶＳ３３は、例えば、ホストオペレーションシステム３２（ホストＯＳ３２）上でエミュレートされたゲストオペレーションシステム（ＧＯＳ、図示なし）又はＧＯＳ上で動作するソフトウェアによって実現される。仮想マシン３１は、ホストＯＳ３２上で動作する仮想マシンモニタ（ＶＭＭ）によって管理されるが、ここでは、ホストＯＳ３２によって管理されるものとして説明する。
【００５４】
仮想マシン３１は、ＯＦＶＳ３３を介して、他のホスト端末（例えば他の仮想サーバ３内の仮想マシン３１や図示しないネットワーク機器）との間で通信を行うホスト端末として機能する。ＯＦＶＳ３３はオープンフロープロトコルに従って動作し、ＯＦＣ２によって設定（更新）されたフローエントリに従って仮想マシン３１から受信したパケットの処理方法（アクション）を決定する。受信パケットに対するアクションは、例えば、ＯＦＳ４への転送、破棄がある。ここで、ＯＦＶＳ３３は、仮想マシン３１から送信されたパケットを最初に受信するスイッチとなる。すなわち、ＯＦＶＳ３３は、ホスト端末である仮想マシン３１に対して本システムへの入口に相当することになる。
【００５５】
図２には、システム内に仮想サーバ３が１つしか設けられていないが、これに限らず、通常、複数の仮想サーバ３が設けられる。又、仮想サーバ３内には、仮想マシン３１及びＯＦＶＳ３３が複数設けられてもよい。システム内に設けられた複数の仮想サーバ３間（ＯＦＶＳ３３間）は、オープンフロープロトコルに従って動作するＯＦＳ４を介して接続される。
【００５６】
ＯＦＳ４は、ＯＦＣ２によって設定（更新）されたフローエントリに従って受信パケットの処理方法（アクション）を決定する。受信パケットに対するアクションとして、例えば、他のＯＦＳ４やＯＦＶＳ３３への転送や破棄がある。
【００５７】
ＯＦＶＳ３３やＯＦＳ４に対するフローエントリの設定は、上述のようにＯＦＣ２からのＦｌｏｗ−ｍｏｄ要求によって行われる。ＯＦＶＳ３３やＯＦＳ４は、自身に設定されたフローエントリのルールに適合（又は一致）しないヘッダ情報を持つパケットを受信すると、当該パケットをファーストパケットとして、ＯＦＣ２に通知する（ＰａｃｋｅｔＩＮ）。この際、ＯＦＶＳ３３やＯＦＳ４は、当該パケットを受信したポート番号や自身を識別する識別子（例えばＤＰＩＤ）を、ファーストパケット又はファーストパケットのヘッダ情報とともにＯＦＣ２に送信する。これにより、ＯＦＶＳ３３やＯＦＳ４は検証情報６をＯＦＣ２に送信することとなる。
【００５８】
以上のような構成により、第１の実施の形態におけるコンピュータシステムでは、送信元のＭＡＣアドレスやＩＰアドレスを詐称した不正アクセスをＯＦＣ２において検証し、偽証を検出した場合、当該パケットの転送を許可しない（又は破棄する）フローエントリをスイッチに設定することで、不正アクセスの進入を防止することができる。
【００５９】
（ネットワーク監視動作）
次に、図７を参照して、第１の実施の形態におけるネットワーク監視動作の詳細を説明する。
【００６０】
図７は、第１の実施の形態におけるネットワーク監視動作の一例を示すシーケンス図である。ここでは、仮想マシン３１からシステム内にパケット転送が行われたときのネットワーク監視動作について説明する。
【００６１】
図７を参照して、先ず、コンピュータシステムの起動に際し、予め、入力装置１から仮想サーバデータ１１及びＶＭデータ１２をＯＦＣ２のアドレス詐称検証用データベース２０に記録する（ステップＳ１〜Ｓ４）。詳細には、入力装置１から与えられた仮想サーバデータ１１は、アドレス詐称検出部２１に供給され、仮想サーバデータベース２３に格納される（ステップＳ１、Ｓ２）。これにより、仮想サーバデータベース２３は、最新の仮想サーバデータ１１によって更新される。又、入力装置１から与えられたＶＭデータ１２は、アドレス詐称検出部２１に供給され、ＶＭデータベース２４に格納される（ステップＳ３、Ｓ４）。これにより、ＶＭデータベース２４は最新のＶＭデータ１２によって更新される。ここで、仮想サーバデータベース２３とＶＭデータベース２４は、アドレス詐称検出部２１によって常時検索が可能である。又、仮想サーバデータベース２３及びＶＭデータベース２４の更新は、システムの運用中に行われても良く、更新順は、図７に示す順に限定されない。
【００６２】
続いて、仮想マシン３１からシステム内にパケット転送が行われたときのネットワーク監視動作について説明する。仮想マシン３１は、Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰパケット、又は、ＩＰパケットを送信する（ステップＳ５）。このとき、仮想マシン３１からのパケットは、ＯＦＶＳ３３を介して仮想サーバ３の外部に転送される。すなわち、ＯＦＶＳ３３は、当該パケットにとってネットワークへの入口となる。
【００６３】
ＯＦＶＳ３３は、仮想マシン３１が接続する仮想ポートから受信したＧｒａｔｕｉｔｏｕｓ  ＡＲＰパケット、又はＩＰパケットのヘッダ情報が、自身に設定されたフローエントリのルールに適合（一致）するか否かを判定し、適合するルールがある場合、当該ルールに対応するアクションに従い受信パケットを処理（例えば、ＯＦＳ４への転送や破棄）する（図示なし）。一方、受信パケットのヘッダ情報に適合（一致する）フローエントリ（内のルール）が設定されていない場合、ＯＦＶＳ３３は、当該受信パケットをファーストパケットとしてＯＦＣ２のフロー制御部２２に通知する（ステップＳ６）。
【００６４】
例えば、仮想サーバ３上で、仮想マシン３１が起動した場合や、仮想マシン３１が他の仮想サーバ（図示なし）から仮想サーバ３上に移動してきた場合、仮想マシン３１が接続する物理ネットワークインタフェースに割り当てられたＭＡＣアドレスやＩＰアドレスは新規なものとなる。このため、仮想マシン３１が起動後（移動後）に最初に送信するＧｒａｔｕｉｔｏｕｓ  ＡＲＰパケットやＩＰパケットは、ＯＦＶＳ３３においてファーストパケットとして判定され、フロー制御部２２にＰａｃｋｅｔＩＮされる。
【００６５】
ＯＦＶＳ３３は、ＰａｃｋｅｔＩＮによって、フロー制御部２２に対しファーストパケット又はファーストパケットのヘッダ情報を、ＯＦＶＳ３３のＤＰＩＤ６３とともに送信する。
【００６６】
ＰａｃｋｅｔＩＮしたフロー制御部２２は、非同期イベントとともにＯＦＶＳ３３から送信された情報から検証情報６を抽出してアドレス詐称検出部２１に出力する（ステップＳ７）。
【００６７】
アドレス詐称検出部２１は、非同期イベントとともに受給した検証情報６から送信元アドレス情報６０を抽出し、ＶＭデータベース２４を利用してファーストパケットの送信元アドレスの検証を行う（ステップＳ８：ＭＡＣアドレス・ＩＰアドレス検証）。詳細には、アドレス詐称検出部２１は、送信元アドレス情報６０（送信元ＭＡＣアドレス６１、ターゲットＩＰアドレス６２又は送信元ＩＰアドレス６５）に一致するインタフェース情報１２１（ＭＡＣアドレス１２２、ＩＰアドレス１２３）が、ＶＭデータベース２４に存在するかを検証する（ＭＡＣアドレス・ＩＰアドレス検証）。ここで、送信元アドレス情報６０と一致するインタフェース情報１２１がＶＭデータベース２４に存在しない場合、アドレス詐称検出部２１は、ＭＡＣアドレス又はＩＰアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部２２に当該パケットの廃棄を指示する（ステップＳ１３）。
【００６８】
一方、ステップＳ８において、送信元アドレス情報６０と一致するインタフェース情報１２１が、ＶＭデータベース２４に存在する場合、アドレス詐称検出部２１は、当該インタフェース情報１２１に対応するＶＭ名１２０（ＵＵＩＤ）を得る。ＶＭ名１２０（ＵＵＩＤ）が特定された場合、アドレス詐称検出部２１は、非同期イベントとともに受給したＯＦＶＳ３３のＤＰＩＤ６３を検索鍵として、仮想サーバデータベース２３からＩＰアドレス１１１とログイン情報１１３を検索する（ステップＳ９）。ここで、ＤＰＩＤ６３に一致するＤＰＩＤ１１２がない場合、アドレス詐称検出部２１は、ＭＡＣアドレス又はＩＰアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部２２に当該パケットの廃棄を指示する（ステップＳ１３）。
【００６９】
一方、ステップＳ９において、ＤＰＩＤ６３に対応するＩＰアドレス１１１とログイン情報１１３を取得した場合、アドレス詐称検出部２１は、取得したＩＰアドレス１１１によって特定したホストＯＳ３２に対し、取得したログイン情報１１３を用いてログインする。続いてアドレス詐称検出部２１は、ステップＳ８において取得したＶＭ名１２０（ＵＵＩＤ）に対応する仮想マシン３１の情報を送信元情報７として取得する（ステップＳ１０）。ここで、指定したＶＭ名１２０に対応する送信元情報７が得られなかった場合、アドレス詐称検出部２１は、ファーストパケットのＭＡＣアドレス又はＩＰアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部２２に当該パケットの廃棄を指示する（ステップＳ１３）。
【００７０】
一方、ステップＳ１０において送信元情報７の取得に成功した場合、アドレス詐称検出部２１は、先ず、ファーストパケットの送信元ＭＡＣアドレス６１と一致するＭＡＣアドレスが送信元情報７に含まれているかを検索する（ステップＳ１１：ＭＡＣアドレス検証）。ここで送信元情報７内に、送信元ＭＡＣアドレス６１と一致するＭＡＣアドレス７２がない場合、アドレス詐称検出部２１は、ファーストパケットのＭＡＣアドレスが詐称されていると判断し、フロー制御部２２に当該パケットの廃棄を指示する（ステップＳ１３）。
【００７１】
一方、ステップＳ１１において、送信元情報７内に、送信元ＭＡＣアドレス６１と一致するＭＡＣアドレス７２が存在する場合、アドレス詐称検出部２１は、当該ＭＡＣアドレス７２に対応付けられたポート名７３が、ファーストパケットの受信ポート番号６４と一致するかを検証する（ステップＳ１２：受信ポート検証）。ここで、ステップＳ１１において検索されたＭＡＣアドレス７２に対応し、受信ポート番号６４と一致するポート名７３がない場合、アドレス詐称検出部２１は、ファーストパケットのＭＡＣアドレス又はＩＰアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部２２に当該パケットの廃棄を指示する（ステップＳ１３）。
【００７２】
一方、ステップＳ１１において検索されたＭＡＣアドレス７２に対応し、受信ポート番号６４と一致するポート名７３が存在する場合、アドレス詐称検出部２１は、ファーストパケットに関してアドレス詐称なしと判断し、フロー制御部２２に対し、当該パケットを転送するためのフローエントリの設定を指示する（ステップＳ１３）。
【００７３】
ステップＳ１３において、パケットの廃棄を指示されたフロー制御部２２は、ＰａｃｋｅｔＩＮされたファーストパケットを破棄するとともに、当該パケットのヘッダ情報の一部又は全部をルールとし、パケット破棄をアクションとするフローエントリをＯＦＶＳ３３に設定する（ステップＳ１４）。例えば、フロー制御部２２はファーストパケットの受信ポート番号と送信元ＭＡＣアドレスをルールとし、当該ルールに一致する受信パケットを破棄することをアクションとしたフローエントリを、ファーストパケットの通知元のＯＦＶＳ３３に設定する。これにより、以後、ＯＦＶＳ３３において、ＯＦＣ２において詐称有りと判定されたパケットを受信した場合、ＯＦＣ２に通知することなく廃棄され、不正パケットのネットワーク内への侵入をネットワークの入口で遮断することが可能となる。
【００７４】
一方、ステップＳ１３において、パケットの転送を指示されたフロー制御部２２は、ＰａｃｋｅｔＩＮされたファーストパケットのヘッダ情報の一部又は全部をルールとし、当該パケットを転送することをアクションとしたフローエントリを、通信経路上のスイッチ（ＯＦＶＳ３３やＯＦＳ４）に設定する（ステップＳ１４）。
【００７５】
又、ステップＳ８、Ｓ９、Ｓ１０、Ｓ１１においてアドレス詐称と判断したアドレス詐称検出部２１は、出力装置５に対し、ステップＳ７において非同期イベントと共にフロー制御部２２から受給した送信元アドレス情報６０を出力する（ステップＳ１５）。この場合、出力装置５は、送信元アドレス情報６０（送信元ＭＡＣアドレス６１及び、ターゲットＩＰアドレス６２又は送信元ＩＰアドレス６５）を詐称アドレスとして視認可能に出力する。更に、アドレス詐称検出部２１は、アドレス詐称と判断すると受信ポート番号６４を出力装置５に出力してもよい。この場合、出力装置５は、受信ポート番号６４を視認可能に出力する。
【００７６】
次に、図８を参照して、第１の実施の形態におけるネットワーク監視動作の具体例を説明する。図８は、第１の実施の形態におけるコンピュータシステムの構成及び動作を説明するための具体的な一例を示す図である。図８を参照して、仮想サーバデータベース２３には、仮想サーバデータ１１として、ＩＰアドレス１１１：“１９２．１６８．１０．１０”、ＤＰＩＤ１１２：“ｖＳｗｉｔｃｈＡ（ＤＰＩＤ  ０１）”、“ｖＳｗｉｔｃｈＢ（ＤＰＩＤ  ０２）”、ログイン情報１１３：“Ｐａｓｓｗｏｒｄ−１”が登録されている。又、ＶＭデータベース２４には、ＶＭデータ１２として、ＶＭ名１２０：“ＶＭ−Ｂ（ＵＵＩＤ−Ｂ）”、インタフェース情報１２１：“ＩＦ−ｃ：ＭＡＣ−ｃ、ＩＰ−ｃ”が登録されている。又、仮想サーバ３は、２つの仮想マシン３１：“ＶＭ−Ａ”、“ＶＭ−Ｂ”と２つのＯＦＶＳ３３：“ｖＳｗｉｔｃｈＡ”、“ｖＳｗｉｔｃｈＢ”を備える。仮想マシン３１“ＶＭ−Ａ”は、２つのインタフェース“ＩＦ−ａ”、“ＩＦ−ｂ”を持ち、仮想マシン３１“ＶＭ−Ｂ”は、１つのインタフェース“ＩＦ−ｃ”を持つ。ＯＦＶＳ３３“ｖＳｗｉｔｃｈＡ”は、ポート“Ｐｏｒｔ−Ａ”に接続され、ＯＦＶＳ３３“ｖＳｗｉｔｃｈＢ”は、２つのポート“Ｐｏｒｔ−Ｂ”、“Ｐｏｒｔ−Ｃ”に接続されている。
【００７７】
このようなコンピュータシステムにおけるネットワーク監視動作を説明する。仮想マシン３１“ＶＭ−Ｂ”が他の仮想サーバから移動して、Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰパケットを送信すると、ＯＦＶＳ３３“ｖＳｗｉｔｃｈＢ”は、ポート“Ｐｏｒｔ−Ｃ”を介して当該パケットを受信する。ＯＦＶＳ３３“ｖＳｗｉｔｃｈＢ”は、受信パケットをファーストパケットとしてフロー制御部２２にＰａｃｋｅｔＩＮする。
【００７８】
フロー制御部２２は、ＰａｃｋｅｔＩＮに応じて非同期イベントとともに検証情報６をアドレス詐称検出部２１に通知する。ここでは、検証情報６として、送信元ＭＡＣアドレス６１：“ＭＡＣ−ｃ”、ターゲットＩＰアドレス６２：“ＩＰ−ｃ”、ＤＰＩＤ６３：“ＤＰＩＤ  ０２”、受信ポート番号６４：“Ｐｏｒｔ−Ｃ”が通知される。
【００７９】
アドレス詐称検出部２１は、通知された送信元ＭＡＣアドレス６１“ＭＡＣ−ｃ”と、ターゲットＩＰアドレス６２“ＩＰ−ｃ”を用いてＭＡＣアドレス・ＩＰアドレス検証を行う。ＶＭデータベース２４には、送信元ＭＡＣアドレス６１“ＭＡＣ−ｃ”と、ターゲットＩＰアドレス６２“ＩＰ−ｃ”に一致するインタフェース情報１２１“ＭＡＣ−ｃ”、“ＩＰ−ｃ”が存在するため、ＭＡＣアドレス・ＩＰアドレス検証においては、詐称アドレスなしと判定される。又、アドレス詐称検出部２１は、当該インタフェース情報１２１に対応するＶＭ名“ＶＭ−Ｂ（ＵＵＩＤ−Ｂ）”を抽出する。
【００８０】
次に、アドレス詐称検出部２１は、仮想サーバデータベース２３内において、ＰａｃｋｅｔＩＮによって受給したＤＰＩＤ６３“ＤＰＩＤ  ０２”に一致するＤＰＩＤ１１２に対応するＩＰアドレス１１１：“１９２．１６８．１０．１０”及びログイン情報１１３：“Ｐａｓｓｗｏｒｄ−１”を取得し、これらを用いてホストＯＳ３２にアクセス（ログイン）する。これにより、アドレス詐称検出部２１は、アクセス先のホストＯＳ３２からＶＭデータベース２４から抽出したＶＭ名“ＶＭ−Ｂ（ＵＵＩＤ−Ｂ）”の仮想マシン３１に関する情報を、送信元情報７として取得する。ここでは、アドレス詐称検出部２１はＶＭ名７１：“ＶＭ−Ｂ（ＵＵＩＤ−Ｂ）”、インタフェース名：“ＩＦ−ｃ”、ＭＡＣアドレス７２：“ＭＡＣ−ｃ”、ポート名７３：“Ｐｏｒｔ−Ｃ”を取得する。
【００８１】
次に、アドレス詐称検出部２１は、ＭＡＣアドレス検証を行う。ここでは、取得した送信元情報７内に、ＰａｃｋｅｔＩＮによって受給した送信元ＭＡＣアドレス６１“ＭＡＣ−ｃ”と一致するＭＡＣアドレス７２“ＭＡＣ−ｃ”があるため、ＭＡＣアドレス検証においては、詐称アドレスなしと判定される。又、アドレス詐称検出部２１は、当該ＭＡＣアドレス７２“ＭＡＣ−ｃ”に対応するポート名“Ｐｏｒｔ−Ｃ”と、送信元ＭＡＣアドレス６１に対応する受信ポート番号“Ｐｏｒｔ−Ｃ”が一致するため、受信ポート検証において、詐称アドレスなしと判定される。
【００８２】
アドレス詐称検出部２１は、全てのアドレス詐称検証の結果、詐称なしと判定したため、ファーストパケットとして通知されたＧｒａｔｕｉｔｏｕｓ  ＡＲＰパケットは、正当な送信元ＭＡＣアドレス及びターゲットＩＰアドレスを使用していると判断し、フロー制御部２２に当該パケットの転送を指示する。
【００８３】
フロー制御部２２は、アドレス詐称検出部２１からのパケット転送指示に応じて、例えば、送信元ＭＡＣアドレスが“ＭＡＣ−ｃ”、ターゲットＩＰアドレスが“ＩＰ−ｃ”をルールとし、“ＯＦＳ４に転送する”をアクションとして規定したフローエントリをＯＦＶＳ３３“ｖＳｗｉｔｃｈＡ”に設定する。これにより、ＯＦＶＳ３３“ｖＳｗｉｔｃｈＡ”は、設定されたルールに適合するＡＲＰパケットを受信した場合、当該パケットをＯＦＳ４に転送することとなる。
【００８４】
一方、上述したアドレス詐称検証の１つでも詐称アドレス有りと判定された場合、フロー制御部２２は、アドレス詐称検出部２１からのパケット破棄指示に応じて、例えば、送信元ＭＡＣアドレスが“ＭＡＣ−ｃ”、ターゲットＩＰアドレスが“ＩＰ−ｃ”をルールとし、“パケットを破棄する”をアクションとして規定したフローエントリをＯＦＶＳ３３“ｖＳｗｉｔｃｈＡ”に設定する。これにより、ＯＦＶＳ３３“ｖＳｗｉｔｃｈＡ”は、設定されたルールに適合するＡＲＰパケットを受信した場合、当該パケットを破棄することとなる。
【００８５】
又、上述したアドレス詐称検証の１つでも詐称アドレス有りと判定された場合、非同期イベントと共にアドレス詐称検出部２１に供給される検証情報６が出力装置５により視認可能に出力される。
【００８６】
以上のような動作により、本発明によるシステムでは、送信元ＭＡＣアドレス又はターゲットＩＰアドレスを詐称したＧｒａｔｕｉｔｏｕｓ  ＡＲＰパケットや、送信元ＭＡＣアドレス又は送信元ＩＰアドレスを詐称したＩＰパケットを検出し、視認可能に出力することができる。又、ＰａｃｋｅｔＩＮによってＯＦＶＳ３３から取得した検証情報６により、検出したアドレス詐称パケットの送信元のＭＡＣアドレスやＩＰアドレスを特定できる。又、ＰａｃｋｅｔＩＮしたＯＦＶＳ３３のＤＰＩＤ及び受信ポート番号も特定できることから、不正アクセスを試みた物理的な位置を特定することが可能となる。
【００８７】
本発明によるシステムは、オープンフロープロトコルを利用しているため、アドレス詐称パケットがレイヤ２ネットワークに入る手前（入口）のスイッチ（上述の例ではＯＦＶＳ３３）において、送信元ＭＡＣアドレスとターゲットＩＰアドレス（又は送信元ＩＰアドレス）の組み合わせの正当性を検証でき、アドレス詐称と判断されたパケットを当該スイッチにおいて廃棄することができる。このため、不正なＡＲＰパケットやＩＰパケットがネットワークに侵入する前に、これらを遮断することが可能となる。この結果、本発明によれば、ターゲットＩＰアドレスを詐称したＧｒａｔｕｉｔｏｕｓ  ＡＲＰによる正当な利用者への妨害や、パケットの盗聴を阻止することが可能となる。
【００８８】
特許文献１に記載のシステムでは、アドレス詐称されたＡＲＰパケットを受信する度に受信パケットによるＡＲＰテーブルの書換えと監視サーバによるＡＲＰテーブルの更新が行われるため、不正アクセスによる通信妨害の効果を抑制することができない。一方、本発明によるシステムでは、オープンフロープロトコルを利用することで、スイッチおいて受信されたパケットが、どの位置からレイヤ２ネットワークに侵入したかをＯＦＣ２において知ることができる。このため、ＡＲＰパケットの送信元ＭＡＣアドレスと、その位置に存在する仮想マシンのＭＡＣアドレスを比較することで、異なる場所からネットワークに流入しようとする不正なＡＲＰパケットを流入前に遮断できる。この結果、本発明によれば、送信元ＭＡＣアドレスを詐称したＡＲＰ（特にＧｒａｔｕｉｔｏｕｓ  ＡＲＰ）による正当な利用者への妨害を阻止することが可能となる。
【００８９】
更に、本発明によるシステムでは、許可しない部外者が送信するＡＲＰパケットやＩＰパケットを、送信元ＭＡＣアドレスと、送信元ＩＰアドレスと、スイッチの受信ポートの組み合わせで検証し、ネットワークに流入させないように制御している。このため、本発明によれば、許可していない部外者が、未使用のＩＰアドレスを不正に利用し、ネットワークにアクセスすることを遮断できる。
【００９０】
更に、本発明によるシステムでは、ＭＡＣアドレスやＩＰアドレスを詐称した余分なトラフィック、特にブロードキャストトラフィックがレイヤ２ネットワークを流れる手前で遮断できるため、ネットワーク内の余分なトラフィックを削減することができる。
【００９１】
２．第２の実施の形態
（コンピュータシステムの構成）
第１の実施の形態では、オープンフロープロトコルを利用したＯＦＶＳ３３を備える形態について説明したが、これに限らず、仮想スイッチがオープンフロープロトコルを利用しない場合でも、サーバ間を接続するスイッチがオープンフロープロトコルに従って動作している場合、本発明が適用できる。第２の実施の形態におけるコンピュータシステムでは、仮想サーバ３’と他のホスト端末とを接続するオープンフロースイッチ４からオープンフローコントローラ２に送信されるファーストパケットに基づいて、ＡＲＰ要求パケットやＩＰパケットのアドレス詐称の有無を監視する。以下では、第１の実施の形態と異なる構成及び動作について詳細に説明し、同様な構成及び動作の説明は省略する。
【００９２】
図９は、本発明によるコンピュータシステムの第２の実施の形態における構成を示す図である。図９を参照して、第２の実施の形態における仮想サーバ３’は、第１の実施の形態におけるオープンフロー仮想スイッチ３３に替えて、オープンフロープロトコルに従わないレイヤ２の仮想スイッチ３４を備える。このため、仮想マシン３１から送信されたＧｒａｔｕｉｔｏｕｓ  ＡＲＰパケットは、ＯＦＳ４からフロー制御部２２へＰａｃｋｅｔＩＮされる。すなわち、第２の実施の形態におけるＯＦＳ４は、ホスト端末である仮想マシン３１に対して本システムへの入口に相当することになる。又、第２の実施の形態における入力装置１は、図１０に示す仮想サーバデータ１１’をＯＦＣ２に入力する。これらの構成以外の構成は、第１の実施の形態と同様である。
【００９３】
図１０は、第２の実施の形態におけるアドレス詐称検証で用いられる仮想サーバデータ１１’の構造の一例を示す図である。図１０を参照して、仮想サーバデータ１１’は、仮想サーバ３’に割り当てられたＩＰアドレス１１１と、当該仮想サーバ３’の物理ネットワークインタフェースが接続するＯＦＳ４のＤＰＩＤ１１２と、当該仮想サーバ３’にアクセスするためのログイン情報１１３と、ＯＦＳ４が接続するポート名１１４を含む。ＩＰアドレス１１１、ＤＰＩＤ１１２、ログイン情報１１３、ポート名１１４は、それぞれ仮想サーバ３’毎に対応付けられて仮想サーバデータ１１’として入力装置１に記録される。
【００９４】
（ネットワーク監視動作）
図１１を参照して、第２の実施の形態におけるネットワーク監視動作の詳細を説明する。
【００９５】
図１１を参照して、先ず、コンピュータシステムの起動に際し、予め、入力装置１から仮想サーバデータ１１’及びＶＭデータ１２をＯＦＣ２のアドレス詐称検証用データベース２０に記録する（ステップＳ２１〜Ｓ２４）。詳細な動作は、図７に示すステップＳ１〜Ｓ４と同様である。
【００９６】
続いて、仮想マシン３１からシステム内にパケット転送が行われたときのネットワーク監視動作について説明する。仮想マシン３１は、Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰパケット、又は、ＩＰパケットを送信する（ステップＳ２５）。このとき、仮想マシン３１からのパケットは、仮想スイッチ３４を介して仮想サーバ３’の外部のＯＦＳ４に転送される。
【００９７】
ＯＦＳ４は、仮想サーバ３’との間を接続するポートから受信したＧｒａｔｕｉｔｏｕｓ  ＡＲＰパケット、又はＩＰパケットのヘッダ情報が、自身に設定されたフローエントリのルールに適合（一致）するか否かを判定し、適合するルールがある場合、当該ルールに対応するアクションに従い受信パケットを処理（例えば、他のＯＦＳ４への転送や破棄）する（図示なし）。一方、受信パケットのヘッダ情報に適合（一致する）フローエントリ（内のルール）が設定されていない場合、ＯＦＳ４は、当該受信パケットをファーストパケットとしてＯＦＣ２のフロー制御部２２に通知する（ステップＳ２６）。ここでＯＦＳ４は、ＰａｃｋｅｔＩＮによって、フロー制御部２２に対しファーストパケット又はファーストパケットのヘッダ情報を、ＯＦＳ４のＤＰＩＤ６３とともに送信する。
【００９８】
ＰａｃｋｅｔＩＮしたフロー制御部２２は、非同期イベントとともにＯＦＳ４から送信された情報から検証情報６を抽出してアドレス詐称検出部２１に出力する（ステップＳ２７）。
【００９９】
アドレス詐称検出部２１は、図７に示すステップＳ８と同様に、仮想サーバＤＢ２３を利用してファーストパケットの送信元アドレスの検証を行う（ステップＳ２８：ＭＡＣアドレス・ＩＰアドレス検証）。ここで、ＤＰＩＤ６３に一致するＤＰＩＤ１１２がない場合、アドレス詐称検出部２１は、ファーストパケットのＭＡＣアドレス又はＩＰアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部２２に当該パケットの廃棄を指示する（ステップＳ３３）。
【０１００】
一方、ステップＳ２８において、送信元アドレス情報６０と一致するインタフェース情報１２１が、ＶＭデータベースに存在する場合、アドレス詐称検出部２１は、当該インタフェース情報１２１に対応するＶＭ名１２０（ＵＵＩＤ）を得る。ＶＭ名１２０（ＵＵＩＤ）が特定された場合、アドレス詐称検出部２１は、非同期イベントとともに受給したＯＦＳ４のＤＰＩＤ６３を検索鍵として、仮想サーバデータベース２３からＩＰアドレス１１１、ログイン情報１１３及びポート名１１４を検索する（ステップＳ２９）。ここで、ＤＰＩＤ６３に一致するＤＰＩＤ１１２がない場合、アドレス詐称検出部２１は、ＭＡＣアドレス又はＩＰアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部２２に当該パケットの廃棄を指示する（ステップＳ３３）。
【０１０１】
ステップＳ２９において、ＤＰＩＤ６３に対応するＩＰアドレス１１１、ログイン情報１１３、ポート名１１４を取得した場合、アドレス詐称検出部２１は、仮想サーバデータベース２３から取得したポート名１１４と、フロー制御部２２から受給した受信ポート番号６４とを比較する（ステップＳ３０：受信ポート検証）。ステップＳ３０においてポート名１１４と受信ポート番号６４が一致しない場合、アドレス詐称検出部２１は、受信ポート名が詐称されていると判断し、フロー制御部２２に当該パケットの廃棄を指示する（ステップＳ３３）。
【０１０２】
一方、ステップＳ３０においてポート名１１４と受信ポート番号６４が一致する場合、アドレス詐称検出部２１は、ステップＳ２９において取得したＩＰアドレス１１１によって特定したホストＯＳ３２に対し、取得したログイン情報１１３を用いてログインする。続いてアドレス詐称検出部２１は、ステップＳ２８において取得したＶＭ名１２０（ＵＵＩＤ）に対応する仮想マシン３１の情報を送信元情報７として取得する（ステップＳ３１）。ここで、指定したＶＭ名１２０に対応する送信元情報７が得られなかった場合、アドレス詐称検出部２１は、ファーストパケットのＭＡＣアドレス又はＩＰアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部２２に当該パケットの廃棄を指示する（ステップＳ３３）。尚、第２の実施の形態において取得する送信元情報７にはポート名７３は含まれなくても良い。
【０１０３】
一方、ステップＳ３１において送信元情報７の取得に成功した場合、アドレス詐称検出部２１は、ファーストパケットの送信元ＭＡＣアドレス６１と一致するＭＡＣアドレスが送信元情報７に含まれているかを検索する（ステップＳ３２：ＭＡＣアドレス検証）。ここで送信元情報７内に、送信元ＭＡＣアドレス６１と一致するＭＡＣアドレス７２がない場合、アドレス詐称検出部２１は、ファーストパケットのＭＡＣアドレスが詐称されていると判断し、フロー制御部２２に当該パケットの廃棄を指示する（ステップＳ３３）。
【０１０４】
一方、ステップＳ３２において、送信元情報７内に、送信元ＭＡＣアドレス６１と一致するＭＡＣアドレス７２が存在する場合、アドレス詐称検出部２１は、ファーストパケットに関してアドレス詐称なしと判断し、フロー制御部２２に対し、当該パケットを転送するためのフローエントリの設定を指示する（ステップＳ３３）。
【０１０５】
ステップＳ３３において、パケットの廃棄を指示されたフロー制御部２２は、ＰａｃｋｅｔＩＮされたファーストパケットを破棄するとともに、当該パケットのヘッダ情報の一部又は全部をルールとし、パケット破棄をアクションとするフローエントリをＯＦＳ４に設定する（ステップＳ３４）。これにより、ＯＦＳ４において、一度詐称の有無が判定されたパケットを受信した場合、ＯＦＣ２に通知することなく廃棄され、不正パケットのネットワーク内への侵入をネットワークの入口で遮断することが可能となる。
【０１０６】
一方、ステップＳ３３において、パケットの転送を指示されたフロー制御部２２は、ＰａｃｋｅｔＩＮされたファーストパケットのヘッダ情報の一部又は全部をルールとし、当該パケットを転送することをアクションとしたフローエントリを、通信経路上のＯＦＳ４に設定する（ステップＳ３４）。
【０１０７】
又、ステップＳ２８、Ｓ２９、Ｓ３０、Ｓ３１、Ｓ３２においてアドレス詐称と判断したアドレス詐称検出部２１は、出力装置５に対し、ステップＳ２７において非同期イベントと共にフロー制御部２２から受給した送信元アドレス情報６０を出力する（ステップＳ３５）。この場合、出力装置５は、送信元アドレス情報６０（送信元ＭＡＣアドレス６１及び、ターゲットＩＰアドレス６２又は送信元ＩＰアドレス６５）を詐称アドレスとして視認可能に出力する。更に、アドレス詐称検出部２１は、アドレス詐称と判断すると受信ポート番号６４を出力装置５に出力してもよい。この場合、出力装置５は、受信ポート番号６４を視認可能に出力する。
【０１０８】
次に、図１２を参照して、第２の実施の形態におけるネットワーク監視動作の具体例を説明する。図１２は、第２の実施の形態におけるコンピュータシステムの構成及び動作を説明するための具体的な一例を示す図である。図１２を参照して、仮想サーバデータベース２３には、仮想サーバデータ１１’として、ＩＰアドレス１１１：“１９２．１６８．１０．１０”、ＤＰＩＤ１１２：“ＳｗｉｔｃｈＡ（ＤＰＩＤ  ０１）”、ログイン情報１１３：“Ｐａｓｓｗｏｒｄ−１”、ポート名１１４：“Ｐｏｒｔ−Ｘ”が登録されている。又、ＶＭデータベース２４には、ＶＭデータ１２として、ＶＭ名１２０：“ＶＭ−Ａ（ＵＵＩＤ−Ａ）”、インタフェース情報１２１：“ＩＦ−ａ：ＭＡＣ−ａ、ＩＰ−ａ”、ＩＦ−ｂ：ＭＡＣ−ｂ、ＩＰ−ｂ”が登録されている。又、仮想サーバ３’は、２つの仮想マシン３１：“ＶＭ−Ａ”、“ＶＭ−Ｂ”と１つの仮想スイッチ３４：“ｖＳｗｉｔｃｈ”を備える。仮想マシン３１“ＶＭ−Ａ”は、２つのインタフェース“ＩＦ−ａ”、“ＩＦ−ｂ”を持ち、仮想マシン３１“ＶＭ−Ｂ”は、１つのインタフェース“ＩＦ−ｃ”を持つ。仮想スイッチ３４“ｖＳｗｉｔｃｈ”は、ポート“Ｐｏｒｔ−Ａ、Ｐｏｒｔ−Ｂ、Ｐｏｒｔ−Ｃ”に接続されている。更に、ＯＦＳ４“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”は、ポート“Ｐｏｒｔ−Ｘ”を介して仮想スイッチ３４“ｖＳｗｉｔｃｈ”に接続される。
【０１０９】
このようなコンピュータシステムにおけるネットワーク監視動作を説明する。仮想マシン３１“ＶＭ−Ａ”が他の仮想サーバから移動して、Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰパケットを送信すると、当該パケットは仮想スイッチ３４“ｖＳｗｉｔｃｈＡ”からポート“Ｐｏｒｔ−Ｘ”を介してＯＦＳ４“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”に転送される。ＯＦＳ４“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”は、受信パケットをファーストパケットとしてフロー制御部２２にＰａｃｋｅｔＩＮする。
【０１１０】
次に、フロー制御部２２は、ＰａｃｋｅｔＩＮに応じて非同期イベントとともに検証情報６をアドレス詐称検出部２１に通知する。ここでは、検証情報６として、送信元ＭＡＣアドレス６１：“ＭＡＣ−ａ”、ターゲットＩＰアドレス６２：“ＩＰ−ａ”、ＤＰＩＤ６３：“ＤＰＩＤ  ０１”、受信ポート番号６４：“Ｐｏｒｔ−Ｘ”が通知される。
【０１１１】
アドレス詐称検出部２１は、通知された送信元ＭＡＣアドレス６１“ＭＡＣ−ａ”と、ターゲットＩＰアドレス６２“ＩＰ−ａ”を用いてＭＡＣアドレス・ＩＰアドレス検証を行う。ＶＭデータベース２４には、送信元ＭＡＣアドレス６１“ＭＡＣ−ａ”と、ターゲットＩＰアドレス６２“ＩＰ−ａ”に一致するインタフェース情報１２１“ＭＡＣ−ａ”、“ＩＰ−ａ”が存在するため、ＭＡＣアドレス・ＩＰアドレス検証においては、詐称アドレスなしと判定される。又、アドレス詐称検出部２１は、当該インタフェース情報１２１に対応するＶＭ名“ＶＭ−Ａ（ＵＵＩＤ−Ａ）”を抽出する。
【０１１２】
次に、アドレス詐称検出部２１は、受信ポート検証を行う。ここでは、ＰａｃｋｅｔＩＮによって受給した受信ポート番号６４：“Ｐｏｒｔ−Ｘ”と、仮想サーバデータベース２３に登録されているポート名１１４“Ｐｏｒｔ−Ｘ”が一致するため、受信ポート検証においては詐称アドレスなしと判定される。
【０１１３】
続いて、アドレス詐称検出部２１は、仮想サーバデータベース２３内において、ＰａｃｋｅｔＩＮによって受給したＤＰＩＤ６３“ＤＰＩＤ  ０１”に一致するＤＰＩＤ１１２に対応するＩＰアドレス１１１：“１９２．１６８．１０．１０”及びログイン情報１１３：“Ｐａｓｓｗｏｒｄ−１”を取得し、これらを用いてホストＯＳ３２にアクセス（ログイン）する。これにより、アドレス詐称検出部２１は、アクセス先のホストＯＳ３２からＶＭデータベース２４から抽出したＶＭ名“ＶＭ−Ａ（ＵＵＩＤ−Ａ）”の仮想マシン３１に関する情報を、送信元情報７として取得する。ここでは、アドレス詐称検出部２１はＶＭ名７１：“ＶＭ−Ａ（ＵＵＩＤ−Ａ）”に対応付けられたインタフェース名：“ＩＦ−ａ”、ＭＡＣアドレス７２：“ＭＡＣ−ａ”と、インタフェース名：“ＩＦ−ｂ”、ＭＡＣアドレス７２：“ＭＡＣ−ｂ”を取得する。
【０１１４】
次に、アドレス詐称検出部２１は、ＭＡＣアドレス検証を行う。ここでは、取得した送信元情報７内に、ＰａｃｋｅｔＩＮによって受給した送信元ＭＡＣアドレス６１“ＭＡＣ−ａ”と一致するＭＡＣアドレス７２“ＭＡＣ−ａ”があるため、ＭＡＣアドレス検証においては、詐称アドレスなしと判定される。
【０１１５】
アドレス詐称検出部２１は、全てのアドレス詐称検証の結果、詐称なしと判定したため、ファーストパケットとして通知されたＧｒａｔｕｉｔｏｕｓ  ＡＲＰパケットは、正当な送信元ＭＡＣアドレス及びターゲットＩＰアドレスを使用していると判断し、フロー制御部２２に当該パケットの転送を指示する。
【０１１６】
フロー制御部２２は、アドレス詐称検出部２１からのパケット転送指示に応じて、例えば、送信元ＭＡＣアドレスが“ＭＡＣ−ａ”、ターゲットＩＰアドレスが“ＩＰ−ａ”をルールとし、“他のＯＦＳ４に転送する”をアクションとして規定したフローエントリをＯＦＳ４“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”に設定する。これにより、ＯＦＳ“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”は、設定されたルールに適合するＡＲＰパケットを受信した場合、当該パケットを、指定された他のＯＦＳ４に転送することとなる。
【０１１７】
一方、上述したアドレス詐称検証の１つでも詐称アドレス有りと判定された場合、フロー制御部２２は、アドレス詐称検出部２１からのパケット破棄指示に応じて、例えば、送信元ＭＡＣアドレスが“ＭＡＣ−ａ”、ターゲットＩＰアドレスが“ＩＰ−ａ”をルールとし、“パケットを破棄する”をアクションとして規定したフローエントリをＯＦＳ４“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”に設定する。これにより、ＯＦＳ４“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”は、設定されたルールに適合するＡＲＰパケットを受信した場合、当該パケットを破棄することとなる。
【０１１８】
又、上述したアドレス詐称検証の１つでも詐称アドレス有りと判定された場合、非同期イベントと共にアドレス詐称検出部２１に供給される検証情報６が出力装置５により視認可能に出力される。
【０１１９】
以上のように、第２の実施の形態におけるコンピュータシステムによれば、仮想スイッチがオープンフロープロトコルを利用していない場合でも、レイヤ２ネットワークの入口となるスイッチがオープンフロープロトコルに従って動作することで、当該スイッチにおいてアドレス詐称パケットを遮断することが可能となる。第１の実施の形態では、仮想スイッチが接続するポート番号（受信ポート番号）をホストＯＳから取得して詐称検証していたが、第２の実施の形態では、ファーストパケットの通知元が物理スイッチであるため、予め登録されたポート名を利用して受信ポートの詐称を検証することができる。又、第２の実施の形態によるコンピュータシステムにおける他の効果は、第１の実施の形態と同様である。
【０１２０】
３．第３の実施の形態
（コンピュータシステムの構成）
第１及び第２の実施の形態では、仮想サーバ間の通信を監視するシステムについて説明したが、これに限らず、オープンフロースイッチで接続されたネットワーク機器間の通信監視にも本発明は適用できる。第３の実施の形態におけるコンピュータシステムでは、ネットワーク機器３０間の接続するオープンフロースイッチ４からオープンフローコントローラ２に送信されるファーストパケットに基づいて、ＡＲＰ要求パケットやＩＰパケットのアドレス詐称の有無を監視する。以下では、第１の実施の形態と異なる構成及び動作について詳細に説明し、同様な構成及び動作の説明は省略する。
【０１２１】
図１３は、本発明によるコンピュータシステムの第３の実施の形態における構成を示す図である。図１３を参照して、第３の実施の形態におけるコンピュータシステムは、第１の実施の形態における仮想サーバ３に替えて、ネットワーク機器３０を備える。すなわち、第１、第２の実施の形態では、ネットワークを構成するホスト端末として仮想サーバを一例に説明したが、本実施の形態では、ネットワーク機器をホスト端末としたコンピュータシステムについて説明する。ここで、ネットワーク機器３０とは、計算機やネットワークプリンターなど、ＴＣＰ／ＩＰ通信を行う端末のいずれかを指す。第３の実施の形態におけるシステムでは、ネットワーク機器３０から送信されたＧｒａｔｕｉｔｏｕｓ  ＡＲＰパケットやＩＰパケットは、ＯＦＳ４からフロー制御部２２へＰａｃｋｅｔＩＮされることとなる。ここで、ＯＦＳ４は、ネットワーク機器３０から送信されたパケットを最初に受信するスイッチとなる。すなわち、ＯＦＳ４は、ホスト端末であるネットワーク機器３０に対して本システムへの入口に相当することになる。又、第３の実施の形態における入力装置１’は、図１４に示す機器データ１３をＯＦＣ２’に入力する。更に、第３の実施の形態におけるＯＦＣ２’は、第１の実施の形態における仮想サーバデータベース２３及びＶＭデータベース２４に替えて、機器データベース２５を備える。これらの構成以外の構成は、第１の実施の形態と同様である。
【０１２２】
図１４は、第３の実施の形態におけるアドレス詐称検証で用いられる機器データ１３の構造の一例を示す図である。図１４を参照して、機器データ１３は、システムに接続が許可された正当なネットワーク機器３０に割り当てられたＭＡＣアドレス１３１及びＩＰアドレス１３２（２つを総称する場合、機器アドレス情報１３０と称す）と、当該ネットワーク機器３０の物理ネットワークインタフェースが接続するＯＦＳ４のＤＰＩＤ１３３と、当該ＯＦＳ４のポート名１３４を含む。ＭＡＣアドレス１３１、ＩＰアドレス１３２、ＤＰＩＤ１３３、ポート名１３４は、それぞれネットワーク機器３０毎に対応付けられて機器データ１３として入力装置１’に記録される。
【０１２３】
（ネットワーク監視動作）
図１５を参照して、第３の実施の形態におけるネットワーク監視動作の詳細を説明する。
【０１２４】
図１５を参照して、先ず、コンピュータシステムの起動に際し、予め、入力装置１’から機器データ１３をＯＦＣ２’の機器データベースに記録する（ステップＳ４１、Ｓ４２）。詳細には、入力装置１’から与えられた機器データ１３は、アドレス詐称検出部２１に供給され、機器データベース２５に格納される（ステップＳ４１、Ｓ４２）。これにより、機器データベース２５は、最新の機器データ１３によって更新される。ここで、機器データベース２５は、アドレス詐称検出部２１によって常時検索が可能である。又、機器データベース２５の更新は、システムの運用中に行われても良い。
【０１２５】
続いて、ネットワーク機器３０からシステム内にパケット転送が行われたときのネットワーク監視動作について説明する。ネットワーク機器は、Ｇｒａｔｕｉｔｏｕｓ  ＡＲＰパケット、又は、ＩＰパケットを送信する（ステップＳ４３）。このとき、ネットワーク機器３０からのパケットはＯＦＳ４に転送される。
【０１２６】
ＯＦＳ４は、ネットワーク機器３０との間を接続するポートから受信したＧｒａｔｕｉｔｏｕｓ  ＡＲＰパケット、又はＩＰパケットのヘッダ情報が、自身に設定されたフローエントリのルールに適合（一致）するか否かを判定し、適合するルールがある場合、当該ルールに対応するアクションに従い受信パケットを処理（例えば、他のＯＦＳ４への転送や破棄）する（図示なし）。一方、受信パケットのヘッダ情報に適合（一致する）フローエントリ（内のルール）が設定されていない場合、ＯＦＳ４は、当該受信パケットをファーストパケットとしてＯＦＣ２’のフロー制御部２２に通知する（ステップＳ４４）。ここでＯＦＳ４は、ＰａｃｋｅｔＩＮによって、フロー制御部２２に対しファーストパケット又はファーストパケットのヘッダ情報を、ＯＦＳ４のＤＰＩＤ６３とともに送信する。
【０１２７】
ＰａｃｋｅｔＩＮしたフロー制御部２２は、非同期イベントとともにＯＦＳ４から送信された情報から検証情報６を抽出してアドレス詐称検出部２１に出力する（ステップＳ４５）。
【０１２８】
アドレス詐称検出部２１は、非同期イベントとともに受給した検証情報６から送信元アドレス情報６０を抽出し、機器データベース２５を利用してファーストパケットの送信元アドレスの検証を行う（ステップＳ４６：ＭＡＣアドレス・ＩＰアドレス検証）。詳細には、アドレス詐称検出部２１は、送信元アドレス情報６０（送信元ＭＡＣアドレス６１、ターゲットＩＰアドレス６２又は送信元ＩＰアドレス６５）に一致する機器アドレス情報１３０（ＭＡＣアドレス１３１、ＩＰアドレス１３２）が、機器データベース２５に存在するかを検証する（ＭＡＣアドレス・ＩＰアドレス検証）。ここで、送信元アドレス情報６０と一致する機器アドレス情報１３０が機器データベース２５に存在しない場合、アドレス詐称検出部２１は、ＭＡＣアドレス又はＩＰアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部２２に当該パケットの廃棄を指示する（ステップＳ４８）。
【０１２９】
一方、ステップＳ４６において、送信元アドレス情報６０と一致する機器アドレス情報１３０が、機器データベース２５に存在する場合、当該機器アドレス情報１３０に対応するポート名１３４と、ＰａｃｋｅｔＩＮによって取得した受信ポート番号６４とを比較する（ステップＳ４７：受信ポート検証）。ステップＳ４７においてポート名１３４と受信ポート番号６４が一致しない場合、アドレス詐称検出部２１は、受信ポート名が詐称されていると判断し、フロー制御部２２に当該パケットの廃棄を指示する（ステップＳ４８）。
【０１３０】
一方、ステップＳ４７においてポート名１１４と受信ポート番号６４が一致する場合、アドレス詐称検出部２１は、ファーストパケットに関してアドレス詐称なしと判断し、フロー制御部２２に対し、当該パケットを転送するためのフローエントリの設定を指示する（ステップＳ４８）。
【０１３１】
尚、ステップＳ４６におけるＭＡＣアドレス・ＩＰアドレス検証とステップＳ４７における受信ポート検証の実行順は図１５に示す順に限らず逆順でも同時的に行われても構わない。又、ＭＡＣアドレス・ＩＰアドレス検証又は受信ポート検証の際、機器データベース２５内のＤＰＩＤ１３３と、ＰａｃｋｅｔＩＮによって通知されたＤＰＩＤ６３との一致が検証されても良い。
【０１３２】
ステップＳ４８において、パケットの廃棄を指示されたフロー制御部２２は、ＰａｃｋｅｔＩＮされたファーストパケットを破棄するとともに、当該パケットのヘッダ情報の一部又は全部をルールとし、パケット破棄をアクションとするフローエントリをＯＦＳ４に設定する（ステップＳ４９）。これにより、ＯＦＳ４において、一度詐称の有無が判定されたパケットを受信した場合、ＯＦＣ２’に通知することなく廃棄され、不正パケットのネットワーク内への侵入をネットワークの入口で遮断することが可能となる。
【０１３３】
一方、ステップＳ４８において、パケットの転送を指示されたフロー制御部２２は、ＰａｃｋｅｔＩＮされたファーストパケットのヘッダ情報の一部又は全部をルールとし、当該パケットを転送することをアクションとしたフローエントリを、通信経路上のＯＦＳ４に設定する（ステップＳ４９）。
【０１３４】
又、ステップＳ４６、Ｓ４８においてアドレス詐称と判断したアドレス詐称検出部２１は、出力装置５に対し、ステップＳ４５において非同期イベントと共にフロー制御部２２から受給した送信元アドレス情報６０を出力する（ステップＳ５０）。この場合、出力装置５は、送信元アドレス情報６０（送信元ＭＡＣアドレス６１及び、ターゲットＩＰアドレス６２又は送信元ＩＰアドレス６５）を詐称アドレスとして視認可能に出力する。更に、アドレス詐称検出部２１は、アドレス詐称と判断すると受信ポート番号６４を出力装置５に出力してもよい。この場合、出力装置５は、受信ポート番号６４を視認可能に出力する。
【０１３５】
次に、図１６を参照して、第３の実施の形態におけるネットワーク監視動作の具体例を説明する。図１６は、第３の実施の形態におけるコンピュータシステムの構成及び動作を説明するための具体的な一例を示す図である。図１６を参照して、機器データベース２５には、機器データ１３として、機器アドレス情報１３０：ＭＡＣアドレス１３１：“ＭＡＣ−ｄ”、ＩＰアドレス１３２：“ＩＰ−ｄ”、ＤＰＩＤ１３３：“ＳｗｉｔｃｈＡ（ＤＰＩＤ  ０１）”、ポート名１３４：“Ｐｏｒｔ−Ｘ”が登録されている。又、ネットワーク機器３０は、１つのインタフェース“ＩＦ−ｄ”を持ち、ＯＦＳ４“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”は、ポート“Ｐｏｒｔ−Ｘ”を介してネットワーク機器３０に接続される。
【０１３６】
このようなコンピュータシステムにおけるネットワーク監視動作を説明する。ネットワーク機器３０がＧｒａｔｕｉｔｏｕｓ  ＡＲＰパケットを送信すると、当該パケットはポート“Ｐｏｒｔ−Ｘ”を介してＯＦＳ４“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”に転送される。ＯＦＳ４“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”は、受信パケットをファーストパケットとしてフロー制御部２２にＰａｃｋｅｔＩＮする。
【０１３７】
次に、フロー制御部２２は、ＰａｃｋｅｔＩＮに応じて非同期イベントとともに検証情報６をアドレス詐称検出部２１に通知する。ここでは、検証情報６として、送信元ＭＡＣアドレス６１：“ＭＡＣ−ｄ”、ターゲットＩＰアドレス６２：“ＩＰ−ｄ”、ＤＰＩＤ６３：“ＤＰＩＤ  ０１”、受信ポート番号６４：“Ｐｏｒｔ−Ｘ”が通知される。
【０１３８】
アドレス詐称検出部２１は、通知された送信元ＭＡＣアドレス６１“ＭＡＣ−ｄ”と、ターゲットＩＰアドレス６２“ＩＰ−ｄ”を用いてＭＡＣアドレス・ＩＰアドレス検証を行う。機器データベース２５には、送信元ＭＡＣアドレス６１“ＭＡＣ−ｄ”と、ターゲットＩＰアドレス６２“ＩＰ−ｄ”に一致する機器アドレス情報１３０“ＭＡＣ−ｄ”、“ＩＰ−ｄ”が存在するため、ＭＡＣアドレス・ＩＰアドレス検証においては、詐称アドレスなしと判定される。又、アドレス詐称検出部２１は、当該機器アドレス情報１３０に対応するポート名１３４“Ｐｏｒｔ−Ｘ”を抽出する。
【０１３９】
次に、アドレス詐称検出部２１は、受信ポート検証を行う。ここでは、ＰａｃｋｅｔＩＮによって受給した受信ポート番号６４：“Ｐｏｒｔ−Ｘ”と、機器データベース２５から抽出したポート名１３４“Ｐｏｒｔ−Ｘ”が一致するため、受信ポート検証においては詐称アドレスなしと判定される。この際、機器データベース２５内のＤＰＩＤ１３３と、ＰａｃｋｅｔＩＮによって受給されたＤＰＩＤ１３３との一致が検証されても良い。ここではＤＰＩＤ１３３“ＤＰＩＤ  ０１”とＤＰＩＤ１３３“ＤＰＩＤ  ０１”が一致するため詐称アドレスなしと判定される。
【０１４０】
アドレス詐称検出部２１は、全てのアドレス詐称検証の結果、詐称なしと判定したため、ファーストパケットとして通知されたＧｒａｔｕｉｔｏｕｓ  ＡＲＰパケットは、正当な送信元ＭＡＣアドレス及びターゲットＩＰアドレスを使用していると判断し、フロー制御部２２に当該パケットの転送を指示する。
【０１４１】
フロー制御部２２は、アドレス詐称検出部２１からのパケット転送指示に応じて、例えば、送信元ＭＡＣアドレスが“ＭＡＣ−ｄ”、ターゲットＩＰアドレスが“ＩＰ−ｄ”をルールとし、“他のＯＦＳ４に転送する”をアクションとして規定したフローエントリをＯＦＳ４“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”に設定する。これにより、ＯＦＳ４“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”は、設定されたルールに適合するＡＲＰパケットを受信した場合、当該パケットを指定された他のＯＦＳ４に転送することとなる。
【０１４２】
一方、上述したアドレス詐称検証の１つでも詐称アドレス有りと判定された場合、フロー制御部２２は、アドレス詐称検出部２１からのパケット破棄指示に応じて、例えば、送信元ＭＡＣアドレスが“ＭＡＣ−ｄ”、ターゲットＩＰアドレスが“ＩＰ−ａ”をルールとし、“パケットを破棄する”をアクションとして規定したフローエントリをＯＦＳ４“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”に設定する。これにより、ＯＦＳ４“ＯｐｅｎＦｌｏｗ  ＳｗｉｔｃｈＡ”は、設定されたルールに適合するＡＲＰパケットを受信した場合、当該パケットを破棄することとなる。
【０１４３】
又、上述したアドレス詐称検証の１つでも詐称アドレス有りと判定された場合、非同期イベントと共にアドレス詐称検出部２１に供給される検証情報６が出力装置５により視認可能に出力される。
【０１４４】
以上のように、第３の実施の形態におけるコンピュータシステムによれば、オープンフロープロトコルを利用したネットワーク機器間のアドレス詐称パケットの監視及びネットワークへの侵入の遮断が可能となる。第１の実施の形態では、仮想スイッチが接続するポート番号（受信ポート番号）をホストＯＳから取得して詐称検証していたが、第３の実施の形態では、ファーストパケットの通知元が物理スイッチであるため、予め登録されたポート名を利用して受信ポートの詐称を検証することができる。又、第３の実施の形態によるコンピュータシステムにおける他の効果は、第１の実施の形態と同様である。
【０１４５】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。又、技術的な矛盾のない範囲で、第１、第２、第３の実施の形態を組み合わせることができる。例えば、本発明は、仮想サーバ３、３’ネットワーク機器３０のいずれかが搭載されたコンピュータシステムに適用できる。
【０１４６】
又、上述の実施の形態では、ＯＦＣ２、２’は、ＰａｃｋｅｔＩＮをトリガとして仮想マシンの情報（送信元情報７）を取得していたが、これに限らず、システム内の仮想マシンの情報をデータベースとして保持していても良い。又、ＯＦＣ２、２’は、ＰａｃｋｅｔＩＮをトリガとして取得した仮想マシンの情報（送信元情報７）を一時的に保持し、以降にＯＦＶＳ３３やＯＦＳ４から通知されるファーストパケットに対するアドレス詐称検証に利用してもよい。
【０１４７】
本発明によるコンピュータシステムで利用されるＯＦＳやＯＦＶＳは、従来のオープンフロープロトコル（例えばＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ｖｅｒｓｉｏｎ１．０によって規定されるプロトコル）に従っていればよく、ＯＦＣの機能のみを上述の実施の形態のように変更することで、ネットワーク監視や不正アクセスの防止を実現できる。すなわち、本発明によれば、既存のオープンフローシステムにおいて、ＯＦＣの機能のみを変更することで、上述したネットワーク監視や不正アクセスの防止を実現できる。このため、低コスト且つ容易に既存のシステムにネットワーク監視等の機能を追加することが可能となる。
【０１４８】
尚、本出願は、日本出願番号２０１０−２７５００２に基づき、日本出願番号２０１０−２７５００２における開示内容は引用により本出願に組み込まれる。
【図１】
2012077603.tif 000003
【図２】
2012077603.tif 000004
【図３】
2012077603.tif 000005
【図４】
2012077603.tif 000006
【図５Ａ】
2012077603.tif 000007
【図５Ｂ】
2012077603.tif 000008
【図６】
2012077603.tif 000009
【図７】
2012077603.tif 000010
【図８】
2012077603.tif 000011
【図９】
2012077603.tif 000012
【図１０】
2012077603.tif 000013
【図１１】
2012077603.tif 000014
【図１２】
2012077603.tif 000015
【図１３】
2012077603.tif 000016
【図１４】
2012077603.tif 000017
【図１５】
2012077603.tif 000018
【図１６】
2012077603.tif 000019
【手続補正書】
【提出日】平成24年4月6日(2012.4.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コントローラと、
前記コントローラによって設定されたフローエントリに適合する受信パケットに対し、前記フローエントリで規定された中継動作を行うスイッチと、
前記スイッチに接続された仮想サーバと
を具備し、
前記コントローラは、正当な仮想サーバのＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスとＤＰＩＤ（Ｄａｔａ  Ｐａｔｈ  ＩＤ）とが対応付けられて記録された仮想サーバデータベースを備え、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットを、自身のＤＰＩＤとともに、前記コントローラに通知し、
前記コントローラは、前記スイッチから通知されたＤＰＩＤを検索鍵として前記仮想サーバデータベースからＩＰアドレスを取得し、前記ＩＰアドレスを利用してアクセスした仮想サーバから、前記仮想サーバに搭載される仮想マシンが利用するインタフェースに割り当てられたＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスを取得し、前記取得したＭＡＣアドレスと、前記受信パケットの送信元ＭＡＣアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コンピュータシステム。
【請求項２】
請求項１に記載のコンピュータシステムにおいて、
前記コントローラは、前記受信パケットの送信元アドレスが詐称されていると判定した場合、前記送信元アドレスを送信元とするパケットを破棄することを規定したフローエントリを前記スイッチに設定する
コンピュータシステム。
【請求項３】
（削除）
【請求項４】
請求項１又は２に記載のコンピュータシステムにおいて、
前記コントローラは、前記正当な仮想サーバのＩＰアドレスと前記受信パケットの送信元ＩＰアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コンピュータシステム。
【請求項５】
請求項１、２、又は４のいずれか１項に記載のコンピュータシステムにおいて、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知し、
前記コントローラは、前記正当な仮想サーバが利用するインタフェースに接続されたスイッチのポート名と、前記受信ポート名とが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コンピュータシステム。
【請求項６】
（削除）
【請求項７】
請求項１、２、４、又は５のいずれか１項に記載のコンピュータシステムにおいて、
前記コントローラは、正当な仮想マシンの仮想マシン名と前記正当な仮想マシンが利用するインタフェースに割り当てられたアドレスとが対応付けられたＶＭデータベースを保持し、
前記コントローラは、前記送信元アドレス情報を検索鍵として前記ＶＭデータベースから仮想マシン名を抽出し、前記ＭＡＣアドレスを取得する対象となる仮想マシンを特定する
コンピュータシステム。
【請求項８】
請求項１、２、４、５、又は７のいずれか１項に記載のコンピュータシステムにおいて、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知し、
前記コントローラは、前記スイッチから通知されたＤＰＩＤを検索鍵として前記仮想サーバデータベースからＩＰアドレスを取得し、前記ＩＰアドレスを利用してアクセスした仮想サーバから、前記仮想マシンが利用するインタフェースが接続するスイッチのポート名を取得し、前記取得したポート名と前記受信ポート名が一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コンピュータシステム。
【請求項９】
請求項１、２、４、５、７、又は８のいずれか１項に記載のコンピュータシステムにおいて、
前記コントローラにおいて、前記受信パケットの送信元アドレスが詐称されていると判定された場合、前記受信パケットの送信元アドレスを視認可能に出力する出力装置を更に具備する
コンピュータシステム。
【請求項１０】
請求項９に記載のコンピュータシステムにおいて、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知し、
前記コントローラにおいて、前記受信パケットの送信元アドレスが詐称されていると判定された場合、前記出力装置は、前記受信ポート名を視認可能に出力する
コンピュータシステム。
【請求項１１】
フローエントリをスイッチに設定するフロー制御部と、
正当な仮想サーバのＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスとＤＰＩＤ（Ｄａｔａ  Ｐａｔｈ  ＩＤ）とが対応付けられて記録された仮想サーバデータベースと、
前記スイッチは、設定されたフローエントリに適合する受信パケットに対し、前記フローエントリで規定された中継動作を行い、自身に設定されたフローエントリに適合しない受信パケットを、自身のＤＰＩＤとともに、前記フロー制御部に通知し、
前記フロー制御部に通知されたＤＰＩＤを検索鍵として前記仮想サーバデータベースからＩＰアドレスを取得し、前記ＩＰアドレスを利用してアクセスした仮想サーバから、前記仮想サーバに搭載される仮想マシンが利用するインタフェースに割り当てられたＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスを取得し、前記取得したＭＡＣアドレスと前記送信元ＭＡＣアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するアドレス詐称検出部と
を具備する
コントローラ。
【請求項１２】
請求項１１に記載のコントローラにおいて、
前記アドレス詐称検出部が、前記受信パケットの送信元アドレスが詐称されていると判定した場合、前記フロー制御部は、前記送信元アドレスを送信元とするパケットを破棄することを規定したフローエントリを前記スイッチに設定する
コントローラ。
【請求項１３】
（削除）
【請求項１４】
請求項１１又は１２に記載のコントローラにおいて、
前記アドレス詐称検出部は、前記正当な仮想サーバのＩＰアドレスと前記受信パケットの送信元ＩＰアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コントローラ。
【請求項１５】
請求項１１、１２、又は１４のいずれか１項に記載のコントローラにおいて、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記フロー制御部に通知し、
前記アドレス詐称検出部は、前記正当な仮想サーバが利用するインタフェースに接続されたスイッチのポート名と、前記フロー制御部に通知された受信ポート名とが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コントローラ。
【請求項１６】
（削除）
【請求項１７】
請求項１１、１２、１４、又は１５のいずれか１項に記載のコントローラにおいて、
正当な仮想マシンの仮想マシン名と前記正当な仮想マシンが利用するインタフェースに割り当てられたアドレスとが対応付けられたＶＭデータベースを更に具備し、
前記アドレス詐称検出部は、前記送信元アドレス情報を検索鍵として前記ＶＭデータベースから仮想マシン名を抽出することで、前記ＭＡＣアドレスを取得する対象となる仮想マシンを特定する
コントローラ。
【請求項１８】
請求項１１、１２、１４、１５、又は１７のいずれか１項に記載のコントローラにおいて、
前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知し、
前記アドレス詐称検出部は、前記スイッチから通知されたＤＰＩＤを検索鍵として前記仮想サーバデータベースからＩＰアドレスを取得し、前記ＩＰアドレスを利用してアクセスした仮想サーバから、前記仮想マシンが利用するインタフェースが接続するスイッチのポート名を取得し、前記取得したポート名と前記受信ポート名が一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
コントローラ。
【請求項１９】
コンピュータによって実行されることで請求項１１、１２、１４、１５、１７、又は１８のいずれか１項に記載のコントローラを実現するネットワーク監視プログラムが記録された記憶媒体。
【請求項２０】
コントローラによって設定されたフローエントリに適合する受信パケットに対し、前記フローエントリで規定された中継動作を行うスイッチを備えるコンピュータシステムにおいて実行されるネットワーク監視方法において、
前記コントローラは、正当な仮想サーバのＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスとＤＰＩＤ（Ｄａｔａ  Ｐａｔｈ  ＩＤ）とが対応付けられて記録された仮想サーバデータベースを備え、
前記スイッチが、自身に設定されたフローエントリに適合しない受信パケットを、自身のＤＰＩＤとともに、前記コントローラに通知するステップと、
前記コントローラが、前記スイッチから通知されたＤＰＩＤを検索鍵として前記仮想サーバデータベースからＩＰアドレスを取得するステップと、
前記コントローラが、前記ＩＰアドレスを利用してアクセスした仮想サーバから、前記仮想サーバに搭載される仮想マシンが利用するインタフェースに割り当てられたＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスを取得するステップと、
前記コントローラが、前記取得したＭＡＣアドレスと前記送信元ＭＡＣアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップと
を具備する
ネットワーク監視方法。
【請求項２１】
請求項２０に記載のネットワーク監視方法において、
前記コントローラは、前記受信パケットの送信元アドレスが詐称されていると判定した場合、前記送信元アドレスを送信元とするパケットを破棄することを規定したフローエントリを前記スイッチに設定するステップを更に具備する
ネットワーク監視方法。
【請求項２２】
（削除）
【請求項２３】
請求項２０又は２１に記載のネットワーク監視方法において、
前記コントローラが、前記正当な仮想サーバのＩＰアドレスと前記受信パケットの送信元ＩＰアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップを備える
ネットワーク監視方法。
【請求項２４】
請求項２０、２１、又は２３のいずれか１項に記載のネットワーク監視方法において、
前記スイッチが、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知するステップと、
前記コントローラが、前記正当な仮想サーバが利用するインタフェースに接続されたスイッチのポート名と、前記受信ポート名とが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップと
を更に具備する
ネットワーク監視方法。
【請求項２５】
（削除）
【請求項２６】
請求項２０、２１、２３、又は２４のいずれか１項に記載のネットワーク監視方法において、
前記コントローラは、正当な仮想マシンの仮想マシン名と前記正当な仮想マシンが利用するインタフェースに割り当てられたアドレスとが対応付けられたＶＭデータベースを保持し、
前記コントローラが、前記送信元アドレス情報を検索鍵として前記ＶＭデータベースから仮想マシン名を抽出するステップと、
前記コントローラが、前記ＭＡＣアドレスを取得する対象となる仮想マシンを特定するステップと
を更に具備する
ネットワーク監視方法。
【請求項２７】
請求項２０、２１、２３、２４又は２６のいずれか１項に記載のネットワーク監視方法において、
前記スイッチが、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知するステップと、
前記コントローラが、前記スイッチから通知されたＤＰＩＤを検索鍵として前記仮想サーバデータベースからＩＰアドレスを取得するステップと、
前記コントローラが、前記ＩＰアドレスを利用してアクセスした仮想サーバから、前記仮想マシンが利用するインタフェースが接続するスイッチのポート名を取得するステップと、
前記コントローラが、前記取得したポート名と前記受信ポート名が一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップと
を具備する
ネットワーク監視方法。
【請求項２８】
請求項２０、２１、２３、２４、２６、又は２７のいずれか１項に記載のネットワーク監視方法において、
前記コントローラにおいて、前記受信パケットの送信元アドレスが詐称されていると判定された場合、前記受信パケットの送信元アドレスを視認可能に出力するステップを更に具備する
ネットワーク監視方法。
【請求項２９】
請求項２８に記載のネットワーク監視方法において、
前記スイッチが、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知するステップと、
前記コントローラにおいて、前記受信パケットの送信元アドレスが詐称されていると判定された場合、前記受信ポート名を視認可能に出力するステップとを更に具備する
ネットワーク監視方法。
【国際調査報告】
2012077603.tif 000020
2012077603.tif 000021