KR102200402B1 - Method, apparatus and computer program for supporting distributed snat in a cloud environment in a software defined network - Google Patents

Method, apparatus and computer program for supporting distributed snat in a cloud environment in a software defined network Download PDF

Info

Publication number
KR102200402B1
KR102200402B1 KR1020180152102A KR20180152102A KR102200402B1 KR 102200402 B1 KR102200402 B1 KR 102200402B1 KR 1020180152102 A KR1020180152102 A KR 1020180152102A KR 20180152102 A KR20180152102 A KR 20180152102A KR 102200402 B1 KR102200402 B1 KR 102200402B1
Authority
KR
South Korea
Prior art keywords
compute node
port number
tcp port
packet
snat
Prior art date
Application number
KR1020180152102A
Other languages
Korean (ko)
Other versions
KR20200065540A (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 KR1020180152102A priority Critical patent/KR102200402B1/en
Publication of KR20200065540A publication Critical patent/KR20200065540A/en
Application granted granted Critical
Publication of KR102200402B1 publication Critical patent/KR102200402B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • H04L61/2007
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • H04L61/6063
    • H04L61/6095
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/663Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/695Types of network addresses using masks or ranges of addresses

Abstract

본 발명은 소프트웨어 정의 네트워크에서, 컨트롤러가 클라우드 환경의 SNAT 기능을 지원하는 방법에 대한 것으로, 상기 클라우드 환경을 구현하는 컴퓨트 노드를 적어도 하나 이상 포함하는 컴퓨트 노드 그룹에 하나의 공인 IP를 할당하고, 상기 컴퓨트 노드 그룹에 속한 컴퓨트 노드 각각에 포트 번호를 할당하는 단계; 및 상기 컴퓨트 노드에서 구현되는 가상 스위치에 대해, 소스 주소가 상기 컴퓨트 노드에서 구현되는 가상 머신의 사설 IP이며, 목적지 주소가 상기 컴퓨트 노드 그룹 외부인 패킷을 수신하면, 상시 패킷의 소스 주소를 상기 공인 IP로 변경하고, 소스 포트를 상기 컴퓨트 노드에 할당된 포트 번호로 변경하도록 설정하는 단계를 포함하는 것을 특징으로 한다. The present invention relates to a method in which a controller supports the SNAT function of a cloud environment in a software defined network, and allocates one public IP to a compute node group including at least one compute node implementing the cloud environment. Allocating a port number to each compute node belonging to the compute node group; And, for a virtual switch implemented in the compute node, when a source address is a private IP of a virtual machine implemented in the compute node and a destination address is outside the compute node group, the source address of the packet is always received. And changing to the public IP and setting a source port to a port number allocated to the compute node.

Description

소프트웨어 정의 네트워크에서 클라우드 환경의 분산 SNAT을 지원하는 방법, 장치 및 컴퓨터 프로그램 {METHOD, APPARATUS AND COMPUTER PROGRAM FOR SUPPORTING DISTRIBUTED SNAT IN A CLOUD ENVIRONMENT IN A SOFTWARE DEFINED NETWORK}METHOD, APPARATUS AND COMPUTER PROGRAM FOR SUPPORTING DISTRIBUTED SNAT IN A CLOUD ENVIRONMENT IN A SOFTWARE DEFINED NETWORK}

본 발명은 소프트웨어 정의 네트워킹에서 클라우드 환경을 제공하는 방법에 대한 것이다. 보다 구체적으로 본 발명은 소프트웨어 정의 네트워킹에서 클라우드 환경의 분산 SNAT 기능을 지원하는 방법에 대한 것이다.The present invention relates to a method of providing a cloud environment in software defined networking. More specifically, the present invention relates to a method of supporting a distributed SNAT function of a cloud environment in software defined networking.

소프트웨어 정의 네트워킹 (Software Defined Networking, 이하 SDN이라 칭함)은 네트워크의 모든 네트워크 장비를 지능화된 중앙관리시스템에 의해 관리하는 기술을 의미한다. SDN 기술에서는 기존 하드웨어 형태의 네트워크 장비에서 자체적으로 수행하는 패킷 처리와 관련된 제어 동작을 소프트웨어 형태로 제공되는 컨트롤러가 대신하여 처리함으로써, 기존의 네트워크 구조보다 다양한 기능을 개발하고 부여할 수 있다는 장점을 갖는다.Software Defined Networking (hereinafter referred to as SDN) refers to a technology that manages all network equipment in a network by an intelligent central management system. SDN technology has the advantage of being able to develop and assign various functions compared to the existing network structure by processing the control operations related to packet processing performed by the existing hardware type network equipment on its behalf by a controller provided in the form of software. .

SDN 시스템은 일반적으로 전체 네트워크를 제어하는 컨트롤러 서버와, 상기 컨트롤러 서버에 의해 제어되며 패킷을 처리하는 복수의 오픈플로우 스위치와, 오픈플로우 스위치의 하위 계층에 해당하는 호스트를 포함하여 구성된다. 여기에서 오픈플로우 스위치는 패킷의 송수신 기능만을 담당하게 되고, 패킷의 경로 설정, 관리 및 제어는 모두 컨트롤러 서버에서 이루어진다. 즉, 네트워크 장비를 이루는 Data Plane과 Control Plane을 분리하는 것이 SDN 시스템의 기본 구조라 볼 수 있다. The SDN system generally includes a controller server that controls an entire network, a plurality of openflow switches that are controlled by the controller server and process packets, and a host corresponding to a lower layer of the openflow switch. Here, the openflow switch is responsible for only the packet transmission/reception function, and packet routing, management and control are all performed at the controller server. That is, separating the Data Plane and Control Plane constituting the network equipment can be seen as the basic structure of the SDN system.

Open Networking Foundation, “OpenFlow Specification 1.2.0”Open Networking Foundation, “OpenFlow Specification 1.2.0”

본 발명은 소프트웨어 정의 네트워킹에서 클라우드 환경의 분산 SNAT을 효율적으로 지원하는 방법을 제공하는 것을 목적으로 한다. 특히 본 발명은, 클라우드 환경에서 SNAT 네트워크를 처리하기 위한 별도의 네트워크 노드를 설정하지 않고, 오픈플로우 프로토콜을 이용하여 SNAT 기능을 지원하는 방법 및 장치를 제공하는 것을 목적으로 한다. An object of the present invention is to provide a method of efficiently supporting distributed SNAT in a cloud environment in software defined networking. In particular, an object of the present invention is to provide a method and apparatus for supporting an SNAT function using an open flow protocol without setting a separate network node for processing an SNAT network in a cloud environment.

본 발명의 실시예를 따르는 소프트웨어 정의 네트워크에서, 컨트롤러가 클라우드 환경의 SNAT 기능을 지원하는 방법은, 상기 클라우드 환경을 구현하는 컴퓨트 노드를 적어도 하나 이상 포함하는 컴퓨트 노드 그룹에 하나의 공인 IP를 할당하고, 상기 컴퓨트 노드 그룹에 속한 컴퓨트 노드 각각에 포트 번호를 할당하는 단계; 및 상기 컴퓨트 노드에서 구현되는 가상 스위치에 대해, 소스 주소가 상기 컴퓨트 노드에서 구현되는 가상 머신의 사설 IP이며, 목적지 주소가 상기 컴퓨트 노드 그룹 외부인 패킷을 수신하면, 상시 패킷의 소스 주소를 상기 공인 IP로 변경하고, 소스 포트를 상기 컴퓨트 노드에 할당된 TCP 포트 번호로 변경하도록 설정하는 단계를 포함하는 것을 특징으로 한다. In a software defined network according to an embodiment of the present invention, a method for a controller to support the SNAT function in a cloud environment includes one public IP in a compute node group including at least one compute node implementing the cloud environment. Allocating and allocating a port number to each of the compute nodes belonging to the compute node group; And, for a virtual switch implemented in the compute node, when a source address is a private IP of a virtual machine implemented in the compute node and a destination address is outside the compute node group, the source address of the packet is always received. And changing to the public IP and setting a source port to a TCP port number assigned to the compute node.

발명에 따르면, 클라우드 환경에서 SNAT 네트워크를 처리하기 위한 별도의 네트워크 노드를 설정하지 않고, 오픈플로우 프로토콜을 이용하여 SNAT 기능을 제공할 수 있어, 전체 네트워크의 성능이 향상되는 효과가 있다. According to the invention, the SNAT function can be provided using an open flow protocol without setting a separate network node for processing the SNAT network in a cloud environment, thereby improving the performance of the entire network.

도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면
도 2는 클라우드 환경에서 SNAT 동작을 설명하기 위한 도면
도 3은 본 발명의 실시예를 따르는 소프트웨어 정의 네트워킹에서 클라우드 환경의 SNAT 기능을 제공하는 예시를 설명하기 위한 도면
도 4은 본 발명의 실시예를 따르는 소프트웨어 정의 네트워킹에서 SNAT 기능을 제공하는 방법을 설명하기 위한 순서도
1 is a diagram for explaining the configuration of a software defined network
2 is a diagram for explaining an SNAT operation in a cloud environment
3 is a diagram for explaining an example of providing an SNAT function of a cloud environment in software defined networking according to an embodiment of the present invention
4 is a flowchart illustrating a method of providing an SNAT function in software defined networking according to an embodiment of the present invention.

본 발명은 이하에 기재되는 실시예들의 설명 내용에 한정되는 것은 아니며, 본 발명의 기술적 요지를 벗어나지 않는 범위 내에서 다양한 변형이 가해질 수 있음은 자명하다. 그리고 실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 널리 알려져 있고 본 발명의 기술적 요지와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. The present invention is not limited to the description of the embodiments to be described below, and it is obvious that various modifications may be made without departing from the technical gist of the present invention. Further, in describing the embodiments, descriptions of technical contents that are widely known in the technical field to which the present invention pertains and are not directly related to the technical subject matter of the present invention will be omitted.

한편, 첨부된 도면에서 동일한 구성요소는 동일한 부호로 표현된다. 그리고 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시될 수도 있다. 이는 본 발명의 요지와 관련이 없는 불필요한 설명을 생략함으로써 본 발명의 요지를 명확히 설명하기 위함이다. 이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. Meanwhile, in the accompanying drawings, the same elements are represented by the same reference numerals. In addition, some components in the accompanying drawings may be exaggerated, omitted, or schematically illustrated. This is to clarify the gist of the present invention by omitting unnecessary description not related to the gist of the present invention. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 명세서에서 “플로우 룰”의 용어는 해당 업계의 통상의 기술자 입장에서 소프트웨어 정의 네트워크에서 컨트롤러 서버가 적용하는 네트워크 정책을 의미하는 것으로 이해되어야 한다.In the specification of the present invention, the term "flow rule" should be understood to mean a network policy applied by a controller server in a software defined network from the standpoint of a person skilled in the relevant industry.

나아가 본 명세서에서 오픈플로우 스위치(200)는 오픈플로우 프로토콜만을 지원하는 스위치, 오픈플로우 프로토콜을 지원하는 가상 스위치, 오픈플로우 프로토콜을 지원하는 일반적인 L2 스위치를 포함하는 개념으로 이해될 수 있다.Further, in the present specification, the openflow switch 200 may be understood as a concept including a switch supporting only the openflow protocol, a virtual switch supporting the openflow protocol, and a general L2 switch supporting the openflow protocol.

도 1은 소프트웨어 정의 네트워크의 구성을 설명하기 위한 도면이다. 도 1을 참조하면, 소프트웨어 정의 네트워크(Software Defined Network)는 컨트롤러 서버 (100), 네트워크 장비(200) 및 호스트(300)를 포함할 수 있다. 네트워크 장비(200)와 호스트(300)는 노드(Node)라고 지칭할 수 있으며, 링크(Link)는 2개의 노드 사이의 연결을 의미할 수 있다. 1 is a diagram for describing a configuration of a software defined network. Referring to FIG. 1, a software defined network may include a controller server 100, a network device 200, and a host 300. The network equipment 200 and the host 300 may be referred to as a node, and a link may mean a connection between two nodes.

컨트롤러 서버(100)는 네트워크 장비(200)를 관리하는 기능을 하는 것으로, 복수의 네트워크 장비(200)를 중앙 집중형으로 관리 및 제어한다. 구체적으로 컨트롤러 서버(100)는 토폴로지 관리(Topology management), 패킷 처리와 관련된 경로 관리(Path management), 링크 디스커버리(Link discovery), 패킷 흐름인 플로우 관리(Flow management) 등의 기능을 하는 응용 프로그램이 탑재된 형태로 구현될 수 있다. The controller server 100 functions to manage the network equipment 200 and manages and controls a plurality of network equipment 200 in a centralized manner. Specifically, the controller server 100 includes an application program that performs functions such as topology management, path management related to packet processing, link discovery, and flow management, which is a packet flow. It can be implemented in a mounted form.

네트워크 장비(200)는 컨트롤러 서버(100)의 제어에 따라 패킷을 처리하는 기능을 한다. 네트워크 장비(200)의 예로는 이동 통신 기지국, 기지국 제어기, 게이트웨이 장비, 유선 네트워크의 스위치, 라우터 등이 있다. The network equipment 200 functions to process packets under the control of the controller server 100. Examples of the network equipment 200 include a mobile communication base station, a base station controller, a gateway equipment, a switch in a wired network, a router, and the like.

소프트웨어 정의 네트워크에서 컨트롤러 서버(100)와 오픈플로우 스위치(200)는 상호간 정보를 주고 받아야 하며, 이를 위한 프로토콜로 널리 사용되는 것이 오픈플로우 (OpenFlow) 프로토콜이다. 즉, 오픈플로우 프로토콜은 컨트롤러 서버(100)와 오픈플로우 스위치(200)간 서로 통신할 수 있는 표준 규격이다. In a software defined network, the controller server 100 and the openflow switch 200 must exchange information with each other, and the openflow protocol is widely used as a protocol for this. That is, the openflow protocol is a standard standard that allows the controller server 100 and the openflow switch 200 to communicate with each other.

오픈플로우 프로토콜을 따르면, 스위치(200)는 컨트롤 채널(Control Channel)을 통해 컨트롤러 서버(100)와 정보를 교환하고, 파이프라인(Pipeline) 프로세싱을 위한 하나 이상의 플로우 테이블(Flow table), 그룹 테이블, 미터 테이블 및/또는 패킷 전달을 위한 네트워크 인터페이스로 하나 이상의 포트를 가질 수 있다. According to the open flow protocol, the switch 200 exchanges information with the controller server 100 through a control channel, and at least one flow table, a group table, and a group table for pipeline processing. A meter table and/or a network interface for packet delivery may have one or more ports.

한편, 호스트(200)에서 인터넷을 사용하기 위해서는 호스트마다 고유한 공인 IP 주소가 필요하다. 사설 네트워크에서 호스트 사이의 통신은 사설 IP만으로도 가능하지만, 사설 네트워크 외부의 인터넷에 접속하기 위해서는 고유한 공인 IP주소를 사용하여 인터넷에 접속해야 한다. Meanwhile, in order for the host 200 to use the Internet, a unique public IP address is required for each host. Communication between hosts in a private network is possible with only private IP, but in order to access the Internet outside the private network, a unique public IP address must be used to access the Internet.

그러나 인터넷을 사용하는 장치들은 점점 늘어나고 있고 사용할 수 있는 IP주소는 한정되어 있기 때문에, 내부 네트워크에서는 공인되지 않은 IP 주소, 즉 사설 IP 주소를 사용하고, 인터넷으로 나갈 때만 공인 IP 주소를 가지고 나가는 방식이 널리 사용되고 있다. 이를 지원하는 기술이 네트워크 주소 변환 (netwotk address translation, 이하 NAT)이며, 특히 SNAT은 소스 IP 주소를 공인 IP 주소로 변경하는 기술이다. However, since the number of devices that use the Internet is increasing and the available IP addresses are limited, the internal network uses an unauthorized IP address, i.e., a private IP address, and the method of leaving the public IP address only when going to the Internet is It is widely used. The technology that supports this is netwotk address translation (NAT), and SNAT in particular is a technology that converts a source IP address into a public IP address.

도 2는 종래 클라우드 환경에서 SNAT 동작을 설명하기 위한 도면이다. 2 is a diagram for explaining an SNAT operation in a conventional cloud environment.

예를 들어 도 2에 도시된 바와 같이, 컴퓨트 노드 210, 220, 230, 240 및 물리 스위치 250을 포함하는 레가시 네트워크로 구현된 클라우드 환경에서 가상 머신 215, 225, 235가 제 1 테넌트, 가상머신 236이 제 2 테넌트에 속하는 경우를 예시할 수 있다. For example, as shown in FIG. 2, in a cloud environment implemented as a legacy network including compute nodes 210, 220, 230, 240 and physical switches 250, virtual machines 215, 225, and 235 are the first tenants and virtual machines. A case in which 236 belongs to the second tenant may be illustrated.

이때 각각의 가상머신 215, 225, 235, 236에서 인터넷에 접속하기 위해서는 네트워크 노드 245에서 SNAT 네트워크를 처리해야 할 것이다. SNAT을 별도의 네트워크 노드 245에서 처리하지 않고 컴퓨트 노드 210, 220, 230 각각에서 처리하게 되면, 복수의 컴퓨트 노드에 동일한 공인 IP가 사용되어 충돌이 발생할 수 있기 때문이다. At this time, in order to access the Internet from each of the virtual machines 215, 225, 235, and 236, the network node 245 will have to process the SNAT network. This is because if the SNAT is not processed by a separate network node 245 but processed by each of the compute nodes 210, 220, and 230, a collision may occur because the same public IP is used for a plurality of compute nodes.

이와 같이 클라우드 환경에서 모든 SNAT 외부 통신은 네트워크 노드를 거치기 때문에 통신 과정에 하나의 홉 (Hop)이 추가되게 된다. 나아가 네트워크 노드에 병목 현상이 발생하여 전체 통신 품질이 낮아지는 문제도 발생할 수 있다. In this way, since all SNAT external communication in the cloud environment goes through the network node, one hop is added to the communication process. Furthermore, a bottleneck may occur in a network node, resulting in a problem of lowering the overall communication quality.

나아가 도 2의 예시와 같은 클라우드 환경에서, 공인 IP는 컴퓨트 노드 각각에 대해 테넌트 개수만큼 할당된다. 클라우드 환경에서 하나의 테넌트에 포함된 복수의 가상 머신은 복수의 컴퓨트 노드에 분산되어 구현되기 때문이다. 도 2의 예에서, 가상 머신 215, 225, 235가 제 1 테넌트, 가상머신 236이 제 2 테넌트에 속하기 때문에, 도 2의 네트워크는 총 4개의 공인 IP가 필요하게 될 것이다. 따라서, 수많은 공인 IP가 할당되고 네트워크 관리가 복잡해지는 문제가 있다. Furthermore, in the cloud environment as illustrated in FIG. 2, public IPs are allocated as many as tenants to each compute node. This is because in a cloud environment, a plurality of virtual machines included in one tenant are distributed and implemented across a plurality of compute nodes. In the example of FIG. 2, since the virtual machines 215, 225, and 235 belong to the first tenant and the virtual machine 236 belongs to the second tenant, the network of FIG. 2 will require a total of 4 public IPs. Therefore, there is a problem that numerous public IPs are allocated and network management becomes complicated.

본 발명은 상기와 같은 문제를 해결하기 위한 것이다. The present invention is to solve the above problems.

본 발명의 실시예를 따르면, 소프트웨어 정의 네트워킹을 이용하여 클라우드 환경의 분산 SNAT 기능을 제공할 수 있다. 본 발명의 실시예를 따르면, SNAT을 처리하기 위한 별도의 네트워크 노드를 설정하지 않고, 컨트롤러에서 NAT 테이블을 작성하고, 물리 스위치와 가상 스위치에 플로우 룰을 설정하여 분산 SNAT 기능을 제공할 수 있다. According to an embodiment of the present invention, it is possible to provide a distributed SNAT function of a cloud environment by using software defined networking. According to an embodiment of the present invention, it is possible to provide a distributed SNAT function by creating a NAT table in a controller and setting flow rules in a physical switch and a virtual switch without setting a separate network node for processing SNAT.

도 3은 본 발명의 실시예를 따르는 소프트웨어 정의 네트워킹에서 클라우드 환경의 SNAT 기능을 제공하는 예시를 설명하기 위한 도면이다. 3 is a diagram for explaining an example of providing an SNAT function in a cloud environment in software defined networking according to an embodiment of the present invention.

도 3은 Leaf-Spine 구조의 오픈플로우 스위치 (310, 315, 320, 325, 330, 335) 및 컴퓨트 노드 (340, 345, 350, 355)를 포함하는 소프트웨어 정의 네트워킹의 예시이다. 이때, 컨트롤러 10는 물리 스위치 (310, 315, 320, 325, 330, 335)와 컴퓨트 노드에서 구현되는 가상 스위치를 컨트롤 채널을 통해 제어할 수 있다. FIG. 3 is an example of software-defined networking including open flow switches 310, 315, 320, 325, 330, 335 and compute nodes 340, 345, 350, 355 of a Leaf-Spine structure. In this case, the controller 10 may control the physical switches 310, 315, 320, 325, 330, 335 and the virtual switches implemented in the compute node through a control channel.

이와 같은 네트워크에서 운영자는 컴퓨트 노드 (340, 345, 350, 355)에 적어도 하나 이상의 가상 머신 및 가상 스위치를 구현하고 사용자에게 클라우드 환경의 네트워크 서비스를 제공할 수 있다. In such a network, an operator may implement at least one virtual machine and virtual switch on the compute nodes 340, 345, 350, and 355 and provide a network service in a cloud environment to a user.

본 발명의 실시예를 따르면, SNAT 기능을 제공하는 별도의 네트워크 노드를 설정하지 않고, 소프트웨어 정의 네트워킹을 이용하여 상기 기능을 제공할 수 있다. 즉, 컨트롤러에서 SNAT 테이블을 설정하고, SNAT 테이블에 따라 외부와 통신을 제공하도록 물리 스위치 및 가상 스위치에 플로우 룰을 설정하여 SNAT 기능을 제공할 수 있다. According to an embodiment of the present invention, the function can be provided by using software defined networking without setting a separate network node that provides the SNAT function. In other words, the SNAT function can be provided by setting the SNAT table in the controller and setting flow rules in the physical switch and the virtual switch to provide communication with the outside according to the SNAT table.

보다 구체적으로, 컨트롤러는 각각의 테넌트에 속하는 컴퓨트 노드의 그룹 별로 하나의 공인 IP를 할당하고, 그룹에 포함된 컴퓨트 노드에 대해 TCP 포트를 고유하게 할당하여 그룹에 포함된 컴퓨트 노드를 구분할 수 있다. More specifically, the controller allocates one public IP for each group of compute nodes belonging to each tenant, and uniquely allocates a TCP port to the compute nodes included in the group to distinguish the compute nodes included in the group. I can.

본 발명의 실시예를 따르면, 도 3에서, 제 1 컴퓨트 노드 340 내지 제 4 컴퓨트 노드 355가 하나의 테넌트인 경우,. 제 1 컴퓨트 노드 340 내지 제 4 컴퓨트 노드 355 그룹에 하나의 공인 IP 172.0.0.2 를 할당할 수 있다. According to an embodiment of the present invention, in FIG. 3, when the first compute node 340 to the fourth compute node 355 are one tenant. One public IP 172.0.0.2 may be allocated to a group of the first compute node 340 to the fourth compute node 355.

나아가 컨트롤러는 컴퓨트 노드 그룹에 속하는 각각의 컴퓨트 노드를 구분하기 위하여 제 1 컴퓨트 노드 340에 TCP 포트 22, 제 2 컴퓨트 노드 345에 TCP 포트 23, 제 3 컴퓨트 노드 350에 TCP 포트 24, 제 5 컴퓨트 노드 355에 TCP 포트 25를 할당할 수 있다. Furthermore, the controller uses TCP port 22 to the first compute node 340, TCP port 23 to the second compute node 345, and TCP port 24 to the third compute node 350 in order to classify each compute node belonging to the compute node group. , TCP port 25 may be allocated to the fifth compute node 355.

본 발명의 다른 실시예를 따르면, 컨트롤러는 컴퓨트 노드에 특정의 TCP 포트를 할당하지 않고, TCP포트 범위를 임의로 분할하여 할당할 수도 있다예를 들어 도 3의 예에서 컴퓨트 노드가 4개이기 때문에 포트 범위를 1/4만큼 할당할 수도 있다. According to another embodiment of the present invention, the controller does not allocate a specific TCP port to the compute node, but may randomly divide and allocate the TCP port range. For example, in the example of FIG. 3, there are four compute nodes. Therefore, you can allocate 1/4 of the port range.

상기 실시예를 따르면, 컨트롤러가 스위치에 적용하는 플로우 엔트리 수를 최적화할 수 있다. According to the above embodiment, it is possible to optimize the number of flow entries that the controller applies to the switch.

도 3의 예에서 스위치 320는 제 1 컴퓨트 노드 340 및 제 2 컴퓨트 노드 345와 연결되며, 제 1 컴퓨트 노드 340에서 TCP 포트를 117, 121, 133, 155, 제 2 컴퓨트 노드 345에서 TCP 포트를 300, 301, 302, 303이 할당되어 있는 경우를 가정할 수 있다. 이 경우 TCP 포트를 마스킹 방식으로 변환하면, 제 1 컴퓨트 노드 340는 0~255 범위로 0x0000/0xff00, 제 2 컴퓨트 노드 345는 256~511 범위로, 0x0100/0xff00 형태로 설정할 수 있다. In the example of FIG. 3, the switch 320 is connected to the first compute node 340 and the second compute node 345, and the TCP ports 117, 121, 133, 155 in the first compute node 340, and in the second compute node 345. It can be assumed that TCP ports 300, 301, 302, and 303 are assigned. In this case, when the TCP port is converted to a masking method, the first compute node 340 may be set in the range of 0 to 255, 0x0000/0xff00, the second compute node 345 may be set in the range of 256 to 511, and 0x0100/0xff00.

이때, 컨트롤러가 스위치 320에 설정하는 플로우 엔트리는 TCP 포트를 각각 지정하는 경우 8개에서, 마스킹 방식으로 범위를 지적하는 경우 2개로 축소될 수 있어 최적화된 플로우 테이블을 운용할 수 있는 효과가 있다. 한편, 본 발명의 실시예를 따르면 컴퓨트 노드 그룹에 포함된 컴퓨트 노드를 구분하기 위하여, 전술한 바와 같이 TCP 포트를 사용할 수 있지만, 다른 프로토콜의 필드를 사용할 수도 있다. At this time, the flow entries set by the controller on the switch 320 can be reduced from 8 when each TCP port is designated, and to 2 when a range is indicated by a masking method, so that an optimized flow table can be operated. Meanwhile, according to an embodiment of the present invention, a TCP port may be used as described above to distinguish compute nodes included in a compute node group, but fields of other protocols may be used.

예를 들어 본 발명의 다른 실시예를 따르면 UDP 포트 또는 ICMP ID를 사용하여 컴퓨트 노드를 구분할 수 있다. 따라서 본 발명은 TCP 포트만을 사용하여 컴퓨트 노드를 구분할 수 있는 것으로 한정되어 해석될 수 없다. For example, according to another embodiment of the present invention, a compute node may be identified using a UDP port or an ICMP ID. Therefore, the present invention cannot be interpreted as being limited to the fact that the compute node can be classified using only the TCP port.

한편 컨트롤러는 컴퓨트 노드에 공인 IP와 TCP 포트를 할당하고 이를 바탕으로 NAT 테이블을 작성할 수 있다. 이후 컨트롤러는 NAT 테이블에 따라 외부 통신을 제공하도록 물리 스위치와 가상 스위치에 플로우 룰을 설정할 수 있다. Meanwhile, the controller can allocate a public IP and TCP port to the compute node and create a NAT table based on it. The controller can then set flow rules on the physical switch and the virtual switch to provide external communication according to the NAT table.

예를 들어 도 3에서 제 2 컴퓨트 노드 345의 인터넷 통신을 제공하기 위하여, 컨트롤러는 제 2 컴퓨트 노드에 구현된 소프트웨어 스위치에 아래의 표 1과 같은 플로우 룰을 설정할 수 있다. For example, in order to provide Internet communication of the second compute node 345 in FIG. 3, the controller may set a flow rule as shown in Table 1 below to a software switch implemented in the second compute node.

Match FieldsMatch Fields InstructionsInstructions 1. 소스가 제 2 컴퓨트 노드의 사설 IP 주소이며 목적지가 사설망 외부1. The source is the private IP address of the second compute node and the destination is outside the private network. 1. 소스 IP 주소를 172.0.0.2로 변경
2. 소스 TCP 포트를 23으로 변경
3. 리프 스위치로 포워딩
1. Change the source IP address to 172.0.0.2
2. Change the source TCP port to 23
3. Forwarding to leaf switch
목적지 IP 주소가 172.0.0.2이며 목적지 TCP 포트가 23Destination IP address is 172.0.0.2 and destination TCP port is 23 1. 목적지 IP 주소를 제 2 컴퓨트 노드에 할당된 사설 IP 주소로 변경
2. 목적지 TCP 포트를 제 2 컴퓨트 노드에 할당된 TCP 포트로 변경
3. 해당 가상머신으로 포워딩
1. Change the destination IP address to the private IP address assigned to the second compute node.
2. Change the destination TCP port to the TCP port assigned to the second compute node.
3. Forwarding to the virtual machine

표 1에 기재된 첫번째 플로우 룰을 따르면, 제 2 컴퓨트 노드에 구현된 소프트웨어 스위치는 소스가 제 2 컴퓨트 노드의 사설 IP 주소이고, 목적지가 사설망 외부인 패킷을 수신하면, 패킷의 소스 IP 주소를 172.0.0.2로 변경하고, 소스 TCP 포트는 23으로 변경하여 리프 스위치 (도 3에서는 320 또는 325)로 포워딩할 것이다. 이에 따르면 제 2 컴퓨트 노드에 구현된 가상 머신들은 SNAT을 위하여 별도의 네트워크 노드를 거치는 1hop을 생략하고 SNAT 기능을 제공받을 수 있다. 표 1에 기재된 두번째 플로우 룰을 따르면, 제 2 컴퓨트 노드에 구현된 소프트웨어 스위치는 목적지가 제 2 컴퓨트 노드의 공인 IP 주소 및 TCP 포트인 패킷을 수신하면, 패킷의 목적지 IP 주소를 제 2 컴퓨트 노드의 사설 IP 주소로 변경하고, 목적지 TCP 포트는 제 2 컴퓨트 노드에 할당된 실제 TCP 포트로 변경하여 임의의 가상 머신으로 포워딩할 것이다. 이에 따르면 제 2 컴퓨트 노드에 구현된 가상 머신들은 SNAT을 위하여 별도의 네트워크 노드를 거치는 1hop을 생략하고 SNAT 기능을 제공받을 수 있다. According to the first flow rule listed in Table 1, when a software switch implemented in the second compute node receives a packet whose source is the private IP address of the second compute node and the destination is outside the private network, the source IP address of the packet is 172.0. 0.2 and the source TCP port to 23 will forward to the leaf switch (320 or 325 in FIG. 3). Accordingly, virtual machines implemented in the second compute node may omit 1 hop through a separate network node for SNAT and receive the SNAT function. According to the second flow rule described in Table 1, when the software switch implemented in the second compute node receives a packet whose destination is the public IP address and TCP port of the second compute node, the destination IP address of the packet is sent to the second computer. It is changed to the private IP address of the node node, and the destination TCP port is changed to the actual TCP port assigned to the second compute node, and forwarded to a virtual machine. Accordingly, virtual machines implemented in the second compute node may omit 1 hop through a separate network node for SNAT and receive the SNAT function.

나아가 컨트롤러는 도 3에서 제 2 컴퓨트 노드 345의 인터넷 통신을 제공하기 위하여, Leaf-Spine 구조의 물리 스위치에 아래의 표 2와 같은 플로우 룰을 설정할 수 있다. Further, the controller may set a flow rule as shown in Table 2 below in a physical switch having a Leaf-Spine structure in order to provide Internet communication of the second compute node 345 in FIG. 3.

Match FieldsMatch Fields InstructionsInstructions 1. 목적지 IP주소가 172.0.0.2
2. 목적지 TCP 포트가 23
1. The destination IP address is 172.0.0.2
2. Destination TCP port is 23
제 2 컴퓨트 노드로 포워딩Forwarding to the second compute node

표 2에 기재된 플로우 룰을 따르면, 사설망을 제공하는 물리 스위치들은 목적지가 공인 IP 172.0.0.2이고, 목적지 TCP 포트가 23인 경우, 제 2 컴퓨트 노드로 포워딩할 것이다. 이에 따르면 클라우드 환경을 구현하는 물리 스위치는 목적지 주소가 공인 IP인 패킷을 수신하면, 패킷의 목적지 TCP 포트 번호를 할당받은 컴퓨트 노드로 상기 패킷을 포워딩할 수 있다. 이후 패킷은 제 2 컴퓨트 노드에서 구현되는 가상 스위치에 의해, 표 1의 두번째 플로우 룰이 적용되어 목적지 가상 머신으로 포워딩될 것이다. .도 4은 본 발명의 실시예를 따르는 소프트웨어 정의 네트워킹에서 SNAT 기능을 제공하는 방법을 설명하기 위한 순서도이다. According to the flow rule described in Table 2, when the destination is public IP 172.0.0.2 and the destination TCP port is 23, the physical switches providing the private network will forward to the second compute node. According to this, when a physical switch implementing a cloud environment receives a packet whose destination address is a public IP, it can forward the packet to a compute node assigned with the destination TCP port number of the packet. Thereafter, the packet will be forwarded to the destination virtual machine by applying the second flow rule in Table 1 by the virtual switch implemented in the second compute node. 4 is a flowchart illustrating a method of providing an SNAT function in software defined networking according to an embodiment of the present invention.

단계 410에서 컨트롤러는 네트워크에 분산 SNAT 기능을 제공하기 위하여 컨트롤러는 컴퓨트 노드의 그룹 별로 하나의 공인 IP를 할당할 수 있다. In step 410, the controller may allocate one public IP for each group of compute nodes in order to provide the distributed SNAT function to the network.

나아가 단계 420에서 그룹에 포함된 컴퓨트 노드에 대해 TCP 포트를 고유하게 할당하여 그룹에 포함된 컴퓨트 노드를 구분할 수 있다. 이때 본 발명의 다른 실시예를 따르면, 컨트롤러는 컴퓨트 노드에 특정의 TCP 포트를 할당하지 않고, TCP포트 범위를 임의로 분할하여 할당할 수도 있다.Furthermore, in step 420, a TCP port is uniquely allocated to the compute nodes included in the group, thereby distinguishing the compute nodes included in the group. In this case, according to another embodiment of the present invention, the controller may not allocate a specific TCP port to the compute node, but may randomly divide and allocate the TCP port range.

단계 430에서 컨트롤러는 각각의 컴퓨트 노드에 할당한 공인 IP와 TCP 포트 번호 정보, 각각의 컴퓨트 노드에서 구현되는 가상 머신들의 사설 IP 정보 등에 대한 NAT 테이블을 작성할 수 있다. 단계 430은 임의적인 단계로 생략될 수 있으며, 다른 방식으로 구현될 수도 있다. In step 430, the controller may create a NAT table for public IP and TCP port number information allocated to each compute node, and private IP information of virtual machines implemented in each compute node. Step 430 may be omitted as an arbitrary step, and may be implemented in other ways.

나아가 컨트롤러는 단계 440에서 컴퓨트 노드의 가상 스위치에 SNAT 기능을 제공하기 위한 플로우 룰을 적용할 수 있다. Further, in step 440, the controller may apply a flow rule for providing the SNAT function to the virtual switch of the compute node.

보다 구체적으로, 소스 주소가 컴퓨트 노드에서 구현되는 가상 머신이며, 목적지 주소가 상기 컴퓨트 노드 그룹 외부인 패킷을 수신하면, 상기 패킷의 소스 주소를 상기 공인 IP로 변경하고, TCP 포트 번호를 상기 컴퓨트 노드에 할당된 TCP 포트 번호로 변경하도록 설정하는 플로우 룰을 적용할 수 있다. More specifically, when a packet whose source address is a virtual machine implemented in a compute node and a destination address is outside the compute node group is received, the source address of the packet is changed to the public IP, and the TCP port number is changed to the computer. You can apply the flow rule to change to the TCP port number assigned to the node.

나아가 목적지 주소가 상기 공인 IP이고, TCP 포트 번호가 상기 컴퓨트 노드에 할당된 TCP 포트 번호인 패킷을 수신하면, 상기 패킷의 목적지 주소를 사설 IP 주소로 변경하고, TCP 포트 번호를 해당 포트 번호로 변경하도록 설정하는 플로우 룰을 적용할 수 있다.Furthermore, when receiving a packet whose destination address is the public IP and the TCP port number is a TCP port number assigned to the compute node, the destination address of the packet is changed to a private IP address, and the TCP port number is changed to the corresponding port number. You can apply flow rules that are set to change.

나아가 컨트롤러는 단계 450에서 클라우드 환경을 구현하는 물리 스위치에 대해 분산 NAT 기능을 제공하기 위한 플로우 룰을 적용할 수 있다. 보다 구체적으로, 목적지 주소가 공인 IP인 패킷을 수신하면, 상기 패킷의 목적지 TCP 포트 번호를 할당받은 컴퓨트 노드로 상기 패킷을 포워딩하도록 설정하는 플로우 룰을 적용할 수 있다. Furthermore, the controller may apply a flow rule to provide a distributed NAT function to the physical switch implementing the cloud environment in step 450. More specifically, when a packet having a destination address of a public IP is received, a flow rule configured to forward the packet to a compute node assigned a destination TCP port number of the packet may be applied.

본 명세서와 도면에 게시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 게시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식 가진 자에 자명한 것이다.The embodiments of the present invention disclosed in the present specification and drawings are provided only to provide specific examples to easily explain the technical content of the present invention and to aid understanding of the present invention, and are not intended to limit the scope of the present invention. It is apparent to those of ordinary skill in the art that other modifications based on the technical idea of the present invention can be implemented in addition to the embodiments posted here.

Claims (5)

클라우드 환경을 구현하는 물리 스위치; 컴퓨트 노드에서 구현되는 가상 머신; 및 상기 물리 스위치와 가상 머신을 제어하는 컨트롤러를 포함하는 소프트웨어 정의 네트워크(SDN)에서, SNAT 기능을 제공하는 네트워크 노드 없이 사용자에게 클라우드 환경의 분산 SNAT 기능을 지원하는 방법으로,
상기 컨트롤러가 상기 SDN에 분산 SNAT 기능을 제공하기 위하여 상기 컴퓨트 노드의 그룹 별로 하나의 공인 IP를 할당하고;
상기 컨트롤러가 상기 그룹에 포함된 컴퓨트 노드 각각에 대해 TCP 포트 번호를 할당하여 그룹에 포함된 컴퓨트 노드를 구분하고;
상기 컨트롤러가 상기 각 컴퓨트 노드에 할당한 공인 IP와 TCP 포트 번호 정보, 및 각 컴퓨트 노드에서 구현되는 가상 머신들의 사설 IP 정보가 포함된 NAT 테이블을 작성하고;
상기 컨트롤러가 상기 NAT 테이블에 따라 외부와 통신을 제공하도록 상기 컴퓨트 노드에 구현된 가상 스위치에 분산 SNAT 기능을 제공하기 위한 제1 플로우 룰을 적용하고;
상기 컨트롤러가 상기 NAT 테이블에 따라 외부와 통신을 제공하도록 상기 물리 스위치에 대해 분산 NAT 기능을 제공하기 위한 제2 플로우 룰을 적용하되,
상기 제1 플로우 룰은, 소스 주소가 컴퓨트 노드에서 구현되는 가상 머신의 사설 IP이며 목적지 주소가 상기 컴퓨트 노드 그룹의 외부인 패킷이 수신되면, 상기 패킷의 소스 주소를 상기 공인 IP로 변경하고 상기 TCP 포트 번호를 상기 컴퓨트 노드에 할당된 TCP 포트 번호로 변경하여 상기 물리 스위치로 포워딩하고; 목적지 주소가 상기 공인 IP이고 TCP 포트 번호가 상기 컴퓨트 노드에 할당된 TCP 포트 번호인 패킷이 수신되면, 상기 패킷의 목적지 주소를 사설 IP 주소로 변경하고 TCP 포트 번호를 해당 포트 번호로 변경하여 상기 컴퓨트 노드로 포워딩하도록 설정되고,
상기 제2 플로우 룰은, 목적지 주소가 공인 IP인 패킷이 수신되면, 상기 패킷의 목적지 TCP 포트 번호를 할당받은 컴퓨트 노드로 상기 패킷을 포워딩하도록 설정되는 것을 특징으로 하는, 소프트웨어 정의 네트워크(SDN)에서 클라우드 환경의 분산 SNAT 기능 지원 방법.
A physical switch implementing a cloud environment; A virtual machine implemented in the compute node; And In a software defined network (SDN) including a controller for controlling the physical switch and the virtual machine, a method of supporting a distributed SNAT function of a cloud environment to a user without a network node providing the SNAT function,
The controller allocates one public IP for each group of the compute nodes to provide a distributed SNAT function to the SDN;
The controller classifies the compute nodes included in the group by allocating a TCP port number to each compute node included in the group;
Creating a NAT table including public IP and TCP port number information allocated by the controller to each compute node, and private IP information of virtual machines implemented in each compute node;
Applying a first flow rule for providing a distributed SNAT function to a virtual switch implemented in the compute node so that the controller provides communication with the outside according to the NAT table;
Applying a second flow rule for providing a distributed NAT function to the physical switch so that the controller provides communication with the outside according to the NAT table,
In the first flow rule, when a packet whose source address is a private IP of a virtual machine implemented in a compute node and a destination address is outside of the compute node group is received, the source address of the packet is changed to the public IP, and the Changing a TCP port number to a TCP port number assigned to the compute node and forwarding it to the physical switch; When a packet whose destination address is the public IP and the TCP port number is a TCP port number assigned to the compute node is received, the destination address of the packet is changed to a private IP address and the TCP port number is changed to the corresponding port number. Is set to forward to the compute node,
The second flow rule is configured to forward the packet to a compute node allocated with a destination TCP port number of the packet when a packet having a destination address is a public IP address is received, a software defined network (SDN) To support distributed SNAT function in cloud environment in
제1항에 있어서,
상기 컴퓨트 노드의 그룹은 하나의 테넌트에 속하는 제1 가상머신이 구현된 제1 컴퓨트 노드 및 상기 테넌트에 속하는 제2 가상 머신이 구현된 제2 컴퓨트 노드를 포함하여,
상기 컨트롤러가 상기 컴퓨트 노드의 그룹 별로 하나의 공인 IP를 할당하고, 상기 컴퓨트 노드의 그룹에 포함된 상기 제1 및 제2 컴퓨트 노드에 대해 TCP 포트 번호를 할당하는, 소프트웨어 정의 네트워크(SDN)에서 클라우드 환경의 분산 SNAT 기능 지원 방법.
The method of claim 1,
The group of compute nodes includes a first compute node in which a first virtual machine belonging to one tenant is implemented and a second compute node in which a second virtual machine belonging to the tenant is implemented,
The controller allocates one public IP for each group of the compute nodes and allocates a TCP port number to the first and second compute nodes included in the group of the compute nodes, a software defined network (SDN) ) To support distributed SNAT function in cloud environment.
제2항에 있어서, 상기 컨트롤러는
소스 주소가 상기 제1 컴퓨트 노드에서 구현되는 제1 가상 머신의 사설 IP이며 목적지 주소가 상기 컴퓨트 노드 그룹의 외부인 패킷을 수신하면,
상기 제1 플로우 룰을 적용하여, 상기 패킷의 소스 주소를 상기 공인 IP로 변경하고, 상기 TCP 포트 번호를 상기 제1 컴퓨트 노드에 할당된 TCP 포트 번호로 변경하고, 이 변경된 패킷을 상기 제1 컴퓨트 노드와 연결된 물리 스위치로 포워딩하는 것을 특징으로 하는 소프트웨어 정의 네트워크(SDN)에서 클라우드 환경의 분산 SNAT 기능 지원 방법.
The method of claim 2, wherein the controller
When a packet whose source address is the private IP of the first virtual machine implemented in the first compute node and the destination address is outside the compute node group is received,
By applying the first flow rule, the source address of the packet is changed to the public IP, the TCP port number is changed to the TCP port number assigned to the first compute node, and the changed packet is changed to the first A method of supporting a distributed SNAT function in a cloud environment in a software defined network (SDN), characterized in that forwarding is performed to a physical switch connected to a compute node.
제2항에 있어서, 상기 컨트롤러는
목적지 주소가 상기 제2 컴퓨트 노드의 공인 IP이고 TCP 포트 번호가 상기 제2 컴퓨트 노드에 할당된 TCP 포트 번호인 패킷을 수신하면,
상기 제1 플로우 룰을 적용하여, 상기 패킷의 목적지 주소를 제2 컴퓨트 노드의 사설 IP 주소로 변경하고, 목적지 TCP 포트 번호를 상기 제2 컴퓨트 노드에 할당된 실제 TCP 포트로 변경하고, 이 변경된 패킷을 상기 제1 및 제2 컴퓨트 노드 중 하나에 구현된 가상 머신으로 포워딩하는 것을 특징으로 하는 소프트웨어 정의 네트워크(SDN)에서 클라우드 환경의 분산 SNAT 기능 지원 방법.
The method of claim 2, wherein the controller
Upon receiving a packet whose destination address is the public IP of the second compute node and the TCP port number is the TCP port number assigned to the second compute node,
By applying the first flow rule, the destination address of the packet is changed to the private IP address of the second compute node, the destination TCP port number is changed to the actual TCP port allocated to the second compute node, and this A method of supporting a distributed SNAT function in a cloud environment in a software defined network (SDN), characterized in that forwarding the changed packet to a virtual machine implemented in one of the first and second compute nodes.
제2항에 있어서, 상기 컨트롤러는
상기 물리 스위치의 목적지 주소가 공인 IP인 패킷을 수신하면,
상기 제2 플로우 룰을 적용하여, 수신한 패킷의 목적지 포트 번호를 제2 컴퓨트 노드로 포워딩하는 것을 특징으로 하는, 소프트웨어 정의 네트워크(SDN)에서 클라우드 환경의 분산 SNAT 기능 지원 방법.
The method of claim 2, wherein the controller
When receiving a packet whose destination address of the physical switch is a public IP,
By applying the second flow rule, a method for supporting a distributed SNAT function in a cloud environment in a software defined network (SDN), characterized in that forwarding a destination port number of a received packet to a second compute node.
KR1020180152102A 2018-11-30 2018-11-30 Method, apparatus and computer program for supporting distributed snat in a cloud environment in a software defined network KR102200402B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180152102A KR102200402B1 (en) 2018-11-30 2018-11-30 Method, apparatus and computer program for supporting distributed snat in a cloud environment in a software defined network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180152102A KR102200402B1 (en) 2018-11-30 2018-11-30 Method, apparatus and computer program for supporting distributed snat in a cloud environment in a software defined network

Publications (2)

Publication Number Publication Date
KR20200065540A KR20200065540A (en) 2020-06-09
KR102200402B1 true KR102200402B1 (en) 2021-01-08

Family

ID=71082400

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180152102A KR102200402B1 (en) 2018-11-30 2018-11-30 Method, apparatus and computer program for supporting distributed snat in a cloud environment in a software defined network

Country Status (1)

Country Link
KR (1) KR102200402B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180063077A1 (en) * 2016-08-29 2018-03-01 Vmware, Inc. Source network address translation detection and dynamic tunnel creation

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090072492A (en) * 2007-12-28 2009-07-02 엘지노텔 주식회사 Exchange system with a plural exchange apparatus and method for voip communication of the same
KR101786620B1 (en) * 2015-12-24 2017-11-15 아토리서치(주) Method, apparatus and computer program for subnetting of software defined network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180063077A1 (en) * 2016-08-29 2018-03-01 Vmware, Inc. Source network address translation detection and dynamic tunnel creation

Also Published As

Publication number Publication date
KR20200065540A (en) 2020-06-09

Similar Documents

Publication Publication Date Title
US10972341B2 (en) Subnet stretching via layer three communications
US11563602B2 (en) Method and apparatus for providing a point-to-point connection over a network
US7885276B1 (en) Isolating network traffic in multi-tenant virtualization environments
EP2724497B1 (en) Private virtual local area network isolation
US9590898B2 (en) Method and system to optimize packet exchange between the control and data plane in a software defined network
US9560016B2 (en) Supporting IP address overlapping among different virtual networks
US20130232278A1 (en) IPv4 Data Center Support for IPv4 and IPv6 Visitors
CN112165432B (en) Method for realizing communication between OpenStack virtual machine and outside
CN103036788A (en) Implementation method of multi-interface gateway equipment data transmitting
US11621917B2 (en) Transparent multiplexing of IP endpoints
CN109688241B (en) IPv4/IPv6 dual-stack conversion method and system based on SDN
KR101786620B1 (en) Method, apparatus and computer program for subnetting of software defined network
EP3011708B1 (en) System for the routing of data to computer networks
KR102200402B1 (en) Method, apparatus and computer program for supporting distributed snat in a cloud environment in a software defined network
KR101786616B1 (en) Method, apparatus and computer program for subnetting of software defined network
KR102207290B1 (en) Method for supporting vlans in software defined network
KR102019210B1 (en) Method, apparatus and computer program for managing hosts of software defined network
EP3228048B1 (en) Method and apparatus for routing data to cellular network
CN112769977B (en) NAT public network address publishing method and device
CN113328942B (en) Configuration issuing method and device and computer equipment
CN109428823B (en) System and method for realizing multi-Data Plane NAT resource self-adaptive allocation conversion based on NFV
US9521065B1 (en) Enhanced VLAN naming
US20210051076A1 (en) A node, control system, communication control method and program
JP2016063511A (en) Network control system, router virtualization device, network control method, router virtualization method, and program
KR100702783B1 (en) System and method for devices with identical MAC address in a subnet in IP based internet access network

Legal Events

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