SDN 프로그래밍기술연구동향 남기혁 (K.H. Nam) 미래인프라표준연구팀선임연구원 신명기 (M.K. Shin) 미래인프라표준연구팀책임연구원 김형준 (H.J. Kim) 미래인프라표준연구팀팀장 강미영 (M.Y. Kang) 고려대학교정보통신기술연구소연구교수 최진영 (J.Y. Choi) 고려대학교융합소프트웨어전문대학원교수 Ⅰ. 서론 Ⅱ. 언어 Ⅲ. 검증기술 Ⅳ. 가상화 Ⅴ. 표준화활동 Ⅵ. 향후연구전망 * 본연구는방송통신위원회및한국방송통신전파진흥원의방송통신기술개발사업의일환으로수행하였음 (KCA-2012-10913-05003, 미래인터넷국제협력연구를위한테스트베드구축 ). 최근네트워킹분야에서활발히연구되고있는 SDN(Software-Defined Networking) 기술에서, 보다편리하고정확한방법으로네트워크를구축하기위한 SDN 프로그래밍기술에대해최근발표된논문을중심으로연구동향을분석한다. 144 2012 한국전자통신연구원
Ⅰ. 서론 OpenFlow 는미국 NSF 의지원으로스탠포드대학에서진행된미래인터넷연구의결과물로서, 라우터나스위치와같은네트워크장치에종속적인형태로제공되던제어기능을논리적으로중앙집중적인형태로분리하여, 표준 API를통해통신하는구조를토대로개발된기술이다 [1]. 현재 OpenFlow 는 SDN(Software-Defined Networking) 이라는보다넓은개념으로확장되어, Google, Facebook, Verizon, Cisco 등과같은업체중심으로새롭게결성된표준화기구인 ONF(Open Networking Foundation) 를통해현실적용에필요한표준규격과기술을개발하고있다 [2]. SDN 과 OpenFlow 는기존네트워킹기술과달리, 간결한메커니즘을토대로, 기존의네트워크장비의보조적인역할을수행하던소프트웨어의역할을보다확대하고, 분산시스템과운영체제, 데이터베이스와같은소프트웨어에서정립된개념을적극적으로도입하여혁신의속도를높일수있는구조와생태계를구성하는데노력하고있다. 이처럼소프트웨어의역할을극대화하여혁신의속도를높일수있다는장점의이면에는, 이러한소프트웨어모듈의오류가전체네트워크에악영향을미칠수있다는위험도존재하는데, 본고에서는 SDN/OpenFlow 에서소프트웨어오류로인한문제를최대한줄이기위해최근활발히연구되고있는 SDN 프로그래밍관련기술동향을언어와검증기법, 가상화라는세가지관점으로분석한다. Ⅱ. 언어 1. FML FML(Flow-based Management Language) 은엔터프라이즈네트워크에적용할정책 (policy) 을선언적인 방식으로정의하기위한목적으로개발된논리기반언어다 [3]. 단순한형태의인터페이스만제공하던기존의라우터나스위치와달리, 네트워크설정및정책 (policy) 을논리기반언어로정의하여, ACL 이나 VLAN, 라우팅정책등을보다쉽고견고하게구현할수있는장점이있으며, 최근등장한 Frenetic 이나 Nettle 등과같은다른 SDN 언어는대부분 FML 에적지않은영향을받았다 [4]-[7]. FML에서는네트워크정책을 if-then 형식의규칙들의집합으로정의하는데, 이때규칙들이서로재귀적으로얽히지않아야한다. 각규칙에대해별도의순서를부여하지않기때문에, 언어에배경지식이부족한네트워크관리자도필요한규칙을나열하는방식으로쉽게작성할수있지만, 이로인해여러개의규칙이서로상충되거나중복되는문제도발생할수있는데, policy cascade 와 conflict resolution 계층을도입하여해결하고있다. FML 논문에서는접근제어, QoS, NAT 등과같은설정을 FML로표현하는예를소개하고있으며, NOX[8] 컨트롤러에기반하여대략 10,000 라인의 C++ 와 Python 코드로프로토타입을구현하였고, 현재 SNAC 컨트롤러의 policy manager 에서도 FML을사용하고있다 [9]. 2. Frenetic, NetCore Frenetic 은 FML이제안된이듬해인 2010년부터프린스턴대학연구팀에서발표한 OpenFlow 전용언어로서, FML과마찬가지로선언적인형태의데이터베이스쿼리언어에기반을두고있다 [4],[10]. Frenetic 은 NOX 컨트롤러의애플리케이션을작성하는과정에서겪는여러가지한계를극복하기위해, 기존언어에서제공하지못한모듈화와단일티어추상화를제공하며, 경쟁조건 (race condition) 에대한처리를 남기혁외 / SDN 프로그래밍기술연구동향 145
( 그림 2) 연속개념적용예 ( 그림 1) Frenetic 구조 언어런타임차원에서지원함으로써, NOX 애플리케이션개발자가원하는작업을구성하는데보다집중할수있다 (( 그림1) 참조 ). Frenetic 은 DATALOG와같은선언적인 DB 쿼리언어와 Yampa[11] 와같은 FRP(Funtional Reactive Programming) 기반언어의영향을받았으며, 컴비네이터라이브러리형태로 policy 를관리할수있다. 이러한특성은뒤에서소개하는 Nettle과유사하다. Frenetic 연구팀에서는 NetCore[5] 라는언어및이론적토대도제안했는데, 사용자편의성과모듈화를비롯한고수준언어의특성을제공하기위한목적으로 NOX 의임베디드언어형태로구현된 Frenetic 과달리, 네트워크모델과정형의미론 (formal semantics) 을이용하여정의한언어를제공함으로써, 고수준의표현을 OpenFlow 규칙형태로변환하는컴파일러제작과, 다양한 policy 에대한정형검증을위한이론적기반을제공한다. 3. Nettle, Procera Nettle 은 Frenetic 과비슷한시기에등장한 Haskell 기반언어로서, OpenFlow 컨트롤러와스위치가서로주고받는이벤트와메시지를하나의스트림으로추상화했다 [6]. 또한 FRP 방식을채용하여이산적인이벤트 ( 그림 3) Procera 구조발생과연속적인시간에따른값이나신호의변화로 SDN 동작을모델링하는특징을가지고있다. Nettle 논문에서는다양한 OpenFlow 응용예를보여주고있는데, 그중에서도로드밸런싱애플리케이션처럼연속적인변화량을다루는경우에도쉽게적용할수있다는장점이있다 (( 그림 2) 참조 ). Procera[7] 는 2012년도에발표된 SDN 언어로 Haskell 기반 FRP 방식의언어라는점에서 Nettle과유사하지만, 보다고수준의표현으로 policy 를정의할수있으며, Lithium[12] 을비롯한네트워크컨트롤러기반으로동작하고시제연산자를통해이벤트히스토리를다룰수있다 (( 그림 3) 참조 ). Ⅲ. 검증기술 1. 개요네트워크에대한검증과테스팅관련연구는 1990년대부터꾸준히발표됐지만, SDN/OpenFlow 문맥에직접적으로관련된연구는최근에활발히진행되고있다. SDN/OpenFlow 가향후널리적용될경우에발생할수있는잠재적인문제점을보완해준다는점에서중요한 146 전자통신동향분석제 27 권제 6 호 2012 년 12 월
연구주제로다룰필요가있으며, 2012년 NSDI 와 SIGCOMM, ONS(Open Networking Summit) 등을통해소개된기법을중심으로소개한다 [13]-[15]. 2. NICE NICE는 OpenFlow 네트워크의프로그래밍오류를검출하기위해, 모델체킹 (model checking) 기반의검증및테스트도구다 [16]. NICE 논문에서는 OpenFlow 네트워크프로그래밍과정에서 ( 그림 4) 와같은경우에발생하는오류를해결할수있도록, 모델체킹기법을활용한검증방법을제안했다 [17]. 또한기호실행기법 (symbolic execution) 을적용하여탐색할상태공간을줄이면서 [18], 좀더 Open- Flow 에적합한구조를통해, SPIN 이나 JPF와같은기존모델체킹도구보다성능을향상시켰다 [19],[20]. NICE에서는 OpenFlow 에최적화된네가지휴리스틱 (huristic) 기법을개발하여, 이벤트발생순서에따른경우의수를크게줄이고, 잠재적인오류를찾는데좀더신경쓸수있도록구성했다. 또한주요검증속성을커스터마이즈하여다양한상황에적용할수있으며, 이렇게구성된속성을라이브러리형태로구축할수도있다. 대표적으로제시된속성으로는포워드루프나블랙홀의존재여부, 경로도달가능성, 패킷손실여부등을제시했다. NICE는대표적인 OpenFlow 컨트롤러인 NOX 를기반으로동작하며 Python 으로구현됐다 [21]. Python 인 터프리터를수정하지않으면서동적으로기호실행기법을처리하기위해 concolic execution 기법을적용했으며 [22], MAC 러닝스위치와웹서버로드밸런서, 에너지효율트래픽제어등의예를통해도구의실제적용가능성을입증했다. NICE는실시간시스템이나하드웨어설계검증에주로적용되던모델체킹기법을 SDN/OpenFlow 문맥에단순히적용하는데그치지않고, SDN 에맞게적용및보완했다는점에서 SDN 에대한모델체킹기법의대표적인사례로손꼽을수있다. 3. Header-Space Analysis HSA(Header Space Analysis) 는네트워크의프로토콜과장치가패킷헤더의내용을토대로동작이결정된다는점에착안하여, 헤더를구성하는비트패턴을다차원의기하공간으로표현하고, 스위치나라우터와같은네트워크장치를거쳐는부분을변환함수로처리하여, 네트워크의동작과속성을정적으로분석하는기법이다 [23]. HSA에서는패킷이최종목적지까지도달하는과정을변환함수의합성으로표현한다 (( 그림 5) 참조 ). 논문에서는 Python 2.6으로 Hassel 이라는라이브러리형태로프로토타입을구현하고 [24], 스탠포드대학 ( 그림 4) OpenFlow 네트워크설정과정에서발생하는문제 ( 그림 5) 변환함수로표현한패킷전달과정 남기혁외 / SDN 프로그래밍기술연구동향 147
백본망에서적용하여도달가능성과포워딩루프, 트래픽분할등과같은속성을검증하고성능을분석했다. Hassel 에서는 Cisco IOS 용파서도제공하는데, 이를사용하면 Cisco 라우터의동작과속성을분석할수있다. HSA 논문에서는엔터프라이즈네트워크검증을위해, 15,000명의학생과 2,000명의교수진이사용하는, 다섯개의 IPv4 기반서브넷으로구성된스탠포드대학백본망을대상으로 Hassel 을적용하여상용단계의적용가능성을시험하고, 12개의무한루프경로를발견하는등, 다양한네트워크설정오류와도달가능성속성을검증했다. 이외에도 Flowvisor[25] 를통해슬라이스 (slice) 단위로가상화하여, VLAN을대체할수있을정도로빠르게새로운가상네트워크를생성할수있는지를 HSA 기법으로분석하여, 아주복잡하지않은슬라이스를기준으로 500개까지빠른속도로처리할수있다는결과를얻었다. 또한새로운프로토콜을설계하는과정에서도 HSA 기법을적용하여, 미래인터넷연구의보조도구로활용할수있는가능성도확인했다. 앞서소개한 NICE 가 SDN/OpenFlow 기반네트워크의실제동작을추상화하여모델체킹과같은기존검증기법을적용하여특정속성에대한반례를찾는데집중하는것과달리, HSA는현재정의된네트워크설정및프로토콜설계에대한패킷의흐름에대한모델을정의하고, 모든패킷에대한동작을정적으로분석하는점이특징이다. 4. Kinetic Kinetic 은네트워크설정의업데이트작업에대한신뢰성향상을위한구조와방법에대해 SIGCOMM 2012 의메인세션에서발표된논문에서제안한기법으로, SDN 의이론적인모델을수학적으로정의하고, 네트워크설정업데이트과정을패킷단위와플로우단위의두단계로추상화하여, 네트워크업데이트과정에발생하 는여러가지동작과관련하여네트워크에서보장해야하는주요속성을엄밀하게분석할수있는이론적인토대를제공했다 [26]. 네트워크업데이트과정을패킷단위로분석할때보장해야할주요속성을 no loops, egress, waypointing, blacklisting 등으로선별하여, 모델체커에서주로사용하는시제논리인 CTL로표현했다. 플로우단위로분석할경우에는 switch rules with timeouts, wildcard cloning, end-host feedback 등으로구분하여메커니즘을분석하여, 기존 OpenFlow 문맥에서제기된여러가지상황에대응할수있는기법을제시했다. 이러한기법은 NOX 컨트롤러위에동작하는 Kinetic 모듈형태로프로토타입을구현하고, Mininet[27] 을이용한가상네트워크환경을통해이를검증했다. Kinetic 은 OpenFlow 1.0을기반으로구현했으며, 앞서소개한두종류의추상화와관련된기능은 per_packet_update 와 per_flow_update 라는함수형태로구현했다. Kinetic 에서는버전정보를기록하기위해 OpenFlow 의 VLAN 필드를사용하는다소제한적인방식으로구현했는데, 1.1 이상의 OpenFlow 규격에서는이러한제약사항을해결할것으로전망된다. 언어및검증과관련하여탄탄한이론적인토대를마련하고, 업데이트와관련된 SDN 의전반적인동작과정에대한세밀한분석을통해다양한메커니즘을제시했다는점에서큰의의가있으며, 당장구체적인형태로구현하기에는다소복잡한면이없지않으나, 향후이를뒷받침할만한다양한도구와기법의결합을통해강력한플랫폼으로성장할수있는잠재력이있고, Frenetic 연구팀에서제안한점을감안할때, Frenetic 이나 Nettle 플랫폼과결합되는형태로도발전할가능성이있다. 5. FortNOX, VeriFlow FortNOX 는다양한보안위협상황과부주의한네트 148 전자통신동향분석제 27 권제 6 호 2012 년 12 월
워크설정으로인한 OpenFlow 규칙간의충돌을실시간으로검사하기위해, SRI 와 Texas A&M 대학의공동연구팀에서개발한 NOX 컨트롤러의확장한모듈이다 [28]. Flowvisor[25] 와같은가상화기법을이용하여플로우단위로구분한가상네트워크 ( 슬라이스 ) 가서로간섭하지않도록최소한의보안속성을보장하는데그치지않고, 하나의슬라이스안에서도여러가지보안속성을보장해줄수있도록, NOX 에서 OpenFlow 커맨드를네트워크장치로전달하기전에, 역할기반소스인증을수행하는모듈과, 여러개의규칙간의충돌상황을감지하고회피하기위한규칙최적화단계를추가했다. FortNOX 는앞서언급한기능을기존 NOX 컨트롤러의 send_openflow_command 함수에 500 라인가량의코드를추가한형태로구현하여, 이과정을통과한플로우규칙이나명령만네트워크장치로전달하고, 그렇지않은것은반환하도록구현했다. 이러한기능을수행하기위해플로우규칙을저장하고, 보안속성을관리하는모듈도부가적으로구현했다. VeriFlow 역시 FortNOX 와마찬가지로네트워크에대한주요속성을실시간으로검증하는기법으로서, 컨트롤러와네트워크장비사이의계층에서동작하며, 검증으로인한지연시간을최소화하기위한기본메커니즘을제시하고, Mininet으로프로토타입을검증했다 [27], [29]. 로상태가변하는 L2 러닝스위치나 L3 라우팅에서는다양한분산프로토콜에기반한복잡한상태를재현하기에는한계가있다. 더구나다른검증기법관련논문에서공통적으로지적하듯이, 논리적으로중앙집중적인구조를가진제어기를통해다양한네트워크장치의설정과상태를관리하는 SDN 에서는, 이를구성하는소프트웨어의정확한동작이매우중요하므로, 기존소프트웨어분야에서축적된노하우를적극수용할필요가있다. 현재 GCC를이용한오픈소스소프트웨어를개발할때, gdb 라는디버거를많이활용한다는점에착안하여, 정형기법을적용하는다른기법보다좀더실용적인접근방식을취하여, breakpoint, backtrace, single-step, watch, continue 등과같은 gdb 의기능을 SDN 기반의네트워크문맥으로재구성하여, 포워딩상태와패킷로그조작을통해에러의원인이되는부분을추적할수있다. ndb는 backtrace 를구성할수있도록, 패킷이스위치와같은특정한네트워크장치를지나칠때마다 postcard라는메시지를전달하여, 이론상모든플로우의시작점에해당하는패킷마다특정한표시를남기는효과를구현했다. 따라서 ndb 는 ( 그림 6) 에서보는바와같이, 장치를제어하는메시지를전달하는동시에, 각장치에서전송되는 postcard와개발자가지정한 breakpoint 를수집관리하는모듈로구성된다. 그러나이러한 6. ndb ndb는오픈소스소프트웨어에서많이사용하는 gdb 라는디버거에서힌트를얻어, 스탠포드대학연구팀에서개발한 SDN/OpenFlow 네트워크를위한디버거다 [30]. 네트워크에서디버깅작업은수행하기까다로운것으로악명이높은데, ping이나 traceroute, tcpdump, netflow 등에서제공하는기본적인기능만으로는, 수시 ( 그림 6) ndb 구조 남기혁외 / SDN 프로그래밍기술연구동향 149
과정에서플로우테이블과패킷에대한모호성이발생할수밖에없는데, ndb 구현과정에서이러한문제를해결하기위한몇가지테크닉을제안했으며, ndb 구현과정에서병렬적인상황에서플로우테이블을 atomic 하게업데이트하는기능과, L2 캡슐화기능, 포워딩액션에대한추가기능등과같은, 현재 OpenFlow 규격에대한개선점도도출했다. 현재는기본적인기능구현을통해기술검증수준의프로토타입을제시했지만, ndb 논문에서지적한개선사항을반영하고, JTAG 과같은하드웨어지원도뒷받침된다면, SDN/OpenFlow 네트워크의디버깅작업에핵심적인도구로발전할가능성이있다. Ⅳ. 가상화앞서살펴본 SDN 프로그래밍언어및검증도구는결국 SDN/OpenFlow 환경과밀접하게연계하여동작할수밖에없다. 특히이러한환경을제공하기위한플랫폼에서는네트워크가상화를주요요소기술로다루고있는데, SDN 가상화관련논문과오픈소스기반소프트웨어스위치인 Open vswitch, 그리고클라우드를위한오픈인터페이스기반플랫폼인 OpenStack 을중심으로가상화관련기술동향도간략히정리한다. 1. 슬라이스추상화네트워크가상화와관련하여 GENI 프로젝트와 Open- Flow 의가상화솔루션인 Flowvisor 등에서슬라이스라는용어를사용하는데 [25], 각문맥마다의미하는바가약간씩다르긴하나, 가상네트워크들이서로방해하지않는형태의모델에기반을둔다는점은공통적이다. 2012년 SIGCOMM HotSDN 워크숍에서발표된논문에서는, VLAN과같은저수준의메커니즘에의존하는현재의네트워크가상화기술을대체할수있도록, 슬라 이스라는네트워크추상화단위를프로그래밍모델차원에서지원하는새로운메커니즘을제시했다 [31]. 이논문에서는앞서소개한 Frenetic/NetCore 언어를이용한슬라이스단위의가상네트워크모델을정의하고, 이렇게표현된네트워크명세를 OpenFlow 스위치코드로변환하는컴파일러와, 이과정의정확성을검증하기위한기법을제안했다. 슬라이스컴파일러에대한프로토타입은웹에공개했으며 [32], 컴파일러의정확성에대해서는직접검증하지않고, translation validation 과같은접근방식을취하여, 고수준언어로명세한네트워크모델이만족해야하는속성을 CTL 이라는시제논리로표현하여 NuSMV 라는모델체커로검증할수있는방안도제시했다 [33]-[35]. 2. Open vswitch Open vswitch(ovs) 는오픈소스프로젝트로활발히개발하고있는, 네트워크가상화를위한소프트웨어스위치다 [36],[37]. OVS 는 Xen과같은가상머신을위한소프트웨어스위치로출발하여, 현재는 OpenStack 기반의클라우드나데이터센터를위한가상네트워크를구성하는데필요한기능도추가됐다 [38]. 특히가상머신간의동적인네트워크를구성하기위해서 STT (Stateless Transport Tunneling) 라는터널링프로토콜과 OpenFlow 제어및관리를위한데이터베이스모듈인 OVS-DB 에대해 IETF 기고서형태로발표했으며 [39],[40], 본격적인 NaaS(Network as a Service) 서비스를위한핵심모듈로자리잡고있다. 현재는 Open- Flow 프로젝트에참여했던스탠포드대학출신연구원을주축으로구성된스타트업인 Nicira Networks 에서 OpenStack Quantum과관련하여연구개발이활발히진행되고있으며, 2012년상반기에 VMWare에합병되어 VXLAN 과같은기존기술과시너지를이룰것으로예상된다. 150 전자통신동향분석제 27 권제 6 호 2012 년 12 월
3. OpenStack 최근몇년간소프트웨어분야에서끊임없이등장하는키워드로클라우드를빼놓을수없는데, 여기서도 SDN 기술은중요한역할을담당하고있다. 최근 Amazon EC2와 Citrix의 CloudStack 과더불어, 대표적인플랫폼으로 OpenStack 이등장하고있는데 [38], 컴퓨팅과스토리지, 네트워크등을담당하는이종모듈끼리메시지큐와 REST API 기반의플랫폼독립적인인터페이스로상호작용함으로써, Xen 을비롯한다양한요소기술을구현한상용및오픈소스제품을최대한수용하면서기술개선의속도를높일수있는구조를가진것이큰특징이다. SDN/OpenFlow 기술은 OpenStack 의네트워크가상화를담당하는 Quantum에서중요한역할을담당하고있으며, Nicira Networks 에서 Open vswitch 와관련하여 Quantum 프로젝트에도적극적으로참여하고있으며, 자사의상용플랫폼인 NVP에서도 OpenStack 과의연동을지원하고있다. Ⅴ. 표준화활동 SDN 프로그래밍기술은학회나 ONS[15] 뿐만아니라, ITU-T나 IETF 등과같은표준화기구에서도논의되고있다. ONF[2] 에서는언어나검증기술에대해토론그룹에서잠시논의된바있지만, 현재는 SDN 의핵심요소기술에보다주력하고있다. ITU-T에서는미래네트워크를연구하는 SG13/Q.21 그룹에서 SDN 을위한프레임워크와정형명세및검증요구사항에대한기고서가제안되어표준문서작업을시작하고있으며 [41],[42], 이와관련하여 ONF 와도문서의방향과활동방식에대해두차례의 liaison 교환을통해논의된바있다. 인터넷기술에대한표준기구로서대표적인 IETF에서도올해상반기에결성된 SDN RG를통해학계와업 계의 SDN 에대한주요방향과프레임워크에대해활발히논의되었으며, ETRI에서는 SDN 을위한정형언어에대한기고도발표한바있다 [43]. Ⅵ. 향후연구전망지금까지 SDN/OpenFlow 기술실현의주요수단으로등장한프로그래밍기술을언어와검증기법, 가상화관점에서간략히살펴봤다. 우선 SDN 언어는 FRP 기반의 Nettle, Procera, Frenetic 과 logic 기반의 FML의두갈래로구분할수있는데, 모두 DATALOG와같은선언적인형태의 DB 쿼리언어에기반을두고있으며, 현재활발히연구되는 Frenetic 과 Nettle, Procera만을보면모두 FRP 기법을적용하고있다. 특히 Nettle은언어뿐만아니라컨트롤러프레임워크의의미도강한데, 향후 Frenetic 이나 NetCore 와결합하여서로시너지를이룰수도있을것으로전망된다. 또한현재활발히개발되고있는 FRP 기반언어와달리, 프로세스대수등과같은다른형태의접근방법도시도되고있는데 [44], 이를통해함수형언어기반의 FRP 방식의한계를점검할수있을뿐만아니라, 새로운언어의개발을촉진하여 SDN/OpenFlow 생태계에기여한다는점에서의미가있을것이다. 한편검증기법과관련하여현재활발히진행되고있는연구는크게모델체킹을비롯한전통적인정형기법을최대한 SDN/OpenFlow 문맥에맞게최적화하고, 기존모델체킹에서흔히지적되던상태공간문제를해결하는기법을가미하거나, SDN 문맥에최적화된디버깅기능을제공하는것처럼외부도구를활용하는방식과, FortNOX 나 Kinetic 처럼 SDN/OpenFlow 컨트롤러와같은핵심구성요소에보안및신뢰성보장모듈을추가하여, 컨트롤러동작과정에서자동으로주요속성을검증하는방식으로구분할수있다. 전자의방법중스탠포드대학연구팀에서제시한 HSA 기법은패킷이라는 남기혁외 / SDN 프로그래밍기술연구동향 151
기본단위의특성을이용하여범용적인정적분석도구를개발했다는점에서, 모델체킹이나정리증명도구에의존하는다른기법과는색다른시도라볼수있다. 또한 ndb 와 FortNOX 는정형기법과같은특별한배경지식이없어도사용할수있을형태로구성하거나, 기존 OpenFlow 개발자의관점을충실히반영한도구를제공한다는점에서, 정형기법이나함수형언어에기반한기법보다쉽게현장에적용할수있을것으로예상된다. 언어와검증기법은서로별개의연구주제로다룰수도있지만, 언어의의미론을잘정의하면, 보다원활한검증을수행할수있는토대를제공한다는측면에서서로밀접하게관련이있다. 가령, SDN 전용언어를정형의미론에기반하여정의하면, 보다엄밀한분석을수행할수있을뿐만아니라, 일반언어로구현할때보다모델체커나정리증명기와보다손쉽게결합할수있다는장점이있다. 다만정형적인특성과검증도구구현의용이성에치우치면, 네트워크프로그래머의학습곡선이높아져사용자편의성이떨어질가능성이있는데, 상용화를염두에둔도구를개발할경우, 이러한상반된특성을잘조합하는것이중요한요소로작용할것이다. 또한현재로선언어와검증기법에대해다소학문적인접근이두드러지는경향을보이고있지만, 과거에도라우팅관련 policy 설정및동작오류문제가꾸준히제기되었고 [45],[46], 특히소프트웨어중심의혁신을추구하는 SDN 에서는이를실현하는소프트웨어및주요모듈에대한동작의신뢰성이더욱강조될수밖에없으므로, 앞으로도연구활동의규모와활성도가지금보다확대될것으로전망된다. 표준화기구입장에서도 SDN 을실현하기위한구조와프레임워크, 프로토콜, 그리고이를위한 HW/SW 규격에대한이슈를중심으로논의되고있으며, 오픈소스및산업계중심의생태계형태로서발전을추구한다는점에서표준화에대한중요성이아직부각되고있지않지만 [47], 최근캐리어네트워크사업자를중심으로 결성된 ETSI 산하의 NFV 그룹이나 Cisco 나 Huawei, Ericsson에서제안한 SDN 모델에서다양한네트워크장비의유기적인결합으로고차원서비스와기능을효율적인구현을추가한다는점을감안할때 [48],[49], 앞으로다양한언어와프레임워크가등장할뿐만아니라, 향후표준화기구에서도지속적으로토론이이루어질것으로전망된다. 용어해설 정형기법 (Formal Methods) SW/HW 시스템의명세와검증을위한수학및논리학기반기술이다. 소프트웨어공학의한분야로, 계산이론, 프로그래밍의미론을비롯한여러가지전산학의이론에기반을두고있으며, 시스템의요구사항을엄격히만족시키고신뢰성을보장해야하는실시간임베디드시스템을비롯한다양한분야에서주로활용된다. 정형의미론 (Formal Semantics) 프로그래밍언어의의미를수학및논리학기반으로엄밀히정의한것으로, 언어및컴파일러구현이나프로그램검증에서주로활용된다. FRP(Functional Reactive Programming) 함수형언어기반의반응형 (reactive) 프로그래밍을위한방법론으로서, 연속적인시간의흐름에따라동작과신호가변하며, 이산적인이벤트에반응하는모델에기반을두고있다. 약어정리 FML FRP NaaS ONF ONS OVS SDN STT 참고문헌 Flow-based Management Language Funtional Reactive Programming Network as a Service Open Networking Foundation Open Networking Summit Open vswitch Software-Defined Networking Stateless Transport Tunneling [1] N. McKeown et al., OpenFlow: Enabling Innovation in Campus Networks, ACM SIGCOMM CCR, vol. 38, no.2, Apr. 2008. [2] ONF. http://www.opennetworking.org [3] T.L. Hinrichs et al., Practical Declarative Network Management, WREN, 2009, pp. 1-10. [4] N. Foster et al., Frenetic: A Network Programming Language, ICFP, Sept. 2011, pp. 279-291. 152 전자통신동향분석제 27 권제 6 호 2012 년 12 월
[5] C. Monsanto et al., A Compiler and Run-time System for Network Programming Languages, POPL, Jan. 2012, pp. 217-230. [6] A. Voellmy and P. Hudak. Nettle: Functional Reactive Programming of OpenFlow Networks, PADL, Jan. 2011. [7] A. Voellmy, H. Kim, and N. Feamster. Procera: A Language for High-level Reactive Network Control, SIGCOMM HotSDN, Aug. 2012. [8] N. Gude et al., NOX: Towards an Operating System for Networks, SIGCOMM CCR, vol. 38, no. 3, July 2008, pp. 105-110. [9] OpenFlowHub, SNAC. http://www.openflowhub.org/d isplay/snac/snac+home [10] Frenetic. http://frenetic-lang.org [11] A. Courtney, H. Nilsson, and J. Peterson. The Yampa Arcade, Haskell Workshop, Aug. 2003, pp. 7-18. [12] H. Kim et al., Lithium: Event-driven Network Control, SCS Technical Report, GT-CS-12-03, Georgia Institute of Technology, 2012. [13] NSDI 2012. https://www.usenix.org/conference/nsdi12 [14] SIGCOMM 2012. http://conferences.sigcomm.org/sig comm/2012/ [15] ONS 2013. http://www.opennetsummit.org [16] M. Canini et al., A NICE Way to Test OpenFlow Applications, NSDI, Apr. 2012. [17] E.M. Clarke, E.A. Emerson, and A.P. Sistla, Automatic Verification of Finite-state Concurrent Systems Using Temporal Logic Specifications, ACM Trans. Programming Languages Syst. (TOPLAS), vol. 8, no. 2, Apr. 1986, pp. 244-263. [18] S. Bucur et al., Parallel Symbolic Execution for Automated Real-World Software Testing, EuroSys, 2011, pp. 183-198. [19] G. Holzmann, The Spin Model Checker Primer and Reference Manual, Addison-Wesley, Reading, Massachusetts, 2004. [20] W. Visser et al., Model Checking Programs, Automated Softw. Eng., vol. 10, no. 2, 2003, pp. 203-232. [21] NICE. http://code.google.com/p/nice-of/ [22] P. Godfroid, N. Klarlund, and K. Sen, DART: Directed Automated Random Testing, PLDI, 2005, pp. 213-223. [23] P. Kazemian, G. Varghese, and N. McKeown, Header Space Analysis: Static Checking for Networks, NSDI, Apr. 2012. [24] http://stanford.edu/~kazemian/hassel.tar.gz [25] R. Sherwood et al., Can the Production Network Be the Testbed?, OSDI, 2010. [26] M. Reitblatt et al., Abstraction for Network Update, SIGCOMM, Aug. 2012, pp. 323-334. [27] Mininet. http://openflow.org/mininet [28] P. Porras et al., A Security Enforcement Kernel for OpenFlow Networks, HotSDN, Aug. 2012, pp. 121-126. [29] A. Khurshid et al., VeriFlow: Verifying Networkwide Invariants in Real Time, HotSDN, Aug. 2012, pp. 49-54. [30] N. Handigol et al., Where is the Debugger for My Software-defined Network?, HotSDN, Aug. 2012, pp. 55-60. [31] S. Gutz et al., Splendid Isolation: a Slice Abstraction for Software-defined Networks, HotSDN, Aug. 2012, pp. 79-84. [32] https://github.com/frenetic-lang/slices [33] A. Pnueli, M. Siegel, and E. Singerman, Translation Validation, Int. Conf. Tools Algorithms Construction Anal. Syst. (TACAS), Lisbon, Portugal, Mar. 1998, pp. 151-166. [34] A. Cimatti et al., NuSMV 2: An Opensource Tool for Symbolic Model Checking, Int. Conf. Comput. Aided Verification (CAV), Copenhagen, Denmark, July 2002, pp. 359-364, [35] E.M. Clarke, E.A. Emerson, and A.P. Sistla, Automatic Verification of Finite-state Concurrent Systems Using Temporal Logic Specifications, ACM Trans. Programming Languages Syst. (TOPLAS), vol. 8, no. 2, Apr. 1986, pp. 244-263. [36] B. Pfaff et al., Extending Networking into the Virtualization Layer, HotNets, 2009. [37] Open vswitch http://www.openvswitch.org [38] OpenStack. http://www.openstack.org [39] B. Davie and J. Gross, A Stateless Transport Tunneling Protocol for Network Virtualization (STT), draft-davie-stt-02, Aug. 31th, 2012. http://tools.ietf. org/html/draft-davie-stt-02 [40] B. Pfaff and B. Davie, The Open vswitch Database Management Protocol, draft-pfaff-ovsdb-proto-00, Aug. 20th, 2012. http://tools.ietf.org/html/draft-pfaff- 남기혁외 / SDN 프로그래밍기술연구동향 153
ovsdb-proto-00 [41] Draft Recommendation of Y.FNsdn, Framework of Software-Defined Networking for Carrier Networks in Future Networks, ITU-T. [42] Draft Recommendation of Y.FNsdn-fm, Requirement of Formal Specification and Verification Methods for SDN, ITU-T, 2012. [43] M.-K. Shin et al., Formal Specification for Software- Defined Networks (SDN), draft-shin-sdn-formalspecification-01, June 29th, 2012. http://tools.ietf.org/ html/draft-shin-sdn-formal-specification-01 [44] M. Kang et al., Formal Specifications for Software- Defined Networking, Proc. 7th Int. Conf. Future Internet Technol. (CFI), Sept. 2012, pp. 51-52. [45] T. Benson, A. Akella, and A. Shaikh. De-mystifying Configuration Challenges and Trade-offs in Network-based ISP Services, SIGCOMM Comput. Commun. Review, vol. 41, no. 4, Aug. 2012, pp. 302-313. [46] R. Mahajan, D. Wetherall, and T. Anderson. Understanding BGP Misconfiguration, Proc. ACM SIGCOMM, Pittsburgh, PA, Aug. 2002, pp. 3-17. [47] Network Heresy, What Might an SDN Controller API Look Like? (and should we standardize it?), Aug. 9th, 2011. http://networkheresy.com/2011/08/09/what-m ight-an-sdn-controller-api-look-like-and-should-w e-standardize-it/ [48] OFN, Network Function Virtualisation group, Oct. 23th, 2012. https://www.opennetworking.org/?p=380 &option=com_wordpress&itemid=72 [49] Broadband World Forum, 2013. http://www.broadban dworldforum.com/conference/presentations/ 154 전자통신동향분석제 27 권제 6 호 2012 년 12 월