KR20170134557A - 제어기, 제어 방법 및 프로그램 - Google Patents

제어기, 제어 방법 및 프로그램 Download PDF

Info

Publication number
KR20170134557A
KR20170134557A KR1020177031383A KR20177031383A KR20170134557A KR 20170134557 A KR20170134557 A KR 20170134557A KR 1020177031383 A KR1020177031383 A KR 1020177031383A KR 20177031383 A KR20177031383 A KR 20177031383A KR 20170134557 A KR20170134557 A KR 20170134557A
Authority
KR
South Korea
Prior art keywords
physical
node
controller
information
network
Prior art date
Application number
KR1020177031383A
Other languages
English (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 닛본 덴끼 가부시끼가이샤
Publication of KR20170134557A publication Critical patent/KR20170134557A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks

Abstract

가상 네트워크 상의 서비스를 물리 NW 상에서 구현하는 제어기, 서비스를 제공하기 위한 방법 및 프로그램이 제시한다. 제어기는 네트워크 노드의 기능(들)을 제공할 수 있는 가상 머신(들)을 특정하는 제1 수단; 물리 네트워크에서 특정된 가상 머신(들)의 위치에 관한 정보를 특정하는 제2 수단; 및 위치에 관한 정보에 기초하여, 물리 네트워크 상에서 네트워크 노드의 기능(들)을 구현하는 데이터 패스를 설정하는 제3 수단을 포함한다.

Description

제어기, 제어 방법 및 프로그램
(관련 출원에 대한 참조)
본 출원은 일본 특허 출원 제2015-073889호(2015년 3월 31일 출원)의 우선권 주장에 기초하는 것이며, 그 개시내용은 전체가 참고로서 본 명세서에 통합된다.
본 발명은 제어기, 제어 방법 및 프로그램에 관한 것으로, 특히 물리 네트워크의 리소스를 이용하여 각종 서비스를 제공하는 제어기, 제어 방법 및 프로그램에 관한 것이다.
특허문헌 1에는 네트워크 가상화 시스템의 관리 방법이 개시되어 있다. 상기 문헌의 단락 0048 이하에는, 네트워크 가상화 시스템(1)이 설정 단말(31)로부터 지시를 수신하고, 물리 노드(물리 노드(21) 내지 물리 노드(26)) 및 물리 링크(51)의 리소스를 사용하여, 가상 네트워크(가상 네트워크 2, 3)를 구축하고, 가상 네트워크 각각이 가상 노드 및 가상 네트워크를 포함하는 것이 기재되어 있다(예를 들어, 단락 0131 내지 0141 참조).
일본 특허 공표 제2014-501458호 공보
이하의 분석은 본 발명에 의해 부여된 것이다. 예를 들어, 특허문헌 1에 예시 된 네트워크 가상화 기술의 도움으로, 외부에서 사용하기 위해 네트워크에서 가상 머신(virtual machine)(VM)을 기동(booting)하는 것을 포함하는, 사용자를 위한 서비스를 제공하기 위해서는, 그러한 서비스를 구현하는데 필요한 물리 리소스를 제공하고 모순 없이 필요한 설정을 수행할 필요가 있다. 예를 들어, 특허문헌 1의 도 16 및 도 13을 참조한다.
그러나 특허문헌 1에는, 사용자에 의해 제시되도록 요구된 가상 네트워크 상의 서비스를 어떻게 구현할지, 특히 사용자로부터 서비스 요구가 이루어진 경우 서비스를 제시하는데 요구되는 물리 리소스를 어떻게 배치하거나 접속할지에 대해서는 개시되어 있지 않다.
본 발명의 목적은 가상 네트워크 상의 서비스를 물리 네트워크(NW) 상에 구현하기 위한 제어기, 제어 방법 및 프로그램을 제공하는 것에 있다.
제1 양태에서는, 네트워크 노드의 기능(들)을 제공할 수 있는 가상 머신(들)을 특정하는 제1 수단; 물리 네트워크에서 특정된 가상 머신(들)의 위치에 관한 정보를 특정하는 제2 수단; 및 위치에 관한 정보에 기초하여, 물리 네트워크 상에서 네트워크 노드의 기능(들)을 구현하는 데이터 패스를 설정하는 제3 수단을 포함하는 제어기가 제공된다.
제2 양태에서는, 물리 네트워크를 제어하는 제어기; 및 제어기에 의해 관리되는 가상 머신(들)을 포함하는 통신 시스템이 제공된다. 제어기는 네트워크 노드의 기능(들)을 제공할 수 있는 가상 머신(들)을 특정하는 제1 수단; 물리 네트워크에서 특정된 가상 머신(들)의 위치에 관한 정보를 특정하는 제2 수단; 및 위치에 관한 정보에 기초하여, 물리 네트워크 상에서 네트워크 노드의 기능(들)을 구현하는 데이터 패스를 설정하는 제3 수단을 포함한다.
제3 양태에서는, 네트워크 노드의 기능(들)을 제공할 수 있는 가상 머신(들)을 특정하는 단계; 물리 네트워크에서 특정된 가상 머신(들)의 위치에 관한 정보를 특정하는 단계; 위치에 관한 정보에 기초하여, 물리 네트워크 상에서 네트워크 노드의 기능(들)을 구현하는 데이터 패스를 설정하는 단계를 포함하는 제어 방법이 제공된다. 본 방법은 전술한 제1 내지 제3 유닛을 포함하는 제어기인, 특정한 머신에 결부되어 있다.
제4 양태에서는, 컴퓨터로 하여금, 네트워크 노드의 기능(들)을 제공할 수 있는 가상 머신(들)을 특정하는 것; 물리 네트워크에서 특정된 가상 머신(들)의 위치에 관한 정보를 특정하는 것; 위치에 관한 정보에 기초하여, 물리 네트워크 상에서 네트워크 노드의 기능(들)을 구현하는 데이터 패스를 설정하는 것을 실행하게 하는 프로그램이 제공된다. 본 프로그램은 컴퓨터 판독가능(비일시적) 기록 매체에 기록할 수 있음에 유의해야 한다. 즉, 본 발명은 컴퓨터 프로그램 제품으로서 실현될 수 있다.
본 발명에 따르는 제어기, 제어 방법 및 프로그램에 의하면, 가상 네트워크 상의 서비스를 물리 네트워크 상에서 구현하는 것이 가능하다.
도 1은 본 발명의 예시적 실시예 1에 따른 시스템의 예시적 구성을 도시하는 개략도이다.
도 2는 본 발명의 예시적 실시예 1에 따른 제어기의 예시적 구성을 도시하는 블록도이다.
도 3은 본 발명의 예시적 실시예 1의 제어 유닛에 의해 실행되는 예시적 처리를 도시하는 블록도이다.
도 4는 본 발명의 예시적 실시예 1의 제어기에 의해 유지되는 예시적 테이블을 도시하는 도표이다.
도 5는 본 발명의 예시적 실시예 1의 제어기의 예시적 동작을 도시하는 흐름도이다.
도 6은 본 발명의 예시적 실시예 1의 시스템의 다른 예시적 구성을 도시하는 개략도이다.
도 7은 본 발명의 예시적 실시예 2의 시스템의 예시적 구성을 도시하는 개략도이다.
도 8은 본 발명의 예시적 실시예 2의 제어기에 의해 유지되는 예시적 테이블을 도시하는 도표이다.
도 9는 본 발명의 예시적 실시예 2의 제어기의 예시적 동작을 도시하는 흐름도이다.
도 10은 본 발명의 예시적 실시예 2의 제어기의 다른 예시적 구성을 도시하는 개략도이다.
도 11은 본 발명의 예시적 실시예 3에 따른 제어기의 구성을 도시하는 개략도이다.
도 12는 본 발명의 예시적 실시예 3의 시스템의 예시적 구성을 도시하는 개략도이다.
도 13은 본 발명의 예시적 실시예 3의 제어기의 예시적 동작을 도시하는 흐름도이다.
도 14는 본 발명의 예시적 실시예 4의 시스템의 예시적 구성을 도시하는 개략도이다.
도 15는 본 발명의 예시적 실시예 4의 제어기에 의해 유지되는 다른 예시적 테이블을 도시하는 도표이다.
도 16은 본 발명의 예시적 실시예 4의 시스템의 다른 예시적 구성을 도시하는 개략도이다.
도 17은 본 발명의 예시적 실시예 5의 시스템의 예시적 구성을 도시하는 블록도이다.
도 18은 본 발명의 예시적 실시예 5의 제어기의 예시적 구성을 도시하는 블록도이다.
도 19는 본 발명의 예시적 실시예 5의 제어기와 협력하여 동작하는 물리 노드를 도시하는 블록도이다.
도 20은 예시적 실시예 5의 제어기와 협력하여 동작하는 물리 노드에 의한 VNF의 예시적 구성을 도시하는 개략도이다.
도 21은 본 발명의 예시적 실시예 5의 시스템의 예시적 구성을 도시하는 블록도이다.
도 22는 본 발명의 예시적 실시예 5의 제어기의 예시적 동작을 도시하는 흐름도이다.
도 23은 본 발명의 예시적 실시예 5의 제어기와 협력하여 동작하는 물리 노드에 설정된 예시적 데이터 패스를 도시하는 블록도이다.
도 24는 본 발명의 예시적 실시예 6의 시스템의 예시적 구성을 도시하는 개략도이다.
도 25는 본 발명의 예시적 실시예 6의 제어기에 의해 유지되는 다른 예시적 테이블을 도시하는 도표이다.
도 26은 본 발명의 예시적 실시예 6의 제어기의 예시적 동작을 도시하는 흐름도이다.
도 27은 본 발명의 예시적 실시예 7의 시스템의 예시적 구성을 도시하는 개략도이다.
도 28은 본 발명의 예시적 실시예 7의 제어기에 의해 유지되는 다른 예시적 테이블을 도시하는 도표이다.
도 29는 본 발명의 예시적 실시예 8의 시스템의 예시적 구성을 도시하는 개략도이다.
도 30은 본 발명의 예시적 실시예 8의 제어기에 의해 유지되는 예시적 테이블을 도시하는 도표이다.
도 31은 본 발명의 예시적 실시예 8의 시스템의 다른 예시적 구성을 도시하는 개략도이다.
도 32는 본 발명의 예시적 실시예 8의 시스템의 다른 예시적 구성을 도시하는 개략도이다.
<예시적 실시예 1>
이하에서는 본 발명에 따른 예시적 실시예 1이 도면을 참조하여 설명될 것이다. 도 1은 본 발명에 따른 예시적 실시예 1의 시스템의 예시적 구성을 도시한다. 도 1은 물리 네트워크(NW) 및 제어기(100)를 포함하는 구성을 도시하며, 물리 NW는 물리 노드(200A, 200B 및 210)를 포함한다. 이하의 설명에서, 물리 노드(200A, 200B)를 구별할 필요가 없는 경우, 이들은 물리 노드(200)로 지칭된다. 제어기(100)는 이 물리 노드(200, 210)에 접속된다.
물리 노드(200, 210) 중, 물리 노드(200)는 가상 네트워크(가상 NW) 상에서 가상 머신들(VMs)(300)을 제공할 수 있다. 예를 들어, 서버를 구성하는 가상 머신 환경은 물리 노드(200)의 전형적인 것으로 언급될 수 있다. VM(300)이 도 1의 예시적 실시예에서 실행되더라도, 특정 기능을 제공할 수 있는 애플리케이션 프로그램을 내장한 가상 어플라이언스가 또한 사용될 수 있다.
물리 노드(210)는 제어기(100)에 의해 지시된 경로를 따라 물리 노드(200) 간의 통신을 구현한다. OpenFlow 스위치 또는 계층-3 스위치가 물리 노드(210)의 전형적인 것으로 언급될 수 있다. 또한, 물리 노드(210) 대신에, 물리 노드(200)에 의해 구성되는 가상 스위치가 사용될 수 있다.
가상 NW가 복수의 통신 노드(예를 들어, VM(300))에 의해 실행되는 경우, 물리 NW 상의 통신을 보장하기 위해서는, 다수의 통신 노드(예를 들어, VM(300)) 중 임의의 2개의 통신 노드 사이에 데이터 패스(들)를 설정하는 것이 필요하다. 따라서, 예시적 실시예 1에서는, 가상 NW에 포함되는 다수의 통신 노드(예를 들어, VM(300)) 중 임의의 2개의 통신 노드 사이에 데이터 패스(들)가 설정된다.
한편, 가상 NW에 포함되는 VM(300)과 같은 통신 노드가 물리적 서버와 같은 복수의 각각의 개별 물리 노드(200)에 의해 실행되고 데이터 패스(들)가 물리 NW에서 VM(300)과 같은 통신 노드 사이에 설정되어야 하는 경우, 물리 NW에서 통신 노드(200) 사이에도 데이터 패스(들)를 설정하는 것이 필요하다. 예를 들어, 도 1의 구성에서는, 가상 NW에 포함되는 VM(300) 각각이 물리 노드(200A)와 물리 노드(200B)에 의해 실행된다. 이런 구성에서, 데이터 패스(들)가 VM(300) 사이에 설정된다면, 물리 노드(200A, 200B) 사이에도 데이터 패스를 설정할 필요가 있다. 따라서, 예시적 실시예 1에서는, 가상 NW에 포함되는 복수의 통신 노드(예를 들어, VM(300))를 구현하는 다수의 물리 노드(200) 사이에도 데이터 패스(들)가 설정된다.
상술한 예시적 실시예 1에서, 제어기(100)는 사용자로부터 요구된 서비스를 구현하기 위해, 그렇게 요구된 서비스와 연관된 VM과 같은 통신 노드를 특정하고, 그렇게 특정된 통신 노드를 물리 NW 상의 위치 정보에 반영시켜, 물리 NW 상의 통신 노드 간의 데이터 패스를 설정한다.
도 2는 예시적 실시예 1에서 제어기(100)의 예시적 구성을 도시한다. 도 2를 참조하면, 제어기(100)는 제어 유닛(110) 및 통신 유닛(120)을 포함한다.
통신 유닛(120)은, 예를 들어 물리 노드(200)나 통신 노드(210)와 통신할 수 있는 인터페이스이다. 통신 유닛(120)은, 예를 들어 물리 노드(200)에 미리 설정된 제어 신호를 전송할 수 있다. 예를 들어, 통신 유닛(120)은 처리 규칙들의 세트 또는 전송 정보를 통신 노드(210)에 전송할 수 있다.
제어 유닛(110)은 미리 설정된 처리를 실행할 수 있다. 제어 유닛(110)에 의해 실행된 미리 설정된 처리는, 예를 들어 CPU(Central Processing Unit)나 MPU(Micro Processing Unit)에 의해 실제로 실행된다.
도 3은 예시적 실시예 1에서 제어 유닛(110)에 의해 실행되는 예시적 처리를 도시한다. 도 3을 참조하면, 제어 유닛(110)은 노드 특정 수단(101)(제1 수단)에 의해 수행된 처리, 위치 특정 수단(102)(제2 수단)에 의해 수행된 처리, 및 패스 설정 수단(103)(제3 수단)에 의해 수행된 처리를 실행할 수 있다.
노드 특정 수단(101)은 사용자에 의해 요구된 서비스에 대응하는 통신 노드를 특정한다. "사용자에 의해 요구된 서비스"는, 가상 리소스를 사용해서 논리적으로 구성된 가상 네트워크(예를 들어, vEPC)를 사용하는 서비스, 또는 사용자에 대응하는 테넌트에 포함되는 가상 리소스나 물리 리소스를 사용하는 서비스이다. "사용자에 의해 요구된 서비스"는, VM 또는 물리적 서버와 같은 서버 리소스를 가상 네트워크에 배치하거나 네트워크를 외부 네트워크에 링크하려는 사용자의 욕구와 같은, 기존의 가상 NW에 대한 사용자의 요구일 수도 있다. "사용자에 의해 요구된 서비스"는, 가상 네트워크 기능(virtual network function)(VNF) 또는 서비스 체인(service chain)일 수도 있다.
노드 특정 수단(101)은 그런 서비스를 제공할 수 있는 하나 이상의 통신 노드를 특정하는 역할을 한다. "통신 노드"는 전술한 서버 리소스에 상당하며, 이는 VM 또는 물리 서버일 수 있다. 도 1의 노드 특정 수단(101)으로부터 연장된 화살 점선은 사용자에 의해 요구된 서비스를 나타내는, 상단(upper tier)에서의 가상 네트워크에 대응하는 VM(300)을 특정하는 동작을 나타낸다.
위치 특정 수단(102)은 노드 특정 수단(101)에 의해 특정된 통신 노드의 물리 네트워크에서의 위치에 관한 정보를 특정한다. 여기서, "물리 네트워크에서의 위치"로서, 노드 특정 수단(101)에 의해 특정된 통신 노드에 대한 물리 NW 상의 종단점 정보(terminal point information)가 사용될 수 있다. 예를 들어, 종단점 정보는 노드 특정 수단(101)에 의해 특정된 통신 노드의 어드레스(예를 들어, IP(Internet Protocol) 어드레스 또는 MAC(Media Access Control) 어드레스)이다.
종단점 정보는, 노드 특정 수단(101)에 의해 특정된 통신 노드가 접속되는 가상 스위치의 어드레스(예를 들어, IP 어드레스 또는 MAC 어드레스)일 수도 있다. 종단점 정보는, 노드 특정 수단(101)에 의해 특정된 통신 노드가 접속되는 가상 스위치에서 통신 노드에 의해 사용되는 포트의 포트 번호일 수도 있다. 종단점 정보는, 노드 특정 수단(101)에 의해 특정된 통신 노드를 구현하는 물리 노드(200)의 어드레스(예를 들어, IP 어드레스 또는 MAC 어드레스)일 수도 있다. 종단점 정보는, 또한 노드 특정 수단(101)에 의해 특정된 통신 노드에 대응하는 물리 스위치(예를 들어, 물리 노드(210))의 어드레스(예를 들어, IP 어드레스 또는 MAC 어드레스)일 수 있다.
도 1의 위치 특정 수단(102)으로부터 연장된 화살 점선은, 노드 특정 수단(101)에 의해 특정된 VM(300)의 종단점 정보 또는 VM(300)에 대응하는 물리 노드(200)의 종단점 정보를 특정하는 위치 특정 수단(102)의 동작을 나타낸다.
패스 설정 수단(103)은 위치 특정 수단(102)에 의해 특정된 통신 노드의 물리 네트워크에서의 위치에 관한 정보를 사용하여, 사용자에 의해 요구된 서비스를 물리 NW 상에 구현하는데 필요한 데이터 패스를 설정한다. "데이터 패스를 설정하는" 처리는, 물리 노드(210)에 플로우 엔트리들의 세트 또는 경로 정보를 설정함으로써 구현될 수 있다. 플로우 엔트리는, 물리 노드(210)가 플로우에 속하는 패킷을 처리하기 위한 처리 규칙들의 세트이다. 경로 정보는 패킷 전송시 물리 노드(210)에 의해 사용되는 전송 정보이다. 도 1의 패스 설정 수단(103)으로부터 연장된 화살 점선은, 패스 설정 수단(103)이 위치 특정 수단(102)에 의해 특정된 물리 노드(200)를 물리 노드(210)를 통해 상호접속하여, 데이터 패스를 설정하는 동작을 나타낸다.
도 4는 예시적 실시예 1에서 제어기에 의해 유지되는 예시적 테이블을 도시한다. 도 4의 상단에는 서비스, 통신 노드 및 물리 노드에 대한 위치 정보를 서로 상관시킨 테이블이 도시되어 있다. 노드 특정 수단(101)은 서비스 A를 구현하기 위해 어떤 리소스가 필요한지를 인덱싱한다. 도 4의 예시적 실시예에서는, 예를 들어 서비스 A를 구현하는데 필요한 리소스로서, VM1 내지 VM3이 특정된다. 위치 특정 수단(102)은 물리 NW 내의 VM1 내지 VM3의 위치에 관한 정보, 즉 물리 NW 내의 VM이 어느 물리 노드의 어느 종단점에 접속되어 있는지에 관한 정보를 인덱싱한다. 도 4의 예시적 실시예에서는, VM1 내지 VM3을 구현하는 물리 노드의 포트뿐만 아니라 어드레스가 특정된다. 이런 동작을 실행하는 노드 특정 수단(101) 및 위치 특정 수단(102)으로서, 에이전트라고 불리는 네트워크 리소스 관리 기능이 사용될 수 있다.
도 4에 도시된 테이블은 서비스 정의 메모리 유닛 및 매핑 정보 메모리 유닛으로서 제어기(100)에 의해 유지될 수 있다. 이와 같이 함으로써, 노드 특정 수단(101) 및 위치 특정 수단(102)에서 특정 처리의 속도를 올리는 것이 가능하다. 도 4의 예시적 실시예에서는, 서비스 정의 메모리 유닛 및 매핑 정보 메모리 유닛이 단일 테이블의 의해 구현된다. 그러나 테이블은 2개로 분할될 수도 있으며, 하나는 서비스 정의 메모리 유닛을 제공하기 위해 서비스와 통신 노드 간의 대응 관계를 저장하는 것이고, 다른 하나는 매핑 정보 메모리 유닛을 제공하기 위해 통신 노드와 물리 NW 상의 위치 정보 간의 대응 관계를 저장하는 테이블이다.
패스 설정 수단(103)은 물리 NW의 토폴로지 정보와, 특정된 물리 노드(200)의 포트(포트 번호)뿐만 아니라 어드레스를 사용하여, VM1 내지 VM3 사이에 데이터 패스를 설정한다. 예를 들어, 도 4의 하단에 도시된 바와 같이, VM1 내지 VM3에 대응하는 물리 노드(200)의 포트 간에 데이터 패스가 설정됨으로써, VM1 내지 VM3이 링 형상으로 상호접속된 그런 토폴로지의 가상 네트워크를 구현할 수 있다. 도 4의 하단에서의 양방향 화살 선은 데이터 패스를 나타낸다. 화살 선 중, 물리 노드(200A)와 물리 노드(200B) 사이의 데이터 패스는 물리 노드(210) 상에 플로우 엔트리 또는 경로 정보를 설정함으로써 구현될 수 있다. 토폴로지 정보는 토폴로지 정보를 저장하는 토폴로지 정보 메모리 유닛으로부터 취득될 수 있다.
도 5는 예시적 실시예 1의 제어기(100)의 예시적 동작을 도시하는 흐름도이다.
처음에, 제어기(100)의 노드 특정 수단(101)은 사용자에 의해 요구된 서비스를 제시할 수 있는 하나 이상의 통신 노드를 특정한다(S1-1). 도 1의 예시적 실시예에서, 노드 특정 수단(101)은 사용자에 의해 요구된 서비스(가상 NW)로서 복수의 VM(300)을 특정한다.
다음에, 제어기(100)의 위치 특정 수단(102)은 노드 특정 수단(101)에 의해 특정된 통신 노드의 물리 NW에서의 위치에 관한 정보를 특정한다(S1-2). 도 1의 예시적 실시예에서, 위치 특정 수단(102)은 노드 특정 수단(101)에 의해 특정된 VM(300)의 각각에 대한 물리 NW에서 종단점 정보를 특정한다. 위치 특정 수단(102)은 각각의 VM(300)에 대해, 각각의 VM(300)을 관리하는 물리 노드(200)의 물리 NW 상의 어드레스, 및 각각의 VM(300)에 대응하는 물리 노드(200)의 포트의 포트 번호를 특정한다.
그 후, 패스 설정 수단(103)은 위치 특정 수단(102)에 의해 특정된 통신 노드의 물리 NW에서의 위치에 관한 정보를 사용하여, 물리 NW 상에서 통신 노드 간의 데이터 패스를 설정한다(S1-3). 도 1에 도시된 예시적 실시예에서, 패스 설정 수단(103)은 물리 NW의 토폴로지 정보뿐만 아니라, 위치 특정 수단(102)에 의해 특정된 물리 노드(200)의 어드레스 및 포트(포트 번호)를 사용하여, VM(300) 사이에 데이터 패스(들)를 설정한다. 도 1의 예시적 실시예에서, 복수의 VM이 각각의 별개의 물리 노드(200)에 의해 관리되는 경우, 패스 설정 수단(103)은 개별 물리 노드들(200) 사이에도 데이터 패스(들)를 설정하기 위해 개별 물리 노드들(200) 사이의 통신을 가능하게 하는 경로 정보 또는 플로우 엔트리들의 세트를 물리 노드(210)에 대해 설정하는 것에 유의해야 한다.
상기 설명으로부터 이해되는 바와 같이, 본 발명은 물리 네트워크(물리 NW)가 개별 터널링 프로토콜(예를 들어, VXLAN/NvGRE)에 의해 구성되는 경우라도 바람직하게 적용될 수 있다. 도 6은 본 발명의 예시적 실시예 1의 시스템의 다른 예시적 구성을 도시한다.
도 6을 참조하면, VXLAN(Virtual eXtensible Local Area Network)에 의해 구축된 물리 NW1과, NVGRE(Network Virtualization using Generic Routing Encapsulation)에 의해 구축된 물리 NW2로 이루어지고 게이트웨이(GW)를 통해 물리 NW에 접속되는 구성이 도시되어 있다.
예를 들어, 도 6에 도시된 바와 같이 4개의 VM이 배치되는 가상 네트워크 상의 정보가 "사용자에 의해 요구된 서비스"로서 입력된다고 가정한다(도 6(A)의 "(A) 서비스 정의" 참조). 여기서, 사용자는 물리 네트워크의 상술한 구조의 구성을 알 필요가 없다.
노드 특정 수단(101)은 사용자에 의해 요구된 서비스에 대응하는 통신 노드를 특정한다. 도 6의 예시적 실시예에서, 노드 특정 수단(101)은 3개의 물리 서버(200a 내지 200c) 상에서 동작하는 4개의 VM을 특정한다(도 6의 "(B) 매핑" 참조). 이 단계에서, 사용자는 VM이 어떤 물리 네트워크 상에서 동작하고 있는지를 알 필요가 없다.
위치 특정 수단(102)은 노드 특정 수단(101)에 의해 특정된 4개의 VM의 물리 네트워크에서의 위치에 관한 정보를 특정한다. 도 6의 예시적 실시예에서, 4개의 VM에 관한 정보로서, 4개의 VM의 물리 NW 상의 종단점 정보가 특정된다. 예를 들어, 위치 특정 수단(102)은 4개의 VM이 동작하는 물리 NW 상의 물리 서버(200a 내지 200c)의 어드레스를 특정한다.
다음에, 패스 설정 수단(103)은 특정된 종단점 정보와 물리 네트워크(NW1, NW2)의 토폴로지 정보를 사용하여, 사용자에 의해 요구된, 물리 네트워크(NW1, NW2) 상에 서비스를 구현하는 데이터 패스를 설정한다. 도 6의 예시적 실시예에서, 도 6 하단에 도시된 바와 같이, 물리 NW1 상에서 물리 서버(200A), 물리 스위치(210A) 및 물리 서버(200B)를 상호접속하는 데이터 패스와, 물리 NW2 상에서 물리 스위치(210B)뿐만 아니라 물리 서버(200C)를 게이트웨이(GW)를 통해 상호접속하는 데이터 패스가 설정되어 있다.
상술한 예시적 실시예 1에서, 제어기(100)는 사용자에 의해 요구된 서비스를 구현하기 위해, 사용자에 의해 요구된 서비스에 대응하는 VM(들)과 같은 통신 노드(들)를 특정하고, 물리 네트워크 상의 가상 네트워크 상에 서비스를 구현하기 위해 통신 노드(들)를 물리 NW 상의 위치 정보에 반영시켜 함께 접속한다.
<예시적 실시예 2>
사용자와 관련된 테넌트에 포함되는 네트워크 리소스의 사용을 허용하는 것으로 가정된 본 발명의 예시적 실시예 2에 대해서는 이하 도면을 참조하여 상세하게 설명될 것이다. 예시적 실시예 2에서는, 사용자로부터 서비스에 관한 요구가 수신된 경우, 사용자와 관련된, 테넌트에 포함되는 VM(들)과 같은 통신 노드(들)가 특정된다. 통신 노드(들)는 물리 NW 상의 위치 정보에 반영되어 통신 노드 간의 물리 NW 상에 데이터 패스(들)를 설정하게 된다. 따라서 사용자에 의해 요구된 가상 네트워크 상의 서비스를 물리 네트워크 상의 위치 정보 및 그 기능 구현 수단에 반영시킴으로써, 물리 네트워크 상의 가상 네트워크 상에 서비스를 구현하는 것이 가능해진다.
도 7은 본 발명의 예시적 실시예 2에 따른 시스템의 예시적 구성을 도시한다. 제어기(100A)는 예시적 실시예 1의 제어기와 거의 동일한 구성이며, 노드 특정 수단(101), 위치 특정 수단(102) 및 패스 설정 수단(103)을 포함한다. 이하, 예시적 실시예 1과의 차이점을 중심으로 설명한다.
도 8은 본 예시적 실시예의 제어기(100A)에 의해 유지되는 예시적 테이블을 도시한다. 테이블은 테넌트 정의 메모리 유닛 및 매핑 정보 메모리 유닛에 상당한다. 도 8을 참조하면, 테넌트, 통신 노드(예를 들어, VM), 및 통신 노드를 관리하는 물리 노드의 위치 정보를 서로 상관시킨 테이블이 도시되어 있다.
노드 특정 수단(101)은 사용자에 의해 요구된 서비스를 구현하는데 필요한 리소스를 인덱싱한다. 예로서, 노드 특정 수단(101)은 사용자에 의해 요구된 서비스를 구현하는데 필요한 리소스의 종류를 인덱싱한다. 노드 특정 수단(101)은 사용자에 의해 요구된 서비스를 구현하는데 필요한 리소스를, 사용자와 관련된 테넌트에 포함되는 리소스 중에서 특정한다. 노드 특정 수단(101)은 리소스의 종류에 추가하여 필요한 리소스의 볼륨을 또한 인덱싱한다. 도 8의 예시적 실시예에서, 사용자로부터 요구된 서비스에 필요한 리소스로서, 사용자와 관련된 테넌트에 포함되는 VM 중에서, 도 7에 도시된 VM1 내지 VM4가 특정된다. 노드 특정 수단(101)은 테넌트 1과, 사용자로부터 요구된 서비스를 수행하는데 필요한 VM1 내지 VM4의 각각을 고유하게 식별할 수 있는 VM 식별자를 상관시킨다. 사용자로부터 요구된 서비스를 수행하는데 필요한 리소스는, 예를 들어 서버, 스토리지, 또는 네트워크 로드와 같은 ICT(Information and Communication Technology) 리소스인 것에 유의해야 한다. 리소스는 VM을 사용해서 가상적으로 구현될 수 있는 가상 리소스일 수 있거나, 물리 리소스일 수도 있다. 또한, 네트워크 노드는, 예를 들어 스위치, 라우터, 파이어월, 또는 로드 밸런서와 같은, 네트워크의 구축에 필요한 기능을 제공하는 디바이스인 것에 유의해야 한다.
위치 특정 수단(102)은 VM1 내지 VM4의 물리 NW 상의 위치에 관한 정보를 인덱싱한다. 위치 특정 수단(102)은 물리 NW 상의 VM1 내지 VM4의 어드레스뿐만 아니라 VM1 내지 VM4와 상관된 포트의 포트 번호를 인덱싱한다. 위치 특정 수단(102)은 VM1 내지 VM4의 물리 NW 상의 위치에 관한 정보로서, VM1 내지 VM4의 어드레스 또는 VM1 내지 VM4이 접속되는 가상 스위치의 어드레스뿐만 아니라 포트 번호를 특정할 수도 있다.
도 8에 도시된 바와 같이, 위치 특정 수단(102)은 VM1 내지 VM4의 VM 식별자, VM1 내지 VM4를 구현하는 물리 노드(들)(200)의 어드레스, 및 VM1 내지 VM4에 대응하는 물리 노드(들)(200)의 포트의 포트 번호를 서로 상관시킨다.
패스 설정 수단(103)은 물리 NW의 토폴로지 정보뿐만 아니라, 특정된 물리 노드(200)의 어드레스 및 포트를 사용하여, VM1 내지 VM4 사이에 데이터 패스를 설정한다. 예를 들어, 도 7의 하단에 도시된 바와 같이, VM1 내지 VM4와 상관된 물리 노드(200)의 포트 간에 데이터 패스를 설정함으로써 VM1 내지 VM4가 서로 통신하는 것이 가능해진다.
도 7의 예시적 실시예에서는, 패스 설정 수단(103)이 VM1과 VM2를 관리하는 물리 노드(200A)와, VM3과 VM4를 관리하는 물리 노드(200B) 사이에 데이터 패스를 설정하는 것에 유의해야 한다. 이에 의해, 사용자에 의해 요구된 서비스에 포함되는 VM1 내지 VM4의 일부 또는 전부가 각각의 개별 물리 노드(200) 상에서 동작하는 경우라도, VM1 내지 VM4 사이의 통신이 가능해진다.
도 9는 예시적 실시예 2에 따른 제어기(100A)의 예시적 동작을 도시하는 흐름도이다.
처음에, 제어기 A의 노드 특정 수단(101)은 사용자에 의해 요구된 서비스를 구현하는데 필요한 하나 이상의 통신 노드를 특정한다(S2-1). 도 7의 예시적 실시예에서, 노드 특정 수단(101)은 사용자에 의해 요구된 서비스에 필요한 리소스로서, 사용자에 대응하는 테넌트에 포함되는 VM1 내지 VM4를 특정한다.
다음에, 제어기(100A)의 위치 특정 수단(102)은 노드 특정 수단(101)에 의해 특정된 통신 노드(들)의 물리 NW에서의 위치에 관한 정보를 특정한다(S2-2). 도 7의 예시적 실시예에서, 위치 특정 수단(102)은 노드 특정 수단(101)에 의해 특정된 VM1 내지 VM4를 구현하는 물리 노드(들)(200)의 어드레스, 및 VM1 내지 VM4와 상관된 물리 노드(들)(200)의 포트의 포트 번호를 특정한다.
그 후, 제어기(100A)의 패스 설정 수단(103)은 위치 특정 수단(102)에 의해 특정된 통신 노드(들)의 물리 NW에서의 위치에 관한 정보를 사용하여, 물리 NW 상의 통신 노드 간에 데이터 패스(들)를 설정한다(S2-3). 도 7의 예시적 실시예에서, 패스 설정 수단(103)은 물리 NW의 토폴로지 정보와, 위치 특정 수단(102)에 의해 특정된 물리 노드(들)(200)의 어드레스 및 포트(포트 번호)를 사용하여, VM1 내지 VM4 사이의 데이터 패스(들)를 설정한다. 그때, 패스 설정 수단(103)은 물리 노드(200A 및 200B)간의 통신을 허용하는 플로우 엔트리 또는 전송 정보를 물리 노드(210)에 설정하여 물리 노드(200) 간에 데이터 패스(들)를 설정한다.
도 10은 제어기(100A)가 복수의 리소스를 관리하는 경우에 제어기(100A)의 예시적 구성을 도시한다. 도 10을 참조하면, 제어기(100A)는 관리된 리소스의 일부를 사용하여 사용자에 의해 요구된 서비스를 제공한다. 예를 들어, 제어기(100A)는 다수의 리소스를 저장하고 있고, 그렇게 저장된 리소스 중에서 사용자에 의해 요구된 서비스에 필요한 하나 이상을 선택한다.
제어기(100A)의 노드 특정 수단(101)은 사용자에 의해 요구된 서비스에 필요한 리소스를 인덱싱한다. 노드 특정 수단은 인덱싱된 리소스 중에서 제어기에 의해 관리되고 사용자에 대응하는 테넌트에 포함되는 리소스를 선택한다. 예로서, 노드 특정 수단(101)은 복수의 VM을 관리하고, 그렇게 관리된 VM 중에서 사용자에 의해 요구된 서비스에 필요한 VM(들)을 선택한다. 그런데, 노드 특정 수단에 의해 관리되는 다수의 리소스는 물리 리소스를 포함할 수 있다.
노드 특정 수단(101)은 VM을 사용해서 구현되는 기능마다 복수의 VM을 관리한다. 예를 들어, 스위치, 라우터, 파이어월, 또는 로드 밸런서와 같은 네트워크 기능은 VM(들)을 사용해서 구현되는 기능 중에 있다. 노드 특정 수단은 네트워크 기능이 VM에 의해 가상적으로 구현되는 것을 나타내는, 가상 스위치, 가상 라우터, 가상 파이어월, 가상 로드 밸런서를 관리한다. VM에 의해 구현되는 기능은 스토리지 또는 메모리 기능일 수도 있다. 노드 특정 수단(101)은 물리 서버 내의 디스크나 드라이브를 추상화하여, 디스크나 드라이브를 가상적으로 구현된 스토리지 풀로서 관리한다. VM을 사용하여 구현되는 기능은 다양한 애플리케이션 또는 데스크톱 중 임의의 것일 수도 있다. 노드 특정 수단은 VM을 사용하여 가상적으로 구현된 다양한 애플리케이션 또는 데스크톱 중 임의의 것을 관리할 수 있다.
노드 특정 수단(101)이 사용자에 의해 요구된 서비스를 제공하는데 로드 밸런서가 필요하다고 인덱싱한 경우, 노드 특정 수단은 노드 특정 수단이 관리하고 있으며 해당 사용자에 대응하는 테넌트에 포함되는 가상 로드 밸런서를 해당 테넌트에 대해 선택한다.
노드 특정 수단(101)이 사용자에 의해 요구된 서비스를 수행하는데 필요한 리소스를 미리 저장된 리소스로부터 특정한 후, 위치 특정 수단(102) 및 패스 설정 수단(103)에 의해 수행된 처리는, 도 7에 도시된 위치 특정 수단(102) 및 패스 설정 수단(103)에 의해 수행된 처리와 동일하다. 따라서, 본 명세서에서는 간략화를 위해 상세한 설명은 생략된다.
상술한 본 예시적 실시예에서, 제어기(100A)는 사용자에 의해 요구된 서비스를 구현하기 위해, 사용자에 의해 요구된 서비스를 수행하기 위한, VM과 같은 통신 노드(들)를 특정하고, 통신 노드(들)가 물리 NW 상의 위치 정보에 반영되어 물리 NW 상의 통신 노드 간에 데이터 패스(들)를 설정하게 된다. 따라서 사용자에 의해 요구된 가상 네트워크 상의 서비스가 물리 네트워크 상의 위치 정보 및 그 기능 구현 수단에 반영되게 하고, 관련 상호 접속을 수행함으로써, 물리 네트워크 상의 가상 네트워크에서 서비스를 구현하는 것이 가능해진다.
<예시적 실시예 3>
예시적 실시예 1의 제어기(100) 또는 예시적 실시예 2의 제어기(100A)가 VM 관리 기능에 추가되는 예시적 실시예 3에 대해서는 이하 도면을 참조하여 상세히 설명한다.
예시적 실시예 3에서는, 제어기(100)가 VM을 관리하는 기능을 갖는다. 따라서, 사용자에 의해 요구된 서비스에 대한 미리 설정된 리소스의 추가 요구를 수신할 때, 미리 설정된 리소스에 대응하는 VM(들)을 기동하는 것이 가능하다. 제4 수단에 의해, VM(들)이 새롭게 기동된다. 제어기(100)는 그 노드 특정 수단에 의해, 패스 설정 수단을 통해 새롭게 기동된 VM(들)의 통신 노드(들)를 특정하고, 통신 노드(들)가 물리 NW 상의 위치 정보에 반영되게 하고, 그에 의해 물리 NW 상의 데이터 패스(들)를 설정한다. 따라서, 예시적 실시예 3에서는, 사용자가 리소스의 추가를 요구한 경우에, 리소스의 추가를 구현하기 위해 VM(들)을 추가하고, 리소스의 추가의 결과로서 필요해질 수 있는 물리 NW에서 설정을 수행하는 것이 가능하다.
도 11은 본 발명의 예시적 실시예 3에 따른 제어기의 구성을 도시한다. 도 11을 참조하면, 제어기(100F)의 제어 유닛(110)은 노드 특정 수단(101), 위치 특정 수단(102) 및 패스 설정 수단(103)에 추가하여, 노드 요구 수단(104)(제4 수단)을 포함한다. 이하의 설명은 예시적인 실시예 1 및 2와의 차이점을 중심으로 한다.
노드 요구 수단(104)은 노드 특정 수단(101)으로부터의 요구에 응답하여, 서비스를 제공하는데 필요한 VM(들)을 기동하고, VM(들)에 관한 정보를 노드 특정 수단(101)에 전달한다. 노드 요구 수단(104)은 물리 서버(200) 측에서 VM(들)을 관리하는 하이퍼바이저나 VM 매니저(VMM)와 같은 제어 프로그램에 필요한 지시를 제공하는 인터페이스에 의해 구현될 수 있다. 본 예시적 실시예에서는 노드 요구 수단(104)이 VM(들)을 기동하는 것으로서 가정했지만, 노드 요구 수단(104)에 의해 기동되는 통신 노드는 반드시 VM일 필요는 없음에 유의해야 한다. 예를 들어, 노드 요구 수단(104)이 슬립 상태에 있는 물리 서버를 기동함으로써, 서비스의 제공에 필요한 리소스를 확보하는 구성도 사용될 수 있다. 또는, 노드 요구 수단(104)에는 리소스를 해방하기 위해 사용하지 않는 VM(들)을 종료시키는 기능이 제공될 수 있다.
도 12는 예시적 실시예 3의 시스템에 따른 예시적 구성을 도시한다. 도 12에 도시된 바와 같이, 사용자가 리소스의 추가를 요구하고, 적임 통신 노드가 존재하지 않은 경우, 노드 특정 수단(101)은 노드 요구 수단(104)에게 추가된 리소스에 적임인 VM(들)의 기동을 요구한다. 예를 들어, 노드 특정 수단(101)은, 미리 설정된 리소스(예를 들어, 메모리)의 추가가 테넌트에 대응하는 사용자에 의해 요구된 경우, 노드 요구 수단에게 미리 설정된 리소스를 구현하기 위해 VM(들)을 기동하도록 요구한다.
요구의 수신시, 노드 요구 수단(104)은 도 12의 우측에 도시된 물리 서버 상에서 새로운 VM(들)(예를 들어, 도 12의 VM5 참조)을 기동하고, 그런 효과를 노드 특정 수단(101)에 통지한다. 노드 요구 수단(104)은, 기동의 완료에 응답하여, 기동의 완료를 노드 특정 수단(101)에 통지한다. 노드 요구 수단(104)은 VM의 기동의 완료를 노드 특정 수단(101)에 통지할 뿐만 아니라, 기동된 VM(들)에 관한 정보(예를 들어, 기동된 VM(들)의 식별자)를 전달할 수 있다. 노드 특정 수단(101)은 사용자의 요구와 관련된 서비스에 포함되는 가상 노드로서, 새롭게 기동된 VM(들)을 특정한다. 예를 들어, 노드 특정 수단(101)은 새롭게 기동된 VM5를 미리 설정된 테넌트(사용자에 대응하는 테넌트)와 상관시킨다.
위치 특정 수단(102)은 노드 요구 수단(104)에 의해 추가된 VM5의 물리 NW 상의 위치에 관한 정보(예를 들어, 물리 NW 상의 종단점에 관한 정보)를 특정한다. 예를 들어, 위치 특정 수단(102)은, VM5가 동작하는 물리 노드(200C)의 어드레스와, 물리 노드(200C)의 포트 중 VM5과 상관된 포트를 특정한다.
패스 설정 수단(103)은 VM1 내지 VM5 사이에 데이터 패스를 설정함과 동시에, 물리 노드(200A)와 물리 노드(200C) 사이의 통신뿐만 아니라, 물리 노드(200B)와 물리 노드(200C) 사이의 통신을 가능하게 하는 플로우 엔트리들의 세트 또는 전송 정보를 물리 노드(210)에 대해 설정한다. 이에 의해, VM1 내지 VM4 사이의 통신을 구현하는데 필요한 "물리 NW 상의 통신"이 가능하게 된다.
도 13은 예시적 실시예 3의 제어기(100F)의 예시적 동작을 도시하는 흐름도이다.
사용자가 제어기(100F)의 노드 특정 수단(101)에게 미리 설정된 리소스(예를 들어, 메모리)의 추가를 요구한 경우, 노드 특정 수단은 노드 요구 수단에게 미리 설정된 리소스를 구현하는 VM(들)을 기동하도록 요구한다(S3-1). 도 12의 예시적 실시예에서, 노드 특정 수단은 사용자로부터 메모리 추가 요구가 있는 경우에, 노드 요구 수단에게 스토리지 기능을 제공하는 VM을 기동하도록 요구한다.
노드 요구 수단(104)은 노드 특정 수단(101)으로부터의 요구에 응답하여, 요구된 미리 설정된 리소스를 구현하는 VM을 기동하고, 기동이 완료된 사실을 노드 특정 수단(101)에 통지한다(S3-2). 도 12의 예시적 실시예에서, 노드 요구 수단(104)은 노드 특정 수단(101)으로부터 메모리 추가 요구에 응답하여, 메모리 기능을 제공할 수 있는 VM을 기동한다.
노드 특정 수단(101)은 노드 요구 수단(104)으로부터 통지를 수신할 때, 새롭게 추가된 VM(들)을 특정한다(S3-3). 도 12의 예시적 실시예에서, 노드 특정 수단(101)은 새롭게 기동된 VM5를 미리 설정된 테넌트(사용자에 대응하는 테넌트)와 상관시킨다.
위치 특정 수단(102)은 노드 요구 수단에 의해 추가된 VM의 물리 NW 상의 위치에 관한 정보를 특정한다(S3-4). 이 정보는, 예를 들어 물리 NW 상의 종단점 정보일 수 있다. 도 12의 예시적 실시예에서, 위치 특정 수단(102)은 VM5와 상관되는, 물리 노드(200C)의 어드레스 및 물리 노드(200C)의 포트를 특정한다.
패스 설정 수단(103)은 기존의 VM1 내지 VM4와, 새롭게 기동된 VM5 사이에 데이터 패스를 설정한다(S3-5).
전술한 예시적 실시예 3의 제어기는 통신 노드(들)(예를 들어, VM(들))의 추가나 삭제를 실행하는 VM 관리 기능(노드 요구 수단)을 포함한다. 따라서, 예를 들어 사용자로부터 리소스의 추가를 요구받은 경우, 사용자에 의해 요구된 가상 네트워크 상의 서비스는 사용자에 의해 요구된 가상 네트워크 상의 서비스를 그 기능 구현 수단과 물리 네트워크 상의 위치 정보에 반영하고, 관련 상호접속을 수행함으로써, 물리 네트워크 상에 다시 구현될 수 있다.
<예시적 실시예 4>
멀티 테넌트 환경에 본 발명을 적용한 예시적 실시예 4에 대해서는 도면을 참조하여 이하 상세하게 설명한다. 도 14는 본 발명의 예시적 실시예 4에 따른 시스템의 예시적 구성을 도시한다. 도 14를 참조하면, 제어기(100B)가 복수의 테넌트(테넌트 1 및 2)를 관리하는 구성이 도시되어 있다. 제어기(100B)의 기본 구성은 상술한 예시적 실시예 2 또는 3과 동일하기 때문에, 이하에서는 이들 예시적 실시예와의 차이점을 중심으로 설명한다.
제어기(100B)는 도 11에 도시된 예시적 실시예 3의 제어기(100F)와 구성이 대략 동일하고, 노드 특정 수단(101), 정보 특정 수단(102) 및 패스 설정 수단(103)을 포함한다.
도 15는 본 예시적 실시예의 제어기(100B)에 의해 유지되는 예시적 테이블을 도시한다. 도 15를 참조하면, 테넌트(들), 통신 노드(들) 및 물리 노드의 위치 정보를 서로 상관시킨 테이블이 도시되어 있다. 노드 특정 수단(101)은 사용자의 요구에 응답하여, 사용자의 요구와 관련된 서비스를 구현하는데 필요한 리소스를 인덱싱한다. 예를 들어, 노드 특정 수단은 사용자 A로부터의 요구에 응답하여 파이어월, 메모리 및 스위치가 필요하고, 테넌트 2에 대해서는 로드 밸런서, 메모리 및 스위치가 필요하다고 인덱싱한다. 노드 특정 수단(101)은 사용자 A로부터 서비스 A에 관한 요구를 수신하고, 사용자 B로부터 서비스 B에 관한 요구를 수신한다. 노드 특정 수단(101)은 동일한 사용자로부터, 서비스 A 및 서비스 B에 관한 요구를 수신할 수도 있음에 유의해야 한다. 노드 특정 수단(101)은 각각의 다른 타이밍에서 서비스 A 및 서비스 B에 관한 요구를 수신하는 것이 가능하다.
도 15의 예시적 실시예에서, 노드 특정 수단(101)은 서비스 A에 대해, 사용자 A에 대응하는 테넌트 1에 포함되는 VM(들)으로부터, 도 14에 도시된 VM1, VM3 및 VM4를 특정한다. 또한, 노드 특정 수단(101)은 또한 서비스 B에 대해, 사용자 B에 대응하는 테넌트 2에 포함되는 VM(들)으로부터, 도 14에 도시된 VM2, VM5 및 VM6을 특정한다. 구체적으로, 노드 특정 수단(101)은 서비스 A에 대해, VM1, VM3 및 VM4의 각각의 식별자를 테넌트 1과 상관시키고, 서비스 B에 대해, VM2, VM5 및 VM6의 각각의 식별자를 테넌트 2와 상관시킨다.
위치 특정 수단(102)은 물리 NW 내의 노드 특정 수단(101)에 의해 특정된 VM1 내지 VM6의 각각이 어느 물리 노드의 어느 종단점에 접속되어 있는지를 인덱싱한다. 도 15의 예시적 실시예에서, 위치 특정 수단(102)은 VM1 내지 VM6을 관리하는 물리 노드(200)의 어드레스와, VM1 내지 VM6과 상관된 물리 노드(200)의 포트의 포트 번호를 인덱싱한다.
패스 설정 수단(103)은 물리 NW의 토폴로지 정보와, 위치 특정 수단(102)에 의해 특정된 물리 노드(200)의 어드레스 및 포트를 사용하여, VM1, VM3 및 VM4가 기동된 물리 노드(200) 사이와, VM2, VM5 및 VM6 사이에 데이터 패스를 설정한다. 예를 들어, 도 14의 하단에 도시된 바와 같이, VM1, VM3 및 VM4 사이에 데이터 패스를 설정함으로써, 테넌트 1에 포함되는 VM1, VM3 및 VM4가 서로 통신하는 것이 가능해진다. 마찬가지로, VM2, VM5 및 VM6 사이에 데이터 패스를 설정함으로써, 테넌트 2에 포함되는 VM2, VM5 및 VM6이 서로 통신하는 것이 가능해진다.
예시적 실시예 4의 제어기(100B)는, 예시적 실시예 3의 제어기와 마찬가지로, 노드 요구 수단(104)을 포함할 수도 있음에 유의해야 한다. 예시적 실시예 3의 제어기에서와 같이, 노드 특정 수단(101)으로부터의 요구가 있었던 경우, 노드 요구 수단(104)은 서비스의 제시에 필요한 VM을 기동하고, 그 VM에 대한 정보를 노드 특정 수단(101)에 전달한다. 노드 요구 수단(104)에 의한 처리는 도 11에 도시된 예시적 실시예 3의 노드 요구 수단(104)에 의해 수행되는 처리와 유사하기 때문에, 여기서 상세한 설명은 간략화를 생략된다.
전술한 바와 같이, 본 발명은 멀티 테넌트 환경에서 테넌트의 구축에 적용될 수 있다. 도 14의 예시적 실시예에서는 단일 물리 네트워크 상에 2개의 테넌트를 구축하고 있지만, 본 발명은 도 16에 도시한 바와 같이, 각각의 하나의 물리 네트워크와 각각의 하나의 테넌트가 일대일 대응관계로 배열되어 있는 멀티 테넌트 환경에도 적용될 수 있다.
도 16은 예시적 실시예 4의 다른 예시적 구성을 나타내는 도시한다. 도 16을 참조하면, 제어기(100C)의 노드 특정 수단(101)은 사용자에 의해 요구된 서비스 1에 대해, 테넌트 1에 포함되고 물리 NW1에 배치되는 VM1 내지 VM3을 특정한다. 또한, 제어기(100C)의 노드 특정 수단(101)은 사용자에 의해 요구된 서비스 2에 대해, 테넌트 2에 포함되고 물리 NW2에 배치되는 VM4 내지 VM6을 특정한다. 구체적으로, 노드 특정 수단(101)은 사용자에 의해 요구된 서비스 1에 대해, VM1 내지 VM3의 각각의 식별자를 테넌트 1과 상관시키고, 사용자에 의해 요구된 서비스 2에 대해, VM4 내지 VM6의 각각의 식별자를 테넌트 2와 상관시킨다.
위치 특정 수단(102)은 노드 특정 수단(101)에 의해 특정된 VM1 내지 VM3을 구현하는 물리 노드(200)의 어드레스와, VM1 내지 VM3과 상관된 물리 노드(200)의 포트의 포트 번호를 인덱싱한다. 마찬가지로, 위치 특정 수단(102)은 노드 특정 수단(101)에 의해 특정된 VM4 내지 VM6을 구현하는 물리 노드(200)의 어드레스와, VM4 내지 VM6과 상관된 물리 노드(200)의 포트의 포트 번호를 인덱싱한다.
패스 설정 수단(103)은 위치 특정 수단(102)에 의해 특정된 물리 노드(200)의 어드레스 및 포트를 사용하여, VM1 내지 VM3이 기동된 물리 노드(200) 사이에 데이터 패스(들)를 설정한다. 또한, 패스 설정 수단(103)은 위치 특정 수단(102)에 의해 특정된 물리 노드(200)의 어드레스 및 포트를 사용하여, VM4 내지 VM6이 기동된 물리 노드(200) 사이에 데이터 패스(들)를 설정한다.
상술한 바와 같이, 본 발명은 멀티 테넌트 환경에서 테넌트의 구축에도 적용될 수 있다.
<예시적 실시예 5>
사용자에 의해 요구된 가상 네트워크 기능(VNF)을 구축하는 본 발명의 예시적 실시예 5에 대해서는 이하 도면을 참조하여 상세하게 설명한다. 도 17은 본 발명의 예시적 실시예 5에 따른 예시적 시스템 구성을 도시한다. 도 18은 예시적 실시예 5에 따른 제어기의 예시적 구성을 도시한다. 도 17 및 도 18을 참조하면, 제어기(100D)는 예시적 실시예 5의 제어기와 유사한 구성이며, 제어기(100D)의 제어 유닛(110D)은 노드 특정 수단(101D), 위치 특정 수단(102D), 패스 설정 수단(103D) 및 노드 요구 수단(104D)을 포함한다.
노드 특정 수단(101D)은 사용자로부터 VNF에 대한 요구를 수신할 때, VNF와 상관된 VM을 특정한다. 이때, 사용자에 의해 요구된 VNF를 구현할 수 있는 VM이 기동되지 않은 경우, 노드 요구 수단(104D)에게 필요한 VM을 기동하도록 요구한다.
위치 특정 수단(102D)은 노드 특정 수단(101D)에 의해 특정된 VM(300)의 물리 NW에서의 위치에 관한 정보를 특정한다. 위치 특정 수단(102D)은 VM1 내지 VM3이 동작 중인 물리 노드(200)의 어드레스와, VM1 내지 VM3과 상관된 물리 노드(200)의 포트의 포트 번호를 특정한다.
패스 설정 수단(103D)은 물리 NW의 토폴로지 정보와, 위치 특정 수단(102D)에 의해 특정된 VM(들)의 물리 네트워크에서의 위치에 관한 정보를 사용하여, 물리 NW 상에서 물리 네트워크 상의 사용자에 의해 요구된 VNF를 구현하는 데이터 패스(들)를 설정한다.
노드 요구 수단(104D)은 노드 특정 수단(101D)으로부터의 요구에 응답하여, 물리 서버(200) 상에 VNF를 제공하는데 필요한 VM을 기동하고, VM(들)에 대한 정보를 노드 특정 수단(101D)에 전달한다. 노드 특정 수단은 기동된 VM(들)의 식별자를 노드 특정 수단(101D)에 전달한다.
이하에서는, 노드 요구 수단(104D)이 VM(들)을 기동하는 방식에 대해 설명한다. 도 19는 도 17에 도시된 물리 노드(200)의 상세 구성을 도시한다. 물리 노드(200)는 가상 네트워크 기능을 제공하는 가상 머신을 관리한다. 가상 네트워크 기능 중에는, 파이어월(Firewall)(FW), 딥 패킷 검사(Deep Packet Inspection)(DPI), 로드 밸런서(Load Balancer)(LW)의 기능이 있다.
통신 노드(200)는, 예를 들어 서버, 스위치, 라우터일 수 있다. 통신 노드(200)는 가상 네트워크에서 가상 네트워크 노드(예를 들어, 가상 SGW(Serving Gateway), 가상 PGW(Packet data network Gateway), 가상 MME(Mobility Management Entity))의 기능을 제공하는 가상 머신을 관리한다.
각각의 가상 네트워크 노드는 다수의 기능을 갖는다. 이들은, 가상 PGW: 패킷을 처리하는 기능(사용자 평면 기능); 통신에 따른 과금 상태를 관리하는 기능(Policy and Charging Enforcement Function)(PCEF); QoS(Quality of Service)와 같은 정책을 제어하기 위한 정책 및 과금 규칙 기능(Policy and Charging Rule Function)(PCRF); 가상 SGW를 처리하는 기능: 패킷 처리 기능(사용자 평면 기능); 제어 시그널링을 처리하는 기능(C-평면 기능); 합법적 감청(Lawful Interception unction)(LI); 가상 MME: 제어 시그널링을 처리하는 기능 또는 C-평면 기능; 및 홈 가입자 서버(Home Subscriber Server)(HSS)와 협력하여 동작하는 통신 시스템에 대한 가입자 정보를 관리하는 기능을 포함한다.
물리 노드(200)는 가상 네트워크 기능(VNF)을 구축할 수 있는 제어 유닛(110)을 포함한다. 제어 유닛(110)은 VNF(220)를 가상 머신 상에서 관리함으로써, 가상 네트워크 노드의 기능을 제공한다. 제어 유닛(110)은 컴퓨터 가상화를 구현할 수 있는 제어 프로그램(예를 들어, 하이퍼바이저)에 의해 구성될 수 있다.
제어 유닛(110)은 노드 요구 수단(104D)으로부터의 지시에 응답하여, VNF(220)를 관리하는 가상 머신의 기동, 정지, 이행과 같은 동작을 수행한다. VM을 이행하는 동작은 가상 머신을 별개의 통신 디바이스(100)로 이행한다.
VNF(220) 및 VM은 반드시 서로에 대해 일대일 대응관계에 있지 않음에 유의해야 한다. 예를 들어, 가상 PGW를 구현하고자 하는 경우, 도 20의 좌측에 나타낸 바와 같이, PGW의 기능에 포함되는 과금에 관한 기능을 갖는 VM1은 PGW의 기능에 포함되는 QoS(Quality of Service)와 같은 정책 제어를 수행하는 VM2와 독립적으로 기동될 수 있다(기능별 VM). 물론, 도 20의 우측에 나타낸 바와 같이, 가상 PGW의 기능을 갖는 VM3에 의해 가상 PGW를 구현할 수도 있다(어플리언스형 VM).
본 예시적 실시예의 동작에 대해서는 이하 도면을 참조하여 상세하게 설명한다. 도 21은 본 발명의 예시적 실시예 5에 따른 예시적 시스템 구성을 도시한다. 도 22는 본 발명의 예시적 실시예 5의 예시적 동작을 도시하는 흐름도이다. VNF1과 VNF2를 상호링크하여 서비스 체인을 구성하라는 요구가 사용자로부터 이루어진 것으로 가정한다. 또한 초기 상태에서 VM 중 어느 것도 기동되지 않은 것으로 가정한다. 상술한 예시적 실시예와 마찬가지로, 사용자는 물리 네트워크 또는 VM의 기동 상태의 구성을 알 필요가 없다.
노드 특정 수단(101D)은 노드 요구 수단(104D)에게 사용자에 의해 요구된 VNF1 및 VNF2와 상관된 VM(들)을 기동하도록 요구한다(S4-1). 노드 요구 수단(104D)은 노드 특정 수단(101D)으로부터의 요구에 응답하여, 물리 노드에게 VM을 기동하도록 요구한다(도 21의 "VM 기동"; 도 22의 S4-1).
이에 의해, 도 21의 하단에 도시된 바와 같이 VM1 내지 VM3이 기동된다. 노드 요구 수단(104D)은 VM의 기동에 응답하여, VM 기동의 완료를 노드 특정 수단(101D)에 통지한다(S4-2). 노드 특정 수단(101D)은 노드 요구 수단(104D)으로부터의 VM 기동의 완료 통지에 응답하여, 기동된 VM1 내지 VM3을 특정한다(S4-3). 다음에, 위치 특정 수단(102D)은 노드 특정 수단(101D)에 의해 특정된 3개의 VM1 내지 VM3의 물리 네트워크에서의 위치에 관한 정보를 특정한다(S4-4).
다음에, 패스 설정 수단(103D)은 VM1 내지 VM3의 물리 네트워크에서의 위치에 관한 정보와, 물리 NW의 토폴로지 정보를 사용하여, VM1 내지 VM3 사이에 데이터 패스(들)를 설정한다(S4-5). 또한, 패스 설정 수단(103D)은 VM1 내지 VM3이 이미 기동되어 있는 물리 노드(200) 간의 통신을 허용하기 위해 플로우 엔트리 또는 경로 정보를 물리 노드(210)에 설정한다. 이에 의해, 사용자에 의해 요구된 서비스 체인 및 VNF를 구현하는데 필요한 물리 네트워크(NW) 상의 데이터 패스가 설정된다.
따라서, 본 예시적 실시예에서, 도 21의 하단에 도시된 서비스 체인은 어드레스 또는 리소스의 지정 없이, 사용자에 의해 요구된 서비스 체인 또는 VNF를 기능 구현 수단(VM)과, 물리 네트워크 상의 위치 정보에 반영시키고 관련 상호접속을 수행함으로써 구현될 수 있다.
동일한 물리 노드 상에서 동작하는 VNF(VM) 간의 데이터 패스(들)는 물리 노드(200) 내에 제공된 제어 유닛(110)에 내장된 패스 제어 유닛(2101)에 지시함으로써 구현될 수 있음에 유의해야 한다.
도 23은 본 발명의 예시적 실시예 5의 제어기(100D)와 협력하여 동작하는 물리 노드(200)에 설정된 예시적 데이터 패스를 도시하는 개략도이다. 도 23의 예시적 실시예에서, 제어 유닛(110)은 신호(1)에 대해서는, VNF(A), VNF(B) 및 VNF(C)를 경유하는 VNF 패스를 설정하는 반면, 신호(2)에 대해서는, VNF(A) 및 VNF(B)를 경유하는 VNF 패스를 설정하고 있다.
구체적으로, 제어 유닛(110)의 패스 제어 유닛(2101)은 도 23에서 나타낸 바와 같이, 신호의 종별에 따라서 경로(들) 상에 신호를 전송한다.
상기 신호의 종별과 관련하여, 패킷은 VNF(200)에 할당된 MAC 어드레스 또는 IP 어드레스에 기초하여 전송될 수 있다. 전송 경로는 패킷을 전송하는 가상 접속인 "베어러(bearer)"의 종별 또는 패킷 내의 정보에 기초하여 판별될 수 있는 패킷의 속성을 사용해서 변경될 수 있다.
패스 제어 유닛(2101)이 사용자(단말 1)에서의 통신량, 통신 시스템의 통신의 부하 또는 양 또는 서버(20) 상의 부하 상태에 기초하여 VNF 패스를 제어하게 할 수도 있다. 마찬가지로, 베어러의 통신량에 따라서, 베어러에 속하는 패킷의 VNF 패스가 제어될 수 있다. 통신량이 미리 설정된 임계값을 초과한 것에 따라서, VNF 패스가 또한 변경될 수 있다.
패스 제어 유닛(2101)이 VM 상의 부하 상태에 따라서, VNF 패스를 구성하는 VNF(200)를 선택하게 할 수도 있다. 패스 제어 유닛(2101)이 가상 머신의 부하가 낮고 동일한 기능을 포함하는 VNF(200)를 우선적으로 선택함으로써 그렇게 선택된 VNF 패스를 전환시킬 수도 있다.
패스 제어 유닛(2101)은 소프트웨어에 의해 구성되는 가상 스위치(vSwitch)에 의해 구성될 수 있다. 이 경우, 패스 설정 수단(103D)은 패스 제어 유닛(2101)으로서 동작하는 스위치에 경로 정보 또는 플로우 엔트리를 설정한다.
전술한 바와 같이, 본 발명은 네트워크 기능의 가상화를 구현하는 시스템에 유리하게 적용될 수 있다.
<예시적 실시예 6>
사용자에 의해 요구된 서비스 체인을 구축하는 본 발명의 예시적 실시예 6에 대해서는 이하 도면을 참조하여 상세하게 설명한다. 도 24는 본 발명의 예시적 실시예 6에 따른 시스템의 예시적 구성을 도시한다. 도 25는 본 예시적 실시예의 제어기(100A)에 의해 유지되는 예시적 테이블을 도시한다. 테이블은 테넌트 정의 메모리 유닛 및 매핑 정보 메모리 유닛에 상당한다. 도 25에 도시된 테이블은 서비스 체인(들), 서비스 체인에 필요한 VNF(들), VNF와 상관된 VM(들), 및 VM을 관리하는 물리 노드의 위치 정보를 서로 상관시킨다. 본 예시적 실시예는 VNF를 관리하는 예시적 실시예 5와 유사한 구성에 의해 구현될 수 있기 때문에, 이하 예시적 실시예 5와의 차이점을 중심으로 설명한다.
본 예시적 실시예의 제어기는 예시적 실시예 5의 제어기(100D)와 유사하며, 노드 특정 수단(101D), 위치 특정 수단(102D), 패스 설정 수단(103D) 및 노드 요구 수단(104D)을 포함한다(도 18 참조). 제어기(10D) 내의 노드 요구 수단(104D)은 필요하다면 생략될 수 있음에 유의해야 한다.
노드 특정 수단(101D)은 사용자로부터 서비스 체인의 제공 요구를 수신할 때, 서비스 체인과 상관된 VM을 특정한다. 도 24의 VNF1, VNF2로부터 연장된 화살 선을 참조한다. 그런데, 노드 특정 수단(101D)은 사용자에 의해 요구된 서비스 체인에 필요한 VNF를 특정하여, 그렇게 특정된 VNF와 상관된 VM을 특정하는 것이 가능하다. 도 25에 도시된 바와 같이, 노드 특정 수단(101D)은 서비스 체인 1을 VNF1 (1) 및 VNF1 (2)과 상관시키면서, VNF1 (1)을 VM1과 상관시키고, VNF1 (2)를 VM3과 상관시킨다. 노드 특정 수단(101D)은 서비스 체인 2를 VNF1 (2) 및 VNF2 (2)과 상관시키면서, VNF1 (2)를 VM2와 상관시키고 VNF2 (2)를 VM4와 상관시킨다.
사용자에 의해 요구된 서비스 체인을 구현할 수 있는 VNF가 기동하지 않는 경우, 노드 특정 수단(101D)은 노드 요구 수단(104D)에게 필요한 VNF의 구축하도록 요구한다.
위치 특정 수단(102D)은 노드 특정 수단(101D)에 의해 특정된 통신 노드의 물리 네트워크에서의 위치에 관한 정보를 특정한다. 도 24의 VM1 내지 VM4로부터 물리 노드에 연장된 화살 선을 참조한다. 위치 특정 수단(102D)은 VM1 내지 VM4를 구현하는 물리 노드(200)의 물리 네트워크 상의 어드레스를 VM1 내지 VM4의 각각에 대해 특정함에 함께, VM1 내지 VM4와 상관된 물리 노드(200)의 포트의 포트 번호를 특정한다. 도 25에 예시된 바와 같이, 위치 특정 수단(102D)은 VM1, 물리 노드(200)의 어드레스 및 포트 번호 #1을 서로 상관시킨다.
패스 설정 수단(103D)은 물리 NW의 토폴로지 정보와, 위치 특정 수단(102D)에 의해 특정된 VM(들)의 물리 NW에서의 위치에 관한 정보를 사용하여, 물리 NW 상에 사용자에 의해 요구된 서비스 체인을 구현하는 데이터 패스(들)를 설정한다. 서비스 체인 1 및 2에 대한 데이터 패스를 참조한다.
노드 요구 수단(104D)은 VM(들) 상의 정보를 노드 특정 수단(101D)에 제공하기 위해, 노드 특정 수단(101D)으로부터의 요구에 응답하여 물리 서버(200) 상에 VNF를 제시하는데 필요한 VM(들)을 기동한다.
도 26은 본 발명의 예시적 실시예 6에 따른 제어기(110D)의 예시적 동작을 도시하는 흐름도이다.
본 예시적 실시예의 동작에 대해서는 이하 도면을 참조하여 상세하게 설명한다. 이하의 설명에서는, 도 24에 도시된 2개의 서비스 체인의 구축이 사용자에 의해 요구된 것으로 가정한다. 사용자는 상술한 물리 네트워크의 구성을 알 필요가 없다.
처음에, 노드 특정 수단(101D)은 사용자에 의해 요구된 서비스 체인과 상관된 VNF를 특정하고(S5-1), 다음에, VNF와 상관된 VM을 특정한다(S5-2). 도 25의 예시적 실시예에서, 노드 특정 수단(101D)은 서비스 체인 1이 VNF1 및 VNF2를 경유하고, VNF1 및 VNF2가 각각 VM1 및 VM3과 상관되는 것을 특정한다. 마찬가지로, 노드 특정 수단(101D)은 서비스 체인 2가 VNF1 및 VNF2를 경유하고, VNF1 및 VNF2가 각각 VM2 및 VM4와 상관되는 것을 특정한다. 그런데, 도 25의 테이블은 서비스 체인 정의 메모리 유닛 및 매핑 정보 메모리 유닛에 상당한다.
다음에, 위치 특정 수단(102D)은 노드 특정 수단(101D)에 의해 특정된 4개의 VM의 물리 네트워크에서의 위치에 관한 정보를 특정한다.
다음에, 패스 설정 수단(103D)은 2개의 세트의 VM의 물리 네트워크 상의 위치에 관한 정보와, 물리 NW의 토폴로지 정보를 사용하여, 물리 NW 상에 사용자에 의해 요구된 서비스 체인을 구현하는 데이터 패스를 설정한다(S5-4). 도 24의 예시적 실시예에서, 데이터 패스(들)는 서비스 체인 1에 대한 VM1과 VM4 사이에 설정되는 반면, 다른 데이터 패스(들)는 서비스 체인 2에 대한 VM2와 VM3 사이에 설정된다. 서비스 체인의 경우, 동일한 서비스를 제공하더라도 서비스 체인과 상관된 VM의 차이로 인해 물리 네트워크 상의 데이터 패스가 구분되는 경우가 있다. 또한, 도 24의 예시적 실시예에서, 동일한 서비스를 제공하는 서비스 체인이 동일한 VNF를 사용해서 구축되어 있지만 반드시 동일한 VNF를 사용할 필요는 없다.
전술한 본 예시적 실시예에서, 사용자에 의해 요구된 서비스 체인을 구현하기 위해, 사용자에 의해 요구된 서비스 체인과 상관된, VM과 같은 통신 노드가 특정된다. 통신 노드는 물리 NW 상의 위치 정보에 반영되어, 통신 노드 간의 물리 NW 상에 데이터 패스를 설정한다. 따라서, 사용자에 의해 요구된 가상 네트워크 상의 서비스를 그 기능 구현 수단과, 물리 네트워크 상의 위치 정보에 반영시키고, 관련된 상호접속을 수행함으로써, 가상 네트워크 상의 물리 네트워크에 서비스 체인을 구현하는 것이 가능하다.
<예시적 실시예 7>
본 발명에 따른 예시적 실시예 7에 대해서는 이하 도면을 참조하여 설명한다. 제어기의 기능 등은 예시적 실시예 3의 것과 유사하기 때문에, 이하 예시적 실시예 3과의 본 예시적 실시예의 차이점을 중심으로 설명한다.
도 27을 참조하면, 본 발명의 예시적 실시예 7에서는, 각각의 다른 제어기가 각각의 물리 NW에 배치된다. 예를 들어, 다른 물리 NW가 각각의 다른 데이터 센터에 배치되고, 물리 NW 각각에 제어기가 배치된다. 각 제어기는 할당된 물리 NW를 관리한다. 사용자에 의해 요구된 서비스는 다른 물리 NW에 걸쳐 구축하는 것이 가능하다. 다음에, 각 제어기는 각각의 노드 특정 수단(101) 및 위치 특정 수단(102)에 의해 수집되고 특정된 정보를 공유하고, 다른 물리 NW에 걸쳐 데이터 패스(들)를 설정함으로써 사용자에 의해 요구된 서비스를 구현하는 것이 가능하게 된다. 이하의 설명에서는, 사용자에 의해 요구된 서비스가 사용자에 대응하는 테넌트에 포함되는 통신 노드로부터 특정된다고 가정한다. 서비스는, 예를 들어 서비스 체인일 수 있음에 유의한다.
도 28은 정보를 교환하는 본 예시적 실시예의 제어기 1 및 2의 결과로서 작성된 예시적 테이블을 도시한다. 이런 예시적 테이블은 정의 메모리 유닛 및 매핑 정보 메모리 유닛에 상당한다. 도 28를 참조하면, 서비스를 요구한 사용자에 대응하는 테넌트(들), 서비스를 구현하는 VM(VM1 내지 VM4)의 식별자(들), VM1 내지 VM4(제어기 1 및 2)를 관리하는 제어기(들), 및 물리 NW 상의 VM1 내지 VM4의 위치 정보는 서로 상관되어 저장된다.
도 28에서, 제어기 1에 의해 관리되는 VM1 및 VM2에 관한 정보(즉, VM 식별자 및 물리 노드의 위치 정보)는 제어기 1에 의해 특정된다. 한편, 제어기 2에 의해 관리되는 VM3 및 VM4에 관한 정보(즉, VM 식별자 및 물리 노드의 위치 정보)는 제어기 2에 의해 특정된다.
제어기 1 및 제어기 2는 그들이 특정한 정보, 즉 그들이 관리하고 있는 VM의 식별자와 물리 노드의 위치 정보를 공유한다. 제어기 1 및 제어기 2는, 예를 들어 BGP(border gateway protocol)에 의해 정보를 교환한다. 제어기 1 및 제어기 2는 도 28에 도시된 테이블을 교환함으로써 물리 NW 및 VM에 대한 위치 정보를 교환할 수 있다. 제어기 1은 제어기 1에 의해 특정된 도 28의 테이블의 상단을 제어기 2에 송신한다. 한편, 제어기 2는 제어기 2에 의해 특정된 도 28의 테이블의 하단을 제어기 1에 송신한다. 따라서, 제어기 1 및 2는 도 28에 도시된 정보를 교환할 수 있다.
그런데, 제어기 1 및 2에 의해 교환된 정보는 물리 NW 상의 토폴로지 정보를 포함할 수 있다.
제어기 1 및 2의 패스 설정 수단(103)은 사용자에 의해 요구된 서비스를 구현하는데 필요한 물리 NW 상의 데이터 패스(들)를 설정한다. 또는, 제어기 1 및 2 중 하나는 다른 제어기를 대신해서, 공유된 정보, 예를 들어 도 28에 도시된 테이블에 기초하여 전체 데이터 패스를 설정할 수 있다.
제어기 1은 물리 노드(210A)에 대해, VM1 또는 VM2로부터의 패킷을 물리 노드(210B)에 전송하는 처리 규칙 또는 전송 정보를 설정한다. 또한, 제어기 1은 또한 물리 노드(210A)에 대해, 물리 노드(210B)로부터 전송된 VM3 또는 VM4로부터의 패킷을 VM1 또는 VM2에 전송하는 처리 규칙 또는 전송 정보를 설정한다.
마찬가지로, 제어기 2는 물리 노드(210B)에 대해, VM3 또는 VM4로부터의 패킷을 물리 노드(210A)에 전송하는 처리 규칙 또는 전송 정보를 설정한다. 제어기 2는 물리 노드(210B)에 대해, 물리 노드(210A)로부터 전송된 VM1 또는 VM2로부터의 패킷을 VM3 또는 VM4에 전송하는 처리 규칙 또는 전송 정보를 설정한다.
이에 의해, 제어기 1 및 2는 물리 NW 상의 VM1 내지 VM4 사이에 데이터 패스(들)를 설정하여, 사용자에 의해 요구된 서비스를 구현할 수 있다.
전술한 바와 같이, 본 발명은 물리적으로 서로 이격된 네트워크에 걸쳐, 예를 들어 별개의 DC 내에 제공된 네트워크에 걸쳐 서비스 체인 또는 테넌트를 구현하는데 적용될 수 있다.
<예시적 실시예 8>
상기 예시적 실시예 7로부터 변경된 예시적 실시예 8에 대해서는 이하 도면을 참조하여 설명한다. 도 29는 예시적 실시예 8의 구성을 도시한다. 본 예시적 실시예는 예시적 실시예 7과 유사하지만, 본 예시적 실시예는 물리 NW1의 통신 프로토콜(터널링 프로토콜)과 물리 NW2의 통신 프로토콜이 상이함으로 그 차이를 그대로 두면 데이터 패스를 구축할 수 없다. 이하, 이런 차이점을 중심으로 설명한다.
도 29에 예시한 바와 같이, 예시적 실시예 8은 다른 물리 네트워크(물리 NW)를 갖는 터널링 프로토콜(예를 들어, VXLAN/NvGRE)에 의해 구축된다. 구체적으로, 예시적 실시예 8의 통신 시스템은 VXLAN(Virtual eXtensible Local Area Network)에 의해 구축된 물리 NW1과, NVGRE(Network Virtualization using Generic Routing Encapsulation)에 의해 구축된 물리 NW2를 포함하며, 여기서 물리 NW1 및 물리 NW2는 인터넷을 통해 게이트웨이(GW1 및 GW2)에 의해 상호접속된다. 또한, 물리 NW1과 물리 NW2 사이에 WAN(Wide Area Network)을 사용하는 것이 가능하다.
제어기(100E1 및 100E2)의 제어 유닛(10)은 통신 유닛(120)을 통해 물리 NW1 및 물리 NW2의 토폴로지 정보를 교환한다. 제어기(100E1 및 100E2)는, 예를 들어 BGP에 의해 토폴로지 정보를 교환한다.
각각의 제어기(100E1 및 100E2)의 노드 특정 수단(101)은 사용자에 의해 요구된 서비스를 구현하는데 필요한 VM(들)을, 사용자에 대응하는 테넌트에 포함되는 VM(들)으로부터 특정한다. 도 29의 예시적 실시예에서, 각각의 제어기(100E1 및 100E2)의 노드 특정 수단(101)은 사용자에 의해 요구된 서비스가 사용자에 대응하는 테넌트에 포함되는 VM 중 VM1 내지 VM4가 필요하다고 특정한다. 각 노드 특정 수단(101)은 사용자에 의해 요구된 서비스에 대해, 사용자에 대응하는 테넌트를, 사용자에 의해 요구된 서비스에 필요한 VM1 내지 VM4의 각각을 고유하게 특정할 수 있는 VM 식별자와 상관시킨다.
제어기(100E1 및 100E2) 각각의 위치 특정 수단(102)은 노드 특정 수단(101)에 의해 특정된 VM1 내지 VM4의 물리 NW 상의 위치에 관한 정보를 특정한다. 제어기(100E1) 내의 위치 특정 수단(102)은 제어기(100E1)에 의해 관리되는 물리 NW1 내의 VM1 및 VM2의 위치에 관한 정보를 특정한다. 구체적으로, 제어기(100E1) 내의 위치 특정 수단(102)은 물리 NW1 상의 VM1 및 VM2의 위치에 관한 정보로서, VM1 및 VM2의 어드레스뿐만 아니라, VM1 및 VM2가 접속되는 가상 스위치의 어드레스 및 포트 번호를 특정한다. 한편, 제어기(100E2) 내의 위치 특정 수단(102)은 제어기(100E2)에 의해 관리되는 물리 NW2 내의 VM3 및 VM4의 물리 NW2 상의 위치에 관한 정보를 특정한다. 구체적으로, 제어기(100E2) 내의 위치 특정 수단(102)은 물리 NW1 상의 VM3 및 VM4의 위치에 관한 정보로서, VM3 및 VM4의 어드레스뿐만 아니라, VM3 및 VM4이 접속되는 가상 스위치의 어드레스 및 포트 번호를 특정한다.
도 30은 예시적 실시예 8의 제어기(100E1 및 100E2)에 의해 유지되는 예시적 테이블을 도시한다. 이 테이블은 도 28에 도시된 예시적 실시예 7의 제어기에 의해 유지되는 것과 프로토콜 저장 칼럼(protocol storage column)을 갖는 점에서 다르다.
도 30에 도시된 테이블에서는, 사용자에 의해 요구된 서비스와 관련하여, 사용자에 대응하는 테넌트, 사용자에 의해 요구된 서비스를 구현하는 VM에 대한 VM 식별자(들)(VM1 내지 VM4), VM1 내지 VM4을 관리하는 제어기(들)(제어기 1 또는 2), VM1 내지 VM4를 구현하는 물리 노드의 위치 정보, 및 VM1 및 VM2를 포함하는 물리 NW에서의 프로토콜(들)이 서로 상관되어 저장된다. 예를 들어, VM1 및 VM2의 각각은 물리 NW1에서의 프로토콜인 VXLAN과 상관된다. 한편, VM3 및 VM4의 각각은 물리 NW2에서의 프로토콜인 NvGRE와 상관된다. 제어기(100E1 및 100E2) 각각의 제어 유닛(110)은 통신 유닛(120)을 통해, 관리되는 NW에서의 터널링 프로토콜(VXLAN/NvGRE)에 관한 정보를 교환한다.
제어기(100E1 및 100E2) 각각의 제어 유닛(110)은 해당 제어기에 의해 특정된 VM(들)의 위치 정보(해당 제어기에 의해 관리되는 VM의 식별자 및 물리 노드의 위치 정보)를 공유한다. 제어기(100E1 및 100E2)는, 예를 들어 BGP에 의해 VM(들)의 위치 정보를 교환한다.
제어기(100E1 및 100E2) 각각의 패스 설정 수단(103)은 해당 제어기에 의해 특정된 위치 정보 및 공유된 VM(들)의 위치 정보에 기초하여 사용자에 의해 요구된 서비스를 구현하는데 필요한 물리 NW 상에 데이터 패스(들)를 설정한다.
예를 들어, 제어기(100E1)의 패스 설정 수단(103)은, 예컨대 물리 NW1 내의 VM1과 VM2 사이에 데이터 패스를 설정한다. 또한, 제어기(100E1)의 패스 설정 수단(103)은 또한 물리 노드(210A)에 대해, GW1로부터 전송된 VM3 또는 VM4로부터의 패킷을 VM1 또는 VM2에 전송하는데 필요한 처리 규칙 또는 전송 정보를 설정한다.
물리 NW1의 터널링 프로토콜은 인터넷에서 사용 가능한 통신 프로토콜과 다를 수 있는 VXLAN이라는 점에 유의해야 한다. 이 경우, 제어기(100E1)의 패스 설정 수단(103)은, VXLAN을 인터넷에서 사용 가능한 프로토콜로 변환한 후, VXLAN 하에서 VM1 또는 VM2로부터 전송된 패킷을 인터넷으로 전송하기 위한 처리 규칙들의 세트 또는 전송 정보 세트를 GW1에 대해 설정한다. 구체적으로, 제어기(100E1)의 패스 설정 수단(103)은 GW1에게, 물리 노드(210A)로부터 수신된 패킷으로부터의 어드레스와 같은 VXLAN 기반 전송 정보를 디캡슐화하고, 결과 패킷을 인터넷 상에서 사용 가능한 통신 프로토콜을 따르는 어드레스와 같은 전송 정보로 GW1에 캡슐화하도록 지시한다.
한편, 제어기(100E1)의 패스 설정 수단(103)은 GW1에 대해, 인터넷에서 사용 가능한 통신 프로토콜에 기초하여 전송된 패킷을 전송하기 위한 처리 규칙들의 세트 또는 전송 정보를 설정한다. 이를 위해, 패스 설정 수단은 결과 패킷을 물리 노드(210A)로 전송하기 위해, 패킷을 물리 노드(210A)의 터널링 프로토콜인 VXLAN에 따르는 패킷으로 변환한다. 구체적으로, 제어기(100E1)의 패스 설정 수단(103)은 GW1에게, 수신된 패킷으로부터 인터넷에서 사용 가능한 통신 프로토콜에 따르는 어드레스와 같은 전송 정보를 디캡슐화하고, 결과 패킷을 VXLAN에 따르는 어드레스와 같은 전송 정보로 캡슐화하도록 지시한다.
마찬가지로, 제어기(100E2)의 패스 설정 수단(103)은 물리 NW2에서 VM3과 VM4 사이에 데이터 패스를 설정한다. 구체적으로, 제어기(100E2)의 패스 설정 수단(103)은, VM3이 기동되어 있는 물리 노드(200B)와, VM4가 기동되어 있는 물리 노드(200C) 사이에 데이터 패스를 설정하기 위해, 물리 노드(210B)에 대해, 물리 노드(200B)와 물리 노드(200C) 사이에서 통신을 가능하게 하는 처리 규칙들의 세트 또는 전송 정보를 설정한다. 또한, 제어기(100E1)의 패스 설정 수단(103)은 물리 노드(210A)에 대해, VM1 또는 VM2로부터의 패킷을 GW1에 전송하기 위한 처리 규칙들의 세트 또는 전송 정보를 설정한다. 또한, 제어기 1은 물리 노드(210A)에 대해, VM3 또는 VM4로부터의 패킷을 VM1 또는 VM2에 전송하기 위한 처리 규칙들의 세트 또는 전송 정보를 설정한다.
물리 NW2의 터널링 프로토콜은 인터넷에서 사용되는 통신 프로토콜과 다를 수 있는 NvGRE이다. 이 경우, 제어기(100E2)의 패스 설정 수단(103)은 GW2에 대해, VM3 및 VM4로부터 NvGRE에 따라 전송된 패킷을 인터넷에 대한 프로토콜에 따르는 패킷으로 변환하여, 결과 패킷을 인터넷에 전송한다. 구체적으로, 제어기(100E2)의 패스 설정 수단(103)은 GW2에게, 물리 노드(210B)로부터 수신된 패킷으로부터 NvGRE 준수 전송 정보(예를 들어, 어드레스)를 디캡슐화하고, 결과 패킷을 인터넷 상에서 사용 가능한 통신 프로토콜에 따르는 전송 정보(예를 들어, 어드레스)로 캡슐화하도록 지시한다.
한편, 제어기(100E2)의 패스 설정 수단(103)은 GW2에 대해, 패킷을 물리 노드(210B)로 전송하기 위한 처리 규칙들의 세트 또는 전송 정보를 설정한다. 이를 위해, 패스 설정 수단은 인터넷에서 사용 가능한 통신 프로토콜에 따라 전송된 패킷을 물리 NW2의 터널링 프로토콜인 NvGRE에 따르는 패킷으로 변환하여, 결과 패킷을 물리 노드(210B)로 전송한다. 구체적으로, 제어기(100E2)의 패스 설정 수단(103)은 GW2에게, 수신된 패킷으로부터, 인터넷에서 사용 가능한 통신 프로토콜에 따르는 어드레스와 같은 전송 정보를 디캡슐화하고, 결과 패킷을 NvGRE에 따르는 어드레스와 같은 전송 정보로 캡슐화하도록 지시한다.
따라서, 제어기(100E1 및 100E2)에 의해, 물리 NW에서 VM1 내지 VM4 사이의 데이터 패스(들)를 설정하여, 사용자에 의해 요구된 서비스를 구현하는 것이 가능하다.
도 31은 예시적 실시예 8에 따른 다른 예시적 시스템 구성을 도시한다. 도 31을 참조하면, 물리 NW1이 퍼블릭 클라우드(public cloud)를 제공하는 데이터센터(DC1)이며, 물리 NW2가 온-프레미스(on-premised)(DC2)인 경우가 고려될 수 있다. 즉, 본 예시적 구성은 퍼블릭 클라우드에 의해 제공되는 VM과 온-프레미스로 준비된 다른 VM을 사용하여 단일 테넌트를 구축하는, 소위 하이브리드 클라우드의 구성이다. 이런 구성에서, 퍼블릭 클라우드의 DC1 내의 물리 NW1을 관리하는 제어기 1은 온-프레미스 DC2 내의 물리 NW2를 관리하는 제어기 2와 상이하다. 따라서, 단일 테넌트가 구축되어야 하고 그 테넌트에 포함되는 통신 노드를 사용해서 미리 설정된 서비스를 구현하는데 필요한 물리 NW 상의 데이터 패스가 설정되어야 하는 경우, 제어기 1 과 2 사이에서 정보를 교환할 필요가 있다.
또한, 퍼블릭 클라우드를 제시하는 DC1 내의 물리 NW1과, 온-프레미스 DC2 내의 물리 NW2는 각각의 상이한 프로토콜을 갖는 경우가 있다. 예를 들어, 퍼블릭 클라우드를 제시하는 DC1 내의 물리 NW1의 터널링 프로토콜은 VXLAN일 수 있으며, DC2 내의 물리 NW2의 터널링 프로토콜은 NvGRE일 수 있다.
도 31의 제어기 1 및 2는 사용자에 의해 요구된 서비스를 구현하는데 필요한 통신 노드를 특정하면서, 특정된 통신 노드의 물리 NW 상의 위치 정보를 특정하고, 특정된 위치 정보에 기초하여 통신 노드 간에 데이터 패스를 설정한다.
도 31의 예시적 실시예에서, 각각의 제어기 1 및 2의 노드 특정 수단(101)은 사용자에 의해 요구된 서비스를 구현하는데 필요한 통신 노드가 VM1 내지 VM3인 것으로 특정한다.
다음에, 각각의 제어기 1 및 2의 노드 특정 수단(101)은 VM1 내지 VM3 각각의 물리 NW 상의 위치 정보를 특정한다. 제어기 1은 제어기가 관리하는 퍼블릭 클라우드를 제공하는 DC1 내의 물리 NW1에서, VM1 및 VM2의 위치 정보를 특정한다. 제어기 2는 이것이 관리하는 온-프레미스 DC2 내의 물리 NW2에서, VM3의 위치 정보를 특정한다.
각각의 제어기 1 및 2의 패스 설정 수단(103)은 특정된 위치 정보에 기초하여, VM1 내지 VM3 사이에 데이터 패스(들)를 설정한다. 퍼블릭 클라우드를 제공하는 DC1 내의 물리 NW1의 통신 프로토콜이 온-프레미스 DC2 내의 물리 NW2의 통신 프로토콜과 상이한 경우가 있다. 이 경우, 제어기 1의 패스 설정 수단(103)은, 예를 들어 GW1에 대해, 물리 NW1에서 사용 가능한 통신 프로토콜과 인터넷에서 사용 가능한 통신 프로토콜을 서로 변환하는 처리 규칙들의 세트 또는 전송 정보를 설정한다. 또한, 제어기 2의 패스 설정 수단(103)은, 예를 들어 GW2에 대해, 물리 NW2에서 사용 가능한 통신 프로토콜과 인터넷에서 사용 가능한 통신 프로토콜을 서로 변환하는 처리 규칙들의 세트 또는 전송 정보를 설정한다. 제어기 1 및 2의 패스 설정 수단(103)에 의해 수행된 구체적인 처리는, 도 29에 도시된 제어기(100E1 및 100E2)의 패스 설정 수단(103)의 것과 마찬가지이므로, 여기서는 상세히 설명하지 않는다. 따라서, 제어기 1 및 2는 VM1 및 VM2에 대한 데이터 패스(들), 및 VM1 및 VM2에 대한 것과는 상이한 DC에 존재하는 VM3에 대한 데이터 패스(들)를 설정할 수 있어, 사용자에 의해 요구된 서비스를 구현하는 것이 가능하게 된다.
또한, 제어기 1 및 2 중 하나가 다른 제어기로부터 취득한 정보(예를 들어, 다른 제어기에 의해 관리되는 물리 NW의 토폴로지 정보)에 기초하여, VM1 내지 VM3의 위치 정보를 특정하거나, VM1 내지 VM3 사이의 데이터 패스를 설정하는 것이 가능하다. 예를 들어, 온-프레미스 DC2 내의 제어기 2는 퍼블릭 클라우드를 제공하는 DC1 내의 제어기 1로부터 취득된 물리 NW1의 토폴로지 정보에 기초하여, VM1 내지 VM3의 위치 정보를 특정하거나, VM1 내지 VM3 사이의 데이터 패스를 설정할 수 있다. 이 경우, 제어기 1이 DC1 내의 물리 NW1에서 V1과 V2 사이에 데이터 패스를 설정하도록 요구하는 제어기 2에 의해 VM1 내지 VM3 사이에 데이터 패스(들)를 설정하고, GW1에 대한 처리 규칙들의 세트 또는 전송 정보를 설정하는 것이 가능하다.
도 32는 예시적 실시예 8에서 다른 시스템 예시적 구성을 도시한다. 도 32를 참조하면, 예시적 실시예 8의 시스템은 사용자 A의 온-프레미스의 DC1, 퍼블릭 클라우드 DC2, 퍼블릭 클라우드의 DC3, 및 사용자 B의 온-프레미스 DC4를 포함한다.
도 32를 참조하면, 예시적 실시예 8의 시스템은 사용자 A에 대응하는 테넌트 1, 및 사용자 B에 대응하는 다른 테넌트 2를 포함하고, 따라서 복수의 DC로 구성되는 멀티 테넌트 시스템을 제공한다. 사용자 A에 대응하는 테넌트 1은 DC1 내의 VM1, DC2 내의 VM2 및 VM3, 및 DC3 내의 DM4를 포함한다. 사용자 B에 대응하는 테넌트 2는 DC3 내의 VM5, 및 DC4 내의 VM6을 포함한다.
각각의 제어기 2 및 3의 노드 특정 수단(101)은 사용자 A에 의해 요구된 서비스를 구현하는 VM으로서, 사용자 A에 대응하는, 테넌트 1에 포함되는 VM1 내지 VM4를 특정한다. 제어기 1 내지 3의 위치 특정 수단(102)은 물리 NW 상의 VM1 내지 VM4의 위치를 특정한다. 제어기 1의 위치 특정 수단(102)은 제어기가 관리하는 DC1 내의 VM1의 물리 NW 상의 위치 정보를 특정한다. 마찬가지로, 제어기 2 및 3의 위치 특정 수단(102)도, DC2 내의 VM2 및 VM3과, DC3 내의 VM4의 물리 NW 상의 위치 정보를 특정한다. 제어기 1 내지 3의 패스 설정 수단(103)은 VM1 내지 VM4 사이에 데이터 패스(들)를 설정한다. DC1 내지 DC3 각각이 인터넷에서 사용 가능한 것과 상이한 통신 프로토콜을 사용하는 경우가 있다. 이 경우, 제어기 1 내지 3의 각각의 패스 설정 수단(103)은 GW1 내지 GW3의 각각에서, 인터넷의 통신 프로토콜 및 DC1 내지 DC3의 통신 프로토콜을 변경하기 위해 사용 가능한 처리 규칙들의 세트 또는 전송 정보를 서로에 대해 설정한다. 제어기 1 내지 3의 패스 설정 수단(103)의 동작은 도 29에 도시된 제어기(100E1 및 100E2)의 패스 설정 수단(103)의 것과 유사함으로, 여기서는 간략화를 위해 언급되지 않는다. 따라서, 제어기 1 내지 3의 패스 설정 수단(103)은 별개의 DC에 존재하는 VM1 내지 VM4 중 임의의 2개 사이에 데이터 패스(들)를 설정하여, 사용자에 의해 요구된 서비스의 구현이 가능하게 한다.
제어기 1 내지 3 중 어느 것이, 나머지 제어기(들)로부터 취득된 정보(예를 들어, 다른 제어기(들)에 의해 관리되는 물리 NW의 토폴로지 정보)에 기초하여, VM1 내지 VM4의 위치 정보를 특정하거나, 임의의 VM1 내지 VM4 사이에 데이터 패스(들)를 설정하는 것이 가능하다. 예를 들어, 온-프레미스 DC1 내의 제어기 1은, 예를 들어 다른 제어기 2 및 3으로부터 온-프레미스 DC1 내의 제어기 1에 의해 취득된 DC2 또는 DC3 내의 물리 NW의 토폴로지 정보에 기초하여, VM1 내지 VM4의 위치 정보를 특정하거나, 임의의 VM1 내지 VM4 사이에서 데이터 패스(들)를 설정할 수 있다. 이 경우, 제어기 1은 제어기 2 및 제어기 3에게, DC2 및 DC3 내의 물리 NW 상에 데이터 패스(들)를 설정하거나, DC2의 GW2나 DC3의 GW3을 설정하도록 요구하여, VM1 내지 VM4 사이에 데이터 패스(들)를 설정할 수 있다.
유사한 방식으로, 각각의 제어기 3 및 4의 노드 특정 수단(101)은 사용자 B에 의해 요구된 서비스를 구현하는 VM으로서, 사용자 A에 대응하는 테넌트 2에 포함되는 VM5 및 VM6을 특정한다. 다음에, 제어기 3 또는 4의 위치 특정 수단(102)은 VM5 및 VM6의 물리 NW 상의 위치 정보를 특정한다. 유사한 방식으로, 제어기 4의 위치 특정 수단(102)은 제어기가 관리하는 DC3 내의 VM5의 물리 NW 상의 위치 정보를 특정한다. 제어기 3 및 4의 패스 설정 수단(103)은 DM5와 DM6 사이에 데이터 패스(들)를 설정한다. DC3 및 DC4의 통신 프로토콜이 인터넷 상에서 사용 가능한 것과 상이한 경우가 있다. 이 경우, 각각의 제어기 3 및 4의 패스 설정 수단(103)은 GW3 및 GW4의 각각에서, 각각의 DC3 및 DC4의 통신 프로토콜 및 인터넷 상에서 사용 가능한 통신 프로토콜을 상관적으로 변경하도록 구성된 처리 규칙들의 세트 및 전송 정보를 설정한다. 각각의 제어기 3 및 4의 패스 설정 수단(103)에서 수행되는 구체적인 처리는 도 29에 도시된 제어기(100E1 및 100E2)의 패스 설정 수단(103)의 것과 유사하기 때문에, 여기서는 간략화를 위해 언급되지 않는다. 별개의 DC 내의 VM5와 VM6 사이의 데이터 경로는 제어기 3 및 4의 패스 설정 수단(103)에 의해 설정될 수 있으며, 따라서 사용자에 의해 요구된 서비스를 구현할 수 있다.
사용자 A의 경우와 마찬가지로, 제어기 3 및 4 중 하나는 다른 제어기로부터 취득된 정보(예를 들어, 다른 제어기에 의해 관리되는 물리 NW의 토폴로지 정보)에 기초하여, VM1 내지 VM3의 위치 정보를 특정하거나, VM1 내지 VM 중 임의의 2개 사이의 데이터 패스(들)를 설정할 수 있다.
전술한 바와 같이, 본 발명은 물리적으로 다른 네트워크가 존재하는 경우에도 적용될 수 있으며, 또한 사용된 통신 프로토콜도 상이하다.
본 발명의 바람직한 예시적 실시예가 도시되어 있지만, 본 발명은 이러한 특정 모드로 제한되지 않으며, 따라서 본 발명의 기본 기술 개념을 벗어나지 않는 범위에서 임의의 추가 변경, 대체 또는 조정이 이루어질 수 있다. 예를 들어, 도면에 도시된 네트워크 또는 요소의 구성 또는 메시지의 표현 모드는 본 발명의 이해를 돕기 위해 단지 예시적인 것으로 주어졌지만, 이는 도시된 구성에 제한되지 않는다.
전술한 예시적 실시예의 제어기의 각각의 요구 수단은 제어기를 구성하고 컴퓨터 하드웨어의 도움으로 각 처리의 실행을 허용하는 컴퓨터 프로그램에 의해 구현될 수 있음에 유의해야 한다.
본 발명을 수행하기 위한 바람직한 모드는 다음과 같이 열거될 수 있다:
(모드 1)
상술한 제1 양태에 따른 제어기를 참조한다.
(모드 2)
모드 1에 따른 제어기에서,
제1 수단은 네트워크 노드의 기능(들)을 제공할 수 있는 복수의 가상 머신을 특정하고,
제3 수단은 네트워크 노드의 기능(들)을 구현하기 위해 물리 네트워크 상에서 복수의 가상 머신을 상호접속한다.
(모드 3)
모드 1에 따른 제어기에서,
제1 수단은 네트워크 노드에 포함되는 복수의 기능 각각을 제공할 수 있는 가상 머신을 복수의 기능마다 특정한다.
(모드 4)
모드 3에 따른 제어기에서,
제1 수단은 복수의 기능을 선택적으로 제공할 수 있는 복수의 가상 머신을 특정한다.
(모드 5)
모드 3 또는 모드 4에 따른 제어기에서,
제1 수단은 복수의 기능을 순차적 순서로 상호접속함으로써 제공된 통신 서비스(들)에 포함되는 복수의 기능을 제공할 수 있는 복수의 가상 머신을 특정하고,
제3 수단은 순차적 순서를 실현하기 위해 물리 네트워크 상에서 복수의 가상 머신을 상호접속한다.
(모드 6)
모드 1 내지 모드 5 중 어느 한 모드에 따른 제어기에서,
제1 수단은 복수의 통신 서비스마다, 복수의 통신 서비스의 각각에 포함되는 네트워크 노드(들)의 기능(들)을 제공할 수 있는 복수의 가상 머신을 특정하고,
제3 수단은 복수의 통신 서비스마다, 물리 네트워크 상에서 복수의 통신 서비스의 각각을 구현하는 복수의 데이터 패스를 설정한다.
(모드 7)
상술한 제2 양태에 따른 통신 시스템을 참조한다.
(모드 8)
상술한 제2 양태에 따른 제어 방법을 참조한다.
(모드 9)
상술한 제4 양태에 따른 컴퓨터 프로그램을 참조한다. 모드 1에 대한 모드 2 내지 6과 유사하게, 모드 7 내지 9에 대한 개발된 모드가 또한 추가될 수 있음에 유의한다.
상술한 비특허문헌의 개시내용은 본 명세서에 참고로 통합된다. 예시적 실시 예 또는 예는 본 발명의 기본 기술 개념에 기초하여 청구범위를 포함하는 본 발명의 전체 개시내용의 개념 내에서 수정되거나 조정될 수 있다. 본 명세서에 개시된 요소(청구범위, 예 및 도면의 요소)의 일련의 조합 또는 선택은 본 발명의 청구범위의 맥락 내에서 이루어질 수 있다. 즉, 본 발명은 청구범위 및 도면을 포함하는 전체 개시내용 및 본 발명의 기술 개념에 따라 본 기술분야의 통상의 기술자라면 이룰 수 있는 다양한 변경 또는 수정을 포함할 수 있다. 특히, 본 명세서에 개시된 수치 값의 범위와 관련된 임의의 선택적인 수치 또는 하위 범위는 명백한 진술이 없는 경우에도 구체적으로 기재되어 있는 것으로 이해되어야 한다.
100, 100A 내지 100F, 100E1, 100E2 제어기들
101, 101D 노드 특정 수단
102, 102D 위치 특정 수단
103, 103D 패스 설정 수단
104, 104D 노드 요구 수단
110, 110D 제어 유닛
120 통신 유닛
200, 200a 내지 200d, 200A 내지 200D, 210, 210A, 210B 물리 노드들(물리 스위치들)
220 가상 네트워크 기능(VNF)
300 VM
2101 패스 제어 유닛

Claims (19)

  1. 제어기로서,
    네트워크 노드의 기능(들)을 제공할 수 있는 가상 머신(들)을 특정하는 제1 수단;
    물리 네트워크에서 상기 특정된 가상 머신(들)의 위치에 관한 정보를 특정하는 제2 수단; 및
    상기 위치에 관한 상기 정보에 기초하여, 상기 물리 네트워크 상에서 상기 네트워크 노드의 기능(들)을 구현하는 데이터 패스를 설정하는 제3 수단
    을 포함하는 제어기.
  2. 제1항에 있어서,
    상기 제1 수단은 상기 네트워크 노드의 기능(들)을 제공할 수 있는 복수의 가상 머신을 특정하고,
    상기 제3 수단은 상기 네트워크 노드의 기능(들)을 구현하기 위해 상기 물리 네트워크 상에서 상기 복수의 가상 머신을 상호접속하는, 제어기.
  3. 제1항 또는 제2항에 있어서,
    상기 제1 수단은 상기 네트워크 노드에 포함되는 복수의 기능 각각을 제공할 수 있는 복수의 가상 머신을 상기 복수의 기능마다 특정하는, 제어기.
  4. 제3항에 있어서,
    상기 제1 수단은 상기 복수의 기능을 선택적으로 제공할 수 있는 상기 복수의 가상 머신을 특정하는, 제어기.
  5. 제3항 또는 제4항에 있어서,
    상기 제1 수단은 상기 복수의 기능을 순차적 순서로 상호접속함으로써 제공된 통신 서비스(들)에 포함되는 상기 복수의 기능을 제공할 수 있는 상기 복수의 가상 머신을 특정하고,
    상기 제3 수단은 상기 순차적 순서를 실현하기 위해 상기 물리 네트워크 상에서 상기 복수의 가상 머신을 상호접속하는, 제어기.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1 수단은 복수의 통신 서비스마다, 상기 복수의 통신 서비스의 각각에 포함되는 네트워크 노드(들)의 기능(들)을 제공할 수 있는 복수의 가상 머신을 특정하고,
    상기 제3 수단은 상기 복수의 통신 서비스마다, 상기 물리 네트워크 상에서 상기 복수의 통신 서비스의 각각을 구현하는 복수의 데이터 패스를 설정하는, 제어기.
  7. 제어 방법으로서,
    네트워크 노드의 기능(들)을 제공할 수 있는 가상 머신(들)을 특정하는 단계;
    물리 네트워크에서 상기 특정된 가상 머신(들)의 위치에 관한 정보를 특정하는 단계; 및
    상기 위치에 관한 상기 정보에 기초하여, 상기 물리 네트워크 상에서 상기 네트워크 노드의 기능(들)을 구현하는 데이터 패스를 설정하는 단계
    를 포함하는 제어 방법.
  8. 제7항에 있어서,
    상기 네트워크 노드의 기능(들)을 제공할 수 있는 복수의 가상 머신을 특정하는 단계; 및
    상기 네트워크 노드의 기능(들)을 구현하기 위해 상기 물리 네트워크 상에서 상기 복수의 가상 머신을 상호 접속하는 단계
    를 포함하는 제어 방법.
  9. 제7항 또는 제8항에 있어서,
    상기 네트워크 노드에 포함되는 복수의 기능의 각각을 제공할 수 있는 복수의 가상 머신을 상기 복수의 기능마다 특정하는 단계를 포함하는 제어 방법.
  10. 제9항에 있어서,
    상기 복수의 기능을 선택적으로 제공할 수 있는 상기 복수의 가상 머신을 특정하는 단계를 포함하는 제어 방법.
  11. 제9항 또는 제10항에 있어서,
    상기 복수의 기능을 순차적 순서로 상호접속함으로써 제공된 통신 서비스(들)에 포함되는 상기 복수의 기능을 제공할 수 있는 상기 복수의 가상 머신을 특정하는 단계; 및
    상기 순차적 순서를 실현하기 위해 상기 물리 네트워크 상에서 상기 복수의 가상 머신을 상호접속하는 단계
    를 포함하는 제어 방법.
  12. 제7항 내지 제11항 중 어느 한 항에 있어서,
    복수의 통신 서비스마다, 상기 복수의 통신 서비스의 각각에 포함되는 네트워크 노드(들)의 기능(들)을 제공할 수 있는 복수의 가상 머신을 특정하는 단계,
    상기 복수의 통신 서비스마다, 상기 물리 네트워크 상에서 상기 복수의 통신 서비스의 각각을 구현하는 복수의 데이터 패스를 설정하는 단계
    를 포함하는 제어 방법.
  13. 통신 시스템으로서,
    물리 네트워크를 제어하는 제어기; 및
    상기 제어기에 의해 관리되는 가상 머신(들)
    을 포함하고, 상기 제어기는,
    네트워크 노드의 기능(들)을 제공할 수 있는 상기 가상 머신(들)을 특정하는 제1 수단;
    물리 네트워크에서 상기 특정된 가상 머신(들)의 위치에 관한 정보를 특정하는 제2 수단; 및
    상기 위치에 관한 상기 정보에 기초하여, 상기 물리 네트워크 상에서 상기 네트워크 노드의 기능(들)을 구현하는 데이터 패스를 설정하는 제3 수단
    을 포함하는 통신 시스템.
  14. 제13항에 있어서,
    상기 제1 수단은 상기 네트워크 노드의 기능(들)을 제공할 수 있는 복수의 가상 머신을 특정하고,
    상기 제3 수단은 상기 네트워크 노드의 기능(들)을 구현하기 위해 상기 물리 네트워크 상에서 상기 복수의 가상 머신을 상호접속하는, 통신 시스템.
  15. 제13항 또는 제14항에 있어서,
    상기 제1 수단은 상기 네트워크 노드에 포함되는 복수의 기능의 각각을 제공할 수 있는 복수의 가상 머신을 상기 복수의 기능마다 특정하는, 통신 시스템.
  16. 제15항에 있어서,
    상기 제1 수단은 상기 복수의 기능을 선택적으로 제공할 수 있는 상기 복수의 가상 머신을 특정하는, 통신 시스템.
  17. 제15항 또는 제16항에 있어서,
    상기 제1 수단은 상기 복수의 기능을 순차적 순서로 상호접속함으로써 제공된 통신 서비스(들)에 포함되는 상기 복수의 기능을 제공할 수 있는 상기 복수의 가상 머신을 특정하고,
    상기 제3 수단은 상기 순차적 순서를 구현하기 위해 상기 물리 네트워크 상에서 상기 복수의 가상 머신을 상호접속하는, 통신 시스템.
  18. 제13항 내지 제17항 중 어느 한 항에 있어서,
    상기 제1 수단은 복수의 통신 서비스마다, 상기 복수의 통신 서비스의 각각에 포함되는 네트워크 노드(들)의 기능(들)을 제공할 수 있는 복수의 가상 머신을 특정하고,
    상기 제3 수단은 상기 복수의 통신 서비스마다, 상기 물리 네트워크 상에서 상기 복수의 통신 서비스의 각각을 구현하는 복수의 데이터 패스를 설정하는, 통신 시스템.
  19. 컴퓨터로 하여금,
    네트워크 노드의 기능(들)을 제공할 수 있는 가상 머신(들)을 특정하는 것;
    물리 네트워크에서 상기 특정된 가상 머신(들)의 위치에 관한 정보를 특정하는 것; 및
    상기 위치에 관한 상기 정보에 기초하여, 상기 물리 네트워크 상에서 상기 네트워크 노드의 기능(들)을 구현하는 데이터 패스를 설정하는 것
    을 실행하게 하는 프로그램.
KR1020177031383A 2015-03-31 2016-03-30 제어기, 제어 방법 및 프로그램 KR20170134557A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2015-073889 2015-03-31
JP2015073889 2015-03-31
PCT/JP2016/060349 WO2016159057A1 (ja) 2015-03-31 2016-03-30 制御装置、制御方法及びプログラム

Publications (1)

Publication Number Publication Date
KR20170134557A true KR20170134557A (ko) 2017-12-06

Family

ID=57005069

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031383A KR20170134557A (ko) 2015-03-31 2016-03-30 제어기, 제어 방법 및 프로그램

Country Status (8)

Country Link
US (1) US20180109472A1 (ko)
EP (1) EP3280100A4 (ko)
JP (1) JPWO2016159057A1 (ko)
KR (1) KR20170134557A (ko)
CN (1) CN107534602A (ko)
AR (1) AR104149A1 (ko)
TW (1) TW201701621A (ko)
WO (1) WO2016159057A1 (ko)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009075718A (ja) * 2007-09-19 2009-04-09 Hitachi Ltd 仮想i/oパスの管理方法、情報処理システム及びプログラム
US9489224B2 (en) * 2010-12-28 2016-11-08 Nec Corporation Network virtualization system, physical node, and virtual interface identification method in virtual machine
US9116727B2 (en) * 2013-01-15 2015-08-25 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Scalable network overlay virtualization using conventional virtual switches
WO2014136864A1 (ja) * 2013-03-07 2014-09-12 日本電気株式会社 パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム
WO2014169251A1 (en) * 2013-04-12 2014-10-16 Huawei Technologies Co., Ltd. Service chain policy for distributed gateways in virtual overlay networks
US9203765B2 (en) * 2013-08-30 2015-12-01 Cisco Technology, Inc. Flow based network service insertion using a service chain identifier
WO2015041706A1 (en) * 2013-09-23 2015-03-26 Mcafee, Inc. Providing a fast path between two entities

Also Published As

Publication number Publication date
AR104149A1 (es) 2017-06-28
JPWO2016159057A1 (ja) 2018-03-08
CN107534602A (zh) 2018-01-02
EP3280100A1 (en) 2018-02-07
EP3280100A4 (en) 2018-12-05
TW201701621A (zh) 2017-01-01
WO2016159057A1 (ja) 2016-10-06
US20180109472A1 (en) 2018-04-19

Similar Documents

Publication Publication Date Title
JP6477864B2 (ja) 制御装置、制御方法及びプログラム
KR20170134559A (ko) 제어기, 제어 방법 및 프로그램
Ejaz et al. Traffic load balancing using software defined networking (SDN) controller as virtualized network function
JP5835846B2 (ja) ネットワークシステム及び仮想ノードのマイグレーション方法
JP6574304B2 (ja) 仮想ネットワーク管理
JP5664557B2 (ja) 計算機、ネットワーク接続切替え方法およびプログラム
JP6619096B2 (ja) ファイアウォールクラスタ
JPWO2014080949A1 (ja) クラウド環境提供システム、サービス管理装置、経路制御方法及びプログラム
WO2021147358A1 (zh) 一种网络接口的建立方法、装置及系统
JP5904285B2 (ja) 通信システム、仮想ネットワーク管理装置、通信ノード、通信方法及びプログラム
Escalona et al. Using SDN for cloud services provisioning: the XIFI use-case
US10965599B2 (en) Methods and arrangements for end-point mobility of a traffic engineering tunnel of a multi-domain network
JP5063726B2 (ja) 仮想ノード装置のコンフィグ制御方法
KR20170134557A (ko) 제어기, 제어 방법 및 프로그램
WO2014142094A1 (ja) 通信システム、物理マシン、仮想ネットワーク管理装置、および、ネットワーク制御方法
KR101739100B1 (ko) 서비스 체이닝 가능한 오픈플로우 스위치 제어 방법 및 그 제어기
Kontesidou et al. Openflow virtual networking: A flow-based network virtualizationarchitecture
JP6540299B2 (ja) 仮想ネットワーク管理システム、仮想ネットワーク管理装置、仮想ネットワーク管理方法及びプログラム
Petrecki et al. Prototype of self-managing content aware network system focused on QoS assurance
van Kleef et al. Report: Self–Adaptive Routing

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application