JP2011193378A - Communication system - Google Patents

Communication system Download PDF

Info

Publication number
JP2011193378A
JP2011193378A JP2010059694A JP2010059694A JP2011193378A JP 2011193378 A JP2011193378 A JP 2011193378A JP 2010059694 A JP2010059694 A JP 2010059694A JP 2010059694 A JP2010059694 A JP 2010059694A JP 2011193378 A JP2011193378 A JP 2011193378A
Authority
JP
Japan
Prior art keywords
node
address
packet
server
relay terminal
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.)
Pending
Application number
JP2010059694A
Other languages
Japanese (ja)
Inventor
Takamasa Isohara
隆将 磯原
Ayumi Kubota
歩 窪田
Masaru Miyake
優 三宅
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.)
KDDI Research Inc
Original Assignee
KDDI R&D Laboratories Inc
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 KDDI R&D Laboratories Inc filed Critical KDDI R&D Laboratories Inc
Priority to JP2010059694A priority Critical patent/JP2011193378A/en
Publication of JP2011193378A publication Critical patent/JP2011193378A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a communication system in which a load related to VPN (Virtual Private Network) connection established with a relay terminal by a server is reduced. <P>SOLUTION: A packet aggregation node 2 receives a packet with an IP address of a client 5 as a transmission source and with a virtual IP address of a server 1 as a destination, converts the packet into a packet with an IP address of the packet aggregation node 2 as a transmission source and with an IP address of a packet transfer node 3 corresponding to the virtual IP address of the server 1 as a destination by encapsulating the packet, and transmits the packet. The packet transfer node 3 receives the packet from the packet aggregation node 2, converts the packet into the unencapsulated packet by decapsulating the packet, converts the converted packet into a packet with the IP address of the packet transfer node 3 as a transmission source and with a real IP address corresponding to the virtual IP address of the server 1 as a destination by encapsulating the converted packet, and transmits the packet. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、仮想IPアドレスが割り当てられたサーバと、サーバ宛てのパケットを中継する中継端末とを有する通信システムに関する。   The present invention relates to a communication system having a server to which a virtual IP address is assigned and a relay terminal that relays a packet addressed to the server.

物理的なサーバ上に複数の仮想マシンを生成し、大規模なシステムの簡便な構築を実現する、クラウド・コンピューティングが普及している。一般的に、クラウド上で稼働するサーバは、ネットワークを介したサービスの提供を行うため、DDoS攻撃などの脅威からサーバを保護する手法が必要となる。   Cloud computing, which creates a plurality of virtual machines on a physical server and realizes easy construction of a large-scale system, has become widespread. In general, a server running on the cloud provides a service via a network, and thus a method for protecting the server from threats such as DDoS attacks is required.

非特許文献1では、攻撃経路の多様化に対応する手法が提案されている。具体的には、ネットワークをセグメントに分割しその境界に侵入検知システムやファイアウォールなどのセキュリティ監視・制御装置を設置する対策が無力化する脅威を想定し、ネットワークの物理的な構成の変更を伴わずに、ネットワークのトポロジに依存しない手法によって端末を保護するための手法が提案されている。非特許文献1では、その手法を実現する手段として、サーバを収容する仮想的なIPアドレス宛の経路情報を広告する「中継端末」をネットワーク上に配置し、仮想IPアドレスが割り当てられたサーバと中継端末との間でVPN(Virtual Private Network)接続を確立し(トンネリングの設定を行い)、中継端末が仮想IPアドレス宛てのパケットを中継することが記載されている。   Non-Patent Document 1 proposes a method corresponding to diversification of attack paths. Specifically, it is assumed that there is a threat that measures to disable security measures and control devices such as intrusion detection systems and firewalls at the boundaries of the network are divided, and without changing the physical configuration of the network. In addition, a technique for protecting a terminal by a technique independent of the network topology has been proposed. In Non-Patent Document 1, as means for realizing the technique, a “relay terminal” that advertises route information addressed to a virtual IP address that accommodates a server is arranged on the network, and a server to which a virtual IP address is assigned is provided. It describes that a VPN (Virtual Private Network) connection is established with a relay terminal (tunneling is set), and the relay terminal relays a packet addressed to a virtual IP address.

上記の手法により、サーバと通信を行うクライアントから送信されたパケットは、ネットワーク上に広告された経路情報に従って、サーバとVPN接続を確立している中継端末を経由してサーバに到着するので、中継端末においてトラヒックの監視・制御を行うことで、サーバの物理的な位置に依存せずに、仮想セグメント上のサーバに対するセキュリティの監視・制御を実現することが可能となる。   The packet sent from the client that communicates with the server by the above method arrives at the server via the relay terminal that has established a VPN connection with the server according to the route information advertised on the network. By monitoring and controlling the traffic at the terminal, it becomes possible to realize the security monitoring and control for the server on the virtual segment without depending on the physical position of the server.

上記の手法において、トラヒックの監視・制御は中継端末で行うことになる。中継端末上でサーバへの攻撃を検知した場合、一般的に、そのサーバを宛先とするパケットを削除するようなフィルタリングルールが設定される。しかし、中継端末には各所からパケットが到着するので、攻撃パケット以外の通常のパケットも削除されてしまう問題がある。   In the above method, traffic monitoring / control is performed by a relay terminal. When an attack on a server is detected on a relay terminal, a filtering rule is generally set so as to delete a packet destined for that server. However, since packets arrive at the relay terminal from various places, there is a problem that normal packets other than attack packets are also deleted.

非特許文献2では、ネットワークセキュリティを侵害する攻撃のうち、攻撃者が不正パケットの発信元を隠蔽するために、IPアドレスを詐称したうえで、Distributed Denial of Service (DDoS)攻撃を行う脅威を想定し、その脅威に対応する手法が提案されている。一般的に、この種の攻撃は、ファイアウォールや侵入検知システムを用いた、単一の監視ポイントにおける検知や防御が困難である。また、ネットワーク上の複数の端末が連携する仕組みを導入する場合、既存設備の大規模な構成変更を要する。そこで、非特許文献1で提案されている、サーバを仮想的なセグメントに収容する通信方式を応用した、サーバと仮想セグメントの境界の端末による攻撃検知・防御の仕組みを提案している。   Non-Patent Document 2 assumes a threat of performing a Distributed Denial of Service (DDoS) attack after spoofing an IP address in order to conceal the source of an illegal packet among attacks that violate network security. However, methods for dealing with the threat have been proposed. In general, this type of attack is difficult to detect and prevent at a single monitoring point using a firewall or intrusion detection system. In addition, when introducing a mechanism in which a plurality of terminals on a network cooperate, a large-scale configuration change of an existing facility is required. Therefore, a mechanism for attack detection / protection by a terminal at the boundary between the server and the virtual segment is proposed, which applies the communication method proposed in Non-Patent Document 1 to accommodate the server in a virtual segment.

非特許文献2で提案されている手法では、1つのサーバはネットワーク上の全ての中継端末とVPN接続を確立する。これによって、複数の中継端末上でトラヒックの監視・制御を行うことが可能となる。そして、サーバへの攻撃を検知した中継端末のみにおいてフィルタリングルールが設定されるので、攻撃を検知した中継端末以外の中継端末を経由する通常のパケットは正常にサーバに届くことになる。   In the method proposed in Non-Patent Document 2, one server establishes a VPN connection with all relay terminals on the network. This makes it possible to monitor and control traffic on a plurality of relay terminals. Since the filtering rule is set only in the relay terminal that detects an attack on the server, normal packets that pass through relay terminals other than the relay terminal that detected the attack normally reach the server.

磯原隆将、窪田歩、三宅優、“イントラネットにおける仮想的なセグメントを用いたサーバ端末の保護手法の提案”、2008年9月、電子情報通信学会 ソサイエティ大会Takamasa Sugawara, Ayumu Kubota, Yu Miyake, “Proposal of Server Terminal Protection Method Using Virtual Segments in Intranet”, September 2008, IEICE Society Conference 磯原隆将、窪田歩、三宅優、“IPトレースバックを用いないDDoS攻撃防御手法の提案”、2009年3月、電子情報通信学会 総合大会Takamasa Sugawara, Ayumu Kubota, Yu Miyake, “Proposal of DDoS attack defense method without IP traceback”, March 2009, IEICE General Conference

しかし、非特許文献2で提案されている手法では、各サーバがネットワーク上の全ての中継端末とVPN接続を確立することになるので、多量のVPN接続を確立する処理負荷およびVPN接続の管理負荷が発生する。   However, in the method proposed in Non-Patent Document 2, each server establishes a VPN connection with all the relay terminals on the network, so the processing load for establishing a large amount of VPN connection and the management load for VPN connection Will occur.

本発明は、上述した課題に鑑みてなされたものであって、サーバが中継端末と確立するVPN接続に係る負荷を低減することができる通信システムを提供することを目的とする。   The present invention has been made in view of the above-described problems, and an object of the present invention is to provide a communication system capable of reducing a load related to a VPN connection established by a server with a relay terminal.

本発明は、上記の課題を解決するためになされたもので、実IPアドレスおよび仮想IPアドレスを有するサーバと、通信端末から前記サーバ宛てに送信されるパケットを中継する複数の第1の中継端末と、前記第1の中継端末によって中継されたパケットを受信し、前記サーバとの間で確立されたVPN接続により前記サーバへパケットを送信する複数の第2の中継端末とを備えた通信システムであって、前記第1の中継端末は、前記通信端末のIPアドレスを送信元とし、前記サーバの仮想IPアドレスを宛先とするパケットを受信する第1の受信手段と、前記第1の受信手段によって受信されたパケットをカプセル化によって、前記第1の中継端末のIPアドレスを送信元とし、前記サーバの仮想IPアドレスに対応する前記第2の中継端末のIPアドレスを宛先とするパケットに変換する第1の変換手段と、前記第1の変換手段によってカプセル化されたパケットを送信する第1の送信手段とを有し、前記第2の中継端末は、前記第1の中継端末からのパケットを受信する第2の受信手段と、前記第2の受信手段によって受信されたパケットをカプセル解除によって、カプセル化される前のパケットに変換し、変換後のパケットをカプセル化によって、前記第2の中継端末のIPアドレスを送信元とし、前記サーバの仮想IPアドレスに対応する実IPアドレスを宛先とするパケットに変換する第2の変換手段と、前記第2の変換手段によってカプセル化されたパケットを送信する第2の送信手段とを有し、前記サーバは、前記第2の中継端末からのパケットを受信する第3の受信手段を有し、前記サーバは1つの前記第2の中継端末のみとVPN接続を確立することを特徴とする通信システムである。   The present invention has been made to solve the above problems, and a server having a real IP address and a virtual IP address, and a plurality of first relay terminals that relay packets transmitted from the communication terminal to the server And a plurality of second relay terminals that receive the packet relayed by the first relay terminal and transmit the packet to the server through a VPN connection established with the server. The first relay terminal includes a first receiving unit that receives a packet having the IP address of the communication terminal as a transmission source and the virtual IP address of the server as a destination, and the first reception unit. By encapsulating the received packet, the IP address of the first relay terminal is set as the transmission source, and the IP address of the second relay terminal corresponding to the virtual IP address of the server is set. A first conversion unit that converts the packet into a first packet; and a first transmission unit that transmits the packet encapsulated by the first conversion unit. A second receiving means for receiving a packet from the relay terminal, and converting the packet received by the second receiving means into a packet before being encapsulated by decapsulation, and encapsulating the converted packet By means of the second conversion means, the second conversion means for converting the IP address of the second relay terminal into a packet whose source is the real IP address corresponding to the virtual IP address of the server, and the second conversion means Second transmission means for transmitting the encapsulated packet, and the server has third reception means for receiving a packet from the second relay terminal, and the server A communication system is characterized in that a VPN connection is established with only one second relay terminal.

また、本発明の通信システムにおいて、前記サーバはさらに、前記第2の中継端末にVPN接続の要求を行い、自身の仮想IPアドレスおよび実IPアドレスを前記第2の中継端末に通知する接続要求手段を有し、前記第1の中継端末はさらに、前記サーバの仮想IPアドレスと前記第2の中継端末のIPアドレスとの対応関係に係る情報を記憶する第1の記憶手段と、前記第2の中継端末から前記対応関係に係る情報を通知された場合に当該対応関係に係る情報を前記第1の記憶手段に設定する設定手段と、前記第1の受信手段によってパケットが受信された際に、他の前記第1の中継端末または前記第2の中継端末に対して、前記サーバの仮想IPアドレスに係る情報を含む検索要求を行う検索要求手段と、他の前記第1の中継端末または前記第2の中継端末から前記検索要求を受けた場合、当該検索要求に含まれる情報が示す前記サーバの仮想IPアドレスに対応する前記第2の中継端末のIPアドレスを前記第1の記憶手段から取得し、前記検索要求を行った端末に対して、前記第1の記憶手段から取得した前記第2の中継端末のIPアドレスを応答する応答手段とを有し、前記第2の中継端末はさらに、前記第1の記憶手段と、前記設定手段と、前記応答手段と、前記サーバからVPN接続の要求を受けた場合に、前記対応関係に係る情報を他の前記第1の中継端末または前記第2の中継端末に通知する通知手段とを有することを特徴とする。   In the communication system of the present invention, the server further requests a VPN connection to the second relay terminal, and notifies the second relay terminal of its own virtual IP address and real IP address. The first relay terminal further includes first storage means for storing information related to a correspondence relationship between the virtual IP address of the server and the IP address of the second relay terminal, and the second relay terminal. When the relay terminal is notified of the information related to the correspondence, the setting means for setting the information related to the correspondence in the first storage means, and when the packet is received by the first receiving means, Search request means for making a search request including information related to the virtual IP address of the server to the other first relay terminal or the second relay terminal, the other first relay terminal or the second relay terminal 2 relay end When receiving the search request from the end, the IP address of the second relay terminal corresponding to the virtual IP address of the server indicated by the information included in the search request is acquired from the first storage unit, and the search Response means for responding to the requesting terminal with the IP address of the second relay terminal acquired from the first storage means, and the second relay terminal further includes the first relay terminal When a VPN connection request is received from the storage unit, the setting unit, the response unit, and the server, the information related to the correspondence relationship is transmitted to the other first relay terminal or the second relay terminal. And a notification means for notifying.

また、本発明の通信システムにおいて、前記対応関係に係る情報が分散ハッシュテーブルにより管理されることを特徴とする。   In the communication system of the present invention, the information related to the correspondence relationship is managed by a distributed hash table.

本発明によれば、サーバは1つの中継端末のみとVPN接続を確立するので、VPN接続に係る負荷を低減することができる。   According to the present invention, since the server establishes the VPN connection with only one relay terminal, the load related to the VPN connection can be reduced.

本発明の一実施形態による通信システムの構成を示す構成図である。It is a block diagram which shows the structure of the communication system by one Embodiment of this invention. 本発明の一実施形態による通信システムの機能構成を示すブロック図である。It is a block diagram which shows the function structure of the communication system by one Embodiment of this invention. 本発明の一実施形態における初期ノード起動手順を示すシーケンス図である。It is a sequence diagram which shows the initial stage node starting procedure in one Embodiment of this invention. 本発明の一実施形態におけるノード加入手順を示すシーケンス図である。It is a sequence diagram which shows the node joining procedure in one Embodiment of this invention. 本発明の一実施形態におけるノード脱退手順を示すシーケンス図である。It is a sequence diagram which shows the node withdrawal procedure in one Embodiment of this invention. 本発明の一実施形態におけるサーバ公開開始手順を示すシーケンス図である。It is a sequence diagram which shows the server public start procedure in one Embodiment of this invention. 本発明の一実施形態におけるサーバ公開停止手順を示すシーケンス図である。It is a sequence diagram which shows the server public stop procedure in one Embodiment of this invention. 本発明の一実施形態における通信手順を示すシーケンス図である。It is a sequence diagram which shows the communication procedure in one Embodiment of this invention. 本発明の一実施形態によるパケット集約ノードとパケット転送ノードの機能構成を示すブロック図である。It is a block diagram which shows the function structure of the packet aggregation node and packet forwarding node by one Embodiment of this invention. 本発明の一実施形態における攻撃検知・防御手順を示すシーケンス図である。It is a sequence diagram which shows the attack detection and defense procedure in one Embodiment of this invention. 本発明の一実施形態におけるログの構造を示す参考図である。It is a reference figure showing the structure of the log in one embodiment of the present invention. 本発明の一実施形態における攻撃検知方法を説明するための参考図である。It is a reference figure for demonstrating the attack detection method in one Embodiment of this invention. DHTネットワークにおけるハッシュ空間を示す参考図である。It is a reference figure which shows the hash space in a DHT network.

以下、図面を参照し、本発明の実施形態を説明する。図1は、本発明の一実施形態による通信システムの構成を示している。本通信システムは、サーバ1、パケット集約ノード2(第1の中継端末)、パケット転送ノード3(第2の中継端末)、管理ノード4、クライアント5(通信端末)を備える。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 shows the configuration of a communication system according to an embodiment of the present invention. The communication system includes a server 1, a packet aggregation node 2 (first relay terminal), a packet forwarding node 3 (second relay terminal), a management node 4, and a client 5 (communication terminal).

サーバ1は、FTP(File Transfer Protocol)サーバやWebサーバ等であり、所定のサービスを提供する。サーバ1には、実ネットワークで用いるIPアドレス(本明細書では実IPアドレスとする)と共に、仮想的なIPアドレス(本明細書では仮想IPアドレスとする)が割り当てられている。   The server 1 is an FTP (File Transfer Protocol) server, a Web server, or the like, and provides a predetermined service. A virtual IP address (referred to as a virtual IP address in this specification) is assigned to the server 1 together with an IP address used in the actual network (referred to as a real IP address in this specification).

パケット集約ノード2は、クライアント5からサーバ1宛てに送信されるパケットをパケット転送ノード3に中継する。パケット転送ノード3は、パケット集約ノード2が中継したパケットをサーバ1に中継する。管理ノード4は、サーバ1に対する仮想IPアドレスの割り当てと、パケット集約ノード2およびパケット転送ノード3の状態を管理する。   The packet aggregation node 2 relays a packet transmitted from the client 5 to the server 1 to the packet forwarding node 3. The packet forwarding node 3 relays the packet relayed by the packet aggregation node 2 to the server 1. The management node 4 manages the assignment of virtual IP addresses to the server 1 and the states of the packet aggregation node 2 and the packet forwarding node 3.

サーバ1とパケット転送ノード3との間ではVPN接続が確立される。これにより、サーバ1はネットワーク上の仮想的なセグメント(仮想セグメント)に収容される。サーバ1とパケット転送ノード3との関係は1対1である、すなわちサーバ1は1つのパケット転送ノード3のみとVPN接続を確立するため、特定のサーバ1宛てのパケットは、このサーバ1とVPN接続を確立している1つのパケット転送ノード3を必ず経由する。上記のようにサーバ1は1つのパケット転送ノード3のみとVPN接続を確立するため、サーバが全ての中継端末とVPN接続を確立する手法を用いる場合よりもVPN接続を確立する処理負荷およびVPN接続の管理負荷が低減される。   A VPN connection is established between the server 1 and the packet forwarding node 3. Thereby, the server 1 is accommodated in a virtual segment (virtual segment) on the network. The relationship between the server 1 and the packet forwarding node 3 is one-to-one, that is, since the server 1 establishes a VPN connection with only one packet forwarding node 3, a packet addressed to a specific server 1 It always passes through one packet forwarding node 3 that has established a connection. As described above, since the server 1 establishes the VPN connection with only one packet forwarding node 3, the processing load and the VPN connection for establishing the VPN connection than when the server uses the method of establishing the VPN connection with all the relay terminals. Management load is reduced.

パケット転送ノード3には、同一のサーバ1に対するパケットが複数のパケット集約ノード2から到来しうる。パケット転送ノード3が、どのパケット集約ノード2からのパケットであるのかを区別してサーバ1へのパケット量を監視し、攻撃を検知することで、攻撃パケットがどのパケット集約ノード2から到来するのかを知ることができる。攻撃が検知された場合、複数のパケット集約ノード2のうち攻撃パケットを中継したパケット集約ノード2において、攻撃対象となったサーバ1の仮想IPアドレス宛てのパケットを削除するパケットフィルタリングを実施することで、サーバ1を攻撃から防御することができる。パケットフィルタリングを実施しているパケット集約ノード2以外のパケット集約ノード2から到来するパケットは攻撃パケットではないとみなされ、サーバ1へ転送される。   Packets for the same server 1 can arrive at the packet forwarding node 3 from a plurality of packet aggregation nodes 2. The packet forwarding node 3 distinguishes from which packet aggregation node 2 the packet is sent to the server 1 to monitor the amount of packets to the server 1 and detects an attack to determine which packet aggregation node 2 the attack packet comes from. I can know. When an attack is detected, the packet aggregation node 2 that relays the attack packet among the plurality of packet aggregation nodes 2 performs packet filtering that deletes the packet addressed to the virtual IP address of the server 1 that is the attack target. The server 1 can be protected from attacks. A packet that arrives from a packet aggregation node 2 other than the packet aggregation node 2 that is performing packet filtering is regarded as not an attack packet and is forwarded to the server 1.

サーバ1は、パケット転送ノード3とVPN接続を確立する場合、特定の1つのパケット転送ノード3に対してVPN接続の要求を行う。このVPN接続の要求と確立はサーバ1とパケット転送ノード3との間で自律的に行われるため、1つの管理端末が全てのパケット転送ノード3の状態を管理し、サーバ1からVPN接続の要求を受けてパケット転送ノード3の情報を応答するような中央集権的な仕組みを必要としない。   When establishing a VPN connection with the packet forwarding node 3, the server 1 makes a VPN connection request to one specific packet forwarding node 3. Since this VPN connection request and establishment is performed autonomously between the server 1 and the packet forwarding node 3, one management terminal manages the state of all the packet forwarding nodes 3, and the server 1 requests a VPN connection. Therefore, a centralized mechanism for responding to the packet forwarding node 3 information is not required.

パケット集約ノード2とパケット転送ノード3は、分散ハッシュテーブル(DHT: Distributed Hash Table)を利用したDHTネットワークを構成する。これにより、サーバ1とパケット転送ノード3との対応関係を管理する負荷がパケット集約ノード2およびパケット転送ノード3間で分散される。   The packet aggregation node 2 and the packet forwarding node 3 constitute a DHT network using a distributed hash table (DHT). As a result, the load for managing the correspondence between the server 1 and the packet forwarding node 3 is distributed between the packet aggregation node 2 and the packet forwarding node 3.

図2は、パケットの中継に関する本通信システムの機能構成を示している。サーバ1は、サーバアプリケーション10と、サーバ公開部11とを有する。サーバアプリケーション10は、クライアント5からの要求に応じてサービスを提供する。サーバ公開部11は、サーバ1を収容する仮想セグメントを構築するためのサーバ公開に係る処理を行う。   FIG. 2 shows a functional configuration of the communication system related to packet relay. The server 1 includes a server application 10 and a server disclosure unit 11. The server application 10 provides a service in response to a request from the client 5. The server disclosure unit 11 performs processing related to server disclosure for constructing a virtual segment that accommodates the server 1.

パケット集約ノード2は、中継部20と、DHT管理部21と、DHT記憶部22と、広告部23とを有する。中継部20は、クライアント5から送信されたパケットをパケット転送ノード3に中継する。DHT管理部21は、DHTネットワークに参加するための処理を行い、DHT記憶部22に記憶される情報を管理する。DHT記憶部22は、サーバ1とVPN接続を確立しているパケット転送ノード3のIPアドレスとサーバ1の仮想IPアドレスとの対応関係を示す情報を記憶する。より具体的には、DHT記憶部22は、サーバ1とVPN接続を確立しているパケット転送ノード3のIPアドレスと、サーバ1の仮想IPアドレスからSHA1(Secure Hash Algorithm 1)を用いて算出したハッシュ値とを関連付けて記憶する。DHTネットワークでは、この対応関係を示す情報は、サーバ1とVPN接続を確立しているパケット転送ノード3で管理されるとは限らず、DHTネットワークを構成するパケット集約ノード2とパケット転送ノード3のいずれかにおいて管理される。   The packet aggregation node 2 includes a relay unit 20, a DHT management unit 21, a DHT storage unit 22, and an advertisement unit 23. The relay unit 20 relays the packet transmitted from the client 5 to the packet forwarding node 3. The DHT management unit 21 performs processing for participating in the DHT network and manages information stored in the DHT storage unit 22. The DHT storage unit 22 stores information indicating the correspondence between the IP address of the packet forwarding node 3 that has established a VPN connection with the server 1 and the virtual IP address of the server 1. More specifically, the DHT storage unit 22 is calculated from the IP address of the packet forwarding node 3 that has established a VPN connection with the server 1 and the virtual IP address of the server 1 using SHA1 (Secure Hash Algorithm 1). The hash value is stored in association with it. In the DHT network, the information indicating the correspondence relationship is not necessarily managed by the packet forwarding node 3 that establishes the VPN connection with the server 1, but the packet aggregation node 2 and the packet forwarding node 3 constituting the DHT network. Managed in either.

広告部23は、サーバ1の仮想IPアドレス宛てのパケットがパケット集約ノード2に届くように、ルーティングプロトコルの一種であるOSPF(Open Shortest Path First)に従って、仮想IPアドレス宛ての経路に係る経路情報をネットワーク上に広告する。クライアント5がサーバ1の仮想IPアドレス宛てのパケットを送信すると、この経路情報に従ってネットワーク上のルータが転送を行うことにより、クライアント5に最も近いパケット集約ノード2にパケットが到着する。   The advertising unit 23 displays route information related to the route addressed to the virtual IP address according to OSPF (Open Shortest Path First) which is a kind of routing protocol so that the packet addressed to the virtual IP address of the server 1 reaches the packet aggregation node 2. Advertise on the network. When the client 5 transmits a packet addressed to the virtual IP address of the server 1, the packet arrives at the packet aggregation node 2 closest to the client 5 by forwarding the router on the network according to this path information.

パケット転送ノード3は、中継部30と、サーバ公開部31と、DHT管理部32と、DHT記憶部33と、広告部34とを有する。中継部30は、パケット集約ノード2から送信されたパケットをサーバ1に中継する。サーバ公開部31は、サーバ1を収容する仮想セグメントを構築するためのサーバ公開に係る処理を行う。DHT管理部32は、DHTネットワークに参加するための処理を行い、DHT記憶部33に記憶される情報を管理する。DHT記憶部33はDHT記憶部22と同様に、サーバ1とVPN接続を確立しているパケット転送ノード3のIPアドレスと、サーバ1の仮想IPアドレスからSHA1を用いて算出したハッシュ値とを関連付けて記憶する。   The packet forwarding node 3 includes a relay unit 30, a server disclosure unit 31, a DHT management unit 32, a DHT storage unit 33, and an advertisement unit 34. The relay unit 30 relays the packet transmitted from the packet aggregation node 2 to the server 1. The server disclosure unit 31 performs processing related to server disclosure for constructing a virtual segment that accommodates the server 1. The DHT management unit 32 performs processing for participating in the DHT network, and manages information stored in the DHT storage unit 33. Similar to the DHT storage unit 22, the DHT storage unit 33 associates the IP address of the packet forwarding node 3 that has established a VPN connection with the server 1 and the hash value calculated by using SHA1 from the virtual IP address of the server 1. And remember.

広告部34は、OSPFに従って、エニーキャストアドレス宛ての経路に係る経路情報をネットワーク上に広告する。サーバ1が、サーバ公開に係るVPN接続を行う際にエニーキャストアドレス宛てにパケット転送ノード3の検索要求を行うと、サーバ1に最も近いパケット転送ノード3から応答が返される。サーバ記憶部35は、サーバ1の仮想IPアドレスと実IPアドレスとを関連付けて記憶する。   The advertising unit 34 advertises the route information related to the route addressed to the anycast address on the network according to OSPF. When the server 1 makes a search request for the packet forwarding node 3 addressed to the anycast address when making a VPN connection related to server publication, a response is returned from the packet forwarding node 3 closest to the server 1. The server storage unit 35 stores the virtual IP address and real IP address of the server 1 in association with each other.

管理ノード4は、仮想IPアドレス記憶部40と、アドレス管理部41と、設定情報記憶部42と、ノード管理部43と、ノードリスト記憶部44とを有する。仮想IPアドレス記憶部40は、サーバ1に割り当てられる仮想IPアドレスを記憶する。アドレス管理部41は、サーバ1に対する仮想IPアドレスの割り当てを管理する。設定情報記憶部42は、パケット集約ノード2に通知する仮想IPアドレスの範囲や、パケット転送ノード3に通知するエニーキャストアドレスの範囲等を含む設定情報を記憶する。各パケット集約ノード2には共通の仮想IPアドレス範囲が通知される。また、各パケット転送ノード3には共通のエニーキャストアドレス範囲が通知される。ノード管理部43は、DHTネットワークを構成するパケット集約ノード2およびパケット転送ノード3の情報を管理する。ノードリスト記憶部44は、DHTネットワークを構成するパケット集約ノード2およびパケット転送ノード3の一覧であるノードリストを記憶する。   The management node 4 includes a virtual IP address storage unit 40, an address management unit 41, a setting information storage unit 42, a node management unit 43, and a node list storage unit 44. The virtual IP address storage unit 40 stores a virtual IP address assigned to the server 1. The address management unit 41 manages allocation of virtual IP addresses to the server 1. The setting information storage unit 42 stores setting information including a range of virtual IP addresses notified to the packet aggregation node 2, a range of anycast addresses notified to the packet forwarding node 3, and the like. Each packet aggregation node 2 is notified of a common virtual IP address range. Each packet forwarding node 3 is notified of a common anycast address range. The node management unit 43 manages information on the packet aggregation node 2 and the packet forwarding node 3 constituting the DHT network. The node list storage unit 44 stores a node list that is a list of the packet aggregation node 2 and the packet forwarding node 3 that constitute the DHT network.

クライアント5はクライアントアプリケーション50を有する。クライアントアプリケーション50はサーバ1に対してサービスの要求を行う。   The client 5 has a client application 50. The client application 50 makes a service request to the server 1.

次に、パケット集約ノード2とパケット転送ノード3によるDHTネットワークの構築と管理について説明する。DHTネットワークにおいては、ネットワークを構成するノードの加入と離脱が生じる。ノードが加入する場合、既にDHTネットワークを構成しているいずれかのノードに対して加入処理を行うことで、DHTネットワークへの加入を行う。一方、DHTネットワークからノードが離脱する場合、ルーティングテーブルの再構築が行われ、残りのノードにより通信が継続される。このとき、離脱したノードが所持していた情報はDHTネットワーク上で隣接するノードが同期を取るなどして保持される。なお、最初にDHTネットワークを構成するノードが起動する場合は、加入処理を行う対象のノードが存在しないため、初期ノード起動処理が行われる。以下、DHTネットワークを構築するアルゴリズムの一種であるChordを実装したプログラムを例に、それぞれの具体的な手法を説明する。   Next, construction and management of a DHT network by the packet aggregation node 2 and the packet forwarding node 3 will be described. In the DHT network, joining and leaving of nodes constituting the network occur. When a node joins, it joins the DHT network by performing a joining process on any node that already configures the DHT network. On the other hand, when a node leaves the DHT network, the routing table is reconstructed and communication is continued with the remaining nodes. At this time, the information possessed by the detached node is retained, for example, by synchronization between adjacent nodes on the DHT network. Note that when a node constituting the DHT network is activated for the first time, since there is no node to be subjected to the subscription process, an initial node activation process is performed. In the following, specific methods will be described using a program that implements Chord, a kind of algorithm for constructing a DHT network, as an example.

図3は、DHTネットワークを構成する最初のノードである初期ノード(パケット集約ノード2またはパケット転送ノード3)が加入する場合のシーケンスを示している。初期ノードにおいて、DHT管理部21(32)は、ノードリストの取得要求を示すノードリスト要求を管理ノード4へ送信する(ステップS100)。なお、管理ノード4のIPアドレスは既知であるものとする。管理ノード4においてノード管理部43はノードリスト要求を受信し、ノードリスト記憶部44内のノードリストにノードのIPアドレスが登録されているか否かを判定する(ステップS110)。   FIG. 3 shows a sequence when an initial node (packet aggregation node 2 or packet forwarding node 3) which is the first node constituting the DHT network joins. In the initial node, the DHT management unit 21 (32) transmits a node list request indicating a node list acquisition request to the management node 4 (step S100). It is assumed that the IP address of the management node 4 is known. In the management node 4, the node management unit 43 receives the node list request and determines whether or not the node IP address is registered in the node list in the node list storage unit 44 (step S110).

最初のノードが加入する場合、ノードリストにノードのIPアドレスが登録されていないため、管理ノード4は初期ノード起動処理が必要であると判定し、初期ノード起動処理の要求を示す初期ノード起動要求を、ノードリスト要求の送信元であるノードへ送信する(ステップS120)。初期ノード起動要求には、設定情報記憶部42内の設定情報に基づく仮想IPアドレスの範囲とエニーキャストアドレスの範囲が含まれる。   When the first node joins, since the node IP address is not registered in the node list, the management node 4 determines that the initial node activation process is necessary, and an initial node activation request indicating a request for the initial node activation process Is transmitted to the node that is the transmission source of the node list request (step S120). The initial node activation request includes a virtual IP address range and an anycast address range based on the setting information in the setting information storage unit 42.

初期ノードにおいて、DHT管理部21(32)は、初期ノード起動要求を受信し、初期ノード起動処理を実行する(ステップS130)。具体的には、次に示すようなブートストラップノードの起動コマンドを実行する。
start-dhash --root dhash-a -j sure.lcs.mit.edu:10000 -p 10000 &
In the initial node, the DHT management unit 21 (32) receives the initial node activation request and executes the initial node activation process (step S130). Specifically, a bootstrap node start command as shown below is executed.
start-dhash --root dhash-a -j sure.lcs.mit.edu:10000 -p 10000 &

初期ノード起動処理の実行により、DHT記憶部22(33)には分散ハッシュテーブルが作成される。前述したように、このテーブルの構成要素は、サーバ1とVPN接続を確立しているパケット転送ノード3のIPアドレスと、サーバ1の仮想IPアドレスからSHA1を用いて算出したハッシュ値とのペアである。初期ノード起動処理が完了した時点では、テーブルにはこれらの情報は格納されていない。また、初期ノード起動処理が完了した時点では、DHTネットワークの全てのノード(1個)の情報を初期ノードが単体で管理している状態となる。   By executing the initial node startup process, a distributed hash table is created in the DHT storage unit 22 (33). As described above, the constituent elements of this table are a pair of an IP address of the packet forwarding node 3 that has established a VPN connection with the server 1 and a hash value calculated from the virtual IP address of the server 1 using SHA1. is there. When the initial node activation processing is completed, these pieces of information are not stored in the table. At the time when the initial node activation process is completed, the information of all nodes (one) in the DHT network is managed by the initial node alone.

初期ノード起動処理の実行後、DHT管理部21(32)は、初期ノードがDHTネットワークに加入したことを示すノード加入通知を管理ノード4へ送信することにより自身のIPアドレスを通知する(ステップS140)。管理ノード4においてノード管理部43はノード加入通知を受信し、ノード加入通知により通知されたIPアドレスをノードリスト記憶部44内のノードリストに追加する(ステップS150)。   After execution of the initial node activation process, the DHT management unit 21 (32) notifies the management node 4 of its own IP address by transmitting a node subscription notification indicating that the initial node has joined the DHT network (step S140). ). In the management node 4, the node management unit 43 receives the node subscription notification, and adds the IP address notified by the node subscription notification to the node list in the node list storage unit 44 (step S150).

初期ノードがパケット集約ノード2である場合、初期ノード起動処理の実行後、パケット集約ノード2の広告部23は、初期ノード起動要求によって通知された範囲の仮想IPアドレス宛ての経路に係る経路情報をネットワーク上に広告する。また、初期ノードがパケット転送ノード3である場合、初期ノード起動処理の実行後、パケット転送ノード3の広告部34は、初期ノード起動要求によって通知された範囲のエニーキャストアドレス宛ての経路に係る経路情報をネットワーク上に広告する(ステップS160)。   When the initial node is the packet aggregation node 2, after executing the initial node activation process, the advertising unit 23 of the packet aggregation node 2 obtains the route information related to the route addressed to the virtual IP address in the range notified by the initial node activation request. Advertise on the network. When the initial node is the packet forwarding node 3, after executing the initial node activation process, the advertising unit 34 of the packet forwarding node 3 relates to the route addressed to the anycast address in the range notified by the initial node activation request. Information is advertised on the network (step S160).

なお、管理ノード4が初期ノードからノードリスト要求を受信してからノード加入通知を受信するまでの間に他のノードからノードリスト要求を受信した場合、ノードリスト要求の再送を示すメッセージが他のノードへ送信される。このため、初期ノードによるDHTネットワークが構築されるまで、他のノードからのノードリスト要求に対する処理は実行されない。   If the management node 4 receives a node list request from another node after receiving the node list request from the initial node, a message indicating retransmission of the node list request is sent Sent to the node. For this reason, processing for a node list request from another node is not executed until the DHT network by the initial node is constructed.

図4は、1以上のノードによりDHTネットワークが構成されている場合に新たなノード(パケット集約ノード2またはパケット転送ノード3)が加入する場合のシーケンスを示している。新たに加入するノードにおいて、DHT管理部21(32)は、ノードリストの取得要求を示すノードリスト要求を管理ノード4へ送信する(ステップS200)。なお、管理ノード4のIPアドレスは既知であるものとする。管理ノード4においてノード管理部43はノードリスト要求を受信し、ノードリスト記憶部44内のノードリストにノードのIPアドレスが登録されているか否かを判定する(ステップS210)。   FIG. 4 shows a sequence when a new node (packet aggregation node 2 or packet forwarding node 3) joins when a DHT network is configured by one or more nodes. In the newly joined node, the DHT management unit 21 (32) transmits a node list request indicating a node list acquisition request to the management node 4 (step S200). It is assumed that the IP address of the management node 4 is known. In the management node 4, the node management unit 43 receives the node list request and determines whether or not the node IP address is registered in the node list in the node list storage unit 44 (step S210).

既に他のノードが加入している場合、ノードリストにノードのIPアドレスが登録されているため、管理ノード4は、ノードリスト要求の送信元であるノードへノードリストを送信する(ステップS220)。このとき、設定情報記憶部42内の設定情報に基づく仮想IPアドレスの範囲とエニーキャストアドレスの範囲がノードリストに付加される。新たに加入するノードにおいて、DHT管理部21(32)は、ノードリストを受信し、ノードリストに記載されているノードを対象としてノード加入処理を実行する(ステップS230)。具体的には、次に示すような既存ノードへの加入のコマンドを実行する。
start-dhash --root dhash-b -j sure.lcs.mit.edu:10000 &
When another node has already joined, since the node IP address is registered in the node list, the management node 4 transmits the node list to the node that is the transmission source of the node list request (step S220). At this time, the range of the virtual IP address and the range of the anycast address based on the setting information in the setting information storage unit 42 are added to the node list. In the newly joined node, the DHT management unit 21 (32) receives the node list and executes node joining processing for the nodes described in the node list (step S230). Specifically, a command for joining an existing node as shown below is executed.
start-dhash --root dhash-b -j sure.lcs.mit.edu:10000 &

ノード加入処理の実行により、DHT記憶部22(33)には分散ハッシュテーブルが作成される。ノード加入処理では、ノードリストに記載されたIPアドレスを有するノードと通信が行われ、DHTネットワークに加入するための設定が行われる。   By executing the node joining process, a distributed hash table is created in the DHT storage unit 22 (33). In the node joining process, communication is performed with a node having an IP address described in the node list, and settings for joining the DHT network are performed.

ノード加入処理の実行後、DHT管理部21(32)は、新たにノードがDHTネットワークに加入したことを示すノード加入通知を管理ノード4へ送信することにより自身のIPアドレスを通知する(ステップS240)。管理ノード4においてノード管理部43はノード加入通知を受信し、ノード加入通知により通知されたIPアドレスをノードリスト記憶部44内のノードリストに追加する(ステップS250)。   After the node joining process is executed, the DHT management unit 21 (32) notifies the management node 4 of its own IP address by transmitting a node joining notification indicating that the node has newly joined the DHT network (step S240). ). In the management node 4, the node management unit 43 receives the node subscription notification, and adds the IP address notified by the node subscription notification to the node list in the node list storage unit 44 (step S250).

新たに加入するノードがパケット集約ノード2である場合、ノード加入処理の実行後、パケット集約ノード2の広告部23は、管理ノード4から通知された範囲の仮想IPアドレス宛ての経路に係る経路情報をネットワーク上に広告する。また、新たに加入するノードがパケット転送ノード3である場合、ノード加入処理の実行後、パケット転送ノード3の広告部34は、管理ノード4から通知された範囲のエニーキャストアドレス宛ての経路に係る経路情報をネットワーク上に広告する(ステップS260)。   When the newly joining node is the packet aggregation node 2, after the node addition processing is executed, the advertisement unit 23 of the packet aggregation node 2 performs route information related to the route addressed to the virtual IP address in the range notified from the management node 4. Advertise on the network. When the newly joining node is the packet forwarding node 3, after the node joining process is executed, the advertisement unit 34 of the packet forwarding node 3 relates to the route addressed to the anycast address in the range notified from the management node 4. The route information is advertised on the network (step S260).

以下、ステップS230において、DHTネットワークに加入する処理の詳細を説明する。DHTは、管理対象の情報のハッシュ値(以下、Keyとする)と、管理対象の情報(以下、Valueとする)とのペアを格納する分散ハッシュテーブルを複数のノードに分散させることによって、情報を効率的に管理する手法である。本実施形態では、サーバ1の仮想IPアドレスがKeyに該当し、パケット転送ノード3のIPアドレスがValueに該当する。本実施形態では、DHTネットワークを構成するパケット集約ノード2およびパケット転送ノード3が、自身のIPアドレスに基づいて、管理対象となるパケット転送ノード3のIPアドレス(Value)を管理する。   Hereinafter, details of the process of joining the DHT network in step S230 will be described. DHT distributes a distributed hash table that stores pairs of managed information hash values (hereinafter referred to as Key) and managed information (hereinafter referred to as Value) to a plurality of nodes. It is a technique to manage efficiently. In the present embodiment, the virtual IP address of the server 1 corresponds to Key, and the IP address of the packet forwarding node 3 corresponds to Value. In this embodiment, the packet aggregation node 2 and the packet forwarding node 3 constituting the DHT network manage the IP address (Value) of the packet forwarding node 3 to be managed based on its own IP address.

本実施形態でDHTネットワークの実装アルゴリズムの一例として用いるChordでは、DHTネットワークを構成するノードが各ノードのIDに従って配置される。各ノードに割り当てられるIDは、具体的にはノード毎のIPアドレスからSHA-1を用いて算出したハッシュ値である。Chordでは2160のハッシュ空間が用いられ、各ノードは円周上の点として定義される。図13は、簡単のためハッシュ空間を2とした場合のIDの割り当てを示している。0から15までの各IDを有するノードが配置されている。 In Chord used as an example of a DHT network implementation algorithm in this embodiment, the nodes constituting the DHT network are arranged according to the ID of each node. Specifically, the ID assigned to each node is a hash value calculated using SHA-1 from the IP address of each node. 2 160 hash space is used in Chord, each node is defined as a point on the circumference. Figure 13 shows the assignment of ID in the case where the hash space and 2 4 for simplicity. Nodes having IDs from 0 to 15 are arranged.

Chordでは、DHTネットワークを構成する各ノードが、自身のノードIDから隣接するノードIDまでの間に位置するIDに対応するValueを管理する。図13において、ノードIDが0、2、6、9、11、13、14のノードがDHTネットワークに加入している場合、ノードIDが0のノード0は、ノードIDが15と0に対応するKeyとValueのペアを管理する。   In Chord, each node constituting the DHT network manages a value corresponding to an ID located between its own node ID and an adjacent node ID. In FIG. 13, when nodes with node IDs 0, 2, 6, 9, 11, 13, and 14 are joined to the DHT network, node 0 with node ID 0 corresponds to node IDs 15 and 0. Manage key / value pairs.

Chordでは、各ノードはSuccessor、Predecessor、Fingertableと呼ばれる3種類のルーティングテーブルを保持する。これらのルーティングテーブルは、各ノードがDHT記憶部22(33)の分散ハッシュテーブルに保持するKeyとValueのペア(サーバ1の仮想IPアドレスと転送ノードのIPアドレスのペア)とは異なる。各ルーティングテーブルはDHT記憶部22(33)に保持されるものとする。   In Chord, each node holds three types of routing tables called Successor, Predecessor, and Fingertable. These routing tables are different from the key / value pairs (virtual IP address of the server 1 and IP address of the forwarding node) that each node holds in the distributed hash table of the DHT storage unit 22 (33). Each routing table is held in the DHT storage unit 22 (33).

Successorは、ノードIDが大きくなる方向に見て最近傍に位置するノードのIPアドレスを保持するルーティングテーブルであり、Predecessorは、ノードIDが小さくなる方向に見て最近傍に位置するノードのIPアドレスを保持するルーティングテーブルである。Fingertableは、2mのハッシュ空間において、以下の式に一致するIPアドレスを保持するルーティングテーブルである。
ノードのIPアドレス=IPadress[next(Z)]、ただし、Z=(Node_ID+2i) mod2m、i=0〜m
上記の式のnext(Z)は、ハッシュ空間上でZから右回り(つまりノードIDが大きくなる方向)に見て次に存在するノードのIDを返す関数である。IPadress[X]はIDがXのノードのIPアドレスを返す関数である。
Successor is a routing table that holds the IP address of the node located closest to the node ID in the increasing direction. Predecessor is the IP address of the node positioned closest to the node ID in the decreasing direction. Is a routing table that holds Fingertable is a routing table that holds IP addresses that match the following formulas in a 2 m hash space.
Node IP address = IPadress [next (Z)], where Z = (Node_ID + 2 i ) mod2 m , i = 0 to m
Next (Z) in the above expression is a function that returns the ID of the next existing node as viewed clockwise from Z (that is, the direction in which the node ID increases) in the hash space. IPadress [X] is a function that returns the IP address of the node whose ID is X.

DHTネットワークに新たなノードが加入することは、円周上のノードが存在していない点の位置にノードが加わることを意味する。以下では、ID12のノード(ノード12)とID18のノード(ノード18)が存在しているDHTネットワークにID15のノード(ノード15)が加入する場合を例として加入の手順を説明する。   The addition of a new node to the DHT network means that a node is added at a point where no node exists on the circumference. In the following, the procedure for joining will be described by taking as an example the case where the node ID15 (node 15) joins the DHT network in which the node ID12 (node 12) and the node ID18 (node 18) exist.

ノード15は、自身のIPアドレスからハッシュ値であるIDを算出する。続いて、ノード15は、ノードリストに記載されているノードに対して、自身のIDを保持の対象としているノードのIPアドレスを要求する。要求を受けたノードは、ノード15のIDを保持していれば応答し、保持していなければ他のノードに要求を行う。この結果、ノード15はノード18のIPアドレスを取得する。   The node 15 calculates an ID that is a hash value from its own IP address. Subsequently, the node 15 requests the IP address of the node whose own ID is to be held from the node described in the node list. The node that has received the request responds if it holds the ID of the node 15 and makes a request to another node if it does not. As a result, the node 15 acquires the IP address of the node 18.

続いて、ノード15はノード18にjoinメッセージを送信し、Successorにノード18のIPアドレスを記録する。さらに、ノード15はノード18から、Predecessorに保持すべきノード12のIPアドレスを通知され、Predecessorにノード12のIPアドレスを記録する。   Subsequently, the node 15 transmits a join message to the node 18 and records the IP address of the node 18 in the Successor. Further, the node 15 is notified of the IP address of the node 12 to be held in the Predecessor from the node 18, and records the IP address of the node 12 in the Predecessor.

続いて、ノード15は、それまでノード18がFingertableに保持していたIPアドレスのうち、ノード15が管理すべき部分に該当するIPアドレスをノード18から受信し、Fingertableに記録する。また、ノード15は、それまでノード18がDHT記憶部22(33)の分散ハッシュテーブルに保持していたKeyとValueのペアのうち、ノード15が管理すべき部分に該当するKeyとValueのペアをノード18から受信し、DHT記憶部22(33)に記録する。ノード15は、ノード12に自身の加入を通知し、ノード12は、ノード15からの通知に基づいて、自身が保持しているSuccessorに記録されていたノード18のIPアドレスをノード15のIPアドレスに変更する。   Subsequently, the node 15 receives the IP address corresponding to the part to be managed by the node 15 from the IP address that the node 18 has held in the Fingertable, and records it in the Fingertable. In addition, the node 15 is a key / value pair corresponding to a part to be managed by the node 15 among the key / value pairs that the node 18 has held in the distributed hash table of the DHT storage unit 22 (33). Is received from the node 18 and recorded in the DHT storage unit 22 (33). The node 15 notifies the node 12 of its own subscription, and the node 12 uses the IP address of the node 18 recorded in the successor held by the node 12 based on the notification from the node 15 as the IP address of the node 15. Change to

図5は、DHTネットワークに加入しているノード(パケット集約ノード2またはパケット転送ノード3)がDHTネットワークから脱退する場合のシーケンスを示している。DHTネットワークから脱退するノードにおいて、DHT管理部21(32)はノード脱退処理を実行する(ステップS300)。続いて、DHT管理部21(32)は、DHTネットワークからの脱退を示すノード脱退通知を管理ノード4へ送信することにより自身のIPアドレスを通知する(ステップS310)。管理ノード4においてノード管理部43はノード脱退通知を受信し、ノード脱退通知により通知されたIPアドレスをノードリスト記憶部44内のノードリストから削除する(ステップS320)。   FIG. 5 shows a sequence when a node (packet aggregation node 2 or packet forwarding node 3) that has joined the DHT network leaves the DHT network. In the node that withdraws from the DHT network, the DHT management unit 21 (32) executes node withdrawal processing (step S300). Subsequently, the DHT management unit 21 (32) notifies its own IP address by transmitting a node withdrawal notification indicating withdrawal from the DHT network to the management node 4 (step S310). In the management node 4, the node management unit 43 receives the node withdrawal notification and deletes the IP address notified by the node withdrawal notification from the node list in the node list storage unit 44 (step S320).

上記のようにしてノードが脱退した場合、ハッシュ空間上でこのノードに隣接するノードにおいて、Successor、Predecessor、Fingertableがそれぞれ更新される。このとき、脱退したノードが保持していた情報を引き継ぐための処理として、DHTでは近傍のノードに自身が保持するデータのコピーを配置するなどして情報の欠損を防いでいる。   When a node withdraws as described above, Successor, Predecessor, and Fingertable are updated in a node adjacent to this node on the hash space. At this time, as a process for taking over the information held by the withdrawn node, the DHT prevents a loss of information by arranging a copy of the data held by the neighboring node.

次に、サーバ1を収容する仮想セグメントを構築するためのサーバ公開について説明する。サーバ1は予め管理ノード4から仮想IPアドレスを取得する。管理ノード4においてアドレス管理部41は予め仮想IPアドレスを生成し、仮想IPアドレス記憶部40に保存する。サーバ1のサーバ公開部11は管理ノード4にアクセスし、仮想IPアドレスの割り当てに必要な情報の登録を行う。管理ノード4のアドレス管理部41は、仮想IPアドレス記憶部40から仮想IPアドレスを選択し、仮想IPアドレスをサーバ1に通知する。複数のサーバ1に対して同一の仮想IPアドレスが割り当てられないよう、アドレス管理部41は仮想IPアドレスの割り当てを管理する。サーバ1に対する仮想IPアドレスの通知は公開鍵証明書の発行により行われるが、詳細な説明を省略する。この公開鍵証明書はサーバ1がパケット転送ノード3にアクセスする際に使用されるが、本実施形態では、公開鍵証明書による公知の通信方法に係る説明を省略する。   Next, server disclosure for constructing a virtual segment that accommodates the server 1 will be described. The server 1 acquires a virtual IP address from the management node 4 in advance. In the management node 4, the address management unit 41 generates a virtual IP address in advance and stores it in the virtual IP address storage unit 40. The server disclosure unit 11 of the server 1 accesses the management node 4 and registers information necessary for assigning a virtual IP address. The address management unit 41 of the management node 4 selects a virtual IP address from the virtual IP address storage unit 40 and notifies the server 1 of the virtual IP address. The address management unit 41 manages the assignment of virtual IP addresses so that the same virtual IP address is not assigned to a plurality of servers 1. The notification of the virtual IP address to the server 1 is performed by issuing a public key certificate, but detailed description thereof is omitted. This public key certificate is used when the server 1 accesses the packet forwarding node 3. However, in this embodiment, a description of a known communication method using the public key certificate is omitted.

図6は、仮想IPアドレスを取得したサーバ1の公開開始時のシーケンスを示している。サーバ1は、パケット転送ノード3が使用するエニーキャストアドレスを予め知っているものとする。サーバ1のサーバ公開部11は、エニーキャストアドレス宛てにパケット転送ノード3の接続要求を送信する(ステップS400)。この接続要求はサーバ1に最も近いパケット転送ノード3に到着する。パケット転送ノード3のサーバ公開部31はサーバ1からの接続要求を受信し、自身のIPアドレスを通知する応答をサーバ1へ送信する(ステップS410)。   FIG. 6 shows a sequence at the start of disclosure of the server 1 that acquired the virtual IP address. It is assumed that the server 1 knows in advance the anycast address used by the packet forwarding node 3. The server disclosure unit 11 of the server 1 transmits a connection request for the packet forwarding node 3 to the anycast address (step S400). This connection request arrives at the packet forwarding node 3 closest to the server 1. The server disclosure unit 31 of the packet forwarding node 3 receives the connection request from the server 1 and transmits a response notifying its own IP address to the server 1 (step S410).

サーバ1のサーバ公開部11はパケット転送ノード3からの応答を受信し、その応答によって通知されたIPアドレス宛てに、VPN接続の要求を示すVPN接続要求を送信する(ステップS420)。このVPN接続要求によって、サーバ1の仮想IPアドレスおよび実IPアドレスがパケット転送ノード3に通知される。この後、サーバ1とパケット転送ノード3の双方においてVPN接続のための各種設定が行われるが、詳細な説明を省略する。   The server public part 11 of the server 1 receives the response from the packet forwarding node 3, and transmits a VPN connection request indicating a VPN connection request to the IP address notified by the response (step S420). By this VPN connection request, the virtual IP address and real IP address of the server 1 are notified to the packet forwarding node 3. Thereafter, various settings for VPN connection are performed in both the server 1 and the packet forwarding node 3, but detailed description thereof is omitted.

パケット転送ノード3のサーバ公開部31は、サーバ1から通知された仮想IPアドレスをDHT管理部32に通知する。DHT管理部32は仮想IPアドレスのハッシュ値を算出し、パケット転送ノード3のIPアドレスとハッシュ値とを、DHTネットワークを構成するパケット集約ノード2またはパケット転送ノード3のDHT記憶部22(33)内の分散ハッシュテーブルに登録する処理を行う(ステップS430)。具体的には、以下のような“put”コマンドを実行する。なお、(a)はハッシュ値を示し、(b)はパケット転送ノードのIPアドレスを示す。
put <(a)> <(b)>
The server disclosure unit 31 of the packet forwarding node 3 notifies the DHT management unit 32 of the virtual IP address notified from the server 1. The DHT management unit 32 calculates a hash value of the virtual IP address, and uses the IP address and hash value of the packet forwarding node 3 as the DHT storage unit 22 (33) of the packet aggregation node 2 or the packet forwarding node 3 constituting the DHT network. The process of registering in the distributed hash table is performed (step S430). Specifically, the following “put” command is executed. Note that (a) indicates a hash value, and (b) indicates an IP address of the packet forwarding node.
put <(a)><(b)>

また、DHT管理部32は、サーバ1の仮想IPアドレスと実IPアドレスとを組にしてサーバ記憶部35に登録する(ステップS440)。   Further, the DHT management unit 32 registers the virtual IP address and the real IP address of the server 1 as a set in the server storage unit 35 (step S440).

以下、ステップS430においてパケット転送ノード3のIPアドレスとサーバ1の仮想IPアドレスのハッシュ値のペアを分散ハッシュテーブルに登録する処理の詳細を説明する。DHT管理部32は、サーバ1の仮想IPアドレスのハッシュ値をKeyとして管理すべきノードを検索する処理を行う。図13に示すDHTネットワークにおいて、ノード0が検索を行う例を示す。サーバ1の仮想IPアドレスのハッシュ値が12であるとすると、DHT管理部32は、前述したnext関数によりnext(12)=13であるため、目的の情報を管理すべきノードがノード13であることを求める。これに基づき、DHT管理部32は、パケット転送ノード3のIPアドレスとサーバ1の仮想IPアドレスのハッシュ値のペアを含み、ノード13の検索を依頼するメッセージを生成し、中継部30に渡す。   Hereinafter, the details of the process of registering the pair of the hash value of the IP address of the packet forwarding node 3 and the virtual IP address of the server 1 in the distributed hash table in step S430 will be described. The DHT management unit 32 performs a process of searching for a node to be managed using the hash value of the virtual IP address of the server 1 as a key. An example in which node 0 performs a search in the DHT network shown in FIG. Assuming that the hash value of the virtual IP address of the server 1 is 12, the DHT management unit 32 has next (12) = 13 according to the next function described above, so the node that should manage the target information is the node 13. Ask for that. Based on this, the DHT management unit 32 generates a message that includes a pair of the hash value of the IP address of the packet forwarding node 3 and the virtual IP address of the server 1 and requests the search for the node 13, and passes it to the relay unit 30.

前述したFingertableの定義より、ノード0のFingertableに保持されるノードIDは、2(i=0,1[z=1,2])、6(i=2[z=4])、9(i=3[z=8])となる。ノード13のノードIDである13に関して、23<13<24であることから、ノード0は、i=3[z=8]のときのノードIDに対応するノード9にノード13の検索を依頼する。すなわち、中継部30はノード9宛てに上記のメッセージを送信する。 From the definition of Fingertable described above, the node IDs held in the Fingertable of node 0 are 2 (i = 0, 1 [z = 1, 2]), 6 (i = 2 [z = 4]), 9 (i = 3 [z = 8]). Since 2 3 <13 <2 4 with respect to the node ID 13 of the node 13, the node 0 searches the node 9 corresponding to the node ID when i = 3 [z = 8]. Ask. That is, the relay unit 30 transmits the above message to the node 9.

ノード9のFingertableに保持されるノードIDは、11(i=0,1[z=10,11])、13(i=2[z=13])、2(i=3[z=1])であることから、ノード9はノード13の情報を保持している。したがって、ノード9からノード13に、ノード0からのメッセージが転送される。ノード13において中継部20(30)はメッセージを受信し、DHT管理部21(32)に渡す。DHT管理部21は、メッセージに含まれるパケット転送ノード3のIPアドレスとサーバ1の仮想IPアドレスのハッシュ値をDHT記憶部22(33)に設定する。   Node IDs held in the Fingertable of node 9 are 11 (i = 0, 1 [z = 10, 11]), 13 (i = 2 [z = 13]), 2 (i = 3 [z = 1] ), The node 9 holds the information of the node 13. Therefore, the message from node 0 is transferred from node 9 to node 13. In the node 13, the relay unit 20 (30) receives the message and passes it to the DHT management unit 21 (32). The DHT management unit 21 sets the hash value of the IP address of the packet forwarding node 3 and the virtual IP address of the server 1 included in the message in the DHT storage unit 22 (33).

このように、DHTネットワークでは、はじめに大まかな検索を行い、検索対象に近づくに従って、徐々に細かい検索を行うことで、DHTネットワークを構成しているノードから隣接するノードを順番に辿る場合よりも効率的な検索を実現している。上記のようにして、パケット転送ノード3のIPアドレスとサーバ1の仮想IPアドレスのハッシュ値のペアが、DHTネットワークを構成するパケット集約ノード2またはパケット転送ノード3によって管理されるようになる。   In this way, in the DHT network, a rough search is performed first, and as the search target is approached, the finer search is performed gradually, making it more efficient than tracing the adjacent nodes in order from the nodes that make up the DHT network. Search is realized. As described above, the pair of the hash value of the IP address of the packet forwarding node 3 and the virtual IP address of the server 1 is managed by the packet aggregation node 2 or the packet forwarding node 3 constituting the DHT network.

図7は、サーバ1の公開停止時のシーケンスを示している。パケット転送ノード3のサーバ公開部31は、サーバ1からの明示的なVPN接続の解除通知あるいは障害等によるVPN接続の解除を検知することにより、VPN接続が切断されたことを検知し、DHT管理部32に通知する(ステップS500)。   FIG. 7 shows a sequence when the server 1 is stopped. The server disclosure unit 31 of the packet forwarding node 3 detects that the VPN connection is disconnected by detecting an explicit VPN connection cancellation notification from the server 1 or a VPN connection cancellation due to a failure or the like, and performs DHT management. The unit 32 is notified (step S500).

DHT管理部32は、サーバ公開部31から通知を受けると、切断されたVPN接続の接続相手であるサーバ1の仮想IPアドレスと自身のIPアドレスのペアを分散ハッシュテーブルから削除するため、VPN接続を解除したサーバ1の仮想IPアドレスのハッシュ値をKeyとして管理しているノードを検索する処理を行う(ステップS510)。このとき、ステップS430の処理と同様にして検索が行われ、所望のノードにメッセージが転送される。メッセージを受信したノードにおいてDHT管理部21(33)は、メッセージに含まれるハッシュ値と一致するハッシュ値およびそれと関連付けられているパケット転送ノード3のIPアドレスを分散ハッシュテーブルから削除する。   When the DHT management unit 32 receives the notification from the server disclosure unit 31, the DHT management unit 32 deletes the pair of the virtual IP address of the server 1 that is the connection partner of the disconnected VPN connection and its own IP address from the distributed hash table. A process of searching for a node that manages the hash value of the virtual IP address of the server 1 whose key is released as a key is performed (step S510). At this time, a search is performed in the same manner as the processing in step S430, and the message is transferred to a desired node. In the node that has received the message, the DHT management unit 21 (33) deletes the hash value that matches the hash value included in the message and the IP address of the packet forwarding node 3 associated therewith from the distributed hash table.

次に、サーバ1とクライアント5との通信について説明する。図8は、クライアント5がサーバ1と通信を行う際のシーケンスを示している。クライアント5は、例えばDNSサーバにサーバ1の名前解決を依頼し、その結果としてDNSサーバからサーバ1のIPアドレスを通知されることにより、サーバ1の仮想IPアドレス(IP_virtual)を取得することが可能である。クライアント5のクライアントアプリケーション50は、クライアント5(IP_client)を送信元とし、サーバ1(IP_virtual)を宛先とするパケットを送信する(ステップS600)。パケット集約ノード2がIP_virtual宛ての経路を広告していることにより、クライアント5から送信されたパケットはクライアント5に最も近いパケット集約ノード2に到着する。   Next, communication between the server 1 and the client 5 will be described. FIG. 8 shows a sequence when the client 5 communicates with the server 1. The client 5 can obtain the virtual IP address (IP_virtual) of the server 1, for example, by requesting the DNS server to resolve the name of the server 1, and as a result of being notified of the IP address of the server 1 from the DNS server. It is. The client application 50 of the client 5 transmits a packet whose destination is the client 5 (IP_client) and whose destination is the server 1 (IP_virtual) (step S600). Since the packet aggregation node 2 advertises the route addressed to IP_virtual, the packet transmitted from the client 5 arrives at the packet aggregation node 2 closest to the client 5.

パケット集約ノード2の中継部20は、クライアント5からのパケットを受信し、受信したパケットに含まれるサーバ1の仮想IPアドレス(IP_virtual)をDHT管理部21に通知する。DHT管理部21は、この仮想IPアドレス(IP_virtual)のハッシュ値を算出し、このハッシュ値をKeyとして管理しているノードを検索する処理を行う(ステップS610)。   The relay unit 20 of the packet aggregation node 2 receives the packet from the client 5 and notifies the DHT management unit 21 of the virtual IP address (IP_virtual) of the server 1 included in the received packet. The DHT management unit 21 calculates a hash value of the virtual IP address (IP_virtual), and performs a process of searching for a node that manages this hash value as a key (step S610).

このとき、ステップS430の処理と同様にして検索が行われ、所望のノードにメッセージが転送される。メッセージを受信したノードにおいてDHT管理部21(33)は、メッセージに含まれるハッシュ値と一致するハッシュ値を分散ハッシュテーブルから検索し、一致したハッシュ値と関連付けられているパケット転送ノード3のIPアドレスを取得する。DHT管理部21(33)は、取得したIPアドレスを通知するための応答メッセージを生成し、中継部20(30)に渡す。中継部20(30)は、検索を要求したパケット集約ノード2へ応答メッセージを送信する。検索を要求したパケット集約ノード2において中継部20はこの応答メッセージを受信し、所望のパケット転送ノード3のIPアドレスを取得する。   At this time, a search is performed in the same manner as the processing in step S430, and the message is transferred to a desired node. In the node that received the message, the DHT management unit 21 (33) searches the distributed hash table for a hash value that matches the hash value included in the message, and the IP address of the packet forwarding node 3 that is associated with the matching hash value To get. The DHT management unit 21 (33) generates a response message for notifying the acquired IP address and passes it to the relay unit 20 (30). The relay unit 20 (30) transmits a response message to the packet aggregation node 2 that has requested the search. In the packet aggregation node 2 that requested the search, the relay unit 20 receives this response message, and acquires the desired IP address of the packet forwarding node 3.

中継部20は、クライアント5から受信したパケットをカプセル化する(ステップS620)。このカプセル化では、クライアント5からのパケットに対してIPヘッダが付加される。このIPヘッダには、送信元のIPアドレスとしてパケット集約ノード2のIPアドレス(Rc)が記録され、宛先のIPアドレスとしてパケット転送ノード3のIPアドレス(Rs)が記録されている。したがって、クライアント5(IP_client)を送信元としサーバ1(IP_virtual)を宛先とするパケットが、カプセル化によって、パケット集約ノード2(Rc)を送信元としパケット転送ノード3(Rs)を宛先とするパケットに変換される。中継部20は、カプセル化したパケットをパケット転送ノード3へ送信する(ステップS630)。   The relay unit 20 encapsulates the packet received from the client 5 (step S620). In this encapsulation, an IP header is added to the packet from the client 5. In this IP header, the IP address (Rc) of the packet aggregation node 2 is recorded as the source IP address, and the IP address (Rs) of the packet forwarding node 3 is recorded as the destination IP address. Therefore, a packet whose destination is the client 5 (IP_client) and the destination of the server 1 (IP_virtual) is a packet whose destination is the packet aggregation node 2 (Rc) and the destination of the packet forwarding node 3 (Rs). Is converted to The relay unit 20 transmits the encapsulated packet to the packet forwarding node 3 (step S630).

パケット転送ノード3の中継部30は、パケット集約ノード2からのパケットを受信し、カプセル解除する(ステップS640)。このカプセル解除では、パケット集約ノード2でパケットに付加されたIPヘッダが除去される。したがって、パケット集約ノード2(Rc)を送信元としパケット転送ノード3(Rs)を宛先とするパケットが、カプセル解除によって、クライアント5(IP_client)を送信元としサーバ1(IP_virtual)を宛先とするパケットに変換される。   The relay unit 30 of the packet forwarding node 3 receives the packet from the packet aggregation node 2 and decapsulates it (step S640). In this decapsulation, the IP header added to the packet at the packet aggregation node 2 is removed. Therefore, a packet destined for the packet aggregation node 2 (Rc) and destined for the packet forwarding node 3 (Rs) becomes a packet destined for the client 1 (IP_client) and destined for the server 1 (IP_virtual) as a result of decapsulation. Is converted to

続いて、中継部30は、パケットに含まれるサーバ1の仮想IPアドレス(IP_virtual)をキーにしてサーバ記憶部35内の情報を検索し、サーバ1の仮想IPアドレス(IP_virtual)に対応する実IPアドレス(IP_real)を取得する(ステップS650)。さらに、中継部30は、ステップS640でカプセル解除したパケットをカプセル化する(ステップS660)。このカプセル化では、送信元のIPアドレスとしてパケット転送ノード3のIPアドレス(Rs)が記録され、宛先のIPアドレスとしてサーバ1の実IPアドレス(IP_real)が記録されたIPヘッダが付加される。したがって、カプセル解除されたパケットが、カプセル化によって、パケット転送ノード3(Rs)を送信元としサーバ1(IP_real)を宛先とするパケットに変換される。中継部30は、カプセル化したパケットをサーバ1へ送信する(ステップS670)。   Subsequently, the relay unit 30 searches the information in the server storage unit 35 using the virtual IP address (IP_virtual) of the server 1 included in the packet as a key, and the real IP corresponding to the virtual IP address (IP_virtual) of the server 1 An address (IP_real) is acquired (step S650). Furthermore, the relay unit 30 encapsulates the packet decapsulated in step S640 (step S660). In this encapsulation, an IP header in which the IP address (Rs) of the packet forwarding node 3 is recorded as the source IP address and the real IP address (IP_real) of the server 1 is recorded as the destination IP address is added. Therefore, the decapsulated packet is converted into a packet having the packet forwarding node 3 (Rs) as the transmission source and the server 1 (IP_real) as the destination by encapsulation. The relay unit 30 transmits the encapsulated packet to the server 1 (step S670).

サーバ1のサーバアプリケーション10はパケット転送ノード3からのパケットを受信し、適宜処理する(ステップS680)。なお、受信されたパケットは、ミドルウェアによってカプセル解除される(図示せず)。サーバアプリケーション10は、クライアント5への応答パケットをパケット転送ノード3へ送信する(ステップS690)。この応答パケットは、サーバ1(IP_virtual)を送信元としクライアント5(IP_client)を宛先とするパケットに対して、カプセル化により、サーバ1(IP_virtual)を送信元としパケット転送ノード3(Rs)を宛先とするIPヘッダが付加されたものである。   The server application 10 of the server 1 receives the packet from the packet forwarding node 3 and processes it appropriately (step S680). The received packet is decapsulated by middleware (not shown). The server application 10 transmits a response packet for the client 5 to the packet forwarding node 3 (step S690). This response packet is encapsulated with respect to a packet destined to the server 1 (IP_virtual) and the client 5 (IP_client) as the destination, and the packet forwarding node 3 (Rs) is destined to the server 1 (IP_virtual) as the source. With an IP header added.

パケット転送ノード3の中継部30はサーバ1からのパケットを受信し、カプセル解除する(ステップS700)。このカプセル解除によって、サーバ1からのパケットは、サーバ1(IP_virtual)を送信元としクライアント5(IP_client)を宛先とするパケットに変換される。中継部30は、カプセル解除したパケットをクライアント5へ送信する(ステップS710)。   The relay unit 30 of the packet forwarding node 3 receives the packet from the server 1 and decapsulates it (step S700). By this decapsulation, the packet from the server 1 is converted into a packet whose destination is the server 1 (IP_virtual) and whose destination is the client 5 (IP_client). The relay unit 30 transmits the decapsulated packet to the client 5 (step S710).

次に、本実施形態におけるサーバ1に対する攻撃の検知と防御について説明する。サーバ1宛てのパケットは、そのサーバ1を収容する仮想セグメントを構成するパケット転送ノード3によってサーバ1へ転送されるので、パケット転送ノード3においてサーバ1へのトラヒックを把握することが可能となる。図9は、攻撃の検知と防御に関するパケット集約ノード2とパケット転送ノード3の機能構成を示している。   Next, attack detection and defense against the server 1 in the present embodiment will be described. Since the packet addressed to the server 1 is transferred to the server 1 by the packet transfer node 3 that configures the virtual segment that accommodates the server 1, the packet transfer node 3 can grasp the traffic to the server 1. FIG. 9 shows functional configurations of the packet aggregation node 2 and the packet forwarding node 3 relating to attack detection and defense.

パケット集約ノード2は、前述した中継部20を有する。中継部20は、パケットの送信および受信を行う送受信部20aと、パケット転送ノード3から通知されるフィルタリングルールを中継部20に設定するフィルタリング設定部20bと、パケット転送ノード3から通知されるフィルタリングルールに従ってパケットを削除するフィルタリング部20cとを有する。   The packet aggregation node 2 has the relay unit 20 described above. The relay unit 20 includes a transmission / reception unit 20 a that transmits and receives packets, a filtering setting unit 20 b that sets a filtering rule notified from the packet forwarding node 3 in the relay unit 20, and a filtering rule that is notified from the packet forwarding node 3 And a filtering unit 20c that deletes packets according to the above.

パケット転送ノード3は、前述した中継部30と、ログ記憶部36と、攻撃検知部37とを有する。中継部30は、パケットの送信および受信を行う送受信部30aと、サーバ1に中継したパケットの情報をログに記録するログ記録部30bとを有する。ログ記憶部36は、中継部30がサーバ1に中継したパケットの情報を含むログを記憶する。攻撃検知部37は、ログ記憶部36に記憶されているログに基づいて攻撃を検知する。   The packet forwarding node 3 includes the relay unit 30, log storage unit 36, and attack detection unit 37 described above. The relay unit 30 includes a transmission / reception unit 30a that transmits and receives packets, and a log recording unit 30b that records information of packets relayed to the server 1 in a log. The log storage unit 36 stores a log including information on packets relayed by the relay unit 30 to the server 1. The attack detection unit 37 detects an attack based on the log stored in the log storage unit 36.

図10は、サーバ1に対する攻撃の検知と防御時のシーケンスを示している。パケット転送ノード3においてログ記録部30bは、送受信部30aがパケット集約ノード2からのパケットをサーバ1に中継した際に、そのパケットからIPアドレス等の情報を取得し、ログ記憶部36内のログに追加する。図11は、1パケット分のログの構造を示している。パケット集約ノード2でカプセル化されたパケットに付加されているIPヘッダの情報と、カプセル解除したパケットのIPヘッダから、パケットを送信したクライアント5のIPアドレス、パケットの宛先であるサーバ1の仮想IPアドレス、パケットを中継したパケット集約ノード2のIPアドレスを取得することができる。これらとパケット転送ノード3のIPアドレスがログに記録される。   FIG. 10 shows an attack detection and defense sequence for the server 1. When the transmission / reception unit 30a relays a packet from the packet aggregation node 2 to the server 1, the log recording unit 30b in the packet transfer node 3 acquires information such as an IP address from the packet, and logs in the log storage unit 36 Add to. FIG. 11 shows a log structure for one packet. From the IP header information added to the packet encapsulated by the packet aggregation node 2 and the IP header of the decapsulated packet, the IP address of the client 5 that sent the packet, and the virtual IP of the server 1 that is the packet destination The IP address of the packet aggregation node 2 that relayed the address and packet can be acquired. These and the IP address of the packet forwarding node 3 are recorded in the log.

攻撃検知部37はログ記憶部36内のログに基づいて、パケット集約ノード2からサーバ1へのトラヒックに関して、攻撃が発生したか否かの判定を定期的に行う(ステップS800)。より具体的には、攻撃検知部37は、時刻とサーバ1の仮想IPアドレスとパケット集約ノード2のIPアドレスとを組としてログから取得し、ログから取得した情報を時系列に整列する。図12は、時系列に整列した情報の一例である。時刻中の「h1」等の文字は、時・分・秒に係る任意の数値を示している。また、複数の同じ文字が同じ数値を示すとは限らない。サーバ1の仮想IPアドレスおよびパケット集約ノード2のIPアドレス中の「サーバA」や「パケット集約ノードX」は実際にはサーバ1の仮想IPアドレスやパケット集約ノード2のIPアドレスである。図11では、内容を理解しやすくするため、IPアドレスをサーバ等の名称に置き換えている。   The attack detection unit 37 periodically determines whether or not an attack has occurred regarding the traffic from the packet aggregation node 2 to the server 1 based on the log in the log storage unit 36 (step S800). More specifically, the attack detection unit 37 acquires the time, the virtual IP address of the server 1 and the IP address of the packet aggregation node 2 as a set from the log, and arranges the information acquired from the log in time series. FIG. 12 is an example of information arranged in time series. Characters such as “h1” in the time indicate arbitrary numerical values related to the hour, minute, and second. In addition, a plurality of the same characters do not always indicate the same numerical value. “Server A” and “packet aggregation node X” in the virtual IP address of server 1 and the IP address of packet aggregation node 2 are actually the virtual IP address of server 1 and the IP address of packet aggregation node 2. In FIG. 11, the IP address is replaced with the name of a server or the like for easy understanding of the contents.

攻撃検知部37は、サーバ1の仮想IPアドレスとパケット集約ノード2のIPアドレスとの双方が同一のものを攻撃検知の単位としてパケット数(トラヒック量)を集計し、1秒当たりのパケット数を算出する。一例として、1秒当たりのパケット数が10未満であった場合、攻撃検知部37は攻撃が発生していないと判定し、1秒当たりのパケット数が10以上であった場合、攻撃検知部37は攻撃が発生していると判定する。図12では、パケット集約ノードYによって中継されたサーバAへのトラヒックが攻撃として検知される。上記の攻撃検知方法によれば、サーバ1へのパケットを中継するパケット集約ノード2毎にサーバ1へのトラヒックの監視と攻撃の検知を行うことができる。   The attack detection unit 37 aggregates the number of packets (traffic amount) by using the same virtual IP address of the server 1 and the IP address of the packet aggregation node 2 as the unit of attack detection, and calculates the number of packets per second. calculate. As an example, when the number of packets per second is less than 10, the attack detection unit 37 determines that no attack has occurred, and when the number of packets per second is 10 or more, the attack detection unit 37 Determines that an attack has occurred. In FIG. 12, the traffic to the server A relayed by the packet aggregation node Y is detected as an attack. According to the above attack detection method, it is possible to monitor the traffic to the server 1 and detect the attack for each packet aggregation node 2 that relays the packet to the server 1.

攻撃を検知した場合、攻撃検知部37は、攻撃を検知したトラヒックに係るパケットを転送したパケット集約ノード2に対して、サーバ1の仮想IPアドレス宛てのパケットを削除するフィルタリングルールを通知する情報を生成し、中継部30に通知する。この情報には、サーバ1の仮想IPアドレスが含まれる。送受信部30aは、この情報を含むメッセージをパケット集約ノード2へ送信する(ステップS810)。図12に示す例では、パケット集約ノードYを経由するサーバAへのトラヒックが攻撃であると判定され、パケット集約ノードYに対して、サーバAの仮想IPアドレス宛てのパケットを削除するフィルタリングルールが通知される。   When an attack is detected, the attack detection unit 37 notifies the packet aggregation node 2 that forwarded the packet related to the traffic that detected the attack, information for notifying a filtering rule for deleting a packet addressed to the virtual IP address of the server 1. Generate and notify the relay unit 30. This information includes the virtual IP address of the server 1. The transmission / reception unit 30a transmits a message including this information to the packet aggregation node 2 (step S810). In the example shown in FIG. 12, it is determined that the traffic to the server A via the packet aggregation node Y is an attack, and the filtering rule for deleting the packet addressed to the virtual IP address of the server A with respect to the packet aggregation node Y is Be notified.

パケット集約ノード2において、送受信部20aはパケット転送ノード3からのメッセージを受信する。フィルタリング設定部20bは、メッセージに含まれるフィルタリングルールに従って、特定の仮想IPアドレス宛てのパケットを削除するようにフィルタリング部20cにフィルタリングの設定を行う(ステップS820)。これ以降、フィルタリング部20cは、送受信部20aがクライアント5から受信したパケットの宛先であるサーバ1の仮想IPアドレスが、ステップS820で設定された仮想IPアドレスと一致した場合に、クライアント5から受信したパケットを削除する。送受信部20aは、削除されたパケットを送信しない。   In the packet aggregation node 2, the transmission / reception unit 20 a receives a message from the packet forwarding node 3. The filtering setting unit 20b sets the filtering to the filtering unit 20c so as to delete the packet addressed to the specific virtual IP address according to the filtering rule included in the message (step S820). Thereafter, the filtering unit 20c receives from the client 5 when the virtual IP address of the server 1 that is the destination of the packet received from the client 5 by the transmission / reception unit 20a matches the virtual IP address set in step S820. Delete the packet. The transmission / reception unit 20a does not transmit the deleted packet.

上述したように、本実施形態によれば、サーバ1は1つのパケット転送ノード3のみとVPN接続を確立するため、サーバが全ての中継端末とVPN接続を確立する手法を用いる場合よりもVPN接続を確立する処理負荷およびVPN接続の管理負荷を低減することができる。また、VPN接続の要求と確立がサーバ1とパケット転送ノード3との間で自律的に行われるため、1つの管理端末が全てのパケット転送ノード3の状態を管理し、サーバ1からVPN接続の要求を受けてパケット転送ノード3の情報を応答するような中央集権的な仕組みを必要としない。   As described above, according to the present embodiment, since the server 1 establishes a VPN connection with only one packet forwarding node 3, the VPN connection is more effective than the case where the server establishes a VPN connection with all relay terminals. Can reduce the processing load and the management load of VPN connection. In addition, since the VPN connection request and establishment are autonomously performed between the server 1 and the packet forwarding node 3, one management terminal manages the state of all the packet forwarding nodes 3, and the VPN connection from the server 1 is established. There is no need for a centralized mechanism for receiving the request and responding to the packet forwarding node 3 information.

また、サーバ1が接続されるパケット転送ノード3の上流側に複数のパケット集約ノード2を設けていることで、パケット転送ノード3において、パケットが到来する方向毎(パケット集約ノード2毎)にサーバ1へのトラヒックを監視することができる。さらに、パケット転送ノード3において攻撃が検知された場合に、攻撃に係るパケットが経由するパケット集約ノード2に対して、サーバ1の仮想IPアドレス宛てのパケットを削除するフィルタリングルールが通知され、パケット集約ノード2でフィルタリングが行われるので、攻撃に係るトラヒックを遮断することができる。このとき、他のパケット集約ノード2を経由し、攻撃が検知されなかった正常なトラヒックは遮断されない。   Further, by providing a plurality of packet aggregation nodes 2 on the upstream side of the packet forwarding node 3 to which the server 1 is connected, the packet forwarding node 3 has a server for each direction in which packets arrive (for each packet aggregation node 2). Traffic to 1 can be monitored. Further, when an attack is detected in the packet forwarding node 3, a filtering rule for deleting a packet addressed to the virtual IP address of the server 1 is notified to the packet aggregation node 2 through which the packet related to the attack passes, and packet aggregation is performed. Since filtering is performed at the node 2, traffic related to the attack can be blocked. At this time, normal traffic in which no attack is detected via the other packet aggregation node 2 is not blocked.

また、パケット集約ノード2とパケット転送ノード3が、分散ハッシュテーブルを利用したDHTネットワークを構成することによって、サーバ1とパケット転送ノード3との対応関係を管理する負荷をパケット集約ノード2とパケット転送ノード3間で分散することができる。   Further, the packet aggregation node 2 and the packet forwarding node 3 constitute a DHT network using a distributed hash table, so that the load managing the correspondence relationship between the server 1 and the packet forwarding node 3 is reduced. It can be distributed among the nodes 3.

以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。   As described above, the embodiments of the present invention have been described in detail with reference to the drawings. However, the specific configuration is not limited to the above-described embodiments, and includes design changes and the like without departing from the gist of the present invention. .

1・・・サーバ、2・・・パケット集約ノード、3・・・パケット転送ノード、4・・・管理ノード、5・・・クライアント、10・・・サーバアプリケーション、11,31・・・サーバ公開部、20,30・・・中継部、20a,30a・・・送受信部、20b・・・フィルタリング設定部、20c・・・フィルタリング部、21,32・・・DHT管理部、22,33・・・DHT記憶部、23,34・・・広告部、30b・・・ログ記録部、35・・・サーバ記憶部、36・・・ログ記憶部、37・・・攻撃検知部、40・・・仮想IPアドレス記憶部、41・・・アドレス管理部、42・・・設定情報記憶部、43・・・ノード管理部、44・・・ノードリスト記憶部、50・・・クライアントアプリケーション   DESCRIPTION OF SYMBOLS 1 ... Server, 2 ... Packet aggregation node, 3 ... Packet forwarding node, 4 ... Management node, 5 ... Client, 10 ... Server application, 11, 31 ... Server release , 20, 30 ... relay unit, 20a, 30a ... transmission / reception unit, 20b ... filtering setting unit, 20c ... filtering unit, 21, 32 ... DHT management unit, 22, 33 ... DHT storage unit, 23, 34 ... advertising unit, 30b ... log recording unit, 35 ... server storage unit, 36 ... log storage unit, 37 ... attack detection unit, 40 ... Virtual IP address storage unit, 41 ... Address management unit, 42 ... Setting information storage unit, 43 ... Node management unit, 44 ... Node list storage unit, 50 ... Client application

Claims (3)

実IPアドレスおよび仮想IPアドレスを有するサーバと、通信端末から前記サーバ宛てに送信されるパケットを中継する複数の第1の中継端末と、前記第1の中継端末によって中継されたパケットを受信し、前記サーバとの間で確立されたVPN接続により前記サーバへパケットを送信する複数の第2の中継端末とを備えた通信システムであって、
前記第1の中継端末は、
前記通信端末のIPアドレスを送信元とし、前記サーバの仮想IPアドレスを宛先とするパケットを受信する第1の受信手段と、
前記第1の受信手段によって受信されたパケットをカプセル化によって、前記第1の中継端末のIPアドレスを送信元とし、前記サーバの仮想IPアドレスに対応する前記第2の中継端末のIPアドレスを宛先とするパケットに変換する第1の変換手段と、
前記第1の変換手段によってカプセル化されたパケットを送信する第1の送信手段とを有し、
前記第2の中継端末は、
前記第1の中継端末からのパケットを受信する第2の受信手段と、
前記第2の受信手段によって受信されたパケットをカプセル解除によって、カプセル化される前のパケットに変換し、変換後のパケットをカプセル化によって、前記第2の中継端末のIPアドレスを送信元とし、前記サーバの仮想IPアドレスに対応する実IPアドレスを宛先とするパケットに変換する第2の変換手段と、
前記第2の変換手段によってカプセル化されたパケットを送信する第2の送信手段とを有し、
前記サーバは、前記第2の中継端末からのパケットを受信する第3の受信手段を有し、
前記サーバは1つの前記第2の中継端末のみとVPN接続を確立することを特徴とする通信システム。
A server having a real IP address and a virtual IP address; a plurality of first relay terminals that relay packets transmitted from a communication terminal to the server; and a packet relayed by the first relay terminal; A communication system comprising a plurality of second relay terminals that transmit packets to the server by a VPN connection established with the server,
The first relay terminal is
First receiving means for receiving a packet whose source is the IP address of the communication terminal and whose destination is the virtual IP address of the server;
By encapsulating the packet received by the first receiving means, the IP address of the first relay terminal is a transmission source, and the IP address of the second relay terminal corresponding to the virtual IP address of the server is the destination First conversion means for converting the packet into:
First transmission means for transmitting the packet encapsulated by the first conversion means,
The second relay terminal is
Second receiving means for receiving a packet from the first relay terminal;
The packet received by the second receiving means is converted into a packet before being encapsulated by decapsulation, and the IP address of the second relay terminal is set as a transmission source by encapsulating the converted packet, Second conversion means for converting the packet to a destination having a real IP address corresponding to the virtual IP address of the server;
Second transmission means for transmitting the packet encapsulated by the second conversion means,
The server has a third receiving means for receiving a packet from the second relay terminal;
The communication system characterized in that the server establishes a VPN connection with only one second relay terminal.
前記サーバはさらに、前記第2の中継端末にVPN接続の要求を行い、自身の仮想IPアドレスおよび実IPアドレスを前記第2の中継端末に通知する接続要求手段を有し、
前記第1の中継端末はさらに、
前記サーバの仮想IPアドレスと前記第2の中継端末のIPアドレスとの対応関係に係る情報を記憶する第1の記憶手段と、
前記第2の中継端末から前記対応関係に係る情報を通知された場合に当該対応関係に係る情報を前記第1の記憶手段に設定する設定手段と、
前記第1の受信手段によってパケットが受信された際に、他の前記第1の中継端末または前記第2の中継端末に対して、前記サーバの仮想IPアドレスに係る情報を含む検索要求を行う検索要求手段と、
他の前記第1の中継端末または前記第2の中継端末から前記検索要求を受けた場合、当該検索要求に含まれる情報が示す前記サーバの仮想IPアドレスに対応する前記第2の中継端末のIPアドレスを前記第1の記憶手段から取得し、前記検索要求を行った端末に対して、前記第1の記憶手段から取得した前記第2の中継端末のIPアドレスを応答する応答手段とを有し、
前記第2の中継端末はさらに、
前記第1の記憶手段と、
前記設定手段と、
前記応答手段と、
前記サーバからVPN接続の要求を受けた場合に、前記対応関係に係る情報を他の前記第1の中継端末または前記第2の中継端末に通知する通知手段とを有する
ことを特徴とする請求項1に記載の通信システム。
The server further includes a connection request means for requesting a VPN connection to the second relay terminal and notifying the second relay terminal of its own virtual IP address and real IP address,
The first relay terminal further includes:
First storage means for storing information relating to a correspondence relationship between the virtual IP address of the server and the IP address of the second relay terminal;
Setting means for setting the information on the correspondence relationship in the first storage means when the information on the correspondence relationship is notified from the second relay terminal;
Search for making a search request including information related to the virtual IP address of the server to the other first relay terminal or the second relay terminal when a packet is received by the first receiving means Request means;
When the search request is received from another first relay terminal or the second relay terminal, the IP of the second relay terminal corresponding to the virtual IP address of the server indicated by the information included in the search request Response means for obtaining an address from the first storage means and responding to the IP address of the second relay terminal obtained from the first storage means with respect to the terminal that has made the search request ,
The second relay terminal further includes
The first storage means;
The setting means;
The response means;
And a notification unit configured to notify the information related to the correspondence relationship to the other first relay terminal or the second relay terminal when a VPN connection request is received from the server. The communication system according to 1.
前記対応関係に係る情報が分散ハッシュテーブルにより管理されることを特徴とする請求項2に記載の通信システム。   The communication system according to claim 2, wherein the information related to the correspondence relationship is managed by a distributed hash table.
JP2010059694A 2010-03-16 2010-03-16 Communication system Pending JP2011193378A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010059694A JP2011193378A (en) 2010-03-16 2010-03-16 Communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010059694A JP2011193378A (en) 2010-03-16 2010-03-16 Communication system

Publications (1)

Publication Number Publication Date
JP2011193378A true JP2011193378A (en) 2011-09-29

Family

ID=44797817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010059694A Pending JP2011193378A (en) 2010-03-16 2010-03-16 Communication system

Country Status (1)

Country Link
JP (1) JP2011193378A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101477008B1 (en) * 2014-04-08 2014-12-29 주식회사 파이오링크 Method, apparatus, system and computer-readable recording medium for testing load balancing device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008301165A (en) * 2007-05-31 2008-12-11 Fuji Xerox Co Ltd Virtual network connection apparatus and program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008301165A (en) * 2007-05-31 2008-12-11 Fuji Xerox Co Ltd Virtual network connection apparatus and program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNJ201010043724; 磯原 隆将: '大規模自律分散型の仮想セグメントを用いたサーバ保護手法の提案' 電子情報通信学会2010年総合大会講演論文集 通信2 , 20100302, 社団法人電子情報通信学会 *
JPN6013028969; 磯原 隆将: '大規模自律分散型の仮想セグメントを用いたサーバ保護手法の提案' 電子情報通信学会2010年総合大会講演論文集 通信2 , 20100302, 社団法人電子情報通信学会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101477008B1 (en) * 2014-04-08 2014-12-29 주식회사 파이오링크 Method, apparatus, system and computer-readable recording medium for testing load balancing device

Similar Documents

Publication Publication Date Title
US7895345B2 (en) Distributed routing table architecture and design
EP2579544B1 (en) Methods and apparatus for a scalable network with efficient link utilization
US8296839B2 (en) VPN discovery server
US10263808B2 (en) Deployment of virtual extensible local area network
EP2845365B1 (en) Method and devices for protecting neighbour discovery cache against dos attacks
JP5607252B2 (en) Processing method, proxy processing agent, system and method for filling routing table of DHT client node, router, and DHT client node
US9270638B2 (en) Managing address validation states in switches snooping IPv6
US9654482B2 (en) Overcoming circular dependencies when bootstrapping an RPKI site
McPherson et al. Architectural considerations of IP anycast
Jen et al. APT: A practical tunneling architecture for routing scalability
CN105009509A (en) Augmenting name/prefix based routing protocols with trust anchor in information-centric networks
US9479356B2 (en) DVPN large-scale networking and spoke
CN103200094A (en) Method for achieving gateway dynamic load distribution
JP2020518205A (en) Routing control
JP6419217B2 (en) Method for transferring data between computer systems, computer network infrastructure, and computer program product
Lin et al. WEBridge: west–east bridge for distributed heterogeneous SDN NOSes peering
US20120158992A1 (en) Group Member Detection Among Nodes of a Network
Rossberg et al. Distributed automatic configuration of complex ipsec-infrastructures
KR20130080626A (en) A routing method between domains for content centric network and the content centric network
JP2012186519A (en) Communication system
JP2011193378A (en) Communication system
CN113518104B (en) Data message processing method, transfer equipment and system
JP2011193379A (en) Communication system
CN108259292B (en) Method and device for establishing tunnel
US10735252B2 (en) Outside router fault detection

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120907

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130618

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131112