KR102153585B1 - Method and apparatus for network functions virtualization - Google Patents
Method and apparatus for network functions virtualization Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic 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
본 발명은 네트워크 기능 가상화를 제공하는 방법 및 장치에 관한 것이다. 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
서버(100)는, 에지 플로우 스위치(104) 및 에지 에이전트(105)를 포함하고, 에지 플로우 스위치(104)는 서버에 포함된 복수의 가상 머신(101 내지 10n)과 연결된다. 또한, 에지 플로우 스위치(104)는 적어도 하나의 네트워크 인터페이스(131)를 통해 스위치(110)와 연결된다. 또한 에지 에이전트(105)는 관리 및 제어 인터페이스(133)를 통해 플로우 제어부(130)와 연결된다.The
서버(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
스위치(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
스위치(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
네트워크 기능 서버(120)는 네트워크 기능 플로우 스위치(124) 및 네트워크 기능 에이전트(15)를 포함하고, 네트워크 기능 플로우 스위치(124)는 네트워크 기능 서버에 포함된 복수의 네트워크 기능 가상 머신(121 내지 12n)과 연결된다. 또한, 네트워크 기능 플로우 스위치(124)는 적어도 하나의 네트워크 인터페이스(132)를 통해 스위치(110)와 연결된다. 이때, 네트워크 기능 서버(120)는 L2 스위치 또는 L3 스위치를 통해 또는 L2 스위치 및 L3 스위치를 통해 스위치(110)와 연결될 수 있다. 또한, 네트워크 기능 에이전트는 관리 및 제어 인터페이스(135)를 통해 플로우 제어부(130)와 연결된다.The
네트워크 기능 플로우 스위치(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
네트워크 기능 가상 머신((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
네트워크 기능 가상 머신(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
네트워크 기능 에이전트(125)는 관리 및 제어 인터페이스(135)를 통하여 플로우 제어부(130)와 연결하여 신규 플로우 정보를 갱신한다. 또한, 네트워크 기능 에이전트(125)는 주기적으로 플로우 제어부(130)와 연결하여 스위칭 테이블 및 네트워크 기능 가상 머신 테이블을 갱신 한다. 주기적으로 갱신되는 네트워크 기능 가상 머신 테이블은 각 네트워크 기능 가상 머신(121 내지 12n)에 대한 네트워크 정보, 네트워크 기능 가상 머신(121 내지 12n)에서 제공하는 네트워크 기능 서비스의 QOS 정보(실시간/비실시간 서비스, 높은 대역폭 서비스, 낮은 대역폭 서비스, 지연 민감/둔감 서비스, 네트워크 기능 서비스 데이터의 방향성(가입자-서버 또는 서버-서버), 네트워크 기능 가상 머신 대역폭 정보 등)을 포함할 수 있다. 주기적으로 갱신되는 스위칭 테이블은 각 플로우에 대한 네트워크 정보, 동작 정보(포워딩, 드랍, 에지 에이전트 전달, 필드 수정, 터널링 등등), QOS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등)을 포함할 수 있다. The
네트워크 기능 플로우 스위치(124)는 각 네트워크 기능 가상 머신(121 내지 12n)의 QoS 정보 중 서비스 데이터의 방향성(가입자-서버 또는 서버-서버)을 구별하여 플로우의 QoS를 관리할 수 있다. 예를 들어, 네트워크 기능 플로우 스위치(124)는 네트워크 기능 가상 머신(121 내지 12n)의 서비스 속성이 서버-서버인 경우 서비스 속성이 서버-서버인 플로우에 대해 최선의 우선 순위를 주고, 네트워크 기능 가상 머신의 서비스 속성이 가입자-서버인 경우 서비스 속성이 가입자-서버인 플로우에 대해 최선의 우선 순위를 부여함으로써, 서비스 데이터에 서비스 품질을 제공할 수 있다. The network
또한 네트워크 기능 가상 머신(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
도 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
에지 플로우 스위치(104)는 가상 머신(101 내지 10n)에서 생성한 플로우를 분석하여 플로우 정보를 추출하고(S203), 추출된 플로우 정보를 분석하여 플로우가 신규 플로우인지 판단한다(S204). The
가상 머신(101 내지 10n)에서 생성한 플로우가 신규 플로우라면, 에지 플로우 스위치(104)는 신규 플로우의 플로우 정보(신규 플로우 정보)를 에지 에이전트(105)에 전달한다(S205). 그리고, 에지 에이전트(105)는 신규 플로우 정보를 플로우 제어부(130)에 전달한다(S206). If the flow generated by the
이후, 플로우 제어부(130)는 신규 플로우 정보를 통해 신규 플로우에 대한 가상 플로우 정보 및 네트워크 기능 정보를 생성하여 플로우 제어부(130)의 플로우 테이블을 갱신한다(S207). 이때, 플로우 테이블을 스위칭 테이블 및 네트워크 기능 테이블을 포함할 수 있다.Thereafter, the
이후, 에지 에이전트(105)는 플로우 제어부(130)의 갱신된 플로우 테이블을 수신하고(S208), 갱신된 플로우 테이블에 따라 에지 플로우 스위치(104)의 스위칭 테이블을 갱신한다(S209). Thereafter, the
그리고, 스위치 에이전트(112)도 플로우 제어부(130)의 갱신된 플로우 테이블에 따라 스위치(110)의 스위칭 테이블을 갱신한다(S210). Further, the
또한, 네트워크 기능 에이전트(125)도 플로우 제어부(130)의 갱신된 플로우 테이블에 따라 네트워크 기능 플로우 스위치(124)의 스위칭 테이블을 갱신한다(S211).In addition, the
이후, 에지 플로우 스위치(104)는 서버(100)의 가상 머신(101 내지 10n)에서 생성한 플로우를 스위칭 테이블에 따라 처리하고(S212), L2 스위치 또는 L3 스위치를 통해 또는 L2 스위치 및 L3 스위치 등 적어도 하나의 네트워크 인터페이스(131)를 통해 플로우를 스위치(110)에 전달한다(S213).Thereafter, the
플로우 스위치(111)는 가상 머신(101 내지 10n)에서 생성한 플로우를 분석하여 플로우 정보를 추출한다(S214). 플로우 스위치(111)는 추출된 플로우 정보를 사용하여 스위칭 테이블에서, 가상 머신의 네트워크 정보(가상 머신의 IP 주소, 가상 머신의 MAC 주소, 가상 머신의 NAT 변환 정보, 가상 머신 대역폭 정보 등등), 가상 머신의 QOS 정보(실시간/비실시간 데이터, 높은/낮은 대역폭, 지연 민감/둔감, 서비스 데이터의 방향성(가입자-서버, 서버-서버) 등등) 및 플로우의 QoS 정보(실시간/비실시간 데이터, 높은/낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터 서비스, 데이터의 방향성(가입자-서버, 서버-서버) 등)를 찾고 이를 바탕으로수신한 플로우에 대한 QoS 정책을 결정한다. 그리고, 플로우 스위치(111)는 해당 플로우에 대해 결정된 QoS 정책을 적용한다(S215). The
또한 스위치(110)는 갱신된 스위칭 테이블에 따라 서버(100)로부터 수신한 데이터 플로우를 스위칭한다(S216). 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 수행해야 한다면, 스위치(110)는 스위칭 테이블에 따라 플로우를 네트워크 기능 서버(120)로 스위칭한다. 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 수행하지 않는다면, 스위칭 테이블에 따라 플로우를 다른 서버(100)로 스위칭한다.In addition, the
이후, 네트워크 기능 서버(120)의 네트워크 기능 플로우 스위치(124)는 수신한 플로우의 데이터 속성(영상 데이터, 음성 데이터, 텍스트 데이터 등) 또는 서비스 속성(실시간 서비스, 지연 민감 서비스 등)을 확인한다(S217). 그리고 네트워크 기능 플로우 스위치(124)는 플로우의 데이터 속성 또는 서비스 속성을 바탕으로 네트워크 기능 플로우 스위치(124)의 스위칭 테이블에 따라 가상 네트워크 기능을 수행할 수 있는 네트워크 기능 가상 머신(121 내지 12n)로 플로우를 스위칭한다(S218).Thereafter, the network
네트워크 기능 가상 머신(121 내지 12n)은 네트워크 기능 플로우 스위치(124)로부터 수신된 데이터 플로우에 대하여 가상화된 네트워크 기능을 적용한다(S219).The network function
도 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
네트워크 기능 플로우 스위치(124)는 네트워크 기능 가상 머신(121 내지 12n)에서 생성한 플로우를 분석하여 플로우 정보를 추출한다(S304). 이후, 네트워크 기능 플로우 스위치(124)는 추출한 플로우 정보를 통해 네트워크 기능 가상 머신(121 내지 12n)에서 생성한 플로우가 신규 플로우 인지 아니면 기존 플로우 인지 검사한다(S305). The network
만약 네트워크 기능 가상 머신(121 내지 12n)에서 생성한 플로우가 신규 플로우이면, 네트워크 기능 플로우 스위치(124)는 추출된 신규 플로우의 플로우 정보(신규 플로우 정보)를 네트워크 기능 에이전트(125)에 전달한다(S306). If the flow generated by the network function
네트워크 기능 에이전트(125)는 신규 플로우 정보를 플로우 제어부(130)에 전달한다(S307). 플로우 제어부(130)는 해당 신규 플로우 정보를 바탕으로 신규 플로우에 대한 가상 플로우 정보와 네트워크 기능 정보를 생성하여 플로우 제어부(130)의 스위칭 테이블 및 네트워크 기능 테이블을 갱신하고(S308), 갱신된 테이블을 에지 에이전트(105), 스위치 에이전트(112) 및 네트워크 기능 에이전트(125)로 전달한다(S309).The
에지 에이전트(105)는 플로우 제어부(130)에 의해 갱신된 스위칭 테이블에 따라 에지 플로우 스위치(104)의 스위칭 테이블을 갱신한다(S310). 스위치 에이전트는(112)는 플로우 제어부(130)에 의해 갱신된 가상 머신 스위칭 테이블에 따라 스위치(111)의 스위칭 테이블을 갱신한다(S311). 네트워크 기능 에이전트(125)는 플로우 제어부(130)에 의해 갱신된 가상 머신 스위칭 테이블과 네트워크 기능 테이블에 따라 네트워크 기능 플로우 스위치(124)의 스위칭 테이블을 갱신한다(S312). The
네트워크 기능 플로우 스위치(124)는 네트워크 기능 가상 머신(121 내지 12n)에서 생성한 데이터 플로우를 네트워크 기능 플로우 스위치(124)의 스위칭 테이블에 따라 처리하여(S313), 스위치(110)로 전달하거나 다른 네트워크 기능 머신(121 내지 12n)으로 전달한다(S314).The network
스위치(110)는 네트워크 기능 플로우 스위치(124)로부터 수신한 데이터 플로우를 분석하여 플로우 정보를 추출한다(S315). 스위치(110)의 플로우 스위치(111)는 추출된 플로우 정보를 사용하여, 가상 머신의 네트워크 정보(가상 머신의 IP 주소, 가상 머신의 MAC 주소, 가상 머신의 NAT 변환 정보, 가상 머신 대역폭 정보 등), 가상 머신의 QOS 정보(실시간/비실시간 데이터, 높은/낮은 대역폭, 지연 민감/둔감, 데이터의 방향성(가입자-서버, 서버-서버) 등) 및 플로우의 QOS 정보(실시간/비실시간 데이터, 높은/낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터 서비스, 데이터의 방향성(가입자-서버, 서버-서버) 등)를 찾고 이를 바탕으로 수신한 플로우에 대한 QoS 정책을 결정한다. 그리고, 플로우 스위치(111)는 수신한 플로우에 찾은 결정된 QoS 정책을 적용한다(S316). The
이후, 스위치(110)는 네트워크 기능 플로우 스위치(124)를 통해 전달받은 데이터 플로우를 스위칭 테이블에 따라 스위칭한다(S317). 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 적용해야 한다면, 스위칭 테이블에 따라 네트워크 기능 서버(120)로 데이터 플로우를 스위칭한다. 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 적용하지 않는다면, 스위칭 테이블에 따라 데이터 플로우를 다른 서버(100)로 스위칭한다.Thereafter, the
서버(100)의 에지 플로우 스위치(104)는 스위치(110)를 통해 전달받은 데이터 플로우를, 에지 플로우 스위치(104)의 스위칭 테이블에 따라 가상 컴퓨팅 기능을 수행할 수 있는 가상 머신(101 내지 10n)으로 스위칭한다(S318). 또는, 네트워크 기능 서버(120)의 네트워크 기능 플로우 스위치(124)는 스위치(110)를 통해 전달받은 데이터 플로우를, 네트워크 기능 플로우 스위치(124)의 스위칭 테이블에 따라 가상 네트워크 기능을 수행할 수 있는 네트워크 기능 가상 머신(121 내지 12n)으로 스위칭할 수 있다.The
이후, 가상 머신(101 내지 10n)은 에지 플로우 스위치(104)로부터 수신한 데이터 플로우에 대하여 가상 컴퓨팅 기능을 적용한다(S319). 그리고, 네트워크 기능 가상 머신(121 내지 12n)은 네트워크 기능 플로우 스위치(124)로부터 수신한 데이터 플로우에 대하여 가상 네트워크 기능을 적용한다(S320). Thereafter, the
도 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
복수의 가상 컴퓨팅 서버(410)는 L2 스위치 또는 L3 스위치를 통하여 또는 L2 스위치 및 L3 스위치를 통하여 적어도 하나의 네트워크 인터페이스(480 및 481)로 스위치(430)와 연결되어 있다. 또한 복수의 컴퓨팅 서버(410)는 관리 및 제어 인터페이스(490 및 491)를 통하여 플로우 제어부(440)와 연결되어 있다. 스위치(430)는 스위치 관리 및 제어 인터페이스(494)을 통하여 플로우 제어부(440)와 연결되어 있다. The plurality of
복수의 네트워크 기능 서버(420)는 L2 스위치 또는 L3 스위치를 통하여 또는 L2 스위치 및 L3 스위치를 통하여 적어도 하나의 네트워크 인터페이스(482 및 483)로 스위치(430)와 연결되어 있다. 또한 복수의 네트워크 기능 서버(420)는 관리 및 제어 인터페이스(492 및 493)를 통하여 플로우 제어부(440)와 연결되어 있다. The plurality of
플로우 제어부(440)는 관리 및 제어 인터페이스(495)를 통하여 인간 컴퓨터 간 인터페이스(man-machine interface, MMI), 가상 머신 관리자 또는 클라우드 운영시스템(operating system, OS)을 포함하는 네트워크 기능 관리부(450)와 연결되어 있다. The
복수의 가상 컴퓨팅 서버(410)는 복수의 가상 머신(411), 에지 플로우 스위치(412), 에지 에이전트(413) 및 하이퍼바이저(414)를 포함한다. The plurality of
복수의 가상 머신(411)은 하이퍼바이저(414)에 의해 제공되는 논리적 하드웨어(가상 CPU, 가상 메모리, 가상 스토리지, 가상 네트워크 인터페이스) 상에서 동작되는 OS(LINUX, NetBSD, FreeBSD, Solaris, Wondows)이다. 가상 머신(411)은 해당 가상 머신에서 제공하는 서비스(웹 서버, 파일 서버, 비디오 서버, 클라우드 서버, 기업 재무, 금융, 증권 등등)에 따라 데이터 플로우를 생성하고, 각 데이터 플로우는 제공하는 서비스에 따라 서로 다른 서비스 QoS 요구사항을 갖는다. The plurality of
에지 플로우 스위치(412)는 복수의 가상 머신들(411)이 생성한 데이터 플로우를 분석하여 만약 신규 데이터 플로우이면 에지 에이전트(413)로 전달한다. 만약 신규 데이터 플로우가 아니면, 에지 플로우 스위치(412)는 스위칭 테이블에 따라서 플로우를 처리한다. 에지 에이전트(413)는 관리 및 제어 인터페이스(490 및 491)를 통해 플로우 제어부(440)와 연결하여 신규 플로우 정보를 갱신한다. 이때, 에지 에이전트(413)는 주기적으로 플로우 제어부(440)와 연결하여 스위칭 테이블, 가상 머신 테이블 정보를 갱신한다. 주기적으로 갱신되는 가상 머신 테이블은 가상 머신(411)에 대한 네트워크 정보, 가상 머신에서 제공하는 서비스의 QoS 정보(실시간/비실시간 서비스, 높은 대역폭 서비스, 낮은 대역폭 서비스, 지연 민감/둔감 서비스, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버), 가상 머신 대역폭 정보 등)을 포함할 수 있다. 주기적으로 갱신되는 스위칭 테이블은 플로우에 대한 네트워크 정보, 동작 정보(포워딩, 드랍, 에지 에이전트 전달, 필드 수정, 터널링 등등), QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등)을 포함할 수 있다. The
하이퍼바이저(414)는 물리적 하드웨어(CPU, 메모리, 스토리지, 네트워크 인터페이스 등등)를 가상화한 논리적 하드웨어(가상 CPU, 가상 메모리, 가상 스토리지, 가상 네트워크 인터페이스)를 복수의 가상 머신(411)에 제공한다. 또한 하이퍼바이저(414)는 플로우 제어부(440)로부터 수신한 가상 머신(411)에 대한 관리 명령에 따라, 가상 머신의 관리(생성, 변경, 제거, 이전 등등) 및 서버 자원 관리 기능을 직접적으로 수행하여 그 결과를 플로우 제어부(440)로 보고한다. The
네트워크 기능 서버(420)는 복수의 네트워크 기능 가상 머신(421), 네트워크 기능 플로우 스위치(422), 네트워크 기능 에이전트(423), 그리고 하이퍼바이저(424)를 포함한다. The
네트워크 기능 플로우 스위치(422)는 L2 스위치 또는 L3 스위치를 통하여 또는 L2 스위치 및 L3 스위치를 통하여 적어도 하나의 네트워크 인터페이스(482 및 483)를 통하여 스위치(430)로부터 데이터 플로우를 수신한다. 이후, 네트워크 기능 플로우 스위치(422)는 스위치(430)에서 전달받은 데이터 플로우를 분석하여 플로우 정보를 추출한다. 수신한 데이터 플로우가 신규 데이터 플로우이면 데이터 플로우를 네트워크 기능 에이전트(423)로 전달한다. 만약 신규 플로우가 아니면, 네트워크 기능 플로우 스위치(422)의 네트워크 기능 스위칭 테이블에 따라서 네트워크 기능 가상 머신(421)으로 플로우를 스위칭한다. 또한 네트워크 기능 플로우 스위치(422)는 네트워크 기능 가상 머신(421)로부터 수신한 데이터 플로우를 분석하여 플로우 정보를 추출한다. 만약 신규 데이터 플로우이면 네트워크 기능 에이전트(423)로 전달한다. 하지만 신규 플로우가 아니면, 네트워크 기능 플로우 스위치(422)의 네트워크 기능 스위칭 테이블에 따라서 스위치(430) 또는 다른 네트워크 기능 머신(421)으로 데이터 플로우를 스위칭한다. The network
이때, 네트워크 기능 플로우 스위치(422)는 신규 데이터 플로우 검출 시에 사용된 스위칭 테이블을 스위칭 테이블 캐시에 추가한다. 네트워크 기능 플로우 스위치(422)에서는 데이터 플로우의 종료 시에 스위칭 테이블 캐시에서 해당 스위칭 테이블을 삭제한다. 네트워크 기능 플로우 스위치(422)는 동일한 데이터 플로우에 대해 스위칭 테이블 캐시에 저장되어 있는 동일한 다른 데이터 플로우의 스위칭 테이블을 사용할 수 있다. 네트워크 기능 가상 머신(421)들이 새로운 데이터 플로우를 생성할 때, 각각의 데이터 플로우는 수행되는 네트워크 기능에 따라 서로 다른 QOS 요구사항을 가질 수 있다. At this time, the network
네트워크 기능 가상 머신(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
하이퍼바이저(424)는 물리적 하드웨어(CPU, 메모리, 스토리지, 네트워크 인터페이스 등등)를 가상화한 논리적 하드웨어(가상 CPU, 가상 메모리, 가상 스토리지, 가상 네트워크 인터페이스)를 네트워크 기능 가상 머신(421)에 제공한다. 또한 하이퍼바이저(424)는 플로우 제어부(440)로부터 수신한 네트워크 기능 가상 머신에 대한 관리 명령에 대해, 네트워크 기능 가상 머신의 관리(생성, 변경, 제거, 이전 등등) 및 네트워크 기능 서버 자원 관리 기능을 직접적으로 수행하여 그 결과를 플로우 제어부(440)로 보고한다. The
네트워크 기능 에이전트(423)는 플로우 제어부(440)와 연결하여 신규 플로우 정보를 갱신 한다. 네트워크 기능 에이전트(423)는 주기적으로 플로우 제어부(440)와 연결하여 스위칭 테이블, 네트워크 기능 가상 머신 테이블 정보를 갱신 한다. 주기적으로 갱신되는 네트워크 기능 가상 머신 테이블은 네트워크 기능 가상 머신에 대한 네트워크 정보, 네트워크 기능 가상 머신에서 제공하는 네트워크 기능 서비스의 QoS 정보(실시간/비실시간 서비스, 높은 대역폭 서비스, 낮은 대역폭 서비스, 지연 민감/둔감 서비스, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버), 네트워크 기능 가상 머신 대역폭 정보 등)을 포함할 수 있다. 주기적으로 갱신되는 스위칭 테이블은 플로우에 대한 네트워크 정보, 동작 정보(포워딩, 드랍, 에지 에이전트 전달, 필드 수정, 터널링 등등), QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등)을 포함할 수 있다. 네트워크 기능 플로우 스위치(422)는 각 네트워크 기능 가상 머신(421)의 QoS 정보 중 서비스 데이터의 방향성(가입자-서버 또는 서버-서버)을 구별하여 플로우를 처리함으로써, QOS를 관리할 수 있다. 예를 들어, 해당 네트워크 기능 가상 머신(421)의 서비스 속성이 서버-서버인 경우 데이터 속성이 서버-서버인 플로우에 대해 높은 우선 순위를 주고, 해당 네트워크 기능 가상 머신(421)의 서비스 속성이 가입자-서버인 경우, 데이터 속성이 가입자-서버인 플로우에 대해 높은 우선 순위를 부여함으로써, 서비스 데이터에 적절한 서비스 품질을 제공할 수 있다. 또한 해당 네트워크 기능 가상 머신(421)의 서비스 속성이 실시간 서비스 인 경우, 네트워크 기능 가상 머신의 데이터 플로우 중에서 실시간 QoS 속성을 가지는 플로우에 대해 높은 우선 순위를 주어 서비스 데이터에 더 나은 서비스 품질을 제공할 수 있다. 또한 네트워크 기능 가상 머신(421)의 서비스 속성이 지연 민감 서비스 인 경우, 네트워크 기능 가상 머신의 데이터 플로우 중에서 지연 민감 QoS 속성을 갖는 플로우에 대해 높은 우선 순위를 부여함으로써, 서비스 데이터에 적절한 서비스 품질을 제공할 수 있다.The
스위치(430)는 L2 스위치 또는 L3 스위치를 통하여 또는 L2 스위치 및 L3 스위치를 통하여 적어도 하나의 네트워크 인터페이스(480 및 481)로 서버(410)와 연결되어 있다. 또한, 스위치(430) 관리 및 제어 인터페이스(494)을 통하여 플로우 제어부(440)와 연결되어 있다. 또한, 스위치(430)에 포함된 스위치 에이전트(432)는 관리 및 제어 인터페이스(494)을 통하여 플로우 제어부(440)로부터 수신한 신규 플로우 정보를 바탕으로 스위치(430)의 가상 머신 테이블 및 스위칭 테이블을 주기적으로 갱신한다. 주기적으로 갱신되는 가상 머신 테이블은 가상 머신에 대한 네트워크 정보 및 QOS 정보(실시간/비실시간 서비스, 높은 대역폭 서비스, 낮은 대역폭 서비스, 지연 민감/둔감 서비스, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버), 가상 머신 대역폭 정보 등)을 포함할 수 있다. 주기적으로 갱신되는 스위칭 테이블은 플로우에 대한 네트워크 정보, 동작 정보(포워딩, 드랍, 에지 에이전트 전달, 필드 수정, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등) 및 가상 머신에서 제공하는 서비스의 QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등)을 포함할 수 있다. The
스위치(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
플로우 제어부(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
도 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
관리자의 MMI 명령, 가상 머신 매니저의 명령, 또는 클라우드 OS를 포함하는 네트워크 기능 관리부(450)는 해당 가상 머신(411)에 대한 네트워크 정보 및 가상 머신의 QoS 정보를 플로우 제어부(440)에 전달한다(S501). The network
그리고 플로우 제어부(440)는 해당 가상 머신(411)에 대한 네트워크 정보 및 가상 머신의 QoS 정보를 갱신한다(S502). 에지 에이전트(413)는 가상 머신(411)에 대한 네트워크 정보 및 가상 머신의 QoS 정보를 관리 및 제어 인터페이스(490 및 491)를 통해 플로우 제어부(440)로부터 수신하여(S503) 에지 플로우 스위치(412)를 갱신한다(S504). 스위치 에이전트(432)는 갱신된 가상 머신(411)에 대한 네트워크 정보 및 가상 머신의 QoS 정보를 관리 및 제어 인터페이스(494)를 통해 플로우 제어부(440)로부터 수신하여(S505) 스위치(430)를 갱신한다(S506). In addition, the
네트워크 기능 관리부(450)는 네트워크 기능 가상 머신(421)에 대한 네트워크 정보 및 네트워크 기능 가상 머신(421)의 QoS 정보를 플로우 제어부(440)에 전달한다(S507). The network
이후, 플로우 제어부(440)는 네트워크 기능 가상 머신(421)에 대한 네트워크 정보 및 QoS 정보를 갱신한다(S508). 네트워크 기능 에이전트(423)는 관리 및 제어 인터페이스(492 및 493)를 통해 플로우 제어부(440)에 의해 갱신된 네트워크 기능 가상 머신(421)에 대한 네트워크 정보 및 QoS 정보를 수신하여(S509) 네트워크 기능 플로우 스위치(422)를 갱신한다(S510). 스위치 에이전트는(432)도 플로우 제어부(440)에 의해 갱신된 네트워크 기능 가상 머신(421)에 대한 네트워크 정보 및 QoS 정보를 관리 및 제어 인터페이스(494)를 통해 수신하여(S511) 스위치(430)를 갱신한다(S512). Thereafter, the
서버(410)는, 가상 머신(411)에서 제공하는 서비스(웹 서버, 메일 서버, 파일 서버, 비디오 서버, 클라우드 서버, 기업 재무, 금융, 증권 등)에 따라 플로우를 생성하여(S513) 에지 플로우 스위치(412)에 전달한다(S514). The
에지 플로우 스위치(412)는 서버(410)의 가상 머신(411)에서 생성한 플로우를 분석하여 플로우 정보를 추출한다(S515).The
에지 플로우 스위치(412)는 추출한 플로우 정보를 통해 가상 머신(411)에서 생성한 플로우가 신규 플로우 인지 아니면 기존에 존재하는 플로우 인지 검사한다(S516). The
만약 플로우가 신규 플로우이면, 에지 플로우 스위치(412)는 추출한 신규 플로우 정보를 에지 에이전트(413)에 전달한다(S517). If the flow is a new flow, the
에지 에이전트(413)는 신규 플로우 정보를 플로우 제어부(440)에 전달한다(S518). 플로우 제어부(440)는 해당 신규 플로우에 대한 가상 플로우 정보와 네트워크 기능 정보를 생성하여 플로우 제어부(440)의 플로우 테이블(스위칭 테이블 및 네트워크 기능 테이블)을 갱신한다(S519).The
에지 에이전트(413)는 플로우 제어부(440)에 의해 갱신된 플로우 테이블에 따라 에지 플로우 스위치(412)에 있는 스위칭 테이블을 갱신한다(S520, S521). 스위치 에이전트는(432)는 플로우 제어부(440)에 의해 갱신된 플로우 테이블에 따라 스위치(430)의 스위칭 테이블을 갱신한다(S522, S523). 네트워크 기능 에이전트(423)는 플로우 제어부(440)에 의해 갱신된 플로우 테이블에 따라 에지 플로우 스위치(412)의 스위칭 테이블을 갱신한다(S524, S525).The
에지 플로우 스위치(412)는 가상 머신(411)에서 생성한 플로우를 에지 플로우 스위치(412)의 스위칭 테이블에 따라 처리하고(S526), 처리한 플로우를 L2 스위치 또는 L3 스위치를 통해 또는 L2 스위치 및 L3 스위치를 통해 적어도 하나의 네트워크 인터페이스(480 및 481)에서 스위치(430)로 전달한다(S527).The
스위치(430)는 L2 스위치 또는 L3 스위치를 통해 또는 L2 스위치 및 L3 스위치를 통해 적어도 하나의 네트워크 인터페이스(480 및 481)에서 전달된 플로우를 분석하여 플로우 정보를 추출한다(S528). 스위치(430)는 추출된 플로우 정보를 사용하여 스위칭 테이블에서, 가상 머신의 네트워크 정보(가상 머신의 IP 주소, 가상 머신의 MAC 주소, 가상 머신의 NAT 변환 정보, 가상 머신 대역폭 정보 등등), 가상 머신의 QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등) 및 플로우의 QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터 서비스, 데이터의 방향성(가입자-서버 또는 서버-서버) 등)를 찾고 이를 바탕으로 해당 플로우에 대한 QOS 정책을 결정한다. 그리고 스위치(430)는 해당 플로우에 대해 결정된 QoS 정책을 적용한다(S529). The
이후, 스위치(430)는 서버(410)로부터 전달받은 데이터 플로우를 갱신된 스위칭 테이블에 따라 스위칭한다(S530). 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 수행해야 한다면, 스위치(430)는 스위칭 테이블에 따라 네트워크 기능 서버(420)로 데이터 플로우를 스위칭할 수 있다. 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 수행하진 않는다면, 스위치(430)는 스위칭 테이블에 따라, 다른 서버(410)로 데이터 플로우를 스위칭할 수 있다.Thereafter, the
네트워크 기능 서버(420)의 네트워크 기능 플로우 스위치(422)는 스위치(430)로부터 전달 받은 데이터 플로우에서 데이터 속성 및 서비스 속성을 확인한다(S531). 이후, 네트워크 기능 플로우 스위치(422)는 데이터 플로우의 데이터 속성 및 서비스 속성을 바탕으로 네트워크 기능 플로우 스위치(422)의 스위칭 테이블에 따라 가상 네트워크 기능을 수행할 수 있는 네트워크 기능 가상 머신(421)으로 스위칭한다(S532).The network
이후, 네트워크 기능 가상 머신(421)은 네트워크 기능 플로우 스위치(422)로부터 수신한 데이터 플로우에 대하여 가상 네트워크 기능을 적용할 수 있다(S533).Thereafter, the network function
도 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
네트워크 기능 플로우 스위치(422)는 네트워크 기능 서버(421)에 포함된 네트워크 기능 가상 머신(421)에서 생성한 플로우를 분석하여 플로우 정보를 추출한다(S604). 네트워크 기능 플로우 스위치(422)는 추출한 플로우 정보를 통해 플로우가 신규 플로우 인지 아니면 기존에 존재하는 플로우 인지 검사한다(S605). The network
만약 플로우가 신규 플로우이면, 네트워크 기능 플로우 스위치(422)는 추출된 신규 플로우 정보를 네트워크 기능 에이전트(423)에 전달한다(S606). 네트워크 기능 에이전트(423)는 신규 플로우 정보를 플로우 제어부(440)에 전달하고(S607), 플로우 제어부(440)는 해당 신규 플로우에 대한 가상 플로우 정보 및 네트워크 기능 정보를 생성하여 플로우 제어부(440)의 플로우 테이블(스위칭 테이블 및 네트워크 기능 테이블)을 갱신한다(S608).If the flow is a new flow, the network
에지 에이전트(413)는 플로우 제어부(440)가 갱신한 플로우 테이블에 따라 에지 플로우 스위치(412)의 스위칭 테이블을 갱신한다(S610). 스위치 에이전트(432)는 플로우 제어부(440)가 갱신한 플로우 테이블에 따라 스위치(430)의 스위칭 테이블을 갱신한다(S611). 네트워크 기능 에이전트(423)는 플로우 제어부(440)가 갱신한 플로우 테이블에 따라 네트워크 기능 플로우 스위치(422)의 스위칭 테이블을 갱신한다(S612).The
네트워크 기능 플로우 스위치(422)는 네트워크 기능 서버(421)에 포함된 네트워크 기능 가상 머신(421)에서 생성한 플로우를 네트워크 기능 플로우 스위치(422)의 스위칭 테이블에 따라 처리한다. 이후, 네트워크 기능 플로우 스위치(422)는 적어도 하나의 네트워크 인터페이스(482 및 483)로 L2 스위치 또는 L3 스위치를 통해 또는 L2 스위치 및 L3 스위치를 통해 처리한 플로우를 스위치(430)로 전달한다(S613, S614).The network
스위치(430)는 적어도 하나의 네트워크 인터페이스(482 및 483)로부터 전달된 플로우를 분석하여 플로우 정보를 추출한다(S615). 스위치(430)는 추출된 플로우 정보를 사용하여, 스위칭 테이블에서, 가상 머신의 네트워크 정보(가상 머신의 IP 주소, 가상 머신의 MAC 주소, 가상 머신의 NAT 변환 정보, 네트워크 기능 가상 머신 대역폭 정보 등등), 가상 머신의 QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 서비스 데이터의 방향성(가입자-서버 또는 서버-서버) 등) 및 플로우의 QoS 정보(실시간/비실시간 데이터, 높은 대역폭, 낮은 대역폭, 지연 민감/둔감, 보안/비보안 데이터 서비스, 데이터의 방향성(가입자-서버 또는 서버-서버) 등)를 찾고 이를 바탕으로 해당 플로우에 대한 QoS 정책을 결정한다. 그리고, 스위치(430)는 해당 플로우에 대해 결정된 QoS 정책을 적용한다(S616). The
이후, 스위치(430)는 네트워크 기능 서버(420)로부터 네트워크 기능 플로우 스위치(422)를 통해 수신한 데이터 플로우를 스위칭 테이블에 따라 스위칭한다(S617). 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 적용해야 한다면, 스위칭 테이블에 따라 가상 네트워크 기능 서버(421)로 스위칭한다. 만약 해당 데이터 플로우에 대해 네트워크 기능 가상화를 적용하지 않는다면, 스위칭 테이블에 따라, 다른 서버(410)로 스위칭한다.Thereafter, the
서버(410)의 에지 플로우 스위치(412)는 스위치(404)로부터 수신한 데이터 플로우를, 에지 플로우 스위치(412)의 스위칭 테이블에 따라 가상 컴퓨팅 기능을 수행할 수 있는 가상 VM(411)로 스위칭한다(S618). 가상 네트워크 기능 서버(420)의 네트워크 기능 플로우 스위치(422)는 스위치(430)로부터 수신한 데이터 플로우를, 네트워크 기능 플로우 스위치(422)의 스위칭 테이블에 따라 가상 네트워크 기능을 수행할 수 있는 가상 네트워크 기능 가상 머신(421)로 스위칭한다(S618).The
가상 머신(411)은 에지 플로우 스위치(412)로부터 수신한 데이터 플로우에 대하여 가상 컴퓨팅 기능을 적용한다(S619). 네트워크 기능 가상 머신(421)은 네트워크 기능 플로우 스위치(422)로부터 수신한 데이터 플로우에 대하여 가상 네트워크 기능을 적용한다(S619).위에서 설명한 바와 같이 본 발명의 실시 예에 따르면, 수신한 플로우의 데이터 속성 및 서비스 속성을 확인하고 데이터 속성 및 서비스 속성에 따라서 네트워크 기능 가상 머신으로 플로우를 스위칭하여 가상화된 네트워크 기능을 병렬적으로 적용할 수 있다. 또한, 플로우의 데이터 속성 또는 서비스 속성에 따라 QoS를 보장할 수 있다. 또한, 플로우의 플로우 정보를 바탕으로 네트워크 기능 플로우 스위치의 스위칭 테이블을 단발적인 요구에 의해 또는 주기적으로 업데이트 할 수 있다. The
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.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)
상기 서버 내의 가상 머신에 의해 생성된 플로우가 신규 플로우일 때, 상기 신규 플로우의 플로우 정보를 플로우 제어부에게 송신하는 단계,
상기 플로우 정보를 바탕으로 상기 플로우 제어부에 의해 갱신된 플로우 테이블을 수신하는 단계,
상기 갱신된 플로우 테이블에 따라 상기 서버 내의 에지 플로우 스위치의 스위칭 테이블을 갱신하는 단계, 그리고
상기 신규 플로우 및 다음 플로우가 네트워크 기능 서버에게 전달될 수 있도록, 갱신된 스위칭 테이블에 따라 상기 신규 플로우 및 상기 다음 플로우를 제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.
스위치와 연결된 서버 내의 서버 가상 머신에 의해 생성된 플로우가 신규 플로우일 때 상기 신규 플로우의 플로우 정보를 바탕으로 플로우 제어부에 의해 갱신된 플로우 테이블을 수신하는 단계,
상기 갱신된 플로우 테이블에 따라 상기 네트워크 기능 서버 내의 네트워크 기능 플로우 스위치의 스위칭 테이블을 갱신하는 단계,
상기 신규 플로우 및 상기 서버 가상 머신에 의해 생성된, 상기 신규 플로우의 다음 플로우를 상기 스위치로부터 수신하는 단계, 그리고
상기 신규 플로우 및 상기 다음 플로우의 데이터 속성 또는 서비스 속성을 확인하고, 상기 데이터 속성 또는 상기 서비스 속성을 바탕으로 갱신된 스위칭 테이블에 따라 상기 신규 플로우 및 상기 다음 플로우를 상기 네트워크 기능 서버 내의 네트워크 기능 가상 머신으로 스위칭하는 단계
를 포함하는 인그레스 플로우를 처리하는 방법.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.
상기 네트워크 기능 가상 머신이 상기 신규 플로우 및 상기 다음 플로우에 가상화된 네트워크 기능을 적용하는 단계
를 더 포함하는 인그레스 플로우를 처리하는 방법.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.
상기 가상화된 네트워크 기능은, 가상화된 동적 호스트 설정 프로토콜(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.
상기 네트워크 기능 서버 내의 네트워크 기능 가상 머신에 의해 생성된 플로우가 신규 플로우일 때, 상기 신규 플로우의 플로우 정보를 플로우 제어부에게 송신하는 단계,
상기 플로우 정보를 바탕으로 상기 플로우 제어부에 의해 갱신된 플로우 테이블을 수신하는 단계,
상기 갱신된 플로우 테이블에 따라 상기 네트워크 기능 서버 내의 네트워크 기능 플로우 스위치의 스위칭 테이블을 갱신하는 단계, 그리고
상기 신규 플로우 및 다음 플로우가 서버에게 전달될 수 있도록, 갱신된 스위칭 테이블에 따라 상기 신규 플로우 및 상기 다음 플로우를 제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.
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)
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)
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)
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 |
-
2014
- 2014-06-19 KR KR1020140075118A patent/KR102153585B1/en active IP Right Grant
Patent Citations (5)
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 |