전공 공부

SDN과 NFV의 차이

개루프이득 2019. 8. 19. 20:53

내가 통신쪽을 공부하게 되면서 수없이 많이 봐왔고, 한동안 계속해서 거의 같은 개념으로 이해하고 있던 두가지이다. 하지만, 실제로는 이 두 개념을 orthogonal 하다고 표현을 할 정도로, 매우 명확하게 구분이 되는 개념들이다.

사실 이 차이점은 올해 초쯤에 정리를 했었는데, 이번에 이렇게 다시 글로 정리한다.

아래 내용은 관련 논문들을 읽으면서 내가 이해한 대로, 내가 생각하기에 특징이 되는 차이점을 매우 간단하게 정리한 것이니 맹신은 하지 말자. 그리고 내용에 대한 지적은 언제나 환영이다.

최근에 5G 관련 기술을 이야기하면서 이 두 용어가 많이 등장하고 있다.

Software Defined Network (SDN)과 Network Function Virtualization (NFV)이다.

일단 두 기술의 기본적인 개념 먼저 살펴보자.

먼저 SDN이다.

Rashid Mijumbi, Network Function Virtualizaton: State-of-the-Art and Research Challenges, 2016

SDN를 간단하게 설명하면 network의 forwarding plane과 control plane을 분리시킨다는 것이다. 그리고 이 SDN의 특징을 "네트워크 추상화 (Network Abstraction)" 이라고 한다.

다음으로는 NFV이다

Rashid Mijumbi, Network Function Virtualizaton: State-of-the-Art and Research Challenges, 2016

NFV는 말 그대로이다. network function들을 가상화하여, service provider가 이를 관리하게 된다. 이러한 특징을 "네트워크 가상화 (Network Virtualization)" 이라고 한다.

결국에 이 두 개념을 정확히 이해하기 위해서는 네트워크의 추상화와 가상화의 차이를 알 수 있어야 한다.

Philip Bridge, Senior Network Architect at EE, 2013

내가 봤던 자료들 중에서는 가상화와 추상화를 가장 직관적으로 비교를 해둔 자료이다. 추상화는 'Global'로 사용되는 network application들을 말 그대로 추상화 시켜서 구현한 것이다. 즉, 자세한 구현은 forwarding 단에서 알 수 없지만, 추상화된 동작을 control plane을 통해 제공받을 수 있으며, 이 동작은 forwarding table의 형태로 제공이 되게 된다.

이에 반해 가상화는 공유된 물리적 망에 대해서, logical하게 가상의 망을 구성해주고, 이를 virtualized된 network function들의 chaining으로 구현을 하여, 각각의 logical한 망들이 하나의 공유된 물리망을 마치 각자 따로따로 쓰는 것 처럼 느끼게 만들어주는 개념이라고 할 수 있을 것이다.

이렇듯 따지고보면 엄연하게 다른 개념들이다. 하지만, 보통 이 두 개념이 혼동이 되면서 많이 쓰이는 이유는 아마, centralized된 control으로 동작을 하며 programmable하다는 특징 때문일 것이다.

차이점을 다시 정리하자면, SDN은 physical router에게 flow table을 내려주는 것이 목적이고, global network application들에 적용이 되며, NFV는 virtual function들을 chaining해서 가상화 네트워크를 구현하며, logical한 network function들을 이용한다는 점이 될 것이다. 특히, 이 가상화 네트워크는 요즘 핫한 network slicing과도 이어지는 개념이 된다.

다음으로는 이 두 개념의 차이를 예시로 볼 수 있는 몇개의 논문들이다. 관심이 있으면 이 논문의 문제 formulation이나 예시 부분만 좀 읽어봐도 이해에 도움이 될 것 같다.

Kreutz et al.: Software-Defined Networking: A Comprehensive Survey, 2015

T Lin, Optimal Network Function Virtualization Realizing End-to-End Requests, 2015

Rashid Mijumbi, Design and Evaluation of Algorithms for Mapping and Scheduling of Virtual Network Functions, 2015

이렇게, SDN과 NFV는 아예 다른 독립적인 개념이라고 볼 수 있다. 마지막으로, 그럼 연구들에서 많이 언급되는 SDN-Based NFV에 대해서 이야기를 하고 마무리를 하도록 하겠다.

기본적으로 SDN은 forwarding plane을 분리시켜서 router에서의 forwarding을 조금 더 유연하게 바꿔줄 수 있는 장점이 있다. 따라서, VNF을 배치하면, network virtualization을 위해서는 이 function들의 chaining을 통해 구현이 되어야 하는데, 이 chaining을 위해 SDN이 VNF의 배치를 조금 더 flexible하게 만들어 줄 수 있을 것이다. 물론, SDN없이 NFV만 구현할 수도 있고, SDN을 쓰는데 꼭 NFV를 쓸 이유도 없다.

결국, 내가 이해한 바에 의하면, 둘이 비슷한 개념이거나 어떤 관계가 있는 것이 아니라, 어떤 목적을 위해서 NFV가 SDN의 하나의 use case가 되는 경우가 많아 두 개념이 같이 많이 쓰이고 혼용도 많이 되는 것 같다.

반응형