KR102019212B1 - 서비스 기능 체인을 운용하는 방법, 장치 및 컴퓨터 프로그램 - Google Patents

서비스 기능 체인을 운용하는 방법, 장치 및 컴퓨터 프로그램 Download PDF

Info

Publication number
KR102019212B1
KR102019212B1 KR1020180144465A KR20180144465A KR102019212B1 KR 102019212 B1 KR102019212 B1 KR 102019212B1 KR 1020180144465 A KR1020180144465 A KR 1020180144465A KR 20180144465 A KR20180144465 A KR 20180144465A KR 102019212 B1 KR102019212 B1 KR 102019212B1
Authority
KR
South Korea
Prior art keywords
traffic
service function
function chain
iov
chain
Prior art date
Application number
KR1020180144465A
Other languages
English (en)
Inventor
송용주
Original Assignee
아토리서치(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아토리서치(주) filed Critical 아토리서치(주)
Priority to KR1020180144465A priority Critical patent/KR102019212B1/ko
Application granted granted Critical
Publication of KR102019212B1 publication Critical patent/KR102019212B1/ko
Priority to US16/676,272 priority patent/US20200162370A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 네트워크 기능 가상화 장치에서, 서비스 기능 체인을 운용하는 방법에 대한 것으로, 적어도 하나 이상의 가상 네트워크 기능을 제공하는 서비스 기능 체인을 적어도 하나 이상 생성하고, 서비스 기능 체인에 따라 트래픽을 정의하는 a 단계; 제 1 트래픽에 서비스 기능 체인의 시작과 끝을 위한 SR-IOV를 할당하도록 NIC를 설정하는 b 단계; 및 상기 제 1 트래픽에 상기 서비스 기능 체인의 중간 단계를 제공하도록 상기 제 1 트래픽을 견인하기 위한 플로우 룰을 적용하도록 소프트웨어 스위치를 설정하는 c 단계를 포함하는 것을 특징으로 한다.

Description

서비스 기능 체인을 운용하는 방법, 장치 및 컴퓨터 프로그램 {METHOD, APPARATUS AND COMPUTER PROGRAM FOR SERVICE FUCTION CHAINNIG}
본 발명은 네트워크 기능 가상화 (NFV, Network Function Virtualization)에서 서비스 기능 체인 (SFC, Service Function Chain)을 운용하는 방법에 대한 것이다. 보다 구체적으로 본 발명은 서비스 기능 체인의 고속화를 하드웨어와 소프트웨어 측면에서 함께 제공하는 방법에 대한 것이다.
최근 네트워크 기능 가상화 기술은 하드웨어 위주였던 네트워크 아키텍처 전반에 새로운 변화를 일으키고 있다. 네트워크 기능 가상화, 즉 NFV는 네트워크의 구성 요소인 하드웨어와 소프트웨어를 분리하고, 물리적인 네트워크 설비의 기능을 가상화하여 VM(Virtual Machine) 서버, 범용 프로세서를 탑재한 하드웨어, 클라우딩 컴퓨터에서 실행하는 개념이다.
이에 따르면 라우터, 로드 밸런서, 방화벽, 침입 방지, 가상 사설망 등 다양한 네트워크 장비들을 일반 서버에서 소프트웨어로 구현할 수 있어 네트워크 구성의 벤더 의존성에서 벗어날 수 있다. 값비싼 전용 장비를 범용 하드웨어와 전용 소프트웨어로 대체할 수 있기 때문이다. 나아가 장비 운영 비용 절감은 물론 트래픽 변화 등에 신속하게 대처할 수 있는 장점이 있다.
한편 소프트웨어 정의 네트워킹, 즉 SDN 기술은 복잡한 컨트롤 플레인(control plane)의 기능을 데이터 플레인(data plane)과 분리하는 것이 특징이다. 이에 따르면 컨트롤 플레인의 복잡한 기능을 소프트웨어로 처리하고, 데이터 플레인은 네트워크 패킷의 전달, 무시, 변경 등 컨트롤 플레인이 지시하는 단순한 기능만을 수행하게 된다.
이러한 기술을 적용하면 복잡한 하드웨어의 제약 없이 소프트웨어로 새로운 네트워크 기능을 개발할 수 있으며, 동시에 이전 네트워크 구조에서 불가능했던 다양한 시도를 할 수 있게 되었다.
상기 NFV와 SDN은 별개의 기술이지만 상호 보완적으로 작용할 수 있다. NFV에 의해 소프트웨어로 구현된 각종 네트워크 기능을 SDN을 이용하여 효율적으로 제어할 수 있기 때문이다.
Open Networking Foundation, "OpenFlow Specification 1.2.0"
본 발명은 네트워크 기능 가상화 장치에서 패킷을 효율적으로 프로세싱하는 것을 목적으로 한다. 특히 본 발명은 소프트웨어 스위치와 SR-IOV를 조합하여 서비스 기능 체인의 고속화를 효율적으로 달성하는 방법을 제공하는 것을 목적으로 한다.
본 발명의 실시예를 따르는 네트워크 기능 가상화 장치에서, 서비스 기능 체인을 운용하는 방법은, 적어도 하나 이상의 가상 네트워크 기능을 제공하는 서비스 기능 체인을 적어도 하나 이상 생성하고, 서비스 기능 체인에 따라 트래픽을 정의하는 a 단계; 제 1 트래픽에 서비스 기능 체인의 시작과 끝을 위한 SR-IOV를 할당하도록 NIC를 설정하는 b 단계; 및 상기 제 1 트래픽에 상기 서비스 기능 체인의 중간 단계를 제공하도록 상기 제 1 트래픽을 견인하기 위한 플로우 룰을 적용하도록 소프트웨어 스위치를 설정하는 c 단계를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 네트워크 기능 가상화 장치에 유입된 트래픽을 소프트웨어 스위치와 SR-IOV를 조합하여 처리할 수 있어, 고속화된 서비스 기능 체인 및 효율적인 트래픽 포워딩을 제공할 수 있는 효과가 있다.
도 1은 NFV 장치를 이용하여 구현한 서비스 기능 체이닝을 설명하기 위한 도면
도 2는 서비스 기능 체이닝의 고속화를 위한 방법을 설명하기 위한 도면
도 3는 서비스 기능 체이닝의 고속화를 위한 또다른 방법을 설명하기 위한 도면
도 4는 본 발명의 실시예를 따르는 네트워크 기능 가상화 장치에서 트래픽을 처리하는 예시를 설명하기 위한 도면
도 5은 본 발명의 실시예를 따라 따라 패킷을 프로세싱하는 구제적인 과정을 설명하기 위한 도면
본 발명은 이하에 기재되는 실시예들의 설명 내용에 한정되는 것은 아니며, 본 발명의 기술적 요지를 벗어나지 않는 범위 내에서 다양한 변형이 가해질 수 있음은 자명하다. 그리고 실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 널리 알려져 있고 본 발명의 기술적 요지와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다.
한편, 첨부된 도면에서 동일한 구성요소는 동일한 부호로 표현된다. 그리고 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시될 수도 있다. 이는 본 발명의 요지와 관련이 없는 불필요한 설명을 생략함으로써 본 발명의 요지를 명확히 설명하기 위함이다. 이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다.
예를 들어 NFV 장치를 하나의 물리적인 서버로 구현하는 경우, 도 1의 예시에서 NFV 장치 (100)는 가상 네트워크 기능을 제공하는 적어도 하나 이상의 가상 머신 (144, 145, 146) 및 소프트웨어 스위치 (142), 다른 서버와의 물리적인 네트워크를 연결하는 포트 (112, 113)을 포함할 수 있다.
소프트웨어 스위치(142)는 설치된 서버 상에서 구동되는 가상 네트워크 장비들과 외부의 물리적인 네트워크를 연결하는 가상 네트워크 허브 (Virtual Network Hub) 역할을 수행할 수 있다. 가상 머신(144, 145, 146)은 로드 밸런싱, 가상 사설망, 방화벽, 침입 방지 기능 등 종래의 하드웨어 기반의 네트워크 장비가 제공하던 기능을 수행할 수 있다.
도 1의 예에서 NFV 장치를 통과하는 패킷은 NFV 장치의 pNic (Physical Network Interface Card)인 인풋 포트 (112)를 통해 수신되어 소프트웨어 스위치 (142)를 통과하면서 상기 VNF를 제공하는 복수의 가상 머신 (144, 145, 146) 중 적어도 하나 이상을 연결하는 서비스 체인을 통과해 NFV 장치의 아웃풋 포트 (113)을 통해 포워딩될 것이다.
이때 소프트웨어 스위치(142)는 설치된 서버 상에서 구동되는 가상 네트워크 기능들과 외부의 물리적인 네트워크를 연결하는 가상 네트워크 허브 (Virtual Network Hub) 역할을 수행하게 된다. 따라서 서비스 기능 체인을 운용하기 위해서는 하나의 NFV 장치에 소프트웨어 스위치를 구현하고, 소프트웨어 스위치에 플로우 룰을 설정하여 적어도 하나 이상의 서비스 기능 체인을 운용하는 것이 일반적이다.
그런데 네트워크 인터페이스 장비 (Nic)들의 처리 속도가 급격하게 증가하는데 비해 운영 체제에서 패킷 처리 속도는 그 속도를 따라지 못하는 상황이 발생하고 있다. 도 1의 예에서 NIC 의 패킷 처리 속도가 10G라고 하더라도 소프트웨어 스위치 (142) 의 처리 속도가 이에 미치지 못하기 때문에 전체 시스템의 성능이 저하되는 상황이 발생할 수 있다.
한편, 도 1의 예에서 트래픽 150은 서비스 기능 체인을 통과하는데 반해, 트래픽 155는 서비스 기능 체인을 통과하지 않고 네트워크 기능 가상화 장치 (100)을 단순 통과하고 있다. 그러나 NFV 장치에 유입된 트래픽은 서비스 기능 체인을 통과하지 않는 경우에도 도 1에 도시된 것과 같이 소프트웨어 스위치를 통해 처리된다. 즉, 서비스 기능 체인이 제공되지 않는 일반 트래픽의 경우라도, 소프트웨어 스위치를 통해 처리하기 때문에 불필요한 자원이 소모되며, 소프트웨어 스위치의 설정이 복잡해지는 문제가 있었다.
NFV 장치 내에서 패킷이 처리되는 과정에서 발생하는 성능 저하를 극복하기 위하여 적용할 수 있는 가속화 기술을 고려할 수 있다. 예를 들어, 소프트웨어적인 방법으로 DPDK (Data Plane Development Kit), 하드웨어적인 방법으로는 SR-IOV (Single Root I/O Virtualization) 등의 가속화 기술을 적용할 수 있다.
도 2는 가상 머신 (230)의 가상 NIC (245)와 물리적 NIC (250)가 DPDK (Data Plane Development Kit)를 통해 바로 연결되는 예시를 도시하고 있다.
DPDK (Data Plane Development Kit, 255)는 가상화 인프라의 커널 레벨에서 동작하던 패킷의 처리를 모두 사용자 레벨에서 진행하는 가속화 방법이다. 커널 레벨 (220)과 사용자 레벨 (210)이 구분되어 가상화 인프라가 설계된 경우, 가상 머신의 패킷을 처리하기 위해서는 커널 레벨과 사용자 레벨을 반복하게 되는데, 이러한 컨텍스트 스위칭 과정에서 컴퓨팅 자원이 소모되고 데이터 이동이 발생하기 때문에 인터럽트가 생길 수 있기 때문이다.
DPDK는 고속 패킷 처리를 위한 데이터 플레인 라이브러리와 네트워크 인터페이스 컨트롤러 드라이버의 집합이라고 할 수 있으며, 오픈 플로우로 작성된 소프트웨어 스위치 (240)에서 지원될 수 있다.
일반적인 네트워크 드라이버는 운영 체제에서 요구하는 이더넷 인터페이스에 맞추어 작성되는데, DPDK는 운영 체제의 도움을 받지 않고 오버 헤드 없이 사용자 레벨의 어플리케이션이 직접 하드웨어를 제어할 수 있는 인터페이스를 제공하기 때문에 사용자 레벨과 커널 레벨을 반복할 필요없이 가상 머신 (230)으로 바로 패킷이 전송될 수 있게 된 것이다.
그런데 DPDK (255)를 이용하더라도 가상 머신 (230)으로 패킷을 전달하는 큐 (queue)의 개수에 따라 패킷 처리 성능이 좌우되게 된다. 즉, 상기 시스템이 큐를 하나만 지원한다면 성능에 제약이 발생하게 되는 것이다. 나아가 가상 머신 (230)의 처리 속도가 충분하지 않으면 가상 머신 레벨의 병목 현상은 여전히 발생할 수 있다.
한편, 도 3은 SR-IOV (Single Root I/O Virtualization)을 이용한 가속화 기술을 설명하기 위한 도면이다.
SR-IOV는 다수의 가상머신이 하나의 I/O PCI (Peripheral Component Interconnect) Express 하드웨어 인터페이스를 공유할 수 있도록 하는 기술로, SR-IOV를 사용하면 가상머신 입장에서는 마치 PCI 장치가 직접 연결된 것과 같은 효과를 가지며, 가상화로 인한 성능 하락을 방지할 수 있다.
일반적으로 가상 머신에서 호스트 장치를 사용하기 위해서는 가상화 환경을 지원하는 가상 호스트 드라이버를 사용해야 하지만, SR-IOV를 적용하면 가상머신은 디바이스 드라이버를 사용하면서 NIC에 직접 엑세스되는 효과를 누릴 수 있다.
도 3a의 예에서 315은 PF (Physical Function)으로 물리적인 PCI 카드를 의미하며, 320, 322, 324는 VF (Virtual Function)으로 가상 NIC, 즉 가상 PCI 카드로 이해될 수 있다. NFV 장치에 유입된 트래픽은 NIC에 내장된 스위치 기능 (310)을 통해 가상 NIC (320, 322, 324)으로 분배되며 가상머신 (336, 338)의 디바이스 드라이버에서 처리될 것이다. 가상 머신 (336, 338) 입장에서는 도 3b와 같이 PCI 장치와 직접 연결되는 것과 같이 호스트의 OS를 바이패스하는 결과가 될 수 있다.
그런데 SR-IOV는 하드웨어적인 방법이기 때문에 NIC 별로 패킷을 전달하는 큐 (queue)의 개수 및 VF의 개수가 제한되어, 가상 머신별로 VF를 할당하는 경우, 최대 32~64개의 가상머신만 지원될 수 있는 한계가 있다. 나아가 SR-IOV는 NIC의 프로세서를 사용하기 때문에, 물리적인 NIC의 PCI express 버스 성능에 의존한다. 따라서 하나의 체인에서는 매우 빠르게 동작할 수 있으나 서비스 기능 체인의 수가 늘어나면 속도가 급격히 내려가는 문제가 발생할 수 있다.
본 발명은 상기와 같은 문제를 해결하기 위한 것이다.
본 발명의 실시예를 따르면, 소프트웨어 스위치와 SR-IOV를 혼합하여 서비스 기능 체인을 가속화할 수 있다.
예를 들어, 성능이 중요한 서비스 기능 체인의 시작과 끝은 SR-IOV 기능을 적용하고, 서비스 기능 체인의 중간단계는 소프트웨어 스위치에서 패킷을 처리하도록 설정할 수 있다. 나아가 서비스 기능 체인의 성능이 중요하지 않은 경우에는 SR-IOV을 적용하지 않고 소프트웨어 스위치에서 패킷을 처리하도록 설정할 수 있으며, 네트워크 기능 가상화 장치에 유입된 트래픽 중 서비스 기능 체인을 적용할 필요가 없는 트래픽의 경우에는 SR-IOV를 적용하여 소프트웨어 스위치 기능을 사용하지 않고 바로 다른 장치로 포워딩되도록 설정할 수 있다.
상기 실시예를 따르면 NIC에서 VM 경로의 병목현상을 해소하여 서비스 기능 체인의 고속화를 담보하면서도, 최소한의 VF를 사용하기 때문에 다수의 서비스 기능 체인의 고속화를 제공할 수 있다. 나아가 네트워크 기능 가상화 장치에 유입된 트래픽 중 서비스 기능 체인에 제공되지 않는 트래픽은 SR-IOV를 적용하여 장치 외부로 바로 포워딩하여 소프트웨어 스위치의 설정을 줄일 수 있다.
도 4는 본 발명의 실시예를 따르는 네트워크 기능 가상화 장치에서 트래픽을 처리하는 예시를 설명하기 위한 것이다.
본 발명의 실시예를 따르는 NFV 장치는, NFV 장치로 유입되는 트래픽을 성능이 중요한 서비스 기능 체인이 제공되는 제 1 트래픽, 성능이 중요하지 않은 서비스 기능 체인이 제공되는 제 2 트래픽, 서비스 기능 체인이 제공되지 않는 제 3 트래픽으로 분류할 수 있다. 이는 최소한의 SR-IOV를 사용하면서도 다수의 서비스 기능 체인의 고속화를 제공하기 위해, 요구되는 서비스 기능 체인의 성능에 따라 트래픽을 분류한 것이다.
도 4a는 본 발명의 실시예를 따라 NFV 장치에서, 성능이 중요한 서비스 기능 체인을 제공하는 예시를 설명하기 위한 도면이다.
예를 들어 도 4a에 도시된 바와 같이, 제 1 NFV, 제 2 NFV, 제 3 NFV 순서로 네트워크 기능을 제공하는 제 1 서비스 기능 체인의 성능이 중요한 경우를 가정할 수 있다. 본 발명의 실시예를 따르면, 성능이 중요한 서비스 기능 체인의 시작과 끝은 SR-IOV 기능을 적용하고, 서비스 기능 체인의 중간단계는 소프트웨어 스위치에서 패킷을 처리하도록 설정할 수 있다.
보다 구체적으로, 본 발명의 실시예를 따르면, 상기 제 1 서비스 기능 체인을 제공하는 트래픽이 인포트 (470)를 통해 유입되면, NIC(490)에 내장된 스위치 기능을 통해 제 1 서비스 기능 체인에 미리 할당된 SR-IOV 포트 (475)로 분배될 것이다. 이 경우, 상기 트래픽은 커널 레벨을 바이패스하고, 제 1 가상머신 (410))의 디바이스 드라이버에서 처리되어, 제 1 VNF이 제공될 것이다.
이후 제 1 가상머신 (410)은, 소프트웨어 스위치 (460)에서 상기 제 1 가상 머신을 위해 생성한 가상 포트 (411)로 상기 트래픽을 포워딩하고, 소프트웨어 스위치 (460)는 미리 설정된 플로우 룰에 따라 제 2 가상 머신을 위해 생성한 가상 포트 (421)로 상기 트래픽을 포워딩할 것이다.
이후 제 2 가상머신 (420)은, 소프트웨어 스위치 (460)에서 상기 제 2 가상 머신을 위해 생성한 가상 포트 (422)로 상기 트래픽을 포워딩하고, 소프트웨어 스위치 (460)는 미리 설정된 플로우 룰에 따라 제 3 가상 머신을 위해 생성한 가상 포트 (431)로 상기 트래픽을 포워딩할 것이다.
이후 제 3 가상머신 (430)은, 커널 레벨을 바이패스하고, 상기 트래픽을 NIC에 전달하며, 상기 트래픽은 NIC(490)에 내장된 스위치 기능을 통해 제 1 서비스 기능 체인에 미리 할당된 SR-IOV 포트 (485)로 분배하고, 트래픽은 NFV 장치에서 다른 장치로 포워딩될 것이다.
도 4a에 예시된 이와 같은 실시예를 따르면, 서비스 기능 체인의 시작과 끝은 SR-IOV 기능을 적용하여 서비스 기능 체인의 고속화를 담보하면서도, 서비스 기능 체인의 중간단계는 소프트웨어 스위치를 통해 트래픽이 견인되기 때문에 최소한의 VF를 사용하는 효과가 있다.
도 4b는 본 발명의 실시예를 따라 NFV 장치에서, 성능이 중요하지 않은 서비스 기능 체인을 제공하는 예시를 설명하기 위한 도면이다.
예를 들어 도 4b에 도시된 바와 같이, 제 4 NFV, 제 5 NFV 순서로 네트워크 기능을 제공하는 제 2 서비스 기능 체인의 성능이 중요하지 않은 경우를 가정할 수 있다. 본 발명의 실시예를 따르면, 성능이 중요하지 않은 서비스 기능 체인은 SR-IOV 기능을 적용하지 않고, 종래와 같이 소프트웨어 스위치를 통해 트래픽이 견인될 수 있다.
보다 구체적으로, 본 발명의 실시예를 따르면, 상기 제 2 서비스 기능 체인을 제공하는 트래픽이 인포트 (470)를 통해 유입되면, 상기 트래픽은 소프트웨어 스위치 (460)에서 처리되어 제 2 서비스 기능 체인이 제공될 것이다.
즉, 소프트웨어 스위치 (460)에서 상기 제 4 가상 머신 (440)을 위해 생성한 가상 포트 (441)로 상기 트래픽을 포워딩하고, 제 4 가상 머신은 상기 트래픽에 제 4 NFV 를 제공하고, 이후 제 4 가상머신 (440)은, 소프트웨어 스위치 (460)에서 상기 제 4 가상 머신을 위해 생성한 가상 포트 (442)로 상기 트래픽을 포워딩하고, 소프트웨어 스위치 (460)는 미리 설정된 플로우 룰에 따라 제 5 가상 머신을 위해 생성한 가상 포트 (451)로 상기 트래픽을 포워딩할 것이다.
이후 제 5 가상머신 (450)은, 소프트웨어 스위치 (460)에서 상기 제 5 가상 머신을 위해 생성한 가상 포트 (452)로 상기 트래픽을 포워딩하고, 소프트웨어 스위치 (460)는 미리 설정된 플로우 룰에 따라 상기 트래픽을 아웃포트를 통해 포워딩하여, 트래픽은 NFV 장치에서 다른 장치로 포워딩될 것이다.
도 4c는 본 발명의 실시예를 따라, NFV 장치에서, 서비스 기능 체인이 제공되지 않는 일반 트래픽을 처리하는 예시를 설명하기 위한 도면이다.
예를 들어 도 4C에 도시된 바와 같이, 네트워크 기능 가상화 장치에 유입된 트래픽 중 서비스 기능 체인을 적용할 필요가 없는 트래픽의 경우에는 SR-IOV를 적용하여 소프트웨어 스위치 기능을 사용하지 않고 바로 다른 장치로 포워딩되도록 설정할 수 있다.
보다 구체적으로, 서비스 기능 체인을 적용할 필요가 없는 트래픽이 인포트 (470)를 통해 유입되면, NIC (490)에 내장된 스위치 기능을 통해 이러한 트래픽에 미리 할당된 SR-IOV 포트 (476)로 분배되며, 연결된 SR-IOV 포트 (486)를 통해 소프트웨어 스위치 (460)를 거치지 않고 NFV 장치에서 다른 장치로 포워딩될 것이다.
도 4c에 도시된 이와 같은 예를 따르면, 네트워크 기능 가상화 장치에 유입된 트래픽 중 서비스 기능 체인에 제공되지 않는 트래픽은 SR-IOV를 적용하여 장치 외부로 바로 포워딩하여 소프트웨어 스위치의 설정을 줄일 수 있는 효과가 있다.
도 5는 본 발명의 실시예를 따르는 네트워크 기능 가상화 장치에서 패킷을 프로세싱하는 구체적인 과정을 설명하기 위한 도면이다.
본 발명의 실시예를 따르는 네트워크 기능 가상화 장치는 단계 510에서 가상 머신, 소프트웨어 스위치 및 가상 네트워크 기능을 생성할 수 있다. 나아가 소프트웨어 스위치는 가상 머신의 가상 포트를 생성하여 가상 머신에 연결할 수 있다. 나아가 적어도 하나 이상의 가상 네트워크 기능을 연결하여 적어도 하나 이상의 서비스 기능 체인을 생성하고, 서비스 기능 체인을 제공하는 트래픽을 정의할 수 있다.
단계 515에서 네트워크 기능 가상화 장치는 유입되는 트래픽을 분류할 수 있다. 예를 들어, 단계 510에서 생성된 서비스 기능 체인 중, 성능이 중요한 서비스 기능 체인이 제공되는 트래픽은 제 1 트래픽, 성능이 중요하지 않은 서비스 기능 체인이 제공되는 트래픽은 제 2 트래픽, 서비스 기능 체인이 제공되지 않는 트래픽은 제 3 트래픽으로 분류할 수 있다. 이는 네트워크 기능 가상화 장치의 NIC의 SR-IOV의 사용을 최적화하기 위한 것으로, NIC에 트래픽이 유입되면 분류에 따라 SR-IOV를 할당하기 위한 것이다.
단계 520에서 네트워크 기능 가상화 장치는 NIC에 제 1 트래픽, 즉 성능이 중요한 서비스 기능 체인이 제공되는 트래픽을 위한 SR-IOV를 할당하고, 상기 제 1 트래픽이 유입되면 할당된 SR-IOV로 분배하도록 NIC 내장 스위치를 설정할 수 있다. 이는 상기 제 1 트래픽에 제공되는 서비스 기능 체인의 시작과 끝을 위한 것이다.
단계 530에서 네트워크 기능 가상화 장치는 소프트웨어 스위치에 상기 제 1 트래픽을 견인하기 위한 플로우 룰을 설정할 수 있다. 이는 상기 제 1 트래픽에 제공되는 서비스 기능 체인의 중간 단계를 위한 것이다.
이에 따르면, 상기 제 1 트래픽이 인포트를 통해 유입되면, 제 1 트래픽은 NIC에 내장된 스위치 기능을 통해 미리 할당된 SR-IOV 포트로 분배될 것이다. 이후 제 1 트래픽은 커널 레벨을 바이패스하고, 서비스 기능 체인을 제공하는 첫번째 가상 머신으로 유입되어 가상 네트워크 기능이 제공될 것이다. 이후 소프트웨어 스위치를 통해 나머지 가상 네트워크 기능이 제공되며, 서비스 기능 체인을 제공하는 마지막 가상 머신에서 제 1 트래픽은 커널 레벨을 바이패스하고, 미리 할당된 SR-IOV 포트로 분배되어, NFV 장치에서 다른 장치로 포워딩될 것이다.
이를 따르면, 서비스 기능 체인의 시작과 끝은 SR-IOV 기능을 적용하여 서비스 기능 체인이 빠르게 처리되면서도, 서비스 기능 체인의 중간단계는 소프트웨어 스위치를 통해 트래픽이 견인되기 때문에 최소한의 SR-IOV만으로 서비스 기능 체인의 고속화를 제공할 수 있는 효과가 있다.
한편, 단계 540에서 네트워크 기능 가상화 장치는 소프트웨어 스위치에 제 2 트래픽, 즉 성능이 중요하지 않은 서비스 기능 체인이 제공되는 트래픽을 견인하기 위한 플로우 룰을 설정할 수 있다. 이는 제 2 트래픽에 제공되는 서비스 기능 체인은 특별히 빠르게 처리될 필요가 없기 때문에 SR-IOV 자원을 절약하기 위하여 종래와 같이 소프트웨어 스위치를 이용하여 서비스 기능 체인을 제공하기 위한 것이다.
이에 따르면, 상기 제 2 트래픽이 인포트를 통해 유입되면, 소프트웨어 스위치는 플로우 룰에 따라 제 2 트래픽을 견인하여 서비스 기능 체인을 제공할 것이다.
나아가 단계 550에서 네트워크 기능 가상화 장치는 NIC에 제 3 트래픽, 즉 서비스 기능 체인을 제공할 필요가 없는 일반 트래픽을 위한 SR-IOV를 할당할 수 있다.
보다 구체적으로 네트워크 기능 가상화 장치는 상기 제 3 트래픽이 유입되면 할당된 SR-IOV로 분배하며, 연결된 다른 SR-IOV 포트를 통해 포워딩되도록 NIC 내장 스위치를 설정할 수 있다. 이는 서비스 기능 체인을 적용할 필요가 없는 트래픽의 경우에는 SR-IOV를 적용하여 소프트웨어 스위치 기능을 사용하지 않고 바로 다른 장치로 포워딩하기 위한 것이다.
본 명세서와 도면에 게시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 게시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (3)

  1. 네트워크 기능 가상화 장치에서, 서비스 기능 체인을 운용하는 방법에 있어서,
    적어도 하나 이상의 가상 네트워크 기능을 제공하는 서비스 기능 체인을 적어도 하나 이상 생성하고, 서비스 기능 체인이 적용되는 트래픽을 정의하는 a 단계;
    제 1 트래픽에 적용되는 서비스 기능 체인의 시작과 끝을 위한 SR-IOV를 할당하도록 NIC를 설정하는 b 단계;
    상기 제 1 트래픽에 상기 서비스 기능 체인의 중간 단계를 제공하도록 상기 제 1 트래픽을 견인하기 위한 플로우 룰을 적용하도록 소프트웨어 스위치를 설정하는 c 단계; 및
    상기 제 1 트래픽이 유입되면, 상기 제 1 트래픽은, 상기 서비스 기능 체인에 할당된 SR-IOV 포트를 통해, 상기 서비스 기능 체인을 시작하는 제 1 가상 네트워크 기능을 제공하는 가상 머신으로 유입되고, 상기 소프트웨어 스위치를 통해, 상기 서비스 기능 체인에서 상기 제 1 가상 네트워크 기능 다음에 제공되는 제 2 가상 네트워크 기능을 제공하는 가상 머신으로 포워딩되고, 상기 서비스 기능 체인을 끝내는 제 3 가상 네트워크 기능을 제공하는 가상 머신에서 상기 서비스 기능 체인에 할당된 SR-IOV 포트를 통해 반출되는 단계를 포함하는 것을 특징으로 하는 서비스 기능 체인 운용 방법.
  2. 제 1 항에 있어서,
    상기 b 단계는,
    상기 제 1 트래픽이 인포트를 통해 유입되면, 상기 서비스 기능 체인에 할당된 SR-IOV 포트로 분배하도록 상기 NIC에 내장된 스위치를 설정하는 단계; 및
    상기 SR-IOV 포트에 연결된 가상 머신에서 상기 제 1 트래픽이 유입되면, 해당 가상 네트워크 기능을 제공하고, 상기 소프트웨어 스위치에서 상기 가상 머신을 위해 생성한 가상 포트로 상기 제 1 트래픽을 포워딩하도록 상기 가상 머신을 설정하는 단계를 포함하는 것을 특징으로 하는 서비스 기능 체인 운용 방법.
  3. 제 2항에 있어서, 상기 c 단계 이후에,
    상기 서비스 기능 체인을 제공할 필요가 없는 제 2 트래픽에 유입을 위한 SR-IOV 및 반출을 위한 SR-IOV를 할당하고, 상기 유입을 위한 SR-IOV 및 상기 반출을 위한 SR-IOV를 연결하는 단계를 포함하는 것을 특징으로 하는 서비스 기능 체인 운용 방법.
KR1020180144465A 2018-11-21 2018-11-21 서비스 기능 체인을 운용하는 방법, 장치 및 컴퓨터 프로그램 KR102019212B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180144465A KR102019212B1 (ko) 2018-11-21 2018-11-21 서비스 기능 체인을 운용하는 방법, 장치 및 컴퓨터 프로그램
US16/676,272 US20200162370A1 (en) 2018-11-21 2019-11-06 Method, apparatus and computer program for service fuction chaining

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180144465A KR102019212B1 (ko) 2018-11-21 2018-11-21 서비스 기능 체인을 운용하는 방법, 장치 및 컴퓨터 프로그램

Publications (1)

Publication Number Publication Date
KR102019212B1 true KR102019212B1 (ko) 2019-11-04

Family

ID=68578161

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180144465A KR102019212B1 (ko) 2018-11-21 2018-11-21 서비스 기능 체인을 운용하는 방법, 장치 및 컴퓨터 프로그램

Country Status (2)

Country Link
US (1) US20200162370A1 (ko)
KR (1) KR102019212B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114070755A (zh) * 2020-07-29 2022-02-18 中移(苏州)软件技术有限公司 虚拟机网络流量确定方法、装置、电子设备和存储介质
KR20230058933A (ko) * 2021-10-25 2023-05-03 에스케이텔레콤 주식회사 네트워크데이터체이닝장치 및 네트워크데이터체이닝장치의 동작 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021149129A (ja) * 2020-03-16 2021-09-27 富士通株式会社 料金算出プログラム、及び料金算出方法
GB2594534B (en) * 2020-04-30 2022-09-21 Metaswitch Networks Ltd Processing user traffic in a virtualised network
CN113382014B (zh) * 2021-06-23 2022-12-06 中移(杭州)信息技术有限公司 协商处理方法、装置、终端设备以及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170135345A (ko) * 2016-05-31 2017-12-08 아토리서치(주) 소프트웨어 정의 네트워킹을 이용하여 서비스 기능 체인을 운용하는 방법, 장치 및 컴퓨터 프로그램

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170135345A (ko) * 2016-05-31 2017-12-08 아토리서치(주) 소프트웨어 정의 네트워킹을 이용하여 서비스 기능 체인을 운용하는 방법, 장치 및 컴퓨터 프로그램

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Open Networking Foundation, "OpenFlow Specification 1.2.0"

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114070755A (zh) * 2020-07-29 2022-02-18 中移(苏州)软件技术有限公司 虚拟机网络流量确定方法、装置、电子设备和存储介质
KR20230058933A (ko) * 2021-10-25 2023-05-03 에스케이텔레콤 주식회사 네트워크데이터체이닝장치 및 네트워크데이터체이닝장치의 동작 방법
KR102567132B1 (ko) * 2021-10-25 2023-08-14 에스케이텔레콤 주식회사 네트워크데이터체이닝장치 및 네트워크데이터체이닝장치의 동작 방법

Also Published As

Publication number Publication date
US20200162370A1 (en) 2020-05-21

Similar Documents

Publication Publication Date Title
KR102019212B1 (ko) 서비스 기능 체인을 운용하는 방법, 장치 및 컴퓨터 프로그램
US20220197685A1 (en) Technologies for application-specific network acceleration with unified coherency domain
CN108540381B (zh) 计算方法、计算装置和计算机可读存储介质
Kim et al. {FreeFlow}: Software-based Virtual {RDMA} Networking for Containerized Clouds
EP3356935B1 (en) Direct network traffic monitoring within vm platforms in virtual processing environments
US9692706B2 (en) Virtual enhanced transmission selection (VETS) for lossless ethernet
US8776090B2 (en) Method and system for network abstraction and virtualization for a single operating system (OS)
US20180109471A1 (en) Generalized packet processing offload in a datacenter
WO2018086013A1 (zh) 云计算系统中报文处理的方法、主机和系统
US9678912B2 (en) Pass-through converged network adaptor (CNA) using existing ethernet switching device
US20180357086A1 (en) Container virtual switching
US20140059160A1 (en) Systems and methods for sharing devices in a virtualization environment
Kawashima et al. Evaluation of forwarding efficiency in NFV-nodes toward predictable service chain performance
EP4004721B1 (en) Computer device including process isolated containers with assigned virtual functions
US10581730B2 (en) Packet processing using service chains
Van Tu et al. Accelerating virtual network functions with fast-slow path architecture using express data path
Zazo et al. A PCIe DMA engine to support the virtualization of 40 Gbps FPGA-accelerated network appliances
CN111492628A (zh) 用于在加速交换的情况下进行nic端口减少的技术
US10541842B2 (en) Methods and apparatus for enhancing virtual switch capabilities in a direct-access configured network interface card
Zeng et al. XCollOpts: A novel improvement of network virtualizations in Xen for I/O-latency sensitive applications on multicores
US20230247005A1 (en) Proxy offload to network interface device
Chiotakis et al. vFPGAmanager: A hardware-software framework for optimal FPGA resources exploitation in network function virtualization
Schultz et al. Performance analysis of packet capture methods in a 10 gbps virtualized environment
Hsieh et al. NF-switch: VNFs-enabled SDN switches for high performance service function chaining
KR20180060353A (ko) 가상 머신 QoS 보장형 무손실 부하 분산 시스템 및 방법