Search
Duplicate

컴퓨터 네트워크/ SDN & NFV

가상화(Virtualization)

컴퓨터의 리소스(또는 전산 자원)들을 추상화하는 개념에서 시작된 가상화라는 용어는 물리적인 컴퓨터 리소스의 특징을 다른 시스템, 응용 프로그램 및 최종 사용자들로부터 감추는 기술을 의미한다.
즉 동일한 하드웨어에서 여러 다른 종류의 운영체제를 실행할 수 있는 기술이기도 하다. 기업들은 이런 가상화를 통해 전산 자원들의 효용률을 높일 수 있게 되었다.
가상화라는 용어는 1960년대 이후에 주로 사용되었으며, 전체 컴퓨터 시스템에서 개별 기능/구성요소에까지 많은 면과 영역에 적용되어 왔다.
이러한 가상화 기술의 공통 주제는 리소스들을 하나로 합치거나 제어 시스템을 단순화하여 다중 송수신 접근이 가능하도록 하는데 있었다.
가상화는 모든 컴퓨터들을 시뮬레이트하는 플랫폼 가상화와 리소스들을 시뮬레이트하는 리소스 가상화로 구분된다.

플랫폼 가상화

가상화(Virtualization)란 단어의 어원은 1960년대에 하드웨어와 소프트웨어를 결합하는 가상 머신이라는 용어에서부터이다. 우리는 이것을 편하게 플랫폼 가상화라고 부르며, 그 기원은 IBM M44/44X 시스템에서 시작되었다.
이때는 가짜 컴퓨터(Pseudo Machine)를 구성한다고 하는 경우에 사용되었다.
플랫폼 가상화는 주어진 하드웨어 플랫폼 위에서 제어 프로그램, 곧 호스트 소프트웨어를 통해 실행된다. 호스트 소프트웨어는 호스트 아래의 게스트 소프트웨어에 맞추어 ‘가상 머신’이라는 새로운 시뮬레이트된 환경을 만들어 낸다.
이때 게스트 소프트웨어는 완전한 운영 체제를 일컬으며, 독립된 하드웨어 플랫폼에 설치된 것처럼 실행된다.
일반적으로 가상 컴퓨터들은 하나의 단일 물리적 컴퓨터 위에서 시뮬레이트 되는데, 이들의 수는 호스트 하드웨어의 리소스에 제한을 받는다. 일반적으로 게스트 운영체제가 호스트 운영체제와 같을 필요는 없다.
게스트 운영체제는 특정한 주변기기들이 제대로 기능하도록 하여야 하므로 시뮬레이션은 이를 지원해야 한다.
이를테면 하드 디스크 드라이브나 네트워크 인터페이스 카드와 같은 장치들을 말한다. 그림 14-1은 그러한 예를 보여준다.

리소스 가상화

플랫폼 가상화의 개념에서 저장 볼륨, 시스템 명, 네트워크 리소스 등과 같은 특정한 시스템 리소스들의 가상화로 개념이 확장된 것을 말한다. 즉, 가상 메모리, 저장 장치 가상화, 가상 사설 네트워크(VPN) 및 가상 주소(NAT) 등이 이 범주에 속한다고 볼 수 있다.
그림 14-2는 다양한 리소스들을 가상화한 경우를 보여준다.

미니강의| 현대적 의미의 가상화

현대적 의미의 가상화는 기존의 플랫폼 및 리소스 가상화의 개념을 좀 더 세분화하고 기능화 하였다.
서버 가상화
어플리케이션 가상화
데스크탑 가상화
클라이언트 가상화
어플리케이션 스트리밍
주요 특징
여러 대의 물리적 서버를 고성능 서버 사으이 가상 머신으로 통합
서버에 필요한 소프트웨어와 데이터가 준비되고 사용자의 PC는 입출력 장치로 사용됨
개인화된 데스크탑을 서버에서 제공, 사용자의 PC는 입출력 장치로 사용됨
로컬 PC에 외부와 격리된 가상 공간을 구축
로컬 PC에는 어플리케이션이 설치되지 않고 사용할 때 중앙에서 스트리밍
장점
- 자원활용률 극대화 - 신속한 서비스 제공 및 백업 - 데이터 센터 비용 절감 - IT의 유연성 증대
- 한대의 서버에서 복수의 사용자 어플리케이션 사용 - 신속한 사용자 환경 전개
- 부하 관리 자동화 - CPU, Memory, HDD, Network에 대한 QoS - 가상 데스크탑 스케쥴 관리 - 사용자별 개인화 환경 제공
- 사용자 PC의 로컬 자원(그래픽 환경 등)을 사용함으로써, 성능 및 업무 효율성 보장 - 사용자가 클라이언트 환경에 설치되어 있는 어플리케이션 사용
- 사용자 PC의 로컬 자원(그래픽 환경 등)을 사용함으로써, 성능 및 업무 효율성 보장 - 사용자 별 어플리케이션 관리 불필요 - 신속한 어플리케이션 배포
단점
- 데이터 센터 운영 프로세스 전환 필요 - 가상화 도입과정에서 관리 포인트 증가
- 사용자 환경의 제약 - 3D 환경 등 고성능 자원 제공 미흡
- 3D 환경 등 고성능 시스템 자원 제공 미흡
- 데이터는 클라이언트 환경에 저장
- 스트리밍 서버에서 어플리케이션 별 패키징 필요 - 개별 어플리케이션 별 커스터마이징 요구
적용 업무
- 웹/포털/데이터베이스
- Task Worker 업무
- Power & Knowldege Worker 업무
- 설계 및 R&D 등 개발 환경
- 소프트웨어 테스트, 개발 - Office Worker

SDN(Software Defined Networking)

스위치와 라우터를 트리 형태로 배치한 구조의 네트워크 환경은 지금까지의 클라이언트-서버 중심의 구조에서는 크게 문제가 되지 않았다.
그러나 모바일 장치와 컨텐츠의 폭발적인 증가 및 클라우드 기반 가상화 서비스의 전개 그리고 현재의 네트워크 구조와 관리 구조에 대한 변화를 요구하고 있다.
즉 급변하는 네트워크 사용 환경의 변화를 따라가지 못하는 기술의 한계와 벤더 중심의 기술 개발 환경이 다음과 같은 이유로 변화가 필요해진 것이다.
트래픽 패턴의 변화
서버에서 어플리케이션이 구동되고 사용자와 관련 데이터를 송수신하였지만, 현재의 어플리케이션은 데이터를 사용자에게 제공하기 전에 관련 서버들(어플리케이션 서버, DB 서버 등)과의 트래픽 송수신 후 관련 정보를 제공한다.
가상화 기술의 전개
단일 서버와 사용자와의 단순 연결 관계에서, 다수의 가상 머신(VM)에 분산되어 있는 서버들과 연도오디는 가상화 기술의 도입되었다.
정체의 원인인 네트워크 구조의 복잡성
광대역, 고성능 그리고 안전한 보안을 위하여 대량의 컴퓨터들이 고정된 형태의 네트워크에 연동되어 운영하여 왔으나, 이러한 복잡성으로 인해 네트워크는 소통을 최대화하려는 노력을 반감시켜 왔다.
네트워크 관리의 어려움
트래픽 패턴의 동적 변화로 네트워크의 규모 예측이 불가능해지고, 사용자 어플리케이션의 범위 확대 및 자원의 수적 증가로 관리는 점차 복잡해지고만 있다.
벤더 의존성
변화하는 비즈니스와 사용자 요구에 맞추어 새로운 기능과 서비스를 제공하려는 노력에 반하여, 벤더들은 투자비 회수에 맞추어 장치 생산 주기를 결정하고 있다.
이러한 환경 변화와 시장의 요구 그리고 네트워크를 구성하는 기능들간의 부조화를 해결하기 위한 대안으로 네트워크의 데이터 평면(Data Plane)과 제어 평면(Control Plane)을 분리하여 표준화된 인터페이스를 통하여 다양한 환경에 적합한 제어 평면을 제공하기 위하여 SDN이 등장하게 되는 것이다.

SDN 개요

(생략)
SDN(Software Defined Networking, 소프트웨어 정의 네트워킹)의 기원은 썬마이크로시스템즈가 자바를 1995년에 출시한 직후 시작되었다.

SDN 개념

제어 평면과 전달 평면으로 분리되는 SDN은 네트워크의 구조 혹은 새로운 패러다임으로서 OpenFlow라는 인터페이스 기술을 포함하고 있다.
이러한 SDN은 먼저 소프트웨어 정의 포워딩(Software Defined Forwardin)을 지원해야 하는데, 이 기능은 기존의 장치에서 수행하던 데이터 포워딩 기능을 개방형 인터페이스와 소프트웨어를 통해서 제어해야 한다는 것을 의미한다.
또한 글로벌 관리 추상화(Global Management Abstraction)를 목표로 한다는 것이다. 즉 전체 네트워크의 상태를 보면서 네트워크 요소의 제어를 수행하는 것이다.
그림 14-3은 이런 SDN의 기본 구조를 보여주고 있다. 네트워크의 주요 기능이 SDN 컨트롤러에 집중화되어 전체를 관리하고 네트워크를 하나의 장비로 취급할 수 있게 하는 것이다.
이를 통해 관리자는 벤더에 의존하지 않고 제어할 수 있는 네트워크를 설계 및 운영 할 수 있게 단순화하는 것이다.
SDN은 SDN 컨트롤 계층과 어플리케이션 계층 간에 API를 제공하는데 이는 API를 통해 공통된 서비스의 구현과 라우팅, 접근제어, 트래픽 엔지니어링, QoS 관리 등을 구현한다.
그림 14-4는 컨트롤 계층과 어플리케이션 계층에서 구현 가능한 다양한 기능들을 보여준다.
이들 중 대표적인 기능들은 먼저 컨트롤 계층의 Commissioning 기능과 Global Load Balancing 기능이 있으며, 어플리케이션 계층의 Cloud Orchestration 기능 등을 들 수 있다.

OpenFlow

네트워크들을 연결해 주는 주요 장비인 라우터(Router)는 제어 평면과 데이터 평면 그리고 관리 기능 등을 제품에 포함하고 있었다. 이런 이유로 각 장비 제조 업체별로 다른 설정 방법과 관리 방법이 존재하였다.
물론 이들 간의 표준 프로토콜은 IETF를 포함한 표준화 단체에서 정의하고 결정하지만 사용자가 특정 기능을 추가하거나 변경할 수는 없었다.
이러한 상황을 해결하기 위하여 2008년부터 ONF(Open Networking Foundation)를 중심으로 연구되어 온 기술이 OpenFlow인 것이다.
SDN의 가장 중요한 기술로서 평가 받는 OpenFlow는 SDN에서 컨트롤러와 네트워크 장비간의 인터페이스를 위한 규격으로 사용되는 기술을 말한다.

OpenFlow 개요

제어 평면과 데이터 평면의 분리
OpenFlow는 제어 평면과 데이터 평면을 분리하고 이들 간을 연결하는 인터페이스를 담당하는 표준 기술이며, 이런 기술을 기존의 하드웨어가 아닌 소프트웨어로서 구현한다.
즉 프로토콜 계층 1-4까지의 헤더 정보를 조합한 패킷을 제어하는 기능과 전달하는 기능을 분리하고 이를 소프트웨어적으로 제어하는 기술을 OpenFlow라고 할 수 있다.
컨트롤러와 스위치로 구성
컨트롤러는 스위치에게 동작을 명하고 스위치는 그 명에 따라 해당 동작을 수행하는 역할을 한다. 이때 컨트롤러는 해당 동작을 위해 패킷의 포워딩 방법이나 VLAN 우선순위 값 등을 전송하여 처리하도록 한다.
OpenFlow 컨트롤러의 주 역할은 경로 계산이다. 즉 다양한 매개 변수들을 감안하여 경로를 결정하고, 이를 OpenFlow 스위치에 전송하여 플로우 테이블에 저장되도록 한다. 스위치는 패킷을 수신할 때마다 해당 플로우 테이블을 참조하여 해당 동작을 수행하는 것이다.
플로우 테이블
스위치는 복수개의 플로우 테이블을 갖는데, 이는 조건(Match Field), 처리(Actions) 및 통계(Counters)라는 3개의 정보로 플로우 엔트리(Flow Entry)를 생성하고 이것들을 모아 테이블을 구성한다.
그림 14-6은 헤더 정보 중 조건과 처리(Action)의 예를 보여준다. 이때 헤더 정보로 정의할 수 있는 조건은 1계층에 속하는 스위치의 포트 번호에서부터 4계츠으이 TCP/UDP 포트 번호까지 다양하다. 또한 처리에서 지정할 수 있는 것은 전송, 폐기, 지정된 필드의 값 다시 작성 등을 들 수 있다.
파이프라인 처리(Pipelining)
플로우 테이블은 번호가 부여되는데, 0부터 시작된다. 그림 14-7은 모든 입력 패킷이 0번 플로우 테이블로부터 비교되고, 엔트리가 있으면 플로우 통계(Counter)의 값이 증가하며, 처리(Action)로 정해진 명령을 실행하는 모습을 보여주고 있다.
그룹 테이블
OpenFlow는 그룹 테이블을 정의할 수 있는데, 그룹이란 어떤 플로우에 대해 일련의 Action Bucket 들이 실행되도록 하는 것을 의미한다. 이때 Action Bucket이란 실행할 Action 들의 집합이며 파라미터들을 포함한다.
그룹은 그룹 테이블 내의 엔트리에 의해 스위치 내에서 정의되는데, 그림 14-8처럼 각 엔트리들은 ID 값, 그룹 타입, 통계(Counter) 및 Action Bucket 들로 구성된다.

라우팅 방식

Hop-by-Hop 방식
컨트롤러가 모든 스위치 상태와 서비스 별로 해당 경로를 알고 있어야 하는 방식이다. 즉, 그림 14-9처럼 각 스위치는 전송할 패킷이 목적지에 도달할 때까지 릴레이 방식으로 계속 다음 스위치로 포워딩해야 한다.
이 방식은 복잡한 경로 구성이 자유로우며, 효율을 극대화할 수 있지만, 모든 정보를 가지고 있어야 하므로 확장성에 문제가 있다.
Overlay 방식
컨트롤러가 모든 경로를 제어하지 않고 터널링 기술을 이용하여 해당 경로를 설정하는 방식이다. 즉 그림 14-10처럼 송신측 장비들(컨트롤러와 스위치)은 통신 경로의 발시닞와 수신지만 알고 있으면 되고, 나머지는 기존 라우팅 매커니즘에 따라 설정한다.
이 방식은 대규모 네트워크 뿐 아니라 기존의 네트워크에도 적용할 수 있지만, 사용 효율은 변동이 미비하다.

SDN 구조

SDN은 개방형 인터페이스를 제공하여 네트워크 장비들의 연결 및 제어를 위한 소프트웨어 개발이 가능하도록 하고 이를 통해 데이터의 원활한 흐름이 보장될 수 있도록 한다.
SDN은 그림 14-11과 같이 데이터 평면(Data Plane), 제어 평면(Control Plane) 및 응용 평면(Application Plane)으로 구분되는 구조를 가진다.
데이터 평면은 네트워크 구성 요소들로 구성되며, SDN Datapath는 제어-데이터 평면 인터페이스 에이전트를 통해 제어평면과 연결된다.
SDN 응용 프로그램은 응용 평면에 상주하며, NorthBound Interface(NBI) 드라이버를 통하여 관련 내용을 전달한다.
중앙의 제어 평면은 SDN 컨트롤러가 이와 같은 명령을 번역하고 수행하는 역할을 수행한다.

미니요약| SDN 아키텍쳐(3 Layer + 2 Interface)

데이터 평면(Data Plane)
패킷을 단순히 전달하는 계층
제어 평면(Control Plane)
네트워크 구성 및 운영/제어를 총괄하는 계층
응용 평면(Application Plane)
다양한 네트워크 서비스를 위한 응용 계층
NorthBound Interface
다른 Layer에 직간접 제어를 위해 응용 평면에 제공되는 인터페이스로 대부분 Restful API를 사용함
Control Data Plane Interface(SouthBound Interface)
데이터 평면의 포워딩 제어 및 정보 수집을 위한 인터페이스로 OpenFlow가 대표적인 프로토콜임
그림 14-12는 SDN 아키텍쳐의 실제 적용 예를 보여주고 있다. 이와 같은 SDN은 세 가지 기본 기술 범주, 즉 컨트롤러, 스위칭 네트워크 그리고 오버레이 네트워크를 갖는다.

컨트롤러(Controller, 제어기)

SDN의 가장 중요한 중심 기술로서 자신이 속한 도메인에 있는 모든 네트워크 기기와 대화하고 토폴로지를 학습하며, 관련 네트워크를 프로그램 할 수 있는 영역을 의미한다.
SDN은 컨트롤러를 통해서 기존의 분산 모델(전달 경로를 결정하기 위해 네트워크 기기들끼리 서로 통신)에서 중앙집중형 모델로 변신할 수 있게 된 것이다.
또한 이를 통하여 기업 정책을 전체적이고 독립적인 방식으로 스위치, 라우터, 방화벽 그리고 로드 밸런싱 같은 관련 기기들을 추상화한 네트워크 미들웨어(Middleware)처럼 기능하게 한다.
컨트롤러는 소프트웨어가 구동하는 플랫폼일 뿐만 아니라 소프트웨어가 통신할 때 사용하는 통신 게이트웨이이기도 하다.
컨트롤러는 2가지 통신을 사용하는데 먼저 내부 통신(Control Data Plane Interface 또는 SouthBound Interface)을 들 수 있다.
이것은 네트워크 기기를 프로그래밍 하거나 네트워크 기기들로부터 관련 데이터를 수신하는 통신을 말한다. 대표적인 예로는 OpenFlow가 있다.
다음으로는 외부 통신(NorthBound Interface)을 들 수 있는데, 이것은 어플리케이션과 컨트롤러 간의 통신을 의미한다.

스위칭(Switching)

SDN의 중심 역할을 수행하는 장비로서 컨트롤러가 프로그래밍 하는 것이 주로 스위치의 전달 테이블이며 하드웨어 스위치나 소프트웨어 스위치 모두 SDN 내부에서 중요한 역할을 수행한다.
소프트 스위치는 액세스 리스트, 속도 제한 및 트래픽 우선순위를 부여한 QoS 매개 변수 그리고 가상 포트에 적용된 전달 기능 등을 가질 수 있는데, 이와 같은 기능들을 부여하면 백본 하드웨어 스위치는 트래픽의 신속한 전송에만 초점을 맞출 수 있게 되는 것이다.
즉 소프트 스위치로는 모든 것을 충족시킬 수가 없는데, 엔드 투 엔드 기업 정책 배포, 트래픽 조율(Steerin) 그리고 보안 집행 등은 여전히 하드웨어 스위치의 역할로 존재하게 되는 것이다.
컨트롤러가 하드웨어 스위치와 소프트웨어 스위치 모두의 전달 행태를 프로그래밍하기 위해 사용하는 주요 내부프로토콜로는 OpenFlow가 있는데 이 OpenFlow는 ONF(Open Networking Foundation)에서 작업을 진행하는 표준 프로토콜이다.
외부 통신을 위해 컨트롤러는 흔히 API를 제공하는데 대표적인 것으로는 REST(Representational State Transfer) API를 들 수 있다.
API는 컨트롤러 외부의 어플리케이션이 컨트롤러에게 네트워크에서 어떤 업무를 수행해야 할지를 지시할 수 있는 방법을 제공하는데, OpenFlow 외에 해당 장비 공급업체의 고유 API가 내부 방향에 대한 통신 수단으로 제공되고 있기도 하다. (대표적인 사례가 Cisco 사의 ONE 프로젝트)

오버레이(Overlay)

오버레이는 논리적으로는 서로 분리되어 있는 동시에 하단의 동일한 실제 네트워크는 공유하는 가상 네트워크 그룹을 생성하기 위해 사용하는 것을 의미한다.
즉 하나의 패킷(또는 프레임)이 다른 패킷(또는 프레임)으로 캡슐화되고 이 패킷은 캡슐이 제거된느 터널 종단으로 전달된 후 원래의 패킷 목적지로 전송된다.
그 중 한 가지 방법은 가장 대중화된 VXLAN(Virtual eXtensible LAN)이 있는데, 이는 2계층 프레임을 3계층 UDP 패킷 내부에 캡슐화하는 방법을 사용한다.
VXLAN은 2계층 프레임 전체를 보존하고 있기 때문에, VLAN 태그도 그대로 보존되어 있어서 하나의 VXLAN 세그먼트 내부에 여러 개의 3계층 네트워크가 공존할 수 있게 해준다.
또한 이와 유사한 것으로 NVGRE(Network Vitualization with GRE)가 있는데, 이는 마이크로소프트가 개발한 기술로서 브로드캐스트, 언노운 유니캐스트, 그리고 멀티캐스트를 전송하기 위해 멀티캐스트가 필요하지 않다는 것에서 VXLAN과 차별화된 기술이다.
또 다른 하나의 오버레이는 NVO3(Network Virtualization Overlays)이다. 이는 IETF 워킹 그룹에서 개발된 기술로서 트래픽 분리, 하부 백본에서처럼 3계층 분리에 대한 걱정을 하지 않고 네트워크 어디에서나 가상 머신을 배포할 수 있는 방식이다.
이와 같이 중앙의 컨트롤러는 네트워크의 토폴로지를 알아내고, 외부 방향으로는 어플리케이션 그리고 내부적으로는 스위치 사이에서 미들웨어처럼 동작하는 것이다.
외부 어플리케이션은 조직의 정책, 네트워크 구성 같은 것들을 컨트롤러에게 알려주고, 컨트롤러는 이런 정책과 구성을 네트워크 스위치에게 내부 프로토콜을 이용하여 명령하고 실행하는 것이다.
그림 14-13은 기존의 네트워크 관리 솔루션들이 장비를 처리하는 방식과 SDN 운영 방식을 비교하는 예이다.
그림에서처럼 기존의 운영 방식에서는 각각의 장비가 이해하는 언어를 이용하여 하나씩 맵핑하고 처리하기 위하여 관련 전문가를 통해서만 운영이 가능하다.
하지만 SDN 환경에서는 사용하기 쉬운 여러 어플리케이션을 활용하여 관련 정보를 컨트롤러에게 전송하고 컨트롤러가 이를 네트워크게 적용하는 방식을 보여주고 있다.
즉 SDN은 누구나 쉽게 네트워크에서 원하는 기능을 구현하는 그런 네트워크를 구성하는 것을 목표로 한다.

네트워크 가상화

기업들이 효율적인 자원활용, 구축 및 관리비 절감 그리고 복잡성 감소 등을 위하여 가상화를 구현하고 있다. 특히 하드웨어 비용과 관리의 복잡성 감소는 네트워크 가상화를 도입하는 가장 중요한 요소가 되고 있다. 그림 14-14는 이런 네트워크 가상화의 개념을 보여준다.
네트워크 가상화는 다수의 물리적 자원을 하나의 논리적 장치로 사용하거나 또는 하나의 물리적 자원을 복수의 서로 다른 용도로 분할하는 것을 말한다.
즉 라우터, 방화벽, 스위치 등과 같은 물리적인 네트워크 관련 장비들을 마치 하나의 자원과 같이 활용하는 것을 말한다.
기존의 폐쇄형 사설 네트워크를 구성하는 VPN(Virtual Private Network) 기술이나 VLAN(Virtual LAN) 기술 등이 네트워크 가상화의 실 사용 예이다. 하지만 이 기술들은 대규모 네트워크의 구축이 불가능하였고, 관리성과 확장성 등에서 한계를 나타내었다.
효율적인 자원 할당에서 오는 비용 절감과 네트워크 서비스의 향상이라는 혜택으로 인해 기업들은 광대역통신망(WAN)과 데이터 센터 등을 포괄하는 대규모 가상 네트워크의 구축을 추진하고 있다.
그림 14-15에서 보이는 바와 같이 네트워크 가상화는 관리의 용이성, 비용 효율적인 네트워크 구성 등이 가능해짐으로써 최소의 장비만으로 네트워크 구조를 보다 효과적으로 만들어 줌으로 갈수록 중요성이 증대되고 있는 것이다.

NFV(Network Function Virtualization)

NVF는 네트워크를 구성하는 구성 요소인 네트워크 장비를 하드웨어와 소프트웨어로 분리하고, 범용 서비스 가상화 기반에서 네트워크의 기능을 가상화해주는 기술을 말한다.
즉 물리적인 테느워크 장비들의 기능을 가상화하여 VM(Virtual Machine) Server 또는 범용 프로세서를 내장한 장비처럼 구동하는 방식을 의미한다.
또한 앞에서 설명한 네트워크 가상화가 네트워크를 경유하는 터널을 만들고 각각의 데이터 전송별 서비스라는 개념을 사용하였다면 NFV는 다음 단계인 해당 터널에 실제적인 서비스를 포함시키는 것이다.
방화벽, IDS, IPS 등과 같은 4-7계층 기능 및 로드 밸런싱 등의 기능까지 가상화하는 것이다.
이와 같은 내용을 그림 14-16에서 기존 네트워크과 NFV를 적용하였을 경우를 비교하여 보여주고 있다.

NFV 개요

NFV 기술은 스위칭(Switching), 라우팅(Routing), 방화벽(FireWall) 그리고 BRAS(Broadband Remote Access Server) 등과 같은 네트워킹의 기능을 하드웨어로부터 분리해 이를 서버 플랫폼에서 운영하고자 하는 방식을 말한다.
이 방식으로의 전환을 통하여 고객의 요구사항을 더 잘 수용할 수 있도록 서비스를 자동화해 다음과 같은 기능을 향상시킬 수 있게 된다.
사용자에게 보다 효율적인 서비스를 제공할 수 있도록 다양한 서비스 플랫폼을 제시
서버 및 네트워크에 대한 최적의 배치방법을 제시해 전력 소모율을 감소
서버 및 네트워크의 설계, 시험 및 구축을 위한 기술 제시
최적의 제품 라이프 사이클을 유지할 수 있도록 업그레이드 요구사항을 제시
NFV의 기본 목적은 다양한 네트워크의 기능들을 표준화된 가상 서버에서 운용하고자 하는 것이다.
즉 표준 서버 가상화 기술을 수용하여 산업 표준 범위 내에서 소프트웨어로 제어가 가능한 네트워킹 기능을 실행하는 것이며, 나아가서는 신규 장비를 추가로 설치하지 않고서도 용이하게 서비스를 제공할 수 있고 또한 변경도 가능하도록 구현하는데 있다.
이를 위하여 구조와 주요 기능블록 등을 정의하고 이들 간의 인터페이스를 정의한다.
NFV는 네트워크 뿐 아니라 서버의 기능까지 가상화해 네트워크와 하드웨어의 의존도를 최소화하여 네트워크와 하드웨어를 공유할 수 있도록 하기 위하여 다음과 같은 기능을 실행할 수 있게 한다.
다수의 서버와 로컬 네트워크를 통합하여 성능을 향상시키고, 필요 시에는 서비스의 이동 및 변경을 통하여 민첩성과 서비스 확장성 및 탄력성 향상
API를 통해 서비스를 제공하며 이를 통해 서비스 프로그램 능력을 향상시킨다. 또한 서버관리 비용을 최적화시킴으로써 비용 절감효과 기대
소프트웨어 기반 플랫폼으로 제어되는 기능을 통해 서비스를 자동화하고 기능을 향상시켜 사용자의 요구사항을 수용할 수 있는 기반 마련

표준화 동향

(생략)

요구 사항

(생략)

구성 요소

상호 운용성을 보장하는 기능 블록과 이들 간의 인터페이스 및 프로토콜은 다음과 같다.
NFVI(NFV Infrastructure)
COTS 범용 하드웨어와 가속기능 및 하드웨어 가상화에 필요한 소프트웨어 계층으로 구성돼 있으며, 가상 네트워크 기능을 수행하는데 필요한 가상 자원을 제공하는 인프라
VNF(Virtualized Network Function)
NFVI 상에서 실행될 수 있는 네트워크 기능을 구현한 소프트웨어들의 집합체로서, 기존의 네트워크 노드를 소프트웨어로 가상화한 것으로 자체 관리 시스템인 EMS(Element Management System)를 포함
NFV-M&O(NFV-Management and Orchestration)
NFVI의 물리 및 가상 자원과 VNF의 조율 및 라이프 사이클 관리를 담당하는 모듈
OSS(Operation Support System)
BSS(Business Support System)와 연동해 기존 네트워크 환경의 전반적인 관리가 가능

그외 표준화 기구의 표준화 동향)

(생략)

SDN + NFV Hybrid

SDN과 NFV는 각각 별개의 기술이지만 향후 서로 보완적인 기술로 네트워크에 적용될 것이다. 즉 NFV가 하드웨어 기능을 가상화해 구동하는 방식이라면 SDN은 관리자가 중앙 통제 시스템에서 전체 네트워크 장비의 트래픽을 관리하는 방식이다.
이처럼 기술 구현 방식은 상이하지만 NFV에 의해 하드웨어와 소프트웨어로 분리된 각종 기능을 SDN을 이용하여 제어하는 방식을 의미한다.
SDN을 통하면 중앙화와 원격화로 네트워크의 설정과 관리를 자동화할 수 있어 편리하다는 장점이 발생한다.
또한 변화하는 네트워크의 상황과 응용 프로그램의 요구 조건에 맞도록 프로그래밍이 가능해진다. 때문에 저렴한 범용 라우터나 스위치 등의 네트워크 장비들을 사용할 수 있게 돼 이용률을 높이고 비용 절감 효과까지 얻을 수 있게 되는 것이다.
NFV는 기존 하드웨어 중심으로 구현된 네트워크의 라우터, 방화벽, IDP(Intrusion Detection System, 침입 탐지 시스템), IPS(Intrusion Prevention System, 침입 차단 시스템), DNS(Domain Name System) 및 캐싱 등의 다양한 네트워크 기능들을 소프트웨어 형태로 구현해 운영하는 가상화 기술이다.
특히 x86 플랫폼에서 실행되며, 사용자가 네트워크 특정 기능을 활성화 할 수 있게 한다.
이와 같이 SDN이 네트워크를 보다 쉽게 관리하고 설정할 수 있게 하며, NFV는 해당 네트워크를 쉽게 구축하고 확장할 수 있도록 한다.
즉 SDN은 네트워크의 빠른 변화를 가능하게 하고, NFV는 구축, 관리 비용 및 공간과 자원의 효율적인 관리가 가능하도록 하는 것이다.
그림 14-19는 이런 SDN과 NFV의 개념상 차이점을 보여주고 있다.
SDN
NFV
출범 동기
Control, Data Plan 분리 중앙화된 관리 네트워크 프로그래밍
특정 장비에 귀속된 네트워크 기능을 일반 서버에 재배치
적용 위치
Campus, Data Center/ Cloud
Service Provider Network
사용 장비
사용 서버와 스위치
상용 서버와 스위치
Applications
Cloud Orchestration과 Networking
Router, FireWall, Gateway, CDN, WAN 가속기 등
대표 Protocol
OpenFlow
아직 제정 안 됨
규격 제정
Open Networking Foundation
ESTI NFV Working Group
그림 14-20 a는 가장 보편적으로 구성하는 데이터 평면과 제어 평면이 통합된 라우터를 이용한 네트워크의 구성을 보여주고 있다.
이와 같은 환경에서 b와 같이 NFV 기술로 라우터의 기능 가상화를 적용시켰을 경우의 구성이며, c는 SDN + NFV 기술을 도입하여 데이터 평면과 제어 평면을 분리하여 데이터는 데이터 평면에서 전송되고 라우팅 기능은 중앙의 서버에서 구동되는 가상 기기에서 구동되는 모습을 보여주고 있다.
SDN은 가상 네트워크를 구성하여 빠른 변화에 대응할 수 있도록 하며, NFV는 CAPEX, OPEX, 공간과 관련 자원의 소요를 줄여준다. 물론 SDN과 NFV는 서로 상호보완적인 관계로 독립적으로 구성하는 것도 가능하다.
SDN이 제공하는 데이터 평면과 제어 평면의 분리는 NFV 기술의 성능을 향상시키고, 기존의 네트워크와의 호환성을 높이며, 운영 및 유지보수 절차를 용이하게 할 수 있다. 즉 NFV는 SDN 소프트웨어가 구동할 수 있는 인프라를 제공함으로써 SDN을 지원할 수 있게 한다.
SDN + NFV Hybrid를 통해 데이터 평면과 제어 평면을 분리하면 성능을 더욱 높일 수 있으며, 이의 구현 비용 또한 절감할 수 있다.
즉 다양한 전용 기술들을 통합하여 표준화하고 관련 기술 개발과 적용을 손쉽게 하는 것은 물론 전용 장비를 새로이 개발하여 관련 장비의 설치에 따른 물리적인 한계를 줄여줄 수도 있는 것이다.
이와 같이 SDN과 NFV 기술은 서로가 기술적인 부분을 보완하여 미래 네트워크의 모습을 제공할 수 있게 될 것이다.

미니강의| Northbound/ Southbound Interface

Northbound Interface는 네트워크 특정 구성 요소가 상위 구성 요소와 통신할 수 있도록 해주는 인터페이스를 말한다. 이와 대조적으로 Southbound Interface는 특정 네트워크 구성요소가 하위의 구성 요소들과 통신할 수 있도록 해주는 역할을 수행한다.
Southbound Interface는 OpenFlow 프로토콜로 대변되며, 주요 기능으로는 SDN 컨트롤러와 네트워크 노드(물리적 스위치와 가상 스위치 그리고 라우터 등 모든 관련 장비들)간의 통신을 가능하게 하며, Northbound API를 통하여 요청된 기능을 구현할 수 있도록 한다.
Northbound Interface는 SDN컨트롤러와 응용 프로그램 또는 상위 계층 제어 프로그램 간의 통신이 가능하도록 하는 것이다.
엔터프라이즈 데이터 센터의 구성은 다음과 같다.
Northbound Interface
Northbound Interface API의 기능에는 자동화 및 오케스트레이션을 위한 관리 솔루션과 시스템 간에 실행 가능한 데이터 공유가 포함된다.
Southbound Interface
Southbound Interface API의 기능에는 스위치 패브릭과의 통신, 네트워크 가상화 프로토콜 또는 분산 컴퓨팅 네트워크의 통합이 포함된다.

미니강의| NFV Framework

VNF(Virtualized Network Funtions)
기존의 가상화되지 않은 네트워크 기능의 가상화된 형태
하나의 VNF는 여러 컴포넌트로 구성
각 컴포넌트는 하나의 VM에서 동작하거나 모두 다른 VM에서 동ㅈ가할 수 있음
NFV(Network Function Virtualization Infastructure)
VNF의 실행을 지원하는 물리적/소프트웨어적 자원의 집합
하부 자원에 대한 관리 및 최적화
NFV Management & Orchestration(MANO)
컴퓨팅/스토리지/네트워킹 자원의 Infra Manager를 통한 자원 제어 및 접근 권한 관리
NFV 서비스와 VNF에 대한 라이프 사이클 관리