4장. NFV 데이터 플레인 연결성

NFV가 도입되면서 더 많은 네트워킹 벤더가 기존 장치를 VNF로 구현하기 시작했습니다. 대부분의 네트워킹 벤더는 가상 시스템을 고려하고 있지만 일부는 컨테이너 기반 접근 방식을 설계 선택으로 고려하고 있습니다. OpenStack 기반 솔루션은 다음과 같은 두 가지 주요 이유로 인해 풍부하고 유연해야 합니다.

  • 애플리케이션 준비 성 - 네트워크 벤더가 장치를 VNF로 변환하는 중입니다. 시장의 다양한 VNF에는 서로 다른 성숙도가 있습니다. 이러한 준비 상태의 일반적인 장벽에는 API에서 RESTful 인터페이스를 활성화하고, 데이터 모델을 상태 비저장으로 전환하고, 자동화된 관리 작업을 제공하는 것이 포함됩니다. OpenStack은 모든 사용자에게 공통 플랫폼을 제공해야 합니다.
  • 광범위한 사용 사례 - NFV에는 다양한 사용 사례를 제공하는 광범위한 애플리케이션이 포함되어 있습니다. 예를 들어, vCPE(Virtual Customer Premise Equipment)는 고객 가정에서 라우팅, 방화벽, VPN(Virtual Private Network), NAT(네트워크 주소 변환) 등의 여러 네트워크 기능을 제공하는 것을 목표로 합니다. vEPC(Virtual Evolved Packet Core)는 LTE(Long-Term Evolution) 네트워크의 핵심 구성 요소를 위한 비용 효율적인 플랫폼을 제공하는 클라우드 아키텍처로, 게이트웨이 및 모바일 엔드포인트의 동적 프로비저닝을 통해 스마트폰 및 기타 장치의 데이터 트래픽 증가 볼륨을 유지할 수 있습니다.

    이러한 사용 사례는 서로 다른 네트워크 애플리케이션 및 프로토콜을 사용하여 구현되며 인프라에서 서로 다른 연결, 격리 및 성능 특성을 필요로 합니다. 컨트롤 플레인 인터페이스와 프로토콜과 실제 전달 플레인을 구분하는 것도 일반적입니다. OpenStack은 서로 다른 데이터 경로 연결 옵션을 제공할 수 있을 만큼 유연해야 합니다.

기본적으로 가상 머신에 대한 데이터 플레인 연결을 제공하는 두 가지 일반적인 접근법이 있습니다.

  • 직접 하드웨어 액세스는 Linux 커널을 무시하고 가상 기능(VF) 및 PF(물리적 기능) 패스스루 모두에 PCI 패스스루 또는 SR-IOV(단일 루트 I/O 가상화)와 같은 기술을 사용하여 물리적 NIC에 보안 직접 메모리 액세스(DMA)를 제공합니다.
  • 하이퍼바이저 의 소프트웨어 서비스로 구현된 가상 스위치(vswitch) 사용. 가상 시스템은 vNIC(가상 인터페이스)를 사용하여 vSwitch에 연결되며, vSwitch는 가상 시스템과 실제 네트워크 간에 가상 시스템 간에 트래픽을 전달할 수 있습니다.

4.1. 빠른 데이터 경로 옵션

빠른 데이터 경로 옵션 중 일부는 다음과 같습니다.

  • SR -IOV(Single Root I/O Virtualization) 는 단일 PCI 하드웨어 장치가 여러 가상 PCI 장치로 표시되도록 하는 표준입니다. 물리적 하드웨어 포트를 나타내는 완전한 기능의 PCIe 기능인 PF(물리적 기능)와 가상 시스템에 할당된 경량 함수인 VF(가상 기능)를 도입하여 작동합니다. VM의 경우 VF는 하드웨어와 직접 통신하는 일반 NIC와 유사합니다. NIC는 여러 VF를 지원합니다.
  • OVS(Open vSwitch) 는 가상화된 서버 환경에서 가상 스위치로 사용하도록 설계된 오픈소스 소프트웨어 스위치입니다. OVS는 일반 L2-L3 스위치의 기능을 지원하며, 사용자 정의 오버레이 네트워크(예: VXLAN)를 만드는 OpenFlow와 같은 SDN 프로토콜도 지원합니다. OVS는 물리적 NIC를 사용하여 가상 시스템과 호스트 간 패킷을 전환하는 데 Linux 커널 네트워킹을 사용합니다. OVS는 이제 iptables/ebtables를 사용하는 Linux 브리지의 오버헤드를 피하기 위해 기본 제공 방화벽 기능과 함께 연결 추적(Conntrack)을 지원합니다. Red Hat OpenStack Platform 환경을 위한 Open vSwitch는 OVS와 기본 OpenStack Networking(neutron) 통합을 제공합니다.
  • DPDK(Data Plane Development Kit) 는 빠른 패킷 처리를 위한 라이브러리 집합 및 폴링 모드 드라이버(PMD)로 구성됩니다. 이는 대부분 사용자 공간에서 실행되도록 설계되어 애플리케이션이 NIC에서 직접 또는 NIC로 직접 패킷 처리를 수행할 수 있도록 합니다. DPDK는 대기 시간을 줄이고 더 많은 패킷을 처리할 수 있도록 합니다. DPDK Poll Mode Drivers(PMD)는 사용 중인 루프에서 실행되며 게스트의 호스트 및 vNIC 포트의 NIC 포트를 지속적으로 스캔하여 패킷이 도착합니다.
  • DPDK OVS-DPDK(Extendedd Open vSwitch) 는 물리적 NIC에 대한 Linux 커널 바이패스 및 DMA(직접 메모리 액세스)를 지원하는 고성능 사용자 공간 솔루션을 위해 DPDK와 함께 제공되는 Open vSwitch입니다. 이 아이디어는 표준 OVS 커널 데이터 경로를 DPDK 기반 데이터 경로로 교체하여 패킷 전달에 내부적으로 DPDK를 사용하는 호스트에 사용자 공간 vSwitch를 생성하는 것입니다. 이 아키텍처의 장점은 사용자에게 대부분 투명하다는 것입니다. 명령줄인 OpenFlow(예: OVSDB)가 노출하는 인터페이스는 대부분 동일합니다.