-
네트워크 관리자에게는 며칠, 길게는 몇 주가 걸릴 수 있는 환경 설정 요청들이 마구 쏟아진다. 다행히 네트워크 민첩성을 높여줄 수 있는 여러 가지 방안들이 나오고 있는데, 그 중에서 네트워크 가상화(Network Virtualization), NFV(Network Functions Virtualization, 네트워크 기능 가상화), 그리고 SDN(Software Defined Networking, 소프트웨어 정의 네트워킹(SDN)이 가장 두드러진다.
난해한 용어들은 보기만 해도 머리가 지끈거리겠지만 이 접근 방법들은 네트워크 이동성이라는 큰 문제에 있어 각기 서로 다른 부분집합을 해결하기 위한 것이다. 네트워크 가상화와 NFV, SDN이 어떻게 다르고, 각각이 어떻게 프로그래밍 가능한 네트워크를 향한 길을 안내하는지 살펴보도록 하자.
네트워크 가상화 (Network Virtualization)
엔터프라이즈 네트워킹 관리자에게는 감당하기 어려울 정도로 네트워크 변경 요청이 쏟아진다. 변화에 대한 IT의 응답성을 개선하기 위해서는 네트워크를 자동화할 방법이 필요하다. 보통 이 경우 우리는 하나의 문제, 'VM을 서로 다른 논리적 영역으로 어떻게 옮길 것인가'를 해결하려고 한다. 네트워크 가상화는 말 그대로 흐름 수준에서 논리적으로 네트워크를 분할함으로써 기존 네트워크에 논리적 구역을 만드는 것이다(하드 드라이브에 파티션을 나누는 것과 비슷함).
네트워크 가상화는 오버레이, 즉 터널이다. 네트워크에 있는 두 도메인을 물리적으로 연결하지 않고 기존 네트워크를 통과하는 터널을 만들어 두 도메인을 연결하는 것이다. 네트워크 가상화의 가치는 특히 가상머신을 위해 관리자가 각각의 새로운 도메인 연결을 물리적으로 배선할 필요가 없다는 데 있다. 관리자가 기존의 방식을 바꿀 필요가 없으므로 편리하다. 인프라스트럭처를 가상화하고 기존 인프라스트럭처 위에서 변경 작업을 수행하는 새로운 방법을 얻게 된다.
네트워크 가상화는 고성능 x86 플랫폼에서 실행되며, 궁극적인 목표는 기존 인프라스트럭처로부터 독립적으로 VM을 이동하고 네트워크를 재구성할 필요가 없도록 하는 것이다. 또한 가상화 기술을 사용하는 모든 IT 환경을 대상으로 한다. 이 분야의 대표적인 업체는 현재는 VM웨어에 인수된 니시라를 꼽을 수 있다.
네트워크 기능 가상화 (Network Functions Virtualization, NFV)
네트워크 가상화가 네트워크를 통과하는 터널을 만들고 흐름별 서비스라는 개념을 사용한다면, 다음 단계는 터널에 서비스를 배치하는 것이다. NFV는 방화벽 또는 IDPS와 같은 4/7계층 기능 또는, 로드 밸런싱(애플리케이션 딜리버리 컨트롤러)까지 가상화하는 것이다.
관리자가 포인트 앤 클릭으로 VM을 설정할 수 있다면, 같은 방법으로 방화벽이나 IDS/IPS를 켜면 좋지 않을까? NFV의 역할이 바로 이것이다. NFV는 다양한 네트워크 요소에 대한 모범 사례를 기본 정책과 구성으로 사용한다. 인프라스트럭처를 통과하는 터널이 있다면 이 터널에 방화벽이나 IDS/IPS를 추가할 수 있다.
NFV는 고성능 x86 플랫폼에서 실행되며, 사용자가 네트워크의 특정 터널에서 기능을 활성화할 수 있도록 해준다. NFV의 목표는 VM 또는 흐름을 위한 서비스 프로파일을 만들고 x86의 성능을 활용해서 네트워크 위에서 추상화를 구축한 다음(터널) 이 논리적 환경에서 가상 서비스를 구성할 수 있도록 하는 것이다. 제대로 구축된 NFV는 수동 프로비저닝과 교육에 드는 시간을 크게 줄여준다.
NFV는 오버프로비저닝의 필요성도 줄여준다. 고객은 네트워크 전체를 감당할 수 있는 대형 방화벽 또는 IDS/IPS 시스템을 구매하는 대신 필요한 특정 터널에 대해서만 기능을 구매할 수 있다. 이는 초기 자본 지출도 줄여주지만 진정한 혜택은 운영 측면의 이점이다. NFV는 소수의 시스템이 다수의 가상 서버를 실행하고 포인트 앤 클릭 프로비저닝 시스템이라는 측면에서 VM웨어와 매우 유사하다.
고객은 NV와 NFV가 다르다는 점을 알고 있지만 동일한 업체를 통해 두 가지 모두 구입하는 편을 선호할 수 있다. VM웨어가 현재 VM웨어 NSX에서 NV와 NFV 보안 기능을 제공하는 이유도 여기에 있다.
소프트웨어 정의 네트워킹 (Software Defined Networking, SDN)
SDN은 미리 준비된 프로세스를 사용해서 네트워크를 프로비저닝한다. 예를 들어 어플라이언스를 사용해서 네트워크 탭을 구성하는 것이 아니라 탭을 구축하고자 할 때 네트워크를 프로그래밍할 수 있어야 한다.SDN은 제어 플레인(네트워크에 무엇이 어디로 이동할지 알려주는 역할)을 데이터 플레인(특정 목적지로 패킷을 보냄)으로부터 분리하는 방법으로 네트워크를 프로그래밍 할 수 있도록 한다. SDN의 기반은 오픈플로우(OpenFlow)와 같은 산업 표준 제어 프로토콜을 사용하고 SDN 컨트롤러를 통해 프로그래밍할 수 있는 스위치다.
네트워크 가상화와 NFV는 물리 네트워크에 가상 터널과 기능을 추가하지만 SDN은 물리 네트워크를 변경하며, 따라서 사실상 네트워크를 프로비저닝하고 관리하기 위한 새로운 외부적 수단이다. 1G 포트에서 10G 포트로 하나의 거대한 흐름을 옮기는 경우, 많은 수의 작은 흐름을 하나의 1G 포트로 집결시키는 경우 등이 사용 사례에 포함된다. SDN은 x86 서버가 아닌 네트워크 스위치에 구현된다.
세 가지 유형의 기술 모두 이동성과 민첩성을 위해 고안된 기술이다. 우리에게는 네트워크를 프로그램할 방법이 필요하고, 이를 위해서 네트워크 가상화, NFV, SDN과 같은 다양한 접근 방법이 있는 것이다.
네트워크 가상화와 NFV는 서버에 위치하며 전송된 "손질된" 트래픽과 상호작용하므로 기존 네트워크에서 가동할 수도 있다. 반면 SDN에는 데이터 플레인과 제어 플레인이 분리된 새로운 네트워크 구조가 필요하다.