최근 SDDC 또는 5G에 대하여 이야기할 때 SDN/NFV라는 2개의 용어가 항상 등장한다.
여기에 VNF, 더 나아가 CNF까지 함께 이야기하곤 한다.
이들의 차이는 무엇이고 어떤 관계인지 알아보자.
SDN (Software Defined Networking)
간단하게 설명하자면 SDN이란 소프트웨어를 이용하여 네트워크 리소스를 가상화하는 것이다.
한줄로 설명하기에는 너무나도 추상적이며 불친절하다.
조금 더 핵심적인 부분을 설명하자면, SDN은 네트워크 장치의 Control Plane(제어부)과 Data Plane(전송부)을 분리하는 개념이다.
따라서 중앙에서 전체 네트워크를 프로그래밍하고 관리할 수 있으며, 하나의 SDN 컨트롤러가 여러 개의 네트워크 장치를 제어할 수 있는 것이다.
결과적으로 SDN을 한 단어로 표현하자면 네트워크 추상화(Abstraction)이다.
SDN에 대한 자세한 설명은 이전글([Network] SDN이란?)에서 다루었으니 한번 읽어보면 도움이 될 것이다.
NFV (Network Function Virtualization)
NFV란 기존의 네트워크 하드웨어 장비를 소프트웨어 형태로 가상화하는 개념이다.
즉, 라우터(Router), 방화벽(Firewall), 로드밸런서(Load Balancer), IDS, IPS, DNS, 캐싱 등의 물리적인 네트워크 기능을 여러 사용자 또는 필요한(+저렴한) 리소스(서버, 스토리지 등)에서 사용할 수 있는 것이다.
NFV 또한 일반적인 리소스 가상화의 특징을 그대로 가지고 있다.
네트워크 기능이 가상화 됨으로써 값비싼 장비와 전용 솔루션 대신 저렴한 범용 하드웨어를 사용할 수 있다.
네트워크 인프라를 구축하고 운영함에 있어서 유연성과 효율성이 높아짐은 당연하다.
이는 특히 SDN 환경에서 큰 효과를 발휘한다.
(SDN에 대한 이전 글을 보고왔다면 이 말을 바로 이해할 수 있을 것이다)
SDN과 NFV의 차이와 관계
그렇다면 SDN과 NFV의 차이를 정리해보자.
SDN은 네트워크의 제어 기능과 전달 기능을 소프트웨어로 분리하여 추상화시키는 것이다.
좀더 엄밀히 말하면 Control Plain을 소프트웨어화 시키는 것이다.
OSI 7Layer 기준으로 SDN은 2-3 Layer를 담당하며, 스위치, 라우터, 무선 access 포인트 같은 네트워크 인프라를 최적화한다.
NFV는 네트워크 Appliance 기능을 가상화하여 하드웨어와 소프트웨어로 분리하는 것이다.
네트워크 기능 가상화에 초점이 맞춰져 있으며, 이는 Data Plain을 가상화한다는 의미이다.
OSI 7Layer 기준으로 NFV는 4-7 Layer를 포함하며, Edge 인증, 로드밸런서, 방화벽, WAN 컨트롤러 등의 네트워크 기능의 배포를 최적화한다.
SDN과 NFV는 서로 상호 보완적이지만, 독립적인 구성도 가능하다.
SDN 없이 NFV만 구현할 수도 있고, SDN을 구현하는데 반드시 NFV만을 사용해야 하는것도 아니다.
NFV는 SDN을 구현하기 위한 하나의 usecase인 것이다.
하지만 SDN 환경에서 NFV의 효율이 매우 뛰어나기 때문에 이 둘은 항상(?) 붙어다니고 있다.
NFV Architecture
참고로 ETSI(유럽통신표준협회)는 NFV 인프라 아키텍처를 VNF
, NFVi
, MANO
3가지 구성요소로 정의한다.
VNFs (Virtualized Network Functions)
VNF는 네트워크 기능을 제공하는 소프트웨어 애플리케이션이며, VM(가상머신)으로 배포된다.
VNF에 대해서는 아래에서 조금 더 자세하게 설명할 예정이다.
NFVI (NFV Infrastructure)
NFVI는 VNF를 호스팅하기 위해 하드웨어 리소스를 제공하고, VNF가 네트워크 기능을 수행할 수 있도록 소프트웨어를 지원하는 가상화 계층이다.
보통 호스트 서버의 HW자원을 가상화하고 여러 VM들을 독립적으로 실행하기 위해 하이퍼바이저를 이용한다.
대표적인 NFVI 플랫폼(VIM)으로는 OpenStack이 있다.
MANO (Management and Network Orchestration)
NFV 인프라 관리를 위한 프레임워크이다.
새로운 VNF를 생성하고 설정하며, 전체 NFV를 조직하고 관리한다.
운영자 중심 커뮤니티인 OSM(Open Source MANO)에서는 상업용 NFV네트워크 요구사항을 만족하는 오픈 소스 MANO 스택을 제공한다.
VNF (Virtual Network Function) / CNF (Cloud-Native Network Function)
위 그림에서 보았듯이 NFV로부터 VNF라는 개념도 함께 등장하였다.
VNF란 네트워크 기능을 가상머신 상에서 구현한 것을 의미한다.
네트워크 하드웨어를 emulate한 vm을 이용하면, Cloud 컴퓨팅 환경을 완벽하게 가상화할 수 있다.
또한, 최근에는 컨테이너를 이용하여 네트워크 기능을 생성한다.
이를 Cloud-Native Network Function(CNF)라고 한다.
Cloud Native 구조에서는 VNF가 모듈화되어 VNF 구성요소들이 기능 또는 특성별로 마이크로서비스들로 분리되고, 마이크로서비스들은 컨테이너에 배포된다.
마이크로서비스들은 재사용이 가능하며 뛰어난 확장성을 갖는다.
하지만, MSA 구조는 서비스 민첩성이 향상되는 동시에 복잡성도 증가하기 때문에 CNF의 생성, 배포, 확장을 자동화하여 네트워크 운영의 편의성과 효율성을 높이는 일은 매우 중요하다.
Reference
https://codilime.com/the-difference-between-sdn-and-nfv-a-simple-guide/
https://www.netmanias.com/ko/post/blog/14631/5g-sdn-nfv/evolution-to-5g-cloud-native-1
https://post.naver.com/viewer/postView.nhn?volumeNo=12596096&memberNo=34920570