본문 바로가기
  • AI (Artificial Intelligence)
Legacy Skills/SDN

SDN 프로그래밍 기술동향

by 로샤스 2014. 4. 30.
최근 SDN의 현황

-       OpenFlow는 미국 NSF의 지원으로 스탠포드 대학에서 진행된 미래인터넷 연구의 결과물로서, 라우터나 스위치와 같은 네트워크 장치에 종속적인 형태로 제공되던 제어 기능을 논리적으로 중앙 집중적인 형태로 분리하여, 표준 API를 통해 통신하는 구조를 토대로 개발된 기술이다. 현재 OpenFlow SDN(Software-Defined Networking)이라는 보다 넓은 개념으로 확장되어, Google, Facebook, Verizon, Cisco 등과 같은 업체 중심으로 새롭게 결성된 표준화 기구인 ONF(Open Networking Foundation)를 통해 현실 적용에 필요한 표준 규격과 기술을 개발하고 있다

-       SDN OpenFlow는 기존 네트워킹 기술과 달리, 간결한 메커니즘을 토대로, 기존의 네트워크 장비의 보조적인 역할을 수행하던 소프트웨어의 역할을 보다 확대하고, 분산 시스템과 운영체제, 데이터베이스와 같은 소프트웨어에서 정립된 개념을 적극적으로 도입하여 혁신의 속도를 높일 수 있는 구조와 생태계를 구성하는 데 노력하고 있다. 이처럼 소프트웨어의 역할을 극대화하여 혁신의 속도를 높일 수 있다는 장점의 이면에는, 이러한 소프트웨어 모듈의 오류가 전체 네트워크에 악영향을 미칠 수 있다는 위험도 존재하는데, SDN/OpenFlow에서 소프트웨어 오류로 인한 문제를  최대한 줄이기 위해 SDN 프로그래밍 관련 기술 동향을 언어와 검증 기법, 가상화라는 세 가지 관점으로 분석한다.

 

2.     SDN언어

언어

특징

적용

FML(Flow-based Management Language)

엔터프라이즈 네트워크에 정책을 선언적인 방식으로 정의

네트워크 정책 및 설정을 논리기반언어로 정의

ACL, VLAN, 라우터정책, QOS, NAT

Frenetic, NetCore

Frenetic : 모듈화와 단일 티어 추상화를 제공하며, 경쟁 조건(race condition) 처리를 언어 런타임 차원에서 지원

NetCore : 네트워크 모델과 정형 의미론(formal semantics)을 이용하여 정의한 언어를 제공

Frenetic : 임베디드 언어형태

NetCore : 고수준 표현을 OpenFlow 규칙 형태변환하는 컴파일러 제작, policy 정형 검증을 위한 이론적 기반

Nettle, Procera

Nettle : OpenFlow 컨트롤러와 스위치가 서로 주고 받는 이벤트와 메시지를 하나의 스트림으로 추상화

이산적인 이벤트발생과 연속적인 시간에 따른 값이나 신호의 변화로 SDN 동작을 모델링

Procera : 고수준의 표현으로 policy를 정의할 수 있으며, 네트워크 컨트롤러 기반으로 동작하고 시제 연산자 사용

Nettle : 로드 밸런싱 애플리케이션

Procera : 이벤트 히스토리 제어

-       SDN구현을 위한 프로그래밍 언어에 따라 대규모 네트워크의 정책적용언어에서 데이터베이스 쿼리기반(Frenetic)언어 및 이벤트 및 history까지 제어 가능한 언어가 활발히 연구 중이다.

 

3.     검증기술

-        SDN/OpenFlow가 향후 널리 적용될 경우에 발생할 수 있는 잠재적인 문제점을 보완하기 위한 주요 검증기술

기술

특징

평가

NICE

OpenFlow 네트워크의 프로그래밍 오류를 검출하기 위해, 모델 체킹(model checking) 기반의 검증 및 테스트 도구

OpenFlow에 최적화 된 네 가지 휴리스틱(huristic) 기법을 개발하여, 이벤트 발생 순서에 따른 경우의 수를 크게 줄이고, 잠재적인 오류 검출 특화, Python으로 구현

모델 체킹 기법을 SDN/OpenFlow 문맥에 단순히 적용하는데 그치지 않고, SDN에 맞게 적용 및 보완했다는 점에서 SDN에 대한 모델 체킹 기법의 대표적인 사례

HAS(Header-Space Analysis)

헤더를 구성하는 비트 패턴을 다차원의 기하 공간으로 표현하고, 스위치나 라우터와 같은 네트워크 장치를 거쳐는 부분을 변환 함수로 처리하여, 네트워크의 동작과 속성을 정적으로 분석하는 기법

현재 정의된 네트워크 설정 및 프로토콜 설계에 대한 패킷의 흐름 모델을 정의하고, 모든 패킷에 대한 동작을 정적으로 분석가능

Kinetic

SDN의 이론적인 모델을 수학적으로 정의, 네트워크 설정 업데이트 과정을 패킷 단위와 플로우 단위로 추상화하여, 네트워크 업데이트 과정에 발생하는 여러 가지 동작과 관련하여 네트워크에서 보장해야 하는 주요 속성을 엄밀하게 분석할 수 있는 이론적인 토대제공

언어 및 검증과 관련하여 이론적인 토대를 마련하고, 업데이트와 관련된 SDN의 전반적인 동작 과정에 대한 다양한 메커니즘 제시

Frenetic이나 Nettle 플랫폼과 결합되는 형태로도 발전할 가능성

FortNOX, VeriFlow

보안 위협 상황과 부주의한 네트워크 설정으로 인한 OpenFlow 규칙 간의 충돌을 실시간으로 검사하기 위해 개발한 NOX 컨트롤러의 확장한 모듈

네트워크에 대한 주요 속성을 실시간으로 검증하는 기법, 컨트롤러와 네트워크 장비 사이의 계층에서 동작하며, 검증으로 인한 지연 시간 최소화 메커니즘을 제시

ndb

gdb의 기능을 SDN 기반의 네트워크 문맥으로 재구성하여, 포워딩 상태와 패킷 로그 조작을 통해 에러의 원인이 되는 부분을 추적

 backtrace를 구성할 수 있도록, 패킷이 네트워크 장치를 지나칠 때마다 postcard라는 메시지를 전달하여, 모든 플로우의 시작점에 해당하는 패킷마다 특정한 표시를 남기는 효과를 구현

기술 검증 수준의 프로토타입을 제시했지만, ndb 논문에서 지적한 개선

사항을 반영하고, JTAG과 같은 하드웨어 지원도 뒷받침된다면, SDN/OpenFlow 네트워크의 디버깅 작업에 핵심적인 도구로 발전할 가능성

-       SDN/Openflow의 안정성을 위해 소프트웨어 검증기술을 비롯하여 보안, 디버깅기술까지 다양한 연구가 진행되고 있으며 가까운 시일 안에 상용에 가까운 새로운 네트워크 패러다임이 형성될 것이다.

 

4.     가상화

-       앞서 살펴본 SDN 프로그래밍 언어 및 검증 도구는 결국 SDN/OpenFlow 환경과 밀접하게 연계하여 동작할 수밖에 없다 이러한 환경을 제공하기 위한 플랫폼에서는 네트워크 가상화를 주요 요소 기술로 다루고 있는데, SDN 가상화 관련 논문과 오픈 소스 기반 소프트웨어 스위치인 Open vSwitch, 그리고 클라우드를 위한 오픈 인터페이스 기반 플랫폼인 OpenStack을 중심으로 가상화 관련 기술 동향도 간략히 정리한다.

가상화 기술

의미

특징

슬라이스 추상화

가상 네트워크들이 서로 방해하지 않는 모델 기반

VLAN과 같은 저수준의 메커니즘에 의존하는  네트워크 가상화 기술을 대체할 수 있도록, 슬라이스라는 네트워크 추상화 단위를 프로그래밍 모델 차원에서 지원하는 새로운 메커니즘

Frenetic/NetCore 언어를 이용한 슬라이스 단위의 가상 네트워크 모델을 정의하고, 이렇게 표현된 네트워크 명세를 OpenFlow 스위치 코드로 변환하는 컴파일러와, 이 과정의 정확성을 검증하기 위한 기법

Open vSwitch

오픈 소스 프로젝트로 활발히 개발하고 있는, 네트워크 가상화를 위한 소프트웨어 스위치

OpenStack 기반의 클라우드나 데이터 센터를 위한 가상 네트워크를 구성하는데 필요한 기능탑재

NaaS(Network as a Service) 서비스를 위한 핵심 모듈

STT(Stateless Transport Tunneling) 터널링 프로토콜과 OpenFlow 제어 및 관리를 위한 데이터베이스 모듈

OpenStack

컴퓨팅과 스토리지, 네트워크 등을 담당하는 이종 모듈끼리 메시지 큐와 REST API 기반의 플랫폼 독립적인 인터페이스로 상호 작용하는 구조의 클라우드 플랫폼

Xen을 비롯한 다양한 요소 기술을 구현한 상용 및 오픈 소스 제품을 최대한 수용하면서 기술 개선의 속도를 높일 수 있는 구조

-       Open Stack : cloud computing platform을 개발하기 위한 오픈소스 프로젝트이다. (흔히들 Cloud O/S 라고 부른다.)

-       OpenStack의 모든 소스코드들은 Apache 2.0 license 하에 모두 공개되어 있다.

-       OpenStack의 소프트웨어 구성요소는 크게 Compute(Nova), Storage(Swift), Networking, Dashboard, Shared Services 로 나눌 수 있다.

 

5.     표준화 활동 및 향후 연구 전망

-       ITU-T에서는 미래 네트워크를 연구하는 SG13/Q.21 그룹에서 SDN을 위한 프레임워크와 정형 명세 및 검증 요구사항에 대한 기고서가 제안되어 표준 문서 작업을 시작하고 있으며, 이와 관련하여 ONF와도 문서의 방향과 활동 방식에 대해 두 차례의 liaison 교환을 통해 논의된 바 있다.

IETF에서도 올해 상반기에 결성된 SDN RG를 통해 학계와 업계의 SDN에 대한 주요 방향과 프레임워크에 대해 활발히 논의되었으며, ETRI에서는 SDN을 위한 정형 언어에 대한 기고도 발표한 바 있다

-       SDN 언어는 FRP 기반의 Nettle, Procera, Frenetic logic 기반의 FML의 두 갈래로 구분할 수 있는데, 모두 DATALOG와 같은 선언적인 형태의 DB 쿼리 언어에 기반을 두고 있으며, 현재 활발히 연구되는 Frenetic Nettle, Procera만을 보면 모두 FRP 기법을 적용하고 있다. 특히 Nettle은 언어뿐만 아니라 컨트롤러 프레임워크의 의미도 강한데, 향후 Frenetic이나 NetCore와 결합하여 서로 시너지를 이룰 수도 있을 것으로 전망된다.

-       한편 검증 기법과 관련한 연구는 크게 모델 체킹을 비롯한 전통적인 정형 기법을 최대한 SDN/OpenFlow 문맥에 맞게 최적화하고, 기존 모델 체킹에서 흔히 지적되던 상태 공간 문제를 해결하는 기법을 가미하거나, SDN 문맥에 최적화된 디버깅 기능을 제공하는 것처럼 외부 도구를 활용하는 방식과, FortNOX Kinetic처럼 SDN/OpenFlow컨트롤러와 같은 핵심 구성 요소에 보안 및 신뢰성 보장 모듈을 추가하여, 컨트롤러 동작 과정에서 자동으로 주요 속성을 검증하는 방식으로 구분할 수 있다. 전자의 방법 중 스탠포드 대학 연구팀에서 제시한 HSA 기법은 패킷이라는기본 단위의 특성을 이용하여 범용적인 정적 분석 도구를 개발했다는 점에서, 모델 체킹이나 정리 증명 도구에 의존하는 다른 기법과는 색다른 시도라 볼 수 있다. 또한 ndb FortNOX는 정형 기법과 같은 특별한 배경 지식이 없어도 사용할 수 있을 형태로 구성하거나, 기존 OpenFlow 개발자의 관점을 충실히 반영한 도구를 제공한다는 점에서, 정형 기법이나 함수형 언어에 기반한 기법보다 쉽게 현장에 적용할 수 있을 것으로 예상된다. 또한 현재로선 언어와 검증 기법에 대해 다소 학문적인 접근이 두드러지는 경향을 보이고 있지만, 과거에도 라우팅 관련 policy 설정 및 동작 오류 문제가 꾸준히 제기되었고, 특히 소프트웨어 중심의 혁신을 추구하는 SDN에서는 이를 실현하는 소프트웨어 및 주요 모듈에 대한 동작의 신뢰성이 더욱 강조될 수 밖에 없으므로, 앞으로도 연구 활동의 규모와 활성도가 지금보다 확대될 것으로 전망된다.

 

용어설명

-       정형 기법(Formal Methods) : SW/HW  시스템의  명세와  검증을 위한 수학 및 논리학 기반 기술이다. 소프트웨어 공학의 한 분야로, 계산이론, 프로그래밍 의미론을 비롯한 여러 가지 전산학의 이론에 기반을 두고 있으며, 시스템의 요구사항을 엄격히 만족시키고 신뢰성을 보장해야 하는 실시간 임베디드 시스템을 비롯한 다양한 분야에서 주로 활용된다.

-       정형 의미론(Formal Semantics) : 프로그래밍 언어의 의미를 수학 및 논리학 기반으로 엄밀히 정의한 것으로, 언어 및 컴파일러 구현이나 프로그램 검증에서 주로 활용된다.

-       FRP(Functional Reactive Programming) :  함수형 언어 기반의 반응형(reactive) 프로그래밍을 위한 방법론으로서, 연속적인 시간의 흐름에 따라 동작과 신호가 변하며, 이산적인 이벤트에 반응하는 모델에 기반을 두고 있다.


 

 

 

 

출처 : http://blog.naver.com/offon92?Redirect=Log&logNo=70154018103

           전자통신동향분석 27 6(2012.12)

 

 

 

 

댓글