JP7779396B2 - Information processing device and packet processing method - Google Patents

Information processing device and packet processing method

Info

Publication number
JP7779396B2
JP7779396B2 JP2024538628A JP2024538628A JP7779396B2 JP 7779396 B2 JP7779396 B2 JP 7779396B2 JP 2024538628 A JP2024538628 A JP 2024538628A JP 2024538628 A JP2024538628 A JP 2024538628A JP 7779396 B2 JP7779396 B2 JP 7779396B2
Authority
JP
Japan
Prior art keywords
packet
software
arp
processing
virtual
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
JP2024538628A
Other languages
Japanese (ja)
Other versions
JPWO2024029050A1 (en
Inventor
浩輝 加納
伸也 河野
克真 宮本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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 Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2024029050A1 publication Critical patent/JPWO2024029050A1/ja
Application granted granted Critical
Publication of JP7779396B2 publication Critical patent/JP7779396B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/113Arrangements for redundant switching, e.g. using parallel planes
    • H04L49/118Address processing within a device, e.g. using internal ID or tags for routing within a switch

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、情報処理装置及びパケット処理方法に関する。 The present invention relates to an information processing device and a packet processing method.

ネットワーク機器の機能を汎用サーバの仮想化基盤上でソフトウェア(VM:Virtual machine)として実装する方式(NFV:Network Function Virtualization)が存在する。 There is a method (NFV: Network Function Virtualization) in which the functions of network equipment are implemented as software (VM: Virtual machine) on a general-purpose server virtualization platform.

NFV技術は、物理的な機器の集約を行えることから設備コストを低減させることができるため、既に様々なサービスで活用されている。 NFV technology is already being used in a variety of services because it allows for the consolidation of physical equipment, thereby reducing capital costs.

例えば、NFVは、異なるネットワーク間の接続を行うGatewayを仮想化したVirtual Gatewayとして汎用サーバを機能させる。 For example, NFV allows a general-purpose server to function as a virtual gateway, which is a virtualized gateway that connects different networks.

NFVでは、ネットワークのパケットがCPUによって処理されているが、CPUの処理性能が低いため、トラヒック量が増えてくると1台のサーバでは収容しきれず、複数のサーバを準備する必要がある。これにより、設備コストや消費電力が増加する。 In NFV, network packets are processed by the CPU, but because the CPU's processing performance is low, when traffic volume increases, a single server cannot accommodate it all, and multiple servers must be prepared. This increases equipment costs and power consumption.

そこで、ハードウェア(H/W)アクセラレータにCPUの苦手な処理をオフロードすることで転送性能を向上させる技術が提案されている。 Therefore, a technology has been proposed to improve transfer performance by offloading processing that the CPU is not good at to a hardware (H/W) accelerator.

既存技術でのオフロード方式としては、例えば、
・全ての処理をH/Wアクセラレータにオフロードする方式(以下、「方式1」という。)
(2)汎用サーバ上でソフトウェアとH/Wアクセラレータがインラインに連携する方式(以下、「方式2」という。)
等がある。
Examples of offloading methods using existing technology include:
A method in which all processing is offloaded to a hardware accelerator (hereinafter referred to as "method 1")
(2) A method in which software and hardware accelerators are integrated inline on a general-purpose server (hereinafter referred to as "Method 2").
etc.

KORONA, Mateusz, et al.、"FPGA implementation of IPsec protocol suite for multigigabit networks"、In: 2017 International Conference on Systems, Signals and Image Processing (IWSSIP). IEEE, 2017. p. 1-5KORONA, Mateusz, et al., "FPGA implementation of IPsec protocol suite for multigigabit networks", In: 2017 International Conference on Systems, Signals and Image Processing (IWSSIP). IEEE, 2017. p. 1-5 LI, Xiaoyao, et al.、"DHL: Enabling flexible software network functions with FPGA acceleration"、 In: 2018 IEEE 38th International Conference on Distributed Computing Systems (ICDCS). IEEE, 2018. p. 1-11LI, Xiaoyao, et al., "DHL: Enabling flexible software network functions with FPGA acceleration", In: 2018 IEEE 38th International Conference on Distributed Computing Systems (ICDCS). IEEE, 2018. p. 1-11 "Advanced Networking and Security for the Most Demanding Cloud and Data Center Workloads"、[online]、[令和4年6月22日検索]、インターネット<URL:https://nvdam.widen.net/s/qpszhmhpzt/networking-overal-dpu-datasheet-connectx-6-dx-smartnic-1991450>"Advanced Networking and Security for the Most Demanding Cloud and Data Center Workloads", [online], [Retrieved June 22, 2022], Internet <URL: https://nvdam.widen.net/s/qpszhmhpzt/networking-overal-dpu-datasheet-connectx-6-dx-smartnic-1991450>

方式1では、全ての処理をハードウェアで実施するため高性能(効率的)である一方、ハードウェアはリソース量の制限が厳しいため多くの機能を搭載できない(例えば、ARPや冗長化等の機能を複数持てない)という欠点が有る。 Method 1 is high-performance (efficient) because all processing is performed by hardware, but it has the disadvantage that it cannot be equipped with many functions due to strict resource limitations on hardware (for example, it cannot have multiple functions such as ARP or redundancy).

方式2では、高負荷処理のみをハードウェアアクセラレータに処理させるので効率的にも見えるが、全てのパケットが一度ソフトウェアを通過するため、処理速度がソフトウェアに依存してしまう欠点が有る。 Method 2 appears to be efficient because only high-load processing is handled by the hardware accelerator, but it has the disadvantage that processing speed depends on the software because all packets pass through the software once.

本発明は、上記の点に鑑みてなされたものであって、パケットに関する処理について効率性と柔軟性とのバランスを向上させることを目的とする。 The present invention has been made in consideration of the above points and aims to improve the balance between efficiency and flexibility in packet processing.

そこで上記課題を解決するため、情報処理装置は、パケットを受信する集積回路を有し、前記集積回路は、前記パケットの送信元及び宛先に基づいて、前記パケットに対する処理をソフトウェアに実行させるか否かを判定し、前記処理を前記ソフトウェアに実行させる場合に前記パケットを前記ソフトウェアに転送するように構成されている振分部と、前記振分部が前記処理を前記ソフトウェアに実行させないと判定した場合に、前記パケットに対する処理を実行するように構成されている処理部と、前記処理部が処理したパケットを転送するように構成されている転送部と、を含前記集積回路と前記ソフトウェアとのIPアドレス及びMACアドレスは異なっており、前記振分部は、前記処理を前記ソフトウェアに実行させる場合に前記パケットの宛先MACアドレスを前記ソフトウェアのMACアドレスに書き換えるように構成されている

Therefore, in order to solve the above problem, an information processing device has an integrated circuit that receives packets, and the integrated circuit includes a distribution unit that is configured to determine whether or not to have software execute processing on the packet based on the source and destination of the packet, and to forward the packet to the software if the software is to execute the processing, a processing unit that is configured to execute processing on the packet if the distribution unit determines not to have the software execute the processing, and a forwarding unit that is configured to forward the packet processed by the processing unit, and the IP addresses and MAC addresses of the integrated circuit and the software are different, and the distribution unit is configured to rewrite the destination MAC address of the packet to the MAC address of the software when the software is to execute the processing .

パケットに関する処理について効率性と柔軟性とのバランスを向上させることができる。 It improves the balance between efficiency and flexibility in packet processing.

本発明の実施の形態におけるネットワーク構成例を示す図である。FIG. 1 is a diagram illustrating an example of a network configuration according to an embodiment of the present invention. 本発明の実施の形態における汎用サーバ10のハードウェア構成例を示す図である。FIG. 2 is a diagram illustrating an example of a hardware configuration of a general-purpose server 10 according to an embodiment of the present invention. ネットワーク機器としての汎用サーバ10の構成の概要を説明するための図である。FIG. 1 is a diagram for explaining an outline of the configuration of a general-purpose server 10 as a network device. ネットワーク機器としての汎用サーバ10の構成の概要の変形例を説明するための図である。FIG. 10 is a diagram for explaining a modified example of the general configuration of a general-purpose server 10 as a network device. 第1の実施の形態(接続方式1)を説明するための図である。FIG. 1 is a diagram for explaining a first embodiment (connection method 1). 第1の実施の形態において対向装置20-1が転送するパケットのヘッダの一例を示す図である。FIG. 10 is a diagram showing an example of a header of a packet transferred by an opposing device 20-1 in the first embodiment. 第1の実施の形態におけるマッチングテーブルの構成例を示す図である。FIG. 4 is a diagram illustrating an example of a configuration of a matching table according to the first embodiment. 宛先MACアドレスの書き換え後の受信パケットの一例を示す図である。FIG. 10 is a diagram illustrating an example of a received packet after the destination MAC address has been rewritten. 第2の実施の形態(接続方式2)を説明するための図である。FIG. 10 is a diagram for explaining a second embodiment (connection method 2). 第2の実施の形態において対向装置20-1が転送するパケットのヘッダの一例を示す図である。FIG. 11 is a diagram showing an example of a header of a packet transferred by an opposing device 20-1 in the second embodiment. 第2の実施の形態におけるマッチングテーブルの構成例を示す図である。FIG. 11 is a diagram illustrating an example of a configuration of a matching table according to the second embodiment. 第4の実施の形態においてH/Wアクセラレータ12が受信パケットの振分先として判定された場合にARP(ARP-2)に関して実行される処理手順の一例を説明するためのシーケンス図である。FIG. 13 is a sequence diagram illustrating an example of a processing procedure executed for ARP (ARP-2) when the H/W accelerator 12 is determined as a destination of a received packet in the fourth embodiment. 第4の実施の形態において仮想GW11が受信パケットの振分先として判定された場合にARP(ARP-2)に関して実行される処理手順の一例を説明するためのシーケンス図である。FIG. 13 is a sequence diagram illustrating an example of a processing procedure executed for ARP (ARP-2) when the virtual GW 11 is determined as a destination of a received packet in the fourth embodiment. 第5実施の形態における仮想GW11の機能構成例を示す図である。FIG. 13 is a diagram illustrating an example of a functional configuration of a virtual GW 11 according to a fifth embodiment. 第5の実施の形態においてH/Wアクセラレータ12が受信パケットの振分先として判定された場合にARP(ARP-3)に関して実行される処理手順の一例を説明するためのシーケンス図である。FIG. 13 is a sequence diagram illustrating an example of a processing procedure executed for ARP (ARP-3) when the H/W accelerator 12 is determined as a destination of a received packet in the fifth embodiment. 第5の実施の形態において仮想GW11が受信パケットの振分先として判定された場合にARP(ARP-3)に関して実行される処理手順の一例を説明するためのシーケンス図である。FIG. 20 is a sequence diagram illustrating an example of a processing procedure executed for ARP (ARP-3) when the virtual GW 11 is determined as a destination of a received packet in the fifth embodiment.

以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるネットワーク構成例を示す図である。図1において、汎用サーバ10は、異なるネットワークN1及びネットワークN2の間を接続するネットワーク機器(Gatewayを仮想化したVirtual Gateway)として機能する汎用的な1以上コンピュータである。 The following describes an embodiment of the present invention based on the drawings. Figure 1 shows an example of a network configuration in an embodiment of the present invention. In Figure 1, the general-purpose server 10 is one or more general-purpose computers that function as a network device (a virtual gateway) that connects the different networks N1 and N2.

端末30-1及び端末30-2は、通信の末端(始点又は終点)となる装置であり、汎用サーバ10から見ていずれか一方がパケットの転送元となり他方がパケットの転送先となる。但し、転送元及び転送先は通信の進行に応じて入れ替わる。本実施の形態では、端末30-1が転送元であり、端末30-2が転送先である場合について説明する。 Terminals 30-1 and 30-2 are devices that serve as the end points (starting point or ending point) of the communication, and from the perspective of the general-purpose server 10, one of them is the source of the packet and the other is the destination of the packet. However, the source and destination switch roles as the communication progresses. In this embodiment, we will explain the case where terminal 30-1 is the source and terminal 30-2 is the destination.

対向装置20-1及び対向装置20-2は、ネットワークN1又はネットワークN2において汎用サーバ10に隣接するノードである。例えば、対向装置20-1及び対向装置20-2は、L3ルータである。 The opposing devices 20-1 and 20-2 are nodes adjacent to the general-purpose server 10 in network N1 or network N2. For example, the opposing devices 20-1 and 20-2 are L3 routers.

図2は、本発明の実施の形態における汎用サーバ10のハードウェア構成例を示す図である。図2の汎用サーバ10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105及びH/Wアクセラレータ12等を有する。 Figure 2 is a diagram showing an example of the hardware configuration of a general-purpose server 10 in an embodiment of the present invention. The general-purpose server 10 in Figure 2 has a drive device 100, an auxiliary storage device 102, a memory device 103, a CPU 104, an interface device 105, and a H/W accelerator 12, all of which are interconnected by a bus B.

汎用サーバ10での処理を実現するプログラムは、CD-ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。 The program that realizes processing on the general-purpose server 10 is provided by a recording medium 101 such as a CD-ROM. When the recording medium 101 storing the program is inserted into the drive device 100, the program is installed from the recording medium 101 to the auxiliary storage device 102 via the drive device 100. However, the program does not necessarily have to be installed from the recording medium 101; it may be downloaded from another computer via a network. The auxiliary storage device 102 stores the installed program as well as necessary files, data, etc.

メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って汎用サーバ10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。 When an instruction to start a program is received, the memory device 103 reads and stores the program from the auxiliary storage device 102. The CPU 104 executes functions related to the general-purpose server 10 in accordance with the program stored in the memory device 103. The interface device 105 is used as an interface for connecting to a network.

H/Wアクセラレータ12は、CPU104が実行する処理の一部のオフロード先のハードウェアアクセラレータ(集積回路)である。例えば、FPGA(field-programmable gate array)又はASIC(Application Specific Integrated Circuit)等がH/Wアクセラレータ12として用いられてもよい。 The H/W accelerator 12 is a hardware accelerator (integrated circuit) to which some of the processing executed by the CPU 104 is offloaded. For example, an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit) may be used as the H/W accelerator 12.

図3は、ネットワーク機器としての汎用サーバ10の構成の概要を説明するための図である。図3に示されるように、H/Wアクセラレータ12と1以上の仮想GW11が汎用装置をネットワーク機器として機能させる。 Figure 3 is a diagram illustrating the general configuration of a general-purpose server 10 as a network device. As shown in Figure 3, a H/W accelerator 12 and one or more virtual GWs 11 enable the general-purpose device to function as a network device.

H/Wアクセラレータ12は、図2において説明した通りである。 The H/W accelerator 12 is as described in Figure 2.

仮想GW11は、NFV(Network Functions Virtualization)技術を用いたソフトウェア(プログラム)によって実現される仮想的なゲートウェイであり、その実体は、汎用サーバ10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。図3には、仮想GW11-1と仮想GW11-2(以下、それぞれを区別しない場合「仮想GW11」という。)との2つの仮想GW11が示されているが、仮想GW11は1つであってもよいし、3つ以上であってもよい。 The virtual GW11 is a virtual gateway implemented by software (programs) using NFV (Network Functions Virtualization) technology, and is implemented by the CPU 104 executing one or more programs installed on the general-purpose server 10. Figure 3 shows two virtual GW11s, virtual GW11-1 and virtual GW11-2 (hereinafter referred to as "virtual GW11" when not distinguishing between them), but there may be one virtual GW11, or three or more virtual GW11s.

図3において、H/Wアクセラレータ12と各仮想GW11とは、仮想L2ブリッジで接続され、通信可能である。 In Figure 3, the H/W accelerator 12 and each virtual GW 11 are connected by a virtual L2 bridge and are capable of communication.

図3に示されるように、H/Wアクセラレータ12は、振分部121、B処理部122、ルーティング部123、ARP処理部124及びARPテーブル125、並びにポート126-1及びポート126-2を有する。これら各部は、H/Wアクセラレータ12を構成する回路によって実現される。ポート126-1は、対向装置20-1に接続されるポートである。ポート126-2は、対向装置20-2に接続されるポートである。 As shown in FIG. 3, the H/W accelerator 12 has a distribution unit 121, a B processing unit 122, a routing unit 123, an ARP processing unit 124, an ARP table 125, and ports 126-1 and 126-2. Each of these units is realized by a circuit that constitutes the H/W accelerator 12. Port 126-1 is a port connected to the opposing device 20-1. Port 126-2 is a port connected to the opposing device 20-2.

振分部121は、ポート126-1によって受信される、対向装置20-1からのパケット(以下、「受信パケット」という。)に対する処理を、H/Wアクセラレータ12又は仮想GW11に振り分けるための処理を実行する。 The distribution unit 121 performs processing to distribute packets (hereinafter referred to as "received packets") from the opposing device 20-1 received by port 126-1 to the H/W accelerator 12 or the virtual GW 11.

B処理部122は、H/Wアクセラレータ12に振り分けられた受信パケットに対してH/Wアクセラレータ12にオフロードされた処理(以下、「B処理」という。)を実行する。 The B processing unit 122 performs processing offloaded to the H/W accelerator 12 (hereinafter referred to as "B processing") on received packets assigned to the H/W accelerator 12.

ルーティング部123は、H/Wアクセラレータ12に振り分けられた受信パケットについてルーティングを行う。 The routing unit 123 routes received packets assigned to the H/W accelerator 12.

ARP処理部124は、H/Wアクセラレータ12に振り分けられた受信パケットについてARPに基づく処理(IPアドレスからMACアドレスを取得する処理)を実行する。ARPテーブル125は、IPアドレスとMACアドレスとを対応付けて記憶する。 The ARP processing unit 124 performs ARP-based processing (processing to obtain a MAC address from an IP address) on received packets assigned to the H/W accelerator 12. The ARP table 125 stores IP addresses and MAC addresses in association with each other.

一方、仮想GW11は、A処理部111、ルーティング部112、ARP処理部113及びARPテーブル114等を有する。これら各部は、仮想GW11に含まれるため、汎用サーバ10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。 On the other hand, the virtual GW 11 has an A processing unit 111, a routing unit 112, an ARP processing unit 113, an ARP table 114, etc. Since each of these units is included in the virtual GW 11, they are realized by processing in which one or more programs installed on the general-purpose server 10 are executed by the CPU 104.

A処理部111は、仮想GW11に振り分けられた受信パケットに対してB処理とは異なる或る処理(以下、「A処理」という。)を実行する。 The A processing unit 111 performs a certain processing (hereinafter referred to as "A processing") different from the B processing on the received packets allocated to the virtual GW 11.

ルーティング部112は、仮想GW11に振り分けられた受信パケットについて、ルーティング部123と同様の処理(ルーティング)を行う。ARP処理部113は、仮想GW11に振り分けられた受信パケットについてARP処理部124と同様の処理AR(IPアドレスからMACアドレスを取得する処理)を実行する。ARPテーブル114は、IPアドレスとMACアドレスとを対応付けて記憶する。 The routing unit 112 performs the same processing (routing) as the routing unit 123 on received packets allocated to the virtual GW 11. The ARP processing unit 113 performs the same processing AR (processing to obtain a MAC address from an IP address) as the ARP processing unit 124 on received packets allocated to the virtual GW 11. The ARP table 114 stores IP addresses and MAC addresses in association with each other.

本実施の形態では、各受信パケットに対してA処理及びB処理のいずれかが実行される状況が想定されている。このうち、A処理をソフトウェアである仮想GW11が担い、B処理がハードウェアであるH/Wアクセラレータ12にオフロードされる。ハードウェアの方がソフトウェアよりも高性能に処理を実行可能であるため、例えば、B処理はA処理よりも優先度が高い処理や、複雑な(高負荷な)処理であってもよい。例えば、A処理の一例は、IPsecのセッション確立時の処理(IKE(Internet Key Exchage))である。B処理の一例は、IPsecのセッション確立後に通信される主信号パケットの暗号化及び復号化や、カプセル化ヘッダのencap及びdecapなどである。 In this embodiment, it is assumed that either process A or process B is performed on each received packet. Of these, process A is performed by the virtual GW 11, which is software, and process B is offloaded to the H/W accelerator 12, which is hardware. Because hardware can perform processes with higher performance than software, process B may, for example, be a process with a higher priority than process A, or a complex (high-load) process. For example, an example of process A is the process (IKE (Internet Key Exchange)) performed when an IPsec session is established. An example of process B is the encryption and decryption of main signal packets communicated after an IPsec session is established, or the encap and decap of encapsulation headers.

なお、A処理が実行される受信パケット及びB処理が実行される受信パケットの双方に対してゲートウェイとして必要な処理(ルーティング、ARPに基づく処理)を実現する機能については、仮想GW11及びH/Wアクセラレータ12の双方が有する。 In addition, both the virtual GW 11 and the H/W accelerator 12 have the function of performing the processing required as a gateway (routing, processing based on ARP) for both received packets on which processing A is performed and received packets on which processing B is performed.

図3に示されるように、ネットワークに直接的に接続されるのはH/Wアクセラレータ12である。すなわち、対向装置20からのパケットは、まず、H/Wアクセラレータ12によって受信される。当該パケットの処理をH/Wアクセラレータ12において実行可能な場合(すなわち、当該パケットに対してB処理を実行すべき場合)には、H/Wアクセラレータ12は、仮想GW11にパケットを転送しないで当該処理を実行する。したがって、仮想GW11を経由しないで転送されるパケットが発生しうる。その結果、ソフトウェアのみによってパケットを処理する場合に比べて平均的な処理速度(効率性)を向上させることができる。また、一部のパケットについては仮想GW11によって処理される。仮想GW11は、ソフトウェアであるため、ハードウェアに比べ得て柔軟に機能拡張を行うことができる。以上より、本実施の形態の構成によれば、パケットに関する処理について効率性と柔軟性とのバランスを向上させることができる。 As shown in FIG. 3, the H/W accelerator 12 is directly connected to the network. That is, a packet from the opposing device 20 is first received by the H/W accelerator 12. If the packet can be processed by the H/W accelerator 12 (i.e., if processing B should be performed on the packet), the H/W accelerator 12 performs the processing without forwarding the packet to the virtual GW 11. Therefore, packets may be forwarded without passing through the virtual GW 11. As a result, the average processing speed (efficiency) can be improved compared to when packets are processed solely by software. Furthermore, some packets are processed by the virtual GW 11. Because the virtual GW 11 is software, its functionality can be expanded more flexibly than by hardware. As described above, the configuration of this embodiment can improve the balance between efficiency and flexibility in packet processing.

なお、図3においては、仮想GW11及びH/Wアクセラレータ12が同一の汎用サーバ10に配置される例を示したが、仮想GW11及びH/Wアクセラレータ12は、異なる汎用サーバ10に配置されてもよい。 Note that while Figure 3 shows an example in which the virtual GW 11 and H/W accelerator 12 are placed on the same general-purpose server 10, the virtual GW 11 and H/W accelerator 12 may also be placed on different general-purpose servers 10.

図4は、ネットワーク機器としての汎用サーバ10の構成の概要の変形例を説明するための図である。図4中、図3と同一部分には同一符号を付し、その説明は省略する。 Figure 4 is a diagram for explaining a modified example of the general configuration of the general-purpose server 10 as a network device. In Figure 4, parts that are the same as those in Figure 3 are given the same reference numerals and their explanations are omitted.

図4では、汎用サーバ10が、汎用サーバ10-1及び汎用サーバ10-2に分散されている。汎用サーバ10-1は、H/Wアクセラレータ12を有する。汎用サーバ10-2は、仮想GW11を有する。この場合、汎用サーバ10-1及び汎用サーバ10-2は、例えば、仮想L2ブリッジではなく、物理的なL2ブリッジを介して接続される。 In Figure 4, the general-purpose server 10 is distributed between general-purpose server 10-1 and general-purpose server 10-2. General-purpose server 10-1 has a H/W accelerator 12. General-purpose server 10-2 has a virtual GW 11. In this case, general-purpose server 10-1 and general-purpose server 10-2 are connected, for example, via a physical L2 bridge rather than a virtual L2 bridge.

以降においては、以下の具体的方式を説明する。
(1)仮想GW11及びH/Wアクセラレータ12がともにIPアドレスを持つ場合の2つの接続方式(接続方式1、接続方式2)
(2)仮想GW11及びH/Wアクセラレータ12がともに独自のARPテーブルを保有する場合のARPテーブル3つの更新方式(ARP-1、ARP-2、ARP-3)
(1)における2つの接続方式(接続方式1、接続方式2)を第1~第2の実施の形態として説明し、(2)における3つの更新方式(ARP-1、ARP-2、ARP-3)を、第3~第5の実施の形態として説明する。
The following specific methods will be explained below.
(1) Two connection methods (Connection Method 1 and Connection Method 2) when both the virtual GW 11 and the H/W accelerator 12 have IP addresses
(2) Three ARP table update methods (ARP-1, ARP-2, ARP-3) when both the virtual GW 11 and the H/W accelerator 12 have their own ARP tables
The two connection methods (connection method 1 and connection method 2) in (1) will be described as the first and second embodiments, and the three update methods (ARP-1, ARP-2, ARP-3) in (2) will be described as the third to fifth embodiments.

なお、いずれの実施の形態に対しても、図3及び図4の構成が適用可能である。 The configurations shown in Figures 3 and 4 can be applied to any of the embodiments.

図5は、第1の実施の形態(接続方式1)を説明するための図である。なお、図5では、図3において説明した各部のうちの一部の図示が便宜上省略されている。 Figure 5 is a diagram for explaining the first embodiment (connection method 1). Note that in Figure 5, some of the components described in Figure 3 are omitted for convenience.

図5において、各仮想GW11及びH/Wアクセラレータ12は、相互に異なるIPアドレス及びMACアドレスを有する。図5において、仮想GW11-1のIPアドレスは「IP1」であり、MACアドレスは「MAC1」である。仮想GW11-2のIPアドレスは「IP2」であり、MACアドレスは「MAC2」である。H/Wアクセラレータ12のIPアドレスは「IP0」であり、MACアドレスは「MAC0」である。 In Figure 5, each virtual GW 11 and H/W accelerator 12 has a different IP address and MAC address. In Figure 5, the IP address of virtual GW 11-1 is "IP1" and the MAC address is "MAC1". The IP address of virtual GW 11-2 is "IP2" and the MAC address is "MAC2". The IP address of H/W accelerator 12 is "IP0" and the MAC address is "MAC0".

パケットの転送元である端末30-1からのパケットを転送する対向装置20-1のデフォルトゲートウェイには、H/Wアクセラレータ12のIPアドレスである「IP0」が設定される。したがって、対向装置20-1は、全てのパケットをIP0に対応するノード(H/Wアクセラレータ12)にフォワーディングする。仮想GW11が複数ある場合もNEXTHOPは必ず「IP0/MAC0」である。対向装置20-1が転送するパケットのヘッダは、図6に示されるようになる。 The default gateway of the opposite device 20-1, which forwards packets from the terminal 30-1 that is the packet forwarding source, is set to "IP0", which is the IP address of the H/W accelerator 12. Therefore, the opposite device 20-1 forwards all packets to the node (H/W accelerator 12) corresponding to IP0. Even if there are multiple virtual GWs 11, the NEXTHOP is always "IP0/MAC0". The header of the packet forwarded by the opposite device 20-1 is as shown in Figure 6.

図6は、第1の実施の形態において対向装置20-1が転送するパケットのヘッダの一例を示す図である。図6において、DstIP(宛先IPアドレス)の値である<転送先>は、端末30-2のIPアドレスを示す。SrcIP(送信元IPアドレス)の値である<転送元>は、端末30-1のIPアドレスを示す。SrcMAC(送信元MACアドレス)の値である<対向装置1>は、対向装置20-1のMACアドレスを示す。DstMAC(宛先MACアドレス)の値であるMAC0は、H/Wアクセラレータ12のMACアドレスである。 Figure 6 is a diagram showing an example of the header of a packet forwarded by the opposing device 20-1 in the first embodiment. In Figure 6, the value of DstIP (destination IP address), <forwarding destination>, indicates the IP address of terminal 30-2. The value of SrcIP (source IP address), <forwarding source>, indicates the IP address of terminal 30-1. The value of SrcMAC (source MAC address), <opposing device 1>, indicates the MAC address of the opposing device 20-1. The value of DstMAC (destination MAC address), MAC0, is the MAC address of the H/W accelerator 12.

このように、第1の実施の形態では、汎用サーバ10が複数の仮想GW11を有する場合であっても対向装置20-1はその区別をする必要がなく、全てのパケットをH/Wアクセラレータ12側のIP/MACに送信すればよい。 In this way, in the first embodiment, even if the general-purpose server 10 has multiple virtual GWs 11, the opposing device 20-1 does not need to distinguish between them and simply sends all packets to the IP/MAC on the H/W accelerator 12 side.

図5において、H/Wアクセラレータ12の振分部121は、判定部121-1及び書換部121-2を含む。 In Figure 5, the allocation unit 121 of the H/W accelerator 12 includes a judgment unit 121-1 and a rewrite unit 121-2.

判定部121-1は、受信パケットを、振分部121が有するマッチングテーブルと照合することで、受信パケットの振分先が仮想GW11であるかH/Wアクセラレータ12であるか(受信パケットの処理を仮想GW11に実行させるか否か)を判定する。 The judgment unit 121-1 compares the received packet with the matching table held by the distribution unit 121 to determine whether the received packet should be distributed to the virtual GW 11 or the H/W accelerator 12 (whether the received packet should be processed by the virtual GW 11).

図7は、第1の実施の形態におけるマッチングテーブルの構成例を示す図である。図7に示されるように、マッチングテーブルは、パケットの5tupple(protocol、SrcMAC(送信元MACアドレス)、DstMAC(宛先MACアドレス)、SrcIP(送信元IPアドレス)、DstIP(宛先IPアドレス))に応じて「転送先」が予め登録されている。 Figure 7 shows an example of the configuration of a matching table in the first embodiment. As shown in Figure 7, the matching table pre-registers "forwarding destinations" according to the packet's 5-tuple (protocol, SrcMAC (source MAC address), DstMAC (destination MAC address), SrcIP (source IP address), DstIP (destination IP address)).

判定部121-1は、受信パケットの5tuppleがマッチングテーブルのいずれかのレコードに一致する場合、当該レコードの「転送先」に設定されているMACアドレスに対応する仮想GW11が受信パケットの振分先である(受信パケットの処理を当該仮想GW11に実行させる)と判定する。一方、受信パケットの5tuppleがマッチングテーブルのいずれのレコードにも一致しない場合、判定部121-1は、受信パケットの振分先はH/Wアクセラレータ12である(受信パケットの処理を仮想GW11に実行させない)と判定する。但し、マッチングテーブルのレコードとの比較対象は、5tuppleの全てでなくてもよい。例えば、IPのみ(SrcIP(送信元IPアドレス)及びDstIP(宛先IPアドレス))のみについて一致か否かが判定されてもよい。 If the 5-tuple of the received packet matches any record in the matching table, the judgment unit 121-1 determines that the virtual GW 11 corresponding to the MAC address set in the "forwarding destination" of that record is the destination of the received packet (the virtual GW 11 will be made to process the received packet). On the other hand, if the 5-tuple of the received packet does not match any record in the matching table, the judgment unit 121-1 determines that the destination of the received packet is the H/W accelerator 12 (the virtual GW 11 will not be made to process the received packet). However, the comparison with the records in the matching table does not have to be of the entire 5-tuple. For example, it may be determined whether there is a match only for the IP (SrcIP (source IP address) and DstIP (destination IP address)).

判定部121-1は、振分先がH/Wアクセラレータ12であると判定した受信パケットをH/Wアクセラレータ12へ転送する。当該受信パケットは、B処理部122によって処理された後、ルーティング部123によってルーティング(転送)される。 The determination unit 121-1 transfers received packets that it determines are destined for the H/W accelerator 12 to the H/W accelerator 12. The received packets are processed by the B processing unit 122 and then routed (transferred) by the routing unit 123.

判定部121-1は、振分先がいずれかの仮想GW11であると判定した受信パケットを書換部121-2へ入力する。書換部121-2は、判定部121-1から入力された受信パケットのDstMAC(宛先MACアドレス)を、判定部121-1が振分先と判定した仮想GW11(マッチングテーブルで受信パケットが合致したレコードの「転送先」)のMACアドレスに書き換える。 The determination unit 121-1 inputs received packets that it determines are to be assigned to one of the virtual GWs 11 to the rewrite unit 121-2. The rewrite unit 121-2 rewrites the DstMAC (destination MAC address) of the received packets input from the determination unit 121-1 to the MAC address of the virtual GW 11 that the determination unit 121-1 determined is to be the assignment destination (the "forwarding destination" of the record that the received packet matches in the matching table).

図8は、宛先MACアドレスの書き換え後の受信パケットの一例を示す図である。図8では、図6のDstMACの値が、「MAC1」に書き換えられている。 Figure 8 shows an example of a received packet after the destination MAC address has been rewritten. In Figure 8, the DstMAC value in Figure 6 has been rewritten to "MAC1".

書換部121-2は、書き換え後のDstMACに対応する仮想GW11-1へ受信パケットを転送する。当該受信パケットは、仮想GW11-1においてA処理が実行されて、仮想GW11-1のルーティング部によってルーティング(転送)される。 The rewrite unit 121-2 forwards the received packet to the virtual GW 11-1 corresponding to the rewritten DstMAC. The received packet undergoes processing A in the virtual GW 11-1 and is routed (forwarded) by the routing unit of the virtual GW 11-1.

次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。第2の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。 Next, we will explain the second embodiment. In the second embodiment, we will explain the differences from the first embodiment. Points that are not specifically mentioned in the second embodiment may be the same as those in the first embodiment.

図9は、第2の実施の形態(接続方式2)を説明するための図である。図9中、図5と同一又は対応する部分には同一符号を付している。 Figure 9 is a diagram for explaining the second embodiment (connection method 2). In Figure 9, parts that are the same as or correspond to those in Figure 5 are given the same reference numerals.

図9において、H/Wアクセラレータ12は、各仮想GW11と同一のIPアドレス及びMACアドレスを有する。図9に示されるように、複数の仮想GW11が有る場合、H/Wアクセラレータ12も各仮想GW11に対応する複数のIPアドレス及びMACアドレスを有する。具体的には、図9の例において、仮想GW11-1のIPアドレス、MACアドレスは、それぞれ、IP1、MAC1である。仮想GW11-2のPアドレス、MACアドレスは、それぞれ、IP2、MAC2である。H/Wアクセラレータ12は、IP1及びMAC1と、IP2及びMAC2とのIPアドレス及びMACアドレスの組を有する。 In Figure 9, the H/W accelerator 12 has the same IP address and MAC address as each virtual GW11. As shown in Figure 9, if there are multiple virtual GW11, the H/W accelerator 12 also has multiple IP addresses and MAC addresses corresponding to each virtual GW11. Specifically, in the example of Figure 9, the IP address and MAC address of virtual GW11-1 are IP1 and MAC1, respectively. The P address and MAC address of virtual GW11-2 are IP2 and MAC2, respectively. The H/W accelerator 12 has IP address and MAC address pairs of IP1 and MAC1, and IP2 and MAC2.

対向装置20-1は、仮想GW11とH/Wアクセラレータ12とを区別せずにパケットを転送する。但し、仮想GW11が複数ある場合、どのIPアドレス/MACアドレスをNEXTHOPにするのかを対向装置20-1が区別する。 The opposing device 20-1 forwards packets without distinguishing between the virtual GW 11 and the H/W accelerator 12. However, if there are multiple virtual GWs 11, the opposing device 20-1 distinguishes which IP address/MAC address to set as NEXTHOP.

図10は、第2の実施の形態において対向装置20-1が転送するパケットのヘッダの一例を示す図である。図10のパケットは、仮想GW11-1をNEXTHOPにする場合に対向装置20-1が転送するパケットである。 Figure 10 shows an example of the header of a packet forwarded by the opposing device 20-1 in the second embodiment. The packet in Figure 10 is a packet forwarded by the opposing device 20-1 when virtual GW11-1 is set as NEXTHOP.

判定部121-1は、受信パケットを振分部121が有するマッチングテーブルと照合することで、受信パケットの振分先が仮想GW11であるかH/Wアクセラレータ12であるかを判定する。 The determination unit 121-1 compares the received packet with the matching table held by the distribution unit 121 to determine whether the received packet should be distributed to the virtual GW 11 or the H/W accelerator 12.

図11は、第2の実施の形態におけるマッチングテーブルの構成例を示す図である。図11に示されるマッチングテーブルは、図7のマッチングテーブルと比較して「転送先」の項目が無い。第2の実施の形態では、受信パケットのヘッダにおいて仮想GW11が区別されているため、「転送先」が登録される必要が無いからである。 Figure 11 is a diagram showing an example of the configuration of a matching table in the second embodiment. Compared to the matching table in Figure 7, the matching table shown in Figure 11 does not have an item for "forwarding destination." This is because in the second embodiment, virtual GW11s are distinguished in the header of received packets, so there is no need to register a "forwarding destination."

判定部121-1は、受信パケットの5tuppleが、マッチングテーブルのいずれかのレコードに一致する場合、受信パケットのDstMAC及びDstIPに対応する仮想GW11が受信パケットの振分先であると判定する。一方、受信パケットの5tuppleが、マッチングテーブルのいずれのレコードにも一致しない場合、判定部121-1は、受信パケットの振分先はH/Wアクセラレータ12であると判定する。但し、マッチングテーブルのレコードとの比較対象は、5tuppleの全てでなくてもよい。例えば、IPのみ(SrcIP(送信元IPアドレス)及びDstIP(宛先IPアドレス))のみについて一致か否かが判定されてもよい。 If the 5-tuple of the received packet matches any record in the matching table, the judgment unit 121-1 judges that the virtual GW 11 corresponding to the DstMAC and DstIP of the received packet is the destination of the received packet. On the other hand, if the 5-tuple of the received packet does not match any record in the matching table, the judgment unit 121-1 judges that the destination of the received packet is the H/W accelerator 12. However, the comparison with the records in the matching table does not have to be for the entire 5-tuple. For example, it may be determined whether there is a match for only the IP (SrcIP (source IP address) and DstIP (destination IP address)).

判定部121-1は、振分先がH/Wアクセラレータ12であると判定した受信パケットをH/Wアクセラレータ12へ転送する。当該受信パケットは、B処理部122によって処理された後、ルーティング部123によってルーティング(転送)される。 The determination unit 121-1 transfers received packets that it determines are destined for the H/W accelerator 12 to the H/W accelerator 12. The received packets are processed by the B processing unit 122 and then routed (transferred) by the routing unit 123.

判定部121-1は、また、振分先がいずれかの仮想GW11であると判定した受信パケットを当該受信パケットのDstMAC及びDstIPに対応する仮想GW11へ転送する。すなわち、第2の実施の形態において、受信パケットのヘッダの書き換えは実行されない。したがって、第2の実施の形態において、振分部121は書換部121-2を有さない。図10に示した受信パケットは、仮想GW11-1へ転送される。当該受信パケットは、仮想GW11-1においてA処理が実行されて、仮想GW11-1のルーティング部によってルーティング(転送)される。 The determination unit 121-1 also forwards a received packet that it determines is assigned to one of the virtual GWs 11 to the virtual GW 11 corresponding to the DstMAC and DstIP of the received packet. That is, in the second embodiment, the header of the received packet is not rewritten. Therefore, in the second embodiment, the distribution unit 121 does not have a rewriting unit 121-2. The received packet shown in Figure 10 is forwarded to the virtual GW 11-1. The received packet undergoes processing A in the virtual GW 11-1, and is routed (forwarded) by the routing unit of the virtual GW 11-1.

次に、第3の実施の形態(ARP-1)について説明する。第3の実施の形態は、仮想GW11とH/Wアクセラレータ12との間でIPアドレス及びMACアドレスが異なる場合(すなわち、第1の実施の形態が採用される場合)に好適である。 Next, we will explain the third embodiment (ARP-1). The third embodiment is suitable when the IP address and MAC address are different between the virtual GW 11 and the H/W accelerator 12 (i.e., when the first embodiment is adopted).

第3の実施の形態において、仮想GW11のARP処理部113とH/Wアクセラレータ12のARP処理部124は、それぞれ独立して(別々に)ARPを実行する。例えば、ARP処理部113は、仮想GW11に転送された受信パケットのDstIPに対応するMACアドレスがARPテーブル114に登録されていない場合にARPを実行し、実行結果をARPテーブル114に登録する。また、ARP処理部124は、H/Wアクセラレータ12が振分先である受信パケットのDstIPに対応するMACアドレスがARPテーブル125に登録されていない場合にARPを実行し、実行結果をARPテーブル125に登録する。 In the third embodiment, the ARP processing unit 113 of the virtual GW 11 and the ARP processing unit 124 of the H/W accelerator 12 each execute ARP independently (separately). For example, the ARP processing unit 113 executes ARP when the MAC address corresponding to the DstIP of a received packet forwarded to the virtual GW 11 is not registered in the ARP table 114, and registers the execution result in the ARP table 114. Furthermore, the ARP processing unit 124 executes ARP when the MAC address corresponding to the DstIP of a received packet to be sorted by the H/W accelerator 12 is not registered in the ARP table 125, and registers the execution result in the ARP table 125.

次に、第4の実施の形態について説明する。第4の実施の形態は、H/Wアクセラレータ12が仮想GW11と同じIPアドレス及びMACアドレスを有する場合(すなわち、第2の実施の形態が採用される場合)に好適である。 Next, we will explain the fourth embodiment. The fourth embodiment is suitable when the H/W accelerator 12 has the same IP address and MAC address as the virtual GW 11 (i.e., when the second embodiment is adopted).

第4の実施の形態では、仮想GW11が独立してARPを実行し、H/Wアクセラレータ12は、仮想GW11によるARPの実行結果をSNOOPしてH/Wアクセラレータ12のARPテーブル125を更新する。以下、第4の実施の形態において実行される処理手順を、H/Wアクセラレータ12が受信パケットの振分先として判定された場合と、仮想GW11が受信パケットの振分先として判定された場合とに分けて説明する。 In the fourth embodiment, the virtual GW 11 executes ARP independently, and the H/W accelerator 12 performs a snoop on the result of the ARP execution by the virtual GW 11 to update the ARP table 125 of the H/W accelerator 12. Below, the processing procedure executed in the fourth embodiment will be explained separately for the case where the H/W accelerator 12 is determined as the destination of the received packet and the case where the virtual GW 11 is determined as the destination of the received packet.

図12は、第4の実施の形態においてH/Wアクセラレータ12が受信パケットの振分先として判定された場合にARP(ARP-2)に関して実行される処理手順の一例を説明するためのシーケンス図である。 Figure 12 is a sequence diagram illustrating an example of the processing procedure performed for ARP (ARP-2) when the H/W accelerator 12 is determined to be the destination for a received packet in the fourth embodiment.

H/Wアクセラレータ12のルーティング部123が、H/Wアクセラレータ12に振り分けられた受信パケットについて対向装置20-2へ転送すべきことを判断すると、ARP処理部124は、対向装置20-2のIPアドレスに対応するMACアドレスをARPテーブル125から取得する(S101)。 When the routing unit 123 of the H/W accelerator 12 determines that a received packet allocated to the H/W accelerator 12 should be forwarded to the opposing device 20-2, the ARP processing unit 124 obtains the MAC address corresponding to the IP address of the opposing device 20-2 from the ARP table 125 (S101).

当該IPアドレスに対応するエントリがARPテーブル125に登録されている場合、ルーティング部123は、取得されたMACアドレス宛(対向装置20-2宛)に受信パケットを転送する(S121)。 If an entry corresponding to the IP address is registered in the ARP table 125, the routing unit 123 forwards the received packet to the acquired MAC address (addressed to the opposing device 20-2) (S121).

一方、当該IPアドレスに対応するエントリがARPテーブル125に登録されていない場合(ARPテーブル125に基づいて当該IPアドレスに対応するMACアドレスを特定できない場合)、ステップS102及びS103が実行される。 On the other hand, if an entry corresponding to the IP address is not registered in the ARP table 125 (if the MAC address corresponding to the IP address cannot be identified based on the ARP table 125), steps S102 and S103 are executed.

ステップS102において、H/Wアクセラレータ12のARP処理部124は、受信パケットを含む、ARPの実行要求を仮想GW11へ要求する。続いて、仮想GW11のルーティング部112が、受信パケットについて対向装置20-2へ転送すべきことを判断すると、ARP処理部113は、対向装置20-2のIPアドレスに対応するMACアドレスをARPテーブル114から取得する(S103)。In step S102, the ARP processing unit 124 of the H/W accelerator 12 sends an ARP execution request, including the received packet, to the virtual GW 11. Next, when the routing unit 112 of the virtual GW 11 determines that the received packet should be forwarded to the opposing device 20-2, the ARP processing unit 113 obtains the MAC address corresponding to the IP address of the opposing device 20-2 from the ARP table 114 (S103).

当該IPアドレスに対応するエントリがARPテーブル114に登録されていない場合、ステップS111~S115が実行される。 If an entry corresponding to the IP address is not registered in the ARP table 114, steps S111 to S115 are executed.

ステップS111において、ARP処理部113は、当該IPアドレスを含むARPリクエストを送信する。続いて、当該IPアドレスに対応する対向装置20-2が、対向装置20-2のMACアドレスを含むARPリプライを汎用サーバ10へ送信すると、H/Wアクセラレータ12が当該ARPリプライを受信する(S112)。H/Wアクセラレータ12のARP処理部124は、当該ARPリプライをSNOOPして(当該ARPリプライからIPアドレス及びMACアドレスの対応情報を取得して)、当該IPアドレスと当該MACアドレスとを対応付けるエントリをARPテーブル125に登録する(S113)。その結果、ARP処理部124は、当該IPアドレスに対応するMACアドレスを特定することができ、ARPテーブル125の内容をARPテーブル114に同期させることができる。 In step S111, the ARP processing unit 113 sends an ARP request including the IP address. Subsequently, when the opposing device 20-2 corresponding to the IP address sends an ARP reply including the MAC address of the opposing device 20-2 to the general-purpose server 10, the H/W accelerator 12 receives the ARP reply (S112). The ARP processing unit 124 of the H/W accelerator 12 snoops the ARP reply (obtains the IP address and MAC address correspondence information from the ARP reply) and registers an entry associating the IP address with the MAC address in the ARP table 125 (S113). As a result, the ARP processing unit 124 can identify the MAC address corresponding to the IP address and synchronize the contents of the ARP table 125 with the ARP table 114.

ARP処理部124は、また、当該ARPリプライを仮想GW11へ転送する(S114)。H/Wアクセラレータ12のルーティング部123は、当該MACアドレス宛(対向装置20-2宛)に受信パケットを転送する(S121)。仮想GW11のARP処理部113は、当該ARPリプライに基づいて、該IPアドレスと当該MACアドレスとを対応付けるエントリをARPテーブル114に登録する(S115)。 The ARP processing unit 124 also forwards the ARP reply to the virtual GW 11 (S114). The routing unit 123 of the H/W accelerator 12 forwards the received packet to the MAC address (addressed to the opposing device 20-2) (S121). Based on the ARP reply, the ARP processing unit 113 of the virtual GW 11 registers an entry in the ARP table 114 that associates the IP address with the MAC address (S115).

図13は、第4の実施の形態において仮想GW11が受信パケットの振分先として判定された場合にARP(ARP-2)に関して実行される処理手順の一例を説明するためのシーケンス図である。図13中、図12と同一又は対応するステップには同一ステップ番号を付し、その説明は適宜省略する。 Figure 13 is a sequence diagram illustrating an example of the processing procedure executed for ARP (ARP-2) when the virtual GW11 is determined to be the destination for a received packet in the fourth embodiment. In Figure 13, steps that are the same as or correspond to those in Figure 12 are assigned the same step numbers, and their explanations will be omitted as appropriate.

仮想GW11のルーティング部112が、仮想GW11に振り分けられた受信パケットについて対向装置20-2へ転送すべきことを判断すると、ARP処理部113は、対向装置20-2のIPアドレスに対応するMACアドレスをARPテーブル114から取得する(S103)。 When the routing unit 112 of the virtual GW11 determines that the received packet allocated to the virtual GW11 should be forwarded to the opposing device 20-2, the ARP processing unit 113 obtains the MAC address corresponding to the IP address of the opposing device 20-2 from the ARP table 114 (S103).

当該IPアドレスに対応するエントリがARPテーブル114に登録されている場合、ルーティング部112は、取得されたMACアドレス宛(対向装置20-2宛)に受信パケットを転送する(S122)。 If an entry corresponding to the IP address is registered in the ARP table 114, the routing unit 112 forwards the received packet to the acquired MAC address (addressed to the opposing device 20-2) (S122).

一方、当該IPアドレスに対応するエントリがARPテーブル114に登録されていない場合、ステップS111~S115が実行された後、ステップS122が実行される。 On the other hand, if an entry corresponding to the IP address is not registered in the ARP table 114, steps S111 to S115 are executed, and then step S122 is executed.

次に、第5の実施の形態について説明する。第5の実施の形態は、H/Wアクセラレータ12が仮想GW11と同じIPアドレス及びMACアドレスを有する場合(すなわち、第2の実施の形態が採用される場合)に好適である。 Next, we will explain the fifth embodiment. The fifth embodiment is suitable when the H/W accelerator 12 has the same IP address and MAC address as the virtual GW 11 (i.e., when the second embodiment is adopted).

第5の実施の形態では、仮想GW11が独立してARPを実行してARPテーブル114を更新するとともに、H/Wアクセラレータ12のARPテーブル125をも更新する。 In the fifth embodiment, the virtual GW 11 independently executes ARP to update the ARP table 114 and also updates the ARP table 125 of the H/W accelerator 12.

図14は、第5の実施の形態における仮想GW11の機能構成例を示す図である。図14中、図3又は図4と同一部分には同一符号を付し、その説明は省略する。 Figure 14 is a diagram showing an example of the functional configuration of a virtual GW11 in the fifth embodiment. In Figure 14, parts that are the same as those in Figure 3 or Figure 4 are given the same reference numerals, and their explanations are omitted.

図14において、仮想GW11は、更に、設定部115を有する。設定部115は、仮想GW11のARPの結果をH/Wアクセラレータ12のARPテーブル125に登録する。 In Figure 14, the virtual GW11 further has a setting unit 115. The setting unit 115 registers the ARP result of the virtual GW11 in the ARP table 125 of the H/W accelerator 12.

以下、第5の実施の形態において実行される処理手順を、H/Wアクセラレータ12が受信パケットの振分先として判定された場合と、仮想GW11が受信パケットの振分先として判定された場合とに分けて説明する。 Below, the processing procedures executed in the fifth embodiment are explained separately for when the H/W accelerator 12 is determined as the destination for the received packet and when the virtual GW 11 is determined as the destination for the received packet.

図15は、第5の実施の形態においてH/Wアクセラレータ12が受信パケットの振分先として判定された場合にARP(ARP-3)に関して実行される処理手順の一例を説明するためのシーケンス図である。図15中、図12と同一ステップには同一ステップ番号を付し、その説明は省略する。 Figure 15 is a sequence diagram illustrating an example of the processing procedure executed for ARP (ARP-3) when the H/W accelerator 12 is determined to be the destination of a received packet in the fifth embodiment. In Figure 15, the same steps as in Figure 12 are assigned the same step numbers, and their explanations are omitted.

図15においては、ステップS113(ARPリプライのSNOOP)は実行されずに、ステップS116が実行される。 In Figure 15, step S113 (SNOP of ARP reply) is not executed, and step S116 is executed.

ステップS116において、設定部115は、ステップS115においてARPテーブル114に登録されたエントリを、H/Wアクセラレータ12のARPテーブル125に登録する。その結果、ARPテーブル125の内容をARPテーブル114に同期させることができる。In step S116, the setting unit 115 registers the entry registered in the ARP table 114 in step S115 in the ARP table 125 of the H/W accelerator 12. As a result, the contents of the ARP table 125 can be synchronized with the ARP table 114.

図16は、第5の実施の形態において仮想GW11が受信パケットの振分先として判定された場合にARP(ARP-3)に関して実行される処理手順の一例を説明するためのシーケンス図である。図16中、図13又は図15と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。 Figure 16 is a sequence diagram illustrating an example of the processing procedure executed for ARP (ARP-3) when the virtual GW11 is determined to be the destination for a received packet in the fifth embodiment. In Figure 16, the same steps as those in Figure 13 or Figure 15 are assigned the same step numbers, and their explanations will be omitted as appropriate.

図16においては、ステップS113(ARPリプライのSNOOP)は実行されずに、ステップS116が実行される。ステップS116の処理内容は図15において説明した通りである。その結果、ARPテーブル125の内容をARPテーブル114に同期させることができる。 In Figure 16, step S113 (SNooping the ARP reply) is not executed, and step S116 is executed. The processing content of step S116 is as described in Figure 15. As a result, the contents of ARP table 125 can be synchronized with ARP table 114.

なお、第4及び第5の実施の形態において、H/Wアクセラレータ12のARPテーブル125と仮想GW11のARPテーブル114のキャッシュのクリアタイムは同一とする。これにより、各ARPテーブルの状態の整合性を保つことができる。 In the fourth and fifth embodiments, the cache clear time of the ARP table 125 of the H/W accelerator 12 and the ARP table 114 of the virtual GW 11 is the same. This allows the consistency of the state of each ARP table to be maintained.

なお、上記各実施の形態において、汎用サーバ10は、情報処理装置の一例である。B処理部122は、処理部の一例である。ルーティング部123は、転送部の一例である。 In each of the above embodiments, the general-purpose server 10 is an example of an information processing device. The B processing unit 122 is an example of a processing unit. The routing unit 123 is an example of a forwarding unit.

以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 The above describes in detail the embodiments of the present invention, but the present invention is not limited to such specific embodiments, and various modifications and variations are possible within the scope of the gist of the present invention as described in the claims.

10 汎用サーバ
11 仮想GW
12 H/Wアクセラレータ
20 対向装置
30 端末
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
111 A処理部
112 ルーティング部
113 ARP処理部
114 ARPテーブル
115 設定部
121 振分部
121-1 判定部
121-2 書換部
122 B処理部
123 ルーティング部
124 ARP処理部
125 ARPテーブル
126-1 ポート
126-2 ポート
B バス
10 General-purpose server 11 Virtual GW
12 H/W accelerator 20 Counterpart device 30 Terminal 100 Drive device 101 Recording medium 102 Auxiliary storage device 103 Memory device 104 CPU
105 Interface device 111 A processing unit 112 Routing unit 113 ARP processing unit 114 ARP table 115 Setting unit 121 Distribution unit 121-1 Determination unit 121-2 Rewriting unit 122 B processing unit 123 Routing unit 124 ARP processing unit 125 ARP table 126-1 Port 126-2 Port B Bus

Claims (4)

パケットを受信する集積回路を有し、
前記集積回路は、
前記パケットの送信元及び宛先に基づいて、前記パケットに対する処理をソフトウェアに実行させるか否かを判定し、前記処理を前記ソフトウェアに実行させる場合に前記パケットを前記ソフトウェアに転送するように構成されている振分部と、
前記振分部が前記処理を前記ソフトウェアに実行させないと判定した場合に、前記パケットに対する処理を実行するように構成されている処理部と、
前記処理部が処理したパケットを転送するように構成されている転送部と、
を含
前記集積回路と前記ソフトウェアとのIPアドレス及びMACアドレスは異なっており、
前記振分部は、前記処理を前記ソフトウェアに実行させる場合に前記パケットの宛先MACアドレスを前記ソフトウェアのMACアドレスに書き換えるように構成されている、
ことを特徴とする情報処理装置。
an integrated circuit for receiving a packet;
The integrated circuit comprises:
a distribution unit configured to determine whether or not to cause software to execute processing on the packet based on the source and destination of the packet, and to transfer the packet to the software if the software is to execute the processing;
a processing unit configured to execute a process on the packet when the allocating unit determines not to cause the software to execute the process;
a forwarding unit configured to forward the packets processed by the processing unit;
Including ,
The integrated circuit and the software have different IP addresses and MAC addresses;
the distribution unit is configured to rewrite the destination MAC address of the packet to the MAC address of the software when causing the software to execute the process.
1. An information processing device comprising:
前記集積回路及び前記ソフトウェアはそれぞれARPテーブルを有し、
前記集積回路は、
前記パケットの転送先のMACアドレスを前記集積回路が有するARPテーブルで特定できない場合に、ARPに基づく処理を前記ソフトウェアに実行させて、前記MACアドレスを特定するように構成されている、
ことを特徴とする請求項記載の情報処理装置。
the integrated circuit and the software each have an ARP table;
The integrated circuit comprises:
When the MAC address of the destination of the packet cannot be identified using an ARP table included in the integrated circuit, the integrated circuit is configured to cause the software to execute processing based on ARP to identify the MAC address.
2. The information processing apparatus according to claim 1 , wherein:
パケットを受信する集積回路が、
前記パケットの送信元及び宛先に基づいて、前記パケットに対する処理をソフトウェアに実行させるか否かを判定し、前記処理を前記ソフトウェアに実行させる場合に前記パケットを前記ソフトウェアに転送する振分手順と、
前記振分手順が前記処理を前記ソフトウェアに実行させないと判定した場合に、前記パケットに対する処理を実行する処理手順と、
前記処理手順が処理したパケットを転送する転送手順と、
を実行し、
前記集積回路と前記ソフトウェアとのIPアドレス及びMACアドレスは異なっており、
前記振分手順は、前記処理を前記ソフトウェアに実行させる場合に前記パケットの宛先MACアドレスを前記ソフトウェアのMACアドレスに書き換える、
ことを特徴とするパケット処理方法。
an integrated circuit receiving the packet,
a distribution procedure of determining whether or not to cause software to execute processing on the packet based on the source and destination of the packet, and transferring the packet to the software if the processing is to be executed by the software;
a processing procedure for executing a process on the packet when the sorting procedure determines that the software should not execute the process;
a forwarding procedure for forwarding the packets processed by the processing procedure;
Run
The integrated circuit and the software have different IP addresses and MAC addresses;
the sorting step rewrites a destination MAC address of the packet to a MAC address of the software when the software is to execute the process;
A packet processing method comprising:
前記集積回路及び前記ソフトウェアはそれぞれARPテーブルを有し、
前記集積回路が、
前記パケットの転送先のMACアドレスを前記集積回路が有するARPテーブルで特定できない場合に、前記ソフトウェアにARPに基づく処理を実行させて、前記MACアドレスを特定する、
ことを特徴とする請求項記載のパケット処理方法。
the integrated circuit and the software each have an ARP table;
The integrated circuit comprises:
If the MAC address of the destination of the packet cannot be identified using the ARP table of the integrated circuit, the software is caused to execute processing based on ARP to identify the MAC address.
4. The packet processing method according to claim 3 .
JP2024538628A 2022-08-04 2022-08-04 Information processing device and packet processing method Active JP7779396B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/030018 WO2024029050A1 (en) 2022-08-04 2022-08-04 Information processing device and packet processing method

Publications (2)

Publication Number Publication Date
JPWO2024029050A1 JPWO2024029050A1 (en) 2024-02-08
JP7779396B2 true JP7779396B2 (en) 2025-12-03

Family

ID=89848721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024538628A Active JP7779396B2 (en) 2022-08-04 2022-08-04 Information processing device and packet processing method

Country Status (2)

Country Link
JP (1) JP7779396B2 (en)
WO (1) WO2024029050A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008112224A (en) 2006-10-27 2008-05-15 Fujitsu Ten Ltd Error detection apparatus and error detection method
JP2008113096A (en) 2006-10-27 2008-05-15 Fujitsu Ten Ltd Gateway apparatus and data management method
US20120311183A1 (en) 2011-06-01 2012-12-06 Kutch Patrick G Circuitry to maintain correlation between sets of addresses

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430188B1 (en) * 1998-07-08 2002-08-06 Broadcom Corporation Unified table for L2, L3, L4, switching and filtering

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008112224A (en) 2006-10-27 2008-05-15 Fujitsu Ten Ltd Error detection apparatus and error detection method
JP2008113096A (en) 2006-10-27 2008-05-15 Fujitsu Ten Ltd Gateway apparatus and data management method
US20120311183A1 (en) 2011-06-01 2012-12-06 Kutch Patrick G Circuitry to maintain correlation between sets of addresses

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
宮本 克真 ほか,ハードウェアアクセラレータを用いたマルチアクセスVPNシステムの検討,電子情報通信学会技術研究報告 Vol.122 No.5,日本,一般社団法人電子情報通信学会,2022年04月08日,pp.25-30,https://ken.ieice.org/ken/index/ieice-techrep-122-5.html

Also Published As

Publication number Publication date
JPWO2024029050A1 (en) 2024-02-08
WO2024029050A1 (en) 2024-02-08

Similar Documents

Publication Publication Date Title
US10534601B1 (en) In-service software upgrade of virtual router with reduced packet loss
US11070447B2 (en) System and method for implementing and managing virtual networks
JP6445015B2 (en) System and method for providing data services in engineered systems for execution of middleware and applications
JP6445621B2 (en) Distributed load balancer
JP6169251B2 (en) Asymmetric packet flow in distributed load balancers
US20210194807A1 (en) Tunnel-based service insertion in public cloud environments
CN113556275B (en) Calculation method, calculation apparatus, and computer-readable storage medium
JP6030807B2 (en) Open connection with distributed load balancer
Apostolopoulos et al. Design, implementation and performance of a content-based switch
US7107348B2 (en) Packet relay processing apparatus
US11336570B1 (en) Layer three multi-homing for virtual networks
JP2561797B2 (en) Routing method and device
US20090063706A1 (en) Combined Layer 2 Virtual MAC Address with Layer 3 IP Address Routing
US20200045148A1 (en) Packet handling during service virtualized computing instance migration
CN118647976A (en) Encrypted data packet forwarding
CN113302884B (en) Service insertion in public cloud environments
WO2014152242A1 (en) Network stack and related techniques
CN111865806B (en) Prefix-based fat flows
US11516125B2 (en) Handling packets travelling towards logical service routers (SRs) for active-active stateful service insertion
CN113965521B (en) Data packet transmission method, server and storage medium
US11533386B2 (en) Virtual tunnel endpoint (VTEP) learning based on transport protocol information
JP7779396B2 (en) Information processing device and packet processing method
CN118714087A (en) Traffic forwarding method, device and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20241203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250812

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20251006

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251103

R150 Certificate of patent or registration of utility model

Ref document number: 7779396

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150