Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5589210B2 - Information processing apparatus, program, information processing method, and information processing system - Google Patents
[go: Go Back, main page]

JP5589210B2 - Information processing apparatus, program, information processing method, and information processing system - Google Patents

Information processing apparatus, program, information processing method, and information processing system Download PDF

Info

Publication number
JP5589210B2
JP5589210B2 JP2010095430A JP2010095430A JP5589210B2 JP 5589210 B2 JP5589210 B2 JP 5589210B2 JP 2010095430 A JP2010095430 A JP 2010095430A JP 2010095430 A JP2010095430 A JP 2010095430A JP 5589210 B2 JP5589210 B2 JP 5589210B2
Authority
JP
Japan
Prior art keywords
address
interface
vpn
routing table
entry
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
JP2010095430A
Other languages
Japanese (ja)
Other versions
JP2011217336A (en
Inventor
悟史 小林
憲且 大石
Original Assignee
株式会社ネクステック
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 株式会社ネクステック filed Critical 株式会社ネクステック
Priority to JP2010095430A priority Critical patent/JP5589210B2/en
Publication of JP2011217336A publication Critical patent/JP2011217336A/en
Application granted granted Critical
Publication of JP5589210B2 publication Critical patent/JP5589210B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、VPN(Virtual Private Network)の通信を行うVPNサーバとVPNクライアントの間におけるルーティング処理に関し、特にEthernetフレームを利用したVPNに関するルーティング処理に好適な技術に関する。  The present invention relates to a routing process between a VPN server and a VPN client that perform VPN (Virtual Private Network) communication, and more particularly to a technique suitable for a routing process related to a VPN using an Ethernet frame.

近年、インターネットや通信事業者が持つネットワークを用いて端末間に仮想的な専用線を接続するVPN技術が普及している。VPN技術には、公衆ネットワークとしてインターネットを利用するインターネットVPNと、通信事業者が管理する専用のサービス網を用いて提供されるVPNがある。  In recent years, VPN technology for connecting a virtual dedicated line between terminals using the Internet or a network possessed by a communication carrier has become widespread. VPN technologies include an Internet VPN that uses the Internet as a public network and a VPN that is provided using a dedicated service network managed by a communication carrier.

インターネットVPNには、VPNの構成に必要な暗号化、認証等の機能を備えたプロトコルをルータやファイアウォール機器に実装してVPNを実現するIPsec(IP security)と、SSLプロトコルを利用してVPNを実現するSSL−VPNのなどがある。
また、通信事業者が管理する専用のサービス網を用いて提供されるVPNには、ラベルとルーティングテーブルを用いたMPLS(Multi Protocol Label Switching)によってVPNを実現するIP−VPNと、EathernetフレームにVLANタグと呼ばれる情報を付加してVPNを実現する広域Ethernetなどがある(例えば、MPLSについて特許文献1参照)。
In Internet VPN, IPsec (IP security) that implements VPN by implementing protocols with encryption and authentication functions necessary for VPN configuration in routers and firewall devices, and VPN using SSL protocol There are SSL-VPNs to be realized.
In addition, a VPN provided by using a dedicated service network managed by a telecommunications carrier includes an IP-VPN that implements VPN by MPLS (Multi Protocol Label Switching) using a label and a routing table, and a VLAN in an Ethernet frame. There is a wide area Ethernet that implements VPN by adding information called a tag (for example, refer to Patent Document 1 for MPLS).

特許4109692号公報Japanese Patent No. 4109692

図1は、Ethernetフレームを利用するVPNのネットワークの構成を説明するための図である。
図2は、一般的な通信パケットの構造を示す図である。ここで、Ethernetフレームは、図2に示す通り、MACヘッダとIPパケットからなる。IPパケットは、IPヘッダとデータからなる。データはTCPヘッダとデータ断片からなる。
FIG. 1 is a diagram for explaining the configuration of a VPN network that uses an Ethernet frame.
FIG. 2 is a diagram illustrating the structure of a general communication packet. Here, the Ethernet frame is composed of a MAC header and an IP packet as shown in FIG. An IP packet consists of an IP header and data. Data consists of a TCP header and data fragments.

図1において、例えば端末500Bから端末500Aに対してVPNの通信を行う場合のVPNセッションは、まずは端末BのVPNクライアントBからVPNサーバ宛に作成される。その際、VPNセッションはTCPヘッダ内のアドレスにおいて設定される。
設定されたTCPヘッダ内のアドレスを用いて、VPNクライアントとVPNサーバ間でEthernetフレームが送受信される。
In FIG. 1, for example, a VPN session when VPN communication is performed from the terminal 500B to the terminal 500A is first created from the VPN client B of the terminal B to the VPN server. At that time, the VPN session is set at the address in the TCP header.
An Ethernet frame is transmitted and received between the VPN client and the VPN server using the address in the set TCP header.

ところで、VPNの通信を行う端末600A乃至CのVPNクライアント500A乃至Cがすべて同一のISP(Internet Service Provider)のネットワーク内にあるとは限らない。このため、図1に示す通り、VPNサーバ100はルータ200A乃至Cを介して複数のISP300A乃至Cと接続する。  By the way, the VPN clients 500A to 500C of the terminals 600A to 600C that perform VPN communication are not necessarily all in the same ISP (Internet Service Provider) network. Therefore, as shown in FIG. 1, the VPN server 100 is connected to a plurality of ISPs 300A to 300C via routers 200A to 200C.

図1におけるVPNサーバ100は、接続したISPから固定のIPアドレスが割り当てられている。具体的には、例えばISPA社300AからはIP−A、ISPB社300BからはIP−B、ISPC社300CからはIP−Cがそれぞれ割り当てられる。
一方、図1におけるVPNクライアント500A乃至CのIPアドレスは、ISPのネトワークに接続する際にISPから割り当てられて動的に決定される。
The VPN server 100 in FIG. 1 is assigned a fixed IP address from the connected ISP. Specifically, for example, IP-A is assigned from ISPA 300A, IP-B is assigned from ISPB 300B, and IP-C is assigned from ISPC 300C.
On the other hand, the IP addresses of the VPN clients 500A to 500C in FIG. 1 are assigned and dynamically determined by the ISP when connecting to the ISP network.

ここで例えばVPNクライアント500BからVPNサーバ100を介してVPNクライアント500AにVPNの通信を行う場合について説明する。
VPNクライアント500BからVPNサーバ100へ送信されるパケットは、パケット内の宛先IPアドレスとルータが持つ従来の一般的なルーティングテーブルに基づいて送信される。
Here, for example, a case where VPN communication is performed from the VPN client 500B to the VPN client 500A via the VPN server 100 will be described.
A packet transmitted from the VPN client 500B to the VPN server 100 is transmitted based on a destination IP address in the packet and a conventional general routing table possessed by the router.

VPNサーバ100は、VPNクライアント500Bから受信したEthernetフレームをVPNクライアント500Aに転送する際、受信したパケットのMACヘッダに記載されたMACアドレスに基づいて転送先となるVPNクライアント500Aを決定する。
次に、決定したVPNクライアント500Aをキーにして図3のVPNセッションテーブルを検索して使用するTCP自側アドレスとTCPクライアント側IPアドレスを選択し、選択したVPNクライアント500A宛にパケットを送信する。
When the VPN server 100 transfers the Ethernet frame received from the VPN client 500B to the VPN client 500A, the VPN server 100 determines the VPN client 500A as a transfer destination based on the MAC address described in the MAC header of the received packet.
Next, using the determined VPN client 500A as a key, the VPN session table shown in FIG. 3 is searched and a TCP local address and a TCP client side IP address are selected, and a packet is transmitted to the selected VPN client 500A.

VPNサーバ100が一社のISPのみに接続している場合には、VPNサーバは、VPNクライアントから受信したパケットを、転送先のVPNクライアントに向けて、接続した一のISPに送信すれば足りる。
しかしVPNサーバ100が複数のISPに接続している場合は、いずれのISPに送信するかを含めて最適な転送先を選択する必要がある。転送先が不適の場合は、パケットが遠回りすることで通信品質が劣化する場合や、転送先のVPNクライアントにパケットが到達しない場合が起こりうるためである。
When the VPN server 100 is connected to only one ISP, it is sufficient for the VPN server to send a packet received from the VPN client to the connected ISP to the destination VPN client.
However, when the VPN server 100 is connected to a plurality of ISPs, it is necessary to select an optimum transfer destination including which ISP to transmit. This is because when the transfer destination is inappropriate, the communication quality may deteriorate due to the detour of the packet, or the packet may not reach the VPN client at the transfer destination.

従来の一般的なルーティングテーブルによって経路制御をする場合は、ルーティングテーブル内に宛先IPアドレスの項目があるために経路制御できる宛先IPアドレスのグループと、ルーティングテーブル内に宛先IPアドレスの項目がないために経路制御できない宛先IPアドレスのグループが存在していた。
このため、IPパケットの宛先IPアドレスが、経路制御の対象となる宛先IPアドレスのグループに含まれていれば、そのグループに関連付けられた転送先ルータにIPパケットを転送する経路制御ができる。
When performing routing control using a conventional general routing table, because there is a destination IP address item in the routing table, there is no destination IP address group that can be routed and no destination IP address item in the routing table. There is a group of destination IP addresses that cannot be routed.
For this reason, if the destination IP address of the IP packet is included in a group of destination IP addresses to be route-controlled, route control for transferring the IP packet to the transfer destination router associated with the group can be performed.

例えば、図1におけるVPNクライアントA500Aの宛先IPアドレスと、VPNサーバ100に割り当てられたIP−AのIPアドレスとがルーティングテーブル内に項目があり、同じ宛先IPアドレスグループに属していれば、最適な転送先としてルータA200Aを選択することができる。  For example, if the destination IP address of the VPN client A 500A in FIG. 1 and the IP address of the IP-A assigned to the VPN server 100 have items in the routing table and belong to the same destination IP address group, the optimum The router A 200A can be selected as the transfer destination.

しかし、ISP内において経路制御の対象となるIPアドレスグループは細分化されており、同一のISP内にも種々のIPアドレスグループが含まれている。このため、同じISPA社のネットワークに属している場合でも、ISPA社から割り当てられたIP−AのIPアドレスと、VPNクライアントA500Aに割り当てられたIPアドレスとは同じIPアドレスグループに属しない場合が多い。  However, IP address groups that are subject to path control in the ISP are subdivided, and various IP address groups are also included in the same ISP. For this reason, even when belonging to the same ISPA network, the IP address of IP-A assigned by ISPA and the IP address assigned to VPN client A500A often do not belong to the same IP address group. .

IPパケットの宛先IPアドレスが、経路制御の対象となる宛先IPアドレスのグループに含まれていない場合は、最適な転送先とは限らないデフォルト経路と呼ばれるISP宛にパケットを一律に送信することになり、経路制御されずにパケットが送信されてしまうことによって通信時間が遅れる問題があった。  When the destination IP address of the IP packet is not included in the group of destination IP addresses to be route controlled, the packet is uniformly transmitted to an ISP called a default route which is not necessarily an optimal transfer destination. Thus, there is a problem that the communication time is delayed due to a packet being transmitted without being route-controlled.

このような経路制御の対象となる宛先IPアドレスの項目がないために経路制御できない場合の対策として、例えば図4のように、接続されたVPNクライアントのIPアドレスと同数の項目を有するルーティングテーブルを動的に作成する必要がある。
しかし、宛先IPアドレスと同数の項目を備えてルーティングテーブルを作成することは、管理運用のコストが嵩むことに加えて、規模拡張性に欠くという問題がある。
As a countermeasure when the route control cannot be performed because there is no item of the destination IP address subject to the route control, for example, as shown in FIG. 4, a routing table having the same number of items as the IP addresses of the connected VPN clients is used. Must be created dynamically.
However, creating a routing table with the same number of items as the destination IP address has the problem that the cost of management operation increases and the scalability is not sufficient.

そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、従来の一般的なルーティングテーブルでは選択できない最適な転送先を選択することが可能な、新規かつ改良された情報処理装置、プログラム、情報処理方法および情報処理システムを提供することにある。  Therefore, the present invention has been made in view of the above problems, and an object of the present invention is a novel and capable of selecting an optimal transfer destination that cannot be selected by a conventional general routing table. An object is to provide an improved information processing apparatus, program, information processing method, and information processing system.

中央処理装置と、少なくとも2以上のインターフェースと、各インターフェース毎に付与されたインターフェースIPアドレスを記憶する記憶部と、ソースIPアドレスに基づいて経路制御を行うための第1のルーティングテーブルと、宛先IPアドレスに基づいて経路制御を行うための第2のルーティングテーブルと、を備え、
前記中央処理装置は、前記第1のルーティングテーブルと、1のインターフェースから受信したソースIPアドレスとに基づいて、前記ソースIPアドレスに対応する前記インターフェースを特定できる場合は、特定した前記ソースIPアドレスと前記インターフェースを用いて通信を行い、
前記インターフェースのIPアドレスと対応する前記インターフェースを特定できない場合は、前記第2のルーティングテーブルと、1のインターフェースから受信した宛先IPアドレスとに基づいて、特定した前記宛先IPアドレスと前記インターフェースを用いて通信を行う、情報処理装置。
A central processing unit, at least two or more interfaces, a storage unit for storing an interface IP address assigned to each interface, a first routing table for performing path control based on a source IP address, and a destination IP A second routing table for performing routing based on the address,
When the central processing unit can identify the interface corresponding to the source IP address based on the first routing table and the source IP address received from one interface, Communicate using the interface,
When the interface corresponding to the IP address of the interface cannot be specified, the specified destination IP address and the interface are used based on the second routing table and the destination IP address received from one interface. An information processing apparatus that performs communication.

前記第1のルーティングテーブルには、IPアドレスの番号が上位若しくは下位の位置となる、またはIPアドレスの範囲が広い若しくは狭い、IPアドレスグループのリンク情報を有し、前記中央処理装置は、前記第1のルーティングテーブルの前記リンク情報に基づき、前記インターフェースIPアドレスと対応する前記インターフェースを特定する。
また、前記情報処理装置は、VPNサーバであり、前記インターフェースは、VPNクライアントと接続されており、前記通信はVPNによる通信である。
The first routing table includes link information of an IP address group in which an IP address number is an upper or lower position, or an IP address range is wide or narrow, and the central processing unit includes the first routing table. The interface corresponding to the interface IP address is identified based on the link information of one routing table.
Further, the information processing apparatus is a VPN server, the interface is connected to a VPN client, and the communication is communication by VPN.

以上説明したように本発明によれば、宛先IPアドレスのみによるIPルーティングテーブルでは選択できない最適な転送先をソースIPアドレスを用いることによって特定することができる。  As described above, according to the present invention, an optimal transfer destination that cannot be selected by the IP routing table based only on the destination IP address can be specified by using the source IP address.

本実施の形態に係るネットワークの構成を説明するための説明図である。It is explanatory drawing for demonstrating the structure of the network which concerns on this Embodiment. Ethernetフレームの構造を示すための説明図である。It is explanatory drawing for showing the structure of an Ethernet frame. VPNセッションテーブルを示すための説明図である。It is explanatory drawing for showing a VPN session table. 宛先IPアドレスによるIPルーティングテーブルを示す説明図である。It is explanatory drawing which shows the IP routing table by a destination IP address. VPNサーバの概略構成を示すブロック図である。It is a block diagram which shows schematic structure of a VPN server. VPNサーバのソースアドレスIPルーティングテーブルの構成を説明するための説明図である。It is explanatory drawing for demonstrating the structure of the source address IP routing table of a VPN server. ルータの概略構成を示すブロック図である。It is a block diagram which shows schematic structure of a router. VPNクライアントの概略構成を示すブロック図である。It is a block diagram which shows schematic structure of a VPN client. VPNサーバのパケット転送処理のフロー図である。It is a flowchart of the packet transfer process of a VPN server. ソースIPアドレスルーティングテーブルの構造を示す構造図である。It is a structural diagram which shows the structure of a source IP address routing table. ソースIPアドレスルーティングテーブルのエントリ例を示す説明図である。It is explanatory drawing which shows the example of an entry of a source IP address routing table. IPアドレスを番号順に並べたIPアドレス空間におけるIPアドレスブロックを示す構造図である。It is a structural diagram showing an IP address block in an IP address space in which IP addresses are arranged in numerical order. ソースIPアドレスルーティングテーブルの最適なエントリ探索処理のフロー図である。It is a flowchart of the optimal entry search process of a source IP address routing table. 図13の探索ループの詳細なフロー図である。FIG. 14 is a detailed flowchart of the search loop of FIG. 13. ソースIPアドレスルーティングテーブルの最適なエントリ探索処理の第2の実施例を示すフロー図である。It is a flowchart which shows the 2nd Example of the optimal entry search process of a source IP address routing table. 図15の探索ループの詳細なフロー図である。FIG. 16 is a detailed flowchart of the search loop of FIG. 15. エントリ探索回数を示す説明図である。It is explanatory drawing which shows the number of entry searches. 本願におけるVPNセッションで用いられるパケットの構造を示すための説明図である。It is explanatory drawing for showing the structure of the packet used by the VPN session in this application.

以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。  Exemplary embodiments of the present invention will be described below in detail with reference to the accompanying drawings. In addition, in this specification and drawing, about the component which has the substantially same function structure, duplication description is abbreviate | omitted by attaching | subjecting the same code | symbol.

なお、説明は以下の順序で行うものとする。
1.本発明の実施の形態に係るネットワーク構成
2.VPNサーバのパケット転送処理のフロー例
3.ソースIPアドレスルーティングテーブルの例
4.最適候補エントリの探索処理フロー例
5.最適候補エントリの探索処理フローの第2の実施例
The description will be made in the following order.
1. 1. Network configuration according to an embodiment of the present invention 2. Example flow of VPN server packet transfer processing 3. Example of source IP address routing table 4. Optimal candidate entry search processing flow example Second Example of Search Process Flow for Optimal Candidate Entry

[本発明の実施の形態に係るネットワーク構成]
まず、本発明の実施の形態に係るネットワーク構成について説明する。図1は本実施の形態に係るネットワークの構成を説明するための説明図である。
[Network configuration according to the embodiment of the present invention]
First, a network configuration according to the embodiment of the present invention will be described. FIG. 1 is an explanatory diagram for explaining a configuration of a network according to the present embodiment.

図1において、VPNサーバ100は、ルータA200A乃至ルータC200C、ISPA社300A乃至ISPC社300C、ルータD400A乃至ルータF400C、VPNクライアントA500A乃至VPNクライアントC500Cを介して、端末600A乃至端末600Cと接続されている。各機器間は、例えばイーサネットケーブルによって接続されている。  In FIG. 1, a VPN server 100 is connected to terminals 600A to 600C via routers A200A to C200C, ISPA 300A to ISPC 300C, routers D400A to F400C, and VPN clients A500A to VPN clients C500C. . Each device is connected by, for example, an Ethernet cable.

次に図1におけるVPNサーバ100、ルータA200A乃至ルータC200C、VPNクライアントA500A乃至VPNクライアントC500Cの概略構成について説明する。  Next, schematic configurations of the VPN server 100, the router A 200A to the router C 200C, and the VPN client A 500A to the VPN client C 500C in FIG. 1 will be described.

図5は、VPNサーバの概略構成を示すブロック図である。
VPNサーバ100は、図5に示す通り、CPU101、VPNセッションテーブル102、ソースIPアドレスルーティングテーブル103、宛先アドレスによるIPルーティングテーブル104、インターフェースA105、B106、C107、記憶部108からなる。
FIG. 5 is a block diagram showing a schematic configuration of the VPN server.
As shown in FIG. 5, the VPN server 100 includes a CPU 101, a VPN session table 102, a source IP address routing table 103, an IP routing table 104 by destination address, interfaces A105, B106, C107, and a storage unit 108.

CPU101は、VPNサーバ内の各ブロックの処理の制御を行う。  The CPU 101 controls processing of each block in the VPN server.

VPNセッションテーブル102は、VPNサーバがVPNクライアントにパケットを送信する際にVPNセッションを決定するために用いるテーブルである。具体的には、先に図3について説明した通りである。  The VPN session table 102 is a table used for determining a VPN session when the VPN server transmits a packet to the VPN client. Specifically, as described above with reference to FIG.

図6は、VPNサーバのソースアドレスIPルーティングテーブルの構成を説明するための説明図である。
ソースIPアドレスルーティングテーブル103は、図6に示す通り、ソースIPアドレス、転送先ルータ、使用インターフェースの項目を有し、事前にISPA乃至ISPCから割り当てられたソースIPアドレスと、転送先ルータ及び使用するインターフェースを一組として管理する。
VPNサーバのCPU101は、いずれかのインターフェースで受信した転送対象となるパケットのソース(送信元)IPアドレスをキーにしてソースIPアドレスルーティングテーブル103を検索し、転送先ルータと使用するインターフェースを決定する。このテーブルの詳細については後述する。
ソースIPアドレスには、事前にISPA乃至Cから割り当てられた固定IPアドレスが使用される。このため、ソースIPアドレスルーティングテーブルの項目数は、接続するISPの数で足り、接続するVPNクライアントの数と同数の項目を持つ必要がない。また、このテーブルは、例えばVPNサーバの起動時に設定することにしてもよい。
FIG. 6 is an explanatory diagram for explaining the configuration of the source address IP routing table of the VPN server.
As shown in FIG. 6, the source IP address routing table 103 includes items of a source IP address, a transfer destination router, and an interface to be used, and a source IP address assigned in advance from ISPA or ISPC, a transfer destination router, and a use. Manage interfaces as a set.
The CPU 101 of the VPN server searches the source IP address routing table 103 using the source (source) IP address of the packet to be transferred received by any interface as a key, and determines the interface to be used with the transfer destination router. . Details of this table will be described later.
As the source IP address, a fixed IP address assigned in advance from ISPA to C is used. For this reason, the number of items in the source IP address routing table is sufficient as the number of ISPs to be connected, and it is not necessary to have the same number of items as the number of VPN clients to be connected. Further, this table may be set when the VPN server is activated, for example.

宛先IPアドレスによるIPルーティングテーブルは、先に図4について説明した通り、宛先IPアドレス、転送先ルータ、使用インターフェースの項目を有し、これらを一組として管理する。  As described above with reference to FIG. 4, the IP routing table based on the destination IP address has items of the destination IP address, the transfer destination router, and the used interface, and manages these as a set.

インターフェースA105乃至C107は、ISP毎に割り当てられて他の機器と接続され、パケットの送受信を行う。  Interfaces A105 to C107 are assigned to each ISP and connected to other devices to transmit and receive packets.

記憶部108はVPNの通信に必要な暗号化、メッセージ認証、接続先認証等の情報を記憶する。  The storage unit 108 stores information such as encryption, message authentication, and connection destination authentication necessary for VPN communication.

図7は、ルータの概略構成を示すブロック図である。
ルータ200A乃至200Cは、図7に示す通り、CPU201と、ルーティングテーブル202とインターフェース203、204からなる。
なお、ルータ400A乃至400Cは、ルータ200A乃至200Cと実質的に同一の機能構成であるため説明を省略する。
FIG. 7 is a block diagram showing a schematic configuration of the router.
The routers 200A to 200C include a CPU 201, a routing table 202, and interfaces 203 and 204, as shown in FIG.
Note that the routers 400A to 400C have substantially the same functional configuration as the routers 200A to 200C, and a description thereof will be omitted.

CPU201は、ルーティングテーブル202に基づいてパケットの中継先を判断し、判断された中継先へのパケットの送受信を制御する。  The CPU 201 determines a packet relay destination based on the routing table 202 and controls transmission / reception of the packet to the determined relay destination.

ルーティングテーブル202は、パケットの中継先が登録されたテーブルである。  The routing table 202 is a table in which packet relay destinations are registered.

インターフェース203、204は、他の機器と接続され、パケットの送受信を行う。  The interfaces 203 and 204 are connected to other devices and transmit / receive packets.

図8は、VPNクライアントの概略構成を示すブロック図である
VPNクライアント500A乃至500Cは、図8に示す通り、CPU501、記憶部502、インターフェース503、504からなる。
FIG. 8 is a block diagram showing a schematic configuration of a VPN client. VPN clients 500A to 500C include a CPU 501, a storage unit 502, and interfaces 503 and 504 as shown in FIG.

[VPNサーバのパケット転送処理フロー例]
次に、本発明のVPNサーバのパケット転送処理フローについて説明する。図9は、VPNサーバのパケット転送処理のフロー図である。
[Example of packet transfer processing flow of VPN server]
Next, the packet transfer processing flow of the VPN server of the present invention will be described. FIG. 9 is a flowchart of packet transfer processing of the VPN server.

VPNサーバ100のいずれかのインターフェースが、VPNクライアントからのEthernetフレームの転送要求を受信する(S702)。
VPNサーバ100のCPU101が、受信したパケットのMACヘッダに記載されたMACアドレスに基づいて転送先VPNクライアントを決定する(S704)。
VPNサーバ100のCPU101が、決定した転送先VPNクライアントをVPNセッションテーブル102に参照し、TCPの自側アドレスを決定する(S706)。
Any interface of the VPN server 100 receives the Ethernet frame transfer request from the VPN client (S702).
The CPU 101 of the VPN server 100 determines a transfer destination VPN client based on the MAC address described in the MAC header of the received packet (S704).
The CPU 101 of the VPN server 100 refers to the determined VPN client VPN destination in the VPN session table 102 to determine the TCP local address (S706).

次にVPNサーバ100のCPU101は、決定したTCPの自側アドレスをキーにしてソースIPアドレスルーティングテーブル103を検索し、テーブルに存在するか否かを確認する(S708)。
TCP自側アドレスがソースIPアドレスルーティングテーブル103に存在する場合は、ソースIPアドレスルーティングテーブルから転送先ルータ及び使用インターフェースを決定する(S710)。
TCP自側アドレスがソースIPアドレスルーティングテーブル103に存在しない場合は、宛先アドレスによるIPルーティングテーブルから転送先ルータ及び使用インターフェースを決定する(S712)。
Next, the CPU 101 of the VPN server 100 searches the source IP address routing table 103 by using the determined TCP local address as a key, and checks whether or not it exists in the table (S708).
If the TCP own-side address exists in the source IP address routing table 103, the transfer destination router and the used interface are determined from the source IP address routing table (S710).
If the TCP local address does not exist in the source IP address routing table 103, the transfer destination router and the interface to be used are determined from the IP routing table based on the destination address (S712).

VPNサーバ100のCPU101は、決定したインターフェースを使用して、決定した転送先ルータに対してパケットを送信する(S714)。  The CPU 101 of the VPN server 100 transmits a packet to the determined transfer destination router using the determined interface (S714).

上記の通り、例えばVPNクライアント500BがVPNサーバ100のいずれのIPアドレスに接続してきたか(いずれのISPを経由して送信してきたか)に応じて、VPNサーバ100が、VPNクライアント500Aに転送するために最適な転送先ルータ200を選択する。これによって、通信経路を最短にして応答時間を短縮し、通信条件を改善することができる。
また、ソースIPアドレスルーティングテーブル103と宛先アドレスを使用したルーティングテーブル104の双方を用いることで、宛先アドレスを使用したルーティングテーブル104のみを用いて処理する場合に比較して、最適な転送先の選択に使用するテーブルの項目数を少なくすることができる。
As described above, for example, depending on which IP address of the VPN server 500B is connected to which IP address of the VPN server 100 (through which ISP is transmitted), the VPN server 100 transfers to the VPN client 500A. The optimum transfer destination router 200 is selected. As a result, the communication path can be shortened, the response time can be shortened, and the communication conditions can be improved.
Further, by using both the source IP address routing table 103 and the routing table 104 using the destination address, selection of the optimum transfer destination is possible as compared with the case where processing is performed using only the routing table 104 using the destination address. Can reduce the number of table entries used.

[ソースIPアドレスルーティングテーブルの例]
図10は、ソースIPアドレスルーティングテーブル103の構造を示す構造図である。ソースIPアドレスルーティングテーブル103は、先に図6において説明した通り、
ソースIPアドレス、転送先ルータ、使用インターフェースの項目を有するテーブルである。しかし、より詳細には、図10に示す通り、各項目がツリー構造を模したリンク付きリストである。
[Example of source IP address routing table]
FIG. 10 is a structural diagram showing the structure of the source IP address routing table 103. The source IP address routing table 103 is as described above with reference to FIG.
It is a table having items of a source IP address, a transfer destination router, and an interface used. However, in more detail, as shown in FIG. 10, each item is a linked list simulating a tree structure.

図11は、ソースIPアドレスルーティングテーブル103の各構成要素を示す説明図である。
より詳細には、ソースIPアドレスルーティングテーブル103の各構成要素は、IPアドレスプレフィックス、ネットマスク、使用インターフェース、転送先ルータ、next、childからなる。
FIG. 11 is an explanatory diagram showing each component of the source IP address routing table 103.
More specifically, each component of the source IP address routing table 103 includes an IP address prefix, a netmask, a used interface, a transfer destination router, a next, and a child.

IPアドレスプレフィックスは、IPアドレスのプレフィックス部分である。また、ネットマスクは、IPアドレスのネットマスク部分である。
「プレフィックス」及び「ネットマスク」は、IPアドレスブロックの範囲を示している。
32bitで構成されるIPアドレスは、アドレスをグループに分割して扱う場合に、一般に「プレフィックス」と呼ばれる部分と「ネットマスク」と呼ばれる部分で表現される。すなわち、あるIPアドレスに対して「ネットマスク」とのAND演算を行い、その結果が「プレフィックス」と一致する場合、そのIPアドレスは当該プレフィックスとネットマスクで表現される。
例えば、図11のIPアドレスのグループには、例えば、192.168.1.1や192.168.1.250等のIPアドレスが含まれる。ネットマスク255.255.255.0とAND演算を行うといずれも192.168.1.0となってプレフィックスと一致するためである。一方、例えば172.16.250.1等のIPアドレスは、AND演算結果がプレフィックスと一致しないため、IPアドレスのグループには含まれない。
The IP address prefix is a prefix portion of the IP address. The net mask is a net mask portion of the IP address.
“Prefix” and “Netmask” indicate the range of the IP address block.
An IP address composed of 32 bits is generally expressed by a part called “prefix” and a part called “netmask” when the address is divided into groups. That is, when an AND operation with a “net mask” is performed on a certain IP address and the result matches the “prefix”, the IP address is expressed by the prefix and the net mask.
For example, the IP address group in FIG. 11 includes IP addresses such as 192.168.1.1 and 192.168.1.250. This is because when the AND operation is performed with the net mask 255.255.255.0, both are 192.168.1.0 and match the prefix. On the other hand, IP addresses such as 172.16.250.1 are not included in the IP address group because the AND operation result does not match the prefix.

使用インターフェースは、パケットを転送するインターフェース名である。また、転送先ルータは、パケットの転送先となるルータのIPアドレスである。  The used interface is an interface name for transferring a packet. The transfer destination router is an IP address of a router that is a packet transfer destination.

nextは、次のIPアドレスプレフィックスを持つエントリへのリンクである。nextでリンクするエントリは、範囲が異なる前後のIPアドレスグループを指す。
一方、childは、より小さいIPアドレスプレフィックスを持つエントリへのリンクである。
childでリンクするエントリは、さらに狭い範囲のIPアドレスグループを指す。
“next” is a link to an entry having the next IP address prefix. The entries linked by “next” indicate the IP address groups before and after having different ranges.
On the other hand, child is a link to an entry having a smaller IP address prefix.
The entry linked by the child indicates an IP address group in a narrower range.

図12は、IPアドレス空間において、例えば0.0.0.0から255.255.255.255までの全体のIPアドレスを順に並べた場合の構造図であり、IPアドレス空間の全体の中における、それぞれのIPアドレスグループの位置関係の例を示すものである。
図10に示したエントリ▲1▼、▲3▼及び▲7▼とエントリ▲4▼及び▲5▼はnextの関係にある。これはIPアドレスの範囲が異なり、IPアドレスを番号順に並べた際、前後のIPアドレスグループに位置することになる。
一方、エントリ▲1▼のchildでリンクするエントリ▲2▼、エントリ▲3▼のchildでリンクするエントリ▲4▼、エントリ▲5▼のchildでリンクするエントリ▲6▼は、IPアドレスを番号順に並べた際、より狭い範囲のIPアドレスグループに位置することになる。
FIG. 12 is a structural diagram in the case where the entire IP addresses from 0.0.0.0 to 255.255.255.255 are sequentially arranged in the IP address space, for example, in the entire IP address space. This shows an example of the positional relationship of each IP address group.
The entries {circle around (1)}, {circle around (3)}, {circle over (7)} and the entries {circle around (4)} and {circle around (5)} shown in FIG. This is because the IP address range is different, and when IP addresses are arranged in numerical order, they are located in the preceding and following IP address groups.
On the other hand, entry (2) linked by child of entry (1), entry (4) linked by child of entry (3), and entry (6) linked by child of entry (5) are IP addresses in numerical order. When arranged, they are positioned in a narrower range of IP address groups.

[最適候補エントリの探索処理フロー例]
ソースIPアドレスルーティングテーブル103を用いてIPパケットを転送する場合は、IPパケットのソースアドレスが、テーブルを構成するどのエントリに含まれているかを判断し、そのエントリに記載されている転送先ルータおよび使用インターフェースを使用する。
ここで、IPアドレスグループは、図12に示す通り階層構造を持つため、一のIPアドレスに対する最適なエントリとは、そのIPアドレスが属しうるグループで最も範囲が狭いものとなる。
[Example of optimal candidate entry search processing flow]
When an IP packet is transferred using the source IP address routing table 103, it is determined in which entry the source address of the IP packet is included in the table, and the transfer destination router described in the entry and Use the used interface.
Here, since the IP address group has a hierarchical structure as shown in FIG. 12, the optimum entry for one IP address has the narrowest range in the group to which the IP address can belong.

図10の構造から最適なエントリを選択するために、ソースIPアドレスルーティングテーブルを参照し、「最適候補エントリ」及び「現在エントリ」の二つの変数を用いて図13及び図14の処理を行う。  In order to select an optimum entry from the structure of FIG. 10, the source IP address routing table is referred to, and the processes of FIGS. 13 and 14 are performed using two variables of “optimum candidate entry” and “current entry”.

次に、本発明のVPNサーバの最適なエントリ探索処理フローについて説明する。
図13は、ソースIPアドレスルーティングテーブル103の最適なエントリ探索処理のフロー図である。
Next, the optimum entry search processing flow of the VPN server of the present invention will be described.
FIG. 13 is a flowchart of the optimum entry search process of the source IP address routing table 103.

VPNサーバ100のCPU101は、受信したパケットからソースIPアドレスを抽出する(S802)。
VPNサーバ100のCPU101は、変数である最適候補エントリを初期化する(S804)。
VPNサーバ100のCPU101は、変数である現在エントリをrootエントリのchildに設定する(S806)。
変数である最適候補エントリの初期化と、同じく変数である現在エントリの設定を終えた後、VPNサーバ100のCPU101は、探索ループ処理を行う(S808)。当該処理の詳細は図14で説明する。
The CPU 101 of the VPN server 100 extracts the source IP address from the received packet (S802).
The CPU 101 of the VPN server 100 initializes the optimum candidate entry that is a variable (S804).
The CPU 101 of the VPN server 100 sets the current entry as a variable to the child of the root entry (S806).
After the initialization of the optimal candidate entry that is a variable and the setting of the current entry that is also a variable, the CPU 101 of the VPN server 100 performs a search loop process (S808). Details of this processing will be described with reference to FIG.

探索ループ処理の結果、VPNサーバ100のCPU101は、最適候補エントリが存在するか否かを判断する(S810)。
最適候補エントリが存在する場合は、VPNサーバ100のCPU101は、存在する最適候補エントリを転送先に設定する(S812)。
最適候補エントリが存在しない場合は、VPNサーバ100のCPU101は、転送先が存在しないと判断して処理を終える(S814)。
As a result of the search loop process, the CPU 101 of the VPN server 100 determines whether there is an optimum candidate entry (S810).
When the optimum candidate entry exists, the CPU 101 of the VPN server 100 sets the existing optimum candidate entry as the transfer destination (S812).
If there is no optimal candidate entry, the CPU 101 of the VPN server 100 determines that there is no transfer destination and ends the process (S814).

図14は、図13の探索ループ(S808)の詳細なフロー図である。以下に、探索ループ処理の詳細について説明する。
探索ループ処理のスタート(S902)の後、VPNサーバ100のCPU101は、現在エントリのIPアドレスの範囲にパケットのIPアドレスが含まれるか否かを判断する(S904)。
現在エントリのIPアドレスの範囲にパケットのIPアドレスが含まれている場合は、VPNサーバ100のCPU101は、現在エントリを最適候補エントリとする(S906)。
FIG. 14 is a detailed flowchart of the search loop (S808) of FIG. Details of the search loop process will be described below.
After the start of the search loop process (S902), the CPU 101 of the VPN server 100 determines whether the IP address of the packet is included in the range of the IP address of the current entry (S904).
When the IP address of the packet is included in the range of the IP address of the current entry, the CPU 101 of the VPN server 100 sets the current entry as the optimum candidate entry (S906).

次にVPNサーバ100のCPU101は、現在エントリのchildが存在するか否かを判断する(S908)。
現在エントリのchildが存在する場合は、現在エントリをそのchildに設定する(S910)。
現在エントリのIPアドレスの範囲にパケットのIPアドレスが含まれていない場合は、VPNサーバ100のCPU101は、現在エントリのnextが存在するか否かを判断する(S912)。
現在エントリのnextが存在する場合は、VPNサーバ100のCPU101は、現在エントリをそのnextへと設定する(S914)。
現在エントリのnextが存在しない場合は、VPNサーバ100のCPU101は、探索ループを終了する(S916)。
また、現在エントリのchildが存在しない場合は、VPNサーバ100のCPU101は、探索ループを終了する(S916)。
Next, the CPU 101 of the VPN server 100 determines whether or not a child of the current entry exists (S908).
If the child of the current entry exists, the current entry is set to that child (S910).
If the IP address of the packet is not included in the range of the IP address of the current entry, the CPU 101 of the VPN server 100 determines whether or not the next entry has a next (S912).
If there is a next entry next, the CPU 101 of the VPN server 100 sets the current entry to the next (S914).
When the next entry does not exist, the CPU 101 of the VPN server 100 ends the search loop (S916).
If there is no child of the current entry, the CPU 101 of the VPN server 100 ends the search loop (S916).

[最適候補エントリの探索処理フローの第2の実施例]
図15は、ソースIPアドレスルーティングテーブル102の最適候補エントリの探索処理の第2の実施例を示すフロー図である。
VPNサーバ100のCPU101は、パケットからソースIPアドレスを抽出する(S1002)。
VPNサーバ100のCPU101は、最適候補エントリを初期化する(S1004)。
変数である最適候補エントリの初期化を終えた後、VPNサーバ100のCPU101は、探索ループ処理を行う(S1006)。当該処理の詳細は図16で説明する。
[Second Example of Search Process Flow for Optimal Candidate Entry]
FIG. 15 is a flowchart showing a second embodiment of the optimum candidate entry search process of the source IP address routing table 102.
The CPU 101 of the VPN server 100 extracts the source IP address from the packet (S1002).
The CPU 101 of the VPN server 100 initializes the optimum candidate entry (S1004).
After completing the initialization of the optimal candidate entry that is a variable, the CPU 101 of the VPN server 100 performs a search loop process (S1006). Details of this processing will be described with reference to FIG.

探索ループ処理の結果、VPNサーバ100のCPU101は、最適候補エントリが存在するか否かを判断する(S1008)。
最適候補エントリが存在する場合は、VPNサーバ100のCPU101は、存在する最適候補エントリを転送先に設定する(S1010)。
最適候補エントリが存在しない場合は、VPNサーバ100のCPU101は、転送先が存在しないと判断して処理を終える(S1012)。
As a result of the search loop process, the CPU 101 of the VPN server 100 determines whether there is an optimum candidate entry (S1008).
When the optimal candidate entry exists, the CPU 101 of the VPN server 100 sets the existing optimal candidate entry as the transfer destination (S1010).
If there is no optimal candidate entry, the CPU 101 of the VPN server 100 determines that there is no transfer destination and ends the processing (S1012).

図16は、図15の探索ループ(S1006)の詳細なフロー図である。以下に、探索ループ処理の詳細について説明する。  FIG. 16 is a detailed flowchart of the search loop (S1006) of FIG. Details of the search loop process will be described below.

探索ループ処理のスタート(S1102)の後、VPNサーバ100のCPU101は、表の先頭エントリを走査対象とする。ここで表の先頭とは、IPアドレスを番号順に並べたIPアドレス空間上にエントリを配置した場合に若い番号となるエントリの意味である。  After the start of the search loop process (S1102), the CPU 101 of the VPN server 100 sets the first entry in the table as the scanning target. Here, the head of the table means an entry having a lower number when entries are arranged in an IP address space in which IP addresses are arranged in numerical order.

VPNサーバ100のCPU101は、走査対象となるエントリのIPアドレスの範囲に、パケットのIPアドレスが含まれるか否かを判断する(S1106)。
走査対象となるエントリのIPアドレスの範囲に、パケットのIPアドレスが含まれていない場合は、追って説明するS1116の処理を行う。
The CPU 101 of the VPN server 100 determines whether or not the IP address range of the entry to be scanned includes the IP address of the packet (S1106).
If the IP address range of the entry to be scanned does not include the IP address of the packet, the process of S1116 described later is performed.

VPNサーバ100のCPU101は、走査対象となるエントリのIPアドレスの範囲にパケットのIPアドレスが含まれる場合は、最適候補エントリが存在するか否かを判断する(S1108)。  When the IP address of the packet is included in the range of the IP address of the entry to be scanned, the CPU 101 of the VPN server 100 determines whether there is an optimum candidate entry (S1108).

VPNサーバ100のCPU101は、最適候補エントリが存在する場合は、最適候補エントリと走査対象となるエントリのIPアドレスの範囲を比較し、最適候補エントリが走査対象エントリよりも狭い範囲か否かを判断する(S1110)。
最適候補エントリのIPアドレスの範囲が走査対象エントリのIPアドレスの範囲よりも狭い範囲ではない場合は、追って説明するS1116の処理を行う。
If there is an optimum candidate entry, the CPU 101 of the VPN server 100 compares the optimum candidate entry with the IP address range of the entry to be scanned, and determines whether the optimum candidate entry is narrower than the entry to be scanned. (S1110).
If the IP address range of the optimum candidate entry is not narrower than the IP address range of the scan target entry, the process of S1116 described later is performed.

VPNサーバ100のCPU101は、最適候補エントリのIPアドレスの範囲が走査対象エントリのIPアドレスの範囲よりも狭い範囲となる場合は、走査対象エントリを最適候補エントリに設定する(S1112)。  When the IP address range of the optimal candidate entry is narrower than the IP address range of the scan target entry, the CPU 101 of the VPN server 100 sets the scan target entry as the optimal candidate entry (S1112).

VPNサーバ100のCPU101は、最適候補エントリが存在しなかった場合は、走査対象エントリを最適候補エントリに設定する(S1114)。  If the optimum candidate entry does not exist, the CPU 101 of the VPN server 100 sets the scan target entry as the optimum candidate entry (S1114).

S1106において走査対象となるエントリのIPアドレスの範囲にパケットのIPアドレスが含まれていない場合、S1110において最適候補エントリのIPアドレスの範囲が走査対象エントリのIPアドレスの範囲よりも狭い範囲ではない場合、S1112において走査対象エントリを最適候補エントリに設定した場合、およびS1114において走査対象エントリを最適候補エントリに設定した場合は、VPNサーバ100のCPU101は、走査対象が、ソースIPアドレスルーティングテーブルの表のIPアドレス順の末尾に達したか否かを判断する(S1116)。  When the IP address range of the entry to be scanned does not include the packet IP address in S1106, the IP address range of the optimum candidate entry is not narrower than the IP address range of the scan target entry in S1110 When the scan target entry is set as the optimal candidate entry in S1112, and when the scan target entry is set as the optimal candidate entry in S1114, the CPU 101 of the VPN server 100 determines that the scan target is the source IP address routing table table. It is determined whether or not the end of the IP address order has been reached (S1116).

VPNサーバ100のCPU101は、走査対象が、ソースIPアドレスルーティングテーブルの表のIPアドレス順の末尾に達した場合は探索ループ処理を終了する(S1118)。  The CPU 101 of the VPN server 100 ends the search loop process when the scan target reaches the end of the IP address order in the table of the source IP address routing table (S1118).

VPNサーバ100のCPU101は、走査対象が、ソースIPアドレスルーティングテーブルの表のIPアドレス順の末尾に達していない場合は、次のエントリを走査対象とした後に(S1129)、S1106の判断を再度行う。  If the scan target has not reached the end of the IP address order in the table of the source IP address routing table, the CPU 101 of the VPN server 100 makes the next entry the scan target (S1129) and then makes the determination in S1106 again. .

図17は、エントリ走査回数を示す説明図である。具体的には、図10のリンク構造を持つソースIPアドレスルーティングテーブルに対して、それぞれのエントリが選択されるまでに必要なエントリの走査回数、及びいずれのエントリも選択されないことが決まるまでに必要なエントリの走査回数を、本願方式によって処理する場合と、図10のリンク構造を持たない単純なルーティングテーブルによって処理する場合とで計算結果を比較した図である。  FIG. 17 is an explanatory diagram showing the number of entry scans. Specifically, for the source IP address routing table having the link structure shown in FIG. 10, it is necessary to determine the number of scans of entries required until each entry is selected and to determine that no entry is selected. FIG. 11 is a diagram comparing calculation results when the number of scans of a simple entry is processed according to the method of the present application and when processed by a simple routing table having no link structure in FIG. 10.

図18は、VPNサーバ100とVPNクライアントA乃至Cとの間でやりとりされるパケット構造を示すための説明図である。  FIG. 18 is an explanatory diagram for illustrating a packet structure exchanged between the VPN server 100 and the VPN clients A to C.

本願では、図2に示した一般的なEthernetフレームのパケットを用いてVPNの通信を行うことが可能である。しかし、より好適には、VPNクライアントがVPNサーバに対してVPNセッションを張る際に、一般的なEthernetフレームから図18に示した構造からなるパケットを作成してVPNの通信を行う。  In the present application, VPN communication can be performed using the packet of the general Ethernet frame shown in FIG. However, more preferably, when the VPN client establishes a VPN session with the VPN server, a packet having the structure shown in FIG. 18 is created from a general Ethernet frame to perform VPN communication.

IPヘッダ701とTCPヘッダ702は、VPNサーバとVPNクライアントの間でVPNの通信を行うために必要なIPアドレス等のデータを含むものである。  The IP header 701 and the TCP header 702 include data such as an IP address necessary for performing VPN communication between the VPN server and the VPN client.

データ断片703は、VPNサーバとVPNクライアントの間で運ばれるデータである。例えば、図2に示したEathernetフレームがデータ断片となる場合もある。この場合は、IPヘッダ701とTCPヘッダ702のいずれか又は双方が、Eathernetフレーム内のIPヘッダ、TCPヘッダをそのまま用いていてもよい。  Data fragment 703 is data carried between the VPN server and the VPN client. For example, the Ethernet frame shown in FIG. 2 may be a data fragment. In this case, either or both of the IP header 701 and the TCP header 702 may use the IP header and the TCP header in the Ethernet frame as they are.

また、データ断片703は、Eathernetを用いた通信のデータであれば、IPX、SNA、FNAのいずれのデータでもよい。更に、宛先不定のブロードキャストデータであってもよい。  The data fragment 703 may be any data of IPX, SNA, and FNA as long as it is data of communication using Ethernet. Furthermore, broadcast data with indefinite destination may be used.

図9〜図16の処理によれば、VPNサーバ101内のルーティングテーブルの効率的な構築が可能になるため、ルーティングテーブル走査の高速処理が可能となる。
また、ルーティングテーブルが小規模となるため、管理・運用のコストを安価とすることができる。
9 to 16 enables efficient construction of the routing table in the VPN server 101, so that high-speed processing of the routing table can be performed.
In addition, since the routing table is small, management and operation costs can be reduced.

また、本発明の目的は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。  Another object of the present invention is to supply a storage medium storing software program codes for realizing the functions of the above-described embodiments to a system or apparatus, and the computer of the system or apparatus (or CPU, MPU, or the like). Is also achieved by reading and executing the program code stored in the storage medium.

この場合、記憶媒体から読み出されたプログラムコード自体が前述した各実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。  In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code and the storage medium storing the program code constitute the present invention. .

また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW等の光ディスク、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。または、ネットワークを介してプログラムコードをダウンロードしてもよい。  Examples of the storage medium for supplying the program code include a floppy (registered trademark) disk, a hard disk, a magneto-optical disk, a CD-ROM, a CD-R, a CD-RW, a DVD-ROM, a DVD-RAM, and a DVD. An optical disc such as RW or DVD + RW, a magnetic tape, a nonvolatile memory card, a ROM, or the like can be used. Alternatively, the program code may be downloaded via a network.

また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけではなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。  Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an OS (Operating System) running on the computer based on the instruction of the program code Includes a case where the functions of the above-described embodiments are realized by performing part or all of the actual processing.

さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。  Furthermore, after the program code read from the storage medium is written to a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the expanded function is based on the instruction of the program code. This includes a case where a CPU or the like provided on the expansion board or the expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing.

以上、添付図面を参照しながら本発明の好適な実施の形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと解される。  The preferred embodiments of the present invention have been described in detail above with reference to the accompanying drawings, but the present invention is not limited to such examples. It is obvious that a person having ordinary knowledge in the technical field to which the present invention pertains can come up with various changes or modifications within the scope of the technical idea described in the claims. These are naturally understood to belong to the technical scope of the present invention.

100 VPNサーバ
101 CPU
102 VPNセッションテーブル
103 ソースIPアドレスルーティングテーブル
104 宛先アドレスを使用したルーティングテーブル
105 インターフェースA
106 インターフェースB
107 インターフェースC
108 記憶部
200 ルータ
200A ルータA
200B ルータB
200C ルータC
201 CPU
202 ルーティングテーブル
203 インターフェース
204 インターフェース
300 ISP
300A ISPA
300B ISPB
300C ISPC
400 ルータ
400A ルータD
400B ルータE
400C ルータF
500 VPNクライアント
500A VPNクライアントA
500B VPNクライアントB
500C VPNクライアントC
501 CPU
502 記憶部
503 インターフェース
504 インターフェース
600 端末
600A 端末A
600B 端末B
600C 端末C
701 IPヘッダ
702 TCPヘッダ
703 データ断片
100 VPN server 101 CPU
102 VPN session table 103 source IP address routing table 104 routing table 105 using destination address interface A
106 Interface B
107 Interface C
108 Storage unit 200 Router 200A Router A
200B Router B
200C Router C
201 CPU
202 Routing table 203 Interface 204 Interface 300 ISP
300A ISPA
300B ISPB
300C ISPC
400 router 400A router D
400B Router E
400C Router F
500 VPN client 500A VPN client A
500B VPN client B
500C VPN client C
501 CPU
502 storage unit 503 interface 504 interface 600 terminal 600A terminal A
600B Terminal B
600C Terminal C
701 IP header 702 TCP header 703 Data fragment

Claims (5)

中央処理装置と、
少なくとも2以上のインターフェースと、
各インターフェースに付与されたインターフェースIPアドレスを記憶する記憶部と、
ソースIPアドレスに基づいて経路制御を行うための第1のルーティングテーブルと、
宛先IPアドレスに基づいて経路制御を行うための第2のルーティングテーブルと、を備え、
前記中央処理装置は、1のインターフェースから受信した、転送対象となるパケットのソースIPアドレスをキーにして、前記第1のルーティングテーブルを検索し、前記インターフェースIPアドレスに対応する前記インターフェースを特定できる場合は、特定した前記インターフェースIPアドレスと前記インターフェースを用いて通信を行い、
前記インターフェースIPアドレスに対応する前記インターフェースを特定できない場合は、前記第2のルーティングテーブルと、1のインターフェースから受信した宛先IPアドレスとに基づいて、特定した前記インターフェースIPアドレスと前記インターフェースを用いて通信を行う、
情報処理装置。
A central processing unit;
At least two interfaces,
A storage unit for storing an interface IP address assigned to each interface;
A first routing table for routing based on a source IP address;
A second routing table for performing route control based on the destination IP address,
When the central processing unit can identify the interface corresponding to the interface IP address by searching the first routing table using the source IP address of the packet to be transferred received from one interface as a key Communicates with the specified interface IP address and the interface,
If the interface corresponding to the interface IP address cannot be specified, communication is performed using the specified interface IP address and the interface based on the second routing table and the destination IP address received from one interface. I do,
Information processing device.
前記第1のルーティングテーブルには、IPアドレスグループのリンク情報を有し、
前記中央処理装置は、前記リンク情報に基づいて、前記インターフェースIPアドレスと対応する前記インターフェースを特定する、
請求項1に記載の情報処理装置。
The first routing table has IP address group link information;
The central processing unit identifies the interface corresponding to the interface IP address based on the link information.
The information processing apparatus according to claim 1.
前記中央処理装置は、
前記IPアドレスグループと他のIPアドレスグループとを、IPアドレスを番号順に並べた場合に、いずれかのIPアドレスグループが上位若しくは下位にある、またはIPアドレスの範囲が広い若しくは狭い、と判断することができる、
請求項1に記載の情報処理装置。
The central processing unit is
When the IP address group and the other IP address groups are arranged in the numerical order, it is determined that one of the IP address groups is higher or lower, or the IP address range is wide or narrow. Can
The information processing apparatus according to claim 1.
前記情報処理装置は、VPNサーバであり、
前記インターフェースは、VPNクライアントと接続されており、
前記通信はVPNによる通信である、
請求項2に記載の情報処理装置。
The information processing apparatus is a VPN server,
The interface is connected to a VPN client;
The communication is communication by VPN.
The information processing apparatus according to claim 2.
コンピュータを、
各インターフェースに付与されたインターフェースIPアドレスを記憶する記憶部と、
ソースIPアドレスに基づいて経路制御を行うための第1のルーティングテーブルと、少なくとも2以上のインターフェースのうち1のインターフェースから受信した、転送対象となるパケットのソースIPアドレスをキーにして前記第1のルーティングテーブルを検索し、前記インターフェースIPアドレスに対応する前記インターフェースを特定できる場合は、特定した前記インターフェースIPアドレスと前記インターフェースを用いて通信を行い、
前記インターフェースIPアドレスに対応する前記インターフェースを特定できない場合は、宛先IPアドレスに基づいて経路制御を行うための第2のルーティングテーブルと、1のインターフェースから受信した宛先IPアドレスとに基づいて、特定した前記インターフェースIPアドレスと前記インターフェースを用いて通信を行う通信部、
として機能させるためのプログラム。
Computer
A storage unit for storing an interface IP address assigned to each interface;
The first routing table for performing path control based on the source IP address and the first IP address of the packet to be transferred received from one of at least two interfaces as a key. When the routing table is searched and the interface corresponding to the interface IP address can be specified, communication is performed using the specified interface IP address and the interface,
When the interface corresponding to the interface IP address cannot be identified, the interface is identified based on the second routing table for performing route control based on the destination IP address and the destination IP address received from one interface. A communication unit that communicates using the interface IP address and the interface;
Program to function as.
JP2010095430A 2010-03-31 2010-03-31 Information processing apparatus, program, information processing method, and information processing system Active JP5589210B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010095430A JP5589210B2 (en) 2010-03-31 2010-03-31 Information processing apparatus, program, information processing method, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010095430A JP5589210B2 (en) 2010-03-31 2010-03-31 Information processing apparatus, program, information processing method, and information processing system

Publications (2)

Publication Number Publication Date
JP2011217336A JP2011217336A (en) 2011-10-27
JP5589210B2 true JP5589210B2 (en) 2014-09-17

Family

ID=44946571

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010095430A Active JP5589210B2 (en) 2010-03-31 2010-03-31 Information processing apparatus, program, information processing method, and information processing system

Country Status (1)

Country Link
JP (1) JP5589210B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014171970A (en) * 2013-03-08 2014-09-22 Japan Enviro Chemicals Ltd Adsorbent
JP7478658B2 (en) 2020-12-22 2024-05-07 エルジー ディスプレイ カンパニー リミテッド Optical deflection element, display device and imaging device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3963690B2 (en) * 2001-03-27 2007-08-22 富士通株式会社 Packet relay processor
JP2003092586A (en) * 2001-09-18 2003-03-28 Fujitsu Ltd Layer 2-VPN relay system
JP3668731B2 (en) * 2002-10-29 2005-07-06 株式会社Crcソリューションズ Virtual private network (VPN) system and relay node
JP4401942B2 (en) * 2004-12-08 2010-01-20 株式会社日立コミュニケーションテクノロジー Packet transfer device and communication network

Also Published As

Publication number Publication date
JP2011217336A (en) 2011-10-27

Similar Documents

Publication Publication Date Title
US12021925B1 (en) Network neighborhoods for establishing communication relationships between communication interfaces in an administrative domain
EP3342127B1 (en) Network packet flow controller with extended session management
EP3198822B1 (en) Computer network packet flow controller
US20190215270A1 (en) Stateful load balancing in a stateless network
US20210036953A1 (en) Flow modification including shared context
US7656872B2 (en) Packet forwarding apparatus and communication network suitable for wide area Ethernet service
US20170346709A1 (en) Link Status Monitoring Based on Packet Loss Detection
US10091099B2 (en) Session continuity in the presence of network address translation
US7139840B1 (en) Methods and apparatus for providing multiple server address translation
WO2017209923A1 (en) Detecting source network address translation in a communication system
EP3753200A1 (en) Service related routing method and apparatus
US7447221B2 (en) Communication apparatus
WO2017209943A1 (en) Reverse forwarding information base enforcement
CN107948150B (en) Message forwarding method and device
JP5589210B2 (en) Information processing apparatus, program, information processing method, and information processing system
JP6007644B2 (en) COMMUNICATION DEVICE, PROGRAM, AND ROUTING METHOD
JP5816872B2 (en) Information processing apparatus, program, information processing method, and information processing system
JP4357310B2 (en) Communication method and communication apparatus for simultaneous connection to a plurality of networks
CN102340444A (en) Locator identifier (ID) separation message packaging and forwarding method and system
WO2024239686A1 (en) Information processing method and apparatus
CN117640512A (en) Communication method and device
JP2006261768A (en) COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM
JP2005252522A (en) Packet update device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130325

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140708

R150 Certificate of patent or registration of utility model

Ref document number: 5589210

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250