Nothing Special   »   [go: up one dir, main page]

KR102153585B1 - Method and apparatus for network functions virtualization - Google Patents

Method and apparatus for network functions virtualization Download PDF

Info

Publication number
KR102153585B1
KR102153585B1 KR1020140075118A KR20140075118A KR102153585B1 KR 102153585 B1 KR102153585 B1 KR 102153585B1 KR 1020140075118 A KR1020140075118 A KR 1020140075118A KR 20140075118 A KR20140075118 A KR 20140075118A KR 102153585 B1 KR102153585 B1 KR 102153585B1
Authority
KR
South Korea
Prior art keywords
flow
network function
server
switch
virtual machine
Prior art date
Application number
KR1020140075118A
Other languages
Korean (ko)
Other versions
KR20150000420A (en
Inventor
최강일
이범철
이정희
이상민
이승우
박영호
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US14/311,281 priority Critical patent/US20140376555A1/en
Publication of KR20150000420A publication Critical patent/KR20150000420A/en
Application granted granted Critical
Publication of KR102153585B1 publication Critical patent/KR102153585B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • 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
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows

Landscapes

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

Abstract

플로우에 가상화된 네트워크 기능을 적용하는 적어도 하나의 네트워크 기능 가상 머신, 그리고 플로우를 수신하고, 스위칭 테이블에 따라 적어도 하나의 네트워크 기능 가상 머신으로 상기 플로우를 스위칭하는 네트워크 기능 플로우 스위치를 포함하는 네트워크 기능 가상화 장치 및 플로우에 가상 네트워크 기능을 적용하는 네트워크 기능 가상화 방법이 제공된다.Network function virtualization including at least one network function virtual machine applying a virtualized network function to a flow, and a network function flow switch that receives the flow and switches the flow to at least one network function virtual machine according to a switching table. A network function virtualization method for applying a virtual network function to a device and a flow is provided.

Description

네트워크 기능 가상화 장치 및 방법{Method and apparatus for network functions virtualization}TECHNICAL FIELD [Method and apparatus for network functions virtualization]

본 발명은 네트워크 기능 가상화를 제공하는 방법 및 장치에 관한 것이다. The present invention relates to a method and apparatus for providing network function virtualization.

최근 들어 반도체 기술이 발전하면서 컴퓨터 프로세서의 성능이 고도로 향상되었고, 멀티 코어 프로세서 기술이 발전하면서 하나의 서버에서 동시에 수행할 수 있는 작업 양이 증가하게 되었다. In recent years, with the development of semiconductor technology, the performance of computer processors has been highly improved, and with the development of multi-core processor technology, the amount of work that can be performed simultaneously on one server has increased.

한편, 기업 또는 금융 분야의 사설 데이터 센터에서는 적게는 수십 대에서 많게는 수백 대의 서버를 설치하여 기업 또는 금융 분야의 서비스(기업 재무, 금융 서비스, 증권 서비스 등)를 제공하고 있다. 또한, 인터넷 데이터 센터(internet data center, IDC)에서는 다양한 서비스(웹 서버, 메일 서버, 파일 서버, 비디오 서버, 클라우드 서버 등)를 서로 다른 사용자에게 안정적으로 제공하기 위하여 수백 또는 수천 대의 서버를 한 장소에 설치하고 있다. 따라서 기업 운영자 또는 인터넷 서비스 제공자 등은 서버를 통합 운영하여 비용을 줄이고 서버 관리의 간소화를 요구하게 되었고, 서버 저장소 또는 랜더 팜(render farm)과 같은 대규모 멀티 프로세서와 클러스터 장비를 제어할 필요도 발생되었다. 또한, 특정 운영 체제에 의존적인 응용 프로그램을 다른 하드웨어 또는 운영 체제에서 실행시킬 필요도 발생하게 되었다.Meanwhile, in private data centers in the corporate or financial sector, as few as dozens to as many as hundreds of servers are installed to provide corporate or financial services (corporate finance, financial services, securities services, etc.). In addition, in an internet data center (IDC), hundreds or thousands of servers are provided in one place to stably provide various services (web server, mail server, file server, video server, cloud server, etc.) to different users. It is installed on. Therefore, enterprise operators or Internet service providers have demanded to reduce costs and simplify server management by integrating servers, and to control large-scale multi-processors and cluster equipment such as server storage or render farms. . In addition, there is a need to execute an application program dependent on a specific operating system in other hardware or operating system.

이런 요구사항을 만족시키기 위하여 서버 가상화(server virtualization) 개념이 등장하게 되었다. 서버 가상화 환경에서는 하나의 서버에 하나 이상의 서로 다른 가상 머신(virtual machine)이 존재할 수 있다. 이러한 여러 개의 서로 다른 가상 머신이 가상화된 서버의 하드웨어(cpu, 메모리, 스토리지, 네트워크 인터페이스 등) 자원을 공유할 수 있다. 하이퍼바이저는 서버 내에서 가상 머신의 생성, 제거, 이전 및 자원 관리 등의 기능을 수행할 수 있다. 또한 하이퍼바이저는 가상 머신이 네트워크 및 스토리지를 공유할 수 있도록 한다. 스토리지의 경우, 하이퍼바이저가 논리적 또는 물리적으로 분할된 영역의 스토리지를 각 가상 머신 별로 사용하도록 설정하여, 가상 머신 간에 간섭 없이 전체 스토리지를 공유할 수 있다.To meet these requirements, the concept of server virtualization has emerged. In a server virtualization environment, one or more different virtual machines may exist on one server. These different virtual machines can share the hardware (cpu, memory, storage, network interface, etc.) resources of the virtualized server. The hypervisor can perform functions such as creation, removal, transfer, and resource management of virtual machines within the server. In addition, the hypervisor allows virtual machines to share network and storage. In the case of storage, by setting the hypervisor to use storage in a logically or physically divided area for each virtual machine, the entire storage can be shared between virtual machines without interference.

하지만, 네트워크의 경우, 하나의 서버에 설치된 여러 개(수십에서 수백 개)의 가상 머신이 소수의 네트워크 장치를 공유하는 경우가 일반적이다. 하나 이상의 가상 머신이 네트워크 장치를 공유할 때, 네트워크 장치는 네트워크 레벨에서 각 가상 머신이 서로를 간섭하지 않고 네트워크를 공유할 수 있도록 해야 한다. 이러한 문제를 해결하기 위한 기술이 네트워크 가상화(network virtualization) 기술이다. However, in the case of a network, it is common for several (tens to hundreds) virtual machines installed on a single server to share a small number of network devices. When more than one virtual machine shares a network device, the network device must allow each virtual machine to share the network without interfering with each other at the network level. A technology for solving this problem is a network virtualization technology.

네트워크 가상화 기술에서 해결해야 하는 가장 큰 문제는 하나의 가상 머신에서 발생된 네트워크 데이터를 다른 가상 머신에서 발생된 네트워크 데이터와 논리적으로 구분시키는 것이다. 이러한 네트워크 가상화의 문제를 해결한 첫 번째 기술은 계층 2 가상 근거리 네트워크(layer 2 VLAN) 기술이다. Layer 2 VLAN 기술에서는 첫 번째 단의 Layer 2 스위치에서 각 가상 머신에서 발생된 네트워크 데이터에 대해 독립적으로 VLAN ID를 부여하여, 하나의 가상 머신에서 발생된 네트워크 데이터를 다른 가상 머신에서 발생된 네트워크 데이터와 논리적으로 구분시킨다. 이 기술은 기존 Layer 2 스위치의 변경을 최소화 할 수 있어서 현재 거의 모든 Layer 2 스위치에 적용되고 있다. 하지만, Layer 2 VLAN 기술에는 지원할 수 있는 가상 머신의 최대 개수가 4096개(=212, VLAN ID가 12비트이기 때문)라는 한계가 있다.The biggest problem to be solved in network virtualization technology is to logically separate network data generated from one virtual machine from network data generated from another virtual machine. The first technology to solve this problem of network virtualization is a layer 2 virtual local area network (layer 2 VLAN) technology. In Layer 2 VLAN technology, a VLAN ID is independently assigned to the network data generated by each virtual machine in the first Layer 2 switch, and network data generated in one virtual machine is transferred to the network data generated in another virtual machine. Make it logically separate. Since this technology can minimize changes to existing Layer 2 switches, it is currently applied to almost all Layer 2 switches. However, the Layer 2 VLAN technology has a limit of 4096 virtual machines (=2 12 , because the VLAN ID is 12 bits).

이러한 Layer 2 VLAN 기술의 한계를 극복하기 위해 큐인큐(Q-in-Q) 및 맥인맥(MAC-in-MAC)과 같은 기술이 등장하였다. Layer 2 VLAN 기술의 다른 한계점인 동일 하이퍼바이저 내의 서로 다른 가상 머신의 네트워크 연결 문제를 해결하기 위해 에지 가상 브리징(edge virtual bridging, EVB) 및 고성능 휴대 저장소(high efficiency portable archive, HEPA) 등과 같은 기술도 등장하였다.Technologies such as Q-in-Q and MAC-in-MAC have appeared in order to overcome the limitations of the Layer 2 VLAN technology. Other limitations of Layer 2 VLAN technology, such as edge virtual bridging (EVB) and high efficiency portable archive (HEPA), are also available to solve the network connection problem of different virtual machines within the same hypervisor. Appeared.

네트워크 가상화를 구현할 수 있는 다른 기술은 Layer 2 가상 네트워크 태그(virtual network tag, VNTAG) 기술이다. Layer 2 VNTAG 기술은 첫 번째 단의 Layer 2 스위치에 독립적으로 동작하는 VNTAG를 추가하여 가상 머신에서 발생된 네트워크 데이터를 다른 가상 머신에서 발생된 네트워크 데이터와 논리적으로 구분시킨다. Layer 2 VNTAG 기술은 L2 브리지를 확장할 수 있고, 가상 네트워크를 인식할 수 있다. 또한 물리적인 포트처럼 개별적으로 가상 인터페이스를 설정할 수 있다는 장점이 있다. 하지만, L2 레벨에 새로 추가된 VNTAG를 처리하는 기능이 하드웨어에 새로 추가되어야 하고, VNTAG를 사용하기 위해서는 네트워크에 포함된 모든 L2 스위치가 VNTAG를 지원해야 한다는 단점이 있다. Another technology that can implement network virtualization is the Layer 2 virtual network tag (VNTAG) technology. Layer 2 VNTAG technology logically separates network data generated in virtual machines from network data generated in other virtual machines by adding VNTAG that operates independently to the first Layer 2 switch. Layer 2 VNTAG technology can extend the L2 bridge and recognize virtual networks. It also has the advantage of being able to individually configure virtual interfaces like a physical port. However, there is a disadvantage that the function to process the newly added VNTAG at the L2 level must be newly added to the hardware, and in order to use VNTAG, all L2 switches included in the network must support VNTAG.

한편, 이러한 기술이 L2 계층의 하드웨어에 기반한 가상화 기술이었다면, 소프트웨어 가상 스위치(software virtual switch, vswitch)에 기반한 가상화 기술도 등장하였다. vSwitch 기술은, 가상 머신을 관리하는 하이퍼바이저 내에 vSwitch를 설치함으로써, 가상 머신에서 발생된 플로우를 물리 네트워크 인터페이스로 스위칭한다. 이때, 출발 가상 머신이 속해있는 하이퍼바이저 내의 vSwitch는 모든 출발 가상 머신에서 새로 생성되는 모든 플로우에 대해 해당 플로우를 탐지하여 오픈 플로우 컨트롤러(openflow controller)로 보고한다. 오픈플로우 컨트롤러는 수신된 플로우 정보를 바탕으로 새로운 플로우 엔트리와 새로운 플로우 ID를 생성하고, 목적지 서버에 대해 새로운 플로우 엔트리와 플로우 ID를 설정한다. 또한 오픈플로우 스위치의 스위칭 테이블을 생성하여 모든 오픈플로우 스위치에게 신규 플로우 ID를 추가할 것을 지시하는 메시지를 전송한다. 오픈플로우 스위치는 플로우 ID로 인캡슐레이션(encapsulation)된 네트워크 데이터를 스위칭한다. 도착 가상 머신이 속해있는 하이퍼바이저 내의 vSwitch는 플로우 ID로 인캡슐레이션 된 네트워크 데이터를 디캡슐레이션(decapsulation)하여 원래 네트워크 데이터를 추출할 수 있다.On the other hand, if such a technology was a virtualization technology based on hardware of the L2 layer, a virtualization technology based on a software virtual switch (vswitch) also appeared. The vSwitch technology switches a flow generated in a virtual machine to a physical network interface by installing a vSwitch in a hypervisor that manages a virtual machine. At this time, the vSwitch in the hypervisor to which the starting virtual machine belongs detects the corresponding flow for all flows newly created in all the starting virtual machines and reports it to the open flow controller. The openflow controller generates a new flow entry and a new flow ID based on the received flow information, and sets a new flow entry and a flow ID for the destination server. In addition, it creates a switching table of openflow switches and sends a message instructing all openflow switches to add a new flow ID. The openflow switch switches network data encapsulated by flow ID. The vSwitch in the hypervisor to which the destination virtual machine belongs can extract the original network data by decapsulating the network data encapsulated by the flow ID.

최근, 네트워크 가상화(network virtualization) 기술과 함께 네트워크 기능 가상화(network functions virtualization, NFV) 기술이 주목되고 있다. 망 사업자가 운용하는 네트워크에는 수 많은 하드웨어 장비들이 존재하지만, 망 사업자가 기존에 보유하고 있던 장비를 사용하여 새로운 네트워크 서비스를 도입하려 할 때 각종 어려움이 발생할 수 있다. 즉, 새로운 서비스를 위한 장비의 공간 문제, 전력 문제 및 복잡하게 배치된 기존 장비와의 새로운 구조를 형성해야 하는 문제 등의 어려움이 있어 망 사업자가 새로운 서비스를 도입하는데 많은 비용 및 시간이 소요되고 있다. 이처럼 망 사업자가 하드웨어 기반의 복잡한 장비를 이용하여 새로운 서비스를 도입하게 되면, 전력 및 비용 문제뿐만 아니라 새로운 장비를 설계하고, 기존 장비와 새로운 장비를 통합 운용하기 위해 복잡한 기술 개발이 요구된다. 또한 하드웨어 기반의 장비는 장비의 수명이 짧아짐에 따라, 새로운 하드웨어 기반의 장비를 구매하고, 설계하고, 통합하고, 구축하는 과정이 매출 증대 없이 계속 이어져야 하는 문제점도 있다. 더 심각한 문제는 이러한 하드웨어 라이프사이클이 기술 및 서비스의 개선이 가속화되면서 더욱 짧아지게 되어 매출 증대 없이 추가적으로 발생하는 하드웨어 비용의 지출이, 매출 증대가 가능한 새로운 네트워크 서비스의 도입을 방해하고 네트워크 중심 세상으로의 혁신적 개선을 제한하고 있다는 점이다.Recently, network functions virtualization (NFV) technology has been attracting attention along with network virtualization technology. There are numerous hardware equipment in the network operated by the network operator, but various difficulties may arise when the network operator attempts to introduce a new network service using the equipment already possessed. In other words, there are difficulties such as space problems of equipment for new services, power problems, and problems of forming a new structure with complicatedly arranged existing equipment, and it takes a lot of cost and time for network operators to introduce new services. . As such, when a network operator introduces a new service using complex hardware-based equipment, complex technology development is required to design new equipment as well as power and cost issues, and to integrate and operate existing equipment and new equipment. In addition, as the life of the hardware-based equipment is shortened, the process of purchasing, designing, integrating, and building new hardware-based equipment must continue without increasing sales. A more serious problem is that the hardware lifecycle becomes shorter as technology and services are accelerated, so that additional hardware expenditures without increasing sales hinder the introduction of new network services that can increase sales and become a network-centric world. It is limiting innovative improvement.

NFV 기술은 이러한 문제점을 해결하기 위해 망 사업자가 IT 가상화 기술을 사용하여 데이터 센터, 네트워크 노드 또는 종단 사용자 장비에 존재하는 산업 표준 서버, 스위치 및 스토리지 등을 이용하여 네트워크의 구조를 설계하는 기술이다. 즉, NFV 기술은 네트워크 기능을 기존 산업 표준 서버 및 하드웨어에서 동작할 수 있는 소프트웨어로 구현하는 것이다. NFV 기술의 소프트웨어는 필요에 따라 네트워크의 다양한 위치로 새로운 장비의 설치 없이 이동될 수 있다. NFV 기술이 적용될 수 있는 네트워?? 장비는, 스위칭 장비 (BNG, CG-NAT, 라우터 등), 모바일 네트워크 노드 장비(HLR/HSS, MME, SGSN, GGSN/PDN-GW, RNC, Node B, eNode B 등), 홈 라우터 및 셋탑박스 장비, 터널링 게이트웨이 장비(IPSec/SSL VPN 게이트웨이 등), 트래픽 분석 장비(DPI, QoE 측정 등), 서비스 보장 및 SLA 모니터링 및 테스트 및 검증 장비, NGN 시그널링 장비(SBCs, IMS 등), 네트워크 기능 장비(AAA 서버들, 정책 제어 및 과금 플랫폼 등), 응용 레벨 최적화 장비(CDNs, Cache Servers, Load Balancers 등), 가속화 장비, 보안 장비(Firewalls, 바이러스 탐지, 침입 탐지 시스템, 스팸 보호 등) 등이 있다. NFV technology is a technology in which a network operator uses IT virtualization technology to design a network structure using industry standard servers, switches, and storage existing in data centers, network nodes or end-user equipment in order to solve these problems. In other words, NFV technology implements network functions with software that can operate on existing industry standard servers and hardware. NFV technology's software can be moved to various locations on the network as needed without installing new equipment. Network to which NFV technology can be applied?? Equipment includes switching equipment (BNG, CG-NAT, router, etc.), mobile network node equipment (HLR/HSS, MME, SGSN, GGSN/PDN-GW, RNC, Node B, eNode B, etc.), home router and set-top box. Equipment, tunneling gateway equipment (IPSec/SSL VPN gateway, etc.), traffic analysis equipment (DPI, QoE measurement, etc.), service guarantee and SLA monitoring and test and verification equipment, NGN signaling equipment (SBCs, IMS, etc.), network function equipment ( AAA servers, policy control and billing platforms, etc.), application level optimization equipment (CDNs, Cache Servers, Load Balancers, etc.), acceleration equipment, and security equipment (Firewalls, virus detection, intrusion detection systems, spam protection, etc.).

NFV 기술을 뒷받침하는 기술에는 클라우드 컴퓨팅(cloud computing) 기술 및 산업 표준 대량 서버(industry standard high volume servers) 기술이 있다. 클라우드 컴퓨팅 기술의 핵심은 하이퍼바이저와 가상 이더넷 스위치(vSwitch)를 이용하여 하드웨어를 가상화하여 가상 머신과 물리 인터페이스 간의 트래픽을 연결해주는 기술이다. 통신 중심의 기능에 대해서는 고속의 I/O 대역폭을 갖는 초고속 멀티코어 CPU와, 로드 분산 및 TCP 오프로딩을 지원하는 스마트 이더넷 NIC 카드를 이용하여 데이터가 가상 머신 메모리로 직접 라우팅 되도록 한다. 또한, 인터럽트 기반의 방식이 아닌 폴링 모드의 이더넷 드라이버(LINUX NAPI 또는 Intel DPDK)를 사용하여 고성능 데이터 처리가 가능하게 할 수 있다. 또한, 클라우드 인프라는 네트워크에서 가상 장비의 자동 설치, 가상 장비를 정확한 CPU 코어, 메모리 및 인터페이스에 할당하는 자원 관리, 장애가 발생한 VM의 재설치, VM 상태의 스냅샷과 VM의 이주에 적용 가능한 조직화 및 관리 메커니즘(orchestration and management mechanisms)을 사용하여 자원의 가용성 및 사용성을 개선할 수 있다. 마지막으로, 관리 평면과 데이터 평면에 대한 개방형 애플리케이션 프로그래밍 인터페이스(application programming interface, API)(Openflow, OpenStack, OpenNaaS, OGF's NSI 등)의 제공은 NFV 및 클라우드 인프라 사이의 추가적인 통합을 제공할 수 있다.Technologies that support NFV technology include cloud computing technology and industry standard high volume servers technology. The core of cloud computing technology is a technology that connects traffic between virtual machines and physical interfaces by virtualizing hardware using a hypervisor and a virtual Ethernet switch (vSwitch). For communication-oriented functions, data is routed directly to the virtual machine memory using an ultra-high-speed multi-core CPU with high-speed I/O bandwidth and a smart Ethernet NIC card that supports load distribution and TCP offloading. In addition, it is possible to enable high-performance data processing by using an Ethernet driver (LINUX NAPI or Intel DPDK) in polling mode rather than an interrupt-based method. In addition, the cloud infrastructure provides automatic installation of virtual equipment on the network, resource management that allocates virtual equipment to the correct CPU cores, memory and interfaces, reinstallation of failed VMs, and organization and management applicable to VM state snapshots and VM migration. Orchestration and management mechanisms can be used to improve the availability and availability of resources. Finally, the provision of open application programming interfaces (APIs) (Openflow, OpenStack, OpenNaaS, OGF's NSI, etc.) to the management plane and data plane can provide additional integration between NFV and cloud infrastructure.

산업 표준 대량 서버 기술에서 산업 표준 대량 서버의 사용은 경제적인 측면에서 NFV 기술의 주요 요소이다. NFV 기술은 IT 산업에서 규모의 경제를 이용한다. 산업 표준 대량 서버는 수백만 대가 팔리는 표준화된 IT 제품(예를 들어, x86 구조의 CPU)을 사용하여 서버를 구성한다. 표준화된 IT 제품을 사용하는 서버에는 일반적으로 서버 부품의 경쟁 공급 회사가 존재한다. ASIC의 개발 비용이 기하급수적으로 증가하고 있기 때문에, 향후 ASIC을 사용하여 하드웨어 장비를 개발하는 회사들이 범용 프로세서를 사용하여 개발하는 장비들에 대해 경쟁에서 밀리게 될 것이다. 향후 ASIC을 사용하는 하드웨어 제품은 초고속 처리 성능 전용 제품으로 한정될 것으로 예상된다.In the industry standard mass server technology, the use of industry standard mass servers is a major factor in NFV technology in terms of economics. NFV technology takes advantage of economies of scale in the IT industry. Industry-standard bulk servers use standardized IT products (eg, x86-architecture CPUs) that sell millions of units to configure servers. Servers using standardized IT products generally have competing suppliers of server components. As the development cost of ASICs is increasing exponentially, companies developing hardware equipment using ASICs in the future will be pushed out of the competition for equipment developed using general-purpose processors. In the future, hardware products using ASICs are expected to be limited to products dedicated to ultra-high-speed processing performance.

NFV 기술에는 수많은 기술적 과제가 존재한다. 먼저, 이식성 및 상호운용(Portability/Interoperability)의 문제가 있다. 서로 다른 회사에서 만든 서로 다른 제품이 서로 다른 망 운용자의 표준화된 서로 다른 데이터 센터 환경에 사용될 때, 각 환경에 네트워크 기능이 문제없이 탑재되고 가상 장비에서 실행될 수 있어야 한다. 해결해야 할 과제는 네트워크 소프트웨어를 분명하게 분할하여 통합된 인터페이스를 정의하는 것이다. 또 다른 문제는 성능(performance trade off)의 문제이다. 네트워크 기능 가상화는 업체 표준 하드웨어에 기반하고 있기 때문에 성능의 감소를 내포할 수 있다. 따라서 적절한 하이퍼바이저 및 최신 소프트웨어 기술을 사용하여 성능 저하를 최소화함으로써 지연, 처리량 및 처리 오버헤드를 최소화할 수 있어야 한다. 또 다른 문제는 기존 장비와의 공존 및 호환성(migration and co-existency of legacy & compatibility with existing platforms) 문제이다. NFV 장비는 반드시 네트워크 운영자의 기존 망 장비와 공존할 수 있어야 하고, 기존의 노드 관리 시스템(element management systems), 네트워크 관리 시스템(network management systems) 및 OSS/BSS와 호환성이 있어야 한다. 또 다른 문제는 관리 및 조직화(management and orchestration) 문제이다. NFV 기술에는 일관적 관리 및 조직화 구조가 필요하다. NFV 기술은 소프트웨어 기반 기술의 융통성을 통해 잘 정의되고, 표준화되고, 추상화된 사양을 따라서 소프트웨어 네트워크 장비를 개방되고 표준화된 인프라로 운용할 수 있어야 한다. 이것은 네트워크 운용 환경에 새로운 가상 장비를 통합하는데 소요되는 비용과 시간을 크게 줄여줄 것이다. 다음 과제는 자동화(automation) 문제이다. NFV 기술은 모든 기능이 자동화될 수 있을 때만 규모가 증가할 수 있다. 따라서 자동화는 성공의 중요한 요소이다. 다음 과제는 보안 및 탄력성(security & resilence) 문제이다. 새로 도입될 NFV 기술이 네트워크의 보안성, 탄력성 및 가용성을 손상하지 않는 것이 보장될 수 있어야 한다. NFV 기술은 장비의 고장시에도 네트워크 기능을 재생성함으로써 네트워크의 탄력성 및 가용성을 개선할 수 있을 것으로 보인다. 가상 장비는 인프라가 안전하다면, 특히 하이퍼바이저와 하이퍼바이저의 설정 값이 정상이라면, 실제 장비만큼 안전해야 한다. 네트워크 운용자는 하이퍼바이저의 설정 값을 제어하고 확인할 수 있는 툴을 개발할 것이다. 또한 인증된 하이퍼바이저와 가상 장비를 요청할 것이다. 다음 과제는 네트워크 안정성(network stability)의 문제이다. 네트워크 안정성을 보장한다는 것은 서로 다른 하드웨어 제조사와 서로 다른 하이퍼바이저 사이에서 많은 가상 장비들이 관리되고 조직화될 때 서로 영향을 주고 받지 않는 것을 의미한다. 이것은 가상 기능이 하드웨어 또는 소프트웨어의 장애로 인해 재설정되거나, 사이버 공격으로 인해 가상 기능의 위치가 변경되는 경우에 특히 중요하다. 다음 과제는 단순성(simplicity)의 문제이다. 이것은 가상 네트워크 플랫폼이 현재의 장비를 운용하는 것보다 단순해야 한다는 것이다. 현재 네트워크 관리자의 중요한 관심은 지난 수십 년간 네트워크 기술이 발전함에 따라 진화해온 과다하고 복잡한 네트워크 플랫폼과 지원 시스템에 대해 매출 생산 서비스의 지속적인 지원을 유지하면서 네트워크의 운용을 단순화하는 것이다. 다음 과제는 통합(integration)의 문제이다. 다수의 가상 장비를 기존의 산업 표준 대량 서버 및 하이퍼바이저에 매끄럽게 통합하는 것은 NFV 기술의 가장 중요한 과제 중 하나이다. 네트워크 운용자는 서로 다른 제조사로부터 구매한 서버, 하이퍼바이저 및 가상 장비를 서로 섞어서 사용할 때 심각한 통합 비용을 유발하지 않아야 한다.There are numerous technical challenges in NFV technology. First, there is a problem of portability and interoperability. When different products made by different companies are used in different standardized data center environments of different network operators, network functions must be installed in each environment without problems and be able to run on virtual machines. The challenge to be solved is to clearly segment the network software to define a unified interface. Another problem is the performance trade off. Because network function virtualization is based on vendor standard hardware, it can imply a decrease in performance. Therefore, it should be possible to minimize latency, throughput, and processing overhead by minimizing performance degradation by using the appropriate hypervisor and the latest software technology. Another problem is the problem of migration and co-existency of legacy & compatibility with existing platforms. The NFV equipment must be able to coexist with the existing network equipment of the network operator, and must be compatible with the existing element management systems, network management systems, and OSS/BSS. Another problem is the management and orchestration problem. NFV technology requires a consistent management and organizational structure. NFV technology must be able to operate software network equipment as an open and standardized infrastructure according to well-defined, standardized, and abstracted specifications through the flexibility of software-based technology. This will greatly reduce the cost and time required to integrate new virtual equipment into the network operating environment. The next challenge is the automation problem. NFV technology can only be scaled up when all functions can be automated. Thus, automation is an important component of success. The next challenge is security & resilence. It should be possible to ensure that the newly introduced NFV technology does not compromise the security, resilience and availability of the network. NFV technology is expected to improve network resilience and availability by regenerating network functions even in the event of equipment failure. Virtual devices should be as secure as real devices if the infrastructure is secure, especially if the hypervisor and hypervisor settings are normal. Network operators will develop tools to control and verify hypervisor settings. It will also request a certified hypervisor and virtual device. The next challenge is the problem of network stability. Ensuring network stability means that many virtual machines between different hardware manufacturers and different hypervisors are not affected by each other as they are managed and organized. This is particularly important when the virtual function is reset due to hardware or software failure, or the location of the virtual function is changed due to a cyber attack. The next challenge is the question of simplicity. This means that the virtual network platform should be simpler than running the current equipment. An important concern of current network administrators is to simplify the operation of the network while maintaining continuous support of sales production services for the redundant and complex network platforms and support systems that have evolved as network technology has evolved over the past decades. The next challenge is the problem of integration. The seamless integration of multiple virtual machines into existing industry standard bulk servers and hypervisors is one of the most important challenges of NFV technology. Network operators should not incur significant consolidation costs when mixing servers, hypervisors and virtual equipment purchased from different manufacturers.

위에서 언급한 NFV 기술의 문제점을 해결하기 위한 시도 중, CHANGE 프로젝트에서는 성능 문제를 해결하기 위해 플로우스트림 플랫폼(The Flowstream platform) 구조를 사용하였다. 플로우스트림 플랫폼에서는 플로우를 처리하기 위한 플랫폼으로 상용 하드웨어를 사용하였다. 또한 네트워크 기능을 수행하는 모듈 호스트로 트래픽을 스위칭 하는, 프로그램 가능한 스위치를 사용하였다. 스위치에서 모듈 호스트로 전달된 트래픽은 모듈 호스트에서 실행되는 사용자 정의 처리 기능에 의해 스위칭 될 수 있다. 플로우스트림 플랫폼에서는 모듈 호스트의 성능 문제를 해결하기 위해 넷맵(netmap) 기술, 클릭OS(clickOS) 기술 및 플로우OS(FlowOS) 기술을 사용하였다. 넷맵 기술은 기존에 존재하던 기술로서, CHANGE 프로젝트에서 더욱 개선되었다. 넷맵은 사용자 레벨의 데이터를 고속으로 처리하기 위한 체계(framework)이다. 넷맵은 사용자 스페이스에서 보안을 보장하면서 NIC의 링 버퍼를 직접 고속으로 액세스 할 수 있도록 허용함으로써, 일반 데이터 스택에서 불필요한 것을 제거할 수 있다. 넷맵은 900MHz로 동작하는 CPU 코어에서 초당 140만개의 데이터를 처리하는 성능을 보일 수 있다. 클릭OS는 클릭 소프트웨어 라우터와 미니OS(MiniOS)를 결합한 구조이다. 클릭OS는 기존에 존재하는 하이퍼바이저(Xen 등)에서 실행될 수 있는 경량 가상 머신을 구축할 수 있다. 클릭OS는 클릭(click, 모듈 라우터로서 네트워크 기능 중 하나)을 OS 레벨에서 동작하게 함으로써, 클릭 모듈 간에 Xen과 같은 레벨의 격리를 보장하면서 여러 사용자가 같은 하드웨어를 공유할 수 있게 할 수 있다. 클릭OS를 통해 더 나은 성능을 제공할 수 있다. 플로우OS는 NIC로부터 수신된 IP 데이터를 처리하는 커널 모듈이다. 플로우OS는 각 플로우에 대한 공유 가상 큐를 생성하고 수신한 IP 데이터를 해당 데이터가 소속되는 가상 큐로 보낸다. 하나의 플로우는 하나의 프로토콜(예를 들어, IP, TCP, UDP 등)당 하나의 큐를 가지는 다수 개의 데이터 스트림 가상 큐를 유지할 수 있다. 처리 모듈(processing module)은 하나의 플로우에 연결되어 해당 플로우에 속하는 데이터를 처리하는 커널 모듈이다. 각 처리 모듈은 플로우의 특정 계층에 대해 동작하고, 각 데이터 처리에 대해 해당하는 처리 커널 모듈을 생성한다. 플로우OS는 분류기(classifier), 통합기(merger), 플로우 제어기(flow controller) 및 처리 파이프라인(processing pipeline)으로 구성될 수 있다. 분류기는 트래픽을 수신하는 쪽에 위치하여 플로우 제어기가 설정한 규칙에 따라서 IP 데이터를 적절한 플로우에 전달한다. 통합기는 트래픽을 출력하는 쪽에 위치하고, IP 데이터를 재조립하여 출력 인터페이스로 전달한다. 플로우 제어기는 플로우의 각 프로토콜에 대해 큐를 생성하고 관리한다. 또한, 플로우를 추가 및 삭제하고, 플로우의 정의를 수정하며, 처리 모듈을 플로우에 동적으로 연결하거나 연결 해제를 담당한다. 또한, 플로우 제어기는 네트워크의 다른 개체(플로우 송신부, 플로우 수신부 및 상대방 플로우 처리 플랫폼 등)와의 통신을 책임진다. 플로우스트림 플랫폼에서는 이러한 세가지 기술(넷맵, 클릭OS 및 플로우OS)을 병렬적으로 사용하고 서로 상호 보안되도록 하였다. 넷맵과 플로우OS는 더 나은 독립성을 보장하기 위해 클릭OS 내에서 동시에 동작될 수 있다. 플로우OS는 넷맵의 고속 데이터 경로 처리 기술을 사용하기 위해 넷맵을 이용하여 구현될 수도 있다. While attempting to solve the problems of the NFV technology mentioned above, the CHANGE project used the structure of The Flowstream platform to solve the performance problem. In the flowstream platform, commercial hardware was used as a platform for processing flows. In addition, a programmable switch was used to switch traffic to a module host that performs network functions. Traffic transferred from the switch to the module host can be switched by user-defined processing functions executed on the module host. In the Flowstream platform, netmap technology, clickOS technology, and FlowOS technology were used to solve the performance problem of the module host. Netmap technology, as the existing technology, was further improved in the CHANGE project. Netmap is a framework for processing user-level data at high speed. Netmap can remove unnecessary things from the general data stack by allowing direct high-speed access to the NIC's ring buffer while ensuring security in user space. Netmap can process 1.4 million data per second on a CPU core running at 900MHz. ClickOS is a structure that combines the Click software router and MiniOS. ClickOS can build lightweight virtual machines that can run on existing hypervisors (Xen, etc.). ClickOS enables a click (one of the network functions as a module router) to operate at the OS level, so that multiple users can share the same hardware while guaranteeing the same level of isolation between click modules as Xen. You can provide better performance through ClickOS. FlowOS is a kernel module that processes IP data received from the NIC. FlowOS creates a shared virtual queue for each flow and sends the received IP data to the virtual queue to which the data belongs. One flow can maintain multiple data stream virtual queues with one queue per protocol (eg, IP, TCP, UDP, etc.). The processing module is a kernel module that is connected to one flow and processes data belonging to the flow. Each processing module operates on a specific layer of the flow, and generates a corresponding processing kernel module for each data processing. Flow OS may be composed of a classifier, a merger, a flow controller, and a processing pipeline. The classifier is located on the side of receiving the traffic and delivers IP data to the appropriate flow according to the rules set by the flow controller. The integrator is located on the side that outputs the traffic, reassembles the IP data and delivers it to the output interface. The flow controller creates and manages queues for each protocol in the flow. It is also responsible for adding and deleting flows, modifying the definition of flows, and dynamically connecting or disconnecting processing modules to flows. In addition, the flow controller is responsible for communication with other entities in the network (flow transmission unit, flow reception unit, counterpart flow processing platform, etc.). In the Flowstream platform, these three technologies (Netmap, ClickOS, and FlowOS) are used in parallel and mutually secured. Netmap and FlowOS can run simultaneously within ClickOS to ensure better independence. FlowOS can also be implemented using Netmap to use Netmap's high-speed data path processing technology.

하지만, 플로우스트림 플랫폼은 클릭OS와 넷맵을 사용하여 NFV 개념의 가능성을 보여주었지만, 커널 모드 소프트웨어를 수정하여 사용하였기 때문에 일반성이 많이 떨어진다. 또한, 클릭OS 같은 경우에는 제공할 수 있는 기능이 한정되어 있고 확장성이 뛰어나지 않아서 NFV에서 요구하는 다양성을 만족시키기 어렵다. 플로우OS 역시 커널 레벨에서 프로토콜 별로 멀티 가상 큐를 사용하여 병렬 처리하고 있으나, 커널 레벨에서의 분류기 및 통합기의 성능이 관건이고, 병렬 처리의 효과 역시 뚜렷하지 않다.However, the Flowstream platform showed the possibility of the NFV concept by using ClickOS and Netmap, but the generality is much inferior because the kernel mode software was modified and used. In addition, in the case of ClickOS, it is difficult to satisfy the diversity required by NFV because the functions that can be provided are limited and the scalability is not excellent. FlowOS also performs parallel processing using multiple virtual queues for each protocol at the kernel level, but the performance of the classifier and integrator at the kernel level is the key, and the effect of parallel processing is not clear.

본 발명이 이루고자 하는 과제는, 플로우의 속성에 따라 가상 네트워크 기능을 제공할 수 있는 네트워크 기능 가상화 장치 및 방법을 제공하는 것이다.An object of the present invention is to provide a network function virtualization apparatus and method capable of providing a virtual network function according to a flow attribute.

본 발명의 한 실시 예에 따르면, 플로우에 가상화된 네트워크 기능을 적용하는 네트워크 기능 가상화 방법이 제공된다. 상기 네트워크 기능 가상화 방법은, 플로우를 수신하는 단계, 네트워크 기능 플로우 스위치의 스위칭 테이블에 따라 플로우를 적어도 하나의 네트워크 기능 가상 머신으로 스위칭하는 단계, 그리고 플로우에 가상화된 네트워크 기능을 적용하는 단계를 포함한다.According to an embodiment of the present invention, a network function virtualization method for applying a virtualized network function to a flow is provided. The network function virtualization method includes receiving a flow, switching a flow to at least one network function virtual machine according to a switching table of a network function flow switch, and applying a virtualized network function to the flow. .

상기 네트워크 기능 가상화 방법은, 가상 머신에서 생성된 신규 플로우의 플로우 정보를 바탕으로 갱신된 플로우 테이블을 수신하는 단계, 그리고 플로우 테이블에 따라 스위칭 테이블을 갱신하는 단계를 더 포함할 수 있다.The network function virtualization method may further include receiving an updated flow table based on flow information of a new flow generated in the virtual machine, and updating the switching table according to the flow table.

상기 네트워크 기능 가상화 방법은, 수신하는 단계 이후, 플로우의 데이터 속성 또는 서비스 속성을 확인하는 단계를 더 포함하고, 스위칭하는 단계는, 데이터 속성 또는 서비스 속성을 바탕으로 스위칭 테이블에 따라 적어도 하나의 네트워크 기능 가상 머신으로 플로우를 스위칭할 수 있다.The network function virtualization method further includes the step of checking a data attribute or a service attribute of a flow after the receiving step, and the switching step includes at least one network function according to the switching table based on the data attribute or the service attribute. You can switch the flow to a virtual machine.

상기 네트워크 기능 가상화 방법에서 스위칭하는 단계는, 적어도 하나의 네트워크 기능 가상 머신의 서비스 속성에 따라 플로우를 스위칭하는 단계를 포함할 수 있다. Switching in the network function virtualization method may include switching a flow according to a service property of at least one network function virtual machine.

상기 네트워크 기능 가상화 방법에서 적어도 하나의 네트워크 기능 가상 머신의 서비스 속성에 따라 플로우를 스위칭하는 단계는, 적어도 하나의 네트워크 기능 가상 머신의 서비스 속성이 서버-서버인 경우, 서비스 속성이 서버-서버인 플로우에 최선의 우선 순위를 부여하는 단계, 그리고 적어도 하나의 네트워크 기능 가상 머신의 서비스 속성이 가입자-서버인 경우, 서비스 속성이 가입자-서버인 플로우에 최선의 우선 순위를 부여하는 단계를 포함할 수 있다.In the network function virtualization method, the step of switching the flow according to the service attribute of at least one network function virtual machine may include, when the service attribute of the at least one network function virtual machine is a server-server, the service attribute is a server-server flow. Assigning the best priority to the at least one network function virtual machine, and when the service attribute of the at least one network function virtual machine is a subscriber-server, giving the best priority to a flow in which the service attribute is a subscriber-server. .

상기 네트워크 기능 가상화 방법에서 적어도 하나의 네트워크 기능 가상 머신의 서비스 속성에 따라 플로우를 스위칭하는 단계는, 적어도 하나의 네트워크 기능 가상 머신의 서비스 속성이 실시간 서비스인 경우, 서비스 속성이 실시간 QoS인 플로우에 최선의 우선 순위를 부여하는 단계, 그리고 적어도 하나의 네트워크 기능 가상 머신의 서비스 속성이 지연 민감 서비스인 경우, 서비스 속성이 지연 민감 QoS인 플로우에 최선의 우선 순위를 부여하는 단계를 포함할 수 있다.In the network function virtualization method, the step of switching the flow according to the service attribute of at least one network function virtual machine is best for a flow in which the service attribute is real-time QoS when the service attribute of the at least one network function virtual machine is a real-time service. The step of assigning a priority of, and when the service attribute of the at least one network function virtual machine is a delay sensitive service, giving the best priority to a flow whose service attribute is a delay sensitive QoS.

상기 네트워크 기능 가상화 방법에서 가상화된 네트워크 기능을 적용하는 단계는, DHCP, NAT, Firewall, DPI 또는 load balancing 기능을 가상화하여 플로우에 적용하는 단계를 포함할 수 있다.Applying the virtualized network function in the network function virtualization method may include virtualizing a DHCP, NAT, Firewall, DPI or load balancing function and applying it to a flow.

상기 네트워크 기능 가상화 방법은, 가상화된 네트워크 기능이 적용된 제1 플로우를 분석하는 단계, 그리고 제1 플로우를 가상 머신 또는 가상 머신과 다른 가상 머신으로 스위칭하는 단계를 더 포함할 수 있다.The network function virtualization method may further include analyzing a first flow to which a virtualized network function is applied, and switching the first flow to a virtual machine or a virtual machine different from the virtual machine.

상기 네트워크 기능 가상화 방법에서 제1 플로우를 분석하는 단계는, 제1 플로우의 제1 플로우 정보를 추출하고, 제1 플로우 정보를 바탕으로 제1 플로우가 신규 플로우인지 판단하는 단계, 제1 플로우가 신규 플로우인 경우, 제1 플로우 정보를 바탕으로 갱신된 플로우 테이블을 수신하는 단계, 그리고 갱신된 플로우 테이블을 바탕으로 스위칭 테이블을 갱신하는 단계를 포함할 수 있다.Analyzing the first flow in the network function virtualization method includes extracting first flow information of the first flow and determining whether the first flow is a new flow based on the first flow information, and the first flow is new. In the case of a flow, it may include receiving an updated flow table based on the first flow information, and updating a switching table based on the updated flow table.

상기 네트워크 기능 가상화 방법은, 제1 플로우 정보를 플로우 테이블 캐시에 저장하는 단계를 더 포함할 수 있다. The network function virtualization method may further include storing the first flow information in a flow table cache.

본 발명의 다른 실시 예에 따르면, 플로우에 가상 네트워크 기능을 적용하는 네트워크 기능 가상화 장치가 제공된다. 상기 네트워크 기능 가상화 장치는, 플로우에 가상화된 네트워크 기능을 적용하는 적어도 하나의 네트워크 기능 가상 머신, 그리고 플로우를 수신하고, 스위칭 테이블에 따라 적어도 하나의 네트워크 기능 가상 머신으로 플로우를 스위칭하는 네트워크 기능 플로우 스위치를 포함한다.According to another embodiment of the present invention, a network function virtualization apparatus for applying a virtual network function to a flow is provided. The network function virtualization apparatus includes at least one network function virtual machine applying a virtualized network function to a flow, and a network function flow switch that receives the flow and switches a flow to at least one network function virtual machine according to a switching table. Includes.

상기 네트워크 기능 가상화 장치는, 가상 머신에서 생성된 신규 플로우의 플로우 정보를 바탕으로 갱신된 플로우 테이블을 수신하고, 스위칭 테이블을 갱신하는 네트워크 기능 에이전트를 더 포함할 수 있다.The network function virtualization apparatus may further include a network function agent for receiving an updated flow table based on flow information of a new flow generated in the virtual machine and updating the switching table.

상기 네트워크 기능 가상화 장치에서 네트워크 기능 플로우 스위치는, 플로우의 데이터 속성 또는 서비스 속성을 확인하고, 데이터 속성 또는 서비스 속성을 바탕으로 스위칭 테이블에 따라 적어도 하나의 네트워크 기능 가상 머신으로 플로우를 스위칭할 수 있다.In the network function virtualization apparatus, the network function flow switch may check the data attribute or service attribute of the flow, and switch the flow to at least one network function virtual machine according to the switching table based on the data attribute or service attribute.

상기 네트워크 기능 가상화 장치에서 네트워크 기능 플로우 스위치는, 적어도 하나의 네트워크 기능 가상 머신의 서비스 속성에 따라 플로우를 스위칭할 수 있다.In the network function virtualization apparatus, the network function flow switch may switch flows according to service properties of at least one network function virtual machine.

상기 네트워크 기능 가상화 장치에서 네트워크 기능 플로우 스위치는, 적어도 하나의 네트워크 기능 가상 머신의 서비스 속성이 서버-서버인 경우, 서비스 속성이 서버-서버인 플로우에 최선의 우선 순위를 부여하고, 적어도 하나의 네트워크 기능 가상 머신의 서비스 속성이 가입자-서버인 경우, 서비스 속성이 가입자-서버인 플로우에 최선의 우선 순위를 부여할 수 있다.In the network function virtualization apparatus, the network function flow switch, when the service attribute of at least one network function virtual machine is a server-server, gives the best priority to a flow whose service attribute is a server-server, and at least one network When the service attribute of the functional virtual machine is subscriber-server, the best priority can be given to a flow in which the service attribute is subscriber-server.

상기 네트워크 기능 가상화 장치에서 네트워크 기능 플로우 스위치는, 적어도 하나의 네트워크 기능 가상 머신의 서비스 속성이 실시간 서비스인 경우, 서비스 속성이 실시간 QoS인 플로우에 최선의 우선 순위를 부여하고, 적어도 하나의 네트워크 기능 가상 머신의 서비스 속성이 지연 민감 서비스인 경우, 서비스 속성이 지연 민감 QoS인 플로우에 최선의 우선 순위를 부여할 수 있다.In the network function virtualization apparatus, the network function flow switch, when the service attribute of at least one network function virtual machine is a real-time service, gives the best priority to the flow in which the service attribute is real-time QoS, and at least one network function virtual machine When the service attribute of the machine is a delay sensitive service, the best priority can be given to a flow whose service attribute is delay sensitive QoS.

상기 네트워크 기능 가상화 장치에서 적어도 하나의 네트워크 기능 가상 머신은, DHCP, NAT, Firewall, DPI 또는 load balancing 기능을 가상화하여 플로우에 적용할 수 있다.In the network function virtualization apparatus, at least one network function virtual machine may virtualize a DHCP, NAT, Firewall, DPI, or load balancing function and apply it to a flow.

상기 네트워크 기능 가상화 장치에서 네트워크 기능 플로우 스위치는, 가상화된 네트워크 기능이 적용된 제1 플로우를 분석하고, 제1 플로우를 가상 머신 또는 가상 머신과 다른 가상 머신으로 스위칭할 수 있다.In the network function virtualization apparatus, the network function flow switch may analyze a first flow to which a virtualized network function is applied, and switch the first flow to a virtual machine or a virtual machine different from the virtual machine.

상기 네트워크 기능 가상화 장치에서 네트워크 기능 플로우 스위치는, 제1 플로우의 제1 플로우 정보를 추출하고, 제1 플로우 정보를 바탕으로 제1 플로우가 신규 플로우인지 판단하며, 네트워크 기능 에이전트는, 제1 플로우가 신규 플로우인 경우 제1 플로우 정보를 바탕으로 갱신된 플로우 테이블을 수신하고, 갱신된 플로우 테이블을 바탕으로 스위칭 테이블을 갱신할 수 있다.In the network function virtualization apparatus, the network function flow switch extracts first flow information of the first flow, determines whether the first flow is a new flow based on the first flow information, and the network function agent determines whether the first flow is In the case of a new flow, an updated flow table may be received based on the first flow information, and the switching table may be updated based on the updated flow table.

상기 네트워크 기능 가상화 장치에서 네트워크 기능 플로우 스위치는, 제1 플로우 정보를 플로우 테이블 캐시에 저장할 수 있다.In the network function virtualization apparatus, the network function flow switch may store first flow information in a flow table cache.

본 발명의 한 실시 예에 따르면, 수신한 플로우의 데이터 속성 및 서비스 속성을 확인하고 데이터 속성 및 서비스 속성에 따라서 네트워크 기능 가상 머신으로 플로우를 스위칭하여 가상화된 네트워크 기능을 병렬적으로 적용할 수 있다. 또한, 플로우의 데이터 속성 또는 서비스 속성에 따라 QoS를 보장할 수 있다. 또한, 플로우의 플로우 정보를 바탕으로 네트워크 기능 플로우 스위치의 스위칭 테이블을 단발적인 요구에 의해 또는 주기적으로 업데이트 할 수 있다. According to an embodiment of the present invention, a virtualized network function may be applied in parallel by checking a data attribute and a service attribute of a received flow, and switching the flow to a network function virtual machine according to the data attribute and service attribute. In addition, QoS can be guaranteed according to the data attribute or service attribute of the flow. In addition, it is possible to update the switching table of the network function flow switch according to a single request or periodically based on the flow information of the flow.

도 1은 본 발명의 한 실시 예에 따른 네트워크 기능 가상화 시스템을 나타낸다.
도 2a 및 도 2b는 본 발명의 한 실시 예에 따른 인그레스(ingress) 플로우의 처리 방법을 나타낸 흐름도이다.
도 3a 및 도 3b는 본 발명의 한 실시 예에 따른 이그레스(egress) 플로우의 처리 방법을 나타낸 흐름도이다.
도 4는 본 발명의 다른 실시 예에 따른 네트워크 기능 가상화 시스템을 나타낸다.
도 5a 내지 도 5c는 본 발명의 다른 실시 예에 따른 인그레스 플로우의 처리 방법을 나타낸 흐름도이다.
도 6a 및 도 6b는 본 발명의 다른 실시 예에 따른 이그레스 플로우의 처리 방법을 나타낸 흐름도이다.
1 shows a network function virtualization system according to an embodiment of the present invention.
2A and 2B are flowcharts illustrating a method of processing an ingress flow according to an embodiment of the present invention.
3A and 3B are flowcharts illustrating a method of processing an egress flow according to an embodiment of the present invention.
4 shows a network function virtualization system according to another embodiment of the present invention.
5A to 5C are flowcharts illustrating a method of processing an ingress flow according to another embodiment of the present invention.
6A and 6B are flowcharts illustrating a method of processing an egress flow according to another embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art may easily implement the present invention. However, the present invention may be implemented in various forms and is not limited to the embodiments described herein. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and similar reference numerals are assigned to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…유닛", "…기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 소프트웨어나 마이크로 프로세서 등의 하드웨어 또는 소프트웨어 및 하드웨어의 결합으로 구현될 수 있다.Throughout the specification, when a part "includes" a certain component, it means that other components may be further included rather than excluding other components unless otherwise stated. In addition, terms such as "...unit", "...unit", "...group", "module", and "block" described in the specification mean a unit that processes at least one function or operation, which is a software or microprocessor. It may be implemented by hardware such as, or a combination of software and hardware.

도 1은 본 발명의 한 실시 예에 따른 네트워크 기능 가상화 시스템을 나타낸다.1 shows a network function virtualization system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시 예에 따른 NFV 시스템은, 서버(100), 스위치(110), 네트워크 기능 서버(120), 그리고 플로우 제어부(130)를 포함한다.Referring to FIG. 1, an NFV system according to an embodiment of the present invention includes a server 100, a switch 110, a network function server 120, and a flow control unit 130.

서버(100)는, 에지 플로우 스위치(104) 및 에지 에이전트(105)를 포함하고, 에지 플로우 스위치(104)는 서버에 포함된 복수의 가상 머신(101 내지 10n)과 연결된다. 또한, 에지 플로우 스위치(104)는 적어도 하나의 네트워크 인터페이스(131)를 통해 스위치(110)와 연결된다. 또한 에지 에이전트(105)는 관리 및 제어 인터페이스(133)를 통해 플로우 제어부(130)와 연결된다.The server 100 includes an edge flow switch 104 and an edge agent 105, and the edge flow switch 104 is connected to a plurality of virtual machines 101 to 10n included in the server. Further, the edge flow switch 104 is connected to the switch 110 through at least one network interface 131. In addition, the edge agent 105 is connected to the flow control unit 130 through the management and control interface 133.

서버(100)의 가상 머신(101 내지 10n)은 하이퍼바이저에 의해 제공되는 논리적 하드웨어(가상 CPU, 가상 메모리, 가상 스토리지, 가상 네트워크 인터페이스 등)에서 동작되는 OS(LINUX, NetBSD, FreeBSD, Solaris, Windows 등)이다. 가상 머신(101 내지 10n)은 해당 가상 머신에서 제공하는 서비스(웹 서버, 파일 서버, 비디오 서버, 클라우드 서버, 기업 재무, 금융, 증권 등)에 따라 데이터 플로우를 생성하고, 각 데이터 플로우는 제공되는 서비스에 따라 서로 다른 서비스 QoS 요구 사항을 가진다. 에지 플로우 스위치(104)는 가상 머신(101 내지 10n)에서 생성된 데이터 플로우를 분석하여 신규 데이터 플로우를 에지 에이전트(105)로 전달한다. 그리고 에지 플로우 스위치(104)는 신규 데이터 플로우가 아닌 데이터 플로우를 에지 플로우 스위치(104) 내의 스위칭 테이블에 기재된 대로 처리한다. 에지 에이전트(105)는 플로우 제어부(130)에서 수신한 정보를 토대로 신규 플로우 정보를 갱신한다. 이때, 에지 에이전트(105)는 주기적으로 플로우 제어부를 통해 스위칭 테이블, 가상 머신 테이블 등을 갱신할 수 있다. 주기적으로 갱신되는 가상 머신 테이블은 각 가상 머신에 대한 네트워크 정보 및 가상 머신에서 제공하는 서비스의 QoS 정보(실시간/비실시간 서비스, 높은 대역폭 서비스, 낮은 대역폭 서비스, 지연 민감/둔감 서비스, 서비스 데이터의 방향성(가입자-서버, 서버-서버), 가상 머신 대역폭 정보 등)를 포함할 수 있다. 주기적으로 갱신되는 스위칭 테이블은 각 플로우에 대한 네트워크 정보, 동작 정보(포워딩, 드랍, 에지 에이전트 전달, 필드 수정, 터널링 등), QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터, 서비스 데이터의 방향성(가입자-서버, 서버-서버) 등)을 포함할 수 있다.The virtual machines 101 to 10n of the server 100 are OS (LINUX, NetBSD, FreeBSD, Solaris, Windows) operating on logical hardware (virtual CPU, virtual memory, virtual storage, virtual network interface, etc.) provided by the hypervisor. Etc). The virtual machines 101 to 10n generate data flows according to the services (web server, file server, video server, cloud server, corporate finance, finance, securities, etc.) provided by the virtual machine, and each data flow is provided. Different services have different service QoS requirements. The edge flow switch 104 analyzes the data flow generated in the virtual machines 101 to 10n and transmits the new data flow to the edge agent 105. And the edge flow switch 104 processes a data flow other than a new data flow as described in the switching table in the edge flow switch 104. The edge agent 105 updates new flow information based on the information received from the flow control unit 130. In this case, the edge agent 105 may periodically update the switching table and the virtual machine table through the flow control unit. The virtual machine table, which is updated periodically, provides network information for each virtual machine and QoS information of the service provided by the virtual machine (real-time/non-real-time service, high bandwidth service, low bandwidth service, delay sensitive/insensitive service, service data direction). (Subscriber-server, server-server), virtual machine bandwidth information, etc.). The periodically updated switching table includes network information for each flow, operation information (forwarding, drop, edge agent delivery, field modification, tunneling, etc.), QoS information (real-time/non-real-time data, high bandwidth, low bandwidth, delay sensitive/ It may include insensitivity, secure/unsecure data, direction of service data (subscriber-server, server-server, etc.).

스위치(110)는, 플로우 스위치(111) 및 스위치 에이전트(112)를 포함한다. 스위치(110)는 적어도 하나의 네트워크 인터페이스(131 및 132)를 통해 서버(100) 및 네트워크 기능 서버(120)와 연결된다. 또한, 스위치 에이전트(112)는 관리 및 제어 인터페이스(134)를 통해 플로우 제어부(130)와 연결된다. 스위치(110)는 L2 스위치 또는 L3 스위치를 통해 또는 L2 스위치 및 L3 스위치를 통해 적어도 하나의 네트워크 인터페이스(131)로 서버(100)와 연결된다. 스위치 에이전트(112)는 관리 및 제어 인터페이스(134)를 통해 플로우 제어부(130)로부터 수신한 신규 플로우 정보를 바탕으로 스위치(110)의 가상 머신 테이블 및 스위칭 테이블을 갱신한다. 이때, 스위치 에이전트(112)는 플로우 제어부(130)로부터 주기적으로 신규 플로우 정보를 수신할 수 있다. 주기적으로 갱신되는 가상 머신 테이블은 각 가상 머신에 대한 네트워크 정보와 QOS 정보(실시간/비실시간 서비스, 높은 대역폭 서비스, 낮은 대역폭 서비스, 지연 민감/둔감 서비스, 서비스 데이터의 방향성(가입자-서버, 서버-서버), 가상 머신 대역폭 정보 등)를 포함할 수 있다. 주기적으로 갱신 되는 스위칭 테이블은 각 플로우에 대한 네트워크 정보, 동작 정보(포워딩, 드랍, 에지 에이전트 전달, 필드 수정, 서비스 데이터의 방향성(가입자-서버, 서버-서버) 등), 가상 머신에서 제공하는 서비스의 QOS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 서비스 데이터의 방향성(가입자-서버, 서버-서버) 등)을 포함할 수 있다. The switch 110 includes a flow switch 111 and a switch agent 112. The switch 110 is connected to the server 100 and the network function server 120 through at least one network interface 131 and 132. In addition, the switch agent 112 is connected to the flow control unit 130 through the management and control interface 134. The switch 110 is connected to the server 100 through at least one network interface 131 through an L2 switch or an L3 switch or through an L2 switch and an L3 switch. The switch agent 112 updates the virtual machine table and the switching table of the switch 110 based on the new flow information received from the flow controller 130 through the management and control interface 134. In this case, the switch agent 112 may periodically receive new flow information from the flow control unit 130. The virtual machine table, which is updated periodically, includes network information and QOS information for each virtual machine (real-time/non-real-time service, high bandwidth service, low bandwidth service, delay sensitive/insensitive service, service data direction (subscriber-server, server- Server), virtual machine bandwidth information, etc.). The periodically updated switching table includes network information for each flow, operation information (forwarding, drop, edge agent delivery, field modification, direction of service data (subscriber-server, server-server), etc.), and services provided by virtual machines. QOS information (real-time/non-real-time data, high bandwidth, low bandwidth, delay sensitive/insensitive, service data direction (subscriber-server, server-server), etc.) can be included.

스위치(110)는 L2 스위치 또는 L3 스위치를 통해 또는 L2 스위치 및 L3 스위치를 통해 서버(100)의 가상 머신(101 내지 10n)에서 생성된 데이터 플로우를 수신한다. 스위치(110)는 수신한 데이터 플로우를 분석하여 플로우 정보를 추출한다. 이후, 스위치(110)는 스위치 에이전트(112)에서 갱신한 스위칭 테이블의 가상 머신 네트워크 정보(가상 머신의 IP 주소, 가상 머신의 MAC 주소, 가상 머신의 NAT 변환 정보, 가장 머신의 대역폭 정보 등) 및 QoS 정보((실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 서비스 데이터의 방향성(가입자-서버, 서버-서버) 등)을 바탕으로 데이터 플로우에 가상 머신 및 플로우 QoS 정책을 적용한다. 스위치(110)는 시스템 내의 가상 머신에 대한 네트워크 정보 및 QoS 정보뿐만 아니라 스위치 내의 모든 플로우에 대한 QoS 정보를 스위치 에이전트(112)를 통해 주기적으로 갱신하기 때문에, 해당 가상 머신에서 제공하는 서비스의 유형에 따라 각 플로우에 최적의 QoS를 제공할 수 있다. 이때, 스위치(110)는 각 가상 머신의 QoS 정보 중 서비스 데이터의 방향성(가입자-서버 또는 서버-서버)을 구별하여 플로우의 QoS를 관리할 수 있다. 예를 들어, 가상 머신의 서비스 속성이 서버-서버인 경우 데이터 속성이 서버-서버인 플로우에 대해 높은 우선 순위를 주고, 가상 머신의 서비스 속성이 가입자-서버인 경우 데이터 속성이 가입자-서버인 플로우에 대해 높은 우선 순위를 부여함으로써, 서비스 데이터에 서비스 품질을 제공할 수 있다. 또한 가상 머신의 서비스 속성이 실시간 서비스인 경우 가상 머신이 생성한 데이터 플로우 중 실시간 QoS 속성을 갖는 플로우에 대해 높은 우선 순위를 부여함으로써 서비스 데이터에 서비스 품질을 제공할 수 있다. 또한, 가상 머신의 서비스 속성이 지연 민감 서비스인 경우, 가상 머신이 생성한 데이터 플로우 중 지연 민감 QoS 속성을 갖는 플로우에 높은 우선 순위를 부여하여 서비스 데이터에 서비스 품질을 제공할 수 있다. The switch 110 receives the data flow generated in the virtual machines 101 to 10n of the server 100 through the L2 switch or the L3 switch or through the L2 switch and the L3 switch. The switch 110 analyzes the received data flow and extracts flow information. Thereafter, the switch 110 includes the virtual machine network information (the IP address of the virtual machine, the MAC address of the virtual machine, the NAT translation information of the virtual machine, the bandwidth information of the virtual machine, etc.) of the switching table updated by the switch agent 112. Apply virtual machine and flow QoS policy to data flow based on QoS information ((real-time/non-real-time data, high bandwidth, low bandwidth, delay sensitive/insensitive, service data direction (subscriber-server, server-server), etc.) Since the switch 110 periodically updates QoS information for all flows in the switch as well as network information and QoS information for the virtual machine in the system, the service provided by the corresponding virtual machine is Depending on the type, it is possible to provide optimal QoS for each flow In this case, the switch 110 manages the QoS of the flow by distinguishing the direction of service data (subscriber-server or server-server) among QoS information of each virtual machine. For example, if the service attribute of the virtual machine is server-server, the data attribute gives high priority to the server-server flow, and if the service attribute of the virtual machine is subscriber-server, the data attribute is subscriber. -By assigning a high priority to server-in flow, service quality can be provided to service data In addition, if the service attribute of the virtual machine is a real-time service, the flow with real-time QoS attribute among the data flows created by the virtual machine is Service quality can be provided to service data by assigning a high priority to the service data In addition, if the service attribute of the virtual machine is a delay sensitive service, the flow with the delay sensitive QoS attribute has a high priority among the data flows created by the virtual machine. Service quality can be provided to service data by assigning a ranking.

네트워크 기능 서버(120)는 네트워크 기능 플로우 스위치(124) 및 네트워크 기능 에이전트(15)를 포함하고, 네트워크 기능 플로우 스위치(124)는 네트워크 기능 서버에 포함된 복수의 네트워크 기능 가상 머신(121 내지 12n)과 연결된다. 또한, 네트워크 기능 플로우 스위치(124)는 적어도 하나의 네트워크 인터페이스(132)를 통해 스위치(110)와 연결된다. 이때, 네트워크 기능 서버(120)는 L2 스위치 또는 L3 스위치를 통해 또는 L2 스위치 및 L3 스위치를 통해 스위치(110)와 연결될 수 있다. 또한, 네트워크 기능 에이전트는 관리 및 제어 인터페이스(135)를 통해 플로우 제어부(130)와 연결된다.The network function server 120 includes a network function flow switch 124 and a network function agent 15, and the network function flow switch 124 includes a plurality of network function virtual machines 121 to 12n included in the network function server. Is connected with Further, the network function flow switch 124 is connected to the switch 110 through at least one network interface 132. In this case, the network function server 120 may be connected to the switch 110 through an L2 switch or an L3 switch or through an L2 switch and an L3 switch. Further, the network function agent is connected to the flow controller 130 through the management and control interface 135.

네트워크 기능 플로우 스위치(124)는 L2 스위치 또는 L3 스위치를 통해 또는 L2 스위치 및 L3 스위치를 통해 스위치(110)로부터 데이터 플로우를 수신한다. 네트워크 기능 플로우 스위치(124)는 스위치(110)로부터 수신한 데이터 플로우를 분석하여 플로우 정보를 추출한다. 네트워크 기능 플로우 스위치(124)는 추출된 플로우 정보가 신규 데이터 플로우면 수신한 데이터 플로우를 네트워크 기능 에이전트(125)로 전달한다. 하지만, 신규 플로우가 아니면, 네트워크 기능 플로우 스위치(124)의 스위칭 테이블에 따라 네트워크 기능 가상 머신(121 내지 12n)으로 플로우를 스위칭한다. 또한 네트워크 기능 플로우 스위치(124)는 네트워크 기능 가상 머신(121 내지 12n)으로부터 수신한 데이터 플로우를 분석하여 플로우 정보를 추출한다. 이때, 추출된 플로우 정보가 신규 데이터 플로우이면, 네트워크 기능 플로우 스위치(124)는 네트워크 기능 가상 머신(121 내지 12n)에서 수신한 데이터 플로우를 네트워크 기능 에이전트(125)로 전달한다. 하지만, 신규 플로우가 아니면, 네트워크 기능 플로우 스위치(124)는 네트워크 기능 스위칭 테이블에 따라 수신한 데이터 플로우를 스위치(110) 또는 다른 네트워크 기능 가상 머신(121 내지 12n)으로 스위칭한다. 네트워크 기능 플로우 스위치(124)는 신규 데이터 플로우 검출 시에 사용된 스위칭 테이블을 스위칭 테이블 캐시에 추가한다. 네트워크 기능 플로우 스위치(124)는 데이터 플로우의 종료 시에 스위칭 테이블 캐시에서 해당 스위칭 테이블을 삭제한다. 네트워크 기능 플로우 스위치(124)는 동일 데이터 플로우에 대해 스위칭 테이블 캐시에 저장된 동일한 다른 데이터 플로우의 스위칭 테이블을 사용할 수 있다.The network function flow switch 124 receives the data flow from the switch 110 through the L2 switch or the L3 switch or through the L2 switch and the L3 switch. The network function flow switch 124 analyzes the data flow received from the switch 110 and extracts flow information. If the extracted flow information is a new data flow, the network function flow switch 124 transfers the received data flow to the network function agent 125. However, if it is not a new flow, the flow is switched to the network function virtual machines 121 to 12n according to the switching table of the network function flow switch 124. In addition, the network function flow switch 124 analyzes the data flow received from the network function virtual machines 121 to 12n to extract flow information. At this time, if the extracted flow information is a new data flow, the network function flow switch 124 transfers the data flow received from the network function virtual machines 121 to 12n to the network function agent 125. However, if it is not a new flow, the network function flow switch 124 switches the received data flow to the switch 110 or other network function virtual machines 121 to 12n according to the network function switching table. The network function flow switch 124 adds the switching table used when detecting a new data flow to the switching table cache. The network function flow switch 124 deletes the corresponding switching table from the switching table cache at the end of the data flow. The network function flow switch 124 may use a switching table of the same other data flow stored in the switching table cache for the same data flow.

네트워크 기능 가상 머신((121 내지 12n)이 새로운 데이터 플로우를 생성할 때, 각 데이터 플로우는 네트워크 기능에 따라 서로 다른 QoS 요구 사항을 가질 수 있다. 또한, 네트워크 기능 플로우 스위치(124)는 각 네트워크 기능 가상 머신의 QoS 정보 중 서비스 속성에 따라 데이터 플로우에 서로 다른 QoS 우선 순위를 부여하여 QoS를 관리할 수 있다. 예를 들어, 네트워크 기능 플로우 스위치(124)는 네트워크 기능 가상 머신의 서비스 데이터 방향성(가입자-서버 또는 서버-서버) 정보를 구별하여 데이터 플로우를 처리할 수 있다.When the network function virtual machines (121 to 12n) create a new data flow, each data flow may have different QoS requirements according to the network function. In addition, the network function flow switch 124 may be configured for each network function. QoS can be managed by assigning different QoS priorities to data flows according to service properties among the QoS information of the virtual machine, for example, the network function flow switch 124 provides the direction of service data of the network function virtual machine (subscriber -Server or server-server) can process data flow by distinguishing information.

네트워크 기능 가상 머신(121 내지 12n)은 하이퍼바이저에 의해 제공되는 논리적 하드웨어(가상 CPU, 가상 메모리, 가상 스토리지, 가상 네트워크 인터페이스) 상 동작되는 OS(LINUX, NetBSD, FreeBSD, Solaris, Wondows, mini-OS, micro-OS 등)에서 네트워크 기능(DHCP, NAT, Firewall, DPI, Load Balancing 등)을 수행하는 모듈이다. 본 발명의 실시 예에서, 복수의 네트워크 기능 가상 머신은 네트워크 기능 서버에 복수개 포함되어, 플로우에 네트워크 기능을 병렬적으로 적용할 수 있다. 네트워크 기능 가상 머신(121 내지 12n)은 수행하는 네트워크 기능(DHCP, NAT, Firewall, DPI, Load Balancing 등등)에 따라 네트워크 기능 플로우 스위치(124)로부터 데이터 플로우를 수신하여 처리한 후 그 결과를 네트워크 기능 에이전트(125)를 통하여 플로우 제어부(130)로 전달할 수 있다. 또한, 네트워크 기능 가상 머신(121 내지 12n)은 수신한 데이터 플로우를 처리한 후, 새로운 데이터 플로우를 생성하여 네트워크 기능 플로우 스위치(124)로 전달할 수 있다.Network function virtual machines (121 to 12n) are OS (LINUX, NetBSD, FreeBSD, Solaris, Wondows, mini-OS) operating on logical hardware (virtual CPU, virtual memory, virtual storage, virtual network interface) provided by the hypervisor. , micro-OS, etc.) to perform network functions (DHCP, NAT, Firewall, DPI, Load Balancing, etc.). In an embodiment of the present invention, a plurality of network function virtual machines may be included in a plurality of network function servers, so that network functions may be applied in parallel to a flow. The network function virtual machines 121 to 12n receive and process the data flow from the network function flow switch 124 according to the network function (DHCP, NAT, Firewall, DPI, Load Balancing, etc.) to be performed, and then transmit the result to the network function. It may be transmitted to the flow controller 130 through the agent 125. In addition, after the network function virtual machines 121 to 12n process the received data flow, a new data flow may be generated and transmitted to the network function flow switch 124.

네트워크 기능 에이전트(125)는 관리 및 제어 인터페이스(135)를 통하여 플로우 제어부(130)와 연결하여 신규 플로우 정보를 갱신한다. 또한, 네트워크 기능 에이전트(125)는 주기적으로 플로우 제어부(130)와 연결하여 스위칭 테이블 및 네트워크 기능 가상 머신 테이블을 갱신 한다. 주기적으로 갱신되는 네트워크 기능 가상 머신 테이블은 각 네트워크 기능 가상 머신(121 내지 12n)에 대한 네트워크 정보, 네트워크 기능 가상 머신(121 내지 12n)에서 제공하는 네트워크 기능 서비스의 QOS 정보(실시간/비실시간 서비스, 높은 대역폭 서비스, 낮은 대역폭 서비스, 지연 민감/둔감 서비스, 네트워크 기능 서비스 데이터의 방향성(가입자-서버 또는 서버-서버), 네트워크 기능 가상 머신 대역폭 정보 등)을 포함할 수 있다. 주기적으로 갱신되는 스위칭 테이블은 각 플로우에 대한 네트워크 정보, 동작 정보(포워딩, 드랍, 에지 에이전트 전달, 필드 수정, 터널링 등등), QOS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등)을 포함할 수 있다. The network function agent 125 connects to the flow controller 130 through the management and control interface 135 to update new flow information. In addition, the network function agent 125 periodically connects with the flow controller 130 to update the switching table and the network function virtual machine table. The network function virtual machine table, which is periodically updated, includes network information for each network function virtual machine 121 to 12n, and QOS information of the network function service provided by the network function virtual machines 121 to 12n (real-time/non-real-time service, It may include a high-bandwidth service, a low-bandwidth service, a delay sensitive/insensitive service, a network function service data direction (subscriber-server or server-server), network function virtual machine bandwidth information, etc.). The periodically updated switching table includes network information for each flow, operation information (forwarding, drop, edge agent delivery, field modification, tunneling, etc.), QOS information (real-time/non-real-time data, high bandwidth, low bandwidth, delay sensitive/ It may include insensitivity, secure/non-secure data, orientation of service data (subscriber-server or server-server).

네트워크 기능 플로우 스위치(124)는 각 네트워크 기능 가상 머신(121 내지 12n)의 QoS 정보 중 서비스 데이터의 방향성(가입자-서버 또는 서버-서버)을 구별하여 플로우의 QoS를 관리할 수 있다. 예를 들어, 네트워크 기능 플로우 스위치(124)는 네트워크 기능 가상 머신(121 내지 12n)의 서비스 속성이 서버-서버인 경우 서비스 속성이 서버-서버인 플로우에 대해 최선의 우선 순위를 주고, 네트워크 기능 가상 머신의 서비스 속성이 가입자-서버인 경우 서비스 속성이 가입자-서버인 플로우에 대해 최선의 우선 순위를 부여함으로써, 서비스 데이터에 서비스 품질을 제공할 수 있다. The network function flow switch 124 may manage QoS of a flow by discriminating the direction of service data (subscriber-server or server-server) among QoS information of each network function virtual machine 121 to 12n. For example, when the service attribute of the network function virtual machines 121 to 12n is a server-server, the network function flow switch 124 gives the best priority to a flow in which the service attribute is a server-server, and When the service attribute of the machine is subscriber-server, service quality can be provided to service data by giving the best priority to a flow in which the service attribute is subscriber-server.

또한 네트워크 기능 가상 머신(121 내지 12n)의 서비스 속성이 실시간 서비스 인 경우, 네트워크 기능 가상 머신에서 생성한 데이터 플로우 중에서 실시간 QoS 속성을 가지는 플로우에 대해 높은 우선 순위를 주어, 서비스 데이터에 서비스 품질을 제공할 수 있다. 또한 네트워크 기능 가상 머신(121 내지 12n)의 서비스 속성이 지연 민감 서비스 인 경우, 네트워크 기능 가상 머신에서 생성한 데이터 플로우 중에서 지연 민감 QoS 속성을 갖는 플로우에 대해 높은 우선 순위를 주어, 서비스 데이터에 서비스 품질을 제공할 수 있다.In addition, when the service attribute of the network function virtual machine (121 to 12n) is a real-time service, a high priority is given to the flow with real-time QoS attribute among the data flows created by the network function virtual machine, providing service quality to service data. can do. In addition, when the service attribute of the network function virtual machines 121 to 12n is a delay sensitive service, high priority is given to the flow with the delay sensitive QoS attribute among the data flows generated by the network function virtual machine, Can provide.

도 2a 및 도 2b는 본 발명의 한 실시 예에 따른 인그레스(ingress) 플로우의 처리 방법을 나타낸 흐름도이다.2A and 2B are flowcharts illustrating a method of processing an ingress flow according to an embodiment of the present invention.

도 2a 및 도 2b를 참조하면, 먼저 서버(100)에 포함된 가상 머신(101 내지 10n)은 제공하는 서비스(웹 서버, 메일 서버, 파일 서버, 비디오 서버, 클라우드 서버, 기업 재무, 금융, 증권 등)에 따라 플로우를 생성하여(S201) 에지 플로우 스위치(104)로 전달한다(S202). 2A and 2B, first, the virtual machines 101 to 10n included in the server 100 provide services (web server, mail server, file server, video server, cloud server, corporate finance, finance, securities). Etc.), and transmits the flow to the edge flow switch 104 (S202).

에지 플로우 스위치(104)는 가상 머신(101 내지 10n)에서 생성한 플로우를 분석하여 플로우 정보를 추출하고(S203), 추출된 플로우 정보를 분석하여 플로우가 신규 플로우인지 판단한다(S204). The edge flow switch 104 analyzes the flow generated by the virtual machines 101 to 10n to extract flow information (S203), and analyzes the extracted flow information to determine whether the flow is a new flow (S204).

가상 머신(101 내지 10n)에서 생성한 플로우가 신규 플로우라면, 에지 플로우 스위치(104)는 신규 플로우의 플로우 정보(신규 플로우 정보)를 에지 에이전트(105)에 전달한다(S205). 그리고, 에지 에이전트(105)는 신규 플로우 정보를 플로우 제어부(130)에 전달한다(S206). If the flow generated by the virtual machines 101 to 10n is a new flow, the edge flow switch 104 delivers the flow information (new flow information) of the new flow to the edge agent 105 (S205). Then, the edge agent 105 transmits the new flow information to the flow control unit 130 (S206).

이후, 플로우 제어부(130)는 신규 플로우 정보를 통해 신규 플로우에 대한 가상 플로우 정보 및 네트워크 기능 정보를 생성하여 플로우 제어부(130)의 플로우 테이블을 갱신한다(S207). 이때, 플로우 테이블을 스위칭 테이블 및 네트워크 기능 테이블을 포함할 수 있다.Thereafter, the flow control unit 130 updates the flow table of the flow control unit 130 by generating virtual flow information and network function information for the new flow through the new flow information (S207). In this case, the flow table may include a switching table and a network function table.

이후, 에지 에이전트(105)는 플로우 제어부(130)의 갱신된 플로우 테이블을 수신하고(S208), 갱신된 플로우 테이블에 따라 에지 플로우 스위치(104)의 스위칭 테이블을 갱신한다(S209). Thereafter, the edge agent 105 receives the updated flow table of the flow control unit 130 (S208), and updates the switching table of the edge flow switch 104 according to the updated flow table (S209).

그리고, 스위치 에이전트(112)도 플로우 제어부(130)의 갱신된 플로우 테이블에 따라 스위치(110)의 스위칭 테이블을 갱신한다(S210). Further, the switch agent 112 also updates the switching table of the switch 110 according to the updated flow table of the flow control unit 130 (S210).

또한, 네트워크 기능 에이전트(125)도 플로우 제어부(130)의 갱신된 플로우 테이블에 따라 네트워크 기능 플로우 스위치(124)의 스위칭 테이블을 갱신한다(S211).In addition, the network function agent 125 also updates the switching table of the network function flow switch 124 according to the updated flow table of the flow control unit 130 (S211).

이후, 에지 플로우 스위치(104)는 서버(100)의 가상 머신(101 내지 10n)에서 생성한 플로우를 스위칭 테이블에 따라 처리하고(S212), L2 스위치 또는 L3 스위치를 통해 또는 L2 스위치 및 L3 스위치 등 적어도 하나의 네트워크 인터페이스(131)를 통해 플로우를 스위치(110)에 전달한다(S213).Thereafter, the edge flow switch 104 processes the flow generated by the virtual machines 101 to 10n of the server 100 according to the switching table (S212), and through the L2 switch or the L3 switch or through the L2 switch and the L3 switch, etc. The flow is transmitted to the switch 110 through at least one network interface 131 (S213).

플로우 스위치(111)는 가상 머신(101 내지 10n)에서 생성한 플로우를 분석하여 플로우 정보를 추출한다(S214). 플로우 스위치(111)는 추출된 플로우 정보를 사용하여 스위칭 테이블에서, 가상 머신의 네트워크 정보(가상 머신의 IP 주소, 가상 머신의 MAC 주소, 가상 머신의 NAT 변환 정보, 가상 머신 대역폭 정보 등등), 가상 머신의 QOS 정보(실시간/비실시간 데이터, 높은/낮은 대역폭, 지연 민감/둔감, 서비스 데이터의 방향성(가입자-서버, 서버-서버) 등등) 및 플로우의 QoS 정보(실시간/비실시간 데이터, 높은/낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터 서비스, 데이터의 방향성(가입자-서버, 서버-서버) 등)를 찾고 이를 바탕으로수신한 플로우에 대한 QoS 정책을 결정한다. 그리고, 플로우 스위치(111)는 해당 플로우에 대해 결정된 QoS 정책을 적용한다(S215). The flow switch 111 analyzes the flow generated by the virtual machines 101 to 10n and extracts flow information (S214). The flow switch 111 uses the extracted flow information, from the switching table, to virtual machine network information (virtual machine IP address, virtual machine MAC address, virtual machine NAT translation information, virtual machine bandwidth information, etc.), Machine QOS information (real-time/non-real-time data, high/low bandwidth, delay sensitive/insensitive, service data direction (subscriber-server, server-server), etc.) and QoS information of flow (real-time/non-real-time data, high/low bandwidth, etc.) It finds low bandwidth, delay sensitive/insensitive, secure/non-secure data service, data direction (subscriber-server, server-server, etc.) and decides the QoS policy for the received flow. Then, the flow switch 111 applies the QoS policy determined for the corresponding flow (S215).

또한 스위치(110)는 갱신된 스위칭 테이블에 따라 서버(100)로부터 수신한 데이터 플로우를 스위칭한다(S216). 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 수행해야 한다면, 스위치(110)는 스위칭 테이블에 따라 플로우를 네트워크 기능 서버(120)로 스위칭한다. 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 수행하지 않는다면, 스위칭 테이블에 따라 플로우를 다른 서버(100)로 스위칭한다.In addition, the switch 110 switches the data flow received from the server 100 according to the updated switching table (S216). If network function virtualization is to be performed for the corresponding data flow, the switch 110 switches the flow to the network function server 120 according to the switching table. If network function virtualization is not performed for the corresponding data flow, the flow is switched to another server 100 according to the switching table.

이후, 네트워크 기능 서버(120)의 네트워크 기능 플로우 스위치(124)는 수신한 플로우의 데이터 속성(영상 데이터, 음성 데이터, 텍스트 데이터 등) 또는 서비스 속성(실시간 서비스, 지연 민감 서비스 등)을 확인한다(S217). 그리고 네트워크 기능 플로우 스위치(124)는 플로우의 데이터 속성 또는 서비스 속성을 바탕으로 네트워크 기능 플로우 스위치(124)의 스위칭 테이블에 따라 가상 네트워크 기능을 수행할 수 있는 네트워크 기능 가상 머신(121 내지 12n)로 플로우를 스위칭한다(S218).Thereafter, the network function flow switch 124 of the network function server 120 checks the data attribute (video data, voice data, text data, etc.) or service attribute (real-time service, delay sensitive service, etc.) of the received flow ( S217). In addition, the network function flow switch 124 flows to the network function virtual machines 121 to 12n capable of performing a virtual network function according to the switching table of the network function flow switch 124 based on the data attribute or service attribute of the flow. To switch (S218).

네트워크 기능 가상 머신(121 내지 12n)은 네트워크 기능 플로우 스위치(124)로부터 수신된 데이터 플로우에 대하여 가상화된 네트워크 기능을 적용한다(S219).The network function virtual machines 121 to 12n apply the virtualized network function to the data flow received from the network function flow switch 124 (S219).

도 3a 및 도 3b는 본 발명의 한 실시 예에 따른 이그레스(egress) 플로우의 처리 방법을 나타낸 흐름도이다.3A and 3B are flowcharts illustrating a method of processing an egress flow according to an embodiment of the present invention.

네트워크 기능 가상 머신(121 내지 12n)은 네트워크 기능 플로우 스위치(124)로부터 수신한 데이터 플로우에 대하여 가상화된 네트워크 기능을 적용한다(S301). 그리고, 네트워크 기능 가상 머신(121 내지 12n)은, 가상화된 네트워크 기능(DHCP, NAT, Firewall, DPI, Load Balancing 등)에 따라 플로우를 생성하여(S302) 네트워크 기능 플로우 스위치(124)에 전달한다(S303). The network function virtual machines 121 to 12n apply the virtualized network function to the data flow received from the network function flow switch 124 (S301). In addition, the network function virtual machines 121 to 12n generate a flow according to the virtualized network functions (DHCP, NAT, Firewall, DPI, Load Balancing, etc.) (S302) and transmit the flow to the network function flow switch 124 ( S303).

네트워크 기능 플로우 스위치(124)는 네트워크 기능 가상 머신(121 내지 12n)에서 생성한 플로우를 분석하여 플로우 정보를 추출한다(S304). 이후, 네트워크 기능 플로우 스위치(124)는 추출한 플로우 정보를 통해 네트워크 기능 가상 머신(121 내지 12n)에서 생성한 플로우가 신규 플로우 인지 아니면 기존 플로우 인지 검사한다(S305). The network function flow switch 124 analyzes the flow generated by the network function virtual machines 121 to 12n and extracts flow information (S304). Thereafter, the network function flow switch 124 checks whether the flow generated by the network function virtual machines 121 to 12n is a new flow or an existing flow through the extracted flow information (S305).

만약 네트워크 기능 가상 머신(121 내지 12n)에서 생성한 플로우가 신규 플로우이면, 네트워크 기능 플로우 스위치(124)는 추출된 신규 플로우의 플로우 정보(신규 플로우 정보)를 네트워크 기능 에이전트(125)에 전달한다(S306). If the flow generated by the network function virtual machines 121 to 12n is a new flow, the network function flow switch 124 transfers the extracted flow information (new flow information) of the new flow to the network function agent 125 ( S306).

네트워크 기능 에이전트(125)는 신규 플로우 정보를 플로우 제어부(130)에 전달한다(S307). 플로우 제어부(130)는 해당 신규 플로우 정보를 바탕으로 신규 플로우에 대한 가상 플로우 정보와 네트워크 기능 정보를 생성하여 플로우 제어부(130)의 스위칭 테이블 및 네트워크 기능 테이블을 갱신하고(S308), 갱신된 테이블을 에지 에이전트(105), 스위치 에이전트(112) 및 네트워크 기능 에이전트(125)로 전달한다(S309).The network function agent 125 transmits new flow information to the flow control unit 130 (S307). The flow control unit 130 updates the switching table and the network function table of the flow control unit 130 by generating virtual flow information and network function information for the new flow based on the corresponding new flow information (S308), and stores the updated table. It is transmitted to the edge agent 105, the switch agent 112, and the network function agent 125 (S309).

에지 에이전트(105)는 플로우 제어부(130)에 의해 갱신된 스위칭 테이블에 따라 에지 플로우 스위치(104)의 스위칭 테이블을 갱신한다(S310). 스위치 에이전트는(112)는 플로우 제어부(130)에 의해 갱신된 가상 머신 스위칭 테이블에 따라 스위치(111)의 스위칭 테이블을 갱신한다(S311). 네트워크 기능 에이전트(125)는 플로우 제어부(130)에 의해 갱신된 가상 머신 스위칭 테이블과 네트워크 기능 테이블에 따라 네트워크 기능 플로우 스위치(124)의 스위칭 테이블을 갱신한다(S312). The edge agent 105 updates the switching table of the edge flow switch 104 according to the switching table updated by the flow control unit 130 (S310). The switch agent 112 updates the switching table of the switch 111 according to the virtual machine switching table updated by the flow control unit 130 (S311). The network function agent 125 updates the switching table of the network function flow switch 124 according to the virtual machine switching table and the network function table updated by the flow control unit 130 (S312).

네트워크 기능 플로우 스위치(124)는 네트워크 기능 가상 머신(121 내지 12n)에서 생성한 데이터 플로우를 네트워크 기능 플로우 스위치(124)의 스위칭 테이블에 따라 처리하여(S313), 스위치(110)로 전달하거나 다른 네트워크 기능 머신(121 내지 12n)으로 전달한다(S314).The network function flow switch 124 processes the data flow generated by the network function virtual machines 121 to 12n according to the switching table of the network function flow switch 124 (S313), and transmits it to the switch 110 or another network. It is transmitted to the functional machines 121 to 12n (S314).

스위치(110)는 네트워크 기능 플로우 스위치(124)로부터 수신한 데이터 플로우를 분석하여 플로우 정보를 추출한다(S315). 스위치(110)의 플로우 스위치(111)는 추출된 플로우 정보를 사용하여, 가상 머신의 네트워크 정보(가상 머신의 IP 주소, 가상 머신의 MAC 주소, 가상 머신의 NAT 변환 정보, 가상 머신 대역폭 정보 등), 가상 머신의 QOS 정보(실시간/비실시간 데이터, 높은/낮은 대역폭, 지연 민감/둔감, 데이터의 방향성(가입자-서버, 서버-서버) 등) 및 플로우의 QOS 정보(실시간/비실시간 데이터, 높은/낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터 서비스, 데이터의 방향성(가입자-서버, 서버-서버) 등)를 찾고 이를 바탕으로 수신한 플로우에 대한 QoS 정책을 결정한다. 그리고, 플로우 스위치(111)는 수신한 플로우에 찾은 결정된 QoS 정책을 적용한다(S316). The switch 110 analyzes the data flow received from the network function flow switch 124 and extracts flow information (S315). The flow switch 111 of the switch 110 uses the extracted flow information, and the network information of the virtual machine (the IP address of the virtual machine, the MAC address of the virtual machine, the NAT conversion information of the virtual machine, the virtual machine bandwidth information, etc.) , QOS information of virtual machine (real-time/non-real-time data, high/low bandwidth, delay sensitive/insensitive, data directionality (subscriber-server, server-server), etc.) and flow's QOS information (real-time/non-real-time data, high / Finds low bandwidth, delay sensitive/insensitive, secure/non-secure data service, data direction (subscriber-server, server-server, etc.) and decides QoS policy for the received flow based on this. Then, the flow switch 111 applies the determined QoS policy found to the received flow (S316).

이후, 스위치(110)는 네트워크 기능 플로우 스위치(124)를 통해 전달받은 데이터 플로우를 스위칭 테이블에 따라 스위칭한다(S317). 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 적용해야 한다면, 스위칭 테이블에 따라 네트워크 기능 서버(120)로 데이터 플로우를 스위칭한다. 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 적용하지 않는다면, 스위칭 테이블에 따라 데이터 플로우를 다른 서버(100)로 스위칭한다.Thereafter, the switch 110 switches the data flow transmitted through the network function flow switch 124 according to the switching table (S317). If network function virtualization is to be applied to the corresponding data flow, the data flow is switched to the network function server 120 according to the switching table. If network function virtualization is not applied to the data flow, the data flow is switched to the other server 100 according to the switching table.

서버(100)의 에지 플로우 스위치(104)는 스위치(110)를 통해 전달받은 데이터 플로우를, 에지 플로우 스위치(104)의 스위칭 테이블에 따라 가상 컴퓨팅 기능을 수행할 수 있는 가상 머신(101 내지 10n)으로 스위칭한다(S318). 또는, 네트워크 기능 서버(120)의 네트워크 기능 플로우 스위치(124)는 스위치(110)를 통해 전달받은 데이터 플로우를, 네트워크 기능 플로우 스위치(124)의 스위칭 테이블에 따라 가상 네트워크 기능을 수행할 수 있는 네트워크 기능 가상 머신(121 내지 12n)으로 스위칭할 수 있다.The edge flow switch 104 of the server 100 is a virtual machine (101 to 10n) that can perform a virtual computing function according to the switching table of the edge flow switch 104, the data flow transmitted through the switch 110 Switch to (S318). Alternatively, the network function flow switch 124 of the network function server 120 is a network capable of performing a virtual network function according to the switching table of the network function flow switch 124 for the data flow transmitted through the switch 110 It is possible to switch to the functional virtual machines 121 to 12n.

이후, 가상 머신(101 내지 10n)은 에지 플로우 스위치(104)로부터 수신한 데이터 플로우에 대하여 가상 컴퓨팅 기능을 적용한다(S319). 그리고, 네트워크 기능 가상 머신(121 내지 12n)은 네트워크 기능 플로우 스위치(124)로부터 수신한 데이터 플로우에 대하여 가상 네트워크 기능을 적용한다(S320). Thereafter, the virtual machines 101 to 10n apply a virtual computing function to the data flow received from the edge flow switch 104 (S319). Then, the network function virtual machines 121 to 12n apply the virtual network function to the data flow received from the network function flow switch 124 (S320).

도 4는 본 발명의 다른 실시 예에 따른 네트워크 기능 가상화 시스템을 나타낸다.4 shows a network function virtualization system according to another embodiment of the present invention.

도 4를 참조하면, 본 발명의 다른 실시 예에 따른 네트워크 기능 가상화 시스템은, 복수의 가상 컴퓨팅 서버(virtual computing server)(410), 복수의 가상 네트워크 기능 서버(virtual network function server)(420), 스위치(430), 플로우 제어부(flow controller)(440), 그리고 네트워크 기능 관리부(network functions manager)(450)를 포함한다. 4, a network function virtualization system according to another embodiment of the present invention includes a plurality of virtual computing servers 410, a plurality of virtual network function servers 420, It includes a switch 430, a flow controller 440, and a network functions manager 450.

복수의 가상 컴퓨팅 서버(410)는 L2 스위치 또는 L3 스위치를 통하여 또는 L2 스위치 및 L3 스위치를 통하여 적어도 하나의 네트워크 인터페이스(480 및 481)로 스위치(430)와 연결되어 있다. 또한 복수의 컴퓨팅 서버(410)는 관리 및 제어 인터페이스(490 및 491)를 통하여 플로우 제어부(440)와 연결되어 있다. 스위치(430)는 스위치 관리 및 제어 인터페이스(494)을 통하여 플로우 제어부(440)와 연결되어 있다. The plurality of virtual computing servers 410 are connected to the switch 430 through at least one network interface 480 and 481 through an L2 switch or an L3 switch or through an L2 switch and an L3 switch. In addition, the plurality of computing servers 410 are connected to the flow controller 440 through management and control interfaces 490 and 491. The switch 430 is connected to the flow controller 440 through a switch management and control interface 494.

복수의 네트워크 기능 서버(420)는 L2 스위치 또는 L3 스위치를 통하여 또는 L2 스위치 및 L3 스위치를 통하여 적어도 하나의 네트워크 인터페이스(482 및 483)로 스위치(430)와 연결되어 있다. 또한 복수의 네트워크 기능 서버(420)는 관리 및 제어 인터페이스(492 및 493)를 통하여 플로우 제어부(440)와 연결되어 있다. The plurality of network function servers 420 are connected to the switch 430 through at least one network interface 482 and 483 through an L2 switch or an L3 switch or through an L2 switch and an L3 switch. In addition, the plurality of network function servers 420 are connected to the flow controller 440 through management and control interfaces 492 and 493.

플로우 제어부(440)는 관리 및 제어 인터페이스(495)를 통하여 인간 컴퓨터 간 인터페이스(man-machine interface, MMI), 가상 머신 관리자 또는 클라우드 운영시스템(operating system, OS)을 포함하는 네트워크 기능 관리부(450)와 연결되어 있다. The flow control unit 440 is a network function management unit 450 including a man-machine interface (MMI), a virtual machine manager or a cloud operating system (OS) through a management and control interface 495 Is connected with.

복수의 가상 컴퓨팅 서버(410)는 복수의 가상 머신(411), 에지 플로우 스위치(412), 에지 에이전트(413) 및 하이퍼바이저(414)를 포함한다. The plurality of virtual computing servers 410 includes a plurality of virtual machines 411, an edge flow switch 412, an edge agent 413 and a hypervisor 414.

복수의 가상 머신(411)은 하이퍼바이저(414)에 의해 제공되는 논리적 하드웨어(가상 CPU, 가상 메모리, 가상 스토리지, 가상 네트워크 인터페이스) 상에서 동작되는 OS(LINUX, NetBSD, FreeBSD, Solaris, Wondows)이다. 가상 머신(411)은 해당 가상 머신에서 제공하는 서비스(웹 서버, 파일 서버, 비디오 서버, 클라우드 서버, 기업 재무, 금융, 증권 등등)에 따라 데이터 플로우를 생성하고, 각 데이터 플로우는 제공하는 서비스에 따라 서로 다른 서비스 QoS 요구사항을 갖는다. The plurality of virtual machines 411 are OSs (LINUX, NetBSD, FreeBSD, Solaris, and Wondows) operating on logical hardware (virtual CPU, virtual memory, virtual storage, virtual network interface) provided by the hypervisor 414. The virtual machine 411 creates a data flow according to the services (web server, file server, video server, cloud server, corporate finance, finance, securities, etc.) provided by the virtual machine, and each data flow is It has different service QoS requirements.

에지 플로우 스위치(412)는 복수의 가상 머신들(411)이 생성한 데이터 플로우를 분석하여 만약 신규 데이터 플로우이면 에지 에이전트(413)로 전달한다. 만약 신규 데이터 플로우가 아니면, 에지 플로우 스위치(412)는 스위칭 테이블에 따라서 플로우를 처리한다. 에지 에이전트(413)는 관리 및 제어 인터페이스(490 및 491)를 통해 플로우 제어부(440)와 연결하여 신규 플로우 정보를 갱신한다. 이때, 에지 에이전트(413)는 주기적으로 플로우 제어부(440)와 연결하여 스위칭 테이블, 가상 머신 테이블 정보를 갱신한다. 주기적으로 갱신되는 가상 머신 테이블은 가상 머신(411)에 대한 네트워크 정보, 가상 머신에서 제공하는 서비스의 QoS 정보(실시간/비실시간 서비스, 높은 대역폭 서비스, 낮은 대역폭 서비스, 지연 민감/둔감 서비스, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버), 가상 머신 대역폭 정보 등)을 포함할 수 있다. 주기적으로 갱신되는 스위칭 테이블은 플로우에 대한 네트워크 정보, 동작 정보(포워딩, 드랍, 에지 에이전트 전달, 필드 수정, 터널링 등등), QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등)을 포함할 수 있다. The edge flow switch 412 analyzes the data flow generated by the plurality of virtual machines 411 and, if it is a new data flow, transfers it to the edge agent 413. If it is not a new data flow, the edge flow switch 412 processes the flow according to the switching table. The edge agent 413 connects with the flow controller 440 through the management and control interfaces 490 and 491 to update new flow information. At this time, the edge agent 413 periodically connects with the flow control unit 440 to update the switching table and virtual machine table information. The virtual machine table, which is periodically updated, includes network information for the virtual machine 411, QoS information of services provided by the virtual machine (real-time/non-real-time service, high bandwidth service, low bandwidth service, delay sensitive/insensitive service, service data). May include the direction of (subscriber-server or server-server), virtual machine bandwidth information, etc. The switching table that is updated periodically is network information about flow, operation information (forwarding, drop, edge agent delivery, field modification, tunneling, etc.), QoS information (real-time/non-real-time data, high bandwidth, low bandwidth, delay sensitive/insensitive). , Security/non-security data, and direction of service data (subscriber-server or server-server).

하이퍼바이저(414)는 물리적 하드웨어(CPU, 메모리, 스토리지, 네트워크 인터페이스 등등)를 가상화한 논리적 하드웨어(가상 CPU, 가상 메모리, 가상 스토리지, 가상 네트워크 인터페이스)를 복수의 가상 머신(411)에 제공한다. 또한 하이퍼바이저(414)는 플로우 제어부(440)로부터 수신한 가상 머신(411)에 대한 관리 명령에 따라, 가상 머신의 관리(생성, 변경, 제거, 이전 등등) 및 서버 자원 관리 기능을 직접적으로 수행하여 그 결과를 플로우 제어부(440)로 보고한다. The hypervisor 414 provides logical hardware (virtual CPU, virtual memory, virtual storage, virtual network interface) virtualizing physical hardware (CPU, memory, storage, network interface, etc.) to the plurality of virtual machines 411. In addition, the hypervisor 414 directly performs the virtual machine management (create, change, remove, transfer, etc.) and server resource management functions according to the management command for the virtual machine 411 received from the flow control unit 440 Thus, the result is reported to the flow controller 440.

네트워크 기능 서버(420)는 복수의 네트워크 기능 가상 머신(421), 네트워크 기능 플로우 스위치(422), 네트워크 기능 에이전트(423), 그리고 하이퍼바이저(424)를 포함한다. The network function server 420 includes a plurality of network function virtual machines 421, a network function flow switch 422, a network function agent 423, and a hypervisor 424.

네트워크 기능 플로우 스위치(422)는 L2 스위치 또는 L3 스위치를 통하여 또는 L2 스위치 및 L3 스위치를 통하여 적어도 하나의 네트워크 인터페이스(482 및 483)를 통하여 스위치(430)로부터 데이터 플로우를 수신한다. 이후, 네트워크 기능 플로우 스위치(422)는 스위치(430)에서 전달받은 데이터 플로우를 분석하여 플로우 정보를 추출한다. 수신한 데이터 플로우가 신규 데이터 플로우이면 데이터 플로우를 네트워크 기능 에이전트(423)로 전달한다. 만약 신규 플로우가 아니면, 네트워크 기능 플로우 스위치(422)의 네트워크 기능 스위칭 테이블에 따라서 네트워크 기능 가상 머신(421)으로 플로우를 스위칭한다. 또한 네트워크 기능 플로우 스위치(422)는 네트워크 기능 가상 머신(421)로부터 수신한 데이터 플로우를 분석하여 플로우 정보를 추출한다. 만약 신규 데이터 플로우이면 네트워크 기능 에이전트(423)로 전달한다. 하지만 신규 플로우가 아니면, 네트워크 기능 플로우 스위치(422)의 네트워크 기능 스위칭 테이블에 따라서 스위치(430) 또는 다른 네트워크 기능 머신(421)으로 데이터 플로우를 스위칭한다. The network function flow switch 422 receives the data flow from the switch 430 through at least one network interface 482 and 483 through the L2 switch or the L3 switch or through the L2 switch and the L3 switch. Thereafter, the network function flow switch 422 analyzes the data flow received from the switch 430 and extracts flow information. If the received data flow is a new data flow, the data flow is transmitted to the network function agent 423. If it is not a new flow, the flow is switched to the network function virtual machine 421 according to the network function switching table of the network function flow switch 422. In addition, the network function flow switch 422 analyzes the data flow received from the network function virtual machine 421 to extract flow information. If it is a new data flow, it is transmitted to the network function agent 423. However, if it is not a new flow, the data flow is switched to the switch 430 or another network function machine 421 according to the network function switching table of the network function flow switch 422.

이때, 네트워크 기능 플로우 스위치(422)는 신규 데이터 플로우 검출 시에 사용된 스위칭 테이블을 스위칭 테이블 캐시에 추가한다. 네트워크 기능 플로우 스위치(422)에서는 데이터 플로우의 종료 시에 스위칭 테이블 캐시에서 해당 스위칭 테이블을 삭제한다. 네트워크 기능 플로우 스위치(422)는 동일한 데이터 플로우에 대해 스위칭 테이블 캐시에 저장되어 있는 동일한 다른 데이터 플로우의 스위칭 테이블을 사용할 수 있다. 네트워크 기능 가상 머신(421)들이 새로운 데이터 플로우를 생성할 때, 각각의 데이터 플로우는 수행되는 네트워크 기능에 따라 서로 다른 QOS 요구사항을 가질 수 있다. At this time, the network function flow switch 422 adds the switching table used when detecting a new data flow to the switching table cache. The network function flow switch 422 deletes the corresponding switching table from the switching table cache at the end of the data flow. The network function flow switch 422 may use a switching table of the same other data flow stored in the switching table cache for the same data flow. When the network function virtual machines 421 create a new data flow, each data flow may have different QOS requirements according to the network function being performed.

네트워크 기능 가상 머신(421)은 하이퍼바이저(424)에 의해 제공되는 논리적 하드웨어(가상 CPU, 가상 메모리, 가상 스토리지, 가상 네트워크 인터페이스) 상에서 동작되는 OS(LINUX, NetBSD, FreeBSD, Solaris, Wondows, mini-OS, micro-OS 등)에서 네트워크 기능(DHCP, NAT, Firewall, DPI, Load Balancing 등)을 수행하는 모듈이다. 본 발명의 실시 예에서, 복수의 네트워크 기능 가상 머신은 네트워크 기능 서버에 복수개 포함되어, 플로우에 네트워크 기능을 병렬적으로 적용할 수 있다. 네트워크 기능 가상 머신(421)들은 수행하는 네트워크 기능(DHCP, NAT, Firewall, DPI, Load Balancing 등)에 따라 네트워크 기능 플로우 스위치(422)로부터 데이터 플로우를 수신하여 처리한 후 그 결과를 네트워크 기능 에이전트(423)를 통하여 플로우 제어부(440)로 전달할 수 있다. 또한, 네트워크 기능 가상 머신(421)은 수신한 데이터 플로우를 처리한 후, 새로운 데이터 플로우를 생성하여 네트워크 기능 플로우 스위치(422)로 전달할 수 있다. The network function virtual machine 421 operates on logical hardware (virtual CPU, virtual memory, virtual storage, virtual network interface) provided by the hypervisor 424 (LINUX, NetBSD, FreeBSD, Solaris, Wondows, mini- This is a module that performs network functions (DHCP, NAT, Firewall, DPI, Load Balancing, etc.) in OS, micro-OS, etc. In an embodiment of the present invention, a plurality of network function virtual machines may be included in a plurality of network function servers, so that network functions may be applied in parallel to a flow. The network function virtual machines 421 receive and process the data flow from the network function flow switch 422 according to the network function (DHCP, NAT, Firewall, DPI, Load Balancing, etc.) to be performed, and then process the result as a network function agent ( It may be transmitted to the flow control unit 440 through 423. In addition, after processing the received data flow, the network function virtual machine 421 may generate a new data flow and transmit it to the network function flow switch 422.

하이퍼바이저(424)는 물리적 하드웨어(CPU, 메모리, 스토리지, 네트워크 인터페이스 등등)를 가상화한 논리적 하드웨어(가상 CPU, 가상 메모리, 가상 스토리지, 가상 네트워크 인터페이스)를 네트워크 기능 가상 머신(421)에 제공한다. 또한 하이퍼바이저(424)는 플로우 제어부(440)로부터 수신한 네트워크 기능 가상 머신에 대한 관리 명령에 대해, 네트워크 기능 가상 머신의 관리(생성, 변경, 제거, 이전 등등) 및 네트워크 기능 서버 자원 관리 기능을 직접적으로 수행하여 그 결과를 플로우 제어부(440)로 보고한다. The hypervisor 424 provides logical hardware (virtual CPU, virtual memory, virtual storage, virtual network interface) virtualizing physical hardware (CPU, memory, storage, network interface, etc.) to the network function virtual machine 421. In addition, the hypervisor 424 performs management (create, change, remove, transfer, etc.) and network function server resource management functions of the network function virtual machine in response to the management command for the network function virtual machine received from the flow control unit 440. It is performed directly and the result is reported to the flow control unit 440.

네트워크 기능 에이전트(423)는 플로우 제어부(440)와 연결하여 신규 플로우 정보를 갱신 한다. 네트워크 기능 에이전트(423)는 주기적으로 플로우 제어부(440)와 연결하여 스위칭 테이블, 네트워크 기능 가상 머신 테이블 정보를 갱신 한다. 주기적으로 갱신되는 네트워크 기능 가상 머신 테이블은 네트워크 기능 가상 머신에 대한 네트워크 정보, 네트워크 기능 가상 머신에서 제공하는 네트워크 기능 서비스의 QoS 정보(실시간/비실시간 서비스, 높은 대역폭 서비스, 낮은 대역폭 서비스, 지연 민감/둔감 서비스, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버), 네트워크 기능 가상 머신 대역폭 정보 등)을 포함할 수 있다. 주기적으로 갱신되는 스위칭 테이블은 플로우에 대한 네트워크 정보, 동작 정보(포워딩, 드랍, 에지 에이전트 전달, 필드 수정, 터널링 등등), QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등)을 포함할 수 있다. 네트워크 기능 플로우 스위치(422)는 각 네트워크 기능 가상 머신(421)의 QoS 정보 중 서비스 데이터의 방향성(가입자-서버 또는 서버-서버)을 구별하여 플로우를 처리함으로써, QOS를 관리할 수 있다. 예를 들어, 해당 네트워크 기능 가상 머신(421)의 서비스 속성이 서버-서버인 경우 데이터 속성이 서버-서버인 플로우에 대해 높은 우선 순위를 주고, 해당 네트워크 기능 가상 머신(421)의 서비스 속성이 가입자-서버인 경우, 데이터 속성이 가입자-서버인 플로우에 대해 높은 우선 순위를 부여함으로써, 서비스 데이터에 적절한 서비스 품질을 제공할 수 있다. 또한 해당 네트워크 기능 가상 머신(421)의 서비스 속성이 실시간 서비스 인 경우, 네트워크 기능 가상 머신의 데이터 플로우 중에서 실시간 QoS 속성을 가지는 플로우에 대해 높은 우선 순위를 주어 서비스 데이터에 더 나은 서비스 품질을 제공할 수 있다. 또한 네트워크 기능 가상 머신(421)의 서비스 속성이 지연 민감 서비스 인 경우, 네트워크 기능 가상 머신의 데이터 플로우 중에서 지연 민감 QoS 속성을 갖는 플로우에 대해 높은 우선 순위를 부여함으로써, 서비스 데이터에 적절한 서비스 품질을 제공할 수 있다.The network function agent 423 connects with the flow control unit 440 to update new flow information. The network function agent 423 periodically connects with the flow control unit 440 to update the switching table and the network function virtual machine table information. The network function virtual machine table, which is updated periodically, provides network information on the network function virtual machine, QoS information of the network function service provided by the network function virtual machine (real-time/non-real-time service, high bandwidth service, low bandwidth service, delay sensitive/ Insensitive services, direction of service data (subscriber-server or server-server), network function virtual machine bandwidth information, etc. may be included. The switching table that is updated periodically is network information about flow, operation information (forwarding, drop, edge agent delivery, field modification, tunneling, etc.), QoS information (real-time/non-real-time data, high bandwidth, low bandwidth, delay sensitive/insensitive). , Security/non-security data, and direction of service data (subscriber-server or server-server). The network function flow switch 422 can manage the QOS by processing the flow by discriminating the direction of service data (subscriber-server or server-server) among QoS information of each network function virtual machine 421. For example, when the service attribute of the corresponding network function virtual machine 421 is a server-server, a high priority is given to a flow whose data attribute is a server-server, and the service attribute of the corresponding network function virtual machine 421 is a subscriber. -In the case of a server, it is possible to provide an appropriate quality of service to service data by assigning a high priority to the subscriber-server flow with the data attribute. In addition, when the service attribute of the network function virtual machine 421 is a real-time service, a higher priority is given to a flow having a real-time QoS attribute among data flows of the network function virtual machine to provide better service quality to service data. have. In addition, when the service attribute of the network function virtual machine 421 is a delay sensitive service, a high priority is given to a flow having a delay sensitive QoS attribute among the data flows of the network function virtual machine, thereby providing an appropriate service quality for service data. can do.

스위치(430)는 L2 스위치 또는 L3 스위치를 통하여 또는 L2 스위치 및 L3 스위치를 통하여 적어도 하나의 네트워크 인터페이스(480 및 481)로 서버(410)와 연결되어 있다. 또한, 스위치(430) 관리 및 제어 인터페이스(494)을 통하여 플로우 제어부(440)와 연결되어 있다. 또한, 스위치(430)에 포함된 스위치 에이전트(432)는 관리 및 제어 인터페이스(494)을 통하여 플로우 제어부(440)로부터 수신한 신규 플로우 정보를 바탕으로 스위치(430)의 가상 머신 테이블 및 스위칭 테이블을 주기적으로 갱신한다. 주기적으로 갱신되는 가상 머신 테이블은 가상 머신에 대한 네트워크 정보 및 QOS 정보(실시간/비실시간 서비스, 높은 대역폭 서비스, 낮은 대역폭 서비스, 지연 민감/둔감 서비스, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버), 가상 머신 대역폭 정보 등)을 포함할 수 있다. 주기적으로 갱신되는 스위칭 테이블은 플로우에 대한 네트워크 정보, 동작 정보(포워딩, 드랍, 에지 에이전트 전달, 필드 수정, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등) 및 가상 머신에서 제공하는 서비스의 QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등)을 포함할 수 있다. The switch 430 is connected to the server 410 through at least one network interface 480 and 481 through an L2 switch or an L3 switch or through an L2 switch and an L3 switch. In addition, the switch 430 is connected to the flow controller 440 through a management and control interface 494. In addition, the switch agent 432 included in the switch 430 determines the virtual machine table and the switching table of the switch 430 based on the new flow information received from the flow controller 440 through the management and control interface 494. It is updated periodically. The virtual machine table, which is updated periodically, includes network information and QOS information (real-time/non-real-time service, high bandwidth service, low bandwidth service, delay sensitive/insensitive service, and direction of service data (subscriber-server or server-server)). ), virtual machine bandwidth information, etc.). The periodically updated switching table includes network information about flow, operation information (forwarding, drop, edge agent delivery, field modification, direction of service data (subscriber-server or server-server), etc.) and services provided by the virtual machine. QoS information (real-time/non-real-time data, high bandwidth, low bandwidth, delay sensitive/insensitive, direction of service data (subscriber-server or server-server), etc.) may be included.

스위치(430)는 L2 스위치 또는 L3 스위치를 통하여, 또는 L2 스위치 및 L3 스위치를 통하여 적어도 하나의 네트워크 인터페이스(480 및 481)로 서버(410)의 가상 머신(411)에서 생성한 플로우를 수신한다. 그리고, 스위치(430)는 가상 머신(411)에서 생성한 데이터 플로우를 분석하여 플로우 정보를 추출한다. 그리고, 스위치(430)는, 스위치 에이전트(425)에 의해 갱신된 가상 머신 네트워크 정보(가상 머신의 IP 주소, 가상 머신의 MAC 주소, 가상 머신의 NAT 변환 정보, 가상 머신 대역폭 정보 등)와 QoS 정보(실시간/비실시간 데이터, 높은/낮은 대역폭, 지연 민감/둔감, 서비스 데이터의 방향성(가입자-서버, 서버-서버) 등)를 바탕으로 데이터 플로우에 QoS 정책을 적용한다. 스위치(430)는 시스템에 포한된 가상 머신에 대한 네트워크 정보 및 QoS 정보뿐만 아니라 스위치 내의 모든 플로우에 대한 QoS 정보를 스위치 에이전트(432)를 통해 주기적으로 갱신 하기 때문에, 해당 가상 머신에서 제공하는 서비스의 유형에 따라 각 플로우에 최적의 QoS를 제공할 수 있다. 스위치(430)는 각 가상 머신의 QoS 정보 중 서비스 데이터의 방향성(가입자-서버 또는 서버-서버)을 구별하여 플로우를 처리함으로써, QoS를 관리할 수 있다. 예를 들어, 해당 가상 머신의 서비스 속성이 서버-서버인 경우 데이터 속성이 서버-서버인 플로우에 대해 높은 우선 순위를 주고, 해당 가상 머신의 서비스 속성이 가입자-서버인 경우 데이터 속성이 가입자-서버인 플로우에 대해 높은 우선 순위를 부여함으로써, 서비스 데이터에 최적의 서비스 품질을 제공할 수 있다. 또한 해당 가상 머신의 서비스 속성이 실시간 서비스 인 경우, 가상 머신의 데이터 플로우 중에서 실시간 QoS 속성을 갖는 플로우에 대해 높은 우선 순위를 주어 서비스 데이터에 최적의 서비스 품질을 제공할 수 있다. 또한 가상 머신의 서비스 속성이 지연 민감 서비스 인 경우, 가상 머신의 데이터 플로우 중에서 지연 민감 QoS 속성을 갖는 플로우에 대해 높은 우선 순위를 부여함으로써, 서비스 데이터에 최적의 서비스 품질을 제공할 수 있다.The switch 430 receives the flow generated by the virtual machine 411 of the server 410 through at least one network interface 480 and 481 through the L2 switch or the L3 switch, or through the L2 switch and the L3 switch. Then, the switch 430 analyzes the data flow generated by the virtual machine 411 to extract flow information. And, the switch 430, the virtual machine network information (virtual machine IP address, virtual machine MAC address, virtual machine NAT translation information, virtual machine bandwidth information, etc.) and QoS information updated by the switch agent 425 QoS policy is applied to data flow based on (real-time/non-real-time data, high/low bandwidth, delay sensitive/insensitive, service data direction (subscriber-server, server-server), etc.). Since the switch 430 periodically updates QoS information for all flows in the switch as well as network information and QoS information for virtual machines included in the system, the service provided by the corresponding virtual machine Optimal QoS can be provided for each flow depending on the type. The switch 430 may manage QoS by processing a flow by discriminating the direction of service data (subscriber-server or server-server) among QoS information of each virtual machine. For example, if the service attribute of the virtual machine is server-server, the data attribute gives high priority to the server-server flow, and if the service attribute of the virtual machine is subscriber-server, the data attribute is subscriber-server. By giving high priority to in-flow, it is possible to provide optimal service quality to service data. In addition, when the service attribute of the corresponding virtual machine is a real-time service, a flow having a real-time QoS attribute among the data flows of the virtual machine is given a high priority to provide optimal service quality to service data. In addition, when the service attribute of the virtual machine is a delay-sensitive service, an optimal service quality can be provided to service data by giving a high priority to a flow having a delay-sensitive QoS attribute among data flows of the virtual machine.

플로우 제어부(440)는 관리자의 MMI 명령, 가상 머신 매니저의 명령, 또는 클라우드 OS의 명령에 따라 서버(410)의 가상 머신을 관리(생성, 변경, 제거, 이전 등)할 수 있다. 또한, 플로우 제어부(440)는 관리 및 제어 인터페이스(490 및 491)를 통하여 명령어 또는 서버 자원 관리 명령어를 서버(410)의 하이퍼바이저(414)에 전달할 수 있다. 서버(410)에 포함된 하이퍼바이저(414)는 해당 명령어에 따라 해당 가상 머신의 관리(생성, 변경, 제거, 이전 등등) 및 서버 자원 관리 기능을 직접 수행하고, 해당 명령어 대한 결과 정보와 가상 머신 정보를 플로우 제어부(440)로 전달할 수 있다. 플로우 제어부(440)는 하이퍼바이저(414)로부터 수신한 명령어에 대한 결과 정보를 다시 MMI, 클라우드 OS, 가상 머신 매니저(450)로 전달한다. 또한 플로우 제어부(440)는 네트워크 기능 서버(420)의 네트워크 기능 가상 머신(421)의 관리(생성, 변경, 제거, 이전 등등) 명령어 또는 네트워크 기능 서버 자원 관리 명령어를 관리자의 MMI 명령, 네트워크 기능 관리부(450)의 명령, 또는 클라우드 OS의 명령에 따라 네트워크 기능 서버(420)에 포함된 하이퍼바이저(424)에 전달한다. 네트워크 기능 서버(420)에 포함된 하이퍼바이저(424)는 해당 명령어에 따라 해당 네트워크 기능 가상 머신의 관리(생성, 변경, 제거, 이전 등등) 및 네트워크 기능 서버 자원 관리 기능을 직접 수행하고, 해당 명령어 대한 결과 정보와 네트워크 기능 가상 머신 정보를 플로우 제어부(440)로 전달한다. 플로우 제어부(440)는 그 결과를 다시 MMI, 클라우드 OS, 가상 머신 매니저(450)로 전달한다. 또한 플로우 제어부(440)는 플로우 관리 명령어와 정보를 서버(410)에 포함된 에지 에이전트(413)에 전달한다. 에지 에이전트(413)는 해당 명령어에 따라 플로우 관리 기능을 직접 수행하여 스위칭 테이블 및 가상 머신 테이블 등을 갱신하고, 해당 명령어 대한 결과 정보를 플로우 제어부(440)로 전달한다. 또한 플로우 제어부(440)는 플로우 관리 명령어와 정보를 스위치 관리 및 제어 인터페이스(494)을 통하여 스위치(430)에 포함된 스위치 에이전트(432)에 전달한다. 스위치 에이전트(432)는 해당 명령어에 따라 플로우 관리 기능을 직접 수행하여 스위칭 테이블 및 가상 머신 테이블 등을 갱신하고, 해당 명령어 대한 결과 정보를 플로우 제어부(440)로 전달한다. 플로우 제어부(440)의 가상 머신 테이블은 각 가상 머신에 대한 네트워크 정보 및 가상 머신에서 제공하는 서비스의 QoS 정보(실시간/비실시간 서비스, 높은 대역폭 서비스, 낮은 대역폭 서비스, 지연 민감/둔감 서비스, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버), 가상 머신 대역폭 정보 등등)를 포함할 수 있다. 플로우 제어부(440)의 스위칭 테이블은 각 플로우에 대한 네트워크 정보, 동작 정보(포워딩, 드랍, 에지 에이전트 전달, 필드 수정, 터널링 등), QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터 서비스, 데이터의 방향성(가입자-서버 또는 서버-서버) 등등)를 포함할 수 있다. 그리고, 플로우 제어부(440)는 관리자의 MMI 명령, 네트워크 기능 관리부(450)의 명령에 따라 네트워크 기능 서버(420)의 네트워크 기능 가상 머신(421)의 관리(생성, 변경, 제거, 이전 등등) 명령어 또는 네트워크 기능 서버 자원 관리 명령어를 관리 및 제어 인터페이스(492 및 493)를 통하여 네트워크 기능 서버(420)에 포함된 하이퍼바이저(424)에 전달한다. 네트워크 기능 서버(420)에 포함된 하이퍼바이저(424)는 해당 명령어에 따라 해당 네트워크 기능 가상 머신의 관리(생성, 변경, 제거, 이전 등등) 및 네트워크 기능 자원 관리 기능을 직접 수행하고, 해당 명령어 대한 결과 정보와 네트워크 기능 가상 머신 정보를 플로우 제어부(440)로 전달한다. 또한 플로우 제어부(440)는 네트워크 기능 플로우 관리 명령어와 정보를 네트워크 기능 서버 관리 및 제어 인터페이스(492 및 493 등등)를 통하여 네트워크 기능 서버(420)에 포함된 네트워크 기능 에이전트(423)에 전달한다. 네트워크 기능 에이전트(4213)는 해당 명령어에 따라 네트워크 기능 플로우 관리 기능을 직접 수행하여 스위칭 테이블 및 가상 머신 테이블 등을 갱신하고, 해당 명령어 대한 결과 정보를 플로우 제어부(440)로 전달한다.The flow controller 440 may manage (create, change, remove, transfer, etc.) the virtual machine of the server 410 according to an MMI command of an administrator, a command of a virtual machine manager, or a command of a cloud OS. In addition, the flow controller 440 may transmit a command or a server resource management command to the hypervisor 414 of the server 410 through the management and control interfaces 490 and 491. The hypervisor 414 included in the server 410 directly performs management (create, change, remove, transfer, etc.) and server resource management functions of the corresponding virtual machine according to the corresponding command, and results information and virtual machine Information can be delivered to the flow control unit 440. The flow control unit 440 transmits result information about the command received from the hypervisor 414 back to the MMI, the cloud OS, and the virtual machine manager 450. In addition, the flow control unit 440 transmits a management (create, change, delete, transfer, etc.) command or a network function server resource management command of the network function virtual machine 421 of the network function server 420 to the administrator's MMI command, a network function management unit. It is transmitted to the hypervisor 424 included in the network function server 420 according to the command of 450 or the command of the cloud OS. The hypervisor 424 included in the network function server 420 directly performs the management (create, change, remove, transfer, etc.) of the network function virtual machine and the network function server resource management function according to the corresponding command, and the corresponding command The result information and the network function virtual machine information are transmitted to the flow controller 440. The flow control unit 440 transmits the result back to the MMI, the cloud OS, and the virtual machine manager 450. In addition, the flow control unit 440 transmits a flow management command and information to the edge agent 413 included in the server 410. The edge agent 413 directly performs a flow management function according to a corresponding command to update a switching table and a virtual machine table, and transmits result information about the command to the flow controller 440. In addition, the flow control unit 440 transmits the flow management command and information to the switch agent 432 included in the switch 430 through the switch management and control interface 494. The switch agent 432 directly performs a flow management function according to a corresponding command to update a switching table and a virtual machine table, and transmits result information about the command to the flow controller 440. The virtual machine table of the flow control unit 440 includes network information for each virtual machine and QoS information of services provided by the virtual machine (real-time/non-real-time service, high bandwidth service, low bandwidth service, delay sensitive/insensitive service, service data). May include the direction of (subscriber-server or server-server), virtual machine bandwidth information, etc. The switching table of the flow controller 440 includes network information for each flow, operation information (forwarding, drop, edge agent delivery, field modification, tunneling, etc.), QoS information (real-time/non-real-time data, high bandwidth, low bandwidth, and delay). This may include sensitive/insensitive, secure/non-secure data services, data directionality (subscriber-server or server-server, etc.). In addition, the flow control unit 440 is a management (create, change, remove, transfer, etc.) command of the network function virtual machine 421 of the network function server 420 according to the MMI command of the administrator and the command of the network function management unit 450 Alternatively, the network function server resource management command is transmitted to the hypervisor 424 included in the network function server 420 through the management and control interfaces 492 and 493. The hypervisor 424 included in the network function server 420 directly performs the management (create, change, remove, transfer, etc.) and network function resource management functions of the corresponding network function virtual machine according to the corresponding command. The result information and the network function virtual machine information are transmitted to the flow controller 440. In addition, the flow control unit 440 transmits the network function flow management command and information to the network function agent 423 included in the network function server 420 through the network function server management and control interfaces 492 and 493, and so on. The network function agent 4213 directly performs a network function flow management function according to a corresponding command to update a switching table and a virtual machine table, and transmits result information about the command to the flow controller 440.

도 5a 내지 도 5c는 본 발명의 다른 실시 예에 따른 인그레스 플로우의 처리 방법을 나타낸 흐름도이다.5A to 5C are flowcharts illustrating a method of processing an ingress flow according to another embodiment of the present invention.

관리자의 MMI 명령, 가상 머신 매니저의 명령, 또는 클라우드 OS를 포함하는 네트워크 기능 관리부(450)는 서버(410)를 통해 서비스(웹 서버, 메일 서버, 파일 서버, 비디오 서버, 클라우드 서버, 기업 재무, 금융, 증권 등)를 제공하기 위해 가상 머신(411)을 생성하거나 가상 머신(411)을 다른 서버(410)로 이전할 수 있다. 또한, 네트워크 기능 관리부(450)는 네트워크 기능 서버(420)를 통해 가상 네트워크 기능(DHCP, NAT, Firewall, DPI, Load Balancing 등등)를 제공하기 위해 네트워크 기능 가상 머신(421)을 생성하거나 네트워크 기능 가상 머신(421)을 다른 네트워크 기능 서버로 이전할 수 있다.The network function management unit 450 including the administrator's MMI command, the virtual machine manager's command, or the cloud OS provides services through the server 410 (web server, mail server, file server, video server, cloud server, corporate finance, In order to provide finance, securities, etc.), a virtual machine 411 may be created, or the virtual machine 411 may be transferred to another server 410. In addition, the network function management unit 450 creates a network function virtual machine 421 to provide a virtual network function (DHCP, NAT, Firewall, DPI, Load Balancing, etc.) through the network function server 420 or Machine 421 can be transferred to another network function server.

관리자의 MMI 명령, 가상 머신 매니저의 명령, 또는 클라우드 OS를 포함하는 네트워크 기능 관리부(450)는 해당 가상 머신(411)에 대한 네트워크 정보 및 가상 머신의 QoS 정보를 플로우 제어부(440)에 전달한다(S501). The network function management unit 450 including the manager's MMI command, the virtual machine manager's command, or the cloud OS transmits network information for the virtual machine 411 and QoS information of the virtual machine to the flow control unit 440 ( S501).

그리고 플로우 제어부(440)는 해당 가상 머신(411)에 대한 네트워크 정보 및 가상 머신의 QoS 정보를 갱신한다(S502). 에지 에이전트(413)는 가상 머신(411)에 대한 네트워크 정보 및 가상 머신의 QoS 정보를 관리 및 제어 인터페이스(490 및 491)를 통해 플로우 제어부(440)로부터 수신하여(S503) 에지 플로우 스위치(412)를 갱신한다(S504). 스위치 에이전트(432)는 갱신된 가상 머신(411)에 대한 네트워크 정보 및 가상 머신의 QoS 정보를 관리 및 제어 인터페이스(494)를 통해 플로우 제어부(440)로부터 수신하여(S505) 스위치(430)를 갱신한다(S506). In addition, the flow control unit 440 updates network information for the corresponding virtual machine 411 and QoS information of the virtual machine (S502). The edge agent 413 receives network information for the virtual machine 411 and QoS information of the virtual machine from the flow controller 440 through the management and control interfaces 490 and 491 (S503), and the edge flow switch 412 Is updated (S504). The switch agent 432 receives the updated network information on the virtual machine 411 and QoS information of the virtual machine from the flow control unit 440 through the management and control interface 494 (S505) and updates the switch 430 Do (S506).

네트워크 기능 관리부(450)는 네트워크 기능 가상 머신(421)에 대한 네트워크 정보 및 네트워크 기능 가상 머신(421)의 QoS 정보를 플로우 제어부(440)에 전달한다(S507). The network function management unit 450 transfers network information about the network function virtual machine 421 and QoS information of the network function virtual machine 421 to the flow control unit 440 (S507).

이후, 플로우 제어부(440)는 네트워크 기능 가상 머신(421)에 대한 네트워크 정보 및 QoS 정보를 갱신한다(S508). 네트워크 기능 에이전트(423)는 관리 및 제어 인터페이스(492 및 493)를 통해 플로우 제어부(440)에 의해 갱신된 네트워크 기능 가상 머신(421)에 대한 네트워크 정보 및 QoS 정보를 수신하여(S509) 네트워크 기능 플로우 스위치(422)를 갱신한다(S510). 스위치 에이전트는(432)도 플로우 제어부(440)에 의해 갱신된 네트워크 기능 가상 머신(421)에 대한 네트워크 정보 및 QoS 정보를 관리 및 제어 인터페이스(494)를 통해 수신하여(S511) 스위치(430)를 갱신한다(S512). Thereafter, the flow controller 440 updates network information and QoS information for the network function virtual machine 421 (S508). The network function agent 423 receives the network information and QoS information for the network function virtual machine 421 updated by the flow control unit 440 through the management and control interfaces 492 and 493 (S509), and The switch 422 is updated (S510). The switch agent 432 also receives the network information and QoS information for the network function virtual machine 421 updated by the flow control unit 440 through the management and control interface 494 (S511) to receive the switch 430. Update (S512).

서버(410)는, 가상 머신(411)에서 제공하는 서비스(웹 서버, 메일 서버, 파일 서버, 비디오 서버, 클라우드 서버, 기업 재무, 금융, 증권 등)에 따라 플로우를 생성하여(S513) 에지 플로우 스위치(412)에 전달한다(S514). The server 410 generates a flow according to the services (web server, mail server, file server, video server, cloud server, corporate finance, finance, securities, etc.) provided by the virtual machine 411 (S513) and edge flow It is transmitted to the switch 412 (S514).

에지 플로우 스위치(412)는 서버(410)의 가상 머신(411)에서 생성한 플로우를 분석하여 플로우 정보를 추출한다(S515).The edge flow switch 412 analyzes the flow generated by the virtual machine 411 of the server 410 and extracts flow information (S515).

에지 플로우 스위치(412)는 추출한 플로우 정보를 통해 가상 머신(411)에서 생성한 플로우가 신규 플로우 인지 아니면 기존에 존재하는 플로우 인지 검사한다(S516). The edge flow switch 412 checks whether the flow generated by the virtual machine 411 is a new flow or an existing flow through the extracted flow information (S516).

만약 플로우가 신규 플로우이면, 에지 플로우 스위치(412)는 추출한 신규 플로우 정보를 에지 에이전트(413)에 전달한다(S517). If the flow is a new flow, the edge flow switch 412 delivers the extracted new flow information to the edge agent 413 (S517).

에지 에이전트(413)는 신규 플로우 정보를 플로우 제어부(440)에 전달한다(S518). 플로우 제어부(440)는 해당 신규 플로우에 대한 가상 플로우 정보와 네트워크 기능 정보를 생성하여 플로우 제어부(440)의 플로우 테이블(스위칭 테이블 및 네트워크 기능 테이블)을 갱신한다(S519).The edge agent 413 transmits the new flow information to the flow control unit 440 (S518). The flow control unit 440 updates the flow table (switching table and network function table) of the flow control unit 440 by generating virtual flow information and network function information for a corresponding new flow (S519).

에지 에이전트(413)는 플로우 제어부(440)에 의해 갱신된 플로우 테이블에 따라 에지 플로우 스위치(412)에 있는 스위칭 테이블을 갱신한다(S520, S521). 스위치 에이전트는(432)는 플로우 제어부(440)에 의해 갱신된 플로우 테이블에 따라 스위치(430)의 스위칭 테이블을 갱신한다(S522, S523). 네트워크 기능 에이전트(423)는 플로우 제어부(440)에 의해 갱신된 플로우 테이블에 따라 에지 플로우 스위치(412)의 스위칭 테이블을 갱신한다(S524, S525).The edge agent 413 updates the switching table in the edge flow switch 412 according to the flow table updated by the flow control unit 440 (S520 and S521). The switch agent 432 updates the switching table of the switch 430 according to the flow table updated by the flow control unit 440 (S522 and S523). The network function agent 423 updates the switching table of the edge flow switch 412 according to the flow table updated by the flow control unit 440 (S524 and S525).

에지 플로우 스위치(412)는 가상 머신(411)에서 생성한 플로우를 에지 플로우 스위치(412)의 스위칭 테이블에 따라 처리하고(S526), 처리한 플로우를 L2 스위치 또는 L3 스위치를 통해 또는 L2 스위치 및 L3 스위치를 통해 적어도 하나의 네트워크 인터페이스(480 및 481)에서 스위치(430)로 전달한다(S527).The edge flow switch 412 processes the flow generated by the virtual machine 411 according to the switching table of the edge flow switch 412 (S526), and processes the processed flow through the L2 switch or the L3 switch, or through the L2 switch and the L3 switch. At least one of the network interfaces 480 and 481 is transmitted to the switch 430 through the switch (S527).

스위치(430)는 L2 스위치 또는 L3 스위치를 통해 또는 L2 스위치 및 L3 스위치를 통해 적어도 하나의 네트워크 인터페이스(480 및 481)에서 전달된 플로우를 분석하여 플로우 정보를 추출한다(S528). 스위치(430)는 추출된 플로우 정보를 사용하여 스위칭 테이블에서, 가상 머신의 네트워크 정보(가상 머신의 IP 주소, 가상 머신의 MAC 주소, 가상 머신의 NAT 변환 정보, 가상 머신 대역폭 정보 등등), 가상 머신의 QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등) 및 플로우의 QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터 서비스, 데이터의 방향성(가입자-서버 또는 서버-서버) 등)를 찾고 이를 바탕으로 해당 플로우에 대한 QOS 정책을 결정한다. 그리고 스위치(430)는 해당 플로우에 대해 결정된 QoS 정책을 적용한다(S529). The switch 430 extracts flow information by analyzing the flow transmitted from the at least one network interface 480 and 481 through the L2 switch or the L3 switch or through the L2 switch and the L3 switch (S528). The switch 430 uses the extracted flow information from the switching table, the virtual machine's network information (the virtual machine's IP address, the virtual machine's MAC address, the virtual machine's NAT translation information, the virtual machine bandwidth information, etc.), the virtual machine QoS information (real-time/non-real-time data, high bandwidth, low bandwidth, delay sensitive/insensitive, service data direction (subscriber-server or server-server), etc.) and flow QoS information (real-time/non-real-time data, high bandwidth , Low bandwidth, delay sensitive/insensitive, secure/non-secure data service, data direction (subscriber-server or server-server), etc., and determine the QOS policy for the flow based on this. Then, the switch 430 applies the QoS policy determined for the corresponding flow (S529).

이후, 스위치(430)는 서버(410)로부터 전달받은 데이터 플로우를 갱신된 스위칭 테이블에 따라 스위칭한다(S530). 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 수행해야 한다면, 스위치(430)는 스위칭 테이블에 따라 네트워크 기능 서버(420)로 데이터 플로우를 스위칭할 수 있다. 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 수행하진 않는다면, 스위치(430)는 스위칭 테이블에 따라, 다른 서버(410)로 데이터 플로우를 스위칭할 수 있다.Thereafter, the switch 430 switches the data flow received from the server 410 according to the updated switching table (S530). If network function virtualization is to be performed for the corresponding data flow, the switch 430 may switch the data flow to the network function server 420 according to the switching table. If network function virtualization is not performed for the corresponding data flow, the switch 430 may switch the data flow to another server 410 according to the switching table.

네트워크 기능 서버(420)의 네트워크 기능 플로우 스위치(422)는 스위치(430)로부터 전달 받은 데이터 플로우에서 데이터 속성 및 서비스 속성을 확인한다(S531). 이후, 네트워크 기능 플로우 스위치(422)는 데이터 플로우의 데이터 속성 및 서비스 속성을 바탕으로 네트워크 기능 플로우 스위치(422)의 스위칭 테이블에 따라 가상 네트워크 기능을 수행할 수 있는 네트워크 기능 가상 머신(421)으로 스위칭한다(S532).The network function flow switch 422 of the network function server 420 checks the data attribute and the service attribute in the data flow received from the switch 430 (S531). Thereafter, the network function flow switch 422 switches to a network function virtual machine 421 capable of performing a virtual network function according to the switching table of the network function flow switch 422 based on the data attribute and service attribute of the data flow. Do (S532).

이후, 네트워크 기능 가상 머신(421)은 네트워크 기능 플로우 스위치(422)로부터 수신한 데이터 플로우에 대하여 가상 네트워크 기능을 적용할 수 있다(S533).Thereafter, the network function virtual machine 421 may apply the virtual network function to the data flow received from the network function flow switch 422 (S533).

도 6a 및 도 6b는 본 발명의 다른 실시 예에 따른 이그레스 플로우의 처리 방법을 나타낸 흐름도이다.6A and 6B are flowcharts illustrating a method of processing an egress flow according to another embodiment of the present invention.

도 6a 및 도 6b를 참조하면, 먼저, 네트워크 기능 가상 머신(421)은 네트워크 기능 플로우 스위치(422)로부터 수신한 데이터 플로우에 대하여 가상 네트워크 기능을 적용한다(S601). 그리고, 네트워크 기능 서버(420)에 포함된 네트워크 기능 가상 머신(421)은, 네트워크 기능 가상 머신(421)에서 동작하는 가상 네트워크 기능(DHCP, NAT, Firewall, DPI, Load Balancing 등)에 따라 플로우를 생성하여(S602) 네트워크 기능 플로우 스위치(422)에 전달한다(S603). 6A and 6B, first, the network function virtual machine 421 applies the virtual network function to the data flow received from the network function flow switch 422 (S601). In addition, the network function virtual machine 421 included in the network function server 420 flows according to the virtual network function (DHCP, NAT, Firewall, DPI, Load Balancing, etc.) operating in the network function virtual machine 421. It is generated (S602) and transmitted to the network function flow switch 422 (S603).

네트워크 기능 플로우 스위치(422)는 네트워크 기능 서버(421)에 포함된 네트워크 기능 가상 머신(421)에서 생성한 플로우를 분석하여 플로우 정보를 추출한다(S604). 네트워크 기능 플로우 스위치(422)는 추출한 플로우 정보를 통해 플로우가 신규 플로우 인지 아니면 기존에 존재하는 플로우 인지 검사한다(S605). The network function flow switch 422 analyzes the flow generated by the network function virtual machine 421 included in the network function server 421 and extracts flow information (S604). The network function flow switch 422 checks whether the flow is a new flow or an existing flow through the extracted flow information (S605).

만약 플로우가 신규 플로우이면, 네트워크 기능 플로우 스위치(422)는 추출된 신규 플로우 정보를 네트워크 기능 에이전트(423)에 전달한다(S606). 네트워크 기능 에이전트(423)는 신규 플로우 정보를 플로우 제어부(440)에 전달하고(S607), 플로우 제어부(440)는 해당 신규 플로우에 대한 가상 플로우 정보 및 네트워크 기능 정보를 생성하여 플로우 제어부(440)의 플로우 테이블(스위칭 테이블 및 네트워크 기능 테이블)을 갱신한다(S608).If the flow is a new flow, the network function flow switch 422 transmits the extracted new flow information to the network function agent 423 (S606). The network function agent 423 transmits the new flow information to the flow control unit 440 (S607), and the flow control unit 440 generates virtual flow information and network function information for the corresponding new flow. The flow table (switching table and network function table) is updated (S608).

에지 에이전트(413)는 플로우 제어부(440)가 갱신한 플로우 테이블에 따라 에지 플로우 스위치(412)의 스위칭 테이블을 갱신한다(S610). 스위치 에이전트(432)는 플로우 제어부(440)가 갱신한 플로우 테이블에 따라 스위치(430)의 스위칭 테이블을 갱신한다(S611). 네트워크 기능 에이전트(423)는 플로우 제어부(440)가 갱신한 플로우 테이블에 따라 네트워크 기능 플로우 스위치(422)의 스위칭 테이블을 갱신한다(S612).The edge agent 413 updates the switching table of the edge flow switch 412 according to the flow table updated by the flow control unit 440 (S610). The switch agent 432 updates the switching table of the switch 430 according to the flow table updated by the flow control unit 440 (S611). The network function agent 423 updates the switching table of the network function flow switch 422 according to the flow table updated by the flow control unit 440 (S612).

네트워크 기능 플로우 스위치(422)는 네트워크 기능 서버(421)에 포함된 네트워크 기능 가상 머신(421)에서 생성한 플로우를 네트워크 기능 플로우 스위치(422)의 스위칭 테이블에 따라 처리한다. 이후, 네트워크 기능 플로우 스위치(422)는 적어도 하나의 네트워크 인터페이스(482 및 483)로 L2 스위치 또는 L3 스위치를 통해 또는 L2 스위치 및 L3 스위치를 통해 처리한 플로우를 스위치(430)로 전달한다(S613, S614).The network function flow switch 422 processes the flow generated by the network function virtual machine 421 included in the network function server 421 according to the switching table of the network function flow switch 422. Thereafter, the network function flow switch 422 transfers the flow processed through the L2 switch or the L3 switch or through the L2 switch and the L3 switch to the switch 430 through at least one network interface 482 and 483 (S613, S614).

스위치(430)는 적어도 하나의 네트워크 인터페이스(482 및 483)로부터 전달된 플로우를 분석하여 플로우 정보를 추출한다(S615). 스위치(430)는 추출된 플로우 정보를 사용하여, 스위칭 테이블에서, 가상 머신의 네트워크 정보(가상 머신의 IP 주소, 가상 머신의 MAC 주소, 가상 머신의 NAT 변환 정보, 네트워크 기능 가상 머신 대역폭 정보 등등), 가상 머신의 QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등) 및 플로우의 QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터 서비스, 데이터의 방향성(가입자-서버 또는 서버-서버) 등)를 찾고 이를 바탕으로 해당 플로우에 대한 QoS 정책을 결정한다. 그리고, 스위치(430)는 해당 플로우에 대해 결정된 QoS 정책을 적용한다(S616). The switch 430 analyzes the flow transmitted from the at least one network interface 482 and 483 and extracts flow information (S615). The switch 430 uses the extracted flow information, and in the switching table, the network information of the virtual machine (the IP address of the virtual machine, the MAC address of the virtual machine, the NAT translation information of the virtual machine, the network function virtual machine bandwidth information, etc.) , QoS information of virtual machine (real-time/non-real-time data, high bandwidth, low bandwidth, delay sensitive/insensitive, service data directionality (subscriber-server or server-server), etc.) and QoS information of flow (real-time/non-real-time data) , High bandwidth, low bandwidth, delay sensitive/insensitive, secure/non-secure data service, data direction (subscriber-server or server-server), etc., and based on this, determine the QoS policy for the flow. Then, the switch 430 applies the QoS policy determined for the corresponding flow (S616).

이후, 스위치(430)는 네트워크 기능 서버(420)로부터 네트워크 기능 플로우 스위치(422)를 통해 수신한 데이터 플로우를 스위칭 테이블에 따라 스위칭한다(S617). 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 적용해야 한다면, 스위칭 테이블에 따라 가상 네트워크 기능 서버(421)로 스위칭한다. 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 적용하지 않는다면, 스위칭 테이블에 따라, 다른 서버(410)로 스위칭한다.Thereafter, the switch 430 switches the data flow received from the network function server 420 through the network function flow switch 422 according to the switching table (S617). If network function virtualization is to be applied to the corresponding data flow, the virtual network function server 421 is switched according to the switching table. If network function virtualization is not applied to the corresponding data flow, it switches to another server 410 according to the switching table.

서버(410)의 에지 플로우 스위치(412)는 스위치(404)로부터 수신한 데이터 플로우를, 에지 플로우 스위치(412)의 스위칭 테이블에 따라 가상 컴퓨팅 기능을 수행할 수 있는 가상 VM(411)로 스위칭한다(S618). 가상 네트워크 기능 서버(420)의 네트워크 기능 플로우 스위치(422)는 스위치(430)로부터 수신한 데이터 플로우를, 네트워크 기능 플로우 스위치(422)의 스위칭 테이블에 따라 가상 네트워크 기능을 수행할 수 있는 가상 네트워크 기능 가상 머신(421)로 스위칭한다(S618).The edge flow switch 412 of the server 410 switches the data flow received from the switch 404 to a virtual VM 411 capable of performing a virtual computing function according to the switching table of the edge flow switch 412. (S618). The network function flow switch 422 of the virtual network function server 420 is a virtual network function capable of performing a virtual network function according to the switching table of the network function flow switch 422 for the data flow received from the switch 430 Switching to the virtual machine 421 (S618).

가상 머신(411)은 에지 플로우 스위치(412)로부터 수신한 데이터 플로우에 대하여 가상 컴퓨팅 기능을 적용한다(S619). 네트워크 기능 가상 머신(421)은 네트워크 기능 플로우 스위치(422)로부터 수신한 데이터 플로우에 대하여 가상 네트워크 기능을 적용한다(S619).위에서 설명한 바와 같이 본 발명의 실시 예에 따르면, 수신한 플로우의 데이터 속성 및 서비스 속성을 확인하고 데이터 속성 및 서비스 속성에 따라서 네트워크 기능 가상 머신으로 플로우를 스위칭하여 가상화된 네트워크 기능을 병렬적으로 적용할 수 있다. 또한, 플로우의 데이터 속성 또는 서비스 속성에 따라 QoS를 보장할 수 있다. 또한, 플로우의 플로우 정보를 바탕으로 네트워크 기능 플로우 스위치의 스위칭 테이블을 단발적인 요구에 의해 또는 주기적으로 업데이트 할 수 있다. The virtual machine 411 applies a virtual computing function to the data flow received from the edge flow switch 412 (S619). The network function virtual machine 421 applies the virtual network function to the data flow received from the network function flow switch 422 (S619). As described above, according to an embodiment of the present invention, the data attribute of the received flow And check the service property and switch the flow to the network function virtual machine according to the data property and service property, and apply the virtualized network function in parallel. In addition, QoS can be guaranteed according to the data attribute or service attribute of the flow. In addition, it is possible to update the switching table of the network function flow switch according to a single request or periodically based on the flow information of the flow.

이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements by those skilled in the art using the basic concept of the present invention defined in the following claims are also provided. It belongs to the scope of rights.

Claims (25)

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 서버가 인그레스 플로우(ingress flow)를 처리하는 방법으로서,
상기 서버 내의 가상 머신에 의해 생성된 플로우가 신규 플로우일 때, 상기 신규 플로우의 플로우 정보를 플로우 제어부에게 송신하는 단계,
상기 플로우 정보를 바탕으로 상기 플로우 제어부에 의해 갱신된 플로우 테이블을 수신하는 단계,
상기 갱신된 플로우 테이블에 따라 상기 서버 내의 에지 플로우 스위치의 스위칭 테이블을 갱신하는 단계, 그리고
상기 신규 플로우 및 다음 플로우가 네트워크 기능 서버에게 전달될 수 있도록, 갱신된 스위칭 테이블에 따라 상기 신규 플로우 및 상기 다음 플로우를 제1 네트워크 인터페이스를 통해 연결된 스위치에게 전달하는 단계
를 포함하고,
상기 다음 플로우는 신규 플로우가 생성된 이후 상기 가상 머신에 의해 생성되는 플로우이고, 상기 신규 플로우 및 상기 다음 플로우는 상기 네트워크 기능 서버에 의해 가상화된 네트워크 기능이 적용될 플로우이며 상기 스위치는 제2 네트워크 인터페이스를 통해 상기 네트워크 기능 서버와 연결된, 인그레스 플로우를 처리하는 방법.
As a method for the server to process the ingress flow,
When the flow generated by the virtual machine in the server is a new flow, transmitting flow information of the new flow to a flow control unit,
Receiving a flow table updated by the flow controller based on the flow information,
Updating the switching table of the edge flow switch in the server according to the updated flow table, and
Delivering the new flow and the next flow to a switch connected through a first network interface according to an updated switching table so that the new flow and the next flow can be delivered to the network function server
Including,
The next flow is a flow generated by the virtual machine after a new flow is created, the new flow and the next flow are flows to which a network function virtualized by the network function server is applied, and the switch provides a second network interface. A method of processing an ingress flow, connected with the network function server through.
네트워크 기능 서버가 인그레스 플로우(ingress flow)를 처리하는 방법으로서,
스위치와 연결된 서버 내의 서버 가상 머신에 의해 생성된 플로우가 신규 플로우일 때 상기 신규 플로우의 플로우 정보를 바탕으로 플로우 제어부에 의해 갱신된 플로우 테이블을 수신하는 단계,
상기 갱신된 플로우 테이블에 따라 상기 네트워크 기능 서버 내의 네트워크 기능 플로우 스위치의 스위칭 테이블을 갱신하는 단계,
상기 신규 플로우 및 상기 서버 가상 머신에 의해 생성된, 상기 신규 플로우의 다음 플로우를 상기 스위치로부터 수신하는 단계, 그리고
상기 신규 플로우 및 상기 다음 플로우의 데이터 속성 또는 서비스 속성을 확인하고, 상기 데이터 속성 또는 상기 서비스 속성을 바탕으로 갱신된 스위칭 테이블에 따라 상기 신규 플로우 및 상기 다음 플로우를 상기 네트워크 기능 서버 내의 네트워크 기능 가상 머신으로 스위칭하는 단계
를 포함하는 인그레스 플로우를 처리하는 방법.
As a method for a network function server to process an ingress flow,
When the flow generated by the server virtual machine in the server connected to the switch is a new flow, receiving a flow table updated by the flow control unit based on the flow information of the new flow,
Updating a switching table of a network function flow switch in the network function server according to the updated flow table,
Receiving the new flow and the next flow of the new flow generated by the server virtual machine from the switch, and
A network function virtual machine in the network function server to check the data attribute or service attribute of the new flow and the next flow, and determine the new flow and the next flow according to a switching table updated based on the data attribute or the service attribute. Switching to
A method for processing an ingress flow comprising a.
제22항에서,
상기 네트워크 기능 가상 머신이 상기 신규 플로우 및 상기 다음 플로우에 가상화된 네트워크 기능을 적용하는 단계
를 더 포함하는 인그레스 플로우를 처리하는 방법.
In claim 22,
Applying, by the network function virtual machine, a virtualized network function to the new flow and the next flow
A method for processing an ingress flow further comprising.
제23항에서,
상기 가상화된 네트워크 기능은, 가상화된 동적 호스트 설정 프로토콜(Dynamic Host Configuration Protocol, DHCP), 가상화된 네트워크 주소 변환(network address translation, NAT), 가상화된 방화벽(Firewall), 가상화된 심층 패킷 검사(deep packet inspection, DPI), 또는 가상화된 로드 밸런싱(load balancing) 기능 중 적어도 하나를 포함하는, 인그레스 플로우를 처리하는 방법.
In clause 23,
The virtualized network function includes a virtualized dynamic host configuration protocol (DHCP), a virtualized network address translation (NAT), a virtualized firewall, and a virtualized deep packet inspection. inspection, DPI), or virtualized load balancing functions.
네트워크 기능 서버가 이그레스 플로우(egress flow)를 처리하는 방법으로서,
상기 네트워크 기능 서버 내의 네트워크 기능 가상 머신에 의해 생성된 플로우가 신규 플로우일 때, 상기 신규 플로우의 플로우 정보를 플로우 제어부에게 송신하는 단계,
상기 플로우 정보를 바탕으로 상기 플로우 제어부에 의해 갱신된 플로우 테이블을 수신하는 단계,
상기 갱신된 플로우 테이블에 따라 상기 네트워크 기능 서버 내의 네트워크 기능 플로우 스위치의 스위칭 테이블을 갱신하는 단계, 그리고
상기 신규 플로우 및 다음 플로우가 서버에게 전달될 수 있도록, 갱신된 스위칭 테이블에 따라 상기 신규 플로우 및 상기 다음 플로우를 제2 네트워크 인터페이스를 통해 연결된 스위치에게 전달하는 단계
를 포함하고,
상기 다음 플로우는 신규 플로우가 생성된 이후 상기 가상 머신에 의해 생성되는 플로우이고, 상기 신규 플로우 및 상기 다음 플로우는 가상화된 네트워크 기능이 적용된 플로우이고, 상기 스위치는 제1 네트워크 인터페이스를 통해 상기 서버와 연결된, 이그레스 플로우를 처리하는 방법.
As a method for a network function server to process an egress flow,
When the flow generated by the network function virtual machine in the network function server is a new flow, transmitting flow information of the new flow to a flow control unit,
Receiving a flow table updated by the flow controller based on the flow information,
Updating a switching table of a network function flow switch in the network function server according to the updated flow table, and
Delivering the new flow and the next flow to a switch connected through a second network interface according to an updated switching table so that the new flow and the next flow can be delivered to the server
Including,
The next flow is a flow generated by the virtual machine after a new flow is created, the new flow and the next flow are flows to which a virtualized network function is applied, and the switch is connected to the server through a first network interface. , How to handle egress flow.
KR1020140075118A 2013-06-24 2014-06-19 Method and apparatus for network functions virtualization KR102153585B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/311,281 US20140376555A1 (en) 2013-06-24 2014-06-21 Network function virtualization method and apparatus using the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130072543 2013-06-24
KR20130072543 2013-06-24

Publications (2)

Publication Number Publication Date
KR20150000420A KR20150000420A (en) 2015-01-02
KR102153585B1 true KR102153585B1 (en) 2020-09-09

Family

ID=52474540

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140075118A KR102153585B1 (en) 2013-06-24 2014-06-19 Method and apparatus for network functions virtualization

Country Status (1)

Country Link
KR (1) KR102153585B1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2690201C1 (en) 2015-05-07 2019-05-31 Хуавэй Текнолоджиз Ко., Лтд. System and method for dynamic control of virtualized network function descriptors
WO2016204804A1 (en) * 2015-06-16 2016-12-22 Hewlett-Packard Development Company, L.P. Virtualized network function monitoring
JP2018530183A (en) * 2015-07-23 2018-10-11 インテル コーポレイション Network resource model that supports virtualization lifecycle management of network functions
KR101994118B1 (en) 2015-09-09 2019-09-30 한국전자통신연구원 Universal VNFM and method for managing VNF
KR102174979B1 (en) * 2015-11-17 2020-11-05 에스케이텔레콤 주식회사 Method for controlling transsion of packet in virtual switch
KR101953546B1 (en) * 2015-12-30 2019-06-03 한국전자통신연구원 Apparatus and method for virtual switching

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070008884A1 (en) * 2003-10-08 2007-01-11 Bob Tang Immediate ready implementation of virtually congestion free guarantedd service capable network
US20100287262A1 (en) * 2009-05-08 2010-11-11 Uri Elzur Method and system for guaranteed end-to-end data flows in a local networking domain
US20110058554A1 (en) * 2009-09-08 2011-03-10 Praval Jain Method and system for improving the quality of real-time data streaming
US20120155467A1 (en) * 2010-12-17 2012-06-21 Guido Appenzeller Methods for configuring network switches
WO2012114398A1 (en) * 2011-02-24 2012-08-30 Nec Corporation Network system, controller, and flow control method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8630192B2 (en) * 2009-01-28 2014-01-14 Headwater Partners I Llc Verifiable and accurate service usage monitoring for intermediate networking devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070008884A1 (en) * 2003-10-08 2007-01-11 Bob Tang Immediate ready implementation of virtually congestion free guarantedd service capable network
US20100287262A1 (en) * 2009-05-08 2010-11-11 Uri Elzur Method and system for guaranteed end-to-end data flows in a local networking domain
US20110058554A1 (en) * 2009-09-08 2011-03-10 Praval Jain Method and system for improving the quality of real-time data streaming
US20120155467A1 (en) * 2010-12-17 2012-06-21 Guido Appenzeller Methods for configuring network switches
WO2012114398A1 (en) * 2011-02-24 2012-08-30 Nec Corporation Network system, controller, and flow control method

Also Published As

Publication number Publication date
KR20150000420A (en) 2015-01-02

Similar Documents

Publication Publication Date Title
US10700979B2 (en) Load balancing for a virtual networking system
US20140376555A1 (en) Network function virtualization method and apparatus using the same
US9602307B2 (en) Tagging virtual overlay packets in a virtual networking system
KR102153585B1 (en) Method and apparatus for network functions virtualization
US9112801B2 (en) Quantized congestion notification in a virtual networking system
US11991077B2 (en) Data interfaces with isolation for containers deployed to compute nodes
US9178828B2 (en) Architecture for agentless service insertion
US9385912B1 (en) Framework for stateless packet tunneling
US9654395B2 (en) SDN-based service chaining system
US9548890B2 (en) Flexible remote direct memory access resource configuration in a network environment
US10313380B2 (en) System and method for centralized virtual interface card driver logging in a network environment
EP3407563B1 (en) Method, apparatus and machine readable medium for accelerating network security monitoring
US11095716B2 (en) Data replication for a virtual networking system
Masutani et al. Requirements and design of flexible NFV network infrastructure node leveraging SDN/OpenFlow
US9292351B2 (en) Distributed fabric architecture in a cloud computing environment
US10178068B2 (en) Translating network attributes of packets in a multi-tenant environment
KR102020049B1 (en) Switch and method for supporting QOS of Multi-Tenant Cloud Service and System having the same switch
CN112769597A (en) Container network current limiting method and system for cloud-edge collaborative virtualization scene
US12081336B2 (en) Packet drop monitoring in a virtual router
US20140204937A1 (en) Apparatus and method for relaying communication between nodes coupled through relay devices
US20170249134A1 (en) Concurrent deployment in a network environment
Yamada et al. VNode infrastucture enhancement—Deeply programmable network virtualization
Zeng et al. CONTC: A Traffic Control System for Container Overlay Networks
KR20180085475A (en) Virtual router api interface to integrate with openstack based orchestration

Legal Events

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