본문 바로가기
IT

SDN (Software Defined Network)

by 최고영회 2014. 5. 28.
728x90
반응형
SMALL

NHN Ent. 에서의 첫번째 기술 세미나인 미래 인터넷의 주요 기술인 SDN과 ICN의 현재와 미래에 대한 세미나를 듣고 내용을 정리 해 본다.

 

최근 통신시장의 이슈로 급부상한 소프트웨어 정의 네트워크(SDN: Software Defined Network)는 소프트웨어 프로그래밍을 통해 네트워크 경로설정과 제어 및 복잡한  운용관리를 편리하게 처리할 수 있는 차세대 네트워킹 기술이다. 

이를 위해 SDN에서는 네트워크의 데이터 평면(data plane)과 제어평면(control plane)을 분리하고 이 사이에 표준화된 인터페이스를 제공하며, 네트워크 운용자가 여러 상황에 맞추어 제어 평면을 프로그래밍하여 데이터 평면에서 이루어지는 통신 기능을 다양한 방식으로 제어할 수 있다.  하지만 개발 초기 단계에 있는 SDN은 표준화와 기술개발을 추진하는 기관이나 사용자의  시각에 따라 구체적인 정의와 구현방식에 차이를 보이고 있다

 

현재의 인터넷 구조는 ‘클라이언트-서버’ 컴퓨팅이 지배적이던 지난 20여 년간 만들어진 것으로서 이더넷 스위치와 라우터를 트리 형태로 배치한 계위적 구조를 취하고 있다. 최근 수년 사이에 일어난 모바일 장치와 컨텐츠의 폭발적 증가 및 클라우드 기반 가상화 서비스의 전개 그리고 미래 인터넷 구축연구는 현재의 네트워크 구조와 관리 구조에 대한 재검토를 요구하고 있다. 그 주요 이유는 아래에 설명하는 것과 같이 급변하는 네트워크 사용 환경의 변화를 따라가지 못하는 현 네트워크 기술의 한계 및 벤더가 기술 개발을 주도하는 환경에 기인한다. 


1) 트래픽 패턴의 변화 
과거에는 대부분의 통신이 클라이언트와 서버 간에서 일어 났지만 현재의 애플리케이션은 데이터를 사용자에게 제공하기 전에 다양한 애플리케이션 서버와 DB들을 액세스하면서 대량의 east-west, sever-to-server 트래픽을 만들어 내고 있다. 조사에 따르면 미국의 주요 데이터 센터
내의 east-west 트래픽의 양은 데이터 센터가 처리하는 전체 트래픽의 75%에 이르고 있다. 즉, 95%에 이르던 기존의 north-south 위주의 트래픽 패턴이 데이터 센터를 중심으로 빠르게 바뀌고 있는 것이다. 이러한 변화는 하나의 데이터 센터 내부의 네트워크 용량을 수 Tera bps 급으로 증가시켰고 대규모 네트워크 관리의 문제를 야기하고 있다. 
 
2) 가상화 기술의 전개 
 가상화 기술은 네트워크에 연결된 서버의 수를 급증시켰고, 호스트의 물리적 위치에 대한 가정을 근본적으로 바꾸어 놓았다. 가상화 기술이 등장하기 이전에는 애플리케이션이 하나의 서버에서 실행되었고 클라이언트와 트래픽을 주고 받았지만, 오늘의 애플리케이션은 다수의 가상 
머신(VM)에 분산되어 있으며 VM은 서버의 부하를 재조정하고 최적화하기 위해 위치를 이동(migration)하는 수준에 이르고 있다. 이는 플로우의 end-points가 시간에 따라 급격히 변하게 만드는 요인이 된다. 이러한 VM 위치이동이 일반화되면 주소 체계와 네임 스페이스로부터 
세그먼트나 라우팅 기반의 설계까지 많은 변화를 요구하게 될 것이다. 

3) 정체를 일으키는 복잡한 구조 
현재의 네트워크는 대량의 컴퓨터들을 고정된 토폴로지를 통해 연결하기 위한 이산적인 프로토콜들의 집합으로 구성되어 있다. 지난 수십 년간 비즈니스 수요를 맞추기 위해 광대역, 고성능 그리고 보안을 위한 프로토콜들이 개발되었다. 하지만 이러한 프로토콜들은 특정 문제를 
해결하는 데에는 유용했지만 근본적인 추상화(abstraction)의 혜택을 고려하지 않고 설계된 경향이 강하다. 이것이 오늘날 네트워크의 복잡성을 낳은 주원인이다. 예로써 네트워크에 어떤 장치를 추가할 때 관련된 스위치와 라우터, 방화벽, 인증 시스템 등을 조작해야 하고, EMS와 같은 관리 시스템을 이용하여 ACL, VLAN, QoS 등의 메커니즘들을 업데이트 해야 한다. 또한, 네트워크 토폴로지 변경과 제품 모델 및 소프트웨어 버전도 관리해야 한다. 이러한 복잡성으로 인해 네트워크는 소통을 최대화 하려는 많은 노력에 비해 상대적으로 기술이 정체된 상태에 머무르고 있다. 

4) 네트워크 관리의 문제 
기존의 인터넷 설계는 장기간 측정한 트래픽 패턴과 동시 접속자 수를 고려한 링크 초과가입(oversubscription) 방식을 사용해 왔다. 그러나 점차 트래픽 패턴이 동적으로 변하여 정확한 네트워크 규모 예측이 어려워지고 있으며, 구글이나 페이스북과 같은 대규모 ISP는 
시스템의 규모 설계에서 이러한 문제를 더 크게 겪고 있다. 이들은 전체 컴퓨팅 pool에 대해 대규모 병렬처리 알고리즘을 채택하고 있으나, 사용자 애플리케이션이 다루는 범위가 커짐에 따라(전세계의 웹을 크롤링하고 인덱싱하여 결과를 사용자에게 리턴하는 것) 컴퓨터 자원의 수가 
폭발적으로 증가하고 트래픽도 급증하고 있다. 이러한 기업들은 수십만 대에 이르는 물리적인 서버들간에서 높은 성능과 낮은 연결 비용을 제공하는 이른바 hyper-scale 네트워크를 필요로 한다. 이러한 대규모 네트워크는 수작업으로 구성하거나 관리할 수도 없다. 또한, 데이터센터의 multi-tenancy 추세에 따라 네트워크는 상이한 애플리케이션과 성능 요구조건을 갖는사용자 그룹을 지원해야 하지만 그룹을 구분하는 데 사용되어 온 VLAN ID의 크기(4,096개)도 한계에 이르러 더욱 관리를 복잡하게 만들고 있다. 
 
5) 벤더 의존성 
 통신사업자와 기업들은 변화하는 비즈니스와 사용자 요구에 맞추어 신속하게 새로운 기능과 서비스를 제공하려고 한다. 하지만 벤더들의 투자비 회수 시기에 맞추어 장치 생산 주기를 결정하므로 새로운 시장이 만들어지지 전에는 새로운 기능의 개발을 주저한다. 또한 현재의 
인터넷 장비에는 표준 API나 개방된 인터페이스가 없기 때문에 사용자가 자신의 환경에 맞게 기능을 추가 개발할 수도 없다. 
 
이러한 환경 변화와 시장의 요구 및 네트워크 기능들간의 불협화음이 SDN을 낳게 한 주 요인이라고 할 수 있다. OpenFlow와 결합된 SDN은 기존의 네트워크에서는 구성할 수 없는 복잡한 경로 구성이 가능하여 트래픽 패턴의 변화에 효과적으로 대처할 수 있고, VM의 생성과 
삭제 및 이동이 빈번해지는 클라우드 환경에서 필요한 가상 네트워크를 빠르게 구성할 수 있다는 장점이 있다. 또한 Big Data 분석에 필요한 대용량 네트워크를 작은 비용으로 구축할 수 있으며 Line rate의 성능을 실현할 수 있다는 장점도 있다. OpenFlow 규격을 사용하면 하부의 멀티벤더 장치들을 통합하여 제어할 수 있으므로 현재와 같이 벤더별 EMS를 사용하여 복잡한 절차에 따라 구성을 하지 않아도 된다. SDN은 사용자가 소프트웨어로 네트워크를 제어하는 기술이므로 복잡한 정책의 실현이 용이하고, 특히 벤더 의존성이라는 피치 못하던 문제를 일시에 해결할 수 있다는 장점이 있다. 

SDN 의 개념
SDN은 제어평면과 전달평면을 분리하는 개념이다. 일반적으로 SDN과 OpenFlow가 밀접한 관계인 것으로 알려져 있지만 SDN은 그 하부 기술로 OpenFlow만을 한정하지는 않는다. SDN은 훨씬 더 큰 개념으로 네트워크 구조 혹은 새로운 패러다임이며, OpenFlow는 SDN을 위한 
인터페이스 기술의 하나이다. 현재 SDN 표준화를 추진하고 있는 ONF가 SDN을 바라보는 관점은 크게 두 가지의 기본적인 원칙을 바탕으로 하고 있다. 첫째로, SDN은 소프트웨어 정의 포워딩(Software Defined Forwarding)을 해야 한다. 이것은 스위치/라우터에서 하드웨어가 처리하는 데이터 포워딩 기능은 반드시 개방형 인터페이스와 소프트웨어를 통해서 제어되어야만 한다는 것을 의미한다. 
둘째는 SDN이 글로벌 관리 추상화(Global Management Abstraction)를 목표로 한다는 것이다. SDN은추상화를 통해 보다 진보된 네트워크 관리 툴이 개발될 수 있도록 해야 한다. 예를 들면 이런추상화 도구들은 전체 네트워크의 상태를 보면서 이벤트(토폴로지 변화나 새로운 플로우 입력 등)에 따른 반응, 그리고 네트워크 요소를 제어할 수 있는 기능 등을 포함할 수 있다 아래 그림은 SDN의 기본 구조를 도시한 것이다. 네트워크의 지능은 SDN 컨트롤러에 집중화되어 네트워크 전체를 관리하며 네트워크는 하나의 논리적인 스위치로 간주된다. 관리자(또는 NMS)는 
표준화된 인터페이스를 통해 전체 네트워크를 벤더에 의존하지 않고 제어할 수 있고, 네트워크 설계와 운용을 보다 단순화할 수 있게 된다. 또한 SDN은 네트워크 장치를 단순화할 수도 있다. 즉, 장치를 설계할 때에 수백~수천 개의 프로토콜(RFC) 처리를 고려하지 않아도 되며, 단순히 SDN 컨트롤러로부터의 명령을 받아 데이터를 처리하는 기능만 갖추도록 하면 되기 때문이다. 

 < SDN 의 개념 구조 > 


아래 그림은 SDN을 도입할 때에 통신 사업자 측면에서 컨트롤 계층과 애플리케이션 계층에서 구현 가능한 기능들을 보인 것이다. 이러한 기능들 중 SDN에서 새롭게 도입될 수 있는 대표적인 기능들은 다음과 같다. 컨트롤 계층은 네트워크 자원 전반에 대한 Global View를 기반으로 
새로운 기능을 제공할 수 있다. 예를 들어, 표준화된 OpenFlow API를 이용하여 하부 네트워크의 구축과 구성(config)을 장치 벤더가 아닌 제 3자에게 위탁할 수 있는 Commissioning 기능을 구현할 수 있다. Global Load Balancing은 사용자의 서비스 요청을 지리적으로 가깝고 성능이 더 좋은 데이터센터 내의 시스템에 연결될 수 있도록 트래픽을 제어하는 것으로서 이를 구현하려면 네트워크와 서버를 비롯한 모든 자원의 상태를 파악할 수 있어야 한다. Application 계층의 Cloud Orchestration은 데이터 센터내의 VM, 스토리지 및 가상 네트워크 자원관리를 SDN의 네트워크 관리 기능과 통합하여 일괄 관리하는 기능이다. 


OpenFlow 란?
인터넷 벤더의 라우터(스위치)는 제어평면과 데이터 평면 및 관리 기능을 비롯한 여타 응용 기능들을 모두 하드웨어 제품 내에 내장하고 있으며, 그 설정 방법도 각 벤더마다 다르게 되어 있다. 이러한 라우터에서 사용하는 프로토콜들은 IETF 를 비롯한 표준화 단체에 의해 결정되므로 
사용자가 필요로 하는 특수한 기능을 만들어 넣을 여지는 없다. 또한, 벤더의 프로토타입 구현과 기존의 다양한 장치들과의 호환성 시험도 필요하므로 시간과 비용이 많이 소요된다. 이러한 문제들을 해소하기 위한 기술로 2008 년부터 ONF 를 중심으로 연구되어 온 기술이 OpenFlow 이다. OpenFlow는 SDN을 실현하기에 가장 적합한 기술의 하나로 평가되고 있으며, 현재 SDN 컨트롤러와 네트워크 장치간의 인터페이스 규격으로 사용되고 있는 기술이다. 하지만 아직 현재의 인터넷을 완전히 대체하는 기술로서는 논란이 있으며 아직도 평가가 진행중인 과도기 기술의 하나이다.
OpenFlow 에 대하여 상세한 정보는 다음 기회가 되면 정리 해 보자.


판교 NHN Ent 사옥의 옥상은 참 좋다. (부럽)
일하다가 잠시 옥상에 올라와 휴식을 취하기에 매우 좋은 환경을 준다. 
물론 인조적인 맛이 있긴 하지만 최대한 자연을 벗삼아 만들어 놓은 듯한 느낌은 피로감을 없애는 데 효과적일 것 같다. 










728x90
반응형
LIST