Part 2. 다가올 5G 시대의 핵심? SDN 기반 가상 네트워크를 이용한 NFV
NFV와 VNF 무엇이 다를까요?
Part 2에서는 SDN과 NFV, 그리고 가상 네트워크 (Virtual Network)의 관계에 대해 설명하고자 합니다. 흔히 SDN를 이야기할 때는 가상 네트워크나 NFV 이야기가 함께 나오곤 하는데요. 때문에 이 기술들에 대한 차이를 명확히 구분하지 못하는 경우가 많습니다. 이 기고를 통해서 서로 어떤 다른 점과 공통점이 있는지 명확히 밝히고자 합니다.
가상화란?
Network Function Virtualization
간략하게 설명하면 SDN은 네트워크 장치의 제어부 (Control Plane)와 전송부 (Data Plane)를 분리하는 개념입니다. 네트워크 장치는 데이터의 전송부의 기능만을 가지게 하고, 대신 범용 서버에 제어부의 기능을 주는 겁니다. 이렇게 하면 하나의 제어부가 여러 개의 네트워크 장치를 제어할 수 있습니다. 반면, NFV란 방화벽 (Firewall)이나 로드밸런서 (Load Balancer)와 같은 네트워크 장비를 가상화하는 개념입니다. 따라서, NFV를 이해하려면 먼저 ‘가상화’라는 개념을 이해해야 합니다.
사전적으로 가상화란 실제로는 존재하지 않는 것을 ‘마치 실제로 존재하는 것처럼 보여주는 것’을 의미합니다. 따라서 IT에서의 가상화란 물리적 리소스의 ‘가상화’를 뜻합니다. 다시 말해, 물리적 리소스를 추상화하는 것이지요. 여러 사용자가 하나의 물리적인 리소스를 나누어 사용하되, 사용자 개개인은 마치 혼자 전체 리소스를 사용하는 것처럼 느끼게 하는 기술입니다.
예를 들어, 서버와 같은 컴퓨팅 리소스를 가상화한 것은 가상머신 (Virtual Machine) 또는 VM 이라고 합니다. 네트워크 리소스를 가상화한 것은 가상 네트워크라고 하지요. 마찬가지로 NFV는 네트워크 기능을 추상화하여, 하나의 물리적인 네트워크 기능을 여러 사용자 또는 장치와 나누어 사용할 수 있게 해주는 것을 의미합니다. 한편, 가상 머신 상에서 네트워크 기능을 구현한 것을 VNF (Virtual Network Function) 이라고 하는데요. 이를 범용 서버상에 올리는 것이 바로 NFV이기도 합니다.
NFV의 장점은?
SDN 기반 가상 네트워크 기술
그럼 NFV가 왜 필요할까요? NFV는 일반적인 리소스 가상화의 특징을 그대로 가지고 있습니다. 물리적 리소스를 여러 가상 머신 (VM)들이 공유하면, 리소스 사용률이 높아져, 효율적으로 사용할 수 있습니다. 또한 물리적 리소스와 가상 리소스를 분리함으로써 가상 머신이 죽더라도 호스트 머신에 영향을 주지 않게 되지요. 때문에 손상된 가상 머신 외에 다른 가상 머신은 그대로 작동할 수 있게 되는 장점이 있습니다.
또 한 가지, NFV도입의 가장 큰 이점은 소프트웨어와 하드웨어의 분리이자, 이를 통한 비용 절감입니다. 기존 물리 네트워크 장비는 라우터 같은 네트워크 장비와 마찬가지로 이루어져 있었습니다. 소프트웨어인 네트워크 기능과 하드웨어인 물리 장비가 일체형으로 제작되고 공급되었지요. 소프트웨어를 업그레이드하거나 하드웨어가 고장일 경우, 네트워크 장비 자체를 교체해야 했습니다. 유지 보수에는 높은 비용이 들었고요.
그러나 NFV를 도입하게 되면 범용 서버에 VNF를 가상 머신 형태로 설치하기 때문에, 서버에 문제가 생기면 서버만 교체하거나 업그레이드할 수 있습니다. 또한, VNF 공급 업체에서 서버를 구입할 필요가 없어지기 때문에, 하드웨어 자체의 공급가도 낮출 수 있습니다. 뿐만 아니라, NFV는 유연한 설치가 가능합니다. NFV와 가상 네트워크가 결합이 되면 VNF를 증설 (Scale Out)하거나, 이동 (Live Migration)하는 것이 가능해집니다.
여기서 잠깐 가상 네트워크에 관해서 설명하겠습니다. 가상 네트워크란 물리 네트워크 리소스를 가상화한 것입니다. 하나의 물리 네트워크를 여러 사용자 또는 장치가 동시에 사용하도록 해주거나, 반대로 동일한 가상 네트워크를 다른 물리 네트워크 상에 정의할 수 있게 해줍니다. 즉, 물리 네트워크 설정이 변경되더라도, 동일한 가상 네트워크 설정을 유지하여 연결된 가상 머신 또는 VNF에게 영향을 미치지 않게 합니다. 이때 물리 네트워크를 Underlay, 가상 네트워크를 Overlay라고도 부르지요.
NFV와 SDN이 함께 하는 이유
앞서 언급한 바와 같이, NFV가 SDN 기술과 함께 언급되는 이유는 바로 가상 네트워크 때문입니다. SDN 기술 등장 이후 가상 네트워크는 주로 SDN 기술을 활용해왔습니다. 서버 내에서 물리 스위치 기능을 소프트웨어로 가상화한 가상 스위치 (Virtual Switch)와 이를 제어하는 SDN 컨트롤러 (Controller)로 구현됩니다. Part 1에서 설명한 바와 같이 가상 스위치와 SDN 컨트롤러는 RPC (Remote Procedure Call) 를 이용하여 통신합니다. 또한 가장 많이 사용되는 오픈 소스 가상 스위치, OVS (Open Virtual Switch)는 오픈플로우 (OpenFlow)를 사용합니다. 가상 머신들의 가상 네트워크 인터페이스는 이 가상 스위치의 가상 포트에 연결되지요. 이러한 포트 또는 가상 스위치들 사이의 연결을 정의한 것을 플로우 룰 (Flow Rule)이라 합니다. SDN 컨트롤러를 이용하여, 플로우 룰을 OVS 가상 스위치에 정의하면 가상 네트워크가 완성됩니다.
이처럼 NFV는 VNF가 SDN을 이용하여 구현한 가상 네트워크와 결합할 때 더욱 강력한 힘을 발휘하게 됩니다. VNF를 원하는 위치에 동적으로 설치할 수 있기 때문입니다. 이것이 NFV가 SDN 및 가상 네트워크와 항상 함께 언급되는 이유이지요. NFV와 SDN과의 관계를 조금 더 엄밀히 이야기하자면, NFV는 SDN기술 없이 구현이 가능하지만, 가상 네트워크를 이용해 VNF를 연결하고자 할 때는 SDN 기술이 필요하게 됩니다. SDN 입장에서 보면, NFV는 하나의 유즈 케이스인 것입니다.
네트워크 가상화의 단점 보완 기술
네트워크 가상화 가속 기술
그러나 네트워크 가상화에는 큰 단점이 있습니다. 가상 머신은 네트워크 리소스를 가상화하는 대신 별도의 네트워크 레이어를 가집니다. 때문에 가상 머신에서 데이터를 외부로 전송하기 위해서는 가상 머신의 네트워크 레이어와 호스트 머신의 네트워크 레이어 두 개를 모두 거쳐야 해서, 성능이 크게 떨어지게 됩니다. 이 성능 저하를 극복하기 위해서 여러 기술이 사용되는 데, PCI Passthrough 방식도 그 중 하나입니다. 가상 머신의 가상 포트를 물리 네트워크 인터페이스에 직접 연결해 호스트 머신의 네트워크 레이어를 통과시킴으로써 성능 저하를 최소화하는 기술이지요. 이때 하나의 물리 포트에는 하나의 가상 포트만 연결시킬 수 있습니다.
한 편, SR-IOV (Single-Root IO Virtualization) 방식은 PCI Passthrough의 장점은 그대로 유지하고, 여러 개의 가상 머신을 하나의 물리 네트워크 인터페이스에 연결하도록 해줍니다. 하지만 두 가지 기술 모두 가상 머신의 가상 포트가 호스트의 네트워크 인터페이스에 고정되는 단점이 있습니다. 물리 네트워크 설정이 바뀌면 가상 머신의 네트워크 정보도 바뀌게 되는 것이지요. 다시 말해 네트워크 가상화가 지닌 장점을 모두 잃어버리게 됩니다.
그렇다면 가상 네트워크의 특성을 잃지 않으면서도 데이터 전송 속도를 물리 네트워크와 동일하게 유지할 수 있는 방법은 없을까요? 이를 위해 개발된 것이 OVS-DPDK, NIC Offloading과 같은 데이터 전송 가속 솔루션 (Data Plane Acceleration)입니다. OVS-DPDK (Data Plane Development Kit)는 소프트웨어적으로 데이터 전송 속도를 빠르게 하는 기술이자, 물리 서버의 네트워크 인터페이스 카드에서 서버 네트워크 레이어를 거치지 않고 바로 가상 스위치인 OVS로 전송하는 기술이기도 합니다. 이 방식도 CPU 코어를 네트워크 처리 전용으로 할당해야만 해서, VNF 자체가 사용할 수 있는 CPU 코어 수가 줄어드는 단점이 있습니다. 10 Gbps당 1코어가 줄어들기 때문입니다. 이 외에도 하드웨어를 이용한 가속 방식인 NIC (Network Interface Card) Offloading이 있습니다. 네트워크 카드의 CPU 내에서 모든 OVS 기능을 처리하여 서버의 CPU에 부담을 주지 않고도 데이터 전송률을 유지하는 기술입니다.
5G 그리고 NFV의 상용화
2~3년 전부터, SKT에서도 EPC (Evolved Packet Core)나 IMS (IP Multimedia Subsystem)와 같은 코어 망 Network Function에 NFV를 점진적으로 도입하고 있습니다. 올해도 많은 PNF (Physical Network Function)를 가상화할 계획을 하고 있지요. 하지만, 아직까지 네트워크 가상화는 PCI Passthrough 방식이나 SR-IOV를 이용하고 있으며, 가상 네트워크는 아직 도입이 되지 않고 있습니다.
향후 5G 망이 구축되면 무인 자동차를 위한 커넥티드 카 (Connected Car)나, 증강현실 (AR), 가상현실 (VR)처럼 다양한 초고속∙초고용량 서비스를 제공하게 될 것입니다. 소비자의 요구에 맞추어 즉각적으로 서비스를 활성화해야 하겠지요. 이를 위해서는 서비스별로 전용 네트워크를 생성해주는 기술인 네트워크 슬라이싱 (Service Network Slicing)이나 가상 네트워크를 이용한 NFV 기술이 필수적입니다. SKT 또한 빠르면 올해 말 구축될 5G 망과 네트워크 슬라이싱 기능을 지원하기 위해, 가상 네트워크를 바탕으로 NFV의 상용화를 준비하고 있습니다.
최근 또 하나의 트렌드는 텔코 (Telco)망을 가상화하는 것을 넘어, ‘클라우드화’하는 것입니다. 클라우드는 가상 머신 보다 훨씬 더 유연한 컨테이너를 사용할 수 있기 때문이지요. 그래서 Telco 향 VNF를 컨테이너화 (Containerization)하여 더 유연하게 기능을 생성하고 확장 (Scale Out) 할 수 있도록 합니다. 물론 이렇게 되면 모든 VNF가 컨테이너에 맞는 것은 아니라서, 가상 머신과 컨테이너가 공존하게 됩니다. 따라서 가상 네트워크 또한 가상 머신과 컨테이너를 동시에 지원할 수 있는 기능이 개발되어야 하지요. 이에 대해서는 기회가 된다면 좀 더 자세히 다루도록 하겠습니다.
지금까지 Part 1과 Part 2를 통해서 SDN과 NFV의 개념과 현재 SKT가 나아가고 있는 방향에 대해서 알아보았습니다. 2018년에는 드디어 SDN과 SDN 기반 가상 네트워크를 이용한 NFV가 당사에 도입될 예정입니다.
5G 표준을 찾다가 여기까지 왔습니다. 내용 정말 깔끔하게 정리해 주셔서 감사합니다.
진짜 감사합니다!!!!최고...
잘보고갑니다. 좋은내용 감사합니다.
궁금한 사항을 정말 많이 해결하고 갑니다 정말 정말 감사합니다
잘보고 공부하고 갑니다.
감사합니다.
좋은 내용 감사합니다.
글이 올라온지 2년이 지났네요... 그간 실제 SKT에 SDN과 NFV가 어떻게 적용되고 발전되었는지 update 해주시면 정말 감사하겠습니다.
좋은 내용 정말 감사합니다.
DC 엔지니어가 필요한 배경지식 정리 잘 했습니다.
좋은 내용 정말 감사합니다..