KR20180024062A - 가상 네트워크 환경에서 가상 스위치를 이용하여 로드 밸런싱을 처리하는 방법 및 시스템 - Google Patents

가상 네트워크 환경에서 가상 스위치를 이용하여 로드 밸런싱을 처리하는 방법 및 시스템 Download PDF

Info

Publication number
KR20180024062A
KR20180024062A KR1020160108373A KR20160108373A KR20180024062A KR 20180024062 A KR20180024062 A KR 20180024062A KR 1020160108373 A KR1020160108373 A KR 1020160108373A KR 20160108373 A KR20160108373 A KR 20160108373A KR 20180024062 A KR20180024062 A KR 20180024062A
Authority
KR
South Korea
Prior art keywords
virtual
packet
request packet
virtual machine
node
Prior art date
Application number
KR1020160108373A
Other languages
English (en)
Other versions
KR101936166B1 (ko
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 KR1020160108373A priority Critical patent/KR101936166B1/ko
Priority to JP2017160060A priority patent/JP6505172B2/ja
Priority to US15/685,418 priority patent/US10601906B2/en
Publication of KR20180024062A publication Critical patent/KR20180024062A/ko
Application granted granted Critical
Publication of KR101936166B1 publication Critical patent/KR101936166B1/ko
Priority to US16/791,346 priority patent/US11330044B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1002
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

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

Abstract

가상 네트워크 환경에서 가상 스위치를 이용하여 로드 밸런싱을 처리하는 방법 및 시스템이 개시된다. 가상 네트워크상에서 로드 밸런싱 노드가 로드 밸런싱을 처리하는 방법은, 라우터를 통해 클라이언트로부터의 요청 패킷을 수신하는 단계; 상기 수신된 요청 패킷을 전송할 백엔드 가상 머신 서버를 로드 밸런서(load balancer)를 통해 선택하는 단계; 상기 수신된 요청 패킷을 가상 네트워크를 통해 상기 선택된 백엔드 가상 머신 서버로 전송하기 위한 정보를 상기 로드 밸런싱 노드가 포함하는 가상 스위치를 통해 상기 수신된 요청 패킷에 오버레이(overlay)하여 가상 네트워킹을 위한 패킷을 생성하는 단계; 및 상기 생성된 가상 네트워킹을 위한 패킷을 상기 선택된 백엔드 가상 머신 서버를 포함하는 하이퍼바이저 노드로 전송하는 단계를 포함할 수 있다.

Description

가상 네트워크 환경에서 가상 스위치를 이용하여 로드 밸런싱을 처리하는 방법 및 시스템{METHOD AND SYSTEM FOR PROCESSING LOAD BALANCING USING VIRTUAL SWITCH IN VIRTUAL NETWORK INVIRONMENT}
아래의 설명은 가상 네트워크 환경에서 가상 스위치를 이용하여 로드 밸런싱을 처리하는 방법 및 시스템, 그리고 컴퓨터로 구현되는 노드와 결합되어 로드 밸런싱 처리 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램에 관한 것이다.
L4 로드 밸런서(load balancer)는 TCP(Transmission Control Protocol), UDP(user Datagram Protocol) 등의 레이어 4 프로토콜에 대해서 다수의 백엔드 서버(Backend Server)로의 연결이나 세션 등을 나누어 분배함으로써 백엔드 서버들에 부하를 분산시키는 네트워크 장비이다. 예를 들어, 한국공개특허 제10-2002-0069489호는 클라이언트-서버 연결 방법, 로드 밸런서 동작 방법 및 패킷 전송 방법에 대해 설명하고 있다.
보다 구체적인 예로, 도 1은 종래기술에 있어서, L4 로드 밸런서의 동작을 설명하기 위한 도면이다. 도 1은 NAT(Network Address Translation, 110), 라우터(Router, 120), L4 로드 밸런서(L4 Load Balancer, 130), 백엔드 서버 1(Backend Server 1, 140), 백엔드 서버 2(Backend Server 2, 150) 및 백엔드 서버 3(Backend Server 3, 160)를 나타내고 있다. NAT(110)는 한정된 하나의 공인 IP를 여러 개의 내부 사설 IP로 변환하여 공인 IP를 절약하고, 외부 침입에 보안성을 높이기 위한 통신망의 주소 변환기이고, 라우터(120)는 네트워크 구성 방식이나 사용하는 프로토콜에 관계없이 네트워크를 연결하여 한 통신망에서 다른 통신망으로 통신할 수 있도록 도와주는 장치이다. 이때, L4 로드 밸런서(130)는 NAT(110)와 라우터(120)를 통해 전달되는 클라이언트로부터의 HTTP 요청과 같은 트래픽들을 백엔드 서버들(140, 150, 160)로 분배하는 역할을 수행한다. 일반적으로 이러한 L4 로드 밸런서(130)는 하드웨어 장비에 로드 밸런싱을 위한 소프트웨어 모듈이 결합된 형태로 제공된다.
한편, 도 2는 종래기술에 있어서, NAT 동작을 함께 수행하는 L4 로드 밸런서의 동작을 설명하기 위한 도면이다. 도 2는 라우터(210), NAT를 포함하는 L4 로드 밸런서(220), 백엔드 서버 1(Backend Server 1, 230), 백엔드 서버 2(Backend Server 2, 240) 및 백엔드 서버 3(Backend Server 3, 250)를 나타내고 있다.
도 1 및 도 2를 비교하면, 도 1에서는 NAT(110)를 기준으로 공용 네트워크(public network)와 전용 네트워크(private network)가 구분되고, 도 2에서는 NAT를 포함하는 L4 로드 밸런서(220)를 기준으로 공용 네트워크와 전용 네트워크가 구분된다. 이때, 도 1의 케이스와 도 2의 케이스 모두에서는 백엔드 서버들(140, 150, 160, 230, 240, 250)이 클라이언트의 IP 주소를 알 수 없다. 또한, 백엔드 서버들(140, 150, 160, 230, 240, 250)의 응답이 다시 L4 로드 밸런서(130)나 NAT를 포함하는 L4 로드 밸런서(220)를 거쳐서 클라이언트로 전달되기 때문에 지연 속도(latency)가 증가하게 된다.
한편, 이러한 지연 속도를 줄이기 위해 백엔드 서버에서의 응답이 로드 밸런서를 거치지 않도록 하기 위한 기술이 존재한다. 도 3은 종래기술에 있어서, L4 DSR(Direct Server Return) 로드 밸런서의 동작을 설명하기 위한 도면이다. 도 3은 라우터(310), L4 DSR 로드 밸런서(320), 백엔드 서버 1(Backend Server 1, 330), 백엔드 서버 2(Backend Server 2, 340) 및 백엔드 서버 3(Backend Server 3, 350)를 나타내고 있으며, 백엔드 서버들(330, 340, 350) 각각에 설정되는 루프백(loop back) 인터페이스들(331, 341, 351)을 나타내고 있다. 이때, 백엔드 서버들(330, 340, 350) 각각은 응답을 L4 DSR 로드 밸런서(320)를 거치지 않고, VIP(Virtual IP)를 이용하여 직접 라우터로 전달할 수 있다. 다시 말해, 백엔드 서버들(330, 340, 350) 각각은 로드 밸런서를 위한 VIP를 직접 관리할 수 있으며, 루프백 인터페이스들(331, 341, 351)를 이용하여 L4 DSR 로드 밸런서(320)를 거치지 않고 응답을 바로 라우터(310)로 전달할 수 있기 때문에 지연 속도에서 이점을 갖는다. 그러나, 도 3에 나타난 바와 같이 백엔드 서버들(330, 340, 350)에 루프백 인터페이스들(331, 341, 351)이 설정되어야 한다는 문제점이 있다. 또한, 클라이언트의 IP 주소를 알기 위해서 모든 장비가 공용 네트워크에 존재해야 하기 때문에 공인 IP 주소가 많이 할당되어야 해서 스케일 아웃(scale out)에 불리하다는 문제점이 있다.
공인 IP 주소에 대한 문제를 해결하기 위해 NAT를 이용하는 경우에는 다시 백엔드 서버에서 클라이언트의 IP 주소를 알 수 없게 된다는 문제점이 있다.
한편, 고객을 위한 전용 랙(Rack)으로 독립된 클라우드 환경 구성이 가능한 VPC(Virtual Private Cloud) 기술이 존재한다. 이러한 VPC를 위한 서비스를 제공하는 서비스 제공자는 고객에게 전용 클라우드의 구성을 위한 서비스를 제공할 수 있다. 이러한 VPC 환경에서의 로드 밸런싱을 위한 기술은 앞서 도 1 내지 도 3을 통해 설명한 일반적인 네트워크 상황에서의 로드 밸런싱과는 차이가 있다. 예를 들어, 앞서 설명한 로드 밸런서들과 백엔드 서버들이 가상화되어 제공되어야 한다. 또한, 서비스 제공자가 지연 속도의 이점을 얻기 위해 L4 DSR 로드 밸런서를 제공하고자 할 때, 고객들이 구성하는 백엔드 가상 머신 서버들 각각에 루프백 인터페이스를 설정하도록 요청 및/또는 강제하기가 어렵다는 문제점이 있다.
VPC(Virtual Private Cloud) 환경에서 하이퍼바이저(hypervisor)를 통해 고객들이 구성하는 백엔드 가상 머신 서버(Backend Virtual Machine Server)에 대한 로드 밸런싱을 터널링을 이용하여 처리하는 새로운 로드 밸런서를 제공한다.
VPC 환경에서 백엔드 가상 머신 서버에 필요한 루프백(loop back) 인터페이스를 하이퍼바이저의 가상 스위치(virtual switch)를 통해 구현 및 제공함으로써 고객이 직접 루프백 인터페이스를 설정할 필요가 없으면서도 VPC 환경에서도 백엔드 가상 머신 서버의 응답을 로드 밸런서를 거치지 않고 바로 라우터로 전달할 수 있는 로드 밸런싱 방법 및 시스템을 제공한다.
상술한 새로운 로드 밸런서와 가상 스위치를 이용하여 VPC 환경에서의 L4 DSR 로드 밸런싱을 처리함으로써 지연 속도(latency)를 줄일 수 있는 로드 밸런싱 방법 및 시스템을 제공한다.
로드 밸런싱을 위한 상기 가상 스위치를 이용하여 백엔드 가상 머신 서버에서 송수신되는 패킷들을 DPI(Deep Packet Inspection)를 위한 기능이 포함된 모니터링 가상 머신으로 미러링(mirroring)함으로써, 모니터링 가상 머신에서 원하는 백엔드 가상 머신에 대해 송수신되는 모든 패킷들을 수집 및 분석할 수 있는 패킷 분석 방법 및 시스템을 제공한다.
가상 네트워크상에서 로드 밸런싱 노드가 로드 밸런싱을 처리하는 방법에 있어서, 라우터를 통해 클라이언트로부터의 요청 패킷을 수신하는 단계; 상기 수신된 요청 패킷을 전송할 백엔드 가상 머신 서버를 로드 밸런서(load balancer)를 통해 선택하는 단계; 상기 수신된 요청 패킷을 가상 네트워크를 통해 상기 선택된 백엔드 가상 머신 서버로 전송하기 위한 정보를 상기 로드 밸런싱 노드가 포함하는 가상 스위치를 통해 상기 수신된 요청 패킷에 오버레이(overlay)하여 가상 네트워킹을 위한 패킷을 생성하는 단계; 및 상기 생성된 가상 네트워킹을 위한 패킷을 상기 하이퍼바이저 노드로 전송하는 단계를 포함하는 것을 특징으로 하는 로드 밸런싱 처리 방법을 제공한다.
일측에 따르면, 상기 하이퍼바이저 노드는, 상기 전송된 가상 네트워킹을 위한 패킷을 상기 가상 네트워크를 통해 수신하여, 상기 하이퍼바이저 노드가 포함하는 가상 스위치들 중 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 요청 패킷을 추출하고, 상기 추출된 요청 패킷을 상기 선택된 백엔드 가상 머신 서버로 전달하도록 구현되는 것을 특징으로 할 수 있다.
다른 측면에 따르면, 상기 전송된 가상 네트워킹을 위한 패킷은 TOR(Top Of Rack) 스위치로 전달되고, 상기 TOR 스위치가 포함하는 가상 스위치들 중 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 요청 패킷으로 재변환되어 상기 하이퍼바이저 노드로 전달되고, 상기 하이퍼바이저 노드는 상기 재변환된 요청 패킷을 상기 선택된 백엔드 가상 머신 서버로 전달하도록 구현되는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 로드 밸런서는 L4 DSR(Direct Server Return) 로드 밸런서를 포함하고, 상기 선택된 백엔드 가상 머신 서버는 상기 전달된 요청 패킷에 대한 응답 패킷을 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 L4 DSR 로드 밸런서를 거치지 않고 상기 라우터로 직접 전송하도록 구현되는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 요청 패킷은 상기 클라이언트의 IP 주소를 포함하고, 상기 요청 패킷에 상기 정보가 오버레이된 상기 가상 네트워킹을 위한 패킷을 통해 상기 클라이언트의 IP 주소가 상기 선택된 백엔드 가상 머신 서버로 전달되는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 가상 네트워킹을 위한 패킷을 생성하는 단계는, 상기 요청 패킷에 VxLAN(Virtual extensible LAN), VLAN(Virtual LAN), GRE(Generic Route Encapsulation) 및 802.11br 중 하나의 가상 네트워킹 프로토콜을 적용한 터널링(tunneling)을 통해 상기 가상 네트워킹을 위한 패킷을 생성하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 요청 패킷에 오버레이된 정보는 네트워크 모델의 레이어 2 및 레이어 3을 위한 헤더 정보 및 상기 가상 네트워킹 프로토콜을 위한 헤더 정보를 포함하는 것을 특징으로 할 수 있다.
가상 네트워크상에서 하이퍼바이저 노드가 로드 밸런싱을 처리하는 방법에 있어서, 로드 밸런서를 포함하는 로드 밸런싱 노드로부터 실제 네트워크를 통해 가상 네트워킹을 위한 패킷을 수신하는 단계(상기 가상 네트워킹을 위한 패킷은, 상기 로드 밸런싱 노드가 라우터를 통해 전달받은 클라이언트로부터의 요청 패킷에, 상기 요청 패킷을 상기 가상 네트워크를 통해 전송하기 위해 요구되는 정보를 상기 로드 밸런싱 노드가 포함하는 가상 스위치를 통해 오버레이하여 생성됨); 상기 하이퍼바이저 노드가 포함하는 가상 스위치 중 상기 로드 밸런서에 의해 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 가상 네트워킹을 위한 패킷에서 상기 요청 패킷을 추출하는 단계; 및 상기 추출된 요청 패킷을 상기 선택된 백엔드 가상 머신 서버로 전달하는 단계를 포함하는 것을 특징으로 하는 로드 밸런싱 처리 방법을 제공한다.
상술한 로드 밸런싱 처리 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체가 제공된다.
컴퓨터로 구현되는 로드 밸런싱 노드와 결합되어 로드 밸런싱 처리 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램에 있어서, 상기 로드 밸런싱 처리 방법은, 라우터를 통해 클라이언트로부터의 요청 패킷을 수신하는 단계; 상기 수신된 요청 패킷을 전송할 백엔드 가상 머신 서버를 로드 밸런서(load balancer)를 통해 선택하는 단계; 상기 수신된 요청 패킷을 가상 네트워크를 통해 상기 선택된 백엔드 가상 머신 서버로 전송하기 위한 정보를 상기 로드 밸런싱 노드가 포함하는 가상 스위치를 통해 상기 수신된 요청 패킷에 오버레이(overlay)하여 가상 네트워킹을 위한 패킷을 생성하는 단계; 및 상기 생성된 가상 네트워킹을 위한 패킷을 상기 하이퍼바이저 노드로 전송하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 프로그램을 제공한다.
로드 밸런싱 처리 방법을 실행하기 위해 컴퓨터로 구현되는 로드 밸런싱 노드에 있어서, 컴퓨터에서 판독 가능한 명령을 저장하는 메모리; 및 상기 메모리에 저장된 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 라우터를 통해 클라이언트로부터의 요청 패킷을 수신하도록 상기 로드 밸런싱 노드를 제어하고, 상기 수신된 요청 패킷을 전송할 백엔드 가상 머신 서버를 로드 밸런서(load balancer)를 통해 선택하고, 상기 수신된 요청 패킷을 가상 네트워크를 통해 상기 선택된 백엔드 가상 머신 서버로 전송하기 위한 정보를 상기 로드 밸런싱 노드가 포함하는 가상 스위치를 통해 상기 수신된 요청 패킷에 오버레이(overlay)하여 가상 네트워킹을 위한 패킷을 생성하고, 그리고 상기 생성된 가상 네트워킹을 위한 패킷을 상기 하이퍼바이저 노드로 전송하도록 상기 로드 밸런싱 노드를 제어하는 것을 특징으로 하는 컴퓨터로 구현되는 로드 밸런싱 노드를 제공한다.
VPC(Virtual Private Cloud) 환경에서 하이퍼바이저(hypervisor)를 통해 고객들이 구성하는 백엔드 가상 머신 서버(Backend Virtual Machine Server)에 대한 로드 밸런싱을 터널링을 이용하여 처리할 수 있다.
VPC 환경에서 백엔드 가상 머신 서버에 필요한 루프백(loop back) 인터페이스를 하이퍼바이저의 가상 스위치(virtual switch)를 통해 구현 및 제공함으로써 고객이 직접 루프백 인터페이스를 설정할 필요가 없으면서도 VPC 환경에서도 백엔드 가상 머신 서버의 응답을 로드 밸런서를 거치지 않고 바로 라우터로 전달할 수 있다.
상술한 새로운 로드 밸런서와 가상 스위치를 이용하여 VPC 환경에서의 L4 DSR 로드 밸런싱을 처리함으로써 지연 속도(latency)를 줄일 수 있다.
로드 밸런싱을 위한 상기 가상 스위치를 이용하여 백엔드 가상 머신 서버에서 송수신되는 패킷들을 DPI(Deep Packet Inspection)를 위한 기능이 포함된 모니터링 가상 머신으로 미러링(mirroring)함으로써, 모니터링 가상 머신에서 원하는 백엔드 가상 머신에 대해 송수신되는 모든 패킷들을 수집 및 분석할 수 있다.
도 1은 종래기술에 있어서, L4 로드 밸런서의 동작을 설명하기 위한 도면이다.
도 2는 종래기술에 있어서, NAT 동작을 함께 수행하는 L4 로드 밸런서의 동작을 설명하기 위한 도면이다.
도 3은 종래기술에 있어서, L4 DSR 로드 밸런서의 동작을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 가상 네트워크상에서의 L4 로드 밸런싱을 위한 동작의 예를 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 터널링 동작의 예를 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 있어서, 루프백을 이용한 가상 네트워크상에서의 L4 DSR 로드 밸런싱을 위한 동작의 예를 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 있어서, TOR 스위치를 이용 한 가상 네트워크상에서의 L4 DSR 로드 밸런싱을 위한 동작의 예를 설명하기 위한 도면이다.
도 8은 본 발명의 일실시예에 있어서, 가상 네트워크 환경을 구성하기 위한 물리적인 노드의 내부 구성을 설명하기 위한 블록도이다.
도 9는 본 발명의 일실시예에 있어서, 가상 네트워크 환경에서 로드 밸런싱 노드를 위한 물리적인 노드의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이다.
도 10은 본 발명의 일실시예에 따른 로드 밸런싱 노드가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
도 11은 본 발명의 일실시예에 있어서, 가상 네트워크 환경에서 하이퍼바이저 노드를 위한 물리적인 노드의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이다.
도 12는 본 발명의 일실시예에 따른 하이퍼바이저 노드가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
도 13은 본 발명의 일실시예에 있어서, 가상 네트워크 환경에서 가상 스위치를 포함하는 하이퍼바이저 노드를 위한 물리적인 노드의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이다.
도 14는 본 발명의 일실시예에 따른 가상 스위치를 포함하는 하이퍼바이저 노드가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
도 15는 본 발명의 일실시예에 있어서, 가상 네트워크 환경에서 TOR 스위치 노드를 구현하기 위한 물리적인 노드의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이다.
도 16은 본 발명의 일실시예에 따른 TOR 스위치 노드가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
도 17은 본 발명의 일실시예에 있어서, 루프백을 이용한 가상 네트워크상에서의 패킷 모니터링을 위한 동작의 예를 도시한 도면이다.
도 18은 본 발명의 일실시예에 있어서, 가상 네트워크 환경에서 모니터링 가상 머신을 구현하는 물리적인 노드의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이다.
도 19는 본 발명의 일실시예에 따른 모니터링 가상 머신을 구현하는 노드가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
본 발명의 실시예들은 가상 네트워크 환경(일례로, VPC(Virtual Private Cloud) 환경)에서 로드 밸런싱을 처리하기 위한 로드 밸런싱 방법 및 시스템에 관한 것이다. 이때 가상 네트워크 환경에서는 가상 자원들을 제공하는 실제 노드들간의 실제 네트워크와 가상 자원들간의 가상 네트워크를 모두 고려해야 한다.
도 4는 본 발명의 일실시예에 있어서, 가상 네트워크상에서의 L4 로드 밸런싱을 위한 동작의 예를 설명하기 위한 도면이다. 도 4는 라우터(410), 로드 밸런싱 노드(LB node, 420) 및 하이퍼바이저(Hypervisor, 430 및 440)를 도시하고 있다. 여기서, 로드 밸런싱 노드(420)는 또한 L4 DSR(Direct Server Return) 로드 밸런서(L4 DSR Load Balancer, 421)를 포함하고 있으며, 하이퍼바이저(430, 440)는 백엔드 가상 머신 서버 1(Backend VM(Virtual Machine) Server 1, 431), 백엔드 가상 머신 서버 2(Backend VM(Virtual Machine) Server 2, 432) 및 백엔드 가상 머신 서버 3(Backend VM(Virtual Machine) Server 3, 441)를 포함하고 있다. 도 4에서는 두 개의 하이퍼바이저(430, 440)와 세 개의 백엔드 가상 머신 서버들(431, 432, 441)을 나타내고 있으나, 그 수가 도 4와 같이 한정되는 것은 아니며, 고객들의 요구 및/또는 가상 네트워크 서비스를 위한 환경에 따라 다양한 수로 구성될 수 있음은 당업자에게 있어 자명하다.
여기서, L4 DSR 로드 밸런서(421)와 백엔드 가상 머신 서버들(431, 432, 441)은 가상 자원들일 수 있으며, 가상 네트워크의 서비스 제공자는 고객들이 원하는 조건에 따라 이러한 가상 자원들을 고객들에게 제공할 수 있다. 이때, L4 DSR 로드 밸런싱을 위해서는 일례로, 백엔드 가상 머신 서버 1(431)가 L4 DSR 로드 밸런서(421)로부터의 전달받은 클라이언트의 요청에 따른 응답을 L4 DSR 로드 밸런서(421)를 거치지 않고 라우터(410)로 바로 전달해야 할 필요가 있다. 이러한 L4 DSR 로드 밸런싱의 처리를 위해서는 앞서 설명한 바와 같이 백엔드 가상 머신 서버 1(431)에 루프백(loop back) 인터페이스와 같은 기능이 설정되어야 한다. 그러나 백엔드 가상 머신 서버 1(431)는 고객이 자신의 필요에 따라 기능을 설정 및 활용하는 가상 머신으로 서비스 제공자가 고객에게 루프백 인터페이스를 설정할 것을 요청 및/또는 강요하기 어렵다. 따라서, 본 발명의 실시예들에서는 하이퍼바이저(430, 440)에 포함되는 가상 스위치(Virtual Switch, VS)가 루프백 인터페이스의 동작을 대신 처리할 수 있도록 구현함으로써 고객들이 루프백 인터페이스를 위한 별도의 설정 없이 L4 DSR 로드 밸런싱을 위한 서비스를 제공받을 수 있도록 처리할 수 있다.
도 5는 본 발명의 일실시예에 있어서, 가상 스위치를 이용한 터널링 동작의 예를 설명하기 위한 도면이다. 앞서 설명한 바와 같이, 로드 밸런싱 노드(420)가 포함하는 L4 DSR 로드 밸런서(421)와 하이퍼바이저(430)가 포함하는 백엔드 가상 머신 서버 1(431)은 가상 네트워크(510)를 통해 연결될 수 있지만, 로드 밸런싱 노드(420)와 하이퍼바이저(430)는 실제 네트워크상에서 물리적으로 각각 구성되는 별도의 노드들일 수 있다. 따라서 클라이언트로부터의 요청에 따른 패킷은 실제 네트워크를 통해 로드 밸런싱 노드(420)까지 전달되었으나, 로드 밸런싱 노드(420)로부터 하이퍼바이저(430)까지는 가상 네트워크를 통해 전달될 수 있다. 이를 위해, 본 발명의 실시예들에서는 가상화 네트워크 레이어로서 가상 스위치(520, 530)가 사용될 수 있다. 예를 들어, L4 DSR 로드 밸런서(421)는 클라이언트의 요청에 따른 요청 패킷을 처리하기 위한 백엔드 가상 머신 서버 1(431)를 선택할 수 있다. 이때, 백엔드 가상 머신 서버 1(431)로 요청 패킷을 전달하기 위해, 가상 스위치(520)는 요청 패킷에 가상 네트워킹을 위한 정보(일례로, 가상 네트워킹을 위한 헤더 정보)를 오버레이하여 가상 네트워킹을 위한 패킷을 생성할 수 있다. 다시 말해, 요청 패킷은 가상 네트워킹을 위한 패킷에 인캡슐레이션(encapsulation)될 수 있다. 이를 위해, 로드 밸런싱 노드(420)는 이더넷(Ethernet) 등의 네트워크 프로토콜을 위한 레이어 2, IP, IPv6 등의 네트워크 프로토콜을 위한 레이어 3, 그리고 TCP, UDP 등의 네트워크 프로토콜을 위한 레이어 4를 모두 처리하도록 구현될 수 있다. 보다 구체적인 예로, 가상 스위치(520)는 오버레이를 위한 방식으로, VxLAN(Virtual extensible LAN), VLAN(Virtual LAN), GRE(Generic Route Encapsulation), 802.11br 등과 같은 가상 네트워킹 기술(프로토콜)을 적용할 수 있다.
역으로, 하이퍼바이저(430)가 포함하는 가상 스위치(530)는 가상 네트워킹을 위한 패킷에서 요청 패킷을 추출하여 L4 DSR 로드 밸런서(421)에 의해 선택된 백엔드 가상 머신 서버 1(431)로 전달할 수 있다. 이 경우, 실제 네트워크를 통해 전송된 요청 패킷에는 발신자(클라이언트)의 IP 주소가 포함되어 있기 때문에, 따라서 백엔드 가상 머신 서버 1(430)은 클라이언트에 대한 정보를 얻을 수 있게 된다.
한편, 가상 스위치(530)는 앞서 설명한 루프백 인터페이스의 동작을 대신 처리하도록 구현될 수 있다. 예를 들어, 앞서 설명한 요청에 따른 백엔드 가상 머신 서버 1(431)의 응답은 가상 스위치(530)를 통해 로드 밸런싱 노드(420)가 아닌 도 4를 통해 설명한 라우터(410)로 직접 전달될 수 있다.
도 6은 본 발명의 일실시예에 있어서, 루프백을 이용한 가상 네트워크상에서의 L4 DSR 로드 밸런싱을 위한 동작의 예를 설명하기 위한 도면이다. 도 6은 도 4를 통해 설명한 라우터(410), 로드 밸런싱 노드(420), 하이퍼바이저(430, 440), L4 DSR 로드 밸런서(421), 백엔드 가상 머신 서버 1(431), 백엔드 가상 머신 서버 2(432) 및 백엔드 가상 머신 서버 3(441)를 나타내고 있다. 또한, 도 6은 추가적으로 백엔드 가상 머신 서버들(431, 432, 441) 각각을 위한 루프백 모듈들(610, 620, 630)을 더 나타내고 있다. 여기서, 루프백 모듈들(610, 620, 630)은 하이퍼바이저(430, 440)가 백엔드 가상 머신 서버들(431, 432, 441)을 위해 포함하는 가상 스위치들에 각각 구현될 수 있다. 예를 들어 도 5를 통해 설명한 바와 같이, 백엔드 가상 머신 서버 1(431)를 위한 루프백 모듈(610)은 가상 스위치(530)에 구현될 수 있다. 예를 들어, 라우터(410)를 통해 로드 밸런싱 노드(420)로 전달된 요청 패킷은 L4 DSR 로드 밸런서(421)와 로드 밸런싱 노드(420)가 포함하는 가상 스위치를 거쳐 백엔드 가상 머신 서버 1(431)로 전달될 수 있다. 이때, 요청 패킷은 앞서 설명한 바와 같이 터널링을 통해 로드 밸런싱 노드(420)에서 백엔드 가상 머신 서버 1(431)로 전달될 수 있다. 요청 패킷을 수신한 백엔드 가상 머신 서버 1(431)의 응답 패킷은 루프백 모듈(610)을 통해 로드 밸런싱 노드(420)가 포함하는 L4 DSR 로드 밸런서(421)를 거치지 않고 바로 라우터(410)로 전달될 수 있다. 앞서 설명한 바와 같이 백엔드 가상 머신 서버 1(431)는 클라이언트의 IP 주소를 알 수 있기 때문에 루프백 모듈(610)은 클라이언트의 IP 주소를 이용하여 로드 밸런싱 노드(420)를 거치지 않고 라우터(410)로 직접 응답 패킷을 전달할 수 있다. 따라서 응답 패킷이 터널링을 통해 다시 로드 밸런싱 노드(420)를 거치는 과정이 생략될 수 있기 때문에 지연 속도(latency)를 줄일 수 있다.
한편, 하이퍼바이저(430, 440)에서 가상 스위치를 설정할 수 없는 경우가 존재한다. 이러한 경우에는 TOR(Top Of Rack) 스위치가 가상 스위치의 역할을 할 수 있으며, 이러한 TOR 스위치에서 루프백 인터페이스를 위한 동작을 수행할 수 있다.
도 7은 본 발명의 일실시예에 있어서, TOR 스위치를 이용 한 가상 네트워크상에서의 L4 DSR 로드 밸런싱을 위한 동작의 예를 설명하기 위한 도면이다. 도 7은 도 4를 통해 설명한 라우터(410), 로드 밸런싱 노드(420), 하이퍼바이저(430, 440), L4 DSR 로드 밸런서(421), 백엔드 가상 머신 서버 1(431), 백엔드 가상 머신 서버 2(432) 및 백엔드 가상 머신 서버 3(441)를 나타내고 있다. 또한, 도 7은 TOR 스위치(TOR Switch, 710)를 더 나타내고 있다. 본 실시예에서는 하이퍼바이저(430, 440)에 가상 스위치를 구성할 수 없는 경우, 가상 네트워크에서 사용되는 TOR 스위치(710)에 백엔드 가상 머신 서버들(431, 432, 441)을 위한 루프백 모듈들(711, 712, 713)을 구성한 예를 나타내고 있다. 도 5를 통해 설명한 바와 같이 로드 밸런싱 노드(420)가 전달하는 클라이언트로부터의 요청 패킷은 터널링을 통해 백엔드 가상 머신 서버들(431, 432, 441)로 전달되어야 한다. 예를 들어, 로드 밸런싱 노드(420)는 L4 DSR 로드 밸런서(421)와 가상 스위치(일례로 도 5의 가상 스위치(520))를 통해 클라이언트로부터의 요청 패킷을 터널링을 통해 TOR 스위치(710)에 구성된 루프백 모듈(711)을 거쳐 백엔드 가상 머신 서버 1(431)로 전달할 수 있다. 또한, 루프백 모듈(711)은 백엔드 가상 머신 서버 1(431)로부터의 응답 패킷을 터널링을 통해 다시 로드 밸런싱 노드(420)로 전달하지 않고 바로 라우터(410)로 전달함으로써 지연 속도(latency)를 줄일 수 있다.
이처럼, 본 발명의 실시예들에서는 가상 네트워크 환경에서의 로드 밸런싱 노드와 백엔드 가상 머신 서버들 사이의 패킷의 전달을 가상 스위치를 이용한 터널링을 통해 처리할 수 있다. 또한, 가상 스위치를 통해 루프백 인터페이스를 위한 처리를 제공함으로써 고객들이 백엔드 가상 머신 서버들 각각에 루프백 인터페이스를 설정하지 않고도 DSR 로드 밸런싱이 가능하도록 하여 지연 속도를 줄일 수 있다. 또한, 발신자의 IP 소스 주소가 백엔드 가상 머신 서버들로 전달되기 때문에 백엔드 가상 머신 서버들에서 클라이언트에 대한 정보를 얻을 수 있게 된다.
도 8은 본 발명의 일실시예에 있어서, 가상 네트워크 환경을 구성하기 위한 물리적인 노드의 내부 구성을 설명하기 위한 블록도이다. 도 8에서는 하나의 노드(810)에 대한 실시예를 설명하나 가상 네트워크 환경을 구성하기 위한 물리적인 노드들은 도 8의 노드(810)와 동일한 또는 유사한 내부 구성을 가질 수 있다.
노드(810)는 메모리(811), 프로세서(812), 통신 모듈(813) 그리고 입출력 인터페이스(814)를 포함할 수 있다. 메모리(811)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리(811)와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리(811)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 로드 밸런싱 노드(420)에 L4 DSR 로드 밸런서(421) 및 가상 스위치(520)를 구현하기 위한 프로그램이나 소프트웨어 모듈의 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(811)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 통신 모듈(813)을 통해 메모리(811)에 로딩될 수도 있다.
프로세서(812)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(811) 또는 통신 모듈(813)에 의해 프로세서(812)로 제공될 수 있다. 예를 들어 프로세서(812)는 메모리(811)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다. 보다 구체적인 예로, 노드(810)를 이용하여 VPC(Virtual Private Cloud) 서비스를 제공하는 서비스 제공자는 고객의 로드 밸런싱 서비스 제공 요청에 따라 L4 DSR 로드 밸런서 및 가상 스위치를 구현하기 위한 명령을 통신 모듈(813)을 통해 노드(810)에 입력할 수 있다. 이때, 노드(810)의 프로세서(812)는 입력된 명령과 메모리(811)에 저장된 컴퓨터 프로그램의 명령에 따라 L4 DSR 로드 밸런서 및 가상 스위치를 구현하여 지정된 고객의 백엔드 가상 머신 서버로 로드 밸런싱 서비스를 제공할 수 있다.
통신 모듈(813)은 실제 네트워크를 통해 다른 물리적인 노드들과 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 노드(810)의 프로세서(812)가 메모리(811)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 패킷(일례로 백엔드 가상 머신 서버로 전달하기 위한 패킷)이 통신 모듈(813)의 제어에 따라 실제 네트워크를 통해 다른 물리적인 노드로 전달될 수 있다. 역으로, 다른 물리적인 노드로부터의 패킷이 통신 모듈(813)을 통해 수신되어 노드(810)의 프로세서(812)나 메모리(811)로 전달될 수 있다.
입출력 인터페이스(814)는 입출력 장치(815)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이와 같은 장치를 포함할 수 있다. 또한, 다른 실시예들에서 노드(810)는 도 8의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 노드(810)는 각종 물리적인 버튼이나 터치패널을 이용한 버튼, 또는 입출력 포트 등의 다양한 구성요소들이 노드(810)에 더 포함되도록 구현될 수 있음을 알 수 있다.
이후 설명될 도 9 및 도 10은 로드 밸런스 노드가 로드 밸런싱을 처리하는 실시예를 설명한다.
도 9는 본 발명의 일실시예에 있어서, 가상 네트워크 환경을 구성하기 위한 물리적인 노드의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 10은 본 발명의 일실시예에 따른 노드가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
본 실시예에 따른 노드(810)는 앞서 설명한 로드 밸런싱 노드에 대응될 수 있으며, L4 DSR 로드 밸런서 및 가상 스위치를 구성하기 위한 물리적인 장치일 수 있다. 이러한 노드(810)에 포함되는 프로세서(812)는 구성요소들로서 로드 밸런싱 처리 요청 수신부(910), 로드 밸런서 및 가상 스위치 구현부(920), 요청 패킷 수신부(930), 백엔드 가상 머신 서버 선택부(940), 가상 네트워킹 패킷 생성부(950) 및 가상 네트워킹 패킷 전송부(960)를 포함할 수 있다.
이러한 프로세서(812) 및 프로세서(812)의 구성요소들은 도 10의 방법이 포함하는 단계들(1010 내지 1060)을 수행할 수 있다. 이때, 프로세서(812) 및 프로세서(812)의 구성요소들은 메모리(811)가 포함하는 운영체제의 코드 및/또는 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(812)의 구성요소들은 노드(810)에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서(812)에 의해 수행되는 프로세서(812)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 이때, 프로세서(812)는 노드(810)의 제어와 관련된 명령이 로딩된 메모리(811)로부터 필요한 제어 명령을 읽어드릴 수 있으며, 읽어드린 제어 명령에 따라 이후 설명될 단계들(1010 내지 1060)을 수행하도록 노드(810)를 제어할 수 있다.
단계(1010)에서 로드 밸런싱 처리 요청 수신부(910)는 가상 네트워크를 위한 서비스의 고객 단말로부터 로드 밸런싱의 처리를 위한 요청을 수신하도록 노드(810)를 제어할 수 있다. 예를 들어, 가상 네트워크를 위한 서비스 제공자는 실제 네트워크를 통해 고객 단말로부터의 다양한 요구에 따라 가상 자원들을 고객에게 제공할 수 있다. 이때, 로드 밸런싱 요청 수신부(910)는 고객의 로드 밸런싱의 처리를 위한 요청을 수신할 수 있다. 실시예에 따라서는 가상 네트워크의 물리적인 장치들을 제어하는 제어 장치가 고객 단말로부터 로드 밸런싱의 처리를 위한 요청을 수신할 수도 있다. 이 경우, 로드 밸런싱 처리 요청 수신부(910)는 제어 장치로부터 고객의 요청을 전달받을 수도 있다.
단계(1020)에서 로드 밸런서 및 가상 스위치 구현부(920)는 수신한 요청에 따라 해당 고객을 위한 로드 밸런서와 가상 스위치를 생성할 수 있다. 이러한 로드 밸런서와 가상 스위치는 가상 모듈의 형태로 생성될 수 있다. VPC와 같은 가상 네트워크에서 가상 자원을 어떻게 생성해야 제공하는가에 대해서는 기존 기술들을 이용하여 당업자가 용이하게 이해할 것이다.
단계(1030)에서 요청 패킷 수신부(930)는 라우터를 통해 클라이언트로부터 요청 패킷을 수신하도록 노드(810)를 제어할 수 있다. 가상 네트워크를 위한 서비스를 제공하는 서비스 제공자의 관점의 고객은 클라이언트들로 서비스를 제공할 수 있으며, 이를 위해 다수의 백엔드 가상 머신 서버를 구축할 수 있다. 이때, 단계(1010)에서 설명한 로드 밸런싱의 처리를 위한 요청은 고객이 클라이언트들의 요청에 대한 로드 밸런싱의 처리를 의미할 수 있다. 이 경우, 클라이언트로부터의 요청 패킷은 백엔드 가상 머신 서버로 전달되기 이전에 공용 네트워크의 라우터를 거쳐 노드(810)로 전송될 수 있으며, 요청 패킷 수신부(930)는 전송된 요청 패킷을 수신하도록 노드(810)를 제어할 수 있다.
단계(1040)에서 백엔드 가상 머신 서버 선택부(940)는 수신된 요청 패킷을 전송할 백엔드 가상 머신 서버를 로드 밸런서(load balancer)를 통해 선택할 수 있다. 다시 말해, 백엔드 가상 머신 서버 선택부(940)는 로드 밸런서를 통해 요청 패킷이 복수의 백엔드 가상 머신 서버들로 분산 처리되도록 할 수 있다. 이러한 로드 밸런서는 단계(1020)에서 생성된 소프트웨어 모듈일 수 있다.
단계(1050)에서 가상 네트워킹 패킷 생성부(950)는 수신된 요청 패킷을 가상 네트워크를 통해 상기 선택된 백엔드 가상 머신 서버로 전송하기 위한 정보를 로드 밸런싱 노드가 포함하는 가상 스위치를 통해 상기 수신된 요청 패킷에 오버레이(overlay)하여 가상 네트워킹을 위한 패킷을 생성할 수 있다. 요청 패킷은 실제 네트워크를 통해 전송된 패킷으로, 가상 네트워크를 통한 전송을 위해서는 가상 네트워킹 프로토콜을 위한 헤더 등이 요구된다. 가상 네트워킹 패킷 생성부(950)는 이러한 가상 네트워킹 프로토콜을 위한 헤더와 같은 정보를 수신된 요청 패킷에 오버레이함으로써 가상 네트워킹을 위한 패킷을 생성할 수 있다. 예를 들어, 가상 네트워킹 패킷 생성부(950)는 단계(1050)에서 요청 패킷에 VxLAN(Virtual extensible LAN), VLAN(Virtual LAN), GRE(Generic Route Encapsulation) 및 802.11br 중 하나의 가상 네트워킹 프로토콜을 적용하는 터널링(tunneling)을 통해 가상 네트워킹을 위한 패킷을 생성할 수 있다. 이를 위해, 노드(810)는 네트워크 모델의 레이어 2, 3, 4를 처리할 수 있도록 구현될 수 있고, 요청 패킷에 오버레이된 정보는 네트워크 모델의 레이어 2 및 레이어 3을 위한 헤더 정보 및 상기 가상 네트워킹 프로토콜을 위한 헤더 정보를 포함할 수 있다.
단계(1060)에서 가상 네트워킹 패킷 전송부(960)는 생성된 가상 네트워킹을 위한 패킷을 하이퍼바이저 노드로 전송하도록 노드(810)를 제어할 수 있다. 여기서, 하이퍼바이저 노드는, 상기 선택된 백엔드 가상 머신 서버를 포함할 수 있으며, 전송된 가상 네트워킹을 위한 패킷을 가상 네트워크를 통해 수신하여, 하이퍼바이저 노드가 포함하는 가상 스위치들 중 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 요청 패킷을 추출하고, 추출된 요청 패킷을 로드 밸런서를 통해 선택된 백엔드 가상 머신 서버로 전달하도록 구현될 수 있다. 또한, 이미 설명한 바와 같이, 하이퍼바이저 노드가 가상 스위치를 구성하지 못하는 경우가 존재한다. 이 경우, 전송된 가상 네트워킹을 위한 패킷은 TOR(Top Of Rack) 스위치로 전달되고, TOR 스위치가 포함하는 가상 스위치들 중 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 요청 패킷으로 재변환되어 하이퍼바이저 노드로 전달될 수 있다. 이때 하이퍼바이저 노드는 재변환된 요청 패킷을 선택된 백엔드 가상 머신 서버로 전달하도록 구현될 수 있다.
실시예에 따라 로드 밸런서는 L4 DSR(Direct Server Return) 로드 밸런서를 포함할 수 있다. 이를 위해, 선택된 백엔드 가상 머신 서버는 전달된 요청 패킷에 대한 응답 패킷을 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 L4 DSR 로드 밸런서를 거치지 않고 라우터로 직접 전송하도록 구현될 수 있다.
이미 설명한 바와 같이, 요청 패킷은 클라이언트의 IP 주소를 포함하고 있기 때문에 요청 패킷이 인캡슐레이션되어 있는 가상 네트워킹을 위한 패킷을 통해 클라이언트의 IP 주소가 상기 선택된 백엔드 가상 머신 서버로 전달될 수 있다.
이후 설명될 도 11 및 도 12는 노드(810)에서 전송된 가상 네트워킹을 위한 패킷을 수신하는 하이퍼바이저 노드가 로드 밸런싱을 처리하는 실시예를 설명한다.
도 11은 본 발명의 일실시예에 있어서, 가상 네트워크 환경을 구성하기 위한 물리적인 노드의 프로세서가 포함할 수 있는 구성요소의 다른 예를 도시한 블록도이고, 도 12는 본 발명의 일실시예에 따른 노드가 수행할 수 있는 방법의 다른 예를 도시한 흐름도이다.
본 실시예에 따른 노드(810)는 앞서 설명한 하이퍼바이저 노드에 대응될 수 있으며, 적어도 하나의 백엔드 가상 머신 서버와 백엔드 가상 머신 서버 각각에 대응하는 가상 스위치를 구성하기 위한 물리적인 장치일 수 있다. 이러한 노드(810)에 포함되는 프로세서(812)는 구성요소들로서 서버 및 가상 스위치 구현부(1110), 패킷 수신부(1120), 요청 패킷 추출부(1130), 요청 패킷 전달부(1140), 요청 처리부(1150) 및 응답 패킷 전달부(1160)를 포함할 수 있다.
이러한 프로세서(812) 및 프로세서(812)의 구성요소들은 도 12의 방법이 포함하는 단계들(1210 내지 1260)을 수행할 수 있다. 이때, 프로세서(812) 및 프로세서(812)의 구성요소들은 메모리(811)가 포함하는 운영체제의 코드 및/또는 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(812)의 구성요소들은 노드(810)에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서(812)에 의해 수행되는 프로세서(812)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 이때, 프로세서(812)는 노드(810)의 제어와 관련된 명령이 로딩된 메모리(811)로부터 필요한 제어 명령을 읽어드릴 수 있으며, 읽어드린 제어 명령에 따라 이후 설명될 단계들(1210 내지 1260)을 수행하도록 노드(810)를 제어할 수 있다.
단계(1210)에서 서버 및 가상 스위치 구현부(1110)는 고객의 요청에 따라 적어도 하나의 백엔드 가상 머신 서버와 백엔드 가상 머신 서버에 대응하는 가상 스위치를 생성할 수 있다. 백엔드 가상 머신 서버와 가상 스위치는 각각 소프트웨어 모듈로서 생성될 수 있다.
단계(1220)에서 패킷 수신부(1120)는 로드 밸런서를 포함하는 로드 밸런싱 노드로부터 실제 네트워크를 통해 가상 네트워킹을 위한 패킷을 수신하도록 노드(810)를 제어할 수 있다. 여기서, 이미 설명한 바와 같이 가상 네트워킹을 위한 패킷은, 로드 밸런싱 노드가 라우터를 통해 전달받은 클라이언트로부터의 요청 패킷에, 요청 패킷을 가상 네트워크를 통해 전송하기 위해 요구되는 정보를 로드 밸런싱 노드가 포함하는 가상 스위치를 통해 오버레이하여 생성될 수 있다.
단계(1230)에서 요청 패킷 추출부(1130)는 하이퍼바이저 노드가 포함하는 가상 스위치 중 로드 밸런서에 의해 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 가상 네트워킹을 위한 패킷에서 요청 패킷을 추출할 수 있다. 가상 네트워킹을 위한 패킷은 요청 패킷을 인캡슐레이션하고 있기 때문에 요청 패킷 추출부(1130)는 가상 네트워킹을 위한 패킷에서 가상 네트워킹을 위해 오버레이된 정보를 제거하여 요청 패킷을 얻을 수 있다.
단계(1240)에서 요청 패킷 전달부(1140)는 추출된 요청 패킷을 상기 선택된 백엔드 가상 머신 서버로 전달할 수 있다. 이미 설명한 바와 같이 백엔드 가상 머신 서버는 소프트웨어 모듈의 형태를 갖기 때문에 실질적인 데이터 전송은 발생하지 않을 수 있다.
단계(1250)에서 요청 처리부(1150)는 클라이언트로부터의 요청 패킷에 따른 요청을 처리하고, 요청 패킷에 대한 응답 패킷을 생성할 수 있다. 예를 들어, 요청 처리부(1150)는 소프트웨어 모듈의 형태를 갖는 상기 선택된 백엔드 가상 머신 서버의 제어에 따라 요청 패킷을 처리할 수 있으며, 응답 패킷을 생성할 수 있다.
단계(1260)에서 응답 패킷 전달부(1160)는 상기 선택된 백엔드 가상 머신 서버의 제어에 따라 전달된 요청 패킷에 대한 응답 패킷을 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 L4 DSR 로드 밸런서를 거치지 않고 라우터로 직접 전송하도록 노드(810)를 제어할 수 있다. 이처럼 응답 패킷이 L4 DSR 로드 밸런서를 거치지 않기 때문에 지연 속도에서 이득을 얻을 수 있다.
실시예에 따라 하이퍼바이저 노드가 가상 스위치를 구성하지 못하는 경우가 존재한다. 이 경우에는 하이퍼바이저 노드는 이미 설명한 바와 같이, TOR(Top Of Rack) 스위치에 구성된 가상 스위치를 이용하여 가상 네트워킹을 위한 패킷으로부터 응답 패킷을 얻을 수 있다. 이를 위해, 하이퍼바이저 노드는 단계(1210)에서 백엔드 가상 머신 서버만을 생성할 수 있으며, 단계(1220)에서 TOR 스위치로부터 요청 패킷을 얻을 수 있다. 단계(1230)은 생략될 수 있으며, 단계(1240) 및 단계(1250)을 거친 후, 단계(1260)에서 응답 패킷을 TOR 스위치에 구성된 가상 스위치를 이용하여 L4 DSR 로드 밸런서를 거치지 않고 라우터로 직접 전송하도록 노드(810)를 제어할 수 있다.
도 13은 본 발명의 일실시예에 있어서, 가상 네트워크 환경에서 가상 스위치를 포함하는 하이퍼바이저 노드를 위한 물리적인 노드의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 14는 본 발명의 일실시예에 따른 가상 스위치를 포함하는 하이퍼바이저 노드가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
본 실시예에 따른 노드(810)는 앞서 설명한 하이퍼바이저 노드에 대응될 수 있으며, 적어도 하나의 백엔드 가상 머신 서버와 백엔드 가상 머신 서버 각각에 대응하는 가상 스위치를 구성하기 위한 물리적인 장치일 수 있다. 이러한 노드(810)에 포함되는 프로세서(812)는 구성요소들로서 서버 및 가상 스위치 구현부(1310), 패킷 수신부(1320), 응답 패킷 생성부(1330) 및 응답 패킷 전송부(1340)를 포함할 수 있다.
이러한 프로세서(812) 및 프로세서(812)의 구성요소들은 도 14의 방법이 포함하는 단계들(1410 내지 1440)을 수행할 수 있다. 이때, 프로세서(812) 및 프로세서(812)의 구성요소들은 메모리(811)가 포함하는 운영체제의 코드 및/또는 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(812)의 구성요소들은 노드(810)에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서(812)에 의해 수행되는 프로세서(812)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 이때, 프로세서(812)는 노드(810)의 제어와 관련된 명령이 로딩된 메모리(811)로부터 필요한 제어 명령을 읽어드릴 수 있으며, 읽어드린 제어 명령에 따라 이후 설명될 단계들(1410 내지 1440)을 수행하도록 노드(810)를 제어할 수 있다.
단계(1410)에서 서버 및 가상 스위치 구현부(1310)는 적어도 하나의 백엔드 가상 머신 서버 및 상기 적어도 하나의 백엔드 가상 머신 서버에 대응하고 DSR(Direct Server Return) 처리 기능을 포함하는 가상 스위치를 생성할 수 있다. 예를 들어, 서버 및 가상 스위치 구현부(1310)는 고객의 요청에 따라 하이퍼바이저 노드는 고객이 원하는 가상 자원의 형태로 백엔드 가상 머신 서버를 생성하여 제공할 수 있으며, 고객은 생성된 백엔드 가상 머신 서버를 통해 클라이언트로 서비스를 제공할 수 있다. 또한, 서버 및 가상 스위치 구현부(1310)는 생성된 백엔드 가상 머신 서버 각각에 대응하는 가상 스위치를 생성할 수 있다. 이때, 가상 스위치는 DSR 처리 기능을 포함할 수 있다. 이러한 DSR 처리 기능은 이후 설명되는 바와 같이 클라이언트로부터의 요청 패킷에 포함된 IP 주소를 이용하여 요청 패킷에 대한 응답 패킷을 실제 네트워크상의 라우터로 직접 전송하기 위한 기능을 포함할 수 있다.
단계(1420)에서 패킷 수신부(1320)는 L4 DSR 로드 밸런서를 포함하는 로드 밸런싱 노드로부터 로드 밸런싱 노드가 라우터를 통해 수신한 클라이언트로부터의 요청 패킷을 가상 네트워크를 통해 전달받을 수 있다. 앞서 설명된 바와 같이 요청 패킷은 VxLAN(Virtual extensible LAN), VLAN(Virtual LAN), GRE(Generic Route Encapsulation) 및 802.11br 중 하나의 가상 네트워킹 프로토콜을 적용한 터널링(tunneling)에 따라 가상 네트워크를 통해 요청 패킷을 전송하기 위한 정보가 상기 요청 패킷에 오버레이되어 전달될 수 있다. 여기서 요청 패킷에 오버레이된 정보는 네트워크 모델의 레이어 2 및 레이어 3을 위한 헤더 정보 및 상기 가상 네트워킹 프로토콜을 위한 헤더 정보를 포함할 수 있다.
단계(1430)에서 응답 패킷 생성부(1330)는 요청 패킷을 생성된 적어도 하나의 백엔드 가상 머신 서버 중 L4 DSR 로드 밸런서에 의해 선택된 백엔드 가상 머신 서버를 통해 처리하여 응답 패킷을 생성할 수 있다. 예를 들어, 응답 패킷 생성부(1330)는 상기 생성된 가상 스위치를 통해 상기 정보가 오버레이된 요청 패킷에서 요청 패킷을 추출하여 상기 선택된 백엔드 가상 머신 서버로 전달할 수 있다. 또한, 응답 패킷 생성부(1330)는 상기 선택된 백엔드 가상 머신 서버를 통해 요청 패킷을 처리하여 응답 패킷을 생성할 수 있다.
단계(1440)에서 응답 패킷 전송부(1340)는 생성된 가상 스위치가 포함하는 DSR 처리 기능에 따라 생성된 응답 패킷을 요청 패킷이 포함하는 클라이언트의 IP 주소에 기반하여 실제 네트워크상의 라우터로 전송할 수 있다. 예를 들어, 응답 패킷 전송부(1340)는 생성된 응답 패킷을, 가상 네트워크를 통해 L4 DSR 로드 밸런서를 거치지 않고, DSR 처리 기능을 통해 실제 네트워크상의 라우터로 직접 전송할 수 있다. 다시 말해, 요청 패킷은 로드 밸런싱 노드로부터 가상 네트워크를 통해 전달되었으나, 요청 패킷에 대한 응답 패킷은 실제 네트워크를 통해 라우터로 전송될 수 있다.
도 15는 본 발명의 일실시예에 있어서, 가상 네트워크 환경에서 TOR 스위치 노드를 구현하기 위한 물리적인 노드의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 16은 본 발명의 일실시예에 따른 TOR 스위치 노드가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
본 실시예에 따른 노드(810)는 앞서 설명한 TOR 스위치에 대응될 수 있는 물리적인 장치일 수 있다. 이러한 노드(810)에 포함되는 프로세서(812)는 구성요소들로서 가상 스위치 구현부(1510), 패킷 수신부(1520), 요청 패킷 전송부(1530), 응답 패킷 수신부(1540) 및 응답 패킷 전송부(1550)를 포함할 수 있다.
이러한 프로세서(812) 및 프로세서(812)의 구성요소들은 도 16의 방법이 포함하는 단계들(1610 내지 1650)을 수행할 수 있다. 이때, 프로세서(812) 및 프로세서(812)의 구성요소들은 메모리(811)가 포함하는 운영체제의 코드 및/또는 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(812)의 구성요소들은 노드(810)에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서(812)에 의해 수행되는 프로세서(812)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 이때, 프로세서(812)는 노드(810)의 제어와 관련된 명령이 로딩된 메모리(811)로부터 필요한 제어 명령을 읽어드릴 수 있으며, 읽어드린 제어 명령에 따라 이후 설명될 단계들(1610 내지 1660)을 수행하도록 노드(810)를 제어할 수 있다.
단계(1610)에서 가상 스위치 구현부(1510)는 복수의 백엔드 가상 머신 서버 각각에 대응하고, DSR(Direct Server Return) 처리 기능을 포함하는 가상 스위치를 생성할 수 있다. 이때, 복수의 백엔드 가상 머신 서버는 적어도 하나의 하이퍼바이저 노드에 구성될 수 있다. 가상 스위치 구현부(1510)는 상술한 적어도 하나의 하이퍼바이저 노드에 구성된 복수의 백엔드 가상 머신 서버를 확인하고, 확인된 백엔드 가상 머신 서버 각각을 위한 가상 스위치를 생성할 수 있다.
단계(1620)에서 패킷 수신부(1520)는 L4 DSR 로드 밸런서를 포함하는 로드 밸런싱 노드로부터 상기 로드 밸런싱 노드가 라우터를 통해 수신한 클라이언트로부터의 요청 패킷을 가상 네트워크를 통해 전달받도록 노드(810)를 제어할 수 있다. 앞서 설명된 바와 같이 요청 패킷은 VxLAN(Virtual extensible LAN), VLAN(Virtual LAN), GRE(Generic Route Encapsulation) 및 802.11br 중 하나의 가상 네트워킹 프로토콜을 적용한 터널링(tunneling)에 따라 가상 네트워크를 통해 요청 패킷을 전송하기 위한 정보가 상기 요청 패킷에 오버레이되어 전달될 수 있다. 여기서 요청 패킷에 오버레이된 정보는 네트워크 모델의 레이어 2 및 레이어 3을 위한 헤더 정보 및 상기 가상 네트워킹 프로토콜을 위한 헤더 정보를 포함할 수 있다.
단계(1630)에서 요청 패킷 전송부(1530)는 요청 패킷을 L4 DSR 로드 밸런서에 의해 선택된 백엔드 가상 머신 서버를 포함하는 하이퍼바이저 노드로 전송하도록 노드(810)를 제어할 수 있다. 예를 들어, 요청 패킷 전송부(1530)는 생성된 가상 스위치를 통해 상기 정보가 오버레이된 요청 패킷에서 상기 요청 패킷을 추출하여 상기 선택된 백엔드 가상 머신 서버로 전달함으로써 요청 패킷을 하이퍼바이저 노드로 전송할 수 있다.
단계(1640)에서 응답 패킷 수신부(1540)는 선택된 백엔드 가상 머신 서버를 포함하는 하이퍼바이저 노드로부터 요청 패킷에 대한 응답 패킷을 수신하도록 노드(810)를 제어할 수 있다. 여기서 요청 패킷은 상기 선택된 백엔드 가상 머신 서버에 의해 처리될 수 있고, 상기 선택된 백엔드 가상 머신 서버를 통해 상기 응답 패킷이 생성될 수 있다.
단계(1650)에서 응답 패킷 전송부(1550)는 생성된 가상 스위치가 포함하는 DSR 처리 기능에 따라 수신된 응답 패킷을 요청 패킷이 포함하는 클라이언트의 IP 주소에 기반하여 실제 네트워크상의 라우터로 전송하도록 노드(810)를 제어할 수 있다. 예를 들어, 응답 패킷 전송부(1550)는 생성된 응답 패킷을, 가상 네트워크를 통해 L4 DSR 로드 밸런서를 거치지 않고, DSR 처리 기능을 통해 실제 네트워크상의 라우터로 직접 전송할 수 있다. 다시 말해, 요청 패킷은 로드 밸런싱 노드로부터 가상 네트워크를 통해 전달되었으나, 요청 패킷에 대한 응답 패킷은 실제 네트워크를 통해 라우터로 전송될 수 있다.
도 17은 본 발명의 일실시예에 있어서, 루프백을 이용한 가상 네트워크상에서의 패킷 모니터링을 위한 동작의 예를 도시한 도면이다. 도 17은 도 6을 통해 설명한 라우터(410), 로드 밸런싱 노드(420), 하이퍼바이저(430, 440), L4 DSR 로드 밸런서(421), 백엔드 가상 머신 서버 1(431), 백엔드 가상 머신 서버 2(432), 백엔드 가상 머신 서버 3(441), 그리고 백엔드 가상 머신 서버들(431, 432, 441) 각각을 위한 루프백 모듈들(610, 620, 630)을 더 나타내고 있다. 또한, 도 17은 모니터링 가상 머신(Monitoring VM, 1710)을 더 나타내고 있다.
이때, 루프백 모듈들(610, 620, 630)은 이미 설명한 바와 같이 백엔드 가상 머신 서버들(431, 432, 441) 각각에 대해 송수신되는 패킷들을 모두 처리한다. 본 실시예에서 루프백 모듈들(610, 620, 630)은 이러한 송수신되는 패킷들을 모두 복사하여 모니터링 가상 머신(1710)으로 전달할 수 있다. 실시예에 따라서는 특정 백엔드 가상 머신 서버에 대해 송수신되는 패킷들만을 복사하여 모니터링 가상 머신(1710)으로 전달할 수도 있다.
이 경우, 모니터링 가상 머신(1710)은 DPI(Deep Packet Inspection)를 위한 기능을 포함할 수 있다. DPI는 패킷의 출발지와 목적지 정보뿐만 아니라 패킷의 내용까지 검사하는 기술로, 애플리케이션 레벨(레이어 7)의 데이터를 기반으로 패킷을 식별, 분류하여 특정 데이터를 분석하는 기술이며, 이를 통해 웜, 해킹 등의 공격 여부를 식별, 분석할 수 있다. 다시 말해, 본 실시예에서는 L4 DSR 로드 밸런싱을 위해 이용되는 가상 스위치를 이용하여 필요한 백엔드 가상 머신 서버에 대해 송수신되는 모든 패킷들을 모니터링 가상 머신(1710)으로 미러링(mirroring)함으로써, 모니터링 가상 머신(1710)이 DPI를 위한 기능을 이용하여 패킷들을 분석할 수 있다. 도 17에서는 모니터링 가상 머신(1710)이 하이퍼바이저(430)에 포함된 예를 설명하고 있으나, 모니터링 가상 머신(1710)는 원하는 백엔드 가상 머신 서버에 대응하는 가상 스위치로부터 패킷들을 제공받을 수 있는 어디 위치에서도 구현될 수 있다. 예를 들어, 모니터링 가상 머신(1710)은 별도의 하이퍼바이저 노드에 구현될 수도 있다.
도 18은 본 발명의 일실시예에 있어서, 가상 네트워크 환경에서 모니터링 가상 머신을 구현하는 물리적인 노드의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 19는 본 발명의 일실시예에 따른 모니터링 가상 머신을 구현하는 노드가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
본 실시예에 따른 노드(810)는 앞서 설명한 모니터링 가상 머신을 구현하기 위한 노드에 대응되는 물리적인 장치일 수 있다. 이러한 노드(810)에 포함되는 프로세서(812)는 구성요소들로서 모니터링 가상 머신 생성부(1810), 미러링부(1820) 및 패킷 분석부(1830)를 포함할 수 있다.
이러한 프로세서(812) 및 프로세서(812)의 구성요소들은 도 12의 방법이 포함하는 단계들(1910 내지 1930)을 수행할 수 있다. 이때, 프로세서(812) 및 프로세서(812)의 구성요소들은 메모리(811)가 포함하는 운영체제의 코드 및/또는 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(812)의 구성요소들은 노드(810)에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서(812)에 의해 수행되는 프로세서(812)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 이때, 프로세서(812)는 노드(810)의 제어와 관련된 명령이 로딩된 메모리(811)로부터 필요한 제어 명령을 읽어드릴 수 있으며, 읽어드린 제어 명령에 따라 이후 설명될 단계들(1910 내지 1930)을 수행하도록 노드(810)를 제어할 수 있다.
단계(1910)에서 모니터링 가상 머신 생성부(1810)는 DPI(Deep Packet Inspection)를 위한 기능이 포함된 모니터링 가상 머신을 생성할 수 있다. DPI는 패킷의 출발지와 목적지 정보뿐만 아니라 패킷의 내용까지 검사하는 기술로 이미 잘 알려져 있으며, 이러한 잘 알려진 기술을 가상 머신에 적용하는 것은 당업자에게 있어 용이하게 이해될 수 있다.
단계(1920)에서 미러링부(1820)는 적어도 하나의 백엔드 가상 머신 서버에 대해 송수신되는 패킷을 적어도 하나의 백엔드 가상 머신 서버에 대응하는 가상 스위치를 통해 미러링(mirroring)할 수 있다. 여기서, 가상 스위치는 로드 밸런싱을 위한 로드 밸런싱 노드로부터 가상 네트워크를 통해 전송되는 가상 패킷에서 실제 패킷을 분리하여 대응하는 백엔드 가상 머신 서버로 전달하고, 백엔드 가상 머신 서버로부터의 실제 패킷에 대한 응답 패킷을 실제 네트워크상의 라우터로 전송할 수 있다. 보다 자세하게 가상 스위치는 응답 패킷을, 가상 네트워크를 통해 로드 밸런싱 노드가 포함하는 L4 DSR(Direct Server Return) 로드 밸런서를 거치지 않고, 가상 스위치에 설정된 루프백(loop back) 인터페이스에 따라 실제 네트워크상의 라우터로 직접 전송할 수 있다.
단계(1930)에서 패킷 분석부(1830)는 DPI를 위한 기능을 이용하여 적어도 하나의 백엔드 가상 머신 서버에 대해 미러링된 패킷을 분석할 수 있다. 본 실시예는 가상 네트워크 환경에서 백엔드 가상 머신 서버로 송수신되는 패킷들을 어떻게 쉽게 얻을 수 있는가에 대한 것이다. 이미 설명한 바와 같이 백엔드 가상 머신 서버는 고객에 의해 구성되는 것으로 패킷의 미러링 기능을 추가하도록 요구 및/또는 강제하기 어렵다. 또한, DSR 방식에서 로드 밸런싱 노드는 백엔드 가상 머신 서버로 전송될 패킷만을 다루며, 라우터는 실제 네트워크(공용 네트워크)상의 장치이기 때문에 가상 네트워크를 위한 서비스 제공자가 임의로 기능을 변경할 수 없다. 본 실시예에서는 서비스 제공자 측에서 직접 관리할 수 있는 가상 스위치를 이용하여 백엔드 가상 머신 서버에 대해 송수신되는 패킷들을 모니터링 가상 서버로 미러링함으로써, 가상 네트워크 환경에서 원하는 백엔드 가상 머신 서버에 대해 송수신되는 패킷들을 쉽게 획득할 수 있다. 획득된 패킷들을 DPI를 이용하여 분석하는 것은 기존에 잘 알려진 기술들을 통해 처리될 수 있음을 당업자라면 쉽게 이해할 수 있다.
가상 네트워크를 통한 패킷의 전달을 위한 오버레이, 터널링 등이나 L4 DSR 로드 밸런싱을 위한 루프백 인터페이스가 설정된 가상 스위치, 그리고 TOR 스위치를 이용한 가상 스위치에 대해서는 이미 자세히 설명하였기에 반복적인 설명은 생략한다.
이처럼 본 발명의 실시예들에 따르면, VPC(Virtual Private Cloud) 환경에서 하이퍼바이저(hypervisor)를 통해 고객들이 구성하는 백엔드 가상 머신 서버(Backend Virtual Machine Server)에 대한 로드 밸런싱을 터널링을 이용하여 처리할 수 있다. 또한, VPC 환경에서 백엔드 가상 머신 서버에 필요한 루프백(loop back) 인터페이스를 하이퍼바이저의 가상 스위치(virtual switch)를 통해 구현 및 제공함으로써 고객이 직접 루프백 인터페이스를 설정할 필요가 없으면서도 VPC 환경에서도 백엔드 가상 머신 서버의 응답을 로드 밸런서를 거치지 않고 바로 라우터로 전달할 수 있다. 또한, 상술한 새로운 로드 밸런서와 가상 스위치를 이용하여 VPC 환경에서의 L4 DSR 로드 밸런싱을 처리함으로써 지연 속도(latency)를 줄일 수 있다. 또한, 로드 밸런싱을 위한 상기 가상 스위치를 이용하여 백엔드 가상 머신 서버에서 송수신되는 패킷들을 DPI(Deep Packet Inspection)를 위한 기능이 포함된 모니터링 가상 머신으로 미러링(mirroring)함으로써, 모니터링 가상 머신에서 원하는 백엔드 가상 머신에 대해 송수신되는 모든 패킷들을 수집 및 분석할 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 가상 네트워크상에서 로드 밸런싱 노드가 로드 밸런싱을 처리하는 방법에 있어서,
    라우터를 통해 클라이언트로부터의 요청 패킷을 수신하는 단계;
    상기 수신된 요청 패킷을 전송할 백엔드 가상 머신 서버를 로드 밸런서(load balancer)를 통해 선택하는 단계;
    상기 수신된 요청 패킷을 가상 네트워크를 통해 상기 선택된 백엔드 가상 머신 서버로 전송하기 위한 정보를 상기 로드 밸런싱 노드가 포함하는 가상 스위치를 통해 상기 수신된 요청 패킷에 오버레이(overlay)하여 가상 네트워킹을 위한 패킷을 생성하는 단계; 및
    상기 생성된 가상 네트워킹을 위한 패킷을 상기 선택된 백엔드 가상 머신 서버를 포함하는 하이퍼바이저 노드로 전송하는 단계
    를 포함하는 것을 특징으로 하는 로드 밸런싱 처리 방법.
  2. 제1항에 있어서,
    상기 하이퍼바이저 노드는,
    상기 전송된 가상 네트워킹을 위한 패킷을 상기 가상 네트워크를 통해 수신하여, 상기 하이퍼바이저 노드가 포함하는 가상 스위치들 중 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 요청 패킷을 추출하고, 상기 추출된 요청 패킷을 상기 선택된 백엔드 가상 머신 서버로 전달하도록 구현되는 것을 특징으로 하는 로드 밸런싱 처리 방법.
  3. 제1항에 있어서,
    상기 전송된 가상 네트워킹을 위한 패킷은 TOR(Top Of Rack) 스위치로 전달되고, 상기 TOR 스위치가 포함하는 가상 스위치들 중 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 요청 패킷으로 재변환되어 상기 하이퍼바이저 노드로 전달되고,
    상기 하이퍼바이저 노드는 상기 재변환된 요청 패킷을 상기 선택된 백엔드 가상 머신 서버로 전달하도록 구현되는 것을 특징으로 하는 로드 밸런싱 처리 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 로드 밸런서는 L4 DSR(Direct Server Return) 로드 밸런서를 포함하고,
    상기 선택된 백엔드 가상 머신 서버는 상기 전달된 요청 패킷에 대한 응답 패킷을 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 L4 DSR 로드 밸런서를 거치지 않고 상기 라우터로 직접 전송하도록 구현되는 것을 특징으로 하는 로드 밸런싱 처리 방법.
  5. 제1항에 있어서,
    상기 요청 패킷은 상기 클라이언트의 IP 주소를 포함하고,
    상기 요청 패킷에 상기 정보가 오버레이된 상기 가상 네트워킹을 위한 패킷을 통해 상기 클라이언트의 IP 주소가 상기 선택된 백엔드 가상 머신 서버로 전달되는 것을 특징으로 하는 로드 밸런싱 처리 방법.
  6. 제1항에 있어서,
    상기 가상 네트워킹을 위한 패킷을 생성하는 단계는,
    상기 요청 패킷에 VxLAN(Virtual extensible LAN), VLAN(Virtual LAN), GRE(Generic Route Encapsulation) 및 802.11br 중 하나의 가상 네트워킹 프로토콜을 적용한 터널링(tunneling)을 통해 상기 가상 네트워킹을 위한 패킷을 생성하는 것을 특징으로 하는 로드 밸런싱 처리 방법.
  7. 제1항에 있어서,
    상기 요청 패킷에 오버레이된 정보는 네트워크 모델의 레이어 2 및 레이어 3을 위한 헤더 정보 및 상기 가상 네트워킹 프로토콜을 위한 헤더 정보를 포함하는 것을 특징으로 하는 로드 밸런싱 처리 방법.
  8. 가상 네트워크상에서 하이퍼바이저 노드가 로드 밸런싱을 처리하는 방법에 있어서,
    로드 밸런서를 포함하는 로드 밸런싱 노드로부터 가상 네트워크를 통해 가상 네트워킹을 위한 패킷을 수신하는 단계 - 상기 가상 네트워킹을 위한 패킷은, 상기 로드 밸런싱 노드가 라우터를 통해 전달받은 클라이언트로부터의 요청 패킷에, 상기 요청 패킷을 상기 가상 네트워크를 통해 전송하기 위해 요구되는 정보를 상기 로드 밸런싱 노드가 포함하는 가상 스위치를 통해 오버레이하여 생성됨 -;
    상기 하이퍼바이저 노드가 포함하는 가상 스위치 중 상기 로드 밸런서에 의해 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 가상 네트워킹을 위한 패킷에서 상기 요청 패킷을 추출하는 단계; 및
    상기 추출된 요청 패킷을 상기 선택된 백엔드 가상 머신 서버로 전달하는 단계
    를 포함하는 것을 특징으로 하는 로드 밸런싱 처리 방법.
  9. 제8항에 있어서,
    상기 로드 밸런서는 L4 DSR(Direct Server Return) 로드 밸런서를 포함하고,
    상기 선택된 백엔드 가상 머신 서버는 상기 전달된 요청 패킷에 대한 응답 패킷을 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 L4 DSR 로드 밸런서를 거치지 않고 상기 라우터로 직접 전송하도록 구현되는 것을 특징으로 하는 로드 밸런싱 처리 방법.
  10. 제1항 내지 제3항 또는 제5항 내지 제9항 중 어느 한 항의 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  11. 컴퓨터로 구현되는 로드 밸런싱 노드와 결합되어 로드 밸런싱 처리 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 로드 밸런싱 처리 방법은,
    라우터를 통해 클라이언트로부터의 요청 패킷을 수신하는 단계;
    상기 수신된 요청 패킷을 전송할 백엔드 가상 머신 서버를 로드 밸런서(load balancer)를 통해 선택하는 단계;
    상기 수신된 요청 패킷을 가상 네트워크를 통해 상기 선택된 백엔드 가상 머신 서버로 전송하기 위한 정보를 상기 로드 밸런싱 노드가 포함하는 가상 스위치를 통해 상기 수신된 요청 패킷에 오버레이(overlay)하여 가상 네트워킹을 위한 패킷을 생성하는 단계; 및
    상기 생성된 가상 네트워킹을 위한 패킷을 상기 선택된 백엔드 가상 머신 서버를 포함하는 하이퍼바이저 노드로 전송하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  12. 제11항에 있어서,
    상기 하이퍼바이저 노드는,
    상기 전송된 가상 네트워킹을 위한 패킷을 상기 가상 네트워크를 통해 수신하여, 상기 하이퍼바이저 노드가 포함하는 가상 스위치들 중 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 요청 패킷을 추출하고, 상기 추출된 요청 패킷을 상기 선택된 백엔드 가상 머신 서버로 전달하도록 구현되는 것을 특징으로 하는 컴퓨터 프로그램.
  13. 제11항에 있어서,
    상기 전송된 가상 네트워킹을 위한 패킷은 TOR(Top Of Rack) 스위치로 전달되고, 상기 TOR 스위치가 포함하는 가상 스위치들 중 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 요청 패킷으로 재변환되어 상기 하이퍼바이저 노드로 전달되고,
    상기 하이퍼바이저 노드는 상기 재변환된 요청 패킷을 상기 선택된 백엔드 가상 머신 서버로 전달하도록 구현되는 것을 특징으로 하는 컴퓨터 프로그램.
  14. 제12항 또는 제13항에 있어서,
    상기 로드 밸런서는 L4 DSR(Direct Server Return) 로드 밸런서를 포함하고,
    상기 선택된 백엔드 가상 머신 서버는 상기 전달된 요청 패킷에 대한 응답 패킷을 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 L4 DSR 로드 밸런서를 거치지 않고 상기 라우터로 직접 전송하도록 구현되는 것을 특징으로 하는 컴퓨터 프로그램.
  15. 제11항에 있어서,
    상기 요청 패킷은 상기 클라이언트의 IP 주소를 포함하고,
    상기 요청 패킷에 상기 정보가 오버레이된 상기 가상 네트워킹을 위한 패킷을 통해 상기 클라이언트의 IP 주소가 상기 선택된 백엔드 가상 머신 서버로 전달되는 것을 특징으로 하는 컴퓨터 프로그램.
  16. 로드 밸런싱 처리 방법을 실행하기 위해 컴퓨터로 구현되는 로드 밸런싱 노드에 있어서,
    컴퓨터에서 판독 가능한 명령을 저장하는 메모리; 및
    상기 메모리에 저장된 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    라우터를 통해 클라이언트로부터의 요청 패킷을 수신하도록 상기 로드 밸런싱 노드를 제어하고,
    상기 수신된 요청 패킷을 전송할 백엔드 가상 머신 서버를 로드 밸런서(load balancer)를 통해 선택하고,
    상기 수신된 요청 패킷을 가상 네트워크를 통해 상기 선택된 백엔드 가상 머신 서버로 전송하기 위한 정보를 상기 로드 밸런싱 노드가 포함하는 가상 스위치를 통해 상기 수신된 요청 패킷에 오버레이(overlay)하여 가상 네트워킹을 위한 패킷을 생성하고, 그리고
    상기 생성된 가상 네트워킹을 위한 패킷을 상기 선택된 백엔드 가상 머신 서버를 포함하는 하이퍼바이저 노드로 전송하도록 상기 로드 밸런싱 노드를 제어하는 것
    을 특징으로 하는 컴퓨터로 구현되는 로드 밸런싱 노드.
  17. 제16항에 있어서,
    상기 하이퍼바이저 노드는,
    상기 전송된 가상 네트워킹을 위한 패킷을 상기 가상 네트워크를 통해 수신하여, 상기 하이퍼바이저 노드가 포함하는 가상 스위치들 중 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 요청 패킷을 추출하고, 상기 추출된 요청 패킷을 상기 선택된 백엔드 가상 머신 서버로 전달하도록 구현되는 것을 특징으로 하는 컴퓨터로 구현되는 로드 밸런싱 노드.
  18. 제16항에 있어서,
    상기 전송된 가상 네트워킹을 위한 패킷은 TOR(Top Of Rack) 스위치로 전달되고, 상기 TOR 스위치가 포함하는 가상 스위치들 중 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 요청 패킷으로 재변환되어 상기 하이퍼바이저 노드로 전달되고,
    상기 하이퍼바이저 노드는 상기 재변환된 요청 패킷을 상기 선택된 백엔드 가상 머신 서버로 전달하도록 구현되는 것을 특징으로 하는 컴퓨터로 구현되는 로드 밸런싱 노드.
  19. 제17항 또는 제18항에 있어서,
    상기 로드 밸런서는 L4 DSR(Direct Server Return) 로드 밸런서를 포함하고,
    상기 선택된 백엔드 가상 머신 서버는 상기 전달된 요청 패킷에 대한 응답 패킷을 상기 선택된 백엔드 가상 머신 서버를 위한 가상 스위치를 통해 상기 L4 DSR 로드 밸런서를 거치지 않고 상기 라우터로 직접 전송하도록 구현되는 것을 특징으로 하는 컴퓨터로 구현되는 로드 밸런싱 노드.
  20. 제16항에 있어서,
    상기 요청 패킷은 상기 클라이언트의 IP 주소를 포함하고,
    상기 요청 패킷에 상기 정보가 오버레이된 상기 가상 네트워킹을 위한 패킷을 통해 상기 클라이언트의 IP 주소가 상기 선택된 백엔드 가상 머신 서버로 전달되는 것을 특징으로 하는 컴퓨터로 구현되는 로드 밸런싱 노드.
KR1020160108373A 2016-08-25 2016-08-25 가상 네트워크 환경에서 가상 스위치를 이용하여 로드 밸런싱을 처리하는 방법 및 시스템 KR101936166B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020160108373A KR101936166B1 (ko) 2016-08-25 2016-08-25 가상 네트워크 환경에서 가상 스위치를 이용하여 로드 밸런싱을 처리하는 방법 및 시스템
JP2017160060A JP6505172B2 (ja) 2016-08-25 2017-08-23 仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム
US15/685,418 US10601906B2 (en) 2016-08-25 2017-08-24 Method and system for processing load balancing using virtual switch in virtual network environment
US16/791,346 US11330044B2 (en) 2016-08-25 2020-02-14 Method and system for processing load balancing using virtual switch in virtual network environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160108373A KR101936166B1 (ko) 2016-08-25 2016-08-25 가상 네트워크 환경에서 가상 스위치를 이용하여 로드 밸런싱을 처리하는 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20180024062A true KR20180024062A (ko) 2018-03-08
KR101936166B1 KR101936166B1 (ko) 2019-01-09

Family

ID=61726387

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160108373A KR101936166B1 (ko) 2016-08-25 2016-08-25 가상 네트워크 환경에서 가상 스위치를 이용하여 로드 밸런싱을 처리하는 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101936166B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111371685A (zh) * 2020-02-28 2020-07-03 北京百度网讯科技有限公司 数据处理、IPv6挂载方法和装置
CN113973086A (zh) * 2020-07-07 2022-01-25 中移(苏州)软件技术有限公司 一种数据传输方法、装置及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102414042B1 (ko) 2022-01-27 2022-06-28 (주)심플솔루션 전산장비 로드밸런싱 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8942237B2 (en) * 2012-06-20 2015-01-27 International Business Machines Corporation Hypervisor independent network virtualization
US9565105B2 (en) * 2013-09-04 2017-02-07 Cisco Technology, Inc. Implementation of virtual extensible local area network (VXLAN) in top-of-rack switches in a network environment

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111371685A (zh) * 2020-02-28 2020-07-03 北京百度网讯科技有限公司 数据处理、IPv6挂载方法和装置
CN111371685B (zh) * 2020-02-28 2022-06-17 北京百度网讯科技有限公司 数据处理、IPv6挂载方法和装置
CN113973086A (zh) * 2020-07-07 2022-01-25 中移(苏州)软件技术有限公司 一种数据传输方法、装置及存储介质
CN113973086B (zh) * 2020-07-07 2024-01-26 中移(苏州)软件技术有限公司 一种数据传输方法、装置及存储介质

Also Published As

Publication number Publication date
KR101936166B1 (ko) 2019-01-09

Similar Documents

Publication Publication Date Title
JP6505172B2 (ja) 仮想ネットワーク環境で仮想スイッチを利用してロードバランシングを処理する方法およびシステム
JP6505171B2 (ja) 仮想ネットワーク環境でループバックインタフェースを利用してdsrロードバランシングを処理する方法およびシステム
US11695731B2 (en) Distributed identity-based firewalls
US10944811B2 (en) Hybrid cloud network monitoring system for tenant use
US10681131B2 (en) Source network address translation detection and dynamic tunnel creation
US10862732B2 (en) Enhanced network virtualization using metadata in encapsulation header
US11329914B2 (en) User customization and automation of operations on a software-defined network
EP3491799B1 (en) Channel data encapsulation system and method for use with client-server data channels
US10263883B2 (en) Data flow configuration in hybrid system of silicon and micro-electro-mechanical-switch (MEMS) elements
US9871720B1 (en) Using packet duplication with encapsulation in a packet-switched network to increase reliability
CN113924761A (zh) 云网络可达性分析
JP6990298B2 (ja) セッションディレクトリまたはブローカを伴うrdpサーバファームの存在下でのrdpプロキシサポート
CN104685500A (zh) 向虚拟覆盖网络流量提供服务
US10459743B2 (en) Network isolation in virtual desktop infrastructure
CN113950814B (zh) 通过端口复用的多点会议会话
KR101567253B1 (ko) 플로우 제어 장치 및 방법
US20130054817A1 (en) Disaggregated server load balancing
KR101936166B1 (ko) 가상 네트워크 환경에서 가상 스위치를 이용하여 로드 밸런싱을 처리하는 방법 및 시스템
US10205648B1 (en) Network monitoring using traffic mirroring and encapsulated tunnel in virtualized information processing system
KR101941925B1 (ko) 가상 네트워크 환경에서 루프백 인터페이스를 이용하여 dsr 로드 밸런싱을 처리하는 방법 및 시스템
Spiekermann et al. Network forensic investigation in OpenFlow networks with ForCon
KR101936169B1 (ko) 가상 네트워크 환경에서 패킷을 분석하는 방법 및 시스템
US9853885B1 (en) Using packet duplication in a packet-switched network to increase reliability

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