블로거 워누입니다!

현재 제가 다니는 학교에서 진행하는 프로젝트 중 SDN을 구현하는 프로젝트에 참여하게 되었습니다. 간단하게 SDN이 어떻게 동작하는지 실제로 구현하는 게 목적인데요. 한국에선 아직 선보일 만한 예시가 없습니다. 아마 SDN을 제대로 구현해 본다면 저에게 제대로 된 하나의 스펙이 될거 같네요 ㅎㅎ

.

거두절미하고 바로 본론으로 넘어가죠! 이곳엔 그저 프로젝트의 기록을 끄적일 겁니다. 작성한 날 까지의 기록만 남겨놓겠습니다.

.

일단 용어를 알아봅시다. 제가 이 프로젝트를 시작하면서 SDN이 뭘까 하며 용어에 대해서 조사하던 중 주요 키워드 3가지를 발견하였습니다. 바로 SDN과 NFV, 그리고 OpenFlow라는 말입니다. 그럼 일단 이 3가지에 대하여 알아봅시다.

.

SDN은 Software Define Network의 약자로, 소프트웨어 프로그래밍을 통해 네트워크 경로 설정과 제어 및 복잡한 운용 관리를 편리하게 처리할 수 있는 차세대 네트워킹 기술입니다. 이를 위해 SDN에서는 네트워크의 데이터 평면(data plane)과 제어 평면(control plane)을 분리하고 이 사이에 표준화된 인터페이스를 제공하며, 네트워크 운용자가 여러 상황에 맞추어 제어 평면을 프로그래밍하여 데이터 평면에서 이루어지는 통신 기능을 다양한 방식으로 제어할 수 있습니다.

 

[출처 : 네이버 지식백과 - 주요 네트워크 기술 (사물인터넷의 미래, 2014. 11. 28., 한국전자통신연구원(ETRI), 전자신문사)]

.

NFV는 Network Function Virtualization의 약자로 네트워크 기능 가상화라고도 합니다. 통신망 구성에 필요한 하드웨어를 소프트웨어화해서 서버 단에서 구현하는 기술입니다. 세계 주요 통신사들이 사업자 통신망 장비의 기능들을 가상화하여 네트워크의 유연성을 높이므로 하드웨어 장비를 줄일 수 있습니다. 설비투자(CAPEX)와 운용비(OPEX), 설치 면적, 에너지 소비량 등이 줄어드는 효과를 얻을 수 있습니다. 소프트웨어정의네트워킹(SDN) 제어 영역(control plane)의 중앙 집중화와 데이터 센터의 가상화가 융합되고 있습니다.

 

[출처 :네이버 지식백과 - 네트워크 기능 가상화 [Network Function Virtualization, -機能假想化] (IT용어사전, 한국정보통신기술협회)]

.

OpenFlow는 네트워크 장비의 패킷 포워딩(packet forwarding) 기능과 제어(control) 기능을 표준 인터페이스로 분리하여 네트워크 개방성을 제공하는 통신 프로토콜입니다.

사용자 데이터 트래픽에 영향을 주지 않고 네트워크를 통한 가장 알맞은 전송 경로를 정의하여 줍니다. 미국 스탠포드와 UC 버클리 대학에서 약 6년간 공동 연구 결과로 제안한 것으로, 인터넷의 네트워크 제어를 사용자가 소유할 수 있도록 각종 플로우를 정의하고 각각의 플로우가 최적의 전송 경로로 흐를 수 있도록 정의하는 라우팅 프로토콜입니다. OpenFlow는 인터넷 스위치, 라우터 등의 제어 평면(Control Plane)에 탑재될 수 있으며, 소프트웨어 정의 네트워킹(SDN: Software-Defined Networking) 기술에 사용됩니다.

 

[출처 :네이버 지식백과 - Openflow (IT용어사전, 한국정보통신기술협회)]

 

일단 한글로 알아 듣기에는 네이버 백과사전이 제일 적합한 거 같아서 출처를 남기고 가져왔습니다. 저희는 추가적으로 위키백과에 나온 사이트를 해석하고 공부하였습니다. (해당 사이트 주소는 맨 아래에 남겨놓았습니다. )

.

하지만 역시 사람은 글을 백번 읽어봐야 소용 없습니다. 어떻게 되는 것인지 그림이나 구현된 걸 체험해 봐야 합니다.... ㅎ 어쨌든 괜찮아 보이는 그림이 있어서 그걸 먼저 보겠습니다!

 

 

[소프트웨어 정의 네트워크 구조]

[소프트웨어 정의 무선 센서]

[그림 출처 : 네이버 지식백과 - 주요 네트워크 기술(사이트는 아래에 있습니다.)]

.

쉽게 말하면 네트워크 장비의 제어를 하드웨어가 아닌 네트워크로 한다는 이야기 입니다. 그리고 그 중간에서 OpenFlow가 인터페이스를 제공해주는 듯 합니다. 처음 접할 때는 "가능할까? 왜 필요하지 저렇게?" 라고 생각해서 그 부분도 조사를 진행해 보았는데요. 조사를 하면 할수록 "반드시 필요하구나.." 라는 생각으로 바뀌더라구요. 왜 SDN이 주목할 만한 기술이며 왜 탄생해야 했는가를 간단하게 중요한 것들만 요약하자면,

1. 모바일 기기 급증, 클라우드 기반 가상화 서비스 등장으로 인한 트래픽 패턴 변화.

2. 통신 환경의 급격한 변화

3. 3-4년 정도에 이르는 네트워크 장비 제품 수명 주기

이 세가지 입니다. 저 세가지가 과거에는 전~~혀 문제가 되지 않았으나, 현재 기술은 빠르게 발전하는데 반해, 처리할 수 있는 용량이나 속도에 한계가 있는 것이었습니다. 게다가 하드웨어 장비는 수명이 길어봐야 4년 정도라고 하니 한 번 샀다가 기술이 변하면 기존의 장비를 버릴 수밖에 없다는 경제적인 문제도 발생을 하다 보니 하드웨어 장비로만 네트워크를 다루기에는 너무 힘들었던 것입니다.

.

이런 환경 변화와 시장의 요구가 결국 SDN을 탄생시켰습니다. SDN은 소프트웨어 프로그래밍으로 네트워크 경로 설정이나 제어, 운용 관리 등을 처리할 수 있습니다. 소프트웨어로 네트워크를 제어하게 됨으로서 위의 3가지 문제점을 단박에 해결할 수 있게 되었습니다.

.

SDN을 구현하려면 OpenFlow를 잘 활용해야 합니다. 위에서 말했듯 SDN의 구성요소이자 각 네트워킹 명령어를 원활하게 주고 받을 수 있는 개방형 인터페이스를 만들 수 있는 하나의 표준 인터페이스이기 때문입니다! 즉 OpenFlow는, 외부에 있는 소프트웨어와 네트워크 장비에 직접 접속해 조작할 수 있게 도와주는 SDN의 핵심 기술이라고 보시면 됩니다.

.

이제 이걸 어떻게 구현할 까 하며 참고 서적을 둘러보던 중 'SDN 입문'이라는 책을 알게 되었습니다. 서영석, 이미주 님의 저서이며, 외국인 저자들의 책을 해석해 놓은 다른 책들보다 확실히 한국인의 글로 쓰여진 책이라 이해 자체는 조금 더 쉬운 듯 합니다. 아래에 자세한 정보 남기겠습니다. 

.

오늘은 일단 여기까지 하겠습니다. 글로 주구장창 쓰는 것보다야 어느 정도 진행해서 뭔가 설치하고 뚝딱 만들어 봐야 여러분도, 저도 이해가 쉬울 것 같습니다. 그럼 이만 글을 줄이겠습니다! 다음에 봅시다!

 

[참고 서적]

[참고 사이트]

네이버 지식백과 - 주요 네트워크 기술

http://terms.naver.com/entry.nhn?docId=2851199&cid=56756&categoryId=56756

위키피디아 - SDN

https://en.wikipedia.org/wiki/Software-defined_networking

+ Recent posts