JP4724636B2 - Protocol processing system and protocol processing method - Google Patents
Protocol processing system and protocol processing method Download PDFInfo
- Publication number
- JP4724636B2 JP4724636B2 JP2006275662A JP2006275662A JP4724636B2 JP 4724636 B2 JP4724636 B2 JP 4724636B2 JP 2006275662 A JP2006275662 A JP 2006275662A JP 2006275662 A JP2006275662 A JP 2006275662A JP 4724636 B2 JP4724636 B2 JP 4724636B2
- Authority
- JP
- Japan
- Prior art keywords
- protocol
- packet
- header
- destination
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Communication Control (AREA)
Description
本発明は、IETFのRFC791に基づくIPv4又はRFC2460に基づくIPv6プロトコル処理におけるトンネリングプロトコルにおけるカプセリング及びデカプセリングに好適なプロトコル処理システム及びプロトコル処理方法等に関する。 The present invention relates to a protocol processing system and a protocol processing method suitable for encapsulation and decapsulation in a tunneling protocol in IPv4 protocol processing based on IPv4 or RFC2460 based on RFC791 of IETF.
複数の拠点間を接続するネットワークを構築する場合、近年までは第一種電気通信業者が提供する専用線(Private Network)を拠点間毎に契約して網を構築することが一般的であった。 When constructing a network that connects multiple bases, until recently, it was common to construct a network by contracting a private line provided by a first-class telecommunications carrier for each base. .
しかし、インターネットの普及に伴いインターネット網における通信コストが劇的に低下したことにより、専用線サービスがインターネット網の通信コストに対して割高となった。そこで、インターネット網を利用して専用線の代替とするVPN(Virtual Private Network)技術が登場した。従来の専用線に対して帯域の保証はされないが、通信コストを効果的に削減できる技術として注目されている。 However, with the spread of the Internet, the communication cost in the Internet network has drastically decreased, so that the leased line service has become more expensive than the communication cost of the Internet network. Therefore, VPN (Virtual Private Network) technology has been introduced that uses the Internet network to replace dedicated lines. Bandwidth is not guaranteed for conventional leased lines, but has attracted attention as a technology that can effectively reduce communication costs.
一方、通信サービスを受ける側としても、多くの場合、それぞれのメインフレームに依存した通信プロトコルが使用されていない。パーソナルコンピュータ(PC)等の多くのコンピュータで使用されているTCP(UDP)/IPが使用される場合、即ちIP網を使用する場合が多い。 On the other hand, in many cases, a communication service depending on each mainframe is not used as a communication service receiving side. In many cases, TCP (UDP) / IP used in many computers such as a personal computer (PC) is used, that is, an IP network is used.
これら複数のコンピュータを複数の拠点間に接続する場合、そのままインターネット網に接続してもネットワークが成立するが、多くの企業情報が流れることを考慮すると、少なくともペイロードを暗号化する必要が生じてくる。また、企業ネットワークとして網を構築する場合は拠点間であれ、インターネット網に依存した構造を持たせることは、設計上の制約となるので好ましくない。 When these multiple computers are connected between multiple bases, the network is established even if they are connected to the Internet as they are, but considering that a lot of company information flows, at least the payload must be encrypted. . Further, when constructing a network as a corporate network, it is not preferable to have a structure depending on the Internet network, even if it is between bases, because it becomes a design constraint.
そこで、企業内で利用しているIP網を暗号化した上でさらにIPでカプセリングすることで、インターネット網を使用しているにもかかわらず専用IP網のように使用するVPN、即ちIP−VPNが使用される。IPsec−VPNを用いたネットワークの構成例を図12に示す。 Therefore, by encrypting the IP network used in the company and then encapsulating it with IP, the VPN that is used like a dedicated IP network even though the Internet network is used, that is, IP-VPN Is used. A configuration example of a network using IPsec-VPN is shown in FIG.
図12では拠点Client1〜5及び拠点Server1〜2がIP−VPN Gatewayを介してインターネットに接続されている。また、インターネットに接続したリモート端末経由のアクセスや、VPN Client端末からInternet Serverへのアクセス等があることを示している。図12においてインターネットに直接接続している機器、即ちInternet Server、Remote Terminal、IP−VPN Gateway1〜4にはインターネットのグローバルIPアドレスが割り当てられている。これらの機器間の通信にはこのグローバルIPアドレスが使用されている。また、VPN−Gatewayを介して接続しているVPN−Server1〜2、VPN−Client1〜5は同一のIPサブネットが割り当てられており、VPNを構成することが可能である。更に、VPN−Gateway2はProxyServerも兼ねておりVPNを構成している機器のインターネットへのアクセスを制御している。 In FIG. 12, the sites Client 1 to 5 and the sites Server 1 to 2 are connected to the Internet via the IP-VPN Gateway. It also indicates that there is access via a remote terminal connected to the Internet, access from a VPN Client terminal to the Internet Server, and the like. In FIG. 12, global IP addresses of the Internet are assigned to devices directly connected to the Internet, that is, Internet Server, Remote Terminal, and IP-VPN Gateways 1 to 4. This global IP address is used for communication between these devices. In addition, VPN-Servers 1-2 and VPN-Clients 1-5 connected via the VPN-Gateway are assigned the same IP subnet and can constitute a VPN. Further, the VPN-Gateway 2 also serves as a Proxy Server, and controls access to the Internet of devices constituting the VPN.
このような構成に於いて、IP−VPN Gateway1〜4は相互にIPSecTunnelingプロトコルを用い通信しているが、VPN−Client1〜5は特にIPSecの存在を意識することなくVPN機器間の通信を行うことができる。 In such a configuration, the IP-VPN Gateways 1 to 4 communicate with each other using the IPSec Tunneling protocol, but the VPN-Clients 1 to 5 perform communication between VPN devices without being particularly aware of the existence of IPSec. Can do.
ここで、IP−VPN Gateway2からIP−VPN Gateway3へのVPN−Tunnel1を経由した通信について詳細を述べる。VPN−Tunnel1のケースではVPN−Client2→IP−VPN Gateway2→インターネット→IP−VPN Gateway→VPN Client3の経路でアクセスしている。 Details of communication from the IP-VPN Gateway 2 to the IP-VPN Gateway 3 via the VPN-Tunnel 1 will be described. In the case of VPN-Tunnel 1, access is made through a route of VPN-Client 2 → IP-VPN Gateway 2 → Internet → IP-VPN Gateway → VPN Client 3.
VPN−Tunnel1の場合のアクセス経路中のパケットフォーマットを図13に示す。VPN−Client2→VPN−Gateway2間のアクセスに於いてはIPヘッダとペイロードから構成される(L2のEtherヘッダは省略。以下同じ)最も単純なIPフォーマットで通信が行われている。ここで付与されるIP Header1のIPアドレスにはIP−VPN Gateway2内部のローカルなIPアドレスが割り当てられる。最も単純なIPトンネリングプロトコルの場合、最初に割り当てられたIP Header1の外側にインターネットで使用されるIPアドレスが割り当てられたIP Header2を更に付与することで実現される。 A packet format in the access path in the case of VPN-Tunnel 1 is shown in FIG. In the access between VPN-Client 2 and VPN-Gateway 2, communication is performed in the simplest IP format including an IP header and a payload (the Ether header of L 2 is omitted; the same applies hereinafter). A local IP address in the IP-VPN Gateway 2 is assigned to the IP address of the IP header 1 assigned here. In the case of the simplest IP tunneling protocol, it is realized by further adding IP Header 2 to which an IP address used in the Internet is assigned outside IP Header 1 assigned first.
この場合、インターネット上での経路上においてIP Header1やPayloadの詳細を観察することが可能で、しかも経路上で偽のパケットで通信を試みることも容易である。そこで、盗聴を防ぐ意味で暗号技術が、偽造を防ぐ意味で認証技術が用いられる。IPSecを処理するIP−VPN Gatewayではどの宛先のIPパケットにどのような暗号−認証アルゴリズムを適用するかが定義されている。認証+暗号を用いるトンネリングモードのIPSecヘッダフォーマットを図13に示す。元のIPヘッダとペイロードはESP Trailerと併せて暗号化されるため、復号鍵がない限りインターネット上では元のIPパケットを類推することが困難となる。また、新たに作成されたIPヘッダとAHヘッダ、ESPヘッダが認証されるために、インターネット上でのパケットの改竄が困難となる。 In this case, it is possible to observe details of IP Header 1 and Payload on the route on the Internet, and it is also easy to try communication with a fake packet on the route. Therefore, encryption technology is used to prevent eavesdropping, and authentication technology is used to prevent counterfeiting. In the IP-VPN Gateway for processing IPSec, it is defined what encryption-authentication algorithm is applied to which destination IP packet. FIG. 13 shows the IPSec header format of the tunneling mode using authentication + encryption. Since the original IP header and payload are encrypted together with the ESP Trailer, it is difficult to analogize the original IP packet on the Internet unless there is a decryption key. Further, since the newly created IP header, AH header, and ESP header are authenticated, it becomes difficult to tamper the packet on the Internet.
このように、インターネット上でのパケットの安全性を高めた上でIP−VPN Gateway間の通信が行われるため、高度な攻撃が行われたとしても、その攻撃に見合った暗号−認証アルゴリズムを用いることで専用線と同等の安全性が提供できる。 As described above, since the communication between the IP and VPN gateways is performed after improving the packet security on the Internet, even if an advanced attack is performed, an encryption-authentication algorithm suitable for the attack is used. Therefore, safety equivalent to that of dedicated lines can be provided.
パケット受信側のIP−VPN Gateway3では、IP−VPN Gateway2で付与されたIPヘッダ、AH、ESPヘッダ及びESP Trailer、認証データが取り除かれる。そして、元のIPヘッダとペイロードが復号された上でVPN−Client3に渡される。 In the IP-VPN Gateway 3 on the packet receiving side, the IP header, AH, ESP header, ESP Trailer, and authentication data added in the IP-VPN Gateway 2 are removed. Then, the original IP header and payload are decrypted and passed to VPN-Client3.
このように通信することでVPN−Client2とVPN−Client3間におけるIP通信はIP−VPN Gatewayやインターネットの存在を意識することが無く同じサブネット上のコンピュータとして扱うことが可能となる。 By communicating in this way, IP communication between VPN-Client 2 and VPN-Client 3 can be handled as computers on the same subnet without being aware of the existence of IP-VPN Gateway or the Internet.
このようなアクセスはServer−Client間も同様でVPN−Tunnel2に於けるVPN−Client5→VPN−Server1のVPN−Gatewayも同様の働きをする。 Such access is the same between the server and the client, and the VPN-Gateway of VPN-Client5 → VPN-Server1 in VPN-Tunnel2 also works in the same way.
しかし、インターネット上の端末であるRemoteClientからVPN内にアクセスするためにはRemoteClient側にVPN−Gatewayと同等の動作を行わせる必要がある。そのため、このような端末ではVPN内のネットワーク情報とインターネット上でのネットワーク情報の2つの情報を管理し、それぞれのIPヘッダを作成してカプセリングする必要がある。 However, in order to access the VPN from RemoteClient, which is a terminal on the Internet, it is necessary to cause the RemoteClient side to perform an operation equivalent to VPN-Gateway. Therefore, it is necessary for such a terminal to manage two pieces of information, that is, network information in the VPN and network information on the Internet, and create and encapsulate each IP header.
また、RFC2661ではデータリンク層に於けるTunnelingプロトコルとしてL2TPが提案されている。このプロトコルはPPTPプロトコルとL2Fプロトコルを基にしてIETFが統合・策定したプロトコルでInternetへのアクセスに対してIPアドレスの割り当てやユーザの認証を行いVPNを構築するためのプロトコルである。L2TPでは送信しようとする基のIPデータグラムの前にPPP(Point to Point Protocol)ヘッダが付与される。このPPPは元となるIPデータグラムのカプセリング、リンク制御(LCP:Link Control Protocol)、ネットワーク制御(NCP:Network Control Protocols)から構成されている。リンク制御には、データリンク層接続の確立、設定、検査等が含まれ、ネットワーク制御には、ネットワーク層プロトコル接続の確立や設定等が含まれる。更に、PPPヘッダの前にはL2TPヘッダが付与される。L2TPヘッダはセッションID、トンネルID、送受信シーケンス番号などが記述されており、複数のVPN経路を持つことが可能となっている。最後に元の送信フレームとPPPヘッダ、L2TPヘッダをUDP(Port:1701)でカプセリングしてトンネリング用のIPヘッダをつける。 RFC2661 proposes L2TP as a Tunneling protocol in the data link layer. This protocol is a protocol integrated and formulated by the IETF based on the PPTP protocol and the L2F protocol, and is a protocol for constructing a VPN by assigning an IP address and authenticating a user for accessing the Internet. In L2TP, a PPP (Point to Point Protocol) header is added before an IP datagram to be transmitted. This PPP is composed of encapsulation of the original IP datagram, link control (LCP: Link Control Protocol), and network control (NCP: Network Control Protocols). Link control includes establishment, setting, inspection, etc. of data link layer connection, and network control includes establishment, setting, etc. of network layer protocol connection. Furthermore, an L2TP header is added before the PPP header. The L2TP header describes a session ID, tunnel ID, transmission / reception sequence number, and the like, and can have a plurality of VPN paths. Finally, the original transmission frame, PPP header, and L2TP header are encapsulated by UDP (Port: 1701), and a tunneling IP header is attached.
このようにしてユーザ認証と組み合わせることによってリモートクライアントからのアクセスに対してもVPNを提供することが可能となる。 By combining with user authentication in this way, it becomes possible to provide a VPN for access from a remote client.
L2TPとしては暗号化機能が提供されていないため、通常はL2TPにIPSecのトランスポートモードを用いることによってトンネルの秘匿性を確保する。L2TPで用いられるフォーマットを図14に示す。 Since the encryption function is not provided as L2TP, the secrecy of the tunnel is usually secured by using the IPSec transport mode for L2TP. A format used in L2TP is shown in FIG.
以上のようなトンネリングプロトコルを典型的な従来に於けるプロトコル処理システム(図15)で実現するためには一番外側のTCP(UDP)/IPヘッダの作成は可能である。しかし、トンネリングされたプロトコルのハードウェア化は困難である。また、プロトコルプロセッサをシーケンシャルに接続してトンネリングプロトコルに対応することは可能ではあるがプロトコルフォーマットを動的に変えることは難しく、柔軟性に欠けるシステムといえる。 In order to realize the above tunneling protocol by a typical conventional protocol processing system (FIG. 15), it is possible to create the outermost TCP (UDP) / IP header. However, it is difficult to make a tunneled protocol hardware. In addition, although it is possible to connect the protocol processors sequentially to support the tunneling protocol, it is difficult to dynamically change the protocol format and it can be said that the system lacks flexibility.
図16にIPSecトンネリングプロトコルに対応したプロトコル処理システムの例を示す。ここではTCP(UDP)/IPプロトコルプロセッサとMAC装置の間にIP/IPSecプロトコルプロセッサを挿入し、IPSecのトンネリングプロトコルを実現している。 FIG. 16 shows an example of a protocol processing system corresponding to the IPSec tunneling protocol. Here, an IPSec tunneling protocol is realized by inserting an IP / IPsec protocol processor between the TCP (UDP) / IP protocol processor and the MAC device.
上記従来例に見られるプロトコル処理システムまたは方法では以下のような問題点がある。即ち、IPSec トンネリングモードやL2TPでは、プロトコルのトンネリング又はカプセリングのためにIP層等、同じレイヤが多重化される場合、これらの様々なプロトコルフォーマットに対応するハードウェアを構成することが困難である。つまり、このような構成をしようとすると、ハード規模が増大し、柔軟性に乏しいシステムになってしまう。 The protocol processing system or method found in the above conventional example has the following problems. In other words, in the IPSec tunneling mode and L2TP, when the same layer such as the IP layer is multiplexed for protocol tunneling or encapsulation, it is difficult to configure hardware corresponding to these various protocol formats. In other words, when such a configuration is attempted, the hardware scale increases and the system becomes inflexible.
本発明は上記問題点を解決するためになされたもので、TCP(UDP)/IPプロトコルの生成および解析を行うTCP(UDP)/IP プロトコルプロセッサと、プロトコルプロセッサが作成したパケットを一時的に保持し、保持したパケットを予め指示された宛先デバイスへ転送することが出来る通信バッファと、前記予め指示された宛先デバイスに対応したプロトコル情報を格納した複数のプロトコルデータベースと、リンク層の処理を行うMAC装置と、ペイロードやヘッダ情報の伝送を行うDMA制御装置と、上位アプリケーションやプロトコル制御プログラムを実行させるためのCPUと、前記CPUのプログラムの実体や、パケット情報を格納するためのシステムメモリから構成されるプロトコル処理システムであって、前記プロトコルプロセッサに各レイヤのヘッダ作成指示を与える際に作成済みパケットの宛先指示を与えることによって、プロトコルプロセッサは宛先に応じたプロトルコデータベースへの検索を行ってヘッダを作成すると共に、作成終了したパケット情報を宛先指示に基づきMAC出力するか、又はシステムメモリ中の任意のアドレスへ書き戻すことを特徴とするプロトコル処理システム等、を提供する。 The present invention has been made to solve the above problems, and temporarily holds a TCP (UDP) / IP protocol processor for generating and analyzing a TCP (UDP) / IP protocol and a packet created by the protocol processor. A communication buffer capable of transferring the held packet to a destination device designated in advance, a plurality of protocol databases storing protocol information corresponding to the destination device designated in advance, and a MAC performing link layer processing Device, a DMA control device for transmitting payload and header information, a CPU for executing a host application and a protocol control program, a substance of the CPU program, and a system memory for storing packet information A protocol processing system, The protocol processor creates a header by searching the protocol database according to the destination by giving the destination instruction of the created packet when giving the header creation instruction of each layer to the protocol processor. Provided is a protocol processing system or the like that outputs MAC of packet information based on a destination instruction or writes it back to an arbitrary address in a system memory.
本発明によれば、プロトコル処理システムに於いてメディアに出力する前段に通信バッファを設け、通信バッファから他の装置への出力手段、他の装置からの入力手段を設けることでIPトンネリングプロトコルに柔軟に対応することが可能となる。
このことからIPSecにおけるトランスポートモードなどにおけるプロトコルフォーマットなど様々なトンネリングプロトコルの処理が可能となる。
According to the present invention, in the protocol processing system, a communication buffer is provided before output to the medium, and an output means from the communication buffer to another device and an input means from another device are provided, so that the IP tunneling protocol is flexible It becomes possible to cope with.
This makes it possible to process various tunneling protocols such as a protocol format in the transport mode in IPSec.
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
(第1の実施形態)
先ず、本発明の第1の実施形態について説明する。図1は本発明の概念に基づく一実施形態を示すプロトコル処理システムを含むプロトコル処理装置送受信部の構成例を示したものである。
(First embodiment)
First, a first embodiment of the present invention will be described. FIG. 1 shows an example of the configuration of a protocol processor transmission / reception unit including a protocol processing system showing an embodiment based on the concept of the present invention.
図1において、101はTCP(UDP)/IPのプロトコルプロセッサである。102は101で作成したパケットを位置に保存し、任意の宛先へ送信することができ、又はMACが受信したパケットを一次保存し、101のプロトコルプロセッサに伝送するための通信バッファである。103はパケットの送信元、宛先もしくはレイヤに応じたプロトコルのための各種データベース、104はリンク層の処理を行うMAC装置、105はヘッダやペイロードの転送を行うためのDMAC装置である。106は上位層のアプリケーションプログラムの実行や各層のプロトコル制御を行うためのCPUである。107は前記CPUのアプリケーションの実体やプロトコル制御プログラムが格納されるシステムメモリ、108は各種デバイスが相互に接続されるための共有バスである。
In FIG. 1,
図3は本発明の請求項1の概念に基づく一実施形態を示すプロトコル処理システムに用いられる送信パケットディスクリプタである。送信パケットディスクリプタはシステムメモリ内に蓄積されているパケットの一部、又は全部を構成するものを示すもので、データの先頭アドレス、データ長、送信先、送信パケットディスクリプタの連結情報等から構成される。 FIG. 3 is a transmission packet descriptor used in the protocol processing system showing an embodiment based on the concept of claim 1 of the present invention. The transmission packet descriptor indicates what constitutes a part or all of the packet stored in the system memory, and is composed of data start address, data length, transmission destination, transmission packet descriptor connection information, and the like. .
プロトコル処理システムにおける解析情報やパケット情報等が格納されるもので、格納先の先頭アドレス、データ長の他、使用プロトコル等から構成される。 Analysis information, packet information, and the like in the protocol processing system are stored. The information includes a start address of the storage destination, a data length, and a used protocol.
さて、上記プロトコル処理システムにおいてペイロードを送信、受信する場合についてそれぞれ説明する。先ず、送信したいペイロードがシステムメモリ上に存在したとする。 Now, a case where a payload is transmitted and received in the protocol processing system will be described. First, assume that the payload to be transmitted exists in the system memory.
図4に示すようにシステムメモリ上に送信したいペイロード(payload1、payload2、payload3)が夫々Address A、Address B、Address Cを先頭とするアドレスに断片化して配置されていたとする。この条件下で、これらのペイロードをひとまとめにしてパケットとして送信する場合、送信パケットディスクリプタにそれぞれの断片領域の送信アドレス、データ長、宛先、リンク情報を一連の送信パケットディスクリプタとして記述する。 As shown in FIG. 4, it is assumed that payloads (payload1, payload2, and payload3) to be transmitted are fragmented and arranged at addresses starting with Address A, Address B, and Address C on the system memory. When these payloads are transmitted together as a packet under these conditions, the transmission address, data length, destination, and link information of each fragment area are described as a series of transmission packet descriptors in the transmission packet descriptor.
送信アドレスフィールドにはシステムメモリが管理しているアドレス情報が、断片化されたパケットの先頭アドレスが記述される。続いてその先頭アドレスからの長さがデータ長フィールドに、宛先フィールドにはプロトコルプロセッサで生成したパケットが通信バッファを経て送られるデバイス名を記述する。 In the transmission address field, address information managed by the system memory is described, and the head address of the fragmented packet is described. Subsequently, the length from the head address is described in the data length field, and the destination field describes the device name to which the packet generated by the protocol processor is sent via the communication buffer.
リンク情報にはそのディスクリプタに続くディスクリプタが存在する場合には“Next”、存在しない場合には“End”を記述する。即ち、先頭又は“End”が記述された次のディスクリプタから、次の“End”が記述されたディスクリプタまでがひとつのパケットを構成する送信パケットディスクリプタとなる。 In the link information, “Next” is described when a descriptor following the descriptor exists, and “End” is described when it does not exist. That is, a transmission packet descriptor that constitutes one packet is from the next descriptor in which the head or “End” is described to the descriptor in which the next “End” is described.
メモリマップと、送信されるパケット、送信パケットディスクリプタテーブルの対応を図5に示す。 FIG. 5 shows the correspondence between the memory map, the transmitted packet, and the transmission packet descriptor table.
パケットとして構成するために先頭のディスクリプタにはヘッダ領域を記述する。但し、101プロトコルプロセッサで全てのヘッダを作成する場合にはヘッダ領域は省略される場合がある。続いて、送信されるパケットのペイロードが分割して記述する。分割されていない場合はひとつのディスクリプタを記述するのみで充分である。このようにして送信パケットディスクリプタテーブルを106CPUが読み取り、それぞれのディスクリプタに対して107システムメモリから101プロトコルプロセッサにDMAを行うように105DMACを106CPUが制御する。 In order to configure as a packet, a header area is described in the first descriptor. However, when all headers are created by the 101 protocol processor, the header area may be omitted. Subsequently, the payload of the packet to be transmitted is divided and described. If it is not divided, it is sufficient to describe only one descriptor. In this way, the 106 CPU reads the transmission packet descriptor table, and the 106 CPU controls the 105 DMAC so that DMA is performed from the 107 system memory to the 101 protocol processor for each descriptor.
その際、システムメモリ上のヘッダ又はペイロードと共に、ディスクリプタの構成要件である宛先フィールドも併せてプロトコルプロセッサ101に送信する。リンク情報“End”のディスクリプタまで送信が終了すると、プロトコルプロセッサ101は宛先に合わせたプロトコルデータベース103を参照しながらヘッダを作成してゆく。ヘッダの作成が終了すると、通信バッファ102にパケットとして送信し、予め決められた宛先へ送信する。図1に示した例では、リンク層制御装置であるMAC104又はシステムメモリ上の領域へと転送される。
At this time, the destination field which is a constituent element of the descriptor is also transmitted to the
この最初にプロトコルプロセッサを経由したパケットは図6に示すように一連のIP Header−TCP(UDP)Header及びpayloadから構成される単純なIP Packetである。 The packet that first passes through the protocol processor is a simple IP packet composed of a series of IP Header-TCP (UDP) header and payload as shown in FIG.
続いてカプセリングプロトコルを適用する場合の送信パケットディスクリプタの記述方式について説明する。IPカプセリングプロトコルを適用したパケットを作成するためのメモリマップ、パケットフォーマットおよび送信パケットディスクリプタテーブルに付いて説明した図7を示す。この例ではすでにHeadedとpayloadからなるパケットがメモリマップ上にイメージされている。4行目までの送信パケットディスクリプタテーブルから分かるように、図5で示したパケット作成事例では4行目までの宛先がMACになっているが、図7の例ではAdrs Eとなっている。 Next, a description method of a transmission packet descriptor when the encapsulation protocol is applied will be described. FIG. 7 illustrates a memory map, a packet format, and a transmission packet descriptor table for creating a packet to which an IP encapsulation protocol is applied. In this example, a packet composed of “Headed” and “payload” is already imaged on the memory map. As can be seen from the transmission packet descriptor table up to the 4th line, the destination up to the 4th line is MAC in the packet creation example shown in FIG. 5, but it is Adrs E in the example of FIG.
図7のディスクリプタの4行目までの実行が終了すると、同図のメモリマップで示したAddress E上にプロトコルプロセッサで作成されたHeaderとPayload1〜3から構成されるIP Packetが転送される。次にディスクリプタの5行目と6行目で新たなHeader’とpayloadとしてパケットの作成対象としている。 When the execution up to the fourth line of the descriptor of FIG. 7 is completed, the IP packet composed of Header and Payloads 1 to 3 created by the protocol processor is transferred onto Address E shown in the memory map of FIG. Next, in the 5th and 6th lines of the descriptor, packets are created as new Header 'and payload.
これらを再度、プロトコルプロセッサ101に転送し、通信バッファ上に展開されたパケットフォーマットが図8に示すカプセリングパケットフォーマットとなる。このようにして送信パケットディスクリプタの記述のみでカプセリングの有無などのパケットフォーマットが定義することが可能である。
These are transferred again to the
次に受信時の振る舞いについて詳細に記述する。PHY(不図示)がメディアからパケットを受信すると、MAC104に転送され、リンク層に於ける処理を行った後に通信バッファ102に転送される。通信バッファ102では受信したパケット情報と受信元のデバイス情報と共にプロトコルプロセッサ101に転送される。プロトコルプロセッサ101では受信元のデバイス情報があるためにメディアからのパケットであるということが認識されるために、それに適合したプロトコルデータベース103を参照することができる。プロトコルの解析が終了すると、プロトコルプロセッサ101はCPU106に対して割り込みをかけて通知するか、又はCPU106からの問い合わせに対して受信パケットが到着したことを通知する。CPU106は、通知を受けると、プロトコルプロセッサ101に到着したパケット長やプロトコル情報を受け取り、受信パケットディスクリプタに記述する。
Next, we will describe in detail the behavior during reception. When a PHY (not shown) receives a packet from the media, the packet is transferred to the
受信パケットディスクリプタテーブルの例を図9に示す。受信パケットディスクリプタは受信したパケット毎に処理が実行するためにひとつの受信パケットでひとつの受信パケットディスクリプタで記述される。図9の受信パケットディスクリプタの例ではテーブルの1行目ではカプセリングされていないためにMACから受信されたパケットはプロトコルプロセッサ101の解析結果と共に上位層に渡される。
An example of the received packet descriptor table is shown in FIG. The received packet descriptor is described by one received packet descriptor with one received packet in order to execute processing for each received packet. In the example of the received packet descriptor in FIG. 9, since the packet is not encapsulated in the first row of the table, the packet received from the MAC is passed to the upper layer together with the analysis result of the
しかしながら、2行目のディスクリプタで記述された受信パケットは最初に解析されて抽出されたHeaderを取り除いた上で、再度、プロトコルプロセッサ101で解析するために、通信バッファ102へ転送される。その際に送信元はAddress Hから最初の解析で抽出されたHeaderを取り除いたAddress H'として受信元が設定されて通信バッファに転送される。
However, the received packet described by the descriptor in the second line is transferred to the
再びプロトコルプロセッサ101にかけられたペイロードは受信元がMACではなく、Address H’であることから、異なるプロトコルデータベースが選択され、そのデータベースに基づいた処理が行われる。このようにしてカプセリングされた受信パケットに於いても柔軟な解析が可能となる。
Since the payload applied to the
(第2の実施形態)
第1の実施形態では単純なカプセリングプロトコルについて説明を行ったが、実際にカプセリングプロトコルが使用されるVPN等のケースにおいては、従来例で説明したようにIPSec等のセキュリティプロトコルが適用される場合が多い。
(Second Embodiment)
In the first embodiment, a simple encapsulation protocol has been described. However, in the case of a VPN or the like in which the encapsulation protocol is actually used, a security protocol such as IPSec may be applied as described in the conventional example. Many.
これは、カプセリングされたパケットはインターネット等の公衆ネットワークを使用して伝送するためである。つまり、ネットワーク上に悪意又は偶然によりカプセリングされたパケットを送受信する可能性が否定できないため、パケットを暗号化又は認証することで通信を確実なものとする。 This is because the encapsulated packet is transmitted using a public network such as the Internet. In other words, since the possibility of sending / receiving a packet that is encapsulated maliciously or accidentally on the network cannot be denied, communication is ensured by encrypting or authenticating the packet.
図2にTCP(UDP)/IPプロトコルプロセッサとは別にIPSecプロトコルプロセッサを接続したブロック図を示す。図2の構成では第1の実施形態におけるブロック図から、更にIPSecプロトコルプロセッサ209を通信バッファと共有バスの間に接続している。IPSecプロトコルプロセッサ209はSecurity Policy DataBase210を送信相手毎に複数持ち、それぞれに合わせた暗号方式、認証方式をとることができる。
FIG. 2 shows a block diagram in which an IPSec protocol processor is connected separately from the TCP (UDP) / IP protocol processor. In the configuration of FIG. 2, an
IPSecでは、AH(Authentication Header)ヘッダとESP(Encrypt Security Payload)ヘッダという2種類のヘッダがIPパケットに追加される。この2種類のヘッダの適用方法により、IPSec(AH)、IPSec(ESP)、IPSec(AH+ESP)の3つの動作モードが存在し、それぞれにトランスポートモードとトンネリングモードが存在する。AHヘッダは認証ヘッダともよばれ、IPパケット全体にわたってパケットの確実性を保証する。ESPヘッダはペイロードの暗号化の他に認証の機能も持っており、暗号化と同時にESPヘッダ以降の認証が可能である。 In IPSec, two types of headers, an AH (Authentication Header) header and an ESP (Encrypt Security Payload) header, are added to an IP packet. There are three operation modes, IPSec (AH), IPSec (ESP), and IPSec (AH + ESP), according to these two types of header application methods, and each has a transport mode and a tunneling mode. The AH header is also called an authentication header, and guarantees the authenticity of the packet over the entire IP packet. The ESP header has an authentication function in addition to the encryption of the payload, and authentication after the ESP header is possible simultaneously with the encryption.
ESP認証を行った場合は認証データとしてパケット末尾にESP Authentication Dataを付加する。AH+ESPで認証+暗号化する場合はESPの認証機能を使用しないのでパケット末尾の認証データ:Authentication Dataは付加しない。IPSec(ESP)ではペイロード以降の暗号化及び認証であるために、TCP(UDP)/IPプロトコルプロセッサに処理をかける以前にペイロードの暗号、認証処理を行うため、本実施例における処理フローとは直接に関与しないため省略する。 When ESP authentication is performed, ESP Authentication Data is added to the end of the packet as authentication data. When authenticating and encrypting with AH + ESP, the authentication function of ESP: Authentication Data is not added because the ESP authentication function is not used. Since IPSec (ESP) is encryption and authentication after the payload, the encryption and authentication processing of the payload is performed before processing the TCP (UDP) / IP protocol processor, so the processing flow in this embodiment is directly Omitted because it is not involved in
次に、図2のプロトコル処理システムに於いてIPSecパケットの送信までの手順について説明する。 Next, the procedure up to the transmission of the IPSec packet in the protocol processing system of FIG. 2 will be described.
先ず、IPSecにおけるトランスポートモードに於けるAHヘッダを作成する場合の送信パケットディスクリプタの例を図10に示す。内容的には第一の実施の形態で述べた図5の例とほぼ同一であるが、生成パケットの宛先がIPSec(AH)となっている。この場合、一旦作成したIPパケットは全てIPSecプロトコルプロセッサ209に転送され、AHヘッダが作成される。既に元となるIPパケットは通信バッファ202に蓄積されているのでIPSecプロトコルプロセッサ209からAHヘッダを通信バッファ202に転送することでトランスポートモードにおけるIPSec(AH)パケットの送出ができる。
First, FIG. 10 shows an example of a transmission packet descriptor when creating an AH header in the transport mode in IPSec. Although the contents are almost the same as the example of FIG. 5 described in the first embodiment, the destination of the generated packet is IPSec (AH). In this case, all the once created IP packets are transferred to the
トンネリングモード(AH)の場合はIPトンネリングの動作に先のIPSec(AH)の作成手順を重ねるだけである。このため、図11に示した送信パケットディスクリプタのように、先ず、1〜4行目まででトンネリングプロトコルを実行するディスクリプタを記述する。次に、新IPヘッダのディスクリプタ、最後に1〜4行目までのディスクリプタで作成したIPパケットをペイロードとしてこれらのカプセリングIPパケットをIPSecプロトコルプロセッサに転送する。このため、5、6行目のディスクリプタの宛先をIPSec(AH)とする。 In the case of the tunneling mode (AH), only the previous IPSec (AH) creation procedure is overlapped with the IP tunneling operation. Therefore, like the transmission packet descriptor shown in FIG. 11, first, a descriptor for executing the tunneling protocol is described in the first to fourth lines. Next, these encapsulation IP packets are transferred to the IPSec protocol processor using the IP packets created by the descriptor of the new IP header and finally the descriptors of the first to fourth lines as the payload. For this reason, the destination of the descriptor on the fifth and sixth lines is set to IPSec (AH).
これにより、IPSecプロトコルプロセッサ209において、IPSec(AH)の処理が行われる。そして、TCP(UDP)/IPプロトコルプロセッサで行った処理と同様に宛先IPアドレスに応じたSecurity Policy Databaseを使用して宛先に応じた認証アルゴリズムを使用することができる。その結果、作成されたAHヘッダは通信バッファ202へ転送され、トンネリングのためのIP Header’、AHヘッダに続いてトンネルされるIP Packetが出力される。
Accordingly, IPSec (AH) processing is performed in the
以上、説明したようにIPSec(AH)においてTCP(UDP)/IPプロトコルプロセッサが他のプロトコルプロセッサと協調してトンネリングプロトコルを処理する動作について説明した。本実施形態においても第1の実施形態よりさらに通信バッファにおけるIP Packetの入出力先をディスクリプタで制御することで柔軟にトンネリングプロトコルに対応できる。 As described above, the operation in which the TCP (UDP) / IP protocol processor processes the tunneling protocol in cooperation with other protocol processors in IPSec (AH) has been described. Also in this embodiment, the tunneling protocol can be flexibly handled by controlling the input / output destination of the IP packet in the communication buffer by the descriptor more than in the first embodiment.
なお、上述した実施の形態以外にもIPv6やL2TPなどの様々なトンネリングプロトコルについて対応プロトコルプロセッサを搭載して実施したものも本発明の範疇に含まれる。 In addition to the above-described embodiment, various tunneling protocols such as IPv6 and L2TP are implemented by implementing a corresponding protocol processor, and are also included in the scope of the present invention.
なお、本発明の実施形態は、例えばコンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びプログラムプロダクトは、本発明の範疇に含まれる。 The embodiment of the present invention can be realized by, for example, a computer executing a program. Also, means for supplying a program to a computer, for example, a computer-readable recording medium such as a CD-ROM recording such a program, or a transmission medium such as the Internet for transmitting such a program is also applied as an embodiment of the present invention. Can do. The above program can also be applied as an embodiment of the present invention. The above program, recording medium, transmission medium, and program product are included in the scope of the present invention.
101:TCP(UDP)/IPプロトコルプロセッサ
102:通信バッファ
103:プロトコルデータベース
104:MAC(リンク層制御装置)
105:DMAC
106:CPU
107:システムメモリ
108:共有バス
201:TCP(UDP)/IPプロトコルプロセッサ
202:通信バッファ
203:プロトコルデータベース
204:MAC(リンク層制御装置)
205:DMAC
206:CPU
207:システムメモリ
208:共有バス
209:IPSecプロトコルプロセッサ
210:セキュリティポリシーデータベース
101: TCP (UDP) / IP protocol processor 102: Communication buffer 103: Protocol database 104: MAC (link layer control device)
105: DMAC
106: CPU
107: System memory 108: Shared bus 201: TCP (UDP) / IP protocol processor 202: Communication buffer 203: Protocol database 204: MAC (link layer controller)
205: DMAC
206: CPU
207: System memory 208: Shared bus 209: IPSec protocol processor 210: Security policy database
Claims (6)
前記プロトコルプロセッサが作成したパケットを一時的に保持し、保持したパケットを予め指示された宛先デバイスへ転送することができる通信バッファと、
前記予め指示された宛先デバイスに対応したプロトコル情報を格納した複数のプロトコルデータベースと、
リンク層の処理を行うMAC装置と、
ヘッダ情報の伝送を行うDMA制御装置と、
プロトコル制御プログラムを実行させるためのCPUと、
前記CPUのプログラムの実体及びパケット情報を格納するためのシステムメモリと、
を有するプロトコル処理システムであって、
前記プロトコルプロセッサに各レイヤのヘッダ作成指示を与える際に作成済みパケットの宛先指示を与えることによって、プロトコルプロセッサは宛先に応じたプロトルコデータベースへの検索を行ってヘッダを作成すると共に、作成終了したパケット情報を宛先指示に基づきMAC出力するか、又はシステムメモリ中の任意のアドレスへ書き戻すことを特徴とするプロトコル処理システム。 A protocol processor for generating and analyzing TCP (UDP) / IP protocols;
A communication buffer capable of temporarily holding a packet created by the protocol processor and transferring the held packet to a destination device designated in advance;
A plurality of protocol databases storing protocol information corresponding to the pre-designated destination device;
A MAC device that performs link layer processing;
A DMA controller for transmitting header information;
A CPU for executing a protocol control program;
A system memory for storing the CPU program entity and packet information;
A protocol processing system comprising:
By giving the destination instruction of the created packet when giving the header creation instruction of each layer to the protocol processor, the protocol processor creates a header by searching the protocol database according to the destination and finishes the creation. A protocol processing system characterized in that packet information is MAC output based on a destination instruction or written back to an arbitrary address in the system memory.
前記プロトコルプロセッサに各レイヤのヘッダ作成指示を与える際に作成済みパケットの宛先指示を与える工程と、
前記プロトコルプロセッサは宛先に応じたプロトルコデータベースへの検索を行ってヘッダを作成する工程と、
作成終了したパケット情報を宛先指示に基づきMAC出力するか、又はシステムメモリ中の任意のアドレスへ書き戻す工程と、
を有することを特徴とするプロトコル処理方法。 A protocol processor for generating and analyzing a TCP (UDP) / IP protocol, and a communication buffer capable of temporarily holding a packet created by the protocol processor and transferring the held packet to a destination device designated in advance A plurality of protocol databases storing protocol information corresponding to the destination device designated in advance, a MAC device that performs link layer processing, a DMA control device that transmits header information, and a protocol control program A protocol processing method in a protocol processing system having a CPU and a system memory for storing an entity of the CPU program and packet information,
Providing a destination instruction for a created packet when giving a header creation instruction for each layer to the protocol processor;
The protocol processor creates a header by performing a search to a professional database according to a destination;
A step of outputting the created packet information based on the destination instruction by MAC or writing it back to an arbitrary address in the system memory;
A protocol processing method characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006275662A JP4724636B2 (en) | 2006-10-06 | 2006-10-06 | Protocol processing system and protocol processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006275662A JP4724636B2 (en) | 2006-10-06 | 2006-10-06 | Protocol processing system and protocol processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008098782A JP2008098782A (en) | 2008-04-24 |
JP4724636B2 true JP4724636B2 (en) | 2011-07-13 |
Family
ID=39381205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006275662A Expired - Fee Related JP4724636B2 (en) | 2006-10-06 | 2006-10-06 | Protocol processing system and protocol processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4724636B2 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1141317A (en) * | 1997-07-17 | 1999-02-12 | Nec Eng Ltd | Method and system for controlling protocol |
JP4033059B2 (en) * | 2003-07-04 | 2008-01-16 | 富士電機リテイルシステムズ株式会社 | Protocol switching device and vending machine |
JP4470641B2 (en) * | 2004-08-12 | 2010-06-02 | 株式会社Kddi研究所 | VPN management server, VPN setting system, method, and program for VPN management server |
JP4282620B2 (en) * | 2005-02-28 | 2009-06-24 | 株式会社東芝 | Communication device, router device, communication method, and communication program |
JP4279792B2 (en) * | 2005-03-17 | 2009-06-17 | ソフトバンクテレコム株式会社 | Communication control system and method |
-
2006
- 2006-10-06 JP JP2006275662A patent/JP4724636B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008098782A (en) | 2008-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10708245B2 (en) | MACsec for encrypting tunnel data packets | |
JP4712861B2 (en) | Incompatible transport security protocol | |
CN109150688B (en) | IPSec VPN data transmission method and device | |
US9369550B2 (en) | Protocol for layer two multiple network links tunnelling | |
Miltchev et al. | A study of the relative costs of network security protocols | |
US10044841B2 (en) | Methods and systems for creating protocol header for embedded layer two packets | |
JP4346094B2 (en) | Packet encryption processing proxy device | |
EP1328105B1 (en) | Method for sending a packet from a first IPsec client to a second IPsec client through a L2TP tunnel | |
JP5746446B2 (en) | Network node with network-attached stateless security offload device | |
US9769116B2 (en) | Encapsulating traffic while preserving packet characteristics | |
CN108964880A (en) | A kind of data transmission method and device | |
JP2008035300A (en) | Packet encryption processor and packet encryption processing method | |
CN107306198B (en) | Message forwarding method, device and system | |
CN105471827A (en) | Message transmission method and device | |
JP4679393B2 (en) | SIP communication system, SIP gateway apparatus, and SIP communication control method used therefor | |
JP3491828B2 (en) | Closed network connection system, closed network connection method, recording medium storing a processing program therefor, and hosting service system | |
JP3947521B2 (en) | Communication device | |
US8646066B2 (en) | Security protocol control apparatus and security protocol control method | |
JP4724636B2 (en) | Protocol processing system and protocol processing method | |
JP4630296B2 (en) | Gateway device and authentication processing method | |
JP4933286B2 (en) | Encrypted packet communication system | |
CN100592265C (en) | Method, system and computer system for guaranteeing communication safety by route packet quantity | |
CN114338116B (en) | Encryption transmission method and device and SD-WAN network system | |
CN116527405A (en) | SRV6 message encryption transmission method and device and electronic equipment | |
JP5131118B2 (en) | Communication system, management device, relay device, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091006 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110223 |
|
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: 20110405 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110411 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140415 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |