KR102026447B1 - Offload apparatus and method for virtual network - Google Patents

Offload apparatus and method for virtual network Download PDF

Info

Publication number
KR102026447B1
KR102026447B1 KR1020170170003A KR20170170003A KR102026447B1 KR 102026447 B1 KR102026447 B1 KR 102026447B1 KR 1020170170003 A KR1020170170003 A KR 1020170170003A KR 20170170003 A KR20170170003 A KR 20170170003A KR 102026447 B1 KR102026447 B1 KR 102026447B1
Authority
KR
South Korea
Prior art keywords
virtual
packet
offload
information
session information
Prior art date
Application number
KR1020170170003A
Other languages
Korean (ko)
Other versions
KR20190069764A (en
Inventor
김종덕
윤대호
Original Assignee
주식회사 시큐아이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 시큐아이 filed Critical 주식회사 시큐아이
Priority to KR1020170170003A priority Critical patent/KR102026447B1/en
Publication of KR20190069764A publication Critical patent/KR20190069764A/en
Application granted granted Critical
Publication of KR102026447B1 publication Critical patent/KR102026447B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

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

Abstract

본 발명은 복수의 가상 장비로 구성되는 가상 네트워크를 운영하는 위한 오프로드 장치로, 외부 네트워크 장치와 통신하는 통신부, 상기 복수의 가상 장비를 위한 통합 오프로드 캐시를 저장하는 저장부 및 상기 통신부를 통하여 수신된 패킷의 세션 정보와 대응되는 세션 정보가 상기 통합 오프로드 캐시에 존재하면, 상기 대응되는 세션 정보와 연계하여 상기 통합 오프로드 캐시에 저장된 정보를 참조하여, 상기 패킷이 경유할 적어도 하나의 가상 장비를 결정하고, 상기 적어도 하나의 가상 장비가 TCP 오프로드를 통하여 상기 패킷을 처리하도록 제어하는 제어부를 포함하는 것을 특징으로 하는 오프로드 장치 및 그의 오프로드 방법에 관한 것이다. The present invention provides an offload device for operating a virtual network including a plurality of virtual devices, the communication unit communicating with an external network device, a storage unit storing an integrated offload cache for the plurality of virtual devices, and the communication unit. If session information corresponding to session information of the received packet exists in the unified offload cache, at least one virtual to be transmitted by the packet by referring to information stored in the unified offload cache in association with the corresponding session information. And a control unit for determining a device and controlling the at least one virtual device to process the packet through TCP offload.

Description

가상 네트워크를 위한 오프로드 장치 및 방법{Offload apparatus and method for virtual network}Offload apparatus and method for virtual network

본 발명은 가상 네트워크를 위한 오프로드 장치 및 방법에 관한 것으로, 보다 구체적으로 통합 오프로드 캐시를 이용하여 복수의 가상 장비 간 오프로드를 제공하는 오프로드 장치 및 방법에 관한 것이다. The present invention relates to an offload apparatus and method for a virtual network, and more particularly, to an offload apparatus and method for providing offload between a plurality of virtual equipment by using an integrated offload cache.

통신 기술이 발전함에 따라 네트워크에서 송수신되는 패킷의 양은 급격하게 증가하고 있다. 그에 따라 발생하는 로우 레이턴시(Low Latency) 문제를 해결하고 고성능 네트워킹(High Performance Networking)을 구현하기 위해 TCP 오프로드(offload)(이하, 오프로드) 기술이 등장하였다. As communication technology advances, the amount of packets transmitted and received on a network is increasing rapidly. In order to solve the low latency problem and high performance networking, TCP offload (offload) technology has emerged.

오프로드는 CPU가 OS 커널에서 수행되는 TCP/IP 처리를 수행하지 않도록 하여 CPU의 오버헤드를 줄이고 패킷 처리/전송 속도를 향상시키는 기술이다. 오프로드는 네트워크 인터페이스 카드(Network Interface Card; 이하 NIC)가CPU로 패킷을 전달하지 않고 직접 처리함으로써 적용된다. Offloading is a technique that reduces CPU overhead and improves packet processing / transmission speed by preventing the CPU from performing TCP / IP processing performed by the OS kernel. Offloading is applied by the Network Interface Card (NIC) directly processing the packet without passing it to the CPU.

이러한 오프로드 기술은 가상 네트워크 환경에서도 적용될 수 있는데, 이는 하나의 물리 장비에 생성된 각각의 가상 장비가 패킷을 송수신할 때, 임의의 가상 장비에서 패킷이 CPU에서 처리되는 대신, NIC를 통해 직접 처리됨으로써 구현된다. This offload technique can be applied in a virtual network environment. When each virtual device created in one physical device transmits and receives a packet, the packet is processed directly by the NIC instead of being processed by the CPU in any virtual device. Is implemented.

이와 같이 오프로드는 단일 장비 내에서 적용되는 기술로, 가상화 환경에서도 각각의 단일 가상 장비 내에서 수행된다.As such, offloading is applied within a single device, even in a virtualized environment, within each single virtual device.

그러나 가상 네트워크 환경은 단일 장비의 리소스를 이용하여 복수의 네트워크 장비들을 구현하기 때문에 실제 네트워크 환경과 비교하여 성능이 떨어진다. 따라서, 단일 장비 내의 가상 장비들로 구성되는 가상 네트워크 환경에서 패킷 처리 속도를 향상시키기 위한 효율적인 오프로드 방법이 요구된다. However, since the virtual network environment implements a plurality of network devices by using the resources of a single device, the performance is inferior to the actual network environment. Therefore, there is a need for an efficient offload method for improving packet processing speed in a virtual network environment composed of virtual devices in a single device.

본 발명은 상기한 문제점을 해결하기 위한 것으로, 가상 네트워크 내에서 가상 장비 간 오프로드를 적용할 수 있도록 통합 오프로드 캐시(offload cache)를 포함하는 가상 네트워크를 위한 오프로드 장치 및 방법을 제공한다. The present invention is to solve the above problems, and provides an offload apparatus and method for a virtual network including an integrated offload cache to apply the offload between virtual devices in the virtual network.

또한, 본 발명은 통합 오프로드 캐시를 통해 임의의 패킷에 대하여 오프로드가 적용되는 경우에, 가상 네트워크 내의 가상 보안 장비는 별도의 오프로드 제어를 수행하지 않고 해당 패킷을 위해 필요한 기설정된 보안 기능, 예를 들어 방화벽(Firewall), 네트워크 주소 변환(Network Address Translation; NAT), 침입 차단(Intrusion Prevention), 침입 탐지(Intrusion Detection) 등을 수행하도록 제어되는 가상 네트워크를 위한 오프로드 장치 및 방법을 제공한다. In addition, when the offload is applied to any packet through the integrated offload cache, the virtual security equipment in the virtual network does not perform a separate offload control, the predetermined security function required for the packet, For example, the present invention provides an offloading device and method for a virtual network that is controlled to perform firewall, network address translation (NAT), intrusion prevention, intrusion detection, and the like. .

상술한 과제를 해결하기 위한 본 발명에 따른 가상 네트워크를 위한 오프로드 장치는, 복수의 가상 장비로 구성되는 가상 네트워크를 운영하는 위한 오프로드 장치로, 외부 네트워크 장치와 통신하는 통신부, 상기 복수의 가상 장비를 위한 통합 오프로드 캐시를 저장하는 저장부 및 상기 통신부를 통하여 수신된 패킷의 세션 정보와 대응되는 세션 정보가 상기 통합 오프로드 캐시에 존재하면, 상기 대응되는 세션 정보와 연계하여 상기 통합 오프로드 캐시에 저장된 정보를 참조하여, 상기 패킷이 경유할 적어도 하나의 가상 장비를 결정하고, 상기 적어도 하나의 가상 장비가 TCP 오프로드를 통하여 상기 패킷을 처리하도록 제어하는 제어부를 포함하는 것을 특징으로 한다.The offload device for a virtual network according to the present invention for solving the above problems is an offload device for operating a virtual network consisting of a plurality of virtual equipment, a communication unit for communicating with an external network device, the plurality of virtual A storage storing an integrated offload cache for the device and session information corresponding to session information of a packet received through the communication unit exists in the integrated offload cache, the integrated offload in association with the corresponding session information. And a controller configured to determine at least one virtual device to which the packet passes through, based on the information stored in the cache, and to control the at least one virtual device to process the packet through TCP offload.

또한, 상기 제어부는, 상기 수신된 패킷의 세션 정보와 대응되는 세션 정보가 상기 통합 오프로드 캐시에 존재하지 않으면, 상기 수신된 패킷의 세션 정보를 상기 통합 오프로드 캐시에 저장하고, 상기 패킷이 상기 적어도 하나의 가상 장비를 경유하는 동안 경로 정보 및 처리 정보를 상기 통합 오프로드 캐시에 상기 세션 정보와 연계하여 저장하되, 상기 경로 정보는, 상기 적어도 하나의 가상 장비의 식별 정보를 포함하고, 상기 처리 정보는, 상기 적어도 하나의 가상 장비에서 상기 패킷에 대해 수행되는 동작에 관한 정보인 것을 특징으로 한다.If the session information corresponding to the session information of the received packet does not exist in the unified offload cache, the controller stores the session information of the received packet in the unified offload cache and the packet is stored in the unified offload cache. Store path information and processing information in association with the session information in the integrated offload cache while passing through at least one virtual device, wherein the path information includes identification information of the at least one virtual device; The information may be information on an operation performed on the packet in the at least one virtual device.

또한, 상기 제어부는, 상기 경로 정보를 기초로, 상기 적어도 하나의 가상 장비를 결정하고, 상기 적어도 하나의 가상 장비가 상기 패킷에 대하여 TCP 처리를 수행하지 않고 가상 네트워크 인터페이스 카드 상에서 처리하여 전송하도록 제어하는 것을 특징으로 한다.The controller may be further configured to determine the at least one virtual device based on the path information and to process and transmit the at least one virtual device on a virtual network interface card without performing TCP processing on the packet. Characterized in that.

또한, 상기 제어부는, 상기 처리 정보를 기초로 상기 패킷에 대해 수행되어야 할 동작을 호출하여 상기 패킷을 처리하도록 상기 가상 장비를 제어하는 것을 특징으로 한다.The controller may control the virtual device to process the packet by calling an operation to be performed on the packet based on the processing information.

또한, 상기 처리 정보는, 임의의 가상 장비가 가상 보안 장비인 경우에, 상기 가상 보안 장비가 상기 패킷에 대해 수행하는 방화벽, 네트워크 주소 변환(Network Address Translation; NAT), 침입 차단, 침입 탐지 중 적어도 하나를 포함하는 네트워크 보안 처리에 관한 정보를 포함하는 것을 특징으로 한다.The processing information may include at least one of a firewall, network address translation (NAT), intrusion prevention, and intrusion detection performed by the virtual security device on the packet when any virtual device is a virtual security device. Characterized in that it comprises information relating to network security processing including one.

또한, 상술한 과제를 해결하기 위한 본 발명에 따른 가상 네트워크를 위한 오프로드 방법은, 복수의 가상 장비로 구성되는 가상 네트워크를 위한 오프로드 장치의 오프로드 방법으로, 외부로부터 패킷이 수신되면, 상기 수신된 패킷의 세션 정보와 대응되는 세션 정보가 상기 복수의 가상 장비를 위한 통합 오프로드 캐시에 존재하는지 판단하는 단계, 상기 세션 정보와 대응되는 세션 정보가 상기 통합 오프로드 캐시에 존재하면, 상기 대응되는 세션 정보와 연계하여 상기 통합 오프로드 캐시에 저장된 정보를 참조하여, 상기 패킷이 경유할 적어도 하나의 가상 장비를 결정하는 단계 및 TCP 오프로드를 통하여 상기 패킷을 처리하도록 상기 적어도 하나의 가상 장비를 제어하는 단계를 포함하는 것을 특징으로 한다. In addition, the offload method for a virtual network according to the present invention for solving the above problems is an offload method of an offload apparatus for a virtual network composed of a plurality of virtual equipment, when the packet is received from the outside, Determining whether session information corresponding to the session information of the received packet exists in an integrated offload cache for the plurality of virtual devices; if session information corresponding to the session information exists in the integrated offload cache, Determining at least one virtual device for the packet to pass through, referring to the information stored in the integrated offload cache in association with the session information, and processing the at least one virtual device to process the packet via TCP offload. It characterized in that it comprises a step of controlling.

또한, 상기 세션 정보와 대응되는 세션 정보가 상기 통합 오프로드 캐시에 존재하지 않으면, 상기 수신된 패킷의 세션 정보를 상기 통합 오프로드 캐시에 저장하는 단계 및 상기 패킷이 상기 적어도 하나의 가상 장비를 경유하는 동안 경로 정보 및 처리 정보를 상기 통합 오프로드 캐시에 상기 세션 정보와 연계하여 저장하는 단계를 더 포함하되, 상기 경로 정보는, 상기 적어도 하나의 가상 장비의 식별 정보를 포함하고, 상기 처리 정보는, 상기 적어도 하나의 가상 장비에서 상기 패킷에 대해 수행되는 동작에 관한 정보인 것을 특징으로 한다. Further, if session information corresponding to the session information does not exist in the unified offload cache, storing session information of the received packet in the unified offload cache and wherein the packet passes through the at least one virtual device. Storing path information and processing information in the integrated offload cache in association with the session information, wherein the path information includes identification information of the at least one virtual device. And information on an operation performed on the packet in the at least one virtual device.

또한, 상기 적어도 하나의 가상 장비를 결정하는 단계는, 상기 경로 정보를 기초로 상기 적어도 하나의 가상 장비를 결정하는 단계를 포함하고, 상기 적어도 하나의 가상 장비를 제어하는 단계는, 상기 적어도 하나의 가상 장비가 상기 패킷에 대하여 TCP 처리를 수행하지 않고 가상 네트워크 인터페이스 카드 상에서 처리하여 전송하도록 제어하는 단계를 포함하는 것을 특징으로 한다.The determining of the at least one virtual device may include determining the at least one virtual device based on the path information, and controlling the at least one virtual device may include determining the at least one virtual device. And controlling the virtual device to process and transmit the packet on the virtual network interface card without performing TCP processing on the packet.

또한, 상기 적어도 하나의 가상 장비를 제어하는 단계는, 상기 처리 정보를 기초로 상기 패킷에 대해 수행되어야 할 동작을 호출하여 상기 패킷을 처리하도록 상기 가상 장비를 제어하는 단계를 포함하는 것을 특징으로 한다.The controlling of the at least one virtual device may include controlling the virtual device to process the packet by calling an operation to be performed on the packet based on the processing information. .

또한, 상기 처리 정보는, 임의의 가상 장비가 가상 보안 장비인 경우에, 상기 가상 보안 장비가 상기 패킷에 대해 수행하는 방화벽, 네트워크 주소 변환(Network Address Translation; NAT), 침입 차단, 침입 탐지 중 적어도 하나를 포함하는 네트워크 보안 처리에 관한 정보를 포함하는 것을 특징으로 한다.The processing information may include at least one of a firewall, network address translation (NAT), intrusion prevention, and intrusion detection performed by the virtual security device on the packet when any virtual device is a virtual security device. Characterized in that it comprises information relating to network security processing including one.

본 발명에 따른 가상 네트워크를 위한 오프로드 장치 및 방법은 종래에 가상 장비 별로 오프로드를 수행하는 경우 가상 장비 별로 오프로드 캐시를 요구하던 것과 비교하여, 통합 오프로드 캐시만을 요구하기 때문에 메모리 활용이 효율적인 이점을 갖는다.The offloading apparatus and method for a virtual network according to the present invention requires only an integrated offload cache in comparison with the offload cache for each virtual device when performing offload for each virtual device. Has an advantage.

또한, 본 발명에 따른 가상 네트워크를 위한 오프로드 장치 및 방법은 장비 간 오프로드를 통해 패킷 전송 속도를 향상시킬 수 있으며, 각각의 가상 장비가 독립적으로 오프로드 캐시를 참조하는 것과 달리 한 번의 통합 오프로드 캐시 참조를 통해 오프로드를 제어할 수 있으므로 향상된 오프로드 성능을 기대할 수 있게 한다.In addition, the offloading apparatus and method for a virtual network according to the present invention can improve the packet transmission rate through offloading between devices, and unlike each virtual device refers to the offload cache independently, one integration off Offload control can be controlled through load cache references, allowing for improved offload performance.

도 1은 본 발명에 따른 가상 네트워크의 일 실시 예를 나타낸 도면이다.
도 2는 가상 네트워크에서 일반적인 패킷 전달 흐름을 나타낸 도면이다.
도 3은 가상 네트워크에서 단일 가상 장비의 오프로드 방법을 설명하기 위한 도면이다.
도 4는 본 발명에 따른 오프로드 방법을 설명하기 위한 도면이다.
도 5는 본 발명에 따른 오프로드 방법을 나타낸 흐름도이다.
도 6은 본 발명에 따른 오프로드 장치의 구조를 나타낸 블록도이다.
1 is a diagram illustrating an embodiment of a virtual network according to the present invention.
2 is a diagram illustrating a general packet forwarding flow in a virtual network.
3 is a diagram for describing a method of offloading a single virtual device in a virtual network.
4 is a view for explaining the offload method according to the present invention.
5 is a flowchart illustrating an offload method according to the present invention.
6 is a block diagram showing the structure of an offload device according to the present invention.

본 명세서의 실시 예를 설명함에 있어 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우, 그 상세한 설명은 생략될 수 있다. In the following description of embodiments of the present disclosure, when it is determined that a detailed description of a related well-known configuration or function may obscure the gist of the present disclosure, the detailed description may be omitted.

본 명세서에서 사용되는 "포함한다," "포함할 수 있다." 등의 표현은 개시된 해당 기능, 동작, 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작, 구성요소 등을 제한하지 않는다. 또한, 본 명세서에서, "포함하다." 또는 "가지다." 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.  As used herein, "includes," "can include." And the like refer to the existence of the corresponding function, operation, component, etc. disclosed, and do not limit one or more additional functions, operations, components, and the like. Also, in this specification, "includes." Or "have." And the like are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof described in the specification, and that one or more other features or numbers, step, action, component, part, or It should be understood that they do not preclude the presence or possibility of adding these in advance.

본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.As used herein, the singular forms "a", "an" and "the" include plural forms unless the context clearly indicates otherwise.

이하, 첨부된 도면을 참조하여 본 발명을 설명한다. Hereinafter, with reference to the accompanying drawings will be described the present invention.

도 1은 본 발명에 따른 가상 네트워크의 일 실시 예를 나타낸 도면이다. 도 2는 가상 네트워크에서 일반적인 패킷 전달 흐름을 나타낸 도면이고, 도 3은 가상 네트워크에서 단일 가상 장비의 오프로드 방법을 설명하기 위한 도면이다.1 is a diagram illustrating an embodiment of a virtual network according to the present invention. FIG. 2 is a diagram illustrating a general packet forwarding flow in a virtual network, and FIG. 3 is a diagram for describing a method of offloading a single virtual device in a virtual network.

도 1을 참조하면, 가상 네트워크는 본 발명의 오프로드 장치(100) 내에 구현된다. Referring to FIG. 1, a virtual network is implemented in the offload device 100 of the present invention.

가상 네트워크는 오프로드 장치(100) 내에 가상 머신으로 구현되는 적어도 하나의 가상 장비(130-1, 130-2, 130-3)로 구성된다. The virtual network is composed of at least one virtual equipment (130-1, 130-2, 130-3) implemented as a virtual machine in the offload device 100.

도 2 및 도 3을 참조하면, 오프로드 장치(100)는 CPU, 메모리, 디스크, 특히 NIC(111) 등을 포함하는 다양한 물리 자원(110)을 갖는다. 오프로드 장치(100)는 NIC(111)를 통하여, 외부의 네트워크 장치로부터 수신되는 패킷을 적어도 하나의 가상 장비(130-1, 130-2, 130-3)로 전달하고, 적어도 하나의 가상 장비(130-1, 130-2, 130-3)로부터 외부 네트워크 장치로 패킷을 전송한다.2 and 3, the offload device 100 has various physical resources 110 including a CPU, a memory, a disk, in particular a NIC 111, and the like. The offload device 100 transmits a packet received from an external network device to the at least one virtual device 130-1, 130-2, and 130-3 through the NIC 111, and at least one virtual device. Send a packet from (130-1, 130-2, 130-3) to an external network device.

물리 자원, 예를 들어 디스크 상에는 호스트 OS(120)가 설치된다. 호스트 OS(120)는 CPU와 같은 제어부에 의해 구동되어, 오프로드 장치(100)의 다양한 동작을 위한 제어를 수행할 수 있다. 호스트 OS(120)는 메모리의 커널 영역에 저장된 데이터들을 이용하여 제어 동작을 수행하는 커널(121)을 갖는다. 커널(121)은 예를 들어, NIC(111)로부터 전달되는 패킷의 TCP/IP 계층 처리 등을 수행할 수 있다. The host OS 120 is installed on a physical resource, for example, a disk. The host OS 120 may be driven by a controller such as a CPU to perform control for various operations of the offload apparatus 100. The host OS 120 has a kernel 121 that performs a control operation using data stored in a kernel region of a memory. The kernel 121 may perform, for example, TCP / IP layer processing of a packet transmitted from the NIC 111.

다양한 실시 예에서, 호스트 OS(120)는 적어도 하나의 가상 장비(130-1, 130-2, 130-3)를 생성하고 관리하기 위한 제어 동작을 수행하기 위한 프로그램, 소프트웨어, 명령들을 포함할 수 있다. 일 실시 예에서, 호스트 OS(120)는 적어도 하나의 가상 장비(130-1, 130-2, 130-3)를 생성/제거, 제어하고 관리하기 위한 하이퍼바이저를 구동하기 위한 프로그램, 소프트웨어, 명령들을 포함할 수 있다. In various embodiments of the present disclosure, the host OS 120 may include a program, software, and instructions for performing a control operation for creating and managing at least one virtual device 130-1, 130-2, and 130-3. have. In one embodiment, the host OS 120 is a program, software, or command for driving a hypervisor to create / remove, control, and manage at least one virtual device 130-1, 130-2, 130-3. Can include them.

하이퍼바이저를 통하여 또는 콘텐트 기반 방식으로 호스트 OS(120) 상에 적어도 하나의 가상 장비(130-1, 130-2, 130-3)가 생성될 수 있다. 호스트 OS(120)는 각각의 가상 장비(130-1, 130-2, 130-3)를 위해 CPU, 메모리, 디스크와 같은 물리 자원의 일부 영역 또는 일부 양을 할당하고, 할당된 물리 자원, 예를 들어, 디스크 상에 설치된 게스트 OS(133-1, 133-2, 133-3)를 구동함으로써 가상 장비를 실현할 수 있다. At least one virtual device 130-1, 130-2, 130-3 may be generated on the host OS 120 through a hypervisor or in a content-based manner. The host OS 120 allocates some area or some amount of physical resources such as CPU, memory, and disk for each of the virtual devices 130-1, 130-2, and 130-3, and allocates the allocated physical resources, eg, For example, the virtual equipment can be realized by driving the guest OSs 133-1, 133-2, and 133-3 installed on the disk.

각각의 가상 장비(130-1, 130-2, 130-3)는 가상 NIC(131-1, 131-2, 131-3)을 가질 수 있다. 각각의 가상 장비(130-1, 130-2, 130-3)는 가상 NIC(131-1, 131-2, 131-3)를 통하여, 서로 패킷을 송수신하거나, 오프로드 장치(100)를 통해 외부 네트워크 장치와 패킷을 송수신할 수 있다. Each virtual device 130-1, 130-2, 130-3 may have virtual NICs 131-1, 131-2, and 131-3. Each of the virtual devices 130-1, 130-2, and 130-3 transmits and receives packets to and from each other through the virtual NICs 131-1, 131-2, and 131-3, or through the offload device 100. Send and receive packets with external network devices.

일 실시 예에서, 가상 NIC(131-1, 131-2, 131-3)는 가상 장비 내 오프로드를 수행하기 위한 오프로드 캐시(offload cache)(132-1, 132-2, 132-3)를 가질 수 있다. 오프로드 캐시(132-1, 132-2, 132-3)는 각각의 가상 장비(130-1, 130-2, 130-3)로 유입되는 패킷에 대한 출발지/목적지의 IP 주소, 포트 번호 등을 포함하는 세션 정보를 저장할 수 있다. 가상 NIC(131-1, 131-2, 131-3)는 가상 장비(130-1, 130-2, 130-3)를 통해 수신된 패킷이 오프로드 캐시에 저장된 세션 정보를 갖는 경우, 패킷을 CPU, 즉 게스트 OS(133-1, 133-2, 133-3)의 커널로 전달하지 않고, 저장된 세션 정보를 기초로 패킷을 직접 처리할 수 있다.In one embodiment, the virtual NICs 131-1, 131-2, and 131-3 are offload caches 132-1, 132-2, and 132-3 for performing offload in the virtual equipment. It can have The offload caches 132-1, 132-2, and 132-3 store the source / destination IP addresses, port numbers, and the like for packets flowing into the respective virtual devices 130-1, 130-2, and 130-3. Session information including the data may be stored. The virtual NICs 131-1, 131-2, and 131-3 transmit packets when the packets received through the virtual devices 130-1, 130-2, and 130-3 have session information stored in the offload cache. The packet may be directly processed based on the stored session information without being transferred to the CPU, that is, the kernels of the guest OSs 133-1, 133-2, and 133-3.

게스트 OS(133-1, 133-2, 133-3)는 각각의 가상 장비(130-1, 130-2, 130-3)를 제어하도록 구성된다. 호스트 OS(120)와 유사하게, 게스트 OS(133-1, 133-2, 133-3)에는 가상 NIC(131-1, 131-2, 131-3)로부터 전달되는 패킷의 TCP/IP 계층 처리를 수행하기 위한 커널(미도시)이 마련된다.The guest OSs 133-1, 133-2, and 133-3 are configured to control the respective virtual devices 130-1, 130-2, and 130-3. Similar to host OS 120, guest OS 133-1, 133-2, and 133-3 have TCP / IP layer processing of packets forwarded from virtual NICs 131-1, 131-2, and 131-3. A kernel (not shown) for performing the above is provided.

각각의 가상 장비(130-1, 130-2, 130-3)의 게스트 OS(133-1, 133-2, 133-3)에는 다양한 프로그램, 소프트웨어, 애플리케이션(134-1, 134-2, 134-3)들이 구동된다. 일 실시 예에서, 가상 장비가 가상 보안 장비인 경우, 애플리케이션(134-1, 134-2, 134-3)은 네트워크 보안을 위한 동작으로, 방화벽, NAT, IPS, IDS 등을 위한 애플리케이션일 수 있다. 이러한 네트워크 보안 애플리케이션은 각각의 가상 장비(130-1, 130-2, 130-3)에 수신되는 패킷의 악성 여부를 판단하여, 패킷 전달을 허용/차단할 수 있다. The guest OSs 133-1, 133-2, and 133-3 of each of the virtual devices 130-1, 130-2, and 130-3 have various programs, software, and applications 134-1, 134-2, and 134. -3) are driven. In an embodiment, when the virtual device is a virtual security device, the applications 134-1, 134-2, and 134-3 may be applications for a firewall, NAT, IPS, IDS, and the like as an operation for network security. . Such a network security application may determine whether a packet received by each of the virtual devices 130-1, 130-2, and 130-3 is malicious, and allow / block packet forwarding.

상술한 구조를 통하여, 적어도 하나의 가상 장비(130-1, 130-2, 130-3)는 가상 네트워크상에서 요구되는 동작들을 수행한다. 예를 들어, 적어도 하나의 가상 장비(130-1, 130-2, 130-3)는 서로 패킷을 송신/수신할 수 있다. 적어도 하나의 가상 장비(130-1, 130-2, 130-3) 중 적어도 일부는 오프로드 장치(100)의 외부에 존재하며 오프로드 장치(100)와 연결된 네트워크 장치와 통신을 수행할 수 있다. 이러한 가상 장비는, 외부의 네트워크 장치로부터 수신된 패킷을 가상 네트워크 내의 다른 가상 장비로 전달하거나, 가상 네트워크 내의 다른 가상 장비로부터 수신된 패킷을 외부의 네트워크 장치로 전달할 수 있다. Through the above-described structure, at least one virtual device (130-1, 130-2, 130-3) performs the operations required on the virtual network. For example, the at least one virtual device 130-1, 130-2, and 130-3 may transmit / receive packets with each other. At least some of the at least one virtual device 130-1, 130-2, 130-3 may be in communication with the network device that is external to the offload device 100 and connected to the offload device 100. . Such a virtual device may forward a packet received from an external network device to another virtual device in the virtual network, or forward a packet received from another virtual device in the virtual network to an external network device.

이러한 적어도 하나의 가상 장비(130-1, 130-2, 130-3)는 라우터, 스위치와 같은 패킷 전달 제어 장비(가상 라우터, 가상 스위치)일 수 있다. 또는, 적어도 하나의 가상 장비(130-1, 130-2, 130-3)는 네트워크 보안을 수행하는 보안 장비(가상 보안 장비)일 수 있다. 다양한 실시 예에서, 가상 네트워크는 패킷 전달 제어 장비와 보안 장비가 혼합되어 구성될 수 있다. 예를 들어, 도 1의 실시 예에서, 제1 가상 장비(130-1) 및 제3 가상 장비(130-2)는 가상 스위치이고, 제2 가상 장비(130-2)는 가상 보안 장비이다. The at least one virtual device 130-1, 130-2, 130-3 may be a packet forwarding control device (virtual router, virtual switch) such as a router or a switch. Alternatively, the at least one virtual device 130-1, 130-2, 130-3 may be a security device (virtual security device) that performs network security. In various embodiments, the virtual network may be a mixture of packet forwarding control equipment and security equipment. For example, in the embodiment of FIG. 1, the first virtual device 130-1 and the third virtual device 130-2 are virtual switches, and the second virtual device 130-2 is a virtual security device.

다양한 실시 예에서, 도 1에 도시된 가상 장비보다 더 많은 가상 장비가 가상 네트워크 내에 마련될 수 있다. In various embodiments, more virtual devices may be provided in the virtual network than the virtual devices shown in FIG. 1.

상술한 구조를 갖는 가상 네트워크에서, 오프로드 장치(100)에 유입된 패킷은 도 2에 도시된 것과 같은 경로로 전달될 수 있다.In the virtual network having the above-described structure, the packet introduced into the offload device 100 may be delivered in the path as shown in FIG.

구체적으로, 오프로드 장치(100)가 NIC(111)를 통하여 패킷이 수신되면, NIC(111)는 수신된 패킷의 TCP/IP 처리를 위해 패킷을 커널(121)로 전달한다. 커널(121)은 패킷을 처리하여, 해당 패킷이 전달되어야 할 가상 장비, 즉 장치 내 출발지 가상 장비로 전달한다. 도 2 및 도 3의 실시 예에서, 출발지 가상 장비는 제1 가상 장비(130-1)이다. In detail, when the offload apparatus 100 receives a packet through the NIC 111, the NIC 111 transmits the packet to the kernel 121 for TCP / IP processing of the received packet. The kernel 121 processes the packet and delivers the packet to the virtual device to which the packet is to be delivered, that is, the source virtual device in the device. 2 and 3, the starting virtual equipment is the first virtual equipment 130-1.

제1 가상 장비(130-1)는 제1 가상 NIC(131-1)를 통하여 패킷을 수신할 수 있다. 제1 가상 NIC(131-1)는 수신된 패킷의 세션 정보를 분석하여, 오프로드 캐시에 기저장된 세션 정보에 대응되는지를 판단한다. 수신된 패킷의 세션 정보와 대응되는 기저장된 세션 정보가 존재하지 않으면, 제1 가상 NIC(131-1)는 해당 패킷이 TCP/IP 처리될 수 있도록 패킷을 제1 게스트 OS(133-1)의 커널로 전달하고, 해당 패킷의 세션 정보를 오프로드 캐시에 저장할 수 있다. 패킷은 제1 게스트 OS(133-1) 상의 제1 애플리케이션(134-1)으로 전달되어 처리될 수 있다. 처리된 패킷은 다시 제1 가상 NIC(131-1)로 전달되고, 제1 가상 NIC(131-1)는 해당 패킷이 전달되어야 할 가상 장비, 예를 들어 제2 가상 장비(130-2)로 패킷을 전송할 수 있다. The first virtual device 130-1 may receive a packet through the first virtual NIC 131-1. The first virtual NIC 131-1 analyzes the session information of the received packet to determine whether it corresponds to the session information previously stored in the offload cache. If the prestored session information corresponding to the session information of the received packet does not exist, the first virtual NIC 131-1 transmits the packet to the first guest OS 133-1 so that the packet can be TCP / IP processed. It can be delivered to the kernel and the session information of the packet can be stored in the offload cache. The packet may be delivered to and processed by the first application 134-1 on the first guest OS 133-1. The processed packet is passed back to the first virtual NIC 131-1, and the first virtual NIC 131-1 is sent to the virtual device to which the packet is to be delivered, for example, the second virtual device 130-2. The packet can be sent.

제2 가상 장비(130-2)로 전송된 패킷은, 제1 가상 장비(130-1)에서와 유사하게 처리되어, 제3 가상 장비(1300-3)로 전송될 수 있다. 또한, 제3 가상 장비(130-3)로 전송된 패킷은, 제1 및 제2 가상 장비(130-1, 130-2)에서와 유사하게 처리될 수 있다.The packet transmitted to the second virtual device 130-2 may be processed similarly to the first virtual device 130-1 and transmitted to the third virtual device 1300-3. In addition, the packet transmitted to the third virtual device 130-3 may be processed similarly to the first and second virtual devices 130-1 and 130-2.

오프로드 장치(100) 내에서 패킷은 최종적으로 전달되어야 하는 가상 장비, 즉 장치 내 목적지 가상 장비로 전송된다. 도 2 및 도 3의 실시 예에서, 목적지 가상 장비는 제3 가상 장비(130-3)이다.In the offload device 100, the packet is sent to the virtual device that must be finally delivered, that is, to the destination virtual device in the device. 2 and 3, the destination virtual equipment is the third virtual equipment 130-3.

패킷 처리에 의해, 패킷이 오프로드 장치(100) 외부의 네트워크 장치로 전송되어야 하는 경우, 제3 가상 장비(130-3)는 오프로드 장치(100)의 NIC(111)를 통해 패킷을 외부 네트워크 장치로 전송할 수 있다.When the packet is to be transmitted to a network device outside the offload device 100 by the packet processing, the third virtual device 130-3 transmits the packet to the external network through the NIC 111 of the offload device 100. Can be sent to the device.

만약, 제1 가상 장비(130-1)에 수신된 패킷의 세션 정보와 대응되는 오프로드 캐시에 기저장된 세션 정보가 존재하는 경우, 도 3에 도시된 바와 같이, 제1 가상 NIC(131-1)는 패킷을 제1 게스트 OS(133-1)의 커널로 전달하지 않고 직접 처리하는 오프로드를 수행할 수 있다. 예를 들어, 제1 가상 NIC(131-1)는 오프로드 캐시에 저장된 세션 정보를 기초로 해당 패킷에 대하여 수행되어야 할 처리 동작을 수행하고, 세션 정보에 따라 해당 패킷을 목적지에 바로 전송할 수 있다. If the session information pre-stored in the offload cache corresponding to the session information of the packet received in the first virtual device 130-1 exists, as shown in FIG. 3, the first virtual NIC 131-1 ) May perform the offload process of the packet directly without passing the packet to the kernel of the first guest OS 133-1. For example, the first virtual NIC 131-1 may perform a processing operation to be performed on the packet based on the session information stored in the offload cache, and transmit the packet directly to the destination according to the session information. .

이러한 단일 가상 장비 내 오프로드는 도 3에 도시된 것처럼 각각의 가상 장비(130-1, 130-2, 130-3)에 마련되는 가상 NIC(131-1, 131-2, 131-3)에 의하여 각각 수행될 수 있다. Offload in such a single virtual device is shown in the virtual NIC (131-1, 131-2, 131-3) provided in each of the virtual devices (130-1, 130-2, 130-3) as shown in FIG. Each can be performed.

단일 가상 장비 내 오프로드를 이용하면, 각각의 가상 장비(130-1, 130-2, 130-3)에서 패킷에 대한 장비 내 계층(예를 들어, 인터넷 프로토콜 계층) 처리가 모두 경유되지 않으므로 빠른 패킷 처리 성능을 확보할 수 있다. 그러나 이러한 단일 가상 장비 내 오프로드는 가상 장비(130-1, 130-2, 130-3) 수만큼의 가상 NIC(131-1, 131-2, 131-3)를 위한 오프로드 캐시 용량이 확보되어야 하며, 각각의 가상 장비(130-1, 130-2, 130-3)가 개별적으로 오프로드 캐시를 참조해야 하므로 패킷 처리 속도 향상에 제한이 따른다.Using offload within a single virtual device, each virtual device 130-1, 130-2, 130-3 does not pass all of the in-device layer (e.g., Internet Protocol layer) processing of the packet, which is fast. Packet processing performance can be secured. However, this offload within a single virtual appliance is freed of offload cache capacity for as many virtual NICs (131-1, 131-2, 131-3) as there are virtual machines (130-1, 130-2, 130-3). Since the virtual devices 130-1, 130-2, and 130-3 must refer to the offload cache individually, there is a limit in improving packet processing speed.

본 발명에서는 이러한 문제점을 해결하기 위하여 통합 오프로드 캐시를 이용한 장비 간 오프로드 방법을 제공한다. 이에 대하여 구체적인 실시 예를 후술한다. The present invention provides an off-device offload method using an integrated offload cache to solve this problem. This will be described in detail later.

도 4는 본 발명에 따른 오프로드 방법을 설명하기 위한 도면이다.4 is a view for explaining the offload method according to the present invention.

도 4를 참조하면, 본 발명에 따른 오프로드 장치(200)는 도 1에 도시된 오프로드 장치(100)와 비교하여 통합 오프로드 캐시(222)를 더 포함한다. 통합 오프로드 캐시(222)는 도 4에 도시된 바와 같이 호스트 OS(220) 상에 마련될 수 있으나, 반드시 에이 한정되는 것은 아니며, 다양한 실시 예에서 통합 오프로드 캐시(222)는 NIC(211) 상에 마련되거나 호스트 OS(220) 상에서 별도로 구동되는 애플리케이션에 의해 제공될 수 있다.Referring to FIG. 4, the offload apparatus 200 according to the present invention further includes an integrated offload cache 222 as compared to the offload apparatus 100 illustrated in FIG. 1. The aggregate offload cache 222 may be provided on the host OS 220 as shown in FIG. 4, but is not necessarily limited thereto. In various embodiments, the aggregate offload cache 222 may include a NIC 211. It may be provided by an application provided on or run separately on the host OS (220).

통합 오프로드 캐시(222)는 오프로드 장치(100)로 유입되는 패킷, 즉 적어도 하나의 가상 장비(230-1, 230-2, 230-3)로 유입되는 모든 패킷에 대한 세션 정보를 저장할 수 있다. 구체적으로, 통합 오프로드 캐시(222)는 오프로드 장치(100)에 유입되는 패킷의 세션 정보로써 출발지/목적지의 IP 주소, 포트 번호 등에 관한 정보를 저장할 수 있다. The integrated offload cache 222 may store session information about packets flowing into the offload device 100, that is, all packets flowing into the at least one virtual device 230-1, 230-2, and 230-3. have. In detail, the integrated offload cache 222 may store information about an IP address, a port number, and the like of a source / destination as session information of a packet flowing into the offload apparatus 100.

또한, 통합 오프로드 캐시(222)는 패킷의 경로 정보와 처리 정보를 세션 정보와 연계하여 저장할 수 있다. In addition, the integrated offload cache 222 may store the path information and the processing information of the packet in association with the session information.

구체적으로, 통합 오프로드 캐시(222)는 오프로드 장치(100)에 유입된 패킷이 적어도 하나의 가상 장비(230-1, 230-2, 230-3)들 사이에서 송수신되는 동안, 패킷이 통과한 적어도 하나의 가상 장비(230-1, 230-2, 230-3)에 대한 정보를 경로 정보로써 저장할 수 있다. 이때, 경로 정보는 가상 장비의 식별 정보 등을 포함할 수 있다. In detail, the integrated offload cache 222 passes the packet while the packet introduced to the offload apparatus 100 is transmitted and received between at least one virtual device 230-1, 230-2, 230-3. Information about one or more virtual devices 230-1, 230-2, and 230-3 may be stored as path information. In this case, the path information may include identification information of the virtual device.

통합 오프로드 캐시(222)는 패킷이 통과한 적어도 하나의 가상 장비(230-1, 230-2, 230-3) 내에서 해당 패킷에 대해 수행되는 동작에 관한 처리 정보를 저장할 수 있다. 일 실시 예에서, 가상 장비가 가상 보안 장비인 경우, 처리 정보는 해당 패킷에 대하여 수행되는 네트워크 보안 동작, 예를 들어 방화벽, NAT, 침입 차단, 침입 탐지 등에 관한 API 정보를 포함할 수 있다. The integrated offload cache 222 may store processing information regarding an operation performed on the packet in at least one virtual device 230-1, 230-2, 230-3 through which the packet passed. In one embodiment, when the virtual device is a virtual security device, the processing information may include API information about a network security operation performed on the packet, for example, firewall, NAT, intrusion prevention, intrusion detection, and the like.

패킷에 대한 경로 정보 및 처리 정보에 대한 저장은 패킷이 목적지 가상 장비에 도달할 때까지, 또는 오프로드 장치(100)로부터 유출될 때까지 수행될 수 있다. The storage of path information and processing information for the packet may be performed until the packet reaches the destination virtual equipment or until it exits the offload device 100.

통합 오프로드 캐시(222)에 저장된 정보는 장비 간 오프로드를 위해 이용될 수 있다. 오프로드 장치(200)는 이전에 유입된 패킷과 동일한 세션 정보를 갖는 패킷이 유입되는 경우, 즉 패킷의 세션 정보가 통합 오프로드 캐시(222)에 기저장된 세션 정보 중 어느 하나와 대응되는 경우, 대응되는 세션 정보와 연계하여 통합 오프로드 캐시(222)에 저장된 경로 정보 및 처리 정보를 기초로 장비 간 오프로드를 수행한다. The information stored in the unified offload cache 222 may be used for offload between devices. When the offload apparatus 200 receives a packet having the same session information as the previously introduced packet, that is, when the session information of the packet corresponds to any one of the session information previously stored in the integrated offload cache 222, The device performs offloading based on the path information and processing information stored in the integrated offload cache 222 in association with the corresponding session information.

구체적으로, 오프로드 장치(200)는 통합 오프로드 캐시(222)에 저장된 경로 정보를 기초로, 패킷이 출발지 가상 장비로부터 목적지 가상 장비까지 TCP/IP 처리 없이, 즉 가상 NIC를 통하여 직접 송수신되도록 적어도 하나의 가상 장비(230-1, 230-2, 230-3)를 제어할 수 있다. 또한, 오프로드 장치(200)는 통합 오프로드 캐시(222)에 저장된 처리 정보를 기초로, 임의의 장비에서 수행되어야 하는 처리 동작을 해당 패킷에 대해 수행하도록 적어도 하나의 가상 장비(230-1, 230-2, 230-3)를 제어할 수 있다. Specifically, the offload device 200 may, based on the path information stored in the unified offload cache 222, at least so that the packet is transmitted and received directly from the source virtual device to the destination virtual device without TCP / IP processing, that is, directly through the virtual NIC. One virtual device 230-1, 230-2, 230-3 may be controlled. In addition, the offload device 200 may perform processing operations on the corresponding packet based on the processing information stored in the integrated offload cache 222 for at least one virtual device 230-1. 230-2, 230-3) can be controlled.

이에 대한 보다 구체적인 내용은 후술한다. More details on this will be described later.

도 4에 도시된 다른 구성 요소들은 도 1을 참조하여 설명한 것과 유사하므로, 여기서는 자세한 설명을 생략한다.The other components shown in FIG. 4 are similar to those described with reference to FIG. 1, and thus detailed descriptions thereof will be omitted.

도 5는 본 발명에 따른 오프로드 방법을 나타낸 흐름도이다. 이하의 방법은, 오프로드 장치(200)가 적어도 하나의 가상 장비(230-1, 230-2. 230-3)를 생성하고 가상 네트워크를 구성한 이후에 수행될 수 있다. 5 is a flowchart illustrating an offload method according to the present invention. The following method may be performed after the offload apparatus 200 creates at least one virtual equipment 230-1, 230-2, 230-3 and configures the virtual network.

도 5를 참조하면, 외부로부터 패킷이 수신되면(501), 오프로드 장치(200)는 먼저 수신된 패킷의 세션 정보를 분석한다(502). 또한, 오프로드 장치(200)는 통합 오프로드 캐시(222)에 패킷에 대해 분석된 세션 정보와 대응되는, 기저장된 세션 정보가 존재하는지를 판단한다(503). 즉, 오프로드 장치(200)는 분석된 세션 정보를 통합 오프로드 캐시(222)에서 검색하고, 분석된 세션 정보에 대응하는 세션 정보가 존재하는지를 판단할 수 있다. Referring to FIG. 5, when a packet is received from the outside (501), the offload apparatus 200 first analyzes the session information of the received packet (502). In addition, the offload apparatus 200 determines whether there is previously stored session information corresponding to the session information analyzed for the packet in the integrated offload cache 222 (503). That is, the offload apparatus 200 may retrieve the analyzed session information from the integrated offload cache 222 and determine whether there is session information corresponding to the analyzed session information.

통합 오프로드 캐시(222)에 분석된 세션 정보와 대응되는 세션 정보가 존재하지 않으면, 오프로드 장치(200)는 패킷의 세션 정보를 통합 오프로드 캐시(222)에 저장하고(504), 출발지 가상 장비로 패킷을 전달할 수 있다(505).If there is no session information corresponding to the analyzed session information in the unified offload cache 222, the offload device 200 stores the session information of the packet in the unified offload cache 222 (504). The packet may be delivered to the device (505).

구체적으로, 오프로드 장치(200)는 패킷의 분석된 세션 정보, 예를 들어 목적지 정보를 기초로 패킷이 전달되어야 할 가상 장비, 예를 들어, 도 4에서 제1 가상 장비(230-1)로 패킷을 전달할 수 있다. 또한, 오프로드 장치(200)는 패킷의 분석된 세션 정보를 통합 오프로드 캐시(222)에 저장할 수 있다. In detail, the offload apparatus 200 may transfer the packet to the virtual device to which the packet is to be delivered based on the analyzed session information of the packet, for example, destination information, for example, the first virtual device 230-1 in FIG. 4. You can forward the packet. In addition, the offload apparatus 200 may store the analyzed session information of the packet in the integrated offload cache 222.

오프로드 장치(200)는 패킷이 오프로드 장치(200) 내의 적어도 하나의 가상 장비(230-1, 230-2, 230-3)들 사이에서 송수신되는 동안, 경로 정보 및 처리 정보를 세션 정보와 연계하여 통합 오프로드 캐시(222)에 저장할 수 있다(506). The offload apparatus 200 transmits the path information and processing information to the session information while the packet is transmitted and received between at least one virtual device 230-1, 230-2, 230-3 in the offload apparatus 200. In association with the unified offload cache 222.

제1 가상 장비(230-1)로 전달된 패킷은 제1 가상 장비(230-1) 내에서의 패킷 처리에 따라 패킷이 다음으로 전달되어야 할 가상 장비, 예를 들어 제2 가상 장비(230-2) 및 제3 가상 장비(230-3)에 순차적으로 전송될 수 있다. 또한, 패킷은 특정 가상 장비, 예를 들어 제3 가상 장비(230-3)에서 패킷 처리에 따라 외부의 네트워크 장치로 전송될 수 있다. The packet delivered to the first virtual device 230-1 may be a virtual device to which the packet is to be delivered next according to packet processing in the first virtual device 230-1, for example, a second virtual device 230-. 2) and the third virtual equipment 230-3 may be sequentially transmitted. In addition, the packet may be transmitted from a specific virtual device, for example, the third virtual device 230-3, to an external network device according to packet processing.

이때 패킷의 처리는 적어도 하나의 가상 장비(230-1, 230-2, 230-3)의 게스트 OS(133-1, 133-2, 133-3)에 의한 TCP/IP 처리 및 애플리케이션(134-1, 134-2, 134-3)에 의한 처리 등을 포함할 수 있다. At this time, the processing of the packet is TCP / IP processing and application (134-) by the guest OS (133-1, 133-2, 133-3) of at least one virtual device (230-1, 230-2, 230-3). 1, 134-2, 134-3), and the like.

상기한 처리에 의해 패킷이 적어도 하나의 가상 장비(230-1, 230-2, 230-3)들 사이에서 송수신되는 동안, 오프로드 장치(200)는 경로 정보 및 처리 정보를 수집하여 통합 오프로드 캐시(222)에 저장할 수 있다. While the packet is transmitted and received between the at least one virtual device 230-1, 230-2, 230-3 by the above-described processing, the offload apparatus 200 collects path information and processing information and aggregates offloading. May be stored in cache 222.

이러한 정보는 패킷을 처리하는 가상 장비에 의해 저장될 수 있다. 구체적으로, 오프로드 장치(200)의 NIC(111)(또는 호스트 OS(220)) 또는 다른 가상 장비로부터 해당 패킷을 수신하는 적어도 하나의 가상 장비(230-1, 230-2, 230-3)는 통합 오프로드 캐시(222)에 자신의 식별 정보를 해당 패킷의 경로 정보로써 저장할 수 있다. 또한, 해당 패킷을 수신하는 적어도 하나의 가상 장비(230-1, 230-2, 230-3)는 수신된 패킷에 대하여 수행된 동작에 관한 정보를 통합 오프로드 캐시(222)에 해당 패킷의 처리 정보로써 저장할 수 있다. 일 실시 예에서, 가상 장비가 가상 보안 장비인 경우, 처리 정보는 해당 패킷에 대하여 수행되는 네트워크 보안 동작, 예를 들어 방화벽, NAT, 침입 차단, 침입 탐지 등에 관한 API 정보를 포함할 수 있다. This information may be stored by the virtual device that processes the packet. Specifically, at least one virtual device 230-1, 230-2, 230-3 receiving the corresponding packet from the NIC 111 (or host OS 220) or other virtual device of the offload device 200. May store its identification information in the unified offload cache 222 as path information of the corresponding packet. In addition, the at least one virtual device (230-1, 230-2, 230-3) receiving the packet processes the packet in the integrated offload cache 222 information about the operation performed on the received packet. Can be stored as information. In one embodiment, when the virtual device is a virtual security device, the processing information may include API information about a network security operation performed on the packet, for example, firewall, NAT, intrusion prevention, intrusion detection, and the like.

이후에 패킷에 대한 오프로드 장치(200) 내 전송이 종료된 경우(507), 오프로드 장치(200)는 통합 오프로드 캐시(222)로의 정보 저장(갱신)을 종료하고, 이전 단계로 회귀하여 다음 패킷을 수신할 수 있다(501). 일 실시 예에서, 오프로드 장치(200)는 패킷이 오프로드 장치(200) 내의 목적지 가상 장비에 도달하거나 오프로드 장치(200)로부터 유출된 경우, 통합 오프로드 캐시(222)로의 정보 저장을 종료할 수 있다. Thereafter, when transmission in the offload apparatus 200 for the packet is terminated (507), the offload apparatus 200 terminates storing (update) the information to the integrated offload cache 222, and returns to the previous step. The next packet may be received (501). In one embodiment, the offload device 200 terminates storing information in the unified offload cache 222 when the packet reaches or exits the destination virtual equipment in the offload device 200. can do.

다음 패킷이 수신되면, 오프로드 장치(200)는 수신된 패킷의 세션 정보를 분석하고(502), 그와 대응되는, 기저장된 세션 정보가 존재하는지를 판단한다(503).When the next packet is received, the offload apparatus 200 analyzes the session information of the received packet (502) and determines whether there is already stored session information corresponding thereto (503).

통합 오프로드 캐시(222)에 분석된 세션 정보와 대응되는 세션 정보가 존재하면, 오프로드 장치(200)는 통합 오프로드 캐시(222)를 참조하여 장비 간 오프로드를 수행한다(508).If there is session information corresponding to the analyzed session information in the integrated offload cache 222, the offload apparatus 200 performs offloading between devices with reference to the integrated offload cache 222 (508).

오프로드 장치(200)는 통합 오프로드 캐시(222)에 세션 정보와 연계하여 저장된 경로 정보를 참조한다. 오프로드 장치(200)는 경로 정보를 기초로 패킷이 경유할 적어도 하나의 가상 장비(230-1, 230-2, 230-3)를 판단할 수 있다. 여기서, 적어도 하나의 가상 장비(230-1, 230-2, 230-3)는 출발지 가상 장비를 포함할 수 있다. 또한, 적어도 하나의 가상 장비(230-1, 230-2, 230-3)는 목적지 가상 장비를 포함할 수 있다. The offload device 200 refers to the path information stored in association with the session information in the integrated offload cache 222. The offload apparatus 200 may determine at least one virtual device 230-1, 230-2, 230-3 through which the packet is to be routed based on the path information. Here, the at least one virtual device 230-1, 230-2, 230-3 may include a source virtual device. Also, the at least one virtual device 230-1, 230-2, 230-3 may include a destination virtual device.

오프로드 장치(200)는 패킷을 출발지 가상 장비로 전달할 수 있다. 또한, 오프로드 장치(200)는 판단된 적어도 하나의 가상 장비(230-1, 230-2, 230-3)들이 패킷에 대한 TCP/IP 처리 없이 가상 NIC를 통하여 패킷을 송수신하도록 제어할 수 있다. 이러한 제어는 패킷에 대한 이러한 제어는 패킷 헤더 부가 또는 별도의 제어 메시지 전송 등을 통해 구현될 수 있다. 이러한 제어를 통해, 패킷이 경유하는 적어도 하나의 가상 장비(230-1, 230-2, 230-3)의 가상 NIC(231-1, 231-2, 231-3)는 패킷을 수신하면, 이를 호스트 OS(233-1, 233-2, 233-3)로 전달하지 않고, 직접 처리하여 다음 가상 장비로 송신할 수 있다.The offload device 200 may deliver the packet to the source virtual device. In addition, the offload apparatus 200 may control the determined at least one virtual device 230-1, 230-2, 230-3 to transmit and receive a packet through the virtual NIC without TCP / IP processing on the packet. . Such control may be implemented by adding a packet header or transmitting a separate control message. Through such control, when the virtual NICs 231-1, 231-2, and 231-3 of the at least one virtual device 230-1, 230-2, and 230-3 pass through the packet, receive the packet. Instead of transmitting to the host OSs 233-1, 233-2, and 233-3, the host OS 233-1, 233-2, and 233-3 can directly process and transmit the data to the next virtual device.

또한, 오프로드 장치(200)는 통합 오프로드 캐시(222)에 세션 정보와 연계하여 저장된 처리 정보를 참조한다. 오프로드 장치(200)는 처리 정보를 기초로 패킷에 대해 수행되어야 하는 처리 동작을 수행하도록 적어도 하나의 가상 장비(230-1, 230-2, 230-3)를 제어할 수 있다. 이러한 제어에 의해 적어도 하나의 가상 장비(230-1, 230-2, 230-3)는, 예를 들어 함수 API 호출 등을 통해 패킷에 대한 처리 동작을 수행할 수 있다. In addition, the offload apparatus 200 refers to the processing information stored in association with the session information in the integrated offload cache 222. The offload apparatus 200 may control the at least one virtual device 230-1, 230-2, 230-3 to perform a processing operation that should be performed on the packet based on the processing information. Under such control, at least one virtual device 230-1, 230-2, 230-3 may perform a processing operation on a packet through, for example, a function API call.

다양한 실시 예에서, 처리 동작은 가상 보안 장치에 의한 네트워크 보안 처리일 수 있다. 예를 들어, 처리 동작은 패킷의 악성 여부를 판단하여, 패킷 전달을 허용/차단하기 위한 동작일 수 있다. 이 경우, 처리 동작에 의해 패킷 전달이 허용되는지 여부에 따라 해당 가상 보안 장치는 장치 간 오프로드에 따른 패킷 전달을 계속해서 수행하거나, 패킷 전달을 차단할 수 있다. In various embodiments of the present disclosure, the processing operation may be network security processing by the virtual security apparatus. For example, the processing operation may be an operation for allowing / blocking packet transmission by determining whether a packet is malicious. In this case, depending on whether packet forwarding is allowed by the processing operation, the virtual security device may continuously perform packet forwarding according to offload between devices, or block packet forwarding.

일 실시 예에서, 이러한 처리 동작은 오프로드 장치(200)의 호스트 OS(220)에 의해 직접 처리될 수 있다. 각각의 가상 장비(230-1, 230-2, 230-3)가 수행하는 동작에 관한 함수 API는 해당 가상 장비에 할당된 물리 자원(110)에 저장되므로, 호스트 OS(220)가 해당 함수 API의 저장 영역에 직접 접근하도록 구성될 수 있다. 이러한 실시 예에서, 호스트 OS(220)는 통합 오프로드 캐시(222)를 참조하여, 패킷에 대해 처리되어야 할 처리 동작의 함수 API를 직접 호출하고, 패킷을 처리할 수 있다. In one embodiment, this processing operation may be directly handled by the host OS 220 of the offload device 200. Since the function APIs related to the operations performed by each of the virtual devices 230-1, 230-2, and 230-3 are stored in the physical resources 110 assigned to the corresponding virtual device, the host OS 220 provides the corresponding function API. It can be configured to directly access the storage area of the. In such an embodiment, the host OS 220 may refer to the unified offload cache 222 to directly call a function API of the processing operation to be processed for the packet and process the packet.

그에 따라, 패킷은 적어도 하나의 가상 장비(230-1, 230-2, 230-3) 사이에서 가상 NIC(132-1. 132-2, 132-3)를 통해 신속하게 처리 및 전달됨과 동시에, 패킷에 대해 필요한 처리, 예를 들어 네트워크 보안 처리가 효율적으로 수행될 수 있다. Accordingly, packets are quickly processed and forwarded between the at least one virtual device 230-1, 230-2, 230-3 through the virtual NICs 132-1. 132-2, 132-3, The necessary processing on the packet, for example network security processing, can be performed efficiently.

상술한 본 발명에 따르면, 오프로드 장치(200)는 각각의 가상 장비(230-1, 230-2, 230-3)를 위한 오프로드 캐시 메모리를 별도로 요구하지 않으며, 한 번의 오프로드 캐시 참조를 통해 오프로드를 신속하게 제어할 수 있으면서 패킷에 대해 필요한 처리를 수행할 수 있도록 한다. 따라서, 본 발명은 단일 가상 장비 내 오프로드보다 향상된 성능의 장비 간 오프로드가 가능하게 한다. According to the present invention described above, the offload apparatus 200 does not require offload cache memory for each of the virtual equipment 230-1, 230-2, and 230-3 separately, and requires one offload cache reference. This allows you to quickly control offload while performing the necessary processing on the packet. Thus, the present invention enables inter-device offload with improved performance over offload in a single virtual device.

다양한 실시 예에서, 이러한 장비 간 오프로드는 오프로드 장치(200)를 구성하는 전체 가상 장비 중 그룹핑된 일부에 대해서만 적용될 수 있다. 즉 오프로드 장치(200)는 오프로드 장치(200) 내에 구동 중인 적어도 하나의 가상 장비(230-1, 230-2, 230-3) 중 적어도 일부(예를 들어, 제1 및 제2 가상 장비(230-1, 230-2)에 대하여만 장비 간 오프로드를 제어할 수 있다. 이 경우, 장비 간 오프로드가 적용되지 않는 나머지 가상 장비(예를 들어, 제3 가상 장비(230-3))는 별도로 단일 가상 장비 내 오프로드를 수행하거나, 오프로드를 수행하지 않을 수 있다. According to various embodiments of the present disclosure, such inter-device offload may be applied only to a grouped part of the entire virtual devices constituting the offload apparatus 200. That is, the offload device 200 may include at least some of the at least one virtual device 230-1, 230-2, and 230-3 that are driven in the offload device 200 (eg, the first and second virtual devices). The off-device offload may be controlled only for the 230-1 and 230-2. In this case, the remaining virtual devices (for example, the third virtual device 230-3) to which the off-device offload does not apply. ) May separately perform offload in a single virtual equipment, or not offload.

도 6은 본 발명에 따른 오프로드 장치의 구조를 나타낸 블록도이다.6 is a block diagram showing the structure of an offload device according to the present invention.

도 6을 참조하면, 본 발명에 따른 오프로드 장치(100)는 통신부(201), 제어부(202) 및 저장부(203)를 포함하여 구성될 수 있다. Referring to FIG. 6, the offload apparatus 100 according to the present invention may include a communication unit 201, a control unit 202, and a storage unit 203.

통신부(201)는 외부의 네트워크 장치와 패킷을 송수신할 수 있다. 본 발명의 다양한 실시 예에서, 통신부(201)는 NIC를 포함하여 구성될 수 있다. NIC는 외부로부터 수신되는 패킷을 처리하여 제어부(202)로 전달하고, 제어부(202)로부터 전달되는 패킷을 외부로 전달하도록 구성될 수 있다. The communication unit 201 may transmit and receive a packet with an external network device. In various embodiments of the present disclosure, the communication unit 201 may be configured to include a NIC. The NIC may be configured to process a packet received from the outside, deliver the packet to the controller 202, and deliver the packet from the controller 202 to the outside.

제어부(202)는 본 발명에 따른 오프로드 방법을 수행하기 위하여 오프로드 장치(100)의 각 구성 요소들을 제어할 수 있다. The controller 202 may control each component of the offload apparatus 100 to perform the offload method according to the present invention.

일 예로, 제어부(202)는 오프로드 장치(100)에 마련되는 적어도 하나의 물리 자원, 예를 들어, 제어부(120)를 구성하는 CPU, 저장부를 구성하는 메모리, 디스크 등을 가상 장비에 할당하고, 가상 장비를 위한 게스트 OS를 구동함으로써 가상 장비를 생성할 수 있다. 이러한 실시 예에서, 가상 장비에는 가상 NIC가 할당될 수 있으며, 가상 장비는 할당된 가상 NIC를 통해 외부 네트워크 장치 또는 내부의 다른 가상 장비들과 패킷을 송수신할 수 있다. For example, the controller 202 allocates at least one physical resource provided in the offload apparatus 100, for example, a CPU constituting the controller 120, a memory constituting a storage unit, a disk, and the like to the virtual device. The virtual device may be created by running a guest OS for the virtual device. In such an embodiment, the virtual device may be assigned a virtual NIC, and the virtual device may transmit and receive packets with an external network device or other virtual devices therein through the assigned virtual NIC.

제어부(202)는 저장부(203)에 통합 오프로드 캐시를 할당하여 저장할 수 있다. 제어부(202)는 통신부(201)를 통하여 수신되는 패킷의 세션 정보를 통합 오프로드 캐시에 저장할 수 있다. 또한, 제어부(202)는 패킷이 가상 장비들 사이에서 송수신되는 동안, 경로 정보 및 처리 정보를 통합 오프로드 캐시에 세션 정보와 연계하여 저장하도록, 가상 장비를 제어할 수 있다. The controller 202 may allocate and store an integrated offload cache in the storage 203. The controller 202 may store session information of a packet received through the communication unit 201 in an integrated offload cache. In addition, the controller 202 may control the virtual device to store the path information and the processing information in association with the session information in the integrated offload cache while the packet is transmitted and received between the virtual devices.

제어부(202)는 통신부(201)를 통하여 패킷이 수신되면, 세션 정보를 분석하여, 통합 오프로드 캐시에 기저장된 세션 정보들과 비교할 수 있다. 분석된 세션 정보와 동일한 세션 정보가 통합 오프로드 캐시에 기저장되어 있으면, 제어부(202)는 세션 정보와 연계하여 저장된 경로 정보 및 처리 정보를 참조하여, 장비 간 오프로드에 의한 패킷 처리를 수행하도록 가상 장비를 제어할 수 있다. When the packet is received through the communication unit 201, the controller 202 may analyze the session information and compare the session information with session information previously stored in the integrated offload cache. If the same session information as the analyzed session information is previously stored in the integrated offload cache, the controller 202 refers to the stored path information and processing information in association with the session information to perform packet processing by offloading between devices. You can control the virtual equipment.

구체적으로, 제어부(202)는 패킷의 출발지 가상 장비로 패킷을 전달할 수 있고, 경로 정보를 기초로 해당 패킷이 경유하는 가상 장비들이 가상 NIC를 통해 패킷 처리 및 전달을 수행하도록 경로 정보에 포함된 가상 장비들을 제어할 수 있다. 또한, 제어부(202)는 처리 정보를 기초로 해당 패킷에 대한 처리를 수행하는 가상 장비들이 해당 패킷 처리를 수행하도록 제어할 수 있다. In detail, the controller 202 may deliver the packet to the source virtual device of the packet, and the virtual device included in the path information may perform packet processing and delivery through the virtual NIC to the virtual devices via the packet based on the path information. You can control the equipment. In addition, the controller 202 may control virtual devices that process the packet based on the processing information to perform the packet processing.

제어부(202)의 보다 구체적인 제어 동작은 도 1 내지 도 5를 참조하여 설명한 것과 동일하다.More specific control operations of the controller 202 are the same as those described with reference to FIGS. 1 to 5.

저장부(203)는 오프로드 장치(200)의 동작을 수행하기 위하여 필요한 운영 체제, 소프트웨어, 프로그램, 애플리케이션, 데이터 등을 저장하고 관리할 수 있다. 다양한 실시 예에서, 저장부(203)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 xD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.The storage unit 203 may store and manage an operating system, software, a program, an application, data, and the like necessary for performing the operation of the offload apparatus 200. In various embodiments, the storage unit 203 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (eg, SD or xD memory, etc.), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EPEROM), programmable read-only memory (PROM) ), A magnetic memory, a magnetic disk, and an optical disk may include at least one type of storage medium.

저장부(203)는 물리 자원으로써 메모리 및 디스크를 포함할 수 있다. 저장부(203)는 가상 장비를 위하여 할당된 영역에 가상 장비를 위한 운영 체제, 소프트웨어, 프로그램, 애플리케이션, 데이터 등을 저장하도록 구성될 수 있다. The storage unit 203 may include a memory and a disk as physical resources. The storage unit 203 may be configured to store an operating system, software, programs, applications, data, etc. for the virtual device in an area allocated for the virtual device.

저장부(203)는 제어부(202)의 제어에 따라 일 영역에 통합 오프로드 캐시를 마련하고, 장비 간 오프로드를 위하여 필요한 세션 정보, 경로 정보, 처리 정보 등을 저장할 수 있다. The storage unit 203 may provide an integrated offload cache in one region under the control of the controller 202, and store session information, path information, processing information, and the like necessary for offloading between devices.

본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 그리고 본 명세서와 도면에 개시된 실시 예들은 본 발명의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다. Those skilled in the art will appreciate that various modifications and variations can be made without departing from the essential features of the present invention. In addition, the embodiments disclosed in the specification and the drawings merely present specific examples to easily explain and easily understand the contents of the present invention, and are not intended to limit the scope of the present invention. Therefore, the scope of the present invention should be construed that all changes or modifications derived based on the technical spirit of the present invention are included in the scope of the present invention in addition to the embodiments disclosed herein.

200: 오프로드 장치
201: 통신부
202: 제어부
203: 저장부
200: off-road device
201: communication unit
202: control unit
203: storage unit

Claims (10)

복수의 가상 장비로 구성되는 가상 네트워크를 운영하는 위한 오프로드 장치로,
외부 네트워크 장치와 통신하는 통신부;
상기 복수의 가상 장비를 위한 통합 오프로드 캐시를 저장하는 저장부; 및
상기 통신부를 통하여 수신된 패킷의 세션 정보와 대응되는 세션 정보가 상기 통합 오프로드 캐시에 존재하지 않으면, 상기 수신된 패킷의 세션 정보를 상기 통합 오프로드 캐시에 저장하고, 상기 패킷이 상기 적어도 하나의 가상 장비를 경유하는 동안 경로 정보 및 처리 정보를 상기 통합 오프로드 캐시에 상기 세션 정보와 연계하여 저장하는 제어부를 포함하되,
상기 제어부는,
상기 수신된 패킷의 세션 정보와 대응되는 세션 정보가 상기 통합 오프로드 캐시에 존재하면, 상기 대응되는 세션 정보와 연계하여 상기 통합 오프로드 캐시에 저장된 상기 경로 정보를 참조하여, 상기 패킷이 경유할 적어도 하나의 가상 장비를 결정하고, 상기 적어도 하나의 가상 장비가 상기 패킷에 대하여 TCP 처리를 수행하지 않고 가상 네트워크 인터페이스 카드 상에서 처리하여 전송하도록 제어하는 것을 특징으로 하는 오프로드 장치.
Offload device for operating a virtual network consisting of a plurality of virtual devices,
A communication unit communicating with an external network device;
A storage unit to store an integrated offload cache for the plurality of virtual devices; And
If the session information corresponding to the session information of the packet received through the communication unit does not exist in the integrated offload cache, the session information of the received packet is stored in the integrated offload cache, and the packet is stored in the at least one packet. And a controller configured to store path information and processing information in association with the session information in the integrated offload cache while passing through a virtual device.
The control unit,
If session information corresponding to the session information of the received packet exists in the unified offload cache, the packet may pass through at least by referring to the path information stored in the unified offload cache in association with the corresponding session information. Determine one virtual device and control the at least one virtual device to process and transmit the packet on a virtual network interface card without performing TCP processing on the packet.
제1항에 있어서, 상기 경로 정보는,
상기 적어도 하나의 가상 장비의 식별 정보를 포함하고,
상기 처리 정보는,
상기 적어도 하나의 가상 장비에서 상기 패킷에 대해 수행되는 동작에 관한 정보인 것을 특징으로 하는 오프로드 장치.
The method of claim 1, wherein the route information,
Includes identification information of the at least one virtual device,
The processing information is
Offload device characterized in that the information on the operation performed on the packet in the at least one virtual equipment.
삭제delete 제1항에 있어서, 상기 제어부는,
상기 처리 정보를 기초로 상기 패킷에 대해 수행되어야 할 동작을 호출하여 상기 패킷을 처리하도록 상기 가상 장비를 제어하는 것을 특징으로 하는 오프로드 장치.
The method of claim 1, wherein the control unit,
And control the virtual device to process the packet by calling an operation to be performed on the packet based on the processing information.
제4항에 있어서, 상기 처리 정보는,
임의의 가상 장비가 가상 보안 장비인 경우에, 상기 가상 보안 장비가 상기 패킷에 대해 수행하는 방화벽, 네트워크 주소 변환(Network Address Translation; NAT), 침입 차단, 침입 탐지 중 적어도 하나를 포함하는 네트워크 보안 처리에 관한 정보를 포함하는 것을 특징으로 하는 오프로드 장치.
The method according to claim 4, wherein the processing information,
If any virtual device is a virtual security device, the network security process including at least one of a firewall, network address translation (NAT), intrusion prevention, and intrusion detection that the virtual security device performs on the packet. Offload device, characterized in that it comprises information.
복수의 가상 장비로 구성되는 가상 네트워크를 위한 오프로드 장치의 오프로드 방법으로,
외부로부터 패킷이 수신되면, 상기 수신된 패킷의 세션 정보와 대응되는 세션 정보가 상기 복수의 가상 장비를 위한 통합 오프로드 캐시에 존재하는지 판단하는 단계;
상기 세션 정보와 대응되는 세션 정보가 상기 통합 오프로드 캐시에 존재하지 않으면, 상기 수신된 패킷의 세션 정보를 상기 통합 오프로드 캐시에 저장하고, 상기 패킷이 상기 적어도 하나의 가상 장비를 경유하는 동안 경로 정보 및 처리 정보를 상기 통합 오프로드 캐시에 상기 세션 정보와 연계하여 저장하는 단계;
상기 세션 정보와 대응되는 세션 정보가 상기 통합 오프로드 캐시에 존재하면, 상기 대응되는 세션 정보와 연계하여 상기 통합 오프로드 캐시에 저장된 상기 경로 정보를 참조하여, 상기 패킷이 경유할 적어도 하나의 가상 장비를 결정하고, TCP 오프로드를 통하여 상기 패킷을 처리하도록 상기 적어도 하나의 가상 장비를 제어하는 단계를 포함하는 것을 특징으로 하는 오프로드 방법.
An offloading method of an offloading device for a virtual network composed of a plurality of virtual devices,
If a packet is received from the outside, determining whether session information corresponding to the session information of the received packet exists in an integrated offload cache for the plurality of virtual devices;
If session information corresponding to the session information does not exist in the unified offload cache, the session information of the received packet is stored in the unified offload cache, and the path is performed while the packet passes through the at least one virtual device. Storing information and processing information in association with the session information in the unified offload cache;
If session information corresponding to the session information exists in the unified offload cache, referring to the path information stored in the unified offload cache in association with the corresponding session information, at least one virtual device to be passed by the packet. And controlling the at least one virtual device to process the packet via TCP offload.
제6항에 있어서, 상기 경로 정보는,
상기 적어도 하나의 가상 장비의 식별 정보를 포함하고,
상기 처리 정보는,
상기 적어도 하나의 가상 장비에서 상기 패킷에 대해 수행되는 동작에 관한 정보인 것을 특징으로 하는 오프로드 방법.
The method of claim 6, wherein the route information,
Includes identification information of the at least one virtual device,
The processing information is
Offload method, characterized in that the information on the operation performed on the packet in the at least one virtual device.
제7항에 있어서,
상기 적어도 하나의 가상 장비를 제어하는 단계는,
상기 적어도 하나의 가상 장비가 상기 패킷에 대하여 TCP 처리를 수행하지 않고 가상 네트워크 인터페이스 카드 상에서 처리하여 전송하도록 제어하는 단계를 포함하는 것을 특징으로 하는 오프로드 방법.
The method of claim 7, wherein
Controlling the at least one virtual device,
Controlling the at least one virtual device to process and transmit the packet on a virtual network interface card without performing TCP processing on the packet.
제8항에 있어서, 상기 적어도 하나의 가상 장비를 제어하는 단계는,
상기 처리 정보를 기초로 상기 패킷에 대해 수행되어야 할 동작을 호출하여 상기 패킷을 처리하도록 상기 가상 장비를 제어하는 단계를 포함하는 것을 특징으로 하는 오프로드 방법.
The method of claim 8, wherein the controlling of the at least one virtual device comprises:
Controlling the virtual device to process the packet by invoking an action to be performed on the packet based on the processing information.
제9항에 있어서, 상기 처리 정보는,
임의의 가상 장비가 가상 보안 장비인 경우에, 상기 가상 보안 장비가 상기 패킷에 대해 수행하는 방화벽, 네트워크 주소 변환(Network Address Translation; NAT), 침입 차단, 침입 탐지 중 적어도 하나를 포함하는 네트워크 보안 처리에 관한 정보를 포함하는 것을 특징으로 하는 오프로드 방법.
The method of claim 9, wherein the processing information,
If any virtual device is a virtual security device, the network security process including at least one of a firewall, network address translation (NAT), intrusion prevention, and intrusion detection that the virtual security device performs on the packet. Offload method comprising the information on.
KR1020170170003A 2017-12-12 2017-12-12 Offload apparatus and method for virtual network KR102026447B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170170003A KR102026447B1 (en) 2017-12-12 2017-12-12 Offload apparatus and method for virtual network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170170003A KR102026447B1 (en) 2017-12-12 2017-12-12 Offload apparatus and method for virtual network

Publications (2)

Publication Number Publication Date
KR20190069764A KR20190069764A (en) 2019-06-20
KR102026447B1 true KR102026447B1 (en) 2019-09-27

Family

ID=67103463

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170170003A KR102026447B1 (en) 2017-12-12 2017-12-12 Offload apparatus and method for virtual network

Country Status (1)

Country Link
KR (1) KR102026447B1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150033222A1 (en) * 2013-07-25 2015-01-29 Cavium, Inc. Network Interface Card with Virtual Switch and Traffic Flow Policy Enforcement
KR102148371B1 (en) * 2015-10-28 2020-08-26 에스케이텔레콤 주식회사 Method and apparatus for operating network function virtualization
KR101773528B1 (en) * 2016-07-07 2017-08-31 주식회사 구버넷 Network interface apparatus and method for processing virtual machine packets

Also Published As

Publication number Publication date
KR20190069764A (en) 2019-06-20

Similar Documents

Publication Publication Date Title
US10581884B2 (en) Channel data encapsulation system and method for use with client-server data channels
US10623372B2 (en) Load balancing IPsec tunnel processing with extended Berkeley packet filter (eBPF)
US20210132983A1 (en) Securing a managed forwarding element that operates within a data compute node
US9948611B2 (en) Packet tagging for improved guest system security
US10498708B2 (en) Scaling IPSEC processing on a virtual machine
US9736211B2 (en) Method and system for enabling multi-core processing of VXLAN traffic
US9460289B2 (en) Securing a virtual environment
US9614739B2 (en) Defining service chains in terms of service functions
US9584477B2 (en) Packet processing in a multi-tenant software defined network (SDN)
US8005022B2 (en) Host operating system bypass for packets destined for a virtual machine
US7788411B2 (en) Method and system for automatically reflecting hardware resource allocation modifications
US20190273718A1 (en) Intercepting network traffic routed by virtual switches for selective security processing
US11729098B2 (en) Methods and apparatus to manage a physical network to reduce network dependencies in a multi-fabric virtual network
US20150033222A1 (en) Network Interface Card with Virtual Switch and Traffic Flow Policy Enforcement
US10116622B2 (en) Secure communication channel using a blade server
US10542039B2 (en) Security against side-channel attack in real-time virtualized networks
US10484418B2 (en) Systems and methods for updating security policies for network traffic
US20130080638A1 (en) Distributed virtual appliance
US20140122743A1 (en) Shared interface among multiple compute units
US11277382B2 (en) Filter-based packet handling at virtual network adapters
US9961104B2 (en) Side channel attack deterrence in networks
US9489242B2 (en) Algorithm for faster convergence through affinity override
KR102026447B1 (en) Offload apparatus and method for virtual network
US20080005360A1 (en) Method and apparatus for containing a denial of service attack using hardware resources on a network interface card
US20170116016A1 (en) Screen compression service method and virtual network apparatus for performing the method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant