JP5532458B2 - コンピュータシステム、コントローラ、及びネットワーク監視方法 - Google Patents

コンピュータシステム、コントローラ、及びネットワーク監視方法 Download PDF

Info

Publication number
JP5532458B2
JP5532458B2 JP2012547830A JP2012547830A JP5532458B2 JP 5532458 B2 JP5532458 B2 JP 5532458B2 JP 2012547830 A JP2012547830 A JP 2012547830A JP 2012547830 A JP2012547830 A JP 2012547830A JP 5532458 B2 JP5532458 B2 JP 5532458B2
Authority
JP
Japan
Prior art keywords
address
packet
controller
switch
source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012547830A
Other languages
English (en)
Other versions
JPWO2012077603A1 (ja
Inventor
修 小野田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012547830A priority Critical patent/JP5532458B2/ja
Publication of JPWO2012077603A1 publication Critical patent/JPWO2012077603A1/ja
Application granted granted Critical
Publication of JP5532458B2 publication Critical patent/JP5532458B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、コンピュータシステム、コントローラ、監視方法、及びネットワーク監視プログラムに関し、特に、オープンフロー(オープンフロー)技術を利用したコンピュータシステム、及びアドレス詐称パケットを遮断するためのネットワーク監視方法に関する。
レイヤ2ネットワークでは、ネットワークを構成するネットワーク機器(計算機や仮想マシンを含む)を一意に識別するために、MAC(Media Access Control)アドレスが利用される。しかし、MACアドレスは、簡単に詐称できてしまうという問題がある。一方、計算機の物理的な移動や、仮想マシンの移動に伴って、レイヤ2ネットワークを流れるパケットの経路を変更する場合、Gratuitous ARP(Address Resolution Protocol)が有効であることが広く知られている(非特許文献1参照)。Gratuitous ARPは、自身のIP(Internet Protocol)アドレスをターゲットIPアドレスに設定したARP要求パケットであり、2つの効果をもたらす。1つは、自分以外が同じIPアドレスを利用していないかどうかを調べる効果である。ARP要求パケットに設定されたターゲットIPアドレスを利用する他のネットワーク機器がARP Replyを応答した場合、当該IPアドレスが重複していると判断できる。もう1つの効果は、レイヤ2ネットワークを構成するスイッチが、Gratuitous ARPパケットの送信元MACアドレスを参照して、自身のARPテーブルやMACテーブルを更新することで、計算機や仮想計算機の移動に追随して、パケットの転送経路を変更できる点にある。ところが、この特性を利用して、ネットワークに障害を発生させることが可能である。例えば、送信元MACアドレスやターゲットIPアドレスを詐称したGratuitous ARPパケットが不正な第3者によって送信されることで、レイヤ2ネットワークを構成するスイッチのARPテーブルやMACテーブルが書き換えられる。これにより、正当な利用者のTCP/IP通信は容易に妨害されてしまう。更に、正当な利用者に届けられるべきパケットが、不正者に届くように仕向けられるため、盗聴することもできてしまう。
このようなARPパケットを利用した不正アクセスや妨害を監視及び防止する技術が、例えば、特開2005−210451に記載されている(特許文献1参照)。特許文献1に記載のシステムは、ARP要求パケットを監視する監視ホストと、予めネットワーク内の正当なホストのIPアドレスや物理アドレスが登録されたデータベースを備える。監視ホストは、データベースに登録されていないIPアドレス又は物理アドレスのARP要求パケットを検知すると、ARPパケットの要求先ノードに対して自身を要求元としてARP要求パケットを送信して当該ノードのARPテーブルを更新する。これにより、不正アクセスに対する返信パケットは、不正な第3者ではなく監視サーバへ転送されることとなる。
このように、特許文献1に記載のシステムでは、不正なARPパケットを検出した監視サーバによってノードにおけるパケットの転送先が制御されることで、ネットワークへの不正アクセスを防ぐことが可能となる。
一方、コンピュータネットワークにおいて、各スイッチの転送動作等を外部のコントローラによって一元的に制御する技術(オープンフロー)が、OpenFlow Consortiumによって提案されている(非特許文献2参照)。この技術に対応したネットワークスイッチ(以下、オープンフロースイッチ(OFS)と称す)は、プロトコル種別やポート番号等の詳細な情報をフローテーブルに保持し、フローの制御と統計情報の採取を行うことができる。ネットワーク内のOFSのフローテーブルは、オープンフローコントローラ(OFC)によって一元的に設定及び管理される。
図1を参照して、オープンフロープロトコルを利用したコンピュータシステムの構成及び動作を説明する。図1を参照して、本発明の関連技術によるコンピュータシステムは、オープンフローコントローラ100(以下、OFC100と称す)、複数のオープンスイッチ102−1〜102−n(以下、OFS102−1〜102−nと称す)を有するスイッチ群200、複数のホストコンピュータ103−1〜103−i(以下、ホスト103−1〜103−iと称す)を有するホスト群300を具備する。ただし、n、iは2以上の自然数である。以下、OFS102−1〜102−nを区別せずに総称する場合はOFS102と称し、ホスト103−1〜103−iを区別せずに総称する場合はホスト103と称して説明する。
OFC100は、ホスト103間の通信経路の設定や、経路上におけるOFS102に対する転送動作(中継動作)等の設定を行う。この際、OFC100は、OFS102が保持するフローテーブルに、フロー(パケットデータ)を特定するルールと、当該フローに対する動作を規定するアクションとを対応付けたフローエントリを設定する。通信経路上のOFS102は、OFC100によって設定されたフローエントリに従って受信パケットデータの転送先を決定し、転送処理を行う。これにより、ホスト103は、OFC100によって設定された通信経路を利用して他のホスト103との間でパケットデータの送受信が可能となる。すなわち、オープンフローを利用したコンピュータシステムでは、通信経路を設定するOFC100と、転送処理を行うOFS102とが分離されているため、システム全体の通信を一元的に制御及び管理することが可能となる。
図1を参照して、ホスト103−1からホスト103−iへパケット送信を行う場合、OFS102−1はホスト103−1から受け取ったパケット内にある送信先情報(ヘッダ情報:例えば宛先MACアドレスや宛先IPアドレス)を参照し、OFS102−1内部で保持しているフローテーブルから当該ヘッダ情報に適合するエントリを探す。フローテーブルに設定されるエントリの内容については、例えば非特許文献2で規定されている。
OFS102−1は、受信パケットデータについてのエントリがフローテーブルに記載されていない場合、当該パケットデータ(以下、ファーストパケットと称す)、又はファーストパケットのヘッダ情報をOFC100に転送する。OFS102−1からファーストパケットを受け取ったOFC100はパケット内に含まれている送信元ホストや送信先ホストという情報を元に経路400を決定する。
OFC100は、経路400上の全てのOFS102に対して、パケットの転送先を規定するフローエントリの設定を指示する(フローテーブル更新指示を発行)。経路400上のOFS102は、フローテーブル更新指示に応じて、自身で管理しているフローテーブルを更新する。この後OFS102は、更新したフローテーブルに従い、パケットの転送を開始することで、OFC100が決定した経路400を経由して、宛先のホスト103−iへパケットが到達するようになる。
特開2005−210451
RFC 5227 (Updates: 826) IPv4 Address Conflict Detection OpenFlow Switch Specification Version 1.0.0 (Wire Protocol 0x01) December 31, 2009
上述のように、スイッチ毎のARPテーブルを利用して転送先が決定されるネットワークにおいては、特許文献1に例示されるように、偽証IPアドレスを利用した不正アクセスを監視する技術が提案されている。しかし、オープンフロープロトコル環境のネットワークシステムにおいては、このような不正アクセスの監視技術は確立されていない。
又、特許文献1に記載の技術を利用した場合、スイッチがARP要求に対して応答してから、監視サーバによってARPテーブルが書き換えられるまでの間、不正にアクセスされてしまう恐れがある。更に、スイッチにおけるARPテーブルの更新よりも先に監視サーバによるARPテーブルの更新が行われた場合、不正アクセスを防ぐことができないという問題がある。
以上のことから、本発明による目的は、オープンフロープロトコル環境のネットワークに対する不正アクセスの監視を可能とすることにある。
又、本発明による他の目的は、オープンフロープロトコル環境のネットワークに対する通信妨害を遮断することにある。
更に、本発明による他の目的は、詐称アドレスを利用した不正アクセスや妨害に対するセキュリティ強度を向上させることにある。
本発明によるコンピュータシステムは、コントローラと、コントローラによって設定されたフローエントリに適合する受信パケットに対し、当該フローエントリで規定された中継動作を行うスイッチと、スイッチに接続されたホスト端末を具備する。スイッチは、自身に設定されたフローエントリに適合しない受信パケットの送信元アドレス情報を、コントローラに通知する。コントローラは、正当なホスト端末のアドレス情報と送信元アドレス情報とが一致しない場合、受信パケットの送信元アドレスが詐称されていると判定する。
又、本発明によるコントローラは、フロー制御部とアドレス詐称検出部とを具備する。フロー制御部は、フローエントリをスイッチに設定する。スイッチは、設定されたフローエントリに適合する受信パケットに対し、フローエントリで規定された中継動作を行い、自身に設定されたフローエントリに適合しない受信パケットの送信元アドレス情報をフロー制御部に通知する。アドレス詐称検出部は、フロー制御部に通知された送信元アドレス情報と、正当なホスト端末のアドレス情報とが一致しない場合、受信パケットの送信元アドレスが詐称されていると判定する。
本発明によるコントローラの機能は、記憶装置に記憶され、コンピュータによって実行されるプログラムによって実現されることが好ましい。
又、本発明によるネットワーク監視方法は、コントローラによって設定されたフローエントリに適合する受信パケットに対し、当該フローエントリで規定された中継動作を行うスイッチを備えるコンピュータシステムにおいて実行されるネットワーク監視方法である。本発明によるネットワーク監視方法は、スイッチが、自身に設定されたフローエントリに適合しない受信パケットの送信元アドレス情報を、コントローラに通知するステップと、コントローラが、正当なホスト端末のアドレス情報と送信元アドレス情報とが一致しない場合、受信パケットの送信元アドレスが詐称されていると判定するステップとを具備する。
本発明によれば、オープンフロープロトコル環境のネットワークに対する不正アクセスの監視が可能となる。
又、オープンフロープロトコル環境のネットワークに対する通信妨害を遮断することが可能となる。
更に、詐称アドレスを利用した不正アクセスや妨害に対するセキュリティ強度を向上させることができる。
上記発明の目的、効果、特徴は、添付される図面と連携して実施の形態の記述から、より明らかになる。
図1は、オープンフロープロトコルを利用したコンピュータシステムの構成の一例を示す図である。 図2は、本発明によるコンピュータシステムの第1の実施の形態における構成を示す図である。 図3は、第1の実施の形態におけるアドレス詐称検証で用いられる仮想サーバデータの構造の一例を示す図である。 図4は、第1及び第2の実施の形態におけるアドレス詐称検証で用いられる仮想マシンデータ(VMデータ)の構造の一例を示す図である。 図5Aは、第1の実施の形態におけるアドレス詐称検証で用いられる検証情報の構造の一例を示す図である。 図5Bは、第1の実施の形態におけるアドレス詐称検証で用いられる検証情報の構造の他の一例を示す図である。 図6は、第1及び第2の実施の形態におけるアドレス詐称検証でオープンフローコントローラがホストOSから取得する送信元情報の構造の一例を示す図である。 図7は、第1の実施の形態におけるネットワーク監視動作の一例を示すシーケンス図である。 図8は、第1の実施の形態におけるコンピュータシステムの構成及び動作を説明するための具体的な一例を示す図である。 図9は、本発明によるコンピュータシステムの第2の実施の形態における構成を示す図である。 図10は、第2の実施の形態におけるアドレス詐称検証で用いられる仮想サーバデータの構造の一例を示す図である。 図11は、第2の実施の形態におけるネットワーク監視動作の一例を示すシーケンス図である。 図12は、第2の実施の形態におけるコンピュータシステムの構成及び動作を説明するための具体的な一例を示す図である。 図13は、本発明によるコンピュータシステムの第3の実施の形態における構成を示す図である。 図14は、第3の実施の形態におけるアドレス詐称検証で用いられる機器データの構造の一例を示す図である。 図15は、第3の実施の形態におけるネットワーク監視動作の一例を示すシーケンス図である。 図16は、第3の実施の形態におけるコンピュータシステムの構成及び動作を説明するための具体的な一例を示す図である。
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。
1.第1の実施の形態
(コンピュータシステムの構成)
本発明によるコンピュータシステムは、図1に示すシステムと同様にオープンフロー技術を利用して通信経路の構築及びパケットデータの転送制御を行う。第1の実施の形態におけるコンピュータシステムでは、仮想サーバ3上で動作するオープンフロー仮想スイッチ33からオープンフローコントローラ2に送信されるファーストパケットに基づいて、ARP要求パケットやIPパケットのアドレス詐称の有無を監視する。
図2は、本発明によるコンピュータシステムの第1の実施の形態における構成を示す図である。図2を参照して、本発明によるコンピュータシステムの第1の実施の形態における構成を説明する。
図2を参照して、第1の実施の形態におけるコンピュータシステムは、入力装置1、オープンフローコントローラ2(OpenFlowコントローラ:以下、OFC2と称す)、仮想サーバ3、オープンフロースイッチ(Open Flow Switch:以下、OFS4と称す)、出力装置5を具備する。
第1の実施の形態における入力装置1は、アクセス詐称の検証に用いる仮想サーバデータ11及び仮想マシンデータ12(VMデータ12)が記録された記憶装置を具備する。仮想サーバデータ11は、OFC2が仮想サーバ3にアクセスするために必要なデータである。
図3は、第1の実施の形態におけるアドレス詐称検証で用いられる仮想サーバデータ11の構造の一例を示す図である。図3を参照して、仮想サーバデータ11は、システムに接続が許可された正当な仮想サーバ3に割り当てられたIPアドレス111と、当該仮想サーバ3の物理ネットワークインタフェースが接続するオープンフロー仮想スイッチ33のDPID112(Data Path ID)と、当該仮想サーバ3にアクセスするためのログイン情報113を含む。IPアドレス111、DPID112、ログイン情報113は、それぞれ仮想サーバ3毎に対応付けられて仮想サーバデータ11として入力装置1に記録される。ここで、DPID112は、OFS4やオープンフロー仮想スイッチ33(以下、OFVS33と称す)を一意に識別するためにそれぞれに割り当てられた番号である。又、ログイン情報113は、仮想サーバ3へアクセス(ログイン)するためのIDやパスワード情報を含む。
図4は、第1の実施の形態におけるアドレス詐称検証で用いられるVMデータ12の構造の一例を示す図である。VMデータ12は、オープンフローコントローラ2によって管理されるネットワーク上に存在する仮想マシン31を特定するための情報である。図4を参照して、VMデータ12は、仮想マシン31を一意に識別するためのVM名120と、当該仮想マシン31が持つネットワークインタフェースを一意に特定するためのインタフェース情報121を含む。VM名120とインタフェース情報121は、仮想マシン31毎に対応付けられてVMデータ12として入力装置1に記録される。ここで、VM名120は、例えば、仮想マシン31に設定されたUUID(Universal Unique Identifier)が好適である。又、インタフェース情報121は、仮想マシン31の物理ネットワークインタフェースに割り当てられたMACアドレス122やIPアドレス123を含む。
入力装置1に記録される仮想サーバデータ11及びVMデータ12は、予めユーザにより設定又は更新されていても良いし、OFC2によって取得したデータによって設定又は更新されても良い。
OFC2は、オープンフロー技術により、システム内におけるパケット転送に係る通信経路の構築及びパケット転送処理を制御する。ここで、オープンフロー技術とは、OFC2が、ルーティングポリシー(フローエントリ:フロー+アクション)に従い、マルチレイヤ及びフロー単位の経路情報を通信経路上のOFS4やOFVS33に設定し、経路制御やノード制御を行う技術を示す(詳細は、非特許文献1を参照)。これにより、経路制御機能がルータやスイッチから分離され、コントローラによる集中制御によって最適なルーティング、トラフィック管理が可能となる。オープンフロー技術が適用されるOFS4やOFVS33は、従来のルータやスイッチのようにパケットやフレームの単位ではなく、END2ENDのフローとして通信を取り扱う。
図2を参照して、第1の実施の形態におけるOFC2の構成の詳細を説明する。OFC2は、CPU及び記憶装置を備えるコンピュータによって実現されることが好適である。OFC2では、図示しないCPUが記憶装置に格納されたプログラムを実行することで、図2に示すアドレス詐称検出部21及びフロー制御部22の各機能が実現される。アドレス詐称検出部21は、入力装置1から供給された仮想サーバデータ11及びVMデータ12のそれぞれを、検索し易い形式に変換し、仮想サーバデータベース23及びVMデータベース24としてアドレス詐称検証用データベース20に記録する。
フロー制御部22は、オープンフロープロトコルに従ったスイッチ(ここではOFS4、OFVS33)に対してフローエントリ(ルール+アクション)の設定又は削除を行う。これにより、OFS4やOFVS33は、受信パケットのヘッダ情報に応じたルールに対応するアクション(例えばパケットデータの中継や破棄)を実行する。
フローエントリに設定されるルールには、例えば、TCP/IPのパケットデータにおけるヘッダ情報に含まれる、OSI(Open Systems Interconnection)参照モデルのレイヤ1からレイヤ4のアドレスや識別子の組み合わせが規定される。例えば、レイヤ1の物理ポート、レイヤ2のMACアドレス、レイヤ3のIPアドレス、レイヤ4のポート番号、VLANタグ(VLAN id)のそれぞれの組み合わせがルールとして設定される。尚、VLANタグには、優先順位(VLAN Priority)が付与されていても良い。
ここで、フロー制御部22によってルールに設定されるポート番号等の識別子やアドレス等は、所定の範囲で設定されても構わない。又、宛先や送信元のアドレス等を区別してルールとして設定されルことが好ましい。例えば、MAC宛先アドレスの範囲や、接続先のアプリケーションを特定する宛先ポート番号の範囲、接続元のアプリケーションを特定する送信元ポート番号の範囲がルールとして設定される。更に、データ転送プロトコルを特定する識別子をルールとして設定してもよい。
フローエントリに設定されるアクションには、例えばTCP/IPのパケットデータを処理する方法が規定される。例えば、受信パケットデータを中継するか否かを示す情報や、中継する場合はその送信先が設定される。又、アクションとして、パケットデータの複製や、破棄することを指示する情報が設定されてもよい。
フロー制御部22は、OFS4やOFVS33からファーストパケットの通知を受けるとアドレス詐称検出部21にパケットの転送可否を問い合わせ、問い合わせ結果に応じてフローエントリの設定又はファーストパケットの破棄を行う。
詳細には、先ず、フロー制御部22は、OFS4やOFVS33からファーストパケットが通知(以下、PacketINと称す)によって、図5A又は図5Bに示す検証情報6取得する。検証情報6は、ファーストパケットの送信元アドレス情報60、通知元スイッチの識別子(例えばDPID63)、通知元スイッチのポート名(受信ポート番号64)を含む。図5Aを参照して、通知されたファーストパケットがGratuitous ARPパケットの場合、送信元アドレス情報60には、送信元MACアドレス61やターゲットIPアドレス62が含まれる。あるいは、図5Bを参照して、通知されたファーストパケットがIPパケットの場合、送信元アドレス情報60には、送信元MACアドレス61や送信元IPアドレス65が含まれる。
フロー制御部22は、検証情報6をアドレス詐称検出部21に送信し、パケットの転送可否を問い合わせる。この問い合わせの結果、パケット転送可能と判断された場合、フロー制御部22は、ファーストパケットのヘッダ情報から通信経路を算出する。そしてフロー制御部22は、当該ヘッダ情報に一致するパケットを当該通信経路に転送するためのフローエントリを、当該通信経路上のOFS4やOFVS33に設定する。一方、アドレス詐称検出部21においてパケット転送不可と判断された場合、問い合わせ対象のファーストパケットを廃棄する。この際、フロー制御部22は、当該ファーストパケットのヘッダ情報に一致するパケットを廃棄するためのフローエントリを、ファーストパケットの通知元のスイッチに設定することが好ましい。
又、フロー制御部22は、OFS4やOFVS33から通知されたファーストパケットを解析し、当該パケットがARPパケットである場合のみ、上述のアドレス詐称検出部21への問い合わせを行い、ARPパケット以外のPacketINに対する問い合わせを省略してもよい。この場合、OFC2はARPのみを監視することになるが、アドレス詐称検出部21への問い合わせ回数やアドレス詐称検出処理のための負荷は軽減される。
尚、フロー制御部22における通信経路の設定、フローエントリの設定及び管理は、非特許文献1に記載のオープンフロープロトコルに準拠して行われるため、ここでの詳細な説明は省略する。
アドレス詐称検出部21は、フロー制御部22から送信される検証情報6と検証用データベース20に記録された情報を用いてアドレス詐称検証を行う。
詳細には、アドレス詐称検出部21は、フロー制御部22から非同期に発生するイベントと共に検証情報6を取得する。アドレス詐称検出部21は、受給した送信元アドレス情報60(MACアドレスとIPアドレスの組み合わせ)を検索鍵として、VMデータベース24を検索し、当該検索鍵に一致するインタフェース情報121に対応するVM名120(仮想マシン31のUUID)を得る(MACアドレス・IPアドレス検証)。これにより、アドレス詐称検出部21は、受給した送信元アドレス情報60に対応する仮想マシン31を特定する。アドレス詐称検出部21は、VMデータベース24の検索の結果、受給した送信元アドレス情報60に対応する仮想マシン31を特定できない場合、すなわち送信元MACアドレス61やターゲットIPアドレス62(送信元IPアドレス65)の組み合わせと一致するインタフェース情報(MACアドレス122、IPアドレス123)が、VMデータベース24にない場合、アドレス詐称ありと判定する。アドレス詐称有りと判定したアドレス詐称検出部21は、フロー制御部22に対し、アドレス詐称と判定したファーストパケットのヘッダ情報に一致するパケットの転送を許可せずに、破棄を指示する。
又、アドレス詐称検出部21は、受給した通知元スイッチのDPID63を検索鍵として、仮想サーバデータベース23を検索し、当該検索鍵に一致するDPID112に対応するIPアドレス111及びログイン情報113(例えばパスワード情報)を得る。これにより、アドレス詐称検出部21は、受給したDPID63に対応するホストOS32を特定するとともに当該ホストOS32にアクセス(ログイン)するための情報を得ることができる。
アドレス詐称検出部21は、仮想サーバデータベース23から得られたIPアドレス111及びログイン情報113を利用して、仮想サーバ3内のホストOS32にアクセスし、VMデータベース24から得られたVM名120に一致する仮想マシン31に関する情報(以下、送信元情報7と称す)を取得する。例えば、アドレス詐称検出部21は、図6に示す送信元情報7を取得する。
図6を参照して、送信元情報7は、アドレス詐称検出部21によって特定された仮想マシン31を識別するVM名71(例えばUUID)と、当該仮想マシン31が利用するインタフェースのMACアドレス72の一覧と、当該インタフェースが接続するOFVS33のポート名73(ポート番号)の一覧を含む。
アドレス詐称検出部21は、フロー制御部22から受給した送信元MACアドレス61と一致するMACアドレスが、仮想サーバ3から取得した仮想マシン31のMACアドレス72にあるかを検証する(MACアドレス検証)。アドレス詐称検出部21は、MACアドレス検証の結果に応じて、通知されたファーストパケットのヘッダ情報に一致するパケットの転送可否を決定し、フロー制御部22に指示する。例えば、送信元MACアドレス61と一致するMACアドレスが送信元情報7に含まれていない場合、アドレス詐称検出部21は、通知されたファーストパケットについて、アドレスが詐称された不正アクセスと判定する。この場合、アドレス詐称検出部21は、当該ファーストパケットのヘッダ情報に一致するパケットの転送を許可せず、当該パケットの廃棄を指示する。一方、送信元MACアドレス61に一致するMACアドレス72がある場合、アドレス詐称検出部21は、アドレス詐称なしと判断し、通知されたファーストパケットのヘッダ情報に一致するパケットを転送するためのフローエントリの設定をフロー制御部22に指示する。
又、アドレス詐称検出部21は、VMデータベース24の検索において特定された仮想マシン31から、当該仮想マシン31が利用するインタフェースのMACアドレス72を取得できない場合、アドレス詐称ありと判定し、フロー制御部22に対し、アドレス詐称と判定したファーストパケットのヘッダ情報に一致するパケットの転送を許可せずに、破棄を指示する。
出力装置5は、モニタやプリンタに例示され、MACアドレス又はIPアドレスを詐称した仮想マシンを特定する情報(例えば詐称したVMのVM名やMACアドレス、又はIPアドレス)を視認可能に出力する。又、アドレス詐称検出部21において、詐称した仮想マシンのポート名73を取得した場合、出力装置5は当該ポート名73を視認可能に出力することが好ましい。これにより、IPアドレスやMACアドレスを詐称した不正なパケットが、どのスイッチの、どのポートから侵入したかを特定することが可能となる。
仮想サーバ3は、図示しないCPUやRAMを備えるコンピュータ装置(物理サーバ)であり、図示しない記憶装置に格納されたプログラムを実行することで、少なくとも1つの仮想マシン31及びOFVS33を実現する。仮想マシン31及びOFVS33は、例えば、ホストオペレーションシステム32(ホストOS32)上でエミュレートされたゲストオペレーションシステム(GOS、図示なし)又はGOS上で動作するソフトウェアによって実現される。仮想マシン31は、ホストOS32上で動作する仮想マシンモニタ(VMM)によって管理されるが、ここでは、ホストOS32によって管理されるものとして説明する。
仮想マシン31は、OFVS33を介して、他のホスト端末(例えば他の仮想サーバ3内の仮想マシン31や図示しないネットワーク機器)との間で通信を行うホスト端末として機能する。OFVS33はオープンフロープロトコルに従って動作し、OFC2によって設定(更新)されたフローエントリに従って仮想マシン31から受信したパケットの処理方法(アクション)を決定する。受信パケットに対するアクションは、例えば、OFS4への転送、破棄がある。ここで、OFVS33は、仮想マシン31から送信されたパケットを最初に受信するスイッチとなる。すなわち、OFVS33は、ホスト端末である仮想マシン31に対して本システムへの入口に相当することになる。
図2には、システム内に仮想サーバ3が1つしか設けられていないが、これに限らず、通常、複数の仮想サーバ3が設けられる。又、仮想サーバ3内には、仮想マシン31及びOFVS33が複数設けられてもよい。システム内に設けられた複数の仮想サーバ3間(OFVS33間)は、オープンフロープロトコルに従って動作するOFS4を介して接続される。
OFS4は、OFC2によって設定(更新)されたフローエントリに従って受信パケットの処理方法(アクション)を決定する。受信パケットに対するアクションとして、例えば、他のOFS4やOFVS33への転送や破棄がある。
OFVS33やOFS4に対するフローエントリの設定は、上述のようにOFC2からのFlow−mod要求によって行われる。OFVS33やOFS4は、自身に設定されたフローエントリのルールに適合(又は一致)しないヘッダ情報を持つパケットを受信すると、当該パケットをファーストパケットとして、OFC2に通知する(PacketIN)。この際、OFVS33やOFS4は、当該パケットを受信したポート番号や自身を識別する識別子(例えばDPID)を、ファーストパケット又はファーストパケットのヘッダ情報とともにOFC2に送信する。これにより、OFVS33やOFS4は検証情報6をOFC2に送信することとなる。
以上のような構成により、第1の実施の形態におけるコンピュータシステムでは、送信元のMACアドレスやIPアドレスを詐称した不正アクセスをOFC2において検証し、偽証を検出した場合、当該パケットの転送を許可しない(又は破棄する)フローエントリをスイッチに設定することで、不正アクセスの進入を防止することができる。
(ネットワーク監視動作)
次に、図7を参照して、第1の実施の形態におけるネットワーク監視動作の詳細を説明する。
図7は、第1の実施の形態におけるネットワーク監視動作の一例を示すシーケンス図である。ここでは、仮想マシン31からシステム内にパケット転送が行われたときのネットワーク監視動作について説明する。
図7を参照して、先ず、コンピュータシステムの起動に際し、予め、入力装置1から仮想サーバデータ11及びVMデータ12をOFC2のアドレス詐称検証用データベース20に記録する(ステップS1〜S4)。詳細には、入力装置1から与えられた仮想サーバデータ11は、アドレス詐称検出部21に供給され、仮想サーバデータベース23に格納される(ステップS1、S2)。これにより、仮想サーバデータベース23は、最新の仮想サーバデータ11によって更新される。又、入力装置1から与えられたVMデータ12は、アドレス詐称検出部21に供給され、VMデータベース24に格納される(ステップS3、S4)。これにより、VMデータベース24は最新のVMデータ12によって更新される。ここで、仮想サーバデータベース23とVMデータベース24は、アドレス詐称検出部21によって常時検索が可能である。又、仮想サーバデータベース23及びVMデータベース24の更新は、システムの運用中に行われても良く、更新順は、図7に示す順に限定されない。
続いて、仮想マシン31からシステム内にパケット転送が行われたときのネットワーク監視動作について説明する。仮想マシン31は、Gratuitous ARPパケット、又は、IPパケットを送信する(ステップS5)。このとき、仮想マシン31からのパケットは、OFVS33を介して仮想サーバ3の外部に転送される。すなわち、OFVS33は、当該パケットにとってネットワークへの入口となる。
OFVS33は、仮想マシン31が接続する仮想ポートから受信したGratuitous ARPパケット、又はIPパケットのヘッダ情報が、自身に設定されたフローエントリのルールに適合(一致)するか否かを判定し、適合するルールがある場合、当該ルールに対応するアクションに従い受信パケットを処理(例えば、OFS4への転送や破棄)する(図示なし)。一方、受信パケットのヘッダ情報に適合(一致する)フローエントリ(内のルール)が設定されていない場合、OFVS33は、当該受信パケットをファーストパケットとしてOFC2のフロー制御部22に通知する(ステップS6)。
例えば、仮想サーバ3上で、仮想マシン31が起動した場合や、仮想マシン31が他の仮想サーバ(図示なし)から仮想サーバ3上に移動してきた場合、仮想マシン31が接続する物理ネットワークインタフェースに割り当てられたMACアドレスやIPアドレスは新規なものとなる。このため、仮想マシン31が起動後(移動後)に最初に送信するGratuitous ARPパケットやIPパケットは、OFVS33においてファーストパケットとして判定され、フロー制御部22にPacketINされる。
OFVS33は、PacketINによって、フロー制御部22に対しファーストパケット又はファーストパケットのヘッダ情報を、OFVS33のDPID63とともに送信する。
PacketINしたフロー制御部22は、非同期イベントとともにOFVS33から送信された情報から検証情報6を抽出してアドレス詐称検出部21に出力する(ステップS7)。
アドレス詐称検出部21は、非同期イベントとともに受給した検証情報6から送信元アドレス情報60を抽出し、VMデータベース24を利用してファーストパケットの送信元アドレスの検証を行う(ステップS8:MACアドレス・IPアドレス検証)。詳細には、アドレス詐称検出部21は、送信元アドレス情報60(送信元MACアドレス61、ターゲットIPアドレス62又は送信元IPアドレス65)に一致するインタフェース情報121(MACアドレス122、IPアドレス123)が、VMデータベース24に存在するかを検証する(MACアドレス・IPアドレス検証)。ここで、送信元アドレス情報60と一致するインタフェース情報121がVMデータベース24に存在しない場合、アドレス詐称検出部21は、MACアドレス又はIPアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部22に当該パケットの廃棄を指示する(ステップS13)。
一方、ステップS8において、送信元アドレス情報60と一致するインタフェース情報121が、VMデータベース24に存在する場合、アドレス詐称検出部21は、当該インタフェース情報121に対応するVM名120(UUID)を得る。VM名120(UUID)が特定された場合、アドレス詐称検出部21は、非同期イベントとともに受給したOFVS33のDPID63を検索鍵として、仮想サーバデータベース23からIPアドレス111とログイン情報113を検索する(ステップS9)。ここで、DPID63に一致するDPID112がない場合、アドレス詐称検出部21は、MACアドレス又はIPアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部22に当該パケットの廃棄を指示する(ステップS13)。
一方、ステップS9において、DPID63に対応するIPアドレス111とログイン情報113を取得した場合、アドレス詐称検出部21は、取得したIPアドレス111によって特定したホストOS32に対し、取得したログイン情報113を用いてログインする。続いてアドレス詐称検出部21は、ステップS8において取得したVM名120(UUID)に対応する仮想マシン31の情報を送信元情報7として取得する(ステップS10)。ここで、指定したVM名120に対応する送信元情報7が得られなかった場合、アドレス詐称検出部21は、ファーストパケットのMACアドレス又はIPアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部22に当該パケットの廃棄を指示する(ステップS13)。
一方、ステップS10において送信元情報7の取得に成功した場合、アドレス詐称検出部21は、先ず、ファーストパケットの送信元MACアドレス61と一致するMACアドレスが送信元情報7に含まれているかを検索する(ステップS11:MACアドレス検証)。ここで送信元情報7内に、送信元MACアドレス61と一致するMACアドレス72がない場合、アドレス詐称検出部21は、ファーストパケットのMACアドレスが詐称されていると判断し、フロー制御部22に当該パケットの廃棄を指示する(ステップS13)。
一方、ステップS11において、送信元情報7内に、送信元MACアドレス61と一致するMACアドレス72が存在する場合、アドレス詐称検出部21は、当該MACアドレス72に対応付けられたポート名73が、ファーストパケットの受信ポート番号64と一致するかを検証する(ステップS12:受信ポート検証)。ここで、ステップS11において検索されたMACアドレス72に対応し、受信ポート番号64と一致するポート名73がない場合、アドレス詐称検出部21は、ファーストパケットのMACアドレス又はIPアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部22に当該パケットの廃棄を指示する(ステップS13)。
一方、ステップS11において検索されたMACアドレス72に対応し、受信ポート番号64と一致するポート名73が存在する場合、アドレス詐称検出部21は、ファーストパケットに関してアドレス詐称なしと判断し、フロー制御部22に対し、当該パケットを転送するためのフローエントリの設定を指示する(ステップS13)。
ステップS13において、パケットの廃棄を指示されたフロー制御部22は、PacketINされたファーストパケットを破棄するとともに、当該パケットのヘッダ情報の一部又は全部をルールとし、パケット破棄をアクションとするフローエントリをOFVS33に設定する(ステップS14)。例えば、フロー制御部22はファーストパケットの受信ポート番号と送信元MACアドレスをルールとし、当該ルールに一致する受信パケットを破棄することをアクションとしたフローエントリを、ファーストパケットの通知元のOFVS33に設定する。これにより、以後、OFVS33において、OFC2において詐称有りと判定されたパケットを受信した場合、OFC2に通知することなく廃棄され、不正パケットのネットワーク内への侵入をネットワークの入口で遮断することが可能となる。
一方、ステップS13において、パケットの転送を指示されたフロー制御部22は、PacketINされたファーストパケットのヘッダ情報の一部又は全部をルールとし、当該パケットを転送することをアクションとしたフローエントリを、通信経路上のスイッチ(OFVS33やOFS4)に設定する(ステップS14)。
又、ステップS8、S9、S10、S11においてアドレス詐称と判断したアドレス詐称検出部21は、出力装置5に対し、ステップS7において非同期イベントと共にフロー制御部22から受給した送信元アドレス情報60を出力する(ステップS15)。この場合、出力装置5は、送信元アドレス情報60(送信元MACアドレス61及び、ターゲットIPアドレス62又は送信元IPアドレス65)を詐称アドレスとして視認可能に出力する。更に、アドレス詐称検出部21は、アドレス詐称と判断すると受信ポート番号64を出力装置5に出力してもよい。この場合、出力装置5は、受信ポート番号64を視認可能に出力する。
次に、図8を参照して、第1の実施の形態におけるネットワーク監視動作の具体例を説明する。図8は、第1の実施の形態におけるコンピュータシステムの構成及び動作を説明するための具体的な一例を示す図である。図8を参照して、仮想サーバデータベース23には、仮想サーバデータ11として、IPアドレス111:“192.168.10.10”、DPID112:“vSwitchA(DPID 01)”、“vSwitchB(DPID 02)”、ログイン情報113:“Password−1”が登録されている。又、VMデータベース24には、VMデータ12として、VM名120:“VM−B(UUID−B)”、インタフェース情報121:“IF−c:MAC−c、IP−c”が登録されている。又、仮想サーバ3は、2つの仮想マシン31:“VM−A”、“VM−B”と2つのOFVS33:“vSwitchA”、“vSwitchB”を備える。仮想マシン31“VM−A”は、2つのインタフェース“IF−a”、“IF−b”を持ち、仮想マシン31“VM−B”は、1つのインタフェース“IF−c”を持つ。OFVS33“vSwitchA”は、ポート“Port−A”に接続され、OFVS33“vSwitchB”は、2つのポート“Port−B”、“Port−C”に接続されている。
このようなコンピュータシステムにおけるネットワーク監視動作を説明する。仮想マシン31“VM−B”が他の仮想サーバから移動して、Gratuitous ARPパケットを送信すると、OFVS33“vSwitchB”は、ポート“Port−C”を介して当該パケットを受信する。OFVS33“vSwitchB”は、受信パケットをファーストパケットとしてフロー制御部22にPacketINする。
フロー制御部22は、PacketINに応じて非同期イベントとともに検証情報6をアドレス詐称検出部21に通知する。ここでは、検証情報6として、送信元MACアドレス61:“MAC−c”、ターゲットIPアドレス62:“IP−c”、DPID63:“DPID 02”、受信ポート番号64:“Port−C”が通知される。
アドレス詐称検出部21は、通知された送信元MACアドレス61“MAC−c”と、ターゲットIPアドレス62“IP−c”を用いてMACアドレス・IPアドレス検証を行う。VMデータベース24には、送信元MACアドレス61“MAC−c”と、ターゲットIPアドレス62“IP−c”に一致するインタフェース情報121“MAC−c”、“IP−c”が存在するため、MACアドレス・IPアドレス検証においては、詐称アドレスなしと判定される。又、アドレス詐称検出部21は、当該インタフェース情報121に対応するVM名“VM−B(UUID−B)”を抽出する。
次に、アドレス詐称検出部21は、仮想サーバデータベース23内において、PacketINによって受給したDPID63“DPID 02”に一致するDPID112に対応するIPアドレス111:“192.168.10.10”及びログイン情報113:“Password−1”を取得し、これらを用いてホストOS32にアクセス(ログイン)する。これにより、アドレス詐称検出部21は、アクセス先のホストOS32からVMデータベース24から抽出したVM名“VM−B(UUID−B)”の仮想マシン31に関する情報を、送信元情報7として取得する。ここでは、アドレス詐称検出部21はVM名71:“VM−B(UUID−B)”、インタフェース名:“IF−c”、MACアドレス72:“MAC−c”、ポート名73:“Port−C”を取得する。
次に、アドレス詐称検出部21は、MACアドレス検証を行う。ここでは、取得した送信元情報7内に、PacketINによって受給した送信元MACアドレス61“MAC−c”と一致するMACアドレス72“MAC−c”があるため、MACアドレス検証においては、詐称アドレスなしと判定される。又、アドレス詐称検出部21は、当該MACアドレス72“MAC−c”に対応するポート名“Port−C”と、送信元MACアドレス61に対応する受信ポート番号“Port−C”が一致するため、受信ポート検証において、詐称アドレスなしと判定される。
アドレス詐称検出部21は、全てのアドレス詐称検証の結果、詐称なしと判定したため、ファーストパケットとして通知されたGratuitous ARPパケットは、正当な送信元MACアドレス及びターゲットIPアドレスを使用していると判断し、フロー制御部22に当該パケットの転送を指示する。
フロー制御部22は、アドレス詐称検出部21からのパケット転送指示に応じて、例えば、送信元MACアドレスが“MAC−c”、ターゲットIPアドレスが“IP−c”をルールとし、“OFS4に転送する”をアクションとして規定したフローエントリをOFVS33“vSwitchA”に設定する。これにより、OFVS33“vSwitchA”は、設定されたルールに適合するARPパケットを受信した場合、当該パケットをOFS4に転送することとなる。
一方、上述したアドレス詐称検証の1つでも詐称アドレス有りと判定された場合、フロー制御部22は、アドレス詐称検出部21からのパケット破棄指示に応じて、例えば、送信元MACアドレスが“MAC−c”、ターゲットIPアドレスが“IP−c”をルールとし、“パケットを破棄する”をアクションとして規定したフローエントリをOFVS33“vSwitchA”に設定する。これにより、OFVS33“vSwitchA”は、設定されたルールに適合するARPパケットを受信した場合、当該パケットを破棄することとなる。
又、上述したアドレス詐称検証の1つでも詐称アドレス有りと判定された場合、非同期イベントと共にアドレス詐称検出部21に供給される検証情報6が出力装置5により視認可能に出力される。
以上のような動作により、本発明によるシステムでは、送信元MACアドレス又はターゲットIPアドレスを詐称したGratuitous ARPパケットや、送信元MACアドレス又は送信元IPアドレスを詐称したIPパケットを検出し、視認可能に出力することができる。又、PacketINによってOFVS33から取得した検証情報6により、検出したアドレス詐称パケットの送信元のMACアドレスやIPアドレスを特定できる。又、PacketINしたOFVS33のDPID及び受信ポート番号も特定できることから、不正アクセスを試みた物理的な位置を特定することが可能となる。
本発明によるシステムは、オープンフロープロトコルを利用しているため、アドレス詐称パケットがレイヤ2ネットワークに入る手前(入口)のスイッチ(上述の例ではOFVS33)において、送信元MACアドレスとターゲットIPアドレス(又は送信元IPアドレス)の組み合わせの正当性を検証でき、アドレス詐称と判断されたパケットを当該スイッチにおいて廃棄することができる。このため、不正なARPパケットやIPパケットがネットワークに侵入する前に、これらを遮断することが可能となる。この結果、本発明によれば、ターゲットIPアドレスを詐称したGratuitous ARPによる正当な利用者への妨害や、パケットの盗聴を阻止することが可能となる。
特許文献1に記載のシステムでは、アドレス詐称されたARPパケットを受信する度に受信パケットによるARPテーブルの書換えと監視サーバによるARPテーブルの更新が行われるため、不正アクセスによる通信妨害の効果を抑制することができない。一方、本発明によるシステムでは、オープンフロープロトコルを利用することで、スイッチおいて受信されたパケットが、どの位置からレイヤ2ネットワークに侵入したかをOFC2において知ることができる。このため、ARPパケットの送信元MACアドレスと、その位置に存在する仮想マシンのMACアドレスを比較することで、異なる場所からネットワークに流入しようとする不正なARPパケットを流入前に遮断できる。この結果、本発明によれば、送信元MACアドレスを詐称したARP(特にGratuitous ARP)による正当な利用者への妨害を阻止することが可能となる。
更に、本発明によるシステムでは、許可しない部外者が送信するARPパケットやIPパケットを、送信元MACアドレスと、送信元IPアドレスと、スイッチの受信ポートの組み合わせで検証し、ネットワークに流入させないように制御している。このため、本発明によれば、許可していない部外者が、未使用のIPアドレスを不正に利用し、ネットワークにアクセスすることを遮断できる。
更に、本発明によるシステムでは、MACアドレスやIPアドレスを詐称した余分なトラフィック、特にブロードキャストトラフィックがレイヤ2ネットワークを流れる手前で遮断できるため、ネットワーク内の余分なトラフィックを削減することができる。
2.第2の実施の形態
(コンピュータシステムの構成)
第1の実施の形態では、オープンフロープロトコルを利用したOFVS33を備える形態について説明したが、これに限らず、仮想スイッチがオープンフロープロトコルを利用しない場合でも、サーバ間を接続するスイッチがオープンフロープロトコルに従って動作している場合、本発明が適用できる。第2の実施の形態におけるコンピュータシステムでは、仮想サーバ3’と他のホスト端末とを接続するオープンフロースイッチ4からオープンフローコントローラ2に送信されるファーストパケットに基づいて、ARP要求パケットやIPパケットのアドレス詐称の有無を監視する。以下では、第1の実施の形態と異なる構成及び動作について詳細に説明し、同様な構成及び動作の説明は省略する。
図9は、本発明によるコンピュータシステムの第2の実施の形態における構成を示す図である。図9を参照して、第2の実施の形態における仮想サーバ3’は、第1の実施の形態におけるオープンフロー仮想スイッチ33に替えて、オープンフロープロトコルに従わないレイヤ2の仮想スイッチ34を備える。このため、仮想マシン31から送信されたGratuitous ARPパケットは、OFS4からフロー制御部22へPacketINされる。すなわち、第2の実施の形態におけるOFS4は、ホスト端末である仮想マシン31に対して本システムへの入口に相当することになる。又、第2の実施の形態における入力装置1は、図10に示す仮想サーバデータ11’をOFC2に入力する。これらの構成以外の構成は、第1の実施の形態と同様である。
図10は、第2の実施の形態におけるアドレス詐称検証で用いられる仮想サーバデータ11’の構造の一例を示す図である。図10を参照して、仮想サーバデータ11’は、仮想サーバ3’に割り当てられたIPアドレス111と、当該仮想サーバ3’の物理ネットワークインタフェースが接続するOFS4のDPID112と、当該仮想サーバ3’にアクセスするためのログイン情報113と、OFS4が接続するポート名114を含む。IPアドレス111、DPID112、ログイン情報113、ポート名114は、それぞれ仮想サーバ3’毎に対応付けられて仮想サーバデータ11’として入力装置1に記録される。
(ネットワーク監視動作)
図11を参照して、第2の実施の形態におけるネットワーク監視動作の詳細を説明する。
図11を参照して、先ず、コンピュータシステムの起動に際し、予め、入力装置1から仮想サーバデータ11’及びVMデータ12をOFC2のアドレス詐称検証用データベース20に記録する(ステップS21〜S24)。詳細な動作は、図7に示すステップS1〜S4と同様である。
続いて、仮想マシン31からシステム内にパケット転送が行われたときのネットワーク監視動作について説明する。仮想マシン31は、Gratuitous ARPパケット、又は、IPパケットを送信する(ステップS25)。このとき、仮想マシン31からのパケットは、仮想スイッチ34を介して仮想サーバ3’の外部のOFS4に転送される。
OFS4は、仮想サーバ3’との間を接続するポートから受信したGratuitous ARPパケット、又はIPパケットのヘッダ情報が、自身に設定されたフローエントリのルールに適合(一致)するか否かを判定し、適合するルールがある場合、当該ルールに対応するアクションに従い受信パケットを処理(例えば、他のOFS4への転送や破棄)する(図示なし)。一方、受信パケットのヘッダ情報に適合(一致する)フローエントリ(内のルール)が設定されていない場合、OFS4は、当該受信パケットをファーストパケットとしてOFC2のフロー制御部22に通知する(ステップS26)。ここでOFS4は、PacketINによって、フロー制御部22に対しファーストパケット又はファーストパケットのヘッダ情報を、OFS4のDPID63とともに送信する。
PacketINしたフロー制御部22は、非同期イベントとともにOFS4から送信された情報から検証情報6を抽出してアドレス詐称検出部21に出力する(ステップS27)。
アドレス詐称検出部21は、図7に示すステップS8と同様に、仮想サーバDB23を利用してファーストパケットの送信元アドレスの検証を行う(ステップS28:MACアドレス・IPアドレス検証)。ここで、DPID63に一致するDPID112がない場合、アドレス詐称検出部21は、ファーストパケットのMACアドレス又はIPアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部22に当該パケットの廃棄を指示する(ステップS33)。
一方、ステップS28において、送信元アドレス情報60と一致するインタフェース情報121が、VMデータベースに存在する場合、アドレス詐称検出部21は、当該インタフェース情報121に対応するVM名120(UUID)を得る。VM名120(UUID)が特定された場合、アドレス詐称検出部21は、非同期イベントとともに受給したOFS4のDPID63を検索鍵として、仮想サーバデータベース23からIPアドレス111、ログイン情報113及びポート名114を検索する(ステップS29)。ここで、DPID63に一致するDPID112がない場合、アドレス詐称検出部21は、MACアドレス又はIPアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部22に当該パケットの廃棄を指示する(ステップS33)。
ステップS29において、DPID63に対応するIPアドレス111、ログイン情報113、ポート名114を取得した場合、アドレス詐称検出部21は、仮想サーバデータベース23から取得したポート名114と、フロー制御部22から受給した受信ポート番号64とを比較する(ステップS30:受信ポート検証)。ステップS30においてポート名114と受信ポート番号64が一致しない場合、アドレス詐称検出部21は、受信ポート名が詐称されていると判断し、フロー制御部22に当該パケットの廃棄を指示する(ステップS33)。
一方、ステップS30においてポート名114と受信ポート番号64が一致する場合、アドレス詐称検出部21は、ステップS29において取得したIPアドレス111によって特定したホストOS32に対し、取得したログイン情報113を用いてログインする。続いてアドレス詐称検出部21は、ステップS28において取得したVM名120(UUID)に対応する仮想マシン31の情報を送信元情報7として取得する(ステップS31)。ここで、指定したVM名120に対応する送信元情報7が得られなかった場合、アドレス詐称検出部21は、ファーストパケットのMACアドレス又はIPアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部22に当該パケットの廃棄を指示する(ステップS33)。尚、第2の実施の形態において取得する送信元情報7にはポート名73は含まれなくても良い。
一方、ステップS31において送信元情報7の取得に成功した場合、アドレス詐称検出部21は、ファーストパケットの送信元MACアドレス61と一致するMACアドレスが送信元情報7に含まれているかを検索する(ステップS32:MACアドレス検証)。ここで送信元情報7内に、送信元MACアドレス61と一致するMACアドレス72がない場合、アドレス詐称検出部21は、ファーストパケットのMACアドレスが詐称されていると判断し、フロー制御部22に当該パケットの廃棄を指示する(ステップS33)。
一方、ステップS32において、送信元情報7内に、送信元MACアドレス61と一致するMACアドレス72が存在する場合、アドレス詐称検出部21は、ファーストパケットに関してアドレス詐称なしと判断し、フロー制御部22に対し、当該パケットを転送するためのフローエントリの設定を指示する(ステップS33)。
ステップS33において、パケットの廃棄を指示されたフロー制御部22は、PacketINされたファーストパケットを破棄するとともに、当該パケットのヘッダ情報の一部又は全部をルールとし、パケット破棄をアクションとするフローエントリをOFS4に設定する(ステップS34)。これにより、OFS4において、一度詐称の有無が判定されたパケットを受信した場合、OFC2に通知することなく廃棄され、不正パケットのネットワーク内への侵入をネットワークの入口で遮断することが可能となる。
一方、ステップS33において、パケットの転送を指示されたフロー制御部22は、PacketINされたファーストパケットのヘッダ情報の一部又は全部をルールとし、当該パケットを転送することをアクションとしたフローエントリを、通信経路上のOFS4に設定する(ステップS34)。
又、ステップS28、S29、S30、S31、S32においてアドレス詐称と判断したアドレス詐称検出部21は、出力装置5に対し、ステップS27において非同期イベントと共にフロー制御部22から受給した送信元アドレス情報60を出力する(ステップS35)。この場合、出力装置5は、送信元アドレス情報60(送信元MACアドレス61及び、ターゲットIPアドレス62又は送信元IPアドレス65)を詐称アドレスとして視認可能に出力する。更に、アドレス詐称検出部21は、アドレス詐称と判断すると受信ポート番号64を出力装置5に出力してもよい。この場合、出力装置5は、受信ポート番号64を視認可能に出力する。
次に、図12を参照して、第2の実施の形態におけるネットワーク監視動作の具体例を説明する。図12は、第2の実施の形態におけるコンピュータシステムの構成及び動作を説明するための具体的な一例を示す図である。図12を参照して、仮想サーバデータベース23には、仮想サーバデータ11’として、IPアドレス111:“192.168.10.10”、DPID112:“SwitchA(DPID 01)”、ログイン情報113:“Password−1”、ポート名114:“Port−X”が登録されている。又、VMデータベース24には、VMデータ12として、VM名120:“VM−A(UUID−A)”、インタフェース情報121:“IF−a:MAC−a、IP−a”、IF−b:MAC−b、IP−b”が登録されている。又、仮想サーバ3’は、2つの仮想マシン31:“VM−A”、“VM−B”と1つの仮想スイッチ34:“vSwitch”を備える。仮想マシン31“VM−A”は、2つのインタフェース“IF−a”、“IF−b”を持ち、仮想マシン31“VM−B”は、1つのインタフェース“IF−c”を持つ。仮想スイッチ34“vSwitch”は、ポート“Port−A、Port−B、Port−C”に接続されている。更に、OFS4“OpenFlow SwitchA”は、ポート“Port−X”を介して仮想スイッチ34“vSwitch”に接続される。
このようなコンピュータシステムにおけるネットワーク監視動作を説明する。仮想マシン31“VM−A”が他の仮想サーバから移動して、Gratuitous ARPパケットを送信すると、当該パケットは仮想スイッチ34“vSwitchA”からポート“Port−X”を介してOFS4“OpenFlow SwitchA”に転送される。OFS4“OpenFlow SwitchA”は、受信パケットをファーストパケットとしてフロー制御部22にPacketINする。
次に、フロー制御部22は、PacketINに応じて非同期イベントとともに検証情報6をアドレス詐称検出部21に通知する。ここでは、検証情報6として、送信元MACアドレス61:“MAC−a”、ターゲットIPアドレス62:“IP−a”、DPID63:“DPID 01”、受信ポート番号64:“Port−X”が通知される。
アドレス詐称検出部21は、通知された送信元MACアドレス61“MAC−a”と、ターゲットIPアドレス62“IP−a”を用いてMACアドレス・IPアドレス検証を行う。VMデータベース24には、送信元MACアドレス61“MAC−a”と、ターゲットIPアドレス62“IP−a”に一致するインタフェース情報121“MAC−a”、“IP−a”が存在するため、MACアドレス・IPアドレス検証においては、詐称アドレスなしと判定される。又、アドレス詐称検出部21は、当該インタフェース情報121に対応するVM名“VM−A(UUID−A)”を抽出する。
次に、アドレス詐称検出部21は、受信ポート検証を行う。ここでは、PacketINによって受給した受信ポート番号64:“Port−X”と、仮想サーバデータベース23に登録されているポート名114“Port−X”が一致するため、受信ポート検証においては詐称アドレスなしと判定される。
続いて、アドレス詐称検出部21は、仮想サーバデータベース23内において、PacketINによって受給したDPID63“DPID 01”に一致するDPID112に対応するIPアドレス111:“192.168.10.10”及びログイン情報113:“Password−1”を取得し、これらを用いてホストOS32にアクセス(ログイン)する。これにより、アドレス詐称検出部21は、アクセス先のホストOS32からVMデータベース24から抽出したVM名“VM−A(UUID−A)”の仮想マシン31に関する情報を、送信元情報7として取得する。ここでは、アドレス詐称検出部21はVM名71:“VM−A(UUID−A)”に対応付けられたインタフェース名:“IF−a”、MACアドレス72:“MAC−a”と、インタフェース名:“IF−b”、MACアドレス72:“MAC−b”を取得する。
次に、アドレス詐称検出部21は、MACアドレス検証を行う。ここでは、取得した送信元情報7内に、PacketINによって受給した送信元MACアドレス61“MAC−a”と一致するMACアドレス72“MAC−a”があるため、MACアドレス検証においては、詐称アドレスなしと判定される。
アドレス詐称検出部21は、全てのアドレス詐称検証の結果、詐称なしと判定したため、ファーストパケットとして通知されたGratuitous ARPパケットは、正当な送信元MACアドレス及びターゲットIPアドレスを使用していると判断し、フロー制御部22に当該パケットの転送を指示する。
フロー制御部22は、アドレス詐称検出部21からのパケット転送指示に応じて、例えば、送信元MACアドレスが“MAC−a”、ターゲットIPアドレスが“IP−a”をルールとし、“他のOFS4に転送する”をアクションとして規定したフローエントリをOFS4“OpenFlow SwitchA”に設定する。これにより、OFS“OpenFlow SwitchA”は、設定されたルールに適合するARPパケットを受信した場合、当該パケットを、指定された他のOFS4に転送することとなる。
一方、上述したアドレス詐称検証の1つでも詐称アドレス有りと判定された場合、フロー制御部22は、アドレス詐称検出部21からのパケット破棄指示に応じて、例えば、送信元MACアドレスが“MAC−a”、ターゲットIPアドレスが“IP−a”をルールとし、“パケットを破棄する”をアクションとして規定したフローエントリをOFS4“OpenFlow SwitchA”に設定する。これにより、OFS4“OpenFlow SwitchA”は、設定されたルールに適合するARPパケットを受信した場合、当該パケットを破棄することとなる。
又、上述したアドレス詐称検証の1つでも詐称アドレス有りと判定された場合、非同期イベントと共にアドレス詐称検出部21に供給される検証情報6が出力装置5により視認可能に出力される。
以上のように、第2の実施の形態におけるコンピュータシステムによれば、仮想スイッチがオープンフロープロトコルを利用していない場合でも、レイヤ2ネットワークの入口となるスイッチがオープンフロープロトコルに従って動作することで、当該スイッチにおいてアドレス詐称パケットを遮断することが可能となる。第1の実施の形態では、仮想スイッチが接続するポート番号(受信ポート番号)をホストOSから取得して詐称検証していたが、第2の実施の形態では、ファーストパケットの通知元が物理スイッチであるため、予め登録されたポート名を利用して受信ポートの詐称を検証することができる。又、第2の実施の形態によるコンピュータシステムにおける他の効果は、第1の実施の形態と同様である。
3.第3の実施の形態
(コンピュータシステムの構成)
第1及び第2の実施の形態では、仮想サーバ間の通信を監視するシステムについて説明したが、これに限らず、オープンフロースイッチで接続されたネットワーク機器間の通信監視にも本発明は適用できる。第3の実施の形態におけるコンピュータシステムでは、ネットワーク機器30間の接続するオープンフロースイッチ4からオープンフローコントローラ2に送信されるファーストパケットに基づいて、ARP要求パケットやIPパケットのアドレス詐称の有無を監視する。以下では、第1の実施の形態と異なる構成及び動作について詳細に説明し、同様な構成及び動作の説明は省略する。
図13は、本発明によるコンピュータシステムの第3の実施の形態における構成を示す図である。図13を参照して、第3の実施の形態におけるコンピュータシステムは、第1の実施の形態における仮想サーバ3に替えて、ネットワーク機器30を備える。すなわち、第1、第2の実施の形態では、ネットワークを構成するホスト端末として仮想サーバを一例に説明したが、本実施の形態では、ネットワーク機器をホスト端末としたコンピュータシステムについて説明する。ここで、ネットワーク機器30とは、計算機やネットワークプリンターなど、TCP/IP通信を行う端末のいずれかを指す。第3の実施の形態におけるシステムでは、ネットワーク機器30から送信されたGratuitous ARPパケットやIPパケットは、OFS4からフロー制御部22へPacketINされることとなる。ここで、OFS4は、ネットワーク機器30から送信されたパケットを最初に受信するスイッチとなる。すなわち、OFS4は、ホスト端末であるネットワーク機器30に対して本システムへの入口に相当することになる。又、第3の実施の形態における入力装置1’は、図14に示す機器データ13をOFC2’に入力する。更に、第3の実施の形態におけるOFC2’は、第1の実施の形態における仮想サーバデータベース23及びVMデータベース24に替えて、機器データベース25を備える。これらの構成以外の構成は、第1の実施の形態と同様である。
図14は、第3の実施の形態におけるアドレス詐称検証で用いられる機器データ13の構造の一例を示す図である。図14を参照して、機器データ13は、システムに接続が許可された正当なネットワーク機器30に割り当てられたMACアドレス131及びIPアドレス132(2つを総称する場合、機器アドレス情報130と称す)と、当該ネットワーク機器30の物理ネットワークインタフェースが接続するOFS4のDPID133と、当該OFS4のポート名134を含む。MACアドレス131、IPアドレス132、DPID133、ポート名134は、それぞれネットワーク機器30毎に対応付けられて機器データ13として入力装置1’に記録される。
(ネットワーク監視動作)
図15を参照して、第3の実施の形態におけるネットワーク監視動作の詳細を説明する。
図15を参照して、先ず、コンピュータシステムの起動に際し、予め、入力装置1’から機器データ13をOFC2’の機器データベースに記録する(ステップS41、S42)。詳細には、入力装置1’から与えられた機器データ13は、アドレス詐称検出部21に供給され、機器データベース25に格納される(ステップS41、S42)。これにより、機器データベース25は、最新の機器データ13によって更新される。ここで、機器データベース25は、アドレス詐称検出部21によって常時検索が可能である。又、機器データベース25の更新は、システムの運用中に行われても良い。
続いて、ネットワーク機器30からシステム内にパケット転送が行われたときのネットワーク監視動作について説明する。ネットワーク機器は、Gratuitous ARPパケット、又は、IPパケットを送信する(ステップS43)。このとき、ネットワーク機器30からのパケットはOFS4に転送される。
OFS4は、ネットワーク機器30との間を接続するポートから受信したGratuitous ARPパケット、又はIPパケットのヘッダ情報が、自身に設定されたフローエントリのルールに適合(一致)するか否かを判定し、適合するルールがある場合、当該ルールに対応するアクションに従い受信パケットを処理(例えば、他のOFS4への転送や破棄)する(図示なし)。一方、受信パケットのヘッダ情報に適合(一致する)フローエントリ(内のルール)が設定されていない場合、OFS4は、当該受信パケットをファーストパケットとしてOFC2’のフロー制御部22に通知する(ステップS44)。ここでOFS4は、PacketINによって、フロー制御部22に対しファーストパケット又はファーストパケットのヘッダ情報を、OFS4のDPID63とともに送信する。
PacketINしたフロー制御部22は、非同期イベントとともにOFS4から送信された情報から検証情報6を抽出してアドレス詐称検出部21に出力する(ステップS45)。
アドレス詐称検出部21は、非同期イベントとともに受給した検証情報6から送信元アドレス情報60を抽出し、機器データベース25を利用してファーストパケットの送信元アドレスの検証を行う(ステップS46:MACアドレス・IPアドレス検証)。詳細には、アドレス詐称検出部21は、送信元アドレス情報60(送信元MACアドレス61、ターゲットIPアドレス62又は送信元IPアドレス65)に一致する機器アドレス情報130(MACアドレス131、IPアドレス132)が、機器データベース25に存在するかを検証する(MACアドレス・IPアドレス検証)。ここで、送信元アドレス情報60と一致する機器アドレス情報130が機器データベース25に存在しない場合、アドレス詐称検出部21は、MACアドレス又はIPアドレスの何れか、もしくは双方が詐称されていると判断し、フロー制御部22に当該パケットの廃棄を指示する(ステップS48)。
一方、ステップS46において、送信元アドレス情報60と一致する機器アドレス情報130が、機器データベース25に存在する場合、当該機器アドレス情報130に対応するポート名134と、PacketINによって取得した受信ポート番号64とを比較する(ステップS47:受信ポート検証)。ステップS47においてポート名134と受信ポート番号64が一致しない場合、アドレス詐称検出部21は、受信ポート名が詐称されていると判断し、フロー制御部22に当該パケットの廃棄を指示する(ステップS48)。
一方、ステップS47においてポート名114と受信ポート番号64が一致する場合、アドレス詐称検出部21は、ファーストパケットに関してアドレス詐称なしと判断し、フロー制御部22に対し、当該パケットを転送するためのフローエントリの設定を指示する(ステップS48)。
尚、ステップS46におけるMACアドレス・IPアドレス検証とステップS47における受信ポート検証の実行順は図15に示す順に限らず逆順でも同時的に行われても構わない。又、MACアドレス・IPアドレス検証又は受信ポート検証の際、機器データベース25内のDPID133と、PacketINによって通知されたDPID63との一致が検証されても良い。
ステップS48において、パケットの廃棄を指示されたフロー制御部22は、PacketINされたファーストパケットを破棄するとともに、当該パケットのヘッダ情報の一部又は全部をルールとし、パケット破棄をアクションとするフローエントリをOFS4に設定する(ステップS49)。これにより、OFS4において、一度詐称の有無が判定されたパケットを受信した場合、OFC2’に通知することなく廃棄され、不正パケットのネットワーク内への侵入をネットワークの入口で遮断することが可能となる。
一方、ステップS48において、パケットの転送を指示されたフロー制御部22は、PacketINされたファーストパケットのヘッダ情報の一部又は全部をルールとし、当該パケットを転送することをアクションとしたフローエントリを、通信経路上のOFS4に設定する(ステップS49)。
又、ステップS46、S48においてアドレス詐称と判断したアドレス詐称検出部21は、出力装置5に対し、ステップS45において非同期イベントと共にフロー制御部22から受給した送信元アドレス情報60を出力する(ステップS50)。この場合、出力装置5は、送信元アドレス情報60(送信元MACアドレス61及び、ターゲットIPアドレス62又は送信元IPアドレス65)を詐称アドレスとして視認可能に出力する。更に、アドレス詐称検出部21は、アドレス詐称と判断すると受信ポート番号64を出力装置5に出力してもよい。この場合、出力装置5は、受信ポート番号64を視認可能に出力する。
次に、図16を参照して、第3の実施の形態におけるネットワーク監視動作の具体例を説明する。図16は、第3の実施の形態におけるコンピュータシステムの構成及び動作を説明するための具体的な一例を示す図である。図16を参照して、機器データベース25には、機器データ13として、機器アドレス情報130:MACアドレス131:“MAC−d”、IPアドレス132:“IP−d”、DPID133:“SwitchA(DPID 01)”、ポート名134:“Port−X”が登録されている。又、ネットワーク機器30は、1つのインタフェース“IF−d”を持ち、OFS4“OpenFlow SwitchA”は、ポート“Port−X”を介してネットワーク機器30に接続される。
このようなコンピュータシステムにおけるネットワーク監視動作を説明する。ネットワーク機器30がGratuitous ARPパケットを送信すると、当該パケットはポート“Port−X”を介してOFS4“OpenFlow SwitchA”に転送される。OFS4“OpenFlow SwitchA”は、受信パケットをファーストパケットとしてフロー制御部22にPacketINする。
次に、フロー制御部22は、PacketINに応じて非同期イベントとともに検証情報6をアドレス詐称検出部21に通知する。ここでは、検証情報6として、送信元MACアドレス61:“MAC−d”、ターゲットIPアドレス62:“IP−d”、DPID63:“DPID 01”、受信ポート番号64:“Port−X”が通知される。
アドレス詐称検出部21は、通知された送信元MACアドレス61“MAC−d”と、ターゲットIPアドレス62“IP−d”を用いてMACアドレス・IPアドレス検証を行う。機器データベース25には、送信元MACアドレス61“MAC−d”と、ターゲットIPアドレス62“IP−d”に一致する機器アドレス情報130“MAC−d”、“IP−d”が存在するため、MACアドレス・IPアドレス検証においては、詐称アドレスなしと判定される。又、アドレス詐称検出部21は、当該機器アドレス情報130に対応するポート名134“Port−X”を抽出する。
次に、アドレス詐称検出部21は、受信ポート検証を行う。ここでは、PacketINによって受給した受信ポート番号64:“Port−X”と、機器データベース25から抽出したポート名134“Port−X”が一致するため、受信ポート検証においては詐称アドレスなしと判定される。この際、機器データベース25内のDPID133と、PacketINによって受給されたDPID133との一致が検証されても良い。ここではDPID133“DPID 01”とDPID133“DPID 01”が一致するため詐称アドレスなしと判定される。
アドレス詐称検出部21は、全てのアドレス詐称検証の結果、詐称なしと判定したため、ファーストパケットとして通知されたGratuitous ARPパケットは、正当な送信元MACアドレス及びターゲットIPアドレスを使用していると判断し、フロー制御部22に当該パケットの転送を指示する。
フロー制御部22は、アドレス詐称検出部21からのパケット転送指示に応じて、例えば、送信元MACアドレスが“MAC−d”、ターゲットIPアドレスが“IP−d”をルールとし、“他のOFS4に転送する”をアクションとして規定したフローエントリをOFS4“OpenFlow SwitchA”に設定する。これにより、OFS4“OpenFlow SwitchA”は、設定されたルールに適合するARPパケットを受信した場合、当該パケットを指定された他のOFS4に転送することとなる。
一方、上述したアドレス詐称検証の1つでも詐称アドレス有りと判定された場合、フロー制御部22は、アドレス詐称検出部21からのパケット破棄指示に応じて、例えば、送信元MACアドレスが“MAC−d”、ターゲットIPアドレスが“IP−a”をルールとし、“パケットを破棄する”をアクションとして規定したフローエントリをOFS4“OpenFlow SwitchA”に設定する。これにより、OFS4“OpenFlow SwitchA”は、設定されたルールに適合するARPパケットを受信した場合、当該パケットを破棄することとなる。
又、上述したアドレス詐称検証の1つでも詐称アドレス有りと判定された場合、非同期イベントと共にアドレス詐称検出部21に供給される検証情報6が出力装置5により視認可能に出力される。
以上のように、第3の実施の形態におけるコンピュータシステムによれば、オープンフロープロトコルを利用したネットワーク機器間のアドレス詐称パケットの監視及びネットワークへの侵入の遮断が可能となる。第1の実施の形態では、仮想スイッチが接続するポート番号(受信ポート番号)をホストOSから取得して詐称検証していたが、第3の実施の形態では、ファーストパケットの通知元が物理スイッチであるため、予め登録されたポート名を利用して受信ポートの詐称を検証することができる。又、第3の実施の形態によるコンピュータシステムにおける他の効果は、第1の実施の形態と同様である。
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。又、技術的な矛盾のない範囲で、第1、第2、第3の実施の形態を組み合わせることができる。例えば、本発明は、仮想サーバ3、3’ネットワーク機器30のいずれかが搭載されたコンピュータシステムに適用できる。
又、上述の実施の形態では、OFC2、2’は、PacketINをトリガとして仮想マシンの情報(送信元情報7)を取得していたが、これに限らず、システム内の仮想マシンの情報をデータベースとして保持していても良い。又、OFC2、2’は、PacketINをトリガとして取得した仮想マシンの情報(送信元情報7)を一時的に保持し、以降にOFVS33やOFS4から通知されるファーストパケットに対するアドレス詐称検証に利用してもよい。
本発明によるコンピュータシステムで利用されるOFSやOFVSは、従来のオープンフロープロトコル(例えばOpenFlow Switch Specification version1.0によって規定されるプロトコル)に従っていればよく、OFCの機能のみを上述の実施の形態のように変更することで、ネットワーク監視や不正アクセスの防止を実現できる。すなわち、本発明によれば、既存のオープンフローシステムにおいて、OFCの機能のみを変更することで、上述したネットワーク監視や不正アクセスの防止を実現できる。このため、低コスト且つ容易に既存のシステムにネットワーク監視等の機能を追加することが可能となる。
尚、本出願は、日本出願番号2010−275002に基づき、日本出願番号2010−275002における開示内容は引用により本出願に組み込まれる。

Claims (23)

  1. コントローラと、
    前記コントローラによって設定されたフローエントリに適合する受信パケットに対し、前記フローエントリで規定された中継動作を行うスイッチと、
    前記スイッチに接続された仮想サーバと
    を具備し、
    前記コントローラは、正当な仮想サーバのIP(Internet Protocol)アドレスとDPID(Data Path ID)とが対応付けられて記録された仮想サーバデータベースを備え、
    前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットを、自身のDPIDとともに、前記コントローラに通知し、
    前記コントローラは、前記スイッチから通知されたDPIDを検索鍵として前記仮想サーバデータベースからIPアドレスを取得し、前記IPアドレスを利用してアクセスした仮想サーバから、前記仮想サーバに搭載される仮想マシンが利用するインタフェースに割り当てられたMAC(Media Access Control)アドレスを取得し、前記取得したMACアドレスと、前記受信パケットの送信元MACアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
    コンピュータシステム。
  2. 請求項1に記載のコンピュータシステムにおいて、
    前記コントローラは、前記受信パケットの送信元アドレスが詐称されていると判定した場合、前記送信元アドレスを送信元とするパケットを破棄することを規定したフローエントリを前記スイッチに設定する
    コンピュータシステム。
  3. 請求項1又は2に記載のコンピュータシステムにおいて、
    前記コントローラは、前記正当な仮想サーバのIPアドレスと前記受信パケットの送信元IPアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
    コンピュータシステム。
  4. 請求項1、2、又は4のいずれか1項に記載のコンピュータシステムにおいて、
    前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知し、
    前記コントローラは、前記正当な仮想サーバが利用するインタフェースに接続されたスイッチのポート名と、前記受信ポート名とが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
    コンピュータシステム。
  5. 請求項1、2、4、又は5のいずれか1項に記載のコンピュータシステムにおいて、
    前記コントローラは、正当な仮想マシンの仮想マシン名と前記正当な仮想マシンが利用するインタフェースに割り当てられたアドレスとが対応付けられたVMデータベースを保持し、
    前記コントローラは、前記送信元アドレス情報を検索鍵として前記VMデータベースから仮想マシン名を抽出し、前記MACアドレスを取得する対象となる仮想マシンを特定する
    コンピュータシステム。
  6. 請求項1、2、4、5、又は7のいずれか1項に記載のコンピュータシステムにおいて、
    前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知し、
    前記コントローラは、前記スイッチから通知されたDPIDを検索鍵として前記仮想サーバデータベースからIPアドレスを取得し、前記IPアドレスを利用してアクセスした仮想サーバから、前記仮想マシンが利用するインタフェースが接続するスイッチのポート名を取得し、前記取得したポート名と前記受信ポート名が一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
    コンピュータシステム。
  7. 請求項1、2、4、5、7、又は8のいずれか1項に記載のコンピュータシステムにおいて、
    前記コントローラにおいて、前記受信パケットの送信元アドレスが詐称されていると判定された場合、前記受信パケットの送信元アドレスを視認可能に出力する出力装置を更に具備する
    コンピュータシステム。
  8. 請求項9に記載のコンピュータシステムにおいて、
    前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知し、
    前記コントローラにおいて、前記受信パケットの送信元アドレスが詐称されていると判定された場合、前記出力装置は、前記受信ポート名を視認可能に出力する
    コンピュータシステム。
  9. フローエントリをスイッチに設定するフロー制御部と、
    正当な仮想サーバのIP(Internet Protocol)アドレスとDPID(Data Path ID)とが対応付けられて記録された仮想サーバデータベースと、
    前記スイッチは、設定されたフローエントリに適合する受信パケットに対し、前記フローエントリで規定された中継動作を行い、自身に設定されたフローエントリに適合しない受信パケットを、自身のDPIDとともに、前記フロー制御部に通知し、
    前記フロー制御部に通知されたDPIDを検索鍵として前記仮想サーバデータベースからIPアドレスを取得し、前記IPアドレスを利用してアクセスした仮想サーバから、前記仮想サーバに搭載される仮想マシンが利用するインタフェースに割り当てられたMAC(Media Access Control)アドレスを取得し、前記取得したMACアドレスと前記送信元MACアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するアドレス詐称検出部と
    を具備する
    コントローラ。
  10. 請求項11に記載のコントローラにおいて、
    前記アドレス詐称検出部が、前記受信パケットの送信元アドレスが詐称されていると判定した場合、前記フロー制御部は、前記送信元アドレスを送信元とするパケットを破棄することを規定したフローエントリを前記スイッチに設定する
    コントローラ。
  11. 請求項11又は12に記載のコントローラにおいて、
    前記アドレス詐称検出部は、前記正当な仮想サーバのIPアドレスと前記受信パケットの送信元IPアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
    コントローラ。
  12. 請求項11、12、又は14のいずれか1項に記載のコントローラにおいて、
    前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記フロー制御部に通知し、
    前記アドレス詐称検出部は、前記正当な仮想サーバが利用するインタフェースに接続されたスイッチのポート名と、前記フロー制御部に通知された受信ポート名とが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
    コントローラ。
  13. 請求項11、12、14、又は15のいずれか1項に記載のコントローラにおいて、
    正当な仮想マシンの仮想マシン名と前記正当な仮想マシンが利用するインタフェースに割り当てられたアドレスとが対応付けられたVMデータベースを更に具備し、
    前記アドレス詐称検出部は、前記送信元アドレス情報を検索鍵として前記VMデータベースから仮想マシン名を抽出することで、前記MACアドレスを取得する対象となる仮想マシンを特定する
    コントローラ。
  14. 請求項11、12、14、15、又は17のいずれか1項に記載のコントローラにおいて、
    前記スイッチは、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知し、
    前記アドレス詐称検出部は、前記スイッチから通知されたDPIDを検索鍵として前記仮想サーバデータベースからIPアドレスを取得し、前記IPアドレスを利用してアクセスした仮想サーバから、前記仮想マシンが利用するインタフェースが接続するスイッチのポート名を取得し、前記取得したポート名と前記受信ポート名が一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定する
    コントローラ。
  15. コンピュータによって実行されることで請求項11、12、14、15、17、又は18のいずれか1項に記載のコントローラを実現するネットワーク監視プログラムが記録された記憶媒体。
  16. コントローラによって設定されたフローエントリに適合する受信パケットに対し、前記フローエントリで規定された中継動作を行うスイッチを備えるコンピュータシステムにおいて実行されるネットワーク監視方法において、
    前記コントローラは、正当な仮想サーバのIP(Internet Protocol)アドレスとDPID(Data Path ID)とが対応付けられて記録された仮想サーバデータベースを備え、
    前記スイッチが、自身に設定されたフローエントリに適合しない受信パケットを、自身のDPIDとともに、前記コントローラに通知するステップと、
    前記コントローラが、前記スイッチから通知されたDPIDを検索鍵として前記仮想サーバデータベースからIPアドレスを取得するステップと、
    前記コントローラが、前記IPアドレスを利用してアクセスした仮想サーバから、前記仮想サーバに搭載される仮想マシンが利用するインタフェースに割り当てられたMAC(Media Access Control)アドレスを取得するステップと、
    前記コントローラが、前記取得したMACアドレスと前記送信元MACアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップと
    を具備する
    ネットワーク監視方法。
  17. 請求項20に記載のネットワーク監視方法において、
    前記コントローラは、前記受信パケットの送信元アドレスが詐称されていると判定した場合、前記送信元アドレスを送信元とするパケットを破棄することを規定したフローエントリを前記スイッチに設定するステップを更に具備する
    ネットワーク監視方法。
  18. 請求項20又は21に記載のネットワーク監視方法において、
    前記コントローラが、前記正当な仮想サーバのIPアドレスと前記受信パケットの送信元IPアドレスが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップを備える
    ネットワーク監視方法。
  19. 請求項20、21、又は23のいずれか1項に記載のネットワーク監視方法において、
    前記スイッチが、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知するステップと、
    前記コントローラが、前記正当な仮想サーバが利用するインタフェースに接続されたスイッチのポート名と、前記受信ポート名とが一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップと
    を更に具備する
    ネットワーク監視方法。
  20. 請求項20、21、23、又は24のいずれか1項に記載のネットワーク監視方法において、
    前記コントローラは、正当な仮想マシンの仮想マシン名と前記正当な仮想マシンが利用するインタフェースに割り当てられたアドレスとが対応付けられたVMデータベースを保持し、
    前記コントローラが、前記送信元アドレス情報を検索鍵として前記VMデータベースから仮想マシン名を抽出するステップと、
    前記コントローラが、前記MACアドレスを取得する対象となる仮想マシンを特定するステップと
    を更に具備する
    ネットワーク監視方法。
  21. 請求項20、21、23、24又は26のいずれか1項に記載のネットワーク監視方法において、
    前記スイッチが、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知するステップと、
    前記コントローラが、前記スイッチから通知されたDPIDを検索鍵として前記仮想サーバデータベースからIPアドレスを取得するステップと、
    前記コントローラが、前記IPアドレスを利用してアクセスした仮想サーバから、前記仮想マシンが利用するインタフェースが接続するスイッチのポート名を取得するステップと、
    前記コントローラが、前記取得したポート名と前記受信ポート名が一致しない場合、前記受信パケットの送信元アドレスが詐称されていると判定するステップと
    を具備する
    ネットワーク監視方法。
  22. 請求項20、21、23、24、26、又は27のいずれか1項に記載のネットワーク監視方法において、
    前記コントローラにおいて、前記受信パケットの送信元アドレスが詐称されていると判定された場合、前記受信パケットの送信元アドレスを視認可能に出力するステップを更に具備する
    ネットワーク監視方法。
  23. 請求項28に記載のネットワーク監視方法において、
    前記スイッチが、自身に設定されたフローエントリに適合しない受信パケットの受信ポート名を、前記コントローラに通知するステップと、
    前記コントローラにおいて、前記受信パケットの送信元アドレスが詐称されていると判定された場合、前記受信ポート名を視認可能に出力するステップとを更に具備する
    ネットワーク監視方法。
JP2012547830A 2010-12-09 2011-12-02 コンピュータシステム、コントローラ、及びネットワーク監視方法 Expired - Fee Related JP5532458B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012547830A JP5532458B2 (ja) 2010-12-09 2011-12-02 コンピュータシステム、コントローラ、及びネットワーク監視方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010275002 2010-12-09
JP2010275002 2010-12-09
JP2012547830A JP5532458B2 (ja) 2010-12-09 2011-12-02 コンピュータシステム、コントローラ、及びネットワーク監視方法
PCT/JP2011/077933 WO2012077603A1 (ja) 2010-12-09 2011-12-02 コンピュータシステム、コントローラ、及びネットワーク監視方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014084197A Division JP5790827B2 (ja) 2010-12-09 2014-04-16 制御装置、制御方法、及び通信システム

Publications (2)

Publication Number Publication Date
JPWO2012077603A1 JPWO2012077603A1 (ja) 2014-05-19
JP5532458B2 true JP5532458B2 (ja) 2014-06-25

Family

ID=46207091

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012547830A Expired - Fee Related JP5532458B2 (ja) 2010-12-09 2011-12-02 コンピュータシステム、コントローラ、及びネットワーク監視方法
JP2014084197A Expired - Fee Related JP5790827B2 (ja) 2010-12-09 2014-04-16 制御装置、制御方法、及び通信システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014084197A Expired - Fee Related JP5790827B2 (ja) 2010-12-09 2014-04-16 制御装置、制御方法、及び通信システム

Country Status (5)

Country Link
US (1) US9118716B2 (ja)
EP (1) EP2651081A1 (ja)
JP (2) JP5532458B2 (ja)
CN (1) CN103250392B (ja)
WO (1) WO2012077603A1 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5668503B2 (ja) * 2011-02-01 2015-02-12 日本電気株式会社 有害サイトフィルタリングシステム及びフィルタリング方法
US8924787B2 (en) * 2012-01-24 2014-12-30 Nec Laboratories America, Inc. Network debugging
JP5992245B2 (ja) * 2012-08-06 2016-09-14 日本電信電話株式会社 仮想マシンのマイグレーションシステムおよびその方法
JP2015530763A (ja) * 2012-08-30 2015-10-15 日本電気株式会社 アクセス制御システム、アクセス制御方法及びプログラム
CN103905383B (zh) * 2012-12-26 2017-11-24 华为技术有限公司 一种数据报文转发方法、装置和系统
US20140282542A1 (en) * 2013-03-14 2014-09-18 Infinio Systems Inc. Hypervisor Storage Intercept Method
CN104348819A (zh) * 2013-08-07 2015-02-11 上海宽带技术及应用工程研究中心 一种软件定义网络中的防火墙系统及其实现方法
US9426060B2 (en) * 2013-08-07 2016-08-23 International Business Machines Corporation Software defined network (SDN) switch clusters having layer-3 distributed router functionality
WO2015052866A1 (ja) 2013-10-11 2015-04-16 日本電気株式会社 端末装置、端末装置制御方法および端末装置制御プログラム
US9634948B2 (en) * 2013-11-07 2017-04-25 International Business Machines Corporation Management of addresses in virtual machines
CN104660565B (zh) * 2013-11-22 2018-07-20 华为技术有限公司 恶意攻击的检测方法和装置
US20150169345A1 (en) * 2013-12-18 2015-06-18 International Business Machines Corporation Software-defined networking (sdn) for management of traffic between virtual processors
US9300580B2 (en) 2013-12-19 2016-03-29 International Business Machines Corporation Virtual machine network controller
CN104767720A (zh) * 2014-01-08 2015-07-08 中兴通讯股份有限公司 一种软件定义网络中OpenFlow消息跟踪和过滤的方法
US9729578B2 (en) * 2014-01-10 2017-08-08 Arista Networks, Inc. Method and system for implementing a network policy using a VXLAN network identifier
WO2015120128A1 (en) * 2014-02-05 2015-08-13 Verve Wireless, Inc. Methods and apparatus for identification and ranking of synthetic locations for mobile applications
US20150341377A1 (en) * 2014-03-14 2015-11-26 Avni Networks Inc. Method and apparatus to provide real-time cloud security
US9680708B2 (en) 2014-03-14 2017-06-13 Veritas Technologies Method and apparatus for cloud resource delivery
WO2015155997A1 (ja) * 2014-04-11 2015-10-15 日本電気株式会社 設定装置、制御装置、設定方法及びネットワークスイッチ
US20170155680A1 (en) * 2014-06-30 2017-06-01 Hewlett Packard Enterprise Development Lp Inject probe transmission to determine network address conflict
CN106385365B (zh) 2015-08-07 2019-09-06 新华三技术有限公司 基于开放流Openflow表实现云平台安全的方法和装置
US10701104B2 (en) * 2015-08-18 2020-06-30 Acronis International Gmbh Agentless security of virtual machines using a network interface controller
DE102016221233B3 (de) * 2016-10-27 2017-09-14 Volkswagen Aktiengesellschaft Verfahren zum Verwalten einer ersten Kommunikationsverbindung, System umfassend einen ersten Kommunikationspartner und einen zweiten Kommunikationspartner sowie Fahrzeug
US20200128029A1 (en) * 2017-03-13 2020-04-23 Nec Corporation Network device, monitoring and control device, network system, and control method therefor
CN110945837B (zh) * 2017-06-01 2022-11-01 瑞典爱立信有限公司 优化sdn中的服务节点监视
WO2019111466A1 (ja) * 2017-12-08 2019-06-13 日本電気株式会社 情報処理装置、仮想化インフラストラクチャ管理装置、仮想ネットワーク機能の管理方法及びプログラム
CN108600158B (zh) * 2018-03-08 2020-05-22 清华大学 一种基于软件定义网络的源地址验证系统
CN109413675A (zh) * 2018-12-05 2019-03-01 斑马网络技术有限公司 车联网流量控制方法、装置及车载终端
US11303548B2 (en) 2020-07-31 2022-04-12 Bank Of America Corporation Network directionality mapping system
CN113904984B (zh) * 2021-10-21 2022-12-16 杭州志卓科技股份有限公司 一种适用于sap与b2b系统的数据传输方法
CN114666300B (zh) * 2022-05-20 2022-09-02 杭州海康威视数字技术股份有限公司 基于多任务的双向连接阻断方法、装置及电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7234163B1 (en) * 2002-09-16 2007-06-19 Cisco Technology, Inc. Method and apparatus for preventing spoofing of network addresses
US7523485B1 (en) * 2003-05-21 2009-04-21 Foundry Networks, Inc. System and method for source IP anti-spoofing security
US7516487B1 (en) * 2003-05-21 2009-04-07 Foundry Networks, Inc. System and method for source IP anti-spoofing security
JP2005210451A (ja) 2004-01-23 2005-08-04 Fuji Electric Holdings Co Ltd 不正アクセス防止装置及びプログラム
JP5240784B2 (ja) 2009-05-29 2013-07-17 株式会社吉野工業所 閉鎖弁付きエアゾール容器
CN101883090A (zh) 2010-04-29 2010-11-10 北京星网锐捷网络技术有限公司 一种客户端的接入方法、设备及系统
KR101270041B1 (ko) * 2011-10-28 2013-05-31 삼성에스디에스 주식회사 Arp 스푸핑 공격 탐지 시스템 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6014013150; Martin Casado et al.: 'Ethane: Taking Control of the Enterprise' SIGCOMM '07 Proceedings of the 2007 conference on Applications, technologies, architectures, and pro Vol.37 Iss.4, 200710, pp.1-12 *

Also Published As

Publication number Publication date
JP5790827B2 (ja) 2015-10-07
JPWO2012077603A1 (ja) 2014-05-19
EP2651081A1 (en) 2013-10-16
CN103250392A (zh) 2013-08-14
US20130254891A1 (en) 2013-09-26
JP2014147120A (ja) 2014-08-14
CN103250392B (zh) 2016-12-14
WO2012077603A1 (ja) 2012-06-14
US9118716B2 (en) 2015-08-25

Similar Documents

Publication Publication Date Title
JP5790827B2 (ja) 制御装置、制御方法、及び通信システム
JP5660202B2 (ja) コンピュータシステム、コントローラ、及びネットワークアクセスポリシ制御方法
JP5062967B2 (ja) ネットワークアクセス制御方法、およびシステム
EP1379046B1 (en) A personal firewall with location detection
JP3996288B2 (ja) 通信ネットワークシステムの管理方法および情報中継装置
US20110032939A1 (en) Network system, packet forwarding apparatus, and method of forwarding packets
JPWO2005036831A1 (ja) フレーム中継装置
US10397111B2 (en) Communication device, communication system, and communication method
JP4852379B2 (ja) パケット通信装置
JP2020017809A (ja) 通信装置及び通信システム
JP4082613B2 (ja) 通信サービスを制限するための装置
US9678772B2 (en) System, method, and computer-readable medium
KR20170038568A (ko) Sdn 컨트롤러 및 sdn 컨트롤러에서의 스위치 식별 방법
JP2002084326A (ja) 被サービス装置、センタ装置、及びサービス装置
KR101914831B1 (ko) 호스트 추적 서비스에 대한 공격을 방지할 수 있는 소프트웨어 정의 네트워크 및 이에 포함되는 컨트롤러
JP3739772B2 (ja) ネットワークシステム
JP7000863B2 (ja) マルウェア検査支援プログラム、マルウェア検査支援方法および通信装置
JP2004096246A (ja) データ伝送方法、データ伝送システム及びデータ伝送装置
EP4078913A1 (en) Protection against malicious data traffic
JPWO2018173099A1 (ja) ゲートウェイ及び中継方法
JP2016187113A (ja) 不正接続防止装置と不正接続防止方法とシステム並びにプログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140410

R150 Certificate of patent or registration of utility model

Ref document number: 5532458

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees