트렌드

[IT열쇳말] 소프트웨어 정의 네트워크(SDN)

2016.11.24

빅데이터, 사물인터넷(IoT), 클라우드 컴퓨팅 등 새로운 IT 트렌드가 나올 때마다 빠지지 않고 등장하는 키워드가 있다. 바로 ‘네트워크’다. 이 모든 서비스는 컴퓨터가 서로 소통할 수 있게 도와주는 환경, 네트워크가 있어야 가능하다.

몇 년 전만 해도 네트워크가 감당하는 데이터는 일부분에 불과했다. 대용량 데이터가 네트워크에서 오고가도 전혀 문제되지 않았다. 그러나 새로운 IT 트렌드가 등장하면서 상황이 달라졌다.

▲네트워크를 오가는 데이터가 폭발적으로 늘어가고 있다. 네트워크 관리 기술이 자연스레 도마에 올랐다. (출처 : flickr ‘Andrew Hart’ CC.BY)

▲네트워크를 오가는 데이터가 폭발적으로 늘어가고 있다. 네트워크 관리 기술이 자연스레 도마에 올랐다. (출처 : flickr ‘Andrew Hart’ CC.BY)

지난 2015년 글로벌 네트워크 기업 시스코가 조사해서 발표한 ‘2014-2019 시스코 비주얼 네트워킹 인덱스 글로벌 전망 및 서비스 도입 보고서(Visual Networking Index Forecast and Service Adoption for 2014 to 2019, 이하 시스코 VNI 보고서)’에 따르면, 전세계 IP 트래픽은 2014년에서 2019년 사이 3배가량 증가할 전망이다.

또한 이 보고서에 따르면, 2014년 월 59.9EB(엑사바이트, 10억기가바이트)에 달했던 전세계 IP 트래픽이 오는 2019년에는 월 168EB를 기록할 것으로 보인다. 이는 이전 ‘인터넷 시대(1984년~2013년 말)’에 발생한 트래픽의 총량과 맞먹는 방대한 양이다. 네트워크 위를 오고가는 데이터가 폭발하고 있는 셈이다. 자연스레 네트워크 관리 기술이 도마 위에 올랐다.

▲글로벌 IP 트래픽 증가 추이 (출처: 시스코)

▲글로벌 IP 트래픽 증가 추이 (출처: 시스코)

하드웨어 중심 네트워크, 변화가 필요해

대부분의 네트워크는 이더넷 스위치와 라우터를 트리 형태로 배치한 구조로, 클라이언트-서버 중심 디자인이었다. 과거에는 대부분의 통신이 클라이언트와 서버 간에서 일어났기 때문에 이런 구조가 크게 문제되지 않았다.

네트워크는 대량의 컴퓨터를 고정된 토폴로지를 통해 연결하기 위한 이산적인 프로토콜들의 집합으로 구성돼 있다. 네트워크에 어떤 장치를 추가할 때 관련된 스위치와 라우터, 방화벽, 인증 시스템 등을 조작해야 한다. 네트워크 토폴로지 변경과 제품 모델 및 소프트웨어 버전도 관리해야 한다.

인터넷 초창기엔 이런 방식이 문제가 없었다. 때에 맞춰 관리하면 됐다. 그러나 모바일 기기가 급증하고, 클라우드 기반 가상화 서비스가 등장하면서 과거와 트래픽 패턴이 달라졌다.

▲기존 네트워크 구조와 SDN 아키텍처 비교 (출처: 정보통신정책연구원 재인용)

▲기존 네트워크 구조와 SDN 아키텍처 비교 (출처: 정보통신정책연구원 재인용)

가상화 기술이 등장하기 이전에는 애플리케이션이 하나의 서버에서 실행됐고 클라이언트와 트래픽을 주고 받았다. 클라이언트와 서버 간 대용량 통신으로 소통하는 과거와 달리, 요즘은 애플리케이션이 데이터를 사용자에게 제공하기 전에 애플리케이션 서버와 데이터베이스(DB)에 접근하면서 다양한 트래픽을 생성한다. 각 애플리케이션은 다수의 가상머신(VM)에 분산돼 있다. 네트워크 관리가 더욱 복잡해졌다.

예를 들어 기존 네트워크 환경에서 프로비저닝 설정을 변경할 땐 보통 20줄 안팎의 명령어 입력이 필요하다. 서로 다른 스위치와 장비마다 일일이 명령어를 입력해야 하기 때문이다. 서비스 운영을 위해 설정을 바꾸면, 네트워크 관리자는 매일 20만개 이상의 명령어를 입력해야 한다. 각 명령어를 처리하는 데 약 1분이라는 시간이 소요된다면 클라우드 서비스를 제대로 관리하기 위해선 약 3333시간이 필요하다. 420여명의 네트워크 관리자가 투입돼야 하는 상황이다.

빠르게 변화하는 통신 환경도 기존 네트워크 기술에 발목이 잡혔다. 기업은 변화하는 비즈니스와 사용자 요구에 맞추어 네트워크 규모를 확대하려고 한다. 그러나 설정하고 관리하는 네트워크 장비가 계속해서 늘어나면서 네트워크 관리가 복잡해졌다.

기존의 인터넷 설계는 장기간 측정한 트래픽 패턴과 동시 접속자 수를 고려한 링크 초과가입(oversubscription) 방식을 사용했다. 그러나 점차 트래픽 패턴이 동적으로 변하면서 기존 클라이언트-서버 구조 중심 네트워크 디자인으로는 정확한 네트워크 규모 예측이 어려워졌다.

3-4년 정도에 이르는 네트워크 장비 제품수명주기도 장애요인으로 작용했다. 네트워크 시장은 통신장비 공급업체가 제품을 생산해야만 사용할 수 있는 구조였다. 빠르게 변화하는 환경에 대응하기에는 신속성이 떨어졌다. 그리고 표준 API나 개방된 인터페이스가 없기 때문에 기업이 자사 데이터센터 환경에 맞게 새로운 기능을 추가해 구축하는 걸 제한했다.

SW로 네트워크 관리, SDN의 시작

이러한 환경 변화와 시장의 요구가 SDN을 낳았다. SDN은 ‘소프트웨어 정의 네트워크(SDN: Software Defined Network)’다. 소프트웨어 프로그래밍을 통해 네트워크 경로 설정과 제어 및 복잡한 운용관리를 편리하게 처리할 수 있는 차세대 네트워킹 기술을 말한다.

과거에는 개별 네트워크 장비에서 제어 기능을 분리할 수 없었다. 그러나 SDN에서는 접근 가능한 컴퓨터 장치로 제어 영역이 분리되면서, 논리로 네트워크를 관리하고 제어할 수 있는 애플리케이션으로 네트워크 서비스를 관리할 수 있다. 쉽게 말해 사용자가 소프트웨어로 네트워크를 제어하는 기술이다.

▲SDN 아키텍처 (출처: 오픈네트워크파운데이션)

▲SDN 아키텍처 (출처: ONF)

SDN은 네트워크 제어 기능이 물리적 네트워크와 분리돼 있는 구조다. 아키텍처는 크게 물리적인 인프라스트럭처 레이어, 제어할 수 있는 컨트롤 레이어, 애플리케이션 레이어로 나뉜다. 요컨대, SDN은 기본적으로 네트워크 제어 기능이 기존의 스위치나 라우터 등의 하드웨어와 별도로 분리돼야 하고, 데이터 전달 기능과도 역시 분리돼 개발 및 실행될 수 있는 네트워크 구조를 갖췄다.

네트워크를 제어할 수 있는 기능은 SDN 컨트롤러에 집중돼 있다. 그 결과 네트워크 운영자와 관리자는 분산돼 있는 다양한 네트워크 장비에서 손수 코드를 입력해서 관리하기보다 프로그래밍 방식으로 단순화해 네트워크를 관리할 수 있다.

즉, SDN은 개방돼 있고 모듈화로 확장돼 있으면 프로그래밍 가능한 게 특징이다. 때문에 낮은 성능의 CPU가 장착된 하드웨어 스위치도 활용할 수 있게 도와준다. 네트워크 제어 기능이 기존 스위치와 라우터 등 하드웨어와 분리돼 있어 가능한 일이다

그 덕분에 SDN은 기존 네트워크에서는 구성할 수 없는 복잡한 경로 구성이 가능해 트래픽 패턴 변화에 효과적으로 대처할 수 있다. VM의 생성과 삭제 및 이동이 빈번해지는 클라우드 환경에서 필요한 가상 네트워크를 빠르게 구성할 수 있는 점도 특징이다. 대용량 네트워크를 작은 비용으로 구축할 수 있으며, 제조사 의존성 문제를 해결할 수 있다.

이를 뒷받침하듯 국내 소프트웨어 정의 네트워크(Software Defined network, SDN) 시장이 오는 2019년엔 시장 규모가 1390억원에 이를 것이란 분석도 나왔다. IT 시장분석 및 컨설팅 기관인 한국IDC는 ‘한국 SDN 전망 2015-2019 보고서(Korea SDN Forecast 2015-2019)’를 통해 국내 SDN 시장이 향후 5년간 연평균 56.6%에 이르는 성장세를 보일 것으로 예측했다. 지난해 발표한 한국 SDN 시장 성장세(69.2%)보단 다소 낮지만 꾸준히 성장하고 있는 것으로 나타났다.

▲국내 SDN 시장 전망, 2015-2019 (출처: IDC)

▲국내 SDN 시장 전망, 2015-2019 (출처: IDC)

한국IDC는 클라우드, 빅데이터 시장이 열리면서 데이터센터 간 트래픽 증가로 SDN 시장도 함께 성장세를 기록하고 있는 것으로 분석했다. 특히 네트워크에 연결되는 기기 수가 늘면서 이들 기기로부터 발생하는 데이터 처리를 위해 SDN 도입이 증가하고 있는 것으로 보았다.

SDN을 위한 표준 통신 인터페이스, 오픈플로우

SDN 환경을 만들려면, 각 네트워킹 명령어를 원활하게 주고받을 수 있는 개방형 인터페이스가 만들어져야 한다. ‘오픈플로우’가 필요한 이유다.

오픈플로우는 SDN을 구성하는 하나의 요소로, 제어 기능을 가진 머신과 네트워킹 스위치 간 통신을 담당하는 표준 인터페이스이다. 일종의 SDN을 지원하는 프로그래밍 가능한 API로, 컨트롤러로 대두되는 외부에 있는 소프트웨어와 스위치, 라우터 등 네트워크 장비에 직접 접속해 조작할 수 있게 도와준다.

▲오픈플로우 로고 (출처: ONF)

오픈플로우는 오픈플로우 컨트롤러와 오픈플로우 지원 네트워크 장비 사이에서 IT 부서가 애플리케이션, 클라우드 트래픽을 어떻게 정의하고 관리할 것인지 도와준다. 즉, 오픈플로우를 활용하면 소프트웨어로 정책과 서비스 등을 설정하면 IP, 보안, QOS 등을 전체 스위치 장비에 쉽게 적용할 수 있다. SDN 환경에선 네트워크 애플리케이션과 오픈플로우 컨트롤러가 그 사이에 있는 네트워크를 연결시기고, 서로 분선된 트래픽을 처리한다.

예를 들어 한 대학교의 네트워크 환경을 살펴보자 어떤 기숙사에선 페이스북이나 트위터 같은 서비스 사용을 위해 학생들이 인터넷을 사용하고, 또 다른 기숙사에선 과제를 위해 인터넷을 사용하고 있다. 학교는 과제를 위한 인터넷 사용을 우선하는 식으로 네트워크를 설정해야 한다.

▲오픈플로우 아키텍처 (출처: ONF)

기존 물리적 환경에선 이를 제어하려면 시간이 오래 걸렸다. SDN 환경에선 오픈플로우 프로토콜을 이용해 명령어만 입력하면, 과제를 위한 인터넷 사용의 접속을 우선하는 네트워크 환경을 구축할 수 있다.

오픈플로우는 현재 개방형 네트워킹 재단(Open Networking Foundation, ONF)이 주도해 기술을 발전시키고 있다. ONF는 비영리, 상호 이익을 바탕으로 하는 국제 기구로 페이스북, 구글, 마이크로소프트, 시스코, 브로케이드, 주니퍼 등 다양한 기업이 후원하고 있다.

이 글은 ‘네이버캐스트→테크놀로지월드→용어로 보는 IT’에도 게재됐습니다. ☞‘네이버캐스트’ 보기

izziene@bloter.net

#통신 #핀테크 분야에서 호기심이 넘칩니다. @izziene