JP5648639B2 - 中継制御装置、中継制御システム、中継制御方法及び中継制御プログラム - Google Patents

中継制御装置、中継制御システム、中継制御方法及び中継制御プログラム Download PDF

Info

Publication number
JP5648639B2
JP5648639B2 JP2011530730A JP2011530730A JP5648639B2 JP 5648639 B2 JP5648639 B2 JP 5648639B2 JP 2011530730 A JP2011530730 A JP 2011530730A JP 2011530730 A JP2011530730 A JP 2011530730A JP 5648639 B2 JP5648639 B2 JP 5648639B2
Authority
JP
Japan
Prior art keywords
packet
information
communication
relay
rule
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.)
Active
Application number
JP2011530730A
Other languages
English (en)
Other versions
JPWO2011030490A1 (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 JP2011530730A priority Critical patent/JP5648639B2/ja
Publication of JPWO2011030490A1 publication Critical patent/JPWO2011030490A1/ja
Application granted granted Critical
Publication of JP5648639B2 publication Critical patent/JP5648639B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • 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/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • 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/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/028Dynamic adaptation of the update intervals, e.g. event-triggered updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0254Stateful filtering

Description

本発明は、パケット中継装置が行う処理を制御する中継制御装置、中継制御システム及び中継制御プログラム、および中継制御システムに適用されるパケット中継装置、パケット中継方法及びパケット中継プログラムに関する。
パケットを転送するスイッチの動作を、コントローラが集中的に管理するネットワークアーキテクチャが各種知られている。例えば、非特許文献1及び非特許文献2には、Ethaneによるネットワークアーキテクチャが記載されている。Ethaneは、送信されるパケットの帰趨を決定するコントローラと、そのコントローラ配下に属し、パケットを転送するスイッチとを含むネットワークアーキテクチャである。
各スイッチは、パケットの送信先を決定するためのフローテーブルを備えている。スイッチは、フローテーブル中に送信先を示すエントリが存在するパケットを受信すると、そのエントリに基づいてパケットを送信する。一方、フローテーブルにエントリが存在しないパケットを受信すると、スイッチは、そのパケットの情報をコントローラに転送する。コントローラは、通信ネットワークトポロジーに関する情報を保持しており、通信を許可するパケットに対して経路計算を行う。具体的には、コントローラは、スイッチからパケットの情報を受信すると、そのパケットの通信を許可するか否かを判断し、許可すると判断した場合には、そのパケットの経路計算を行う。そして、コントローラは、計算した経路上のスイッチのフローテーブルに対して新しい送信先エントリを追加する。以後、スイッチは、登録された送信先エントリに基づいてパケットを送信する。
また、非特許文献3には、OpenFlow(以下、OFと記すこともある。)によるネットワークアーキテクチャが記載されている。OpenFlowもEthaneと同様、コントローラがスイッチを制御するネットワークアーキテクチャである。OpenFlowでは、パケット転送機能と経路制御機能とをフロー制御プロトコルにより分離し、コントローラが、異種のスイッチに対して統一のAPI(Application Program Interface )を用いた制御を行う。また、OpenFlowでは、データパスを高速にするとともに、制御コストを低く抑えるため、粒度をフロー単位としたパケット制御を行う。
OFにおけるスイッチは、受信したパケットのアクションを記憶するフローテーブルと、スイッチがコントローラと通信するためのセキュアチャネルとを備えている。スイッチとコントローラとは、OFプロトコルを使用して、セキュアチャネル上で通信を行う。
図20は、フローテーブルに記憶されるフローエントリーを示す説明図である。フローテーブルは、パケットヘッダと照合するルール(Rule)と、そのフローに対する処理を定義したアクション(Action)と、フロー統計情報(Staticstics)とをフロー毎に記憶する。
ルール(Rule)には、一致するか否かが判断される値(exact)、及びワイルドカード(wild card)が用いられる。図21は、パケットヘッダと照合されるフィールドを示す説明図である。パケットヘッダと照合される検索キーとして、以下のようなフィールドが使用される。
(1)Physical(物理)レイヤの入力ポート番号(Input Port No)。
(2)Ethernet(登録商標)(イーサネット(登録商標))レイヤのMAC(Media Access Control) DA(MACデスティネーションアドレス)、MAC SA(MACソースアドレス)、VLAN ID(Virtual LAN(Local Area Network) ID)、もしくは、VLAN TYPE(優先度)。
(3)IPv4(version4)レイヤのIP SA(IPソースアドレス)、IP DA(IPデスティネーションアドレス)、もしくは、IPプロトコル。
(4)TCP(Transmission Control Protocol)/UDP(User Datagram Protocol)レイヤのSource Port(TCP/UDPソースポート)、もしくは、及びDestination port(TCP/UDPデスティネーションポート)。
(5)ICMP(Internet Control Message Protocol)レイヤのICMP Type、もしくは、ICMP Code。
アクション(Action)は、ルールにマッチしたパケットに適用される処理である。図22は、フローに設定されるアクションを示す説明図である。例えば、アクションに「OUTPUT」と設定されている場合、その設定は、スイッチが、ルールにマッチしたパケットを「指定ポートに出力する」ことを意味する。同様に、アクションに「SET_DL_DST」と設定されている場合、その設定は、スイッチが、ルールにマッチしたパケットを送信する「MAC DA(宛先の装置)を更新する」ことを意味する。
フロー統計情報には、ルールにマッチしたパケットのパケット数やバイト数、そのパケットを最後に受信してからの経過時間(セッション継続時間)などが含まれ、フローエントリーを削除するか否かを判断するために用いられる。
次に、OFにおける動作について説明する。スイッチは、パケットを受信すると、受信したパケットヘッダとフローテーブルのルールとを比較する。受信したパケットがルールにマッチしない場合、スイッチは、セキュアチャンネルにおけるメッセージを用いてそのパケットの情報をコントローラに転送する。コントローラは、通信ネットワークトポロジーに基づいて、そのパケットの送信経路を算出する。そして、コントローラは、スイッチがその送信経路でパケットを中継できるように、スイッチのフローテーブルにフローエントリーを追加するためのメッセージを送信する。以降、スイッチは、追加されたフローエントリーに該当するパケットを受信すると、そのパケットの情報をコントローラに転送することなく、対応するアクション(転送処理)を行う。
図23は、セキュアチャンネル上で使用されるメッセージを示す説明図である。例えば、スイッチは、入力されたパケットをコントローラに通知する場合、メッセージ「Packet in」をコントローラに送信する。同様に、スイッチは、フローが満了時刻を迎えた(セッション継続時間が、所定の時間経過した)ことをコントローラに通知する場合、メッセージ「Flow Expired」をコントローラに送信する。一方、コントローラは、スイッチにパケットの出力を指示する場合、メッセージ「Packet Out」をスイッチに送信する。同様に、コントローラは、スイッチにフローの登録・変更・削除を要求する場合、メッセージ「Flow Mod」をスイッチに送信する。
Martin Casado、外5名、"Ethane:Taking Control of the Enterprise"、ACM SIGCOMM Computer Communication Review, Volume 37,Issue 4,SESSION: Enterprise networks, Pages: 1 - 12, October 2007 Martin Casado、外5名、"Architectural Support for Security Management in Enterprise Networks"、スライド11、[online]、[平成21年8月24日検索]、インターネット〈URL:http://www.soi.wide.ad.jp/project/sigcomm2007/pdf/sig11.pdf〉 Nick McKeown、外7名、"OpenFlow: Enabling Innovation in Campus Networks"、[online]、[平成21年8月24日検索]、インターネット〈URL:http://www.openflowswitch.org/documents/openflow-wp-latest.pdf〉
非特許文献1及び非特許文献2に記載されたEthaneに基づくネットワークアーキテクチャのように、フローテーブルにエントリの存在しないパケットであって、コントローラによって通信が許可されなかったパケットは、通常、経路計算がされず、転送も行われない。そのため、このようなパケットは、スイッチのキューに溜まり、所定の時間の経過後に破棄されることが多い。
そして、コントローラによって通信が許可されないパケットをスイッチが再度受信した場合、そのスイッチは、通常、再度コントローラに問い合わせを行い、コントローラは、そのパケットに対して、再度通信を許可するか否かを判断することになる。すなわち、通信が許可されないパケットをスイッチが何度も受信するような場合、スイッチはその度にコントローラに問い合わせを行う。そして、コントローラもその度に通信を許可するか否かを判断する必要がある。そのため、このような場合には、スイッチ、コントローラともに処理負荷が高くなってしまうという課題がある。
例えば、TCPによる通信で、パケットが宛先装置に到達しないことによる再送処理が何度も行われると、スイッチは同様のパケットを何度も受信することになる。この場合、スイッチは、そのパケットが到着するごとにコントローラに問い合わせを行うことになる。そのため、スイッチ、コントローラともCPU負荷が増大するという問題がある。
非特許文献3に記載されたOpenFlowにおいても、宛先装置までの通信が許可されないパケットを何度もスイッチがコントローラに送ってしまうと、スイッチ、コントローラともに処理負荷が高くなってしまうという課題がある。そのため、このようなパケットを適切に処理できるよう、コントローラがスイッチに対して制御できる事が望ましい。
そこで、本発明は、宛先装置までの通信が許可されないパケットに対してパケット中継装置が行う処理の負荷を低減できる中継制御装置、中継制御システム及び中継制御プログラム、および中継制御システムに適用されるパケット中継装置、パケット中継方法及びパケット中継プログラムを提供することを目的とする。
本発明による中継制御装置は、パケット中継装置を制御する中継制御装置であって、パケットを識別する情報であるマッチ条件と、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、パケット中継装置が受信したパケットの情報をもとに、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断する通信許可判断手段と、通信許可判断手段がマッチ条件に該当するパケットに対して宛先装置への通信を許可しないと判断したことを条件に、そのパケットを宛先装置に転送させないための処理を実行する規則を少なくともパケットを受信したパケット中継装置に設定する規則設定手段とを備え、規則設定手段が、マッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するための規則を少なくともパケットを受信したパケット中継装置に設定することを特徴とする。
本発明による中継制御システムは、パケット中継装置と、パケット中継装置を制御する中継制御装置とを備え、中継制御装置が、パケットを識別する情報であるマッチ条件と、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、パケット中継装置が受信したパケットの情報をもとに、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断する通信許可判断手段と、通信許可判断手段がマッチ条件に該当するパケットに対して宛先装置への通信を許可しないと判断したことを条件に、そのパケットを宛先装置に転送させないための処理を実行する規則を少なくともパケットを受信したパケット中継装置に設定する規則設定手段とを備え、規則設定手段が、マッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するための規則を少なくともパケットを受信したパケット中継装置に設定することを特徴とする。
本発明によるパケット中継装置は、受信したパケットに対する処理とパケットを識別する情報とを対応付けた情報であるフローを記憶するフロー記憶手段と、フロー記憶手段に記憶されたフローに基づいて受信したパケットを中継するパケット中継手段とを備え、パケット中継手段が、パケットを識別する情報であるマッチ条件と、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、受信したパケットの情報をもとに、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断し、そのパケットに対して宛先装置への通信を許可しないと判断したことを条件に、マッチ条件に該当するパケットを宛先装置に転送させないための処理を実行するフローとしてマッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するためのフローを少なくともパケットを受信した送信元の装置に設定する中継制御装置に対して、受信したパケットに対応するフローがフロー記憶手段に存在しない場合にそのパケットの情報を送信し、中継制御装置により設定されたフローに基づいてパケットを処理することを特徴とする。
本発明による中継制御方法は、パケット中継装置を制御する中継制御装置が、パケットを識別する情報であるマッチ条件と、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、パケット中継装置が受信したパケットの情報をもとに、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断し、中継制御装置が、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可しないと判断したことを条件に、そのパケットを宛先装置に転送させないための処理を実行する規則としてマッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するための規則を少なくともパケットを受信したパケット中継装置に設定することを特徴とする。
本発明によるパケット中継方法は、受信したパケットに対する処理とパケットを識別する情報とを対応付けた情報であるフローを記憶するフロー記憶手段に記憶されたそのフローに基づいて受信したパケットを中継し、パケットを識別する情報であるマッチ条件と、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、受信したパケットの情報をもとに、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断し、そのパケットに対して宛先装置への通信を許可しないと判断したことを条件に、マッチ条件に該当するパケットを宛先装置に転送させないための処理を実行するフローとしてマッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するためのフローを少なくともパケットを受信した送信元の装置に設定する中継制御装置に対して、受信したパケットに対応するフローがフロー記憶手段に存在しない場合にそのパケットの情報を送信し、中継制御装置により設定されたフローに基づいてパケットを中継することを特徴とする。
本発明による中継制御プログラムは、パケット中継装置を制御するコンピュータに適用される中継制御プログラムであって、コンピュータに、パケットを識別する情報であるマッチ条件と、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、パケット中継装置が受信したパケットの情報をもとに、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断する通信許可判断処理、および、通信許可判断処理でマッチ条件に該当するパケットに対して宛先装置への通信を許可しないと判断したことを条件に、そのパケットに対して宛先装置に転送させないための処理を実行する規則を少なくともパケットを受信したパケット中継装置に設定する規則設定処理を実行させ、規則設定処理で、マッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するための規則を少なくともパケットを受信したパケット中継装置に設定させることを特徴とする。
本発明によるパケット中継プログラムは、受信したパケットに対する処理とパケットを識別する情報とを対応付けた情報であるフローを記憶するフロー記憶手段を備えたコンピュータに適用されるパケット中継プログラムであって、コンピュータに、フロー記憶手段に記憶されたフローに基づいて受信したパケットを中継するパケット中継処理を実行させ、パケット中継処理で、パケットを識別する情報であるマッチ条件と、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、受信したパケットの情報をもとに、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断し、そのパケットに対して宛先装置への通信を許可しないと判断したことを条件に、マッチ条件に該当するパケットを宛先装置に転送させないための処理を実行するフローとしてマッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するためのフローを少なくともパケットを受信した送信元の装置に設定する中継制御装置に対して、受信したパケットに対応するフローがフロー記憶手段に存在しない場合にそのパケットの情報を送信させ、中継制御装置により設定されたフローに基づいてパケットを処理させることを特徴とする。
本発明によれば、宛先装置までの通信が許可されないパケットに対してパケット中継装置が行う処理の負荷を低減できる。
第1の実施形態における中継制御システムの例を示すブロック図である。 Denyパケットのポリシーの例を示す説明図である。 パケットの情報を受信した場合の処理の例を示すフローチャートである。 Deny制御部17が行う処理の例を示すフローチャートである。 ポリシーが更新されたことを契機として行われる処理の例を示すフローチャートである。 第2の実施形態における中継制御システムの例を示すブロック図である。 パケットの情報を受信した場合の処理の例を示すフローチャートである。 第3の実施形態における中継制御システムの例を示すブロック図である。 Deny制御部17bが行う処理の例を示すフローチャートである。 第4の実施形態における中継制御システムの例を示すブロック図である。 送信元から送信先へ通信を行う場合の例を示す説明図である。 送信元から送信先へ通信を行う場合の例を示す説明図である。 パケットの情報を受信した場合の処理の例を示すフローチャートである。 Allow制御部16cが行う処理の例を示すフローチャートである。 第5の実施形態における中継制御システムの例を示すブロック図である。 フローのアクションを要求するメッセージを受信した場合の処理の例を示すフローチャートである。 本発明による中継制御装置の最小構成の例を示すブロック図である。 本発明による中継制御システムの最小構成の例を示すブロック図である。 本発明によるパケット中継装置の最小構成の例を示すブロック図である。 フローテーブルに記憶されるフローエントリーを示す説明図である。 パケットヘッダと照合されるフィールドを示す説明図である。 フローに設定されるアクションを示す説明図である。 セキュアチャンネル上で使用されるメッセージを示す説明図である。
以下、本発明の実施形態を図面を参照して説明する。なお、以下の説明では、本発明をOpenFlowに適用する場合について説明する。すなわち、パケット中継装置であるOFスイッチ(Open Flow Switch。以下、OFSと記す。)と、パケット中継装置を制御する装置(すなわち、中継制御装置)であるOFコントローラ(Open Flow Controller。以下、OFCと記す。)とを含むOpenFlowに、本発明を適用する場合について説明する。なお、本発明が適用されるネットワークアーキテクチャは、OpenFlowに限定されない。中継制御装置が、パケット中継装置を制御する形態のネットワークアーキテクチャであれば、他の形態であってもよい。
実施形態1.
図1は、本発明の第1の実施形態における中継制御システムの例を示すブロック図である。本実施形態における中継制御システムは、OFC10と、OFS30とを備えている。OFC10は、ネットワークトポロジー情報や、有効な通信経路情報を保持し、通信ネットワーク内のOFS30を制御するコントローラである。具体的には、OFC10は、OFS30がパケットを受信したときに行う処理を制御する。OFS30は、OFC10からの制御に基づいて、受信したパケットを設定された規則に基づいて転送するスイッチである。OFC10とOFS30とは、通信ネットワークを介して相互に接続されるが、通信ネットワークの形態は特に限定されない。また、図1における中継制御システムでは、OFS30を1台のみ記載しているが、OFS30の台数は1台に限定されず、2台以上であってもよい。また、OFC10が、複数の計算機からなるクラスタ構成をとり、全体としてOFC10の機能を満たすように構成されていてもよい。
OFS30は、ネットワークインタフェース部31と、記憶部32と、制御部33とを備えている。ネットワークインタフェース部31は、OFC10や、他のスイッチ(図示せず)との通信を行う。
記憶部32は、受信したパケットに対する処理(以下、スイッチアクションと記すこともある。)を、パケットを識別する情報と対応付けて記憶する。スイッチアクションには、受信したパケットを指定のポートに転送する、廃棄処理(Dropと記すこともある。)を行う、OFC10へパケットを送信する、などの処理が含まれる。記憶部32は、パケットを識別する情報として、例えば、5−tupleと呼ばれる情報群に含まれるプロトコル番号、Src(Sourse)IPアドレス、Srcポート、Dst(Distination)IPアドレス、Dstポートを記憶してもよい。ただし、パケットを識別する情報は5−tupleに限定されない。他にも、記憶部32は、パケットを識別する情報として、10−tupleと呼ばれる情報群に含まれる入力ポート、VLAN(Virtual LAN)ID、Ethertype、SrcMACアドレス、DstMACアドレスを記憶してもよい。さらに、記憶部32は、パケットを識別する情報として、11−tupleと呼ばれる情報群に含まれるVLAN priorityを記憶してもよい。また、記憶部32は、パケットを識別するための情報として、任意の情報を示すワイルドカードを記憶してもよい。記憶部32は、少なくとも1つ以上の識別情報とスイッチアクションとを対応付けて記憶する。なお、この識別情報は、スイッチアクションを決めるための情報であることから、以下の説明では、ルールと記すこともある。また、このルールとスイッチアクションとを対応付けた情報をまとめて、フローと記すこともある。すなわち、記憶部32は、フローを記憶する記憶装置という事が出来る。記憶部32は、例えば、OFS30が備える磁気ディスク装置等によって実現される。なお、記憶部32のフローは、OFC10からの指示に応じて、制御部33によって記憶される。
制御部33は、記憶部32に記憶されたフローに基づいて受信したパケットを処理する。具体的には、制御部33は、他の装置からパケットを受信すると、そのパケットのヘッダ情報とフローにおけるルールとを比較し、ヘッダ情報に該当するルールのスイッチアクションを実行する。制御部33は、例えば、パケットのヘッダ情報とルールが示す識別情報とが一致する場合に、そのルールに対応するスイッチアクションを実行してもよい。なお、記憶部32が、入力ポート及びペイロード中の任意のビットフィールドの値をルールとして記憶している場合、制御部33は、受信したパケットを識別する情報がそのルールが示す情報に該当するか否かを判断してもよい。また、記憶部32に、ルールとしてIPアドレスのプレフィックスが記憶されている場合、制御部33は、受信したパケットに含まれるIPアドレスとそのプレフィックス部分とを比較して、マッチするか否かを判断してもよい。
また、制御部33は、受信したパケットに対応するフローが記憶部32に存在しない場合、受信したパケットの情報をOFC10に対して送信する。そして、制御部33は、送信したパケットの情報に対するフローをOFC10から受信すると、そのフローを記憶部32に記憶させるとともに、受信したフローが示すスイッチアクションを実行する。なお、OpenFlowにおいて、上記のように、記憶部32に記憶されたフローに該当しないパケットは、first packetと呼ばれることもある。
さらに、制御部33は、OFC10が接続された通信ネットワークにOFS30を接続したときに、接続した旨の情報(例えば、Helloメッセージ)をOFC10に通知してもよい。また、制御部33は、OFC10からまとめて送信される識別情報及びスイッチアクション(すなわち、フロー)を受信して、それらの情報を記憶部32に記憶させてもよい。
なお、制御部33は、プログラムに従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、OFS30の記憶部32に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、制御部33として動作してもよい。
OFC10は、OFプロトコル(以下、OFPと記す。)受信部11と、ポリシーテーブル12と、静的ポリシー取得部13と、動的ポリシー取得部14と、ポリシー判断部15と、Allow制御部16と、Deny制御部17と、経路算出部18と、Denyログ生成部19と、OFS制御部20と、OFP送信部21とを備えている。
OFP受信部11は、OFPに基づくメッセージをOFS30から受信する。具体的には、OFP受信部11は、対応するフローがOFS30の記憶部32に存在しないパケットを受信する。
ポリシーテーブル12は、送信されるパケットを識別する情報(以下、マッチ条件と記す。)と、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報(以下、単に、アクションと記す。)とを対応付けた情報(以下、ポリシーと記す。)を記憶する。ポリシーテーブル12は、例えば、OFC10が備える磁気ディスク装置等によって実現される。マッチ条件は、OpenFlowにおけるコントローラがパケットを識別するためのルールと同様であってもよい。他にも、マッチ条件として、例えば、記憶部32が記憶する識別情報(ルール)と同様の情報(すなわち、5−tupleや10−tuple)を用いてもよい。なお、ポリシーテーブル12は、ポリシーを予め記憶していてもよく、他の装置やユーザによる指示に応じてポリシーを記憶してもよい。
上記のとおり、アクションは、宛先装置への通信が許可される(Allow)パケットか、宛先装置への通信が許可されない(Deny)パケットかを示す情報である。なお、アクションには、宛先装置への通信が許可されない(Deny)パケットに対して行われる処理内容を示す付加情報を含んでいてもよい。この場合、ポリシーテーブル12は、この付加情報を、個々のマッチ条件のアクションに対応づけて記憶する。付加情報は、Denyパケットを廃棄する(ドロップ)、ログの採取を行う(ロギング)、外部の特定装置への経路を設定する、などの情報を含む。以下の説明では、宛先装置への通信が許可されない(Deny)パケットに対する処理をDeny処理と記すこともある。Deny処理は、転送処理が行われないパケットに対する処理であることから、パケットを宛先装置に転送させないための処理であるということができる。なお、Deny処理が1種類の場合、ポリシーテーブル12は、付加情報を記憶していなくてもよい。
図2は、宛先装置への通信が許可されない(Deny)パケットのポリシーの例を示す説明図である。図2(a)は、設定されているポリシーのうち、最後のポリシーにDeny設定した場合の例を示す説明図である。図2(a)に示す例は、設定されている順にポリシーとパケットとが比較され、そのパケットが、「All Deny」より前に設定されたすべてのポリシーに一致しなかった場合に、Denyと判断されることを示す。
図2(b)は、パケットのペイロードに設定されている情報をもとにDenyパケットを判断する場合のポリシーの例を示す説明図である。図2(b)に例示する「IP 192.168.0.1 → Deny」は、IPアドレス「192.168.0.1」からのアクセスを許可しない(Denyと判断される)ことを示す。また、図2(b)に例示する「IP 192.168.0.0/0.0.7.255 → Deny」は、IPアドレスが「192.168.0.0/255.255.248.0」以外からのアクセスを許可しない(Denyと判断される)ことを示す。
なお、図2では、識別情報としてIPアドレスを用いたポリシーを例に挙げて説明した。ただし、ポリシーの識別情報として用いられる内容は、IPアドレスに限定されない。他にも、ポリシーの識別情報としてMAC(Media Access Control address)アドレスなどの端末を識別するIDを用いてもよい。また、ポリシーの識別情報として、プロトコル番号やポート番号など、プロトコルやアプリケーションを識別するフィールドの情報などを用いてもよい。さらに、ポリシーの識別情報として、VLAN IDやMPLS(Multi-Protocol Label Switching)のラベルなど、ネットワークを識別する値を用いてもよい。
他にも、ポリシーの識別情報として、スイッチの入力ポートを用いてもよい。例えば、ポリシーとして、「スイッチAのPort1からのパケットをDeny」とする設定を行ってもよい。さらに、ポリシーが、ペイロードに設定されている情報と、上記スイッチの入力ポートとの両方を含むものであってもよい。例えば、ポリシーとして、「スイッチAのPort1のIP 192.168.0.1からのアクセスをDeny」とする設定を行ってもよい。
静的ポリシー取得部13は、ポリシーテーブル12に記憶されたポリシーを取得する。具体的には、静的ポリシー取得部13は、ポリシーテーブル12に記憶されたポリシーのうち、更新されたポリシーが存在するか否かを判断し、更新されたポリシーを読み取る。例えば、静的ポリシー取得部13は、定期的にポリシーテーブル12にアクセスし、前回アクセスしたときと異なる情報を更新されたポリシーと判断し、そのポリシーを読み取ってもよい。ただし、更新されたポリシーを判断する方法は、上記方法に限定されない。他にも、例えば、ポリシーテーブル12が、ポリシーの内容を更新したタイミングでトリガを発生させて、静的ポリシー取得部13に通知し、静的ポリシー取得部13が、そのトリガを受信したことを契機として、ポリシーが更新されたと判断してもよい。また、静的ポリシー取得部13は、ポリシーテーブル12が初期化されたことを契機として、ポリシーテーブル12の全てのポリシーが更新されたと判断してもよい。
また、静的ポリシー取得部13は、通信ネットワークにOFS30が接続された旨の情報(例えば、Helloメッセージ)の通知を受けたことを契機として、ポリシーテーブル12が更新されたか否かを判断してもよい。そして、静的ポリシー取得部13は、更新されたポリシーを読み取ると、そのポリシーをポリシー判断部15に通知する。
このように、OFS30は、ポリシーテーブル12に記憶された識別情報及びアクションを、受信したパケットに関わらず受信する。そのため、このように送受信される識別情報及びアクションを静的ポリシーと呼ぶことができる。以上のことから、静的ポリシー取得部13は、静的ポリシーの更新を検知して、フロー(すなわち、マッチ条件)やアクションを取得するとも言える。
動的ポリシー取得部14は、受信したパケットの情報に対応するポリシーをポリシーテーブル12から取得する。具体的には、動的ポリシー取得部14は、ポリシーテーブル12に記憶されたマッチ条件と受信したパケットの情報とを比較し、該当するマッチ条件に対応するアクションをポリシーテーブル12から読み取る。例えば、OFP受信部11が、パケットの情報と、OFPに基づく「Packet−in」メッセージとをOFS30から受信した場合、動的ポリシー取得部14は、受信したパケットの情報がマッチ条件に該当することを条件に、そのマッチ条件に対応するアクションをポリシーテーブル12から読み取る。ここで、「Packet−in」メッセージとは、OpenFlowのSecure Channel上で使用されるメッセージであり、スイッチに入力されたパケットをコントローラに通知することを意味するメッセージである。そして、動的ポリシー取得部14は、読み取ったアクションとパケットの情報とをポリシー判断部15に通知する。
本実施形態では、OFC10が、静的ポリシー取得部13及び動的ポリシー取得部14をいずれも備えている場合について説明する。ただし、OFC10は、静的ポリシー取得部13と動的ポリシー取得部14のいずれか一方を備えていればよく、両方備えていてもよい。
ポリシー判断部15は、OFS30が受信したパケットの情報をもとに、そのパケットに対して宛先装置への通信を許可するか否かをポリシーに基づいて判断する。具体的には、ポリシー判断部15は、動的ポリシー取得部14が読み取ったアクションとOFS30から受信したパケットの情報とを受け取ると、そのアクションが宛先装置への通信を許可するアクションか否かを判断する。宛先装置への通信を許可する(Allow)アクションの場合、ポリシー判断部15は、宛先装置への通信を許可すると判断し、後述のAllow制御部16に、パケットの転送先を算出させる。一方、宛先装置への通信を許可しない(Deny)アクションの場合、ポリシー判断部15は、宛先装置への通信を許可しないと判断し、後述のDeny制御部17に、パケットのDeny処理を決定させる。
また、ポリシー判断部15は、更新されたポリシーのマッチ条件が示すパケットに対して宛先装置への通信を許可するか否かを、そのポリシーに基づいて判断してもよい。具体的には、ポリシー判断部15は、更新されたポリシーを静的ポリシー取得部13から受け取ると、そのポリシーに含まれるアクションが宛先装置への通信を許可するアクションか否かを判断する。宛先装置への通信を許可する(Allow)アクションの場合、ポリシー判断部15は、そのポリシーのマッチ条件が示すパケットに対して宛先装置への通信を許可すると判断し、後述のAllow制御部16に、パケットの転送先を算出させる。一方、宛先装置への通信を許可しない(Deny)アクションの場合、ポリシー判断部15は、そのポリシーのマッチ条件が示すパケットに対して宛先装置への通信を許可しないと判断し、後述のDeny制御部17に、パケットのDeny処理を決定させる。
Allow制御部16は、ポリシーのアクションが「Allow」だった場合に、パケットの送信経路を算出する。具体的には、Allow制御部16は、経路算出部18に送信先までの送信経路を算出させる。そして、Allow制御部16は、算出した送信経路をOFS制御部20に通知する。
Deny制御部17は、ポリシーのアクションが「Deny」だった場合に、Deny処理を決定する。すなわち、Deny制御部17は、宛先装置への通信を許可しないと判断したパケットに対するDeny処理を決定する。具体的には、ポリシー判断部15が、ポリシーのアクションが宛先装置への通信を許可しない(Deny)アクションであると判断すると、Deny制御部17は、アクションに含まれる付加情報の内容をもとに、宛先装置への通信を許可しないと判断したパケットに対する処理を決定する。そして、Deny制御部17は、決定した処理をOFS制御部20に通知する。
例えば、アクションの付加情報として「Drop」が設定されている場合、Deny制御部17は、OFS30に対し、受信したパケットを破棄(Drop)させると決定してもよい。このように、OFC10が、特定のパケットを破棄する処理(Drop処理)規則をOFS30に対して設定することで、以後、OFS30が同様のパケットを受信した場合のCPU負荷を抑えることができる。すなわち、OFS30にDrop処理規則が設定されている場合、OFS30は、受信したパケットの処理内容をOFC10に問い合わせることなく、OFS30のハードウェア部分でDrop処理を行うことができる。そのため、OFS30及びOFC10のCPU負荷を抑制することができる。
他にも、Deny制御部17は、例えば、アクションの付加情報として「特定装置へ転送」を示す旨の情報が設定されている場合、受信したパケットに対し、宛先装置とは異なる他の送信先(例えば、外部の特定装置)への明示的な経路をOFS30に設定すると決定してもよい。具体的には、Deny制御部17は、OFS30に対し、他の送信先として検疫ネットワークやハニーポット、詳細なフロー挙動解析装置などへパケットを送信すると決定する。この場合、Deny制御部17は、これらの複数のセキュリティ解析装置への送信経路を経路算出部18に算出させる。なお、Deny制御部17は、これらの複数の装置のうち、一つの装置にパケットを送信すると決定してもよく、複数の装置へパケットを送信すると決定してもよい。また、Deny制御部17がどの送信先に送信するかについては、マッチ条件に応じて予め定められる。なお、送信先が一つの場合には、全てのマッチ条件に同じ送信先を定めておけばよい。
例えば、スタティックなデフォルトVLANの設定しかポリシーに存在しない場合、OFC10は、OFS30に対して、明示的に経路を設定したり、適応的に経路を設定したりすることはできない。しかし、以上のように、ポリシーに応じてアクションが決定されるため、OFC10は、OFS30に対し、宛先装置までの通信を許可しないパケットについて明示的な経路を設定したり、適応的な経路を設定したりすることができる。また、外部装置による、より詳細なDeny処理を提供することも可能になる。
また、Deny制御部17は、廃棄すると決定したパケットや、明示的な経路を設定すると決定したパケットをOFS30が受信したとき、OFS30に対してそれらのパケットの情報を再度OFC10に送信させると決定してもよい。具体的には、付加情報にログを採取する旨の設定(ロギング設定)がされている場合に、Deny制御部17が、OFS30に対して、受信したパケットを破棄(Drop)させると決定するとともに、そのパケットの情報をOFC10にも送信(Packet−in)させると決定してもよい。もしくは、Deny制御部17は、OFS30に対して受信したパケットの明示的な経路を設定するとともに、そのパケットの情報をOFC10にも送信(Packet−in)させると決定してもよい。
このように、OFS30に対して宛先装置への通信が許可されないパケットの内容をOFC10に送信させることで、OFC10は、これらのパケットの内容を把握することができる。また、後述のDenyログ生成部19は、受信したパケットの内容をもとにログ情報を作成することが可能になる。
上記説明では、Deny制御部17が、識別情報に対応するアクションに含まれる付加情報をもとにDeny処理を決定する場合について説明した。ただし、Deny制御部17がDeny処理を決定する方法は、識別情報をもとにする場合に限定されない。例えば、Deny制御部17は、予め定められた処理をDeny処理として決定してもよい。
宛先装置への通信が許可されないパケットは、所定の時間の経過後に破棄される場合があるため、結果としてDeny処理におけるDrop処理と同様の挙動を示すことがある。しかし、このようなパケットに対する制御を何ら行わない場合、OFS30が特定装置へ転送することや、OFC10がログを採取するといったDrop以外の処理を行うことはできない。しかし、本実施形態では、ポリシー判断部15が、ポリシーに対するアクションを宛先装置への通信を許可しないアクションと判断したときに、Deny制御部17が、そのポリシーに基づいてDeny処理を決定する。そのため、OFC10は、宛先装置への通信が許可されないパケットを転送させないスイッチアクション(すなわち、宛先装置に転送させないための処理)をOFS30に設定できる。
経路算出部18は、ペイロード中の宛先や、ポリシーに示された装置へパケットを送信する際の経路を算出する。例えば、経路算出部18は、ペイロード中の宛先や、ポリシーに示された特定装置へパケットを到達させるために経由するOFS30とその出力ポートを順に示した情報を算出する。経路算出部18は、宛先装置への経路をShortest Path に基づいて算出してもよい。ただし、経路の算出方法はShortest Path に基づく方法に限定されない。なお、宛先装置への経路を算出する方法は広く知られているため、ここでは説明を省略する。また、経路算出部18は、経路の候補を1つだけでなく、複数算出してもよい。
なお、経路とは、あるフローについて、目的の場所へ到達するのに経由する装置(例えば、スイッチ)とその出力ポートを順に示したものということができる。例えば、受信したパケットを、まず、スイッチAの「出力ポート1」からスイッチBに送信し、次に、スイッチBの「出力ポート3」からスイッチCに送信し、さらに、スイッチCの「出力ポート4」から出力するという経路を考える。この場合、経路は「スイッチA 出力ポート1→スイッチB 出力ポート3→スイッチC 出力ポート4」のように表すことができる。
Denyログ生成部19は、Deny処理を行った際のログ(以下、Denyログと記す。)を生成する。すなわち、Denyログとは、宛先装置への通信を許可しないと判断したことを示すログであるとも言える。また、Deny制御部17が、OFS30に対し、廃棄するパケットの情報や、明示的な経路が設定されたパケットの情報を再度OFC10に送信させると決定する場合がある。このとき、Denyログ生成部19は、OFS30からこれらのパケットの情報を受信したときに、Denyログを生成してもよい。
例えば、Denyログ生成部19は、Denyログを「2009/08/11 12:00:01 Deny TCP SRC:192.168.1.3:49388 DST:xxx.xxx.xxx.xxx:80」のように生成してもよい。上記に示すDenyログの例は、「送信元のIPアドレスが「192.168.1.3(ポート番号49388)」で表わされる装置からIPアドレス「xxx.xxx.xxx.xxx(ポート番号80)」で表わされる宛先に送信されたパケットが、2009年8月11日12時0分1秒にDeny処理された」ことを表す。なお、OFC10がログを出力しない場合には、OFC10はDenyログ生成部19を含んでいなくてもよい。
上記説明では、日付やパケットのペイロード情報の一部(例えば、IPアドレスなど)をDenyログに含む場合を例に説明した。ただし、Denyログに含まれる内容は上記内容に限定されない。Denyログは、パケットのペイロード情報に含まれる上記以外の情報を含んでいてもよい。また、Denyログ生成部19が出力するログは、Denyログに限定されない。例えば、宛先装置への通信が許可された(Allow)ことを表すログ(以下、Allowログと記す。)を含んでいてもよい。例えば、「xxx.xxx.xxx.xxx(ポート番号80)」で表わされる宛先に送信されたパケットが、2009年8月11日12時0分1秒に通信を許可された(Allow)」場合、Denyログ生成部19は、Allowログを「2009/08/11 12:00:01 Allow TCP SRC:192.168.1.3:49388 DST:xxx.xxx.xxx.xxx:80」のように生成してもよい。
OFS制御部20は、Allow制御部16が算出したパケットの送信経路や、Deny制御部17が決定したDeny処理に基づき、OFS30が実行する処理規則を設定する。すなわち、OFS制御部20は、Deny制御部17が決定したDeny処理を受け取ると、Deny処理を実行する規則をそのパケットを受信したOFS30に設定する。OFS制御部20は、OFC10に対してパケットの情報を送信してきたOFS30を設定対象のスイッチと判断すればよい。なお、OFS制御部20が処理規則を設定するスイッチは、パケットを受信したOFS30に限られない。また、OFS制御部20は、Allow制御部16が算出したパケットの送信経路を受け取ると、そのパケットを送信経路に転送する規則をOFS30に設定する。
OFS制御部20の動作について、具体的に説明する。まず、OFS制御部20は、Allow制御部16が算出したパケットの送信経路や、Deny制御部17が決定したDeny処理の通知を受け取る。Allow制御部16が算出したパケットの送信経路を受け取った場合、OFS制御部20は、識別情報であるパケットのペイロードの内容と、アクションであるパケットの送信経路とを対応付けたフローを作成する。もしくは、Deny制御部17が決定したDeny処理を受け取った場合、OFS制御部20は、識別情報であるパケットのペイロードの内容と、アクションであるDeny処理とを対応付けたフローを作成する。そして、OFS制御部20は、OFS30の記憶部32を作成したフローの情報で更新するためのメッセージを作成し、そのメッセージをOFS30へ送信するよう、OFP送信部21に指示する。
OFS制御部20がDeny処理設定を行う例として、以下のような場合が挙げられる。例えば、Deny制御部17が複数のセキュリティ解析装置への経路を明示的に設定すると決定した場合、OFS制御部20は、その経路に従って、単一もしくは複数のOFS30に記憶されたフローに対して、パケットの出力ポートを更新する設定を行う。また、Deny制御部17が、受信したパケットをドロップさせると決定した場合、OFS制御部20は、そのパケットを送信してきたOFS30(イングレスと記すこともある。)におけるフローに対して、そのパケットの破棄する設定を行う。
さらに、Deny制御部17が、OFS30に対し、Dropすると決定したパケットや、明示的な経路を設定すると決定したパケットを再度OFC10に送信させると決定する場合がある。この場合、OFS制御部20は、これらのパケットを送信してきたOFS30(すなわち、イングレス)におけるフローに対して、仮想ポート「Controller」を設定するとともに、これらのパケットを送信(Packet−in)する設定を行う。
なお、OpenFlowにおけるSecure Channel上で、コントローラがスイッチにフローの登録、変更、もしくは削除を要求する場合には、「Flow Modメッセージ」が使用される。そのため、OFS制御部20は、このFlow Modメッセージを利用することにより、OFS30のフローを設定してもよい。
OFP送信部21は、OFPに基づくメッセージをOFS30に送信する。具体的には、OFP送信部21は、OFS制御部20がOFPに基づいて生成したメッセージをOFS30に送信する。
OFP受信部11と、静的ポリシー取得部13と、動的ポリシー取得部14と、ポリシー判断部15と、Allow制御部16と、Deny制御部17と、経路算出部18と、Denyログ生成部19と、OFS制御部20とは、プログラム(中継制御プログラム)に従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、OFC10の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、OFP受信部11、静的ポリシー取得部13、動的ポリシー取得部14、ポリシー判断部15、Allow制御部16、Deny制御部17、経路算出部18、Denyログ生成部19及びOFS制御部20として動作してもよい。また、OFP受信部11と、静的ポリシー取得部13と、動的ポリシー取得部14と、ポリシー判断部15と、Allow制御部16と、Deny制御部17と、経路算出部18と、Denyログ生成部19と、OFS制御部20とは、それぞれが専用のハードウェアで実現されていてもよい。
次に、動作について説明する。以下の説明では、まず、OFC10が、OFS30からパケットの情報を受信した場合の処理について説明する。次に、ポリシーテーブル12に記憶されたポリシーが更新されたことを契機として行われる処理について説明する。
図3は、OFC10が、OFS30からパケットの情報を受信した場合の処理の例を示すフローチャートである。まず、対応するフローが記憶部32に存在しないパケットをOFS30が受信すると、OFS30の制御部33は、ネットワークインタフェース部31を介して、受信したパケットの情報を含むメッセージをOFC10に送信する。
OFP受信部11は、OFPに基づくメッセージをOFS30から受信すると(ステップS110)、動的ポリシー取得部14は、OpenFlowメッセージにおけるPacket−inのヘッダにマッチするアクションをポリシーテーブル12から取得する(ステップS120)。すなわち、動的ポリシー取得部14は、ポリシーテーブル12に記憶されたマッチ条件と受信したパケットの情報とを比較し、該当するマッチ条件に対応するアクションをポリシーテーブル12から読み取る。ポリシー判断部15は、動的ポリシー取得部14が読み取ったアクションが「宛先装置への通信を許可しない(Deny)」アクションか否かを判断する(ステップS130)。アクションがDenyの場合(ステップS130における「はい」)、ポリシー判断部15は、Deny制御部17に、そのパケットのDeny処理を決定させる(ステップS140)。
図4は、Deny制御部17が行う処理の例を示すフローチャートである。まず、Deny制御部17は、アクションに含まれる付加情報の内容をもとに処理を決定する(ステップS141)。付加情報の内容が「Drop」の場合(ステップS141における「Drop」、Deny制御部17は、Dropフラグを立てる(ステップS142)。具体的には、Deny制御部17は、OFC10が備えるメモリ(図示せず)などに、Dropフラグを設定したことを記憶させる。一方、付加情報の内容が、特定ホストにパケットを転送する(すなわち、特定装置へ転送する)場合(ステップS141における「特定ホストへ」)、Deny制御部17は、特定ホストまでのパケットの送信経路を経路算出部18に算出させる(ステップS143)。
また、Deny制御部17は、付加情報にロギング設定がされているか否かを判断する(ステップS144)。ロギング設定がされている場合(ステップS144における「はい」)、Deny制御部17は、Packet−inフラグを立てる(ステップS145)。具体的には、Deny制御部17は、OFC10が備えるメモリ(図示せず)などに、Packet−inフラグを設定したことを記憶させる。そして、Denyログ生成部19は、Denyログの生成(Denyのロギング)を行う(ステップS146)。なお、ロギング設定がされていない場合(ステップS144における「いいえ」)、Deny制御部17は、Denyログ生成の処理を行わない。
一方、図3のステップS130において、アクションがDenyでない場合(ステップS130における「いいえ」)、ポリシー判断部15は、Allow制御部16に、パケットの転送先を算出させる(ステップS150)。具体的には、Allow制御部16は、経路算出部18にパケットまでの経路を算出させる。このようにして、Allow制御部16は、経路を取得する。
Deny制御部17における処理(ステップS140)もしくはAllow制御部16による経路算出処理(ステップS150)の後、OFS制御部20は、送信経路やDropフラグ、Packet−inフラグをもとに、OFPに基づくメッセージを作成する(ステップS160)。具体的には、OFS制御部20は、Dropフラグ、Packet−inフラグの他にも、Allow制御部16が算出したパケットの送信経路や、Deny制御部17が決定したDeny処理に基づき、OFS30の記憶部32に記憶されたフローの内容を更新するためのメッセージを作成する。そして、OFP送信部21は、OFS制御部20がOFPに基づいて生成したメッセージをOFS30に送信する(ステップS170)。
このように、OFS30からパケットの情報を受信したことを契機としてフローが決定される(すなわち、OFC10が実際にパケットを受信してからOFS30の記憶部32に記憶させるエントリを作成する)ため、記憶部32が記憶するフローエントリー数を削減できるという効果がある。
次に、ポリシーテーブル12に記憶されたポリシーが更新されたことを契機として行われる処理について説明する。図5は、上記処理の例を示すフローチャートである。静的ポリシー取得部13は、通信ネットワークにOFS30が接続された旨の情報の通知を受け取ったときや、ポリシーテーブル12の内容の更新を検知したとき、ポリシーテーブル12から更新されたポリシーを読み取る。もしくは、静的ポリシー取得部13は、ポリシーテーブル12が初期化されたことを検知して、ポリシーテーブル12の全てのポリシーを読み取る(ステップS210)。静的ポリシー取得部13は、更新されたポリシーを読み取ると、そのポリシーをポリシー判断部15に通知する。
ポリシー判断部15は、静的ポリシー取得部13から受け取ったポリシーに含まれるアクションが「宛先装置への通信を許可しない(Deny)」アクションか否かを判断する(ステップS220)。アクションがDenyでない場合(ステップS220における「いいえ」)、ポリシー判断部15は、処理を終了する。一方、アクションがDenyの場合(ステップS220における「はい」)、ポリシー判断部15は、Deny制御部17に、そのパケットのDeny処理を決定させる(ステップS230)。以降、Deny制御部17がDeny処理を決定し、OFS制御部20がOFPに基づいて生成したメッセージを、OFP送信部21がOFS30に送信するまでの処理(ステップS230〜S250)は、図3に例示するステップS140、及びステップS160〜S170の処理と同様のため、説明を省略する。
このように、ポリシーテーブル12に記憶されたポリシーが更新されたことを契機としてフローが決定される(すなわち、ポリシーが更新されたときにOFS30の記憶部32に記憶させるエントリを作成する)ため、OFC10は、OFS30からのアクセスを低減できるため、負荷を低減できるという効果がある。
以上のように、本発明によれば、ポリシー判断部15が、OFS30が受信したパケットの情報をもとに、マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かをポリシーに基づいて判断する。そして、ポリシー判断部15が、マッチ条件に該当するパケットに対して宛先装置への通信を許可しない(Deny)と判断したことを条件に、Deny制御部17が、そのパケットを宛先装置に転送させないための処理を決定し、OFS制御部20が、少なくともそのパケットを受信したOFS30にその処理を実行する処理規則を設定する。そのため、宛先装置までの通信が許可されない(Deny)パケットに対してパケット中継装置(例えば、OFS30)が行う処理の負荷を低減できる。
また、Deny制御部17及びOFS制御部20が、マッチ条件に該当するパケットを破棄(Drop)するための処理規則をOFS30に設定する。そのため、OFS30及びOFC10のCPU負荷を抑制することができる。
また、Deny制御部17及びOFS制御部20が、マッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するための処理規則(例えば、他の送信先への経路)をOFS30に設定する。そのため、外部装置による、より詳細なDeny処理を提供することが可能になる。
さらに、Deny制御部17及びOFS制御部20は、OFS30がDenyパケットを受信したときに、そのパケットの情報をOFC10に送信する規則をOFS30に設定する。この場合に、OFC10がOFS30からパケットの情報を受信したときにDenyログ生成部19がログを生成する。そのため、Denyパケットの通信状況を把握することができる。
実施形態2.
図6は、本発明の第2の実施形態における中継制御システムの例を示すブロック図である。なお、第1の実施形態と同様の構成については、図1と同一の符号を付し、説明を省略する。本実施形態における中継制御システムは、OFC10aと、OFS30とを備えている。OFS30については、第1の実施形態と同様である。
OFC10aは、OFP受信部11と、ポリシーテーブル12と、静的ポリシー取得部13と、動的ポリシー取得部14と、ポリシー判断部15と、Allow制御部16と、Deny制御部17と、経路算出部18と、Denyログ生成部19と、OFS制御部20aと、OFP送信部21に加え、フロー管理テーブル22を備えている。すなわち、OFC10aは、第1の実施形態におけるOFC10と比べ、OFS制御部20の代わりにOFS制御部20aを備えている点、及び、フロー管理テーブル22を備えている点において異なる。それ以外の構成については、第1の実施形態と同様である。
フロー管理テーブル22は、OFS制御部20が作成したフローのアクション(以下、OFアクションと記す。)を記憶する。すなわち、フロー管理テーブル22は、OFS30に設定したルールを記憶する。フロー管理テーブル22は、例えば、OFC10aが備える磁気ディスク装置等によって実現される。フロー管理テーブル22は、OFアクションと、フローを更新する対象のOFS30を識別する情報(以下、スイッチ識別情報と記す。)とを対応付けて記憶してもよい。
OFS制御部20aは、作成したOFアクションをフロー管理テーブル22に記憶させる。また、OFS制御部20aは、新たにOFアクションを作成すると、フロー管理テーブル22に同一のOFアクションが既に記憶されているか否かを判断する。同一のOFアクションが既に記憶されている場合、OFS制御部20aは、OFP送信部21からメッセージを送信しないよう、作成したOFアクションを破棄する。すなわち、OFS制御部20aは、OFS30に設定するルールが既にフロー管理テーブル22に記憶されている場合には、そのルールをOFS30に対して設定しないようにする。一方、作成したOFアクションが記憶されているOFアクションと異なる場合、OFS制御部20aは、作成したOFアクションの内容でフロー管理テーブル22の内容を更新する。なお、OFS制御部20aの上記以外の機能は、第1の実施形態におけるOFS制御部20の機能と同様である。
なお、OFS制御部20aは、プログラム(中継制御プログラム)に従って動作するコンピュータのCPUによって実現される。また、OFS制御部20aは、専用のハードウェアで実現されていてもよい。
次に、動作について説明する。図7は、第2の実施形態において、OFC10aが、OFS30からパケットの情報を受信した場合の処理の例を示すフローチャートである。なお、OFC10aがOFS30からパケットの情報を受信してから、OFS制御部20aがOFPに基づくメッセージを作成するまでの処理は、図3に例示するステップS110〜S160の処理と同様である。
OFS制御部20aは、OFPに基づくメッセージを作成すると、フロー管理テーブル22に同一のOFアクションが記憶されているか否かを判断する(ステップS310)。同一のOFアクションがフロー管理テーブル22に既に存在する場合(ステップS310における「はい」)、OFS制御部20aは、作成したメッセージを破棄し(ステップS320)、処理を終了する。一方、同一のOFアクションがフロー管理テーブル22に存在しない場合(ステップS310における「いいえ」)、OFS制御部20aは、作成したOFアクションをフロー管理テーブル22に記憶させる(ステップS330)。そして、OFP送信部21は、OFS制御部20aがOFPに基づいて生成したメッセージをOFS30に送信する(ステップS170)。
以上のように、本実施形態によれば、OFS制御部20aが、OFS30に処理規則を設定したときに、フロー管理テーブル22にもその処理規則を記憶させる。そして、ポリシー判断部15がマッチ条件に該当するパケットに対して宛先装置への通信を許可しない(Deny)と判断したときに、OFS制御部20aは、OFS30に設定する処理規則が既にフロー管理テーブル22に記憶されている場合にはその処理規則をOFS30に設定しないようにする。このように、既に設定された処理規則の再設定指示を抑制できるため、OFS30及びOFC10aのCPU負荷を抑制することができる。
例えば、OFS30が、Denyパケットに対し、Drop処理のみを行う場合、OFC10aは、OFS30からDenyパケットを再度受信することはない。しかし、Denyパケットに対してPacket−inの設定が行われている場合には、通信を許可されない(Deny)パケットが、再度OFC10aに送信されることになる。しかし、本実施形態では、Denyパケットが再度OFC10aに送信されても、OFS制御部20aが、すでに設定されたフローの更新を抑制する。よって、OFC10aや、OFS30の処理負荷を軽減することができる。
すなわち、ポリシーが、Denyパケットに対し、Drop処理及びPacket−in処理、もしくは、明示的な経路設定及びPacket−in処理を表すアクションであっても、OFC10aが、OFS30の記憶部32にすでに書き込まれたフローのアクションを複数回書き込みに行くことを防ぐことができる。
実施形態3.
図8は、本発明の第3の実施形態における中継制御システムの例を示すブロック図である。なお、第1の実施形態と同様の構成については、図1と同一の符号を付し、説明を省略する。本実施形態における中継制御システムは、OFC10bと、OFS30とを備えている。OFS30については、第1の実施形態と同様である。
OFC10bは、OFP受信部11と、ポリシーテーブル12と、静的ポリシー取得部13と、動的ポリシー取得部14と、ポリシー判断部15と、Allow制御部16と、Deny制御部17bと、経路算出部18と、Denyログ生成部19と、OFS制御部20と、OFP送信部21に加え、Denyカウンタテーブル23を備えている。すなわち、OFC10bは、第1の実施形態におけるOFC10と比べ、Deny制御部17の代わりにDeny制御部17bを備えている点、及び、Denyカウンタテーブル23を備えている点において異なる。それ以外の構成については、第1の実施形態と同様である。
Denyカウンタテーブル23は、Deny制御部17bが宛先装置への通信を許可しないと判断したパケットに対する判断回数(カウンタ値と記すこともある。)を、パケットの識別情報(例えば、マッチ条件)と対応付けて記憶する。以下、この識別情報を、フィールドと記すこともある。なお、カウンタ値は、Packet−in回数を計測した値ということもできる。Denyカウンタテーブル23は、ポリシーのマッチ条件で使用される識別情報と同一の情報をDeny処理の回数と対応付けて記憶してもよい。もしくは、Denyカウンタテーブル23は、例えば、パケットの送信元など、ペイロードに含まれる情報をDeny処理の回数と対応付けて記憶してもよい。また、カウンタ値を集約するため、Denyカウンタテーブル23は、複数のフロー(マッチ条件)に対して1つのカウンタ値を共有する形式で記憶してもよい。Denyカウンタテーブル23は、例えば、OFC10bが備える磁気ディスク装置等によって実現される。
Deny制御部17bは、ポリシーのアクションが「Deny」だった場合(すなわち、宛先装置への通信を許可しないと判断した場合)に、そのポリシーのマッチ条件に対応するDenyカウンタテーブル23のカウンタ値を増加させる。そして、Deny制御部17bは、カウンタ値が予め定められた閾値(以下、Deny処理回数閾値と記す。)を超えた場合、そのカウンタ値に対応するマッチ条件に該当するフローについて、パケットの情報をOFC10bに送信させる処理(すなわち、Packet−in処理)を行わせないと決定する。
すなわち、Deny制御部17bは、Denyと判断される特定フロー(例えば、ポリシーごと、もしくは、送信元のアドレスごと)のPacket−in処理回数がある閾値(Deny処理回数閾値)を越えた場合、OFS30に対して、特定フローについてはドロップ処理もしくは特定経路の選択のみを行わせると決定する。こうすることにより、例えば、OFC10bに対してアタック処理が行われるような場合に、Packet−inの頻度を低減させることができるため、OFS30及びOFC10bの処理負荷を抑制することができる。
なお、Deny制御部17bは、プログラム(中継制御プログラム)に従って動作するコンピュータのCPUによって実現される。また、Deny制御部17bは、専用のハードウェアで実現されていてもよい。
次に、動作について説明する。第3の実施形態では、OFC10bがOFS30からパケットの情報を受信してから、OFP送信部21がOFS30にメッセージを送信するまでの処理は、図3に例示するフローチャートが示す処理と同様である。ただし、Deny制御部17bが行う処理は、第1の実施形態におけるDeny制御部17が行う処理と異なる。以下、Deny制御部17bが行う動作について説明する。
図9は、Deny制御部17bが行う処理の例を示すフローチャートである。Deny制御部17bがアクションに含まれる付加情報の内容をもとに処理を決定するまでの動作は、図4におけるステップS141〜S143の動作と同様である。
次に、Deny制御部17bは、付加情報にロギング設定がされているか否かを判断する(ステップS144)。ロギング設定がされていない場合(ステップS144における「いいえ」)、Deny制御部17bはDenyログ生成の処理を行わない。一方、ロギング設定がされている場合(ステップS144における「はい」)、Deny制御部17bは、フローにマッチするフィールドがDenyカウンタテーブル23にあるか否かを判断する(ステップS410)。フローにマッチするフィールドが存在する場合(ステップS410における「はい」)、Deny制御部17bは、そのフィールドに対応するカウンタ値を増加させる(ステップS420)。例えば、Deny制御部17bは、フローにマッチするフィールドのカウンタ値に1を加算する。一方、フローにマッチするフィールドが存在しない場合(ステップS410における「いいえ」)、Deny制御部17bは、フローのマッチ条件(フィールド)を作成し、カウント値を0で初期化する(ステップS430)。Deny制御部17bは、カウンタ値を増加させた(ステップS420)後、もしくは、フローのマッチ条件(フィールド)を作成した(ステップS430)後、カウント値が閾値(Deny処理回数閾値)以上か否かを判断する(ステップS440)。カウント値が閾値以上の場合(ステップS440における「はい」)、Deny制御部17bは、Denyログ生成部19に、ログ出力を抑制した旨の情報を出力させる(ステップS450)。具体的には、Deny制御部17bは、カウンタ値がある閾値以上の場合、ポリシーのアクションからPacket−inを削除したメッセージを生成するようにOFS制御部20に指示する。一方、カウント値が閾値以上でない場合(ステップS440における「いいえ」)、Deny制御部17bは、図3に例示するステップS145〜S146と同様、Packet−inフラグを立て、Denyのロギングを行う。
なお、図9におけるステップS440において、カウント値が閾値(Deny処理回数閾値)以上か否かをDeny制御部17bが判断する場合について説明した。ただし、Deny制御部17bは、カウント値が閾値(Deny処理回数閾値)を超えるか否かによって判断してもよい。
以上のように、本実施形態によれば、Deny制御部17b及びOFS制御部20は、ポリシー判断部15が宛先装置への通信を許可しない(Deny)と判断したときに、Denyカウンタテーブル23に記憶されたパケットを識別する要素に対応するパケットの判断回数を増加させる。そして、パケットの判断回数がDeny処理回数閾値を超えた場合に、そのパケットの情報をOFC10bに送信しないための処理規則をOFS30に設定する。そのため、通信を許可しないパケットの情報がOFC10bに通知され過ぎることを防止できる。
実施形態4.
図10は、本発明の第4の実施形態における中継制御システムの例を示すブロック図である。なお、第1の実施形態と同様の構成については、図1と同一の符号を付し、説明を省略する。本実施形態における中継制御システムは、OFC10cと、OFS30とを備えている。OFS30については、第1の実施形態と同様である。また、第1の実施形態では、OFS制御部20が、パケットの情報を受信したOFS30(すなわち、イングレス)に、Deny処理を実行する処理規則を設定する場合について説明した。本実施形態では、イングレス以外のOFS30に対してもDeny設定を行う場合について説明する。
OFC10cは、OFP受信部11と、ポリシーテーブル12と、静的ポリシー取得部13と、動的ポリシー取得部14と、ポリシー判断部15と、Allow制御部16cと、Deny制御部17と、経路算出部18と、Denyログ生成部19と、OFS制御部20と、OFP送信部21とを備えている。すなわち、OFC10cは、第1の実施形態におけるOFC10と比べ、Allow制御部16の代わりにAllow制御部16cを備えている点において異なる。それ以外の構成については、第1の実施形態と同様である。
Allow制御部16cは、ポリシーのアクションが「Allow」だった場合(すなわち、宛先装置への通信を許可すると判断した場合)に、パケットの宛先装置への少なくとも1つ以上の経路候補を算出する。具体的には、Allow制御部16cは、経路算出部18に宛先装置への複数の送信経路を算出させる。そして、Allow制御部16cは、算出された各経路上に、受信したパケットの通信を許可しない(Deny)と判断するスイッチ(以下、Denyスイッチと記す。)が存在するか否かを判断する。例えば、Allow制御部16cは、パケットの通信を許可するか否かを経路上の各スイッチに問い合わせ、その応答結果をもとにDenyスイッチが存在するか否かを判断してもよい。
パケットの通信が許可される経路が送信経路の候補に存在しない場合、Allow制御部16cは、Deny処理を行うと判断する。具体的には、Allow制御部16cは、Deny制御部17にパケットに対するDeny処理を決定させる。一方、パケットの通信が許可される経路が存在する場合、Allow制御部16cは、Deny処理を行わないと判断し、その経路をOFS制御部20に通知する。
なお、Allow制御部16cは、Denyスイッチが経路上に存在すると判断した場合、そのDenyスイッチに対して、Deny処理の設定を行うと判断してもよい。この場合、Allow制御部16cは、経路上の上記スイッチに対するDeny処理をDeny制御部17に決定させ、OFS制御部20が、決定されたDeny処理に基づいて、フローの内容を更新するための指示を経路上のスイッチに対して行ってもよい。
経路上のスイッチに対してDeny処理の設定がされる場合について、図11及び図12を用いて説明する。図11及び図12は、送信元(Nancy)から、送信先(Paul)へ通信を行う場合の例を示す説明図である。破線で囲んだ範囲は、送信元(Nancy)及び送信先(Paul)が接続する通信ネットワークである。また、SW1〜SW4はスイッチ(例えば、OFS30)を表し、CT1は、コントローラ(例えば、OFC10c)を表す。また、SW1〜SW4のうち、網掛けで示すスイッチは、送信元(Nancy)から送信先(Paul)への通信を許可しないスイッチであり、白丸で示すスイッチは、送信元(Nancy)から送信先(Paul)への通信を許可するスイッチである。図11に示す例では、送信元(Nancy)が接続するスイッチは、送信先(Paul)への通信を許可しないと判断する。すなわち、ポリシー判断部15は、Deny制御部17に、パケットのDeny処理を決定させることになる。
一方、図12に示す例では、送信元(Nancy)が接続するスイッチは、(Paul)への通信を許可すると判断する。すなわち、ポリシー判断部15が、Allow制御部16cに、パケットの転送先を算出させる。そして、Allow制御部16cは、経路算出部18に送信先までの複数の送信経路を算出させる。図12に示す例では、送信先への経路は、SW1とSW2とSW4を経由する経路(経路1)、SW1とSW3とSW4を経由する経路(経路2)、SW1とSW4を経由する経路(経路3)の3種類の経路が算出される。まず、Allow制御部16cは、Denyスイッチが経路1上に存在するか否かを判断する。経路1上には、通信を許可しないと判断するSW2が存在する。この場合、Allow制御部16cは、次の経路の候補(経路2)に対して、Denyスイッチが経路上に存在するか否かを判断する。経路2上には、Denyスイッチは存在しない。よって、Allow制御部16cは、経路2をOFS制御部20に通知する。
なお、Allow制御部16cは、経路1上のSW2に対し、Deny処理の設定を行うと判断してもよい。この場合、Allow制御部16cは、SW2に対するDeny処理をDeny制御部17に決定させる。そして、OFS制御部20が、決定されたDeny処理に基づいて、フローの内容を更新するための指示をSW2に対して行う。このように、経路上のスイッチに対しても、予めDeny処理の設定を行うことができるため、Deny処理を設定済みのスイッチに通信装置を接続した場合に、再度OFC10cに問い合わせる必要がない。そのため、問合せにかかるOFC10c及びOFS30の負荷を軽減することができる。
なお、Allow制御部16cは、プログラム(中継制御プログラム)に従って動作するコンピュータのCPUによって実現される。また、Allow制御部16cは、専用のハードウェアで実現されていてもよい。
次に、動作について説明する。図13は、OFC10cが、OFS30からパケットの情報を受信した場合の処理の例を示すフローチャートである。第4の実施形態において、OFC10cがOFS30からパケットの情報を受信し、ポリシー判断部15がアクションをDenyと判断した場合の処理については、図3に例示するステップS110〜S140及びステップS160〜S170における処理と同様である。以下、ポリシー判断部15が、アクションが「宛先装置への通信を許可する(Allow)」アクションであると判断した場合(図13のステップS130における「いいえ」)に、Allow制御部16cが行う処理(ステップS510)について説明する。
図14は、Allow制御部16cが行う処理の例を示すフローチャートである。まず、Allow制御部16cは、経路算出部18に経路の候補を算出させる(ステップS511)。Allow制御部16cは、算出させた経路候補を1つ目(ステップS512)から順に判断する。なお、判断する順序は特に限定されない。Allow制御部16cは、候補の経路上にDenyスイッチが存在するか否かを判断する(ステップS513)。Denyスイッチが存在する場合(ステップS513における「はい」)、Allow制御部16cは、そのスイッチに対してDeny処理を行うと判断する(ステップS515)。次に、Allow制御部16cは、他に経路候補が存在するか否かを判断する(ステップS516)。他に経路候補が存在する場合(ステップS516における「はい」)、Allow制御部16cは、以降の候補(ステップS518)に対し、ステップS513及びステップS515〜S518の処理を繰り返す。他に経路候補が存在しない場合(ステップS516における「いいえ」)、Allow制御部16cは、Deny処理を行うと判断する(ステップS517)。
一方、ステップS513において、候補の経路上にDenyスイッチが存在しない場合(ステップS513における「いいえ」)、Allow制御部16cは、OFS制御部20にその経路を通知する(ステップS514)。
図13において、Allow制御部16cがDeny処理を行うと判断すると(ステップS520における「はい」)、Allow制御部16cは、Deny処理をDeny制御部17に決定させる。以降の処理は、図3に例示するステップS140及びステップS160〜S170における処理と同様である。
なお、図14に例示する処理では、Allow制御部16cが、Denyスイッチが存在しない経路を発見した段階で、OFS制御部20にその経路を通知し、以降の候補の経路の内容を判断しない場合について説明した。ただし、Allow制御部16cは、Denyスイッチが存在しない経路を発見しても、残りの経路の候補全てに対して、経路上にDenyスイッチが存在するか否かを判断し、その後で発見した経路をOFS制御部20に通知してもよい。
以上のように、本実施形態によれば、ポリシー判断部15がマッチ条件に該当するパケットに対して宛先装置への通信を許可する(Allow)と判断したことを条件に、経路算出部18が、パケットの宛先装置への少なくとも1つ以上の経路候補を算出する。次に、Allow制御部16cは、経路候補上に、パケットの通信を許可しないと判断するOFS30が存在するか否かを判断する。そして、Deny制御部17及びOFS制御部20は、経路候補のうち、パケットの通信を許可しないと判断するOFS30が全ての候補経路における各経路上に存在する場合に、そのパケットを宛先装置に転送させないための処理(Deny処理)を実行する処理規則を、少なくとも上記パケットを受信したOFS30に設定する。そのため、OFS30が他のスイッチにパケットを中継する前に、送信可否を判断できるため、通信ネットワークの負荷を軽減することができる。
また、Deny制御部17は、マッチ条件に該当するパケットの通信を許可しないOFS30が経路上に存在する場合に、そのパケットを宛先装置に転送させないための処理(Deny処理)を実行する処理規則を上記OFS30に対して設定する。このように、コントローラにパケットを送信したスイッチ(すなわち、イングレス)だけでなく、経路候補上のスイッチに対してもDeny処理を実行する処理規則を設定できるため、通信ネットワークの負荷を軽減することができる。
実施形態5.
図15は、本発明の第5の実施形態における中継制御システムの例を示すブロック図である。なお、第2の実施形態と同様の構成については、図6と同一の符号を付し、説明を省略する。本実施形態における中継制御システムは、OFC10dと、OFS30とを備えている。OFS30については、第1の実施形態と同様である。
OFC10dは、OFP受信部11と、ポリシーテーブル12と、動的ポリシー取得部14と、ポリシー判断部15と、Allow制御部16と、Deny制御部17と、経路算出部18と、Denyログ生成部19と、OFS制御部20dと、OFP送信部21と、フロー管理テーブル22とを備えている。すなわち、OFC10dは、第2の実施形態におけるOFC10aと比べ、静的ポリシー取得部13を備えず、OFS制御部20aの代わりにOFS制御部20dを備えている点において異なる。それ以外の構成については、第2の実施形態と同様である。
OFS制御部20dは、第2の実施形態におけるOFS制御部20aの機能に加え、フロー管理テーブル22に記憶されたOFアクション(すなわち、OFS制御部20aが作成したフローのアクション)に基づいて、OFS30に記憶されたフローの更新指示を行う。すなわち、OFS制御部20dは、フロー管理テーブル22に記憶されたOFアクションをOFS30に設定する。OFS制御部20dは、例えば、OFS30が接続されたときに、接続されたOFS30を示すスイッチ識別情報に対応するOFアクションをフロー管理テーブル22から読み取る。そして、OFS制御部20dは、フローを更新するためのメッセージを作成し、そのメッセージをOFS30へ送信するよう、OFP送信部21に指示する。なお、OFS制御部20dは、スイッチ識別情報に関わらず、フロー管理テーブル22に記憶されたOFアクションを全て読み取ってもよい。また、OFS制御部20dは、OFC10dが、フローのアクションを要求するメッセージをOFS30から受信した場合に、上記処理を行ってもよい。
OFS制御部20dは、プログラム(中継制御プログラム)に従って動作するコンピュータのCPUによって実現される。また、OFS制御部20dは、専用のハードウェアで実現されていてもよい。
次に、動作について説明する。図16は、OFC10dが、フローのアクションを要求するメッセージをOFS30から受信した場合の処理の例を示すフローチャートである。OFP受信部11が、フローのアクションを要求するメッセージをOFS30から受信すると(ステップS610)、OFS制御部20dは、フロー管理テーブル22からフローのアクション(OFアクション)を読み取り、OFPに基づくメッセージを作成する(ステップS620)。そして、OFP送信部21は、OFS制御部20dがOFPに基づいて作成したメッセージをOFS30に送信する(ステップS630)。
以上のように、本実施形態によれば、OFS制御部20dが、フロー管理テーブル22に記憶されたフローをパケット中継装置に設定する。よって、第2の実施形態のように、ポリシーテーブル12の更新を検知できない場合であっても、Deny処理を示すフローをOFS30に反映することができる。
次に、本発明による中継制御装置の最小構成の例を説明する。図17は、本発明による中継制御装置の最小構成の例を示すブロック図である。本発明による中継制御装置は、パケット中継装置(例えば、OFS30)を制御する中継制御装置(例えば、OFC10)であって、パケットを識別する情報であるマッチ条件と、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報(例えば、アクション)とを対応付けた情報であるポリシーに基づいて、パケット中継装置が受信したパケットの情報をもとに、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可する(例えば、Allow)か否(例えば、Deny)かを判断する通信許可判断手段81(例えば、ポリシー判断部15)と、通信許可判断手段81がマッチ条件に該当するパケットに対して宛先装置への通信を許可しない(例えば、Deny)と判断したことを条件に、そのパケットを宛先装置に転送させないための処理(例えば、Deny処理)を実行する規則(例えば、フロー)を少なくともパケットを受信したパケット中継装置に設定する規則設定手段82(例えば、Deny制御部17及びOFS制御部20)とを備えている。
そのような構成により、宛先装置までの通信が許可されないパケットに対してパケット中継装置が行う処理の負荷を低減できる。
また、図18のブロック図に示すように、本発明による中継制御装置80にパケット中継装置90を設けて、中継制御システムを構成してもよい。
さらに、本発明によるパケット中継装置の最小構成の例を説明する。図19は、本発明によるパケット中継装置の最小構成の例を示すブロック図である。本発明によるパケット中継装置は、受信したパケットに対する処理とパケットを識別する情報とを対応付けた情報であるフローを記憶するフロー記憶手段71(例えば、記憶部32)と、フロー記憶手段71に記憶されたフローに基づいて受信したパケットを中継するパケット中継手段72(例えば、制御部33)とを備えている。
パケット中継手段72は、パケットを識別する情報であるマッチ条件と、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報(例えば、アクション)とを対応付けた情報であるポリシーに基づいて、受信したパケットの情報をもとに、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可する(例えば、Allow)か否(例えば、Deny)かを判断し、そのパケットに対して宛先装置への通信を許可しない(例えば、Deny)と判断したことを条件に、マッチ条件に該当するパケットを宛先装置に転送させないための処理(例えば、Deny処理)を実行するフローを少なくともパケットを受信した送信元の装置に設定する中継制御装置(例えば、OFC10)に対して、受信したパケットに対応するフローがフロー記憶手段72に存在しない場合にそのパケットの情報を送信し、中継制御装置により設定されたフローに基づいてパケットを処理する。
そのような構成により、宛先装置までの通信が許可されないパケットに対してパケット中継装置が行う処理の負荷を低減できる。
なお、少なくとも以下に示すような中継制御装置、中継システム及びパケット中継装置も、上記に示すいずれかの実施形態に記載されていると言える。
(1)パケット中継装置(例えば、OFS30)を制御する中継制御装置(例えば、OFC10)であって、パケットを識別する情報であるマッチ条件と、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報(例えば、アクション)とを対応付けた情報であるポリシーに基づいて、パケット中継装置が受信したパケットの情報をもとに、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可する(例えば、Allow)か否(例えば、Deny)かを判断する通信許可判断手段(例えば、ポリシー判断部15)と、通信許可判断手段がマッチ条件に該当するパケットに対して宛先装置への通信を許可しない(例えば、Deny)と判断したことを条件に、そのパケットを宛先装置に転送させないための処理(例えば、Deny処理)を実行する規則(例えば、フロー)を少なくともパケットを受信したパケット中継装置に設定する規則設定手段(例えば、Deny制御部17及びOFS制御部20)とを備えた中継制御装置。
(2)規則設定手段(例えば、Deny制御部17及びOFS制御部20)が、マッチ条件に該当するパケットを破棄する(例えば、Dropする)ための規則を少なくともパケットを受信したパケット中継装置に設定する中継制御装置。
(3)規則設定手段(例えば、Deny制御部17及びOFS制御部20)が、マッチ条件に該当するパケットを宛先装置とは異なる他の送信先(例えば、検疫ネットワークやハニーポット、詳細なフロー挙動解析装置など)に送信するための規則を少なくともパケットを受信したパケット中継装置に設定する中継制御装置。
(4)マッチ条件に応じて予め定められた送信先までの経路を算出する経路算出手段(例えば、経路算出部18)を備え、規則設定手段が、マッチ条件に該当するパケットを経路算出手段が算出した送信先に送信するための規則を少なくともパケットを受信したパケット中継装置に設定する中継制御装置。
(5)通信許可判断手段(例えば、ポリシー判断部15)が宛先装置への通信を許可しないと判断したことを示すログ(例えば、Denyログ)を生成するログ生成手段(例えば、Denyログ生成部19)を備え、規則設定手段が、宛先装置に転送させないための処理(例えば、Deny処理)が実行されるパケットをパケット中継装置が受信したときに、そのパケットの情報を中継制御装置に送信するための規則をそのパケット中継装置に設定し、ログ生成手段が、パケット中継装置からパケットの情報を受信したときにログを生成する中継制御装置。
(6)パケット中継装置に設定した規則を記憶する規則記憶手段(例えば、フロー管理テーブル22)を備え、規則設定手段(例えば、Deny制御部17及びOFS制御部20a)が、パケット中継装置に規則を設定したときに、規則記憶手段にその規則を記憶させ、通信許可判断手段がマッチ条件に該当するパケットに対して宛先装置への通信を許可しないと判断したときに、パケット中継装置に設定する規則が既に規則記憶手段に記憶されている場合にはその規則をパケット中継装置に設定しない中継制御装置。
(7)通信許可判断手段(例えば、ポリシー判断部15)が宛先装置への通信を許可しないと判断したパケットの判断回数(例えば、カウント値)を、そのパケットを識別する要素と対応付けて記憶する判断回数記憶手段(例えば、Denyカウンタテーブル23)を備え、規則設定手段(例えば、Deny制御部17b及びOFS制御部20)が、通信許可判断手段が宛先装置への通信を許可しないと判断したときに、要素に対応するパケットの判断回数を増加させ、パケットの判断回数が予め定められた閾値(例えば、Deny処理回数閾値)を超えた場合に、そのパケットの情報を中継制御装置に送信しないための規則をそのパケット中継装置に設定する中継制御装置。
(8)通信許可判断手段(例えば、ポリシー判断部15)がマッチ条件に該当するパケットに対して宛先装置への通信を許可する(例えば、Allow)と判断したことを条件に、パケットの宛先装置への少なくとも1つ以上の経路候補を算出する経路候補算出手段(例えば、経路算出部18)と、経路候補上に、パケットの通信を許可しないと判断するパケット中継装置が存在するか否かを判断する経路判断手段(例えば、Allow制御部16c)とを備え、規則設定手段(例えば、Deny制御部17及びOFS制御部20)が、経路候補のうち、パケットの通信を許可しないと判断するパケット中継装置が全ての候補経路における各経路上に存在する場合に、そのパケットを宛先装置に転送させないための処理(例えば、Deny処理)を実行する規則を少なくともパケットを受信したパケット中継装置に設定する中継制御装置。
(9)規則設定手段(例えば、Deny制御部17及びOFS制御部20)が、マッチ条件に該当するパケットの通信を許可しないパケット中継装置(例えば、スイッチ)が経路上に存在する場合に、そのパケットを宛先装置に転送させないための処理(すなわち、Deny処理)を実行する規則をパケット中継装置に対して設定する中継制御装置。
(10)規則設定手段(例えば、OFS制御部20d)が、規則記憶手段(例えば、フロー管理テーブル22)に記憶された規則(例えば、フローのアクション)をパケット中継装置に設定する中継制御装置。
(11)パケット中継装置(例えば、OFS30)と、パケット中継装置を制御する中継制御装置(OFC10)とを備え、中継制御装置が、パケットを識別する情報であるマッチ条件と、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報(例えば、アクション)とを対応付けた情報であるポリシーに基づいて、パケット中継装置が受信したパケットの情報をもとに、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可する(例えば、Allow)か否(例えば、Deny)かを判断する通信許可判断手段(例えば、ポリシー判断部15)と、通信許可判断手段がマッチ条件に該当するパケットに対して宛先装置への通信を許可しない(例えば、Deny)と判断したことを条件に、そのパケットを宛先装置に転送させないための処理(例えば、Deny処理)を実行する規則(例えば、フロー)を少なくともパケットを受信したパケット中継装置に設定する規則設定手段(例えば、Deny制御部17及びOFS制御部20)とを備えた中継制御システム。
(12)規則設定手段が、マッチ条件に該当するパケットを破棄するための規則を少なくともパケットを受信したパケット中継装置に設定する中継制御システム。
(13)規則設定手段が、マッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するための規則を少なくともパケットを受信したパケット中継装置に設定する中継制御システム。
(14)受信したパケットに対する処理とパケットを識別する情報とを対応付けた情報であるフローを記憶するフロー記憶手段(例えば、記憶部32)と、フロー記憶手段に記憶されたフローに基づいて受信したパケットを中継するパケット中継手段(例えば、制御部33)とを備え、パケット中継手段は、パケットを識別する情報であるマッチ条件と、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報(例えば、アクション)とを対応付けた情報であるポリシーに基づいて、受信したパケットの情報をもとに、そのマッチ条件に該当するパケットに対して宛先装置への通信を許可する(例えば、Allow)か否(例えば、Deny)かを判断し、そのパケットに対して宛先装置への通信を許可しない(例えば、Deny)と判断したことを条件に、マッチ条件に該当するパケットを宛先装置に転送させないための処理(例えば、Deny処理)を実行するフローを少なくともパケットを受信した送信元の装置に設定する中継制御装置(例えば、OFC10)に対して、受信したパケットに対応するフローがフロー記憶手段に存在しない場合にそのパケットの情報を送信し、中継制御装置により設定されたフローに基づいてパケットを処理するパケット中継装置。
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2009年9月10日に出願された日本特許出願2009−209722を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、パケット中継装置が行う処理を制御する中継制御装置に好適に適用される。
10,10a,10b,10c,10d OFC
11 OFP受信部
12 ポリシーテーブル
13 静的ポリシー取得部
14 動的ポリシー取得部
15 ポリシー判断部
16,16c Allow制御部
17,17b Deny制御部
18 経路算出部
19 Denyログ生成部
20,20a,20d OFS制御部
21 OFP送信部
22 フロー管理テーブル
23 Denyカウンタテーブル
30 OFS
31 ネットワークインタフェース部
32 記憶部
33 制御部
SW1〜SW4 スイッチ
CT1 コントローラ

Claims (18)

  1. パケット中継装置を制御する中継制御装置であって、
    パケットを識別する情報であるマッチ条件と、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、パケット中継装置が受信したパケットの情報をもとに、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断する通信許可判断手段と、
    前記通信許可判断手段が前記マッチ条件に該当するパケットに対して宛先装置への通信を許可しないと判断したことを条件に、当該パケットを宛先装置に転送させないための処理を実行する規則を少なくとも前記パケットを受信したパケット中継装置に設定する規則設定手段とを備え
    前記規則設定手段は、前記マッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するための規則を少なくとも前記パケットを受信したパケット中継装置に設定する
    ことを特徴とする中継制御装置。
  2. 規則設定手段は、マッチ条件に該当するパケットを破棄するための規則を少なくとも前記パケットを受信したパケット中継装置に設定する
    請求項1記載の中継制御装置。
  3. マッチ条件に応じて予め定められた送信先までの経路を算出する経路算出手段を備え、
    規則設定手段は、マッチ条件に該当するパケットを前記経路算出手段が算出した送信先に送信するための規則を少なくとも前記パケットを受信したパケット中継装置に設定する
    請求項1または請求項2記載の中継制御装置。
  4. 通信許可判断手段が宛先装置への通信を許可しないと判断したことを示すログを生成するログ生成手段を備え、
    規則設定手段は、宛先装置に転送させないための処理が実行されるパケットをパケット中継装置が受信したときに、当該パケットの情報を中継制御装置に送信するための規則を当該パケット中継装置に設定し、
    前記ログ生成手段は、パケット中継装置から前記パケットの情報を受信したときに前記ログを生成する
    請求項1から請求項のうちのいずれか1項に記載の中継制御装置。
  5. パケット中継装置に設定した規則を記憶する規則記憶手段を備え、
    規則設定手段は、パケット中継装置に規則を設定したときに、前記規則記憶手段に当該規則を記憶させ、通信許可判断手段がマッチ条件に該当するパケットに対して宛先装置への通信を許可しないと判断したときに、パケット中継装置に設定する規則が既に前記規則記憶手段に記憶されている場合には当該規則をパケット中継装置に設定しない
    請求項1から請求項のうちのいずれか1項に記載の中継制御装置。
  6. 通信許可判断手段が宛先装置への通信を許可しないと判断したパケットの判断回数を、当該パケットを識別する要素と対応付けて記憶する判断回数記憶手段を備え、
    規則設定手段は、通信許可判断手段が宛先装置への通信を許可しないと判断したときに、前記要素に対応するパケットの判断回数を増加させ、前記パケットの判断回数が予め定められた閾値を超えた場合に、当該パケットの情報を中継制御装置に送信しないための規則を当該パケット中継装置に設定する
    請求項記載の中継制御装置。
  7. 通信許可判断手段がマッチ条件に該当するパケットに対して宛先装置への通信を許可すると判断したことを条件に、前記パケットの宛先装置への少なくとも1つ以上の経路候補を算出する経路候補算出手段と、
    前記経路候補上に、前記パケットの通信を許可しないと判断するパケット中継装置が存在するか否かを判断する経路判断手段とを備え、
    規則設定手段は、前記経路候補のうち、前記パケットの通信を許可しないと判断するパケット中継装置が全ての候補経路における各経路上に存在する場合に、当該パケットを宛先装置に転送させないための処理を実行する規則を少なくとも前記パケットを受信したパケット中継装置に設定する
    請求項1から請求項のうちのいずれか1項に記載の中継制御装置。
  8. 規則設定手段は、マッチ条件に該当するパケットの通信を許可しないパケット中継装置が経路上に存在する場合に、当該パケットを宛先装置に転送させないための処理を実行する規則を前記パケット中継装置に対して設定する
    請求項記載の中継制御装置。
  9. 規則設定手段は、規則記憶手段に記憶された規則をパケット中継装置に設定する
    請求項記載の中継制御装置。
  10. パケット中継装置と、
    前記パケット中継装置を制御する中継制御装置とを備え、
    前記中継制御装置は、
    パケットを識別する情報であるマッチ条件と、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、パケット中継装置が受信したパケットの情報をもとに、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断する通信許可判断手段と、
    前記通信許可判断手段が前記マッチ条件に該当するパケットに対して宛先装置への通信を許可しないと判断したことを条件に、当該パケットを宛先装置に転送させないための処理を実行する規則を少なくとも前記パケットを受信したパケット中継装置に設定する規則設定手段とを備え
    前記規則設定手段は、前記マッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するための規則を少なくとも前記パケットを受信したパケット中継装置に設定する
    ことを特徴とする中継制御システム。
  11. 規則設定手段は、マッチ条件に該当するパケットを破棄するための規則を少なくとも前記パケットを受信したパケット中継装置に設定する
    請求項10記載の中継制御システム。
  12. 受信したパケットに対する処理とパケットを識別する情報とを対応付けた情報であるフローを記憶するフロー記憶手段と、
    前記フロー記憶手段に記憶されたフローに基づいて受信したパケットを中継するパケット中継手段とを備え、
    前記パケット中継手段は、パケットを識別する情報であるマッチ条件と、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、受信したパケットの情報をもとに、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断し、当該パケットに対して宛先装置への通信を許可しないと判断したことを条件に、前記マッチ条件に該当するパケットを宛先装置に転送させないための処理を実行するフローとしてマッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するためのフローを少なくとも前記パケットを受信した送信元の装置に設定する中継制御装置に対して、受信したパケットに対応するフローが前記フロー記憶手段に存在しない場合に当該パケットの情報を送信し、前記中継制御装置により設定されたフローに基づいて前記パケットを処理する
    ことを特徴とするパケット中継装置。
  13. パケット中継装置を制御する中継制御装置が、パケットを識別する情報であるマッチ条件と、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、パケット中継装置が受信したパケットの情報をもとに、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断し、
    前記中継制御装置が、前記マッチ条件に該当するパケットに対して宛先装置への通信を許可しないと判断したことを条件に、当該パケットを宛先装置に転送させないための処理を実行する規則としてマッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するための規則を少なくとも前記パケットを受信したパケット中継装置に設定する
    ことを特徴とする中継制御方法。
  14. 受信したパケットに対して宛先装置への通信を許可しないと判断したことを条件に、マッチ条件に該当するパケットを破棄するための規則を少なくとも前記パケットを受信したパケット中継装置に設定する
    請求項13記載の中継制御方法。
  15. 受信したパケットに対する処理とパケットを識別する情報とを対応付けた情報であるフローを記憶するフロー記憶手段に記憶された当該フローに基づいて受信したパケットを中継し、
    パケットを識別する情報であるマッチ条件と、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、受信したパケットの情報をもとに、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断し、当該パケットに対して宛先装置への通信を許可しないと判断したことを条件に、前記マッチ条件に該当するパケットを宛先装置に転送させないための処理を実行するフローとしてマッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するためのフローを少なくとも前記パケットを受信した送信元の装置に設定する中継制御装置に対して、受信したパケットに対応するフローが前記フロー記憶手段に存在しない場合に当該パケットの情報を送信し、前記中継制御装置により設定されたフローに基づいて前記パケットを中継する
    ことを特徴とするパケット中継方法。
  16. パケット中継装置を制御するコンピュータに適用される中継制御プログラムであって、
    前記コンピュータに、
    パケットを識別する情報であるマッチ条件と、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、パケット中継装置が受信したパケットの情報をもとに、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断する通信許可判断処理、および、
    前記通信許可判断処理で前記マッチ条件に該当するパケットに対して宛先装置への通信を許可しないと判断したことを条件に、当該パケットを宛先装置に転送させないための処理を実行する規則を少なくとも前記パケットを受信したパケット中継装置に設定する規則設定処理実行させ
    前記規則設定処理で、前記マッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するための規則を少なくとも前記パケットを受信したパケット中継装置に設定させるための中継制御プログラム。
  17. コンピュータに、
    規則設定処理で、マッチ条件に該当するパケットを破棄するための規則を少なくとも前記パケットを受信したパケット中継装置に設定させる
    請求項16記載の中継制御プログラム。
  18. 受信したパケットに対する処理とパケットを識別する情報とを対応付けた情報であるフローを記憶するフロー記憶手段を備えたコンピュータに適用されるパケット中継プログラムであって、
    前記コンピュータに、
    前記フロー記憶手段に記憶されたフローに基づいて受信したパケットを中継するパケット中継処理を実行させ、
    前記パケット中継処理で、パケットを識別する情報であるマッチ条件と、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを示す通信可否情報とを対応付けた情報であるポリシーに基づいて、受信したパケットの情報をもとに、当該マッチ条件に該当するパケットに対して宛先装置への通信を許可するか否かを判断し、当該パケットに対して宛先装置への通信を許可しないと判断したことを条件に、前記マッチ条件に該当するパケットを宛先装置に転送させないための処理を実行するフローとしてマッチ条件に該当するパケットを宛先装置とは異なる他の送信先に送信するためのフローを少なくとも前記パケットを受信した送信元の装置に設定する中継制御装置に対して、受信したパケットに対応するフローが前記フロー記憶手段に存在しない場合に当該パケットの情報を送信させ、前記中継制御装置により設定されたフローに基づいて前記パケットを処理させる
    ためのパケット中継プログラム。
JP2011530730A 2009-09-10 2010-07-06 中継制御装置、中継制御システム、中継制御方法及び中継制御プログラム Active JP5648639B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011530730A JP5648639B2 (ja) 2009-09-10 2010-07-06 中継制御装置、中継制御システム、中継制御方法及び中継制御プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009209722 2009-09-10
JP2009209722 2009-09-10
PCT/JP2010/004419 WO2011030490A1 (ja) 2009-09-10 2010-07-06 中継制御装置、中継制御システム、中継制御方法及び中継制御プログラム
JP2011530730A JP5648639B2 (ja) 2009-09-10 2010-07-06 中継制御装置、中継制御システム、中継制御方法及び中継制御プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014220018A Division JP2015029356A (ja) 2009-09-10 2014-10-29 制御装置、通信システム、制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2011030490A1 JPWO2011030490A1 (ja) 2013-02-04
JP5648639B2 true JP5648639B2 (ja) 2015-01-07

Family

ID=43732173

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011530730A Active JP5648639B2 (ja) 2009-09-10 2010-07-06 中継制御装置、中継制御システム、中継制御方法及び中継制御プログラム
JP2014220018A Pending JP2015029356A (ja) 2009-09-10 2014-10-29 制御装置、通信システム、制御方法及びプログラム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014220018A Pending JP2015029356A (ja) 2009-09-10 2014-10-29 制御装置、通信システム、制御方法及びプログラム

Country Status (5)

Country Link
US (2) US20120044935A1 (ja)
EP (1) EP2477362A4 (ja)
JP (2) JP5648639B2 (ja)
CN (1) CN102577275B (ja)
WO (1) WO2011030490A1 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130246655A1 (en) * 2010-12-13 2013-09-19 Nobuhiko Itoh Communication path control system, path control device, communication path control method, and path control program
JP5105124B2 (ja) * 2011-02-24 2012-12-19 Necアクセステクニカ株式会社 ルータ装置、プレフィクス管理にもとづくパケット制御方法およびプログラム
JP5660202B2 (ja) * 2011-04-15 2015-01-28 日本電気株式会社 コンピュータシステム、コントローラ、及びネットワークアクセスポリシ制御方法
EP2723016A4 (en) * 2011-06-17 2015-04-29 Nec Corp COMMUNICATION CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM
JP6036815B2 (ja) * 2011-09-09 2016-11-30 日本電気株式会社 ネットワーク管理サービスシステム、制御装置、方法およびプログラム
US8693344B1 (en) * 2011-09-27 2014-04-08 Big Switch Network, Inc. Systems and methods for generating packet forwarding rules based on network policy
US10390259B2 (en) * 2012-02-28 2019-08-20 Nokia Solutions And Networks Oy Data forwarding in a mobile communications network system with centralized gateway apparatus controlling distributed gateway elements
US20150043585A1 (en) * 2012-02-29 2015-02-12 Nec Corporation Communication apparatus, communication method, communication system and program
US20150124595A1 (en) 2012-05-01 2015-05-07 Nec Corporation Communication system, access control apparatus, switch, network control method, and program
US9571523B2 (en) * 2012-05-22 2017-02-14 Sri International Security actuator for a dynamically programmable computer network
US9712373B1 (en) * 2012-07-30 2017-07-18 Rambus Inc. System and method for memory access in server communications
EP2880825A4 (en) * 2012-07-31 2016-03-16 Hewlett Packard Development Co IMPLEMENTATION OF A TRANSITION PROTOCOL WITH A FIRST RULE FOR ROUTING PACKAGES, RECEIVING A GROUP OF SWITCHES DURING A FIRST PERIOD, AND UPGRADING INTO A SECOND RULE OF ACTION
CN103001887B (zh) * 2012-11-22 2018-01-05 中兴通讯股份有限公司 一种链路保活方法、控制器及交换机
US9729425B2 (en) * 2012-11-29 2017-08-08 Futurewei Technologies, Inc. Transformation and unified control of hybrid networks composed of OpenFlow switches and other programmable switches
EP2843885A1 (en) * 2013-08-29 2015-03-04 NTT DoCoMo, Inc. Apparatus and method for implementing a packet gateway user plane
JP6435719B2 (ja) * 2013-09-17 2018-12-12 株式会社リコー 通信システムおよび通信方法
CN104579722A (zh) * 2013-10-11 2015-04-29 中兴通讯股份有限公司 流统计能力的协商方法及装置
CN104734988B (zh) * 2013-12-23 2018-10-30 杭州华为数字技术有限公司 软件定义网络中路由控制的方法和开放流控制器
RU2016149885A (ru) 2014-05-21 2018-06-22 Нек Корпорейшн Устройство связи, управляющее устройство, система связи и способ управления передачей
US9924382B2 (en) * 2014-07-16 2018-03-20 Cisco Technology, Inc. Interfrequency and inter-technology neighbor planning on a self-organizing network
US9923772B2 (en) * 2014-07-16 2018-03-20 Cisco Technology, Inc. Interfrequency and inter-technology neighbor planning on a self-organizing network
CN105450710B (zh) * 2014-09-01 2019-08-27 上海诺基亚贝尔股份有限公司 用于网关设备中建立用户对用户的直接通信的方法
US9660904B2 (en) 2015-02-10 2017-05-23 Alcatel Lucent Method and system for inserting an openflow flow entry into a flow table using openflow protocol
US9660903B2 (en) 2015-02-10 2017-05-23 Alcatel Lucent Method and system for inserting an openflow flow entry into a flow table using openflow protocol
US9686137B2 (en) 2015-02-10 2017-06-20 Alcatel Lucent Method and system for identifying an outgoing interface using openflow protocol
US9667440B2 (en) * 2015-02-10 2017-05-30 Alcatel Lucent Method and system for identifying an incoming interface using openflow protocol
EP3073701B1 (en) * 2015-03-27 2017-10-04 Deutsche Telekom AG Network protection entity and method for protecting a communication network against fraud messages
JP6606919B2 (ja) * 2015-08-25 2019-11-20 富士通株式会社 フロースイッチ、コントローラ、及び、中継装置
JP6525824B2 (ja) * 2015-08-31 2019-06-05 国立大学法人名古屋大学 中継装置
US9806983B2 (en) * 2015-09-14 2017-10-31 Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. System and method for control flow management in software defined networks
US10536549B2 (en) * 2015-12-15 2020-01-14 Nxp Usa, Inc. Method and apparatus to accelerate session creation using historical session cache
CN113573288A (zh) 2016-05-06 2021-10-29 康维达无线有限责任公司 服务层的业务导向
US11218506B2 (en) * 2018-12-17 2022-01-04 Microsoft Technology Licensing, Llc Session maturity model with trusted sources
WO2020236261A1 (en) * 2019-05-23 2020-11-26 Cray Inc. Dragonfly routing with incomplete group connectivity
CN113497718B (zh) * 2020-03-19 2023-08-15 阿里巴巴集团控股有限公司 报文处理设备及报文处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000083051A (ja) * 1998-06-30 2000-03-21 Hitachi Ltd パケット中継方法及びパケット中継装置
JP2006319808A (ja) * 2005-05-13 2006-11-24 Nippon Telegraph & Telephone East Corp サービス中継ネットワークシステム及びサービス中継方法
JP2009130838A (ja) * 2007-11-27 2009-06-11 Alaxala Networks Corp パケット中継装置

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542496B1 (en) 1998-06-30 2003-04-01 Hitachi, Ltd. Packet switching method and apparatus thereof
US6726929B1 (en) 1998-12-18 2004-04-27 Basf Aktiengesellschaft Pharmaceutical mixture comprising a profen
US7328349B2 (en) * 2001-12-14 2008-02-05 Bbn Technologies Corp. Hash-based systems and methods for detecting, preventing, and tracing network worms and viruses
US20040213237A1 (en) * 2000-06-29 2004-10-28 Toshikazu Yasue Network authentication apparatus and network authentication system
JP4564228B2 (ja) * 2000-07-25 2010-10-20 ジュニパー ネットワークス, インコーポレイテッド ネットワーク通信データをオンラインで透過的にクロスセッションで符号化及び伝送するための構成及び方法
US6728929B1 (en) * 2001-02-16 2004-04-27 Spirent Communications Of Calabasas, Inc. System and method to insert a TCP checksum in a protocol neutral manner
JP3963690B2 (ja) * 2001-03-27 2007-08-22 富士通株式会社 パケット中継処理装置
US7403999B2 (en) * 2001-12-28 2008-07-22 International Business Machines Corporation Classification support system and method for fragmented IP packets
US7359962B2 (en) * 2002-04-30 2008-04-15 3Com Corporation Network security system integration
US7403542B1 (en) * 2002-07-19 2008-07-22 Qlogic, Corporation Method and system for processing network data packets
US7454499B2 (en) * 2002-11-07 2008-11-18 Tippingpoint Technologies, Inc. Active network defense system and method
GB0303192D0 (en) * 2003-02-12 2003-03-19 Saviso Group Ltd Methods and apparatus for traffic management in peer-to-peer networks
CN1531282A (zh) * 2003-03-12 2004-09-22 ���µ�����ҵ��ʽ���� 分组中继装置
JP2005175635A (ja) * 2003-12-08 2005-06-30 Nippon Telegr & Teleph Corp <Ntt> ネットワーク間接続制御方法及びシステム装置
JP2005197823A (ja) * 2003-12-26 2005-07-21 Fujitsu Ltd ファイアウォールとルータ間での不正アクセス制御装置
JP4484663B2 (ja) * 2004-02-02 2010-06-16 株式会社サイバー・ソリューションズ 不正情報検知システム及び不正攻撃元探索システム
US7703138B2 (en) * 2004-12-29 2010-04-20 Intel Corporation Use of application signature to identify trusted traffic
JP4545647B2 (ja) * 2005-06-17 2010-09-15 富士通株式会社 攻撃検知・防御システム
US7856661B1 (en) * 2005-07-14 2010-12-21 Mcafee, Inc. Classification of software on networked systems
US7664088B2 (en) * 2005-12-08 2010-02-16 Electronics And Telecommunications Research Institute Method for providing QoS using flow label in providing multimedia service in IPv6 network and system applying the same
JP4648182B2 (ja) * 2005-12-19 2011-03-09 富士通株式会社 パケット中継システム
US20070157316A1 (en) * 2005-12-30 2007-07-05 Intel Corporation Managing rogue IP traffic in a global enterprise
US20070220187A1 (en) * 2006-03-20 2007-09-20 Lawrence Kates Virus-resistant computer with data interface for filtering data
CN1921477A (zh) * 2006-09-01 2007-02-28 华为数字技术有限公司 一种对分片报文进行复杂流分类的方法及系统
US20080077793A1 (en) * 2006-09-21 2008-03-27 Sensory Networks, Inc. Apparatus and method for high throughput network security systems
CN102217228B (zh) * 2007-09-26 2014-07-16 Nicira股份有限公司 管理和保护网络的网络操作系统
JP4570652B2 (ja) * 2007-11-02 2010-10-27 日本電信電話株式会社 不正アクセス監視装置およびその方法
US8072894B2 (en) * 2007-11-07 2011-12-06 Juniper Networks, Inc. Systems and methods for flow monitoring
CN101222379B (zh) * 2007-12-13 2010-12-29 东软集团股份有限公司 一种垃圾语音信息的监控方法和装置
JP2009209722A (ja) 2008-03-03 2009-09-17 Nissan Motor Co Ltd エンジンの始動制御装置及び始動制御方法
US20090252041A1 (en) * 2008-04-03 2009-10-08 Alcatel Lucent Optimized statistics processing in integrated DPI service-oriented router deployments
US7826458B2 (en) * 2009-03-05 2010-11-02 Juniper Networks, Inc. Tracking fragmented data flows
US8588056B1 (en) * 2009-04-15 2013-11-19 Sprint Communications Company L.P. Elimination of unwanted packets entering a restricted bandwidth network
US8495725B2 (en) * 2009-08-28 2013-07-23 Great Wall Systems Methods, systems, and computer readable media for adaptive packet filtering

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000083051A (ja) * 1998-06-30 2000-03-21 Hitachi Ltd パケット中継方法及びパケット中継装置
JP2006319808A (ja) * 2005-05-13 2006-11-24 Nippon Telegraph & Telephone East Corp サービス中継ネットワークシステム及びサービス中継方法
JP2009130838A (ja) * 2007-11-27 2009-06-11 Alaxala Networks Corp パケット中継装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200800778013; 久保田 浩: 'New Face Research & Development' 日経NETWORK 第104号, 20081128, pp.080-081, 日経BP社 Nikkei Business Publications,Inc. *
JPN6014030658; 久保田 浩: 'New Face Research & Development' 日経NETWORK 第104号, 20081128, pp.080-081, 日経BP社 Nikkei Business Publications,Inc. *

Also Published As

Publication number Publication date
EP2477362A1 (en) 2012-07-18
JP2015029356A (ja) 2015-02-12
CN102577275B (zh) 2016-05-04
EP2477362A4 (en) 2013-12-04
WO2011030490A1 (ja) 2011-03-17
US20120044935A1 (en) 2012-02-23
US20170063619A1 (en) 2017-03-02
JPWO2011030490A1 (ja) 2013-02-04
US10075338B2 (en) 2018-09-11
CN102577275A (zh) 2012-07-11

Similar Documents

Publication Publication Date Title
JP5648639B2 (ja) 中継制御装置、中継制御システム、中継制御方法及び中継制御プログラム
EP2544417B1 (en) Communication system, path control apparatus, packet forwarding apparatus and path control method
EP2493128A1 (en) Communication system, flow control apparatus, flow table updating method and program
WO2012056816A1 (ja) ネットワークシステム、及び通信トラフィック制御方法
US20130282867A1 (en) Information system, control apparatus, method of providing virtual network, and program
JP5858141B2 (ja) 制御装置、通信装置、通信システム、通信方法及びプログラム
CN103347014A (zh) 网络快速转发模块及网络快速转发实现方法
US10069648B2 (en) Communication system, control apparatus, communication control method and program
JP5725236B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
JP5651970B2 (ja) 通信装置、通信制御方法、及び通信制御用プログラム
KR101707355B1 (ko) 통신 노드, 통신 시스템, 제어 장치, 패킷 전송 방법 및 프로그램
EP2773072B1 (en) Control apparatus, communication system, virtual network management method, and program
JP4669454B2 (ja) データフレーム中継装置、およびデータ通信網における輻輳制御方法
JP4597102B2 (ja) パケット交換装置
JP3754044B2 (ja) パケットフォワーディング回路
JP6314970B2 (ja) 通信システム、制御装置、通信方法およびプログラム
JP2019029907A (ja) 転送システム、情報処理装置、転送方法及び情報処理方法
JP2015095768A (ja) 情報伝送装置、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140917

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: 20141014

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141027

R150 Certificate of patent or registration of utility model

Ref document number: 5648639

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150