KR102026447B1 - Offload apparatus and method for virtual network - Google Patents
Offload apparatus and method for virtual network Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H04L67/2842—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol 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
본 발명은 가상 네트워크를 위한 오프로드 장치 및 방법에 관한 것으로, 보다 구체적으로 통합 오프로드 캐시를 이용하여 복수의 가상 장비 간 오프로드를 제공하는 오프로드 장치 및 방법에 관한 것이다. 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
가상 네트워크는 오프로드 장치(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
도 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
물리 자원, 예를 들어 디스크 상에는 호스트 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
다양한 실시 예에서, 호스트 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
일 실시 예에서, 가상 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
이러한 적어도 하나의 가상 장비(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
구체적으로, 오프로드 장치(100)가 NIC(111)를 통하여 패킷이 수신되면, NIC(111)는 수신된 패킷의 TCP/IP 처리를 위해 패킷을 커널(121)로 전달한다. 커널(121)은 패킷을 처리하여, 해당 패킷이 전달되어야 할 가상 장비, 즉 장치 내 출발지 가상 장비로 전달한다. 도 2 및 도 3의 실시 예에서, 출발지 가상 장비는 제1 가상 장비(130-1)이다. In detail, when the
제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
패킷 처리에 의해, 패킷이 오프로드 장치(100) 외부의 네트워크 장치로 전송되어야 하는 경우, 제3 가상 장비(130-3)는 오프로드 장치(100)의 NIC(111)를 통해 패킷을 외부 네트워크 장치로 전송할 수 있다.When the packet is to be transmitted to a network device outside the
만약, 제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
통합 오프로드 캐시(222)는 오프로드 장치(100)로 유입되는 패킷, 즉 적어도 하나의 가상 장비(230-1, 230-2, 230-3)로 유입되는 모든 패킷에 대한 세션 정보를 저장할 수 있다. 구체적으로, 통합 오프로드 캐시(222)는 오프로드 장치(100)에 유입되는 패킷의 세션 정보로써 출발지/목적지의 IP 주소, 포트 번호 등에 관한 정보를 저장할 수 있다. The
또한, 통합 오프로드 캐시(222)는 패킷의 경로 정보와 처리 정보를 세션 정보와 연계하여 저장할 수 있다. In addition, the
구체적으로, 통합 오프로드 캐시(222)는 오프로드 장치(100)에 유입된 패킷이 적어도 하나의 가상 장비(230-1, 230-2, 230-3)들 사이에서 송수신되는 동안, 패킷이 통과한 적어도 하나의 가상 장비(230-1, 230-2, 230-3)에 대한 정보를 경로 정보로써 저장할 수 있다. 이때, 경로 정보는 가상 장비의 식별 정보 등을 포함할 수 있다. In detail, the
통합 오프로드 캐시(222)는 패킷이 통과한 적어도 하나의 가상 장비(230-1, 230-2, 230-3) 내에서 해당 패킷에 대해 수행되는 동작에 관한 처리 정보를 저장할 수 있다. 일 실시 예에서, 가상 장비가 가상 보안 장비인 경우, 처리 정보는 해당 패킷에 대하여 수행되는 네트워크 보안 동작, 예를 들어 방화벽, NAT, 침입 차단, 침입 탐지 등에 관한 API 정보를 포함할 수 있다. The
패킷에 대한 경로 정보 및 처리 정보에 대한 저장은 패킷이 목적지 가상 장비에 도달할 때까지, 또는 오프로드 장치(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
통합 오프로드 캐시(222)에 저장된 정보는 장비 간 오프로드를 위해 이용될 수 있다. 오프로드 장치(200)는 이전에 유입된 패킷과 동일한 세션 정보를 갖는 패킷이 유입되는 경우, 즉 패킷의 세션 정보가 통합 오프로드 캐시(222)에 기저장된 세션 정보 중 어느 하나와 대응되는 경우, 대응되는 세션 정보와 연계하여 통합 오프로드 캐시(222)에 저장된 경로 정보 및 처리 정보를 기초로 장비 간 오프로드를 수행한다. The information stored in the
구체적으로, 오프로드 장치(200)는 통합 오프로드 캐시(222)에 저장된 경로 정보를 기초로, 패킷이 출발지 가상 장비로부터 목적지 가상 장비까지 TCP/IP 처리 없이, 즉 가상 NIC를 통하여 직접 송수신되도록 적어도 하나의 가상 장비(230-1, 230-2, 230-3)를 제어할 수 있다. 또한, 오프로드 장치(200)는 통합 오프로드 캐시(222)에 저장된 처리 정보를 기초로, 임의의 장비에서 수행되어야 하는 처리 동작을 해당 패킷에 대해 수행하도록 적어도 하나의 가상 장비(230-1, 230-2, 230-3)를 제어할 수 있다. Specifically, the
이에 대한 보다 구체적인 내용은 후술한다. 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
도 5를 참조하면, 외부로부터 패킷이 수신되면(501), 오프로드 장치(200)는 먼저 수신된 패킷의 세션 정보를 분석한다(502). 또한, 오프로드 장치(200)는 통합 오프로드 캐시(222)에 패킷에 대해 분석된 세션 정보와 대응되는, 기저장된 세션 정보가 존재하는지를 판단한다(503). 즉, 오프로드 장치(200)는 분석된 세션 정보를 통합 오프로드 캐시(222)에서 검색하고, 분석된 세션 정보에 대응하는 세션 정보가 존재하는지를 판단할 수 있다. Referring to FIG. 5, when a packet is received from the outside (501), the
통합 오프로드 캐시(222)에 분석된 세션 정보와 대응되는 세션 정보가 존재하지 않으면, 오프로드 장치(200)는 패킷의 세션 정보를 통합 오프로드 캐시(222)에 저장하고(504), 출발지 가상 장비로 패킷을 전달할 수 있다(505).If there is no session information corresponding to the analyzed session information in the
구체적으로, 오프로드 장치(200)는 패킷의 분석된 세션 정보, 예를 들어 목적지 정보를 기초로 패킷이 전달되어야 할 가상 장비, 예를 들어, 도 4에서 제1 가상 장비(230-1)로 패킷을 전달할 수 있다. 또한, 오프로드 장치(200)는 패킷의 분석된 세션 정보를 통합 오프로드 캐시(222)에 저장할 수 있다. In detail, the
오프로드 장치(200)는 패킷이 오프로드 장치(200) 내의 적어도 하나의 가상 장비(230-1, 230-2, 230-3)들 사이에서 송수신되는 동안, 경로 정보 및 처리 정보를 세션 정보와 연계하여 통합 오프로드 캐시(222)에 저장할 수 있다(506). The
제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
이러한 정보는 패킷을 처리하는 가상 장비에 의해 저장될 수 있다. 구체적으로, 오프로드 장치(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
이후에 패킷에 대한 오프로드 장치(200) 내 전송이 종료된 경우(507), 오프로드 장치(200)는 통합 오프로드 캐시(222)로의 정보 저장(갱신)을 종료하고, 이전 단계로 회귀하여 다음 패킷을 수신할 수 있다(501). 일 실시 예에서, 오프로드 장치(200)는 패킷이 오프로드 장치(200) 내의 목적지 가상 장비에 도달하거나 오프로드 장치(200)로부터 유출된 경우, 통합 오프로드 캐시(222)로의 정보 저장을 종료할 수 있다. Thereafter, when transmission in the
다음 패킷이 수신되면, 오프로드 장치(200)는 수신된 패킷의 세션 정보를 분석하고(502), 그와 대응되는, 기저장된 세션 정보가 존재하는지를 판단한다(503).When the next packet is received, the
통합 오프로드 캐시(222)에 분석된 세션 정보와 대응되는 세션 정보가 존재하면, 오프로드 장치(200)는 통합 오프로드 캐시(222)를 참조하여 장비 간 오프로드를 수행한다(508).If there is session information corresponding to the analyzed session information in the
오프로드 장치(200)는 통합 오프로드 캐시(222)에 세션 정보와 연계하여 저장된 경로 정보를 참조한다. 오프로드 장치(200)는 경로 정보를 기초로 패킷이 경유할 적어도 하나의 가상 장비(230-1, 230-2, 230-3)를 판단할 수 있다. 여기서, 적어도 하나의 가상 장비(230-1, 230-2, 230-3)는 출발지 가상 장비를 포함할 수 있다. 또한, 적어도 하나의 가상 장비(230-1, 230-2, 230-3)는 목적지 가상 장비를 포함할 수 있다. The
오프로드 장치(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
또한, 오프로드 장치(200)는 통합 오프로드 캐시(222)에 세션 정보와 연계하여 저장된 처리 정보를 참조한다. 오프로드 장치(200)는 처리 정보를 기초로 패킷에 대해 수행되어야 하는 처리 동작을 수행하도록 적어도 하나의 가상 장비(230-1, 230-2, 230-3)를 제어할 수 있다. 이러한 제어에 의해 적어도 하나의 가상 장비(230-1, 230-2, 230-3)는, 예를 들어 함수 API 호출 등을 통해 패킷에 대한 처리 동작을 수행할 수 있다. In addition, the
다양한 실시 예에서, 처리 동작은 가상 보안 장치에 의한 네트워크 보안 처리일 수 있다. 예를 들어, 처리 동작은 패킷의 악성 여부를 판단하여, 패킷 전달을 허용/차단하기 위한 동작일 수 있다. 이 경우, 처리 동작에 의해 패킷 전달이 허용되는지 여부에 따라 해당 가상 보안 장치는 장치 간 오프로드에 따른 패킷 전달을 계속해서 수행하거나, 패킷 전달을 차단할 수 있다. 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
그에 따라, 패킷은 적어도 하나의 가상 장비(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
다양한 실시 예에서, 이러한 장비 간 오프로드는 오프로드 장치(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
도 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
통신부(201)는 외부의 네트워크 장치와 패킷을 송수신할 수 있다. 본 발명의 다양한 실시 예에서, 통신부(201)는 NIC를 포함하여 구성될 수 있다. NIC는 외부로부터 수신되는 패킷을 처리하여 제어부(202)로 전달하고, 제어부(202)로부터 전달되는 패킷을 외부로 전달하도록 구성될 수 있다. The
제어부(202)는 본 발명에 따른 오프로드 방법을 수행하기 위하여 오프로드 장치(100)의 각 구성 요소들을 제어할 수 있다. The
일 예로, 제어부(202)는 오프로드 장치(100)에 마련되는 적어도 하나의 물리 자원, 예를 들어, 제어부(120)를 구성하는 CPU, 저장부를 구성하는 메모리, 디스크 등을 가상 장비에 할당하고, 가상 장비를 위한 게스트 OS를 구동함으로써 가상 장비를 생성할 수 있다. 이러한 실시 예에서, 가상 장비에는 가상 NIC가 할당될 수 있으며, 가상 장비는 할당된 가상 NIC를 통해 외부 네트워크 장치 또는 내부의 다른 가상 장비들과 패킷을 송수신할 수 있다. For example, the
제어부(202)는 저장부(203)에 통합 오프로드 캐시를 할당하여 저장할 수 있다. 제어부(202)는 통신부(201)를 통하여 수신되는 패킷의 세션 정보를 통합 오프로드 캐시에 저장할 수 있다. 또한, 제어부(202)는 패킷이 가상 장비들 사이에서 송수신되는 동안, 경로 정보 및 처리 정보를 통합 오프로드 캐시에 세션 정보와 연계하여 저장하도록, 가상 장비를 제어할 수 있다. The
제어부(202)는 통신부(201)를 통하여 패킷이 수신되면, 세션 정보를 분석하여, 통합 오프로드 캐시에 기저장된 세션 정보들과 비교할 수 있다. 분석된 세션 정보와 동일한 세션 정보가 통합 오프로드 캐시에 기저장되어 있으면, 제어부(202)는 세션 정보와 연계하여 저장된 경로 정보 및 처리 정보를 참조하여, 장비 간 오프로드에 의한 패킷 처리를 수행하도록 가상 장비를 제어할 수 있다. When the packet is received through the
구체적으로, 제어부(202)는 패킷의 출발지 가상 장비로 패킷을 전달할 수 있고, 경로 정보를 기초로 해당 패킷이 경유하는 가상 장비들이 가상 NIC를 통해 패킷 처리 및 전달을 수행하도록 경로 정보에 포함된 가상 장비들을 제어할 수 있다. 또한, 제어부(202)는 처리 정보를 기초로 해당 패킷에 대한 처리를 수행하는 가상 장비들이 해당 패킷 처리를 수행하도록 제어할 수 있다. In detail, the
제어부(202)의 보다 구체적인 제어 동작은 도 1 내지 도 5를 참조하여 설명한 것과 동일하다.More specific control operations of the
저장부(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
저장부(203)는 물리 자원으로써 메모리 및 디스크를 포함할 수 있다. 저장부(203)는 가상 장비를 위하여 할당된 영역에 가상 장비를 위한 운영 체제, 소프트웨어, 프로그램, 애플리케이션, 데이터 등을 저장하도록 구성될 수 있다. The
저장부(203)는 제어부(202)의 제어에 따라 일 영역에 통합 오프로드 캐시를 마련하고, 장비 간 오프로드를 위하여 필요한 세션 정보, 경로 정보, 처리 정보 등을 저장할 수 있다. The
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 그리고 본 명세서와 도면에 개시된 실시 예들은 본 발명의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다. 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.
상기 적어도 하나의 가상 장비의 식별 정보를 포함하고,
상기 처리 정보는,
상기 적어도 하나의 가상 장비에서 상기 패킷에 대해 수행되는 동작에 관한 정보인 것을 특징으로 하는 오프로드 장치.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.
상기 처리 정보를 기초로 상기 패킷에 대해 수행되어야 할 동작을 호출하여 상기 패킷을 처리하도록 상기 가상 장비를 제어하는 것을 특징으로 하는 오프로드 장치.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.
임의의 가상 장비가 가상 보안 장비인 경우에, 상기 가상 보안 장비가 상기 패킷에 대해 수행하는 방화벽, 네트워크 주소 변환(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.
상기 적어도 하나의 가상 장비의 식별 정보를 포함하고,
상기 처리 정보는,
상기 적어도 하나의 가상 장비에서 상기 패킷에 대해 수행되는 동작에 관한 정보인 것을 특징으로 하는 오프로드 방법. 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.
상기 적어도 하나의 가상 장비를 제어하는 단계는,
상기 적어도 하나의 가상 장비가 상기 패킷에 대하여 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.
상기 처리 정보를 기초로 상기 패킷에 대해 수행되어야 할 동작을 호출하여 상기 패킷을 처리하도록 상기 가상 장비를 제어하는 단계를 포함하는 것을 특징으로 하는 오프로드 방법. 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.
임의의 가상 장비가 가상 보안 장비인 경우에, 상기 가상 보안 장비가 상기 패킷에 대해 수행하는 방화벽, 네트워크 주소 변환(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.
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)
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 |
-
2017
- 2017-12-12 KR KR1020170170003A patent/KR102026447B1/en active IP Right Grant
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 |