SFV: 네트워크가상화를위한플로우바이저의지연시간감소및확장성향상연구369 SFV: 네트워크가상화를위한플로우바이저의지연시간감소및확장성향상연구 (SFV: Scalable FlowVisor Platform for Latency Reduction and Network Virtualization) 김동현 이문영 (Donghyun Kim) (Munyoung Lee) 곽명철 권태경 (Myungchul Kwak) (Taekyoung Kwon) 최양희 (Yanghee Choi) 요약현재인터넷은통신환경의급격한변화와새로운서비스의출현, 사용자의요구사항증대로더욱다양하고혁신적인서비스와기능및자원들을지원할수있는기술이요구되고있다. 네트워크가상화는네트워크의물리적자원을가상화하는동시에여러가상네트워크들이공존할수있도록하는역할을하는대표적인기술이다. 본논문에서는네트워크가상화를위해사용되는플랫폼중의 이논문은 2013년도정부 ( 교육과학기술부 ) 의재원으로한국연구재단의지원을받아수행된기초연구사업임 (No.2013R1A2A2A01016562) 이논문은제40회추계학술발표회에서 네트워크가상화를위한플로우바이저플랫폼확장성연구 의제목으로발표된논문을확장한것임 학생회원 : 서울대학교컴퓨터공학부 dhkim@mmlab.snu.ac.kr 비회원 : 서울대학교컴퓨터공학부 mylee@mmlab.snu.ac.kr mckwak@mmlab.snu.ac.kr 종신회원 : 서울대학교컴퓨터공학부교수 tkkwon@snu.ac.kr (Corresponding author임 ) yhchoi@snu.ac.kr 논문접수 : 2014년 1월 22일심사완료 : 2014년 3월 19일 CopyrightC2014 한국정보과학회 ː개인목적이나교육목적인경우, 이저작물의전체또는일부에대한복사본혹은디지털사본의제작을허가합니다. 이때, 사본은상업적수단으로사용할수없으며첫페이지에본문구와출처를반드시명시해야합니다. 이외의목적으로복제, 배포, 출판, 전송등모든유형의사용행위를하는경우에대하여는사전에허가를얻고비용을지불해야합니다. 정보과학회논문지 : 컴퓨팅의실제및레터제20권제6호 (2014.6) 하나인플로우바이저 (FlowVisor) 에서발생하는메시지지연문제의원인을분석한다. 또한개선된탐색과정을통해지연시간이감소하고엔트리확장성이증가된 SFV(Scalable Flowvisor) 를제안하고성능을검증한다. 키워드 : 네트워크가상화, SDN, 오픈플로우, 플로우바이저 Abstract The rapid changes of communication environments and users requirements need novel technologies for the current Internet in order to support various innovative services with limited network resources. A network virtualization is considered to be a promising solution that virtualizes the network resources to be shared among multiple virtual networks. In this paper, we study message latency of FlowVisor that is one of network virtualization platforms. Moreover, we propose a Scalable FlowVisor (SFV) scheme which reduces the latency of FlowVisor with enhanced entry look up process. It is, with measurement results with a network emulator, shown that our scheme can enhance the entry scalability of FlowVisor. Keywords: Network Virtualization, SDN, OpenFlow, FlowVisor 1. 서론 현재인터넷에서데이터가목적지에도착하기위해서는패킷이여러사업자의라우터와스위치를거쳐서목적지까지전달되어야한다. 그런데, 인터넷을구성하는라우터와스위치는장비를생산하는업체에따라사용방식이나인터페이스설정방법등에차이가있기때문에네트워크사업자들은관리의편의성을위해특정회사제품만지속적으로구입하거나개방형인터페이스를갖춘고가의동기화시스템을구입해야하는경우가많았다. 최근에는네트워크가상화기술을통해네트워크서비스를네트워크라우팅기능과하드웨어기반의스위치로분리하여이러한문제점을해결하려는시도가있다 [1,2]. 가상화기술을적용하면다수의물리적자원을하나의논리적장치로사용하거나하나의물리적자원을복수의서로다른용도로분할하여사용하는것이가능하다는특징이있다. 이러한가상화기술의특징을기반으로하여 SDN (Software Defined Networking)[3,4] 이제안되었다. SDN은컨트롤플래인의분리및중앙집중형제어방식으로의패러다임변화를통해현재인터넷이폭넓게보장하지못하고있는개방성과관리효율성을지원하는것이목적이다. 통신사업자나네트워크운영자입장에서는가상화기술의유연한네트워킹자원할당및 SDN의중앙집중형제어방식을통해전체네트워크를포괄하는하향식관점에서보다더효율적으로네트워
370 정보과학회논문지 : 컴퓨팅의실제및레터제 20 권제 6 호 (2014.6) 크를관리할수있다는이점을얻을수있다. 네트워크를가상화하기위해개발된플로우바이저플랫폼 (FlowVisor Platform)[5] 은 SDN 패러다임하에서컨트롤플래인상의다수의콘트롤러들과물리적인네트워킹자원들로구성되어있는포워딩플래인사이에위치하여동작한다 [6]. 플로우바이저의역할은가상화된네트워크를슬라이스라는논리적단위로나누고, 전달된패킷이어떤슬라이스에서요청된것인지판단하여해당슬라이스를관리하는컨트롤러로요청을보내전달경로를설정하는것이다. 플로우바이저플랫폼의대표적인기술적요구사항은엔트리확장성이다. 즉, 가상화된네트워크가많거나등록된플로우엔트리가많을때에도요청된패킷들을빠르게처리하는것이필수적이다. 하지만플로우바이저에다수의슬라이스와플로우엔트리를삽입하고패킷처리시간을측정해본결과, 엔트리숫자가늘어날수록포워딩플래인과컨트롤플래인사이에서교환되는 메시지의지연현상 이발생하는것을알수있었다. 이는플로우바이저가하나의패킷플로우를처리할때각슬라이스와등록된플로우엔트리를모두탐색하는방식으로동작하기때문이다. 따라서현재의플로우바이저는지연시간이길어질수밖에없는한계성을내포한다. 본논문에서는, 플로우바이저의엔트리확장성을높히기위해탐색시간단축알고리즘을적용한 SFV(Scalable Flowvisor) 를제시한다. 본논문은총 6절로구성되어있다. 2절에서는네트워크가상화에대한설명과관련연구, 오픈플로우, 플로우바이저플랫폼에대해기술한다. 3절에서는메시지지연발생문제에대한현상을분석하고, 4절에서는탐색시간을줄이기위한개선기법을제안한다. 5절에서는제안한기법을적용한실험과그결과를기술하고, 마지막 6절에서결론을맺고향후연구과제에대해서검토한다. 프라와인터넷서비스제공자를분리할수있게해준다. 즉, 네트워크가상화는물리적인네트워크장비를여러대설치하는대신하나의네트워크장비가여러네트워크에포함될수있도록컨트롤플래인과하드웨어포워딩플래인을분리한다. 이기술을이용하면하나의물리적인네트워크위에서다양한가상네트워크가존재하여독립적으로특정목적의기능을수행할수있고, 필요에따라상호연동도가능하다. 따라서네트워크사업자가특정회사제품에한정되어네트워크를운영하거나값비싼동기화시스템을구축할필요가없다. 또한, 중앙집중형제어방식을통해쉽게모든네트워크장비에접근및관리할수있다. 2.2 오픈플로우 (OpenFlow) 오픈플로우는 NOX[7], Floodlight[8], Maestro[9] 등을이용해구현된중앙컨트롤러가제어기능이분리된스위치에흐르는네트워크플로우들을제어하고쉽게모니터링할수있도록네트워크스위치 ( 혹은라우터 ) 와컨트롤러간의통신을위한프로토콜을제공한다. 그림 1은오픈플로우기반네트워크의제어기능중가장대표적인플로우셋업과정을나타낸것이다. 어떤플로우가스위치에도착했을때, 플로우엔트리테이블에해당경로정보가존재할경우에는정해진경로로패킷을전송한다. 스위치의플로우엔트리테이블은컨트롤러에의해설정된다. 만약테이블에해당플로우에매칭되는플로우엔트리가없는경우, 스위치는독자적으로라우팅등의네트워크제어연산을수행할수없기때문에 Secure Channel 을통해해당플로우에대한정보를컨트롤러로전송하고, 컨트롤러는해당플로우에대한경로를계산하여플로우엔트리를스위치로전송하는과정을거치게된다. 2. 관련연구 2.1 네트워크가상화 (Network Virtualization) 스마트폰, 랩탑, 태블릿등개인모바일기기의빠른보급은네트워크에서발생하는트래픽을급증시키고있다. 이에따라통신사업자들은원활한서비스제공을위해네트워크용량을지속적으로확장해왔다. 최근에는사업자들이단순히네트워크용량을확장하기보다네트워크가상화기술을도입하여이문제를근본적으로해결하려노력하고있다. 또한기업내에서퍼블릭클라우드혹은프라이빗클라우드를이용한솔루션의도입이늘어나면서네트워크자원공유에대한수요또한증가하고있다. 네트워크가상화는가상자원공유를위해물리적인 그림 1 오픈플로우스위치의플로우셋업과정 Fig. 1 Flow setup process of Openflow switch 2.3 플로우바이저 (FlowVisor) 플로우바이저 [5] 는오픈플로우기반의대표적인스위치가상화기술 [6] 로, 같은하드웨어포워딩플래인을다수의논리적인포워딩로직이공유하고컨트롤할수
SFV: 네트워크가상화를위한플로우바이저의지연시간감소및확장성향상연구371 그림 2 컴퓨터가상화및스위치가상화계층도 Fig. 2 Computing/switch virtualization architecture 있도록하는플랫폼이다. 그림 2는플로우바이저의가상화방식을컴퓨터가상화방식과비교한계층도이다. 먼저왼쪽그림은독립적인운영체제를갖는여러대의가상머신 (Virtual Machine) 들이물리적인자원즉, CPU, 메모리, 하드디스크등을하이퍼바이저를통해분할해서사용하는컴퓨터가상화기술을의미한다. 그림 2의오른쪽그림은플로우바이저의네트워크가상화방식을나타낸것으로플로우바이저는왼쪽그림의컴퓨팅자원가상화기술과유사하게물리계층인스위치하드웨어와이를컨트롤하는독립적인개체인컨트롤러및컨트롤어플리케이션사이에위치하며, 오픈플로우프로토콜을통해다수의가상네트워크가물리적스위치를공유하도록중재하는역할을한다. 3. 플로우바이저의메시지교환지연문제플로우바이저는네트워크의스위치와링크등의물리적인자원을슬라이스라는단위로나누어다수의컨트롤러에게할당한다. 또한스위치에서보내는오픈플로우메시지를해당슬라이스에속한컨트롤러로전송하여스위치의동작을제어하는역할을한다. 이를위해플로우바이저는컨트롤러마다해당되는슬라이스와플로우스페이스테이블을유지하게된다. 각슬라이스는네트워크트래픽의일부를컨트롤할수있으며, 각트래픽플로우를구별하기위해패킷헤더에존재하는 TCP 포트, MAC 주소와 IP주소를이용해플로우스페이스를구성하게된다. 하지만슬라이스의숫자가증가하고등록된플로우스페이스가많아질수록스위치에서컨트롤러로경로정보를요청하고받는 메시지교환지연현상 이발생한다는문제가존재하였다. 이현상을분석하기위해플로우엔트리를요청하고받는메시지교환과정을살펴보자면, 그림 3과같다. (1) 클라이언트가패킷을전송했을때스위치에플로우엔트리가존재하지않는다면, (2) 스위치는컨트롤러로경로정보를요청하게된다. (3) 이때플로우바이저는스위치와컨트롤러사이에서이메시지를가로챈후패킷에대한플로우스페이스를판별하여해당슬라이스의컨트롤러로메시지를전송해준다. (4) 컨트롤러에서패킷처리에대한 룰정보가담긴플로우엔트리를스위치로전송할경우, (5) 플로우바이저는이룰이담긴메시지를전달받아서해당슬라이스자원에적합한룰인지를판별하여요청한스위치로전송한다. 이와같은메시지교환과정에서플로우바이저는스위치에서컨트롤러로플로우엔트리요청메시지를전달할때와컨트롤러에서스위치로플로우엔트리설정메시지를전송할때두번의플로우스페이스탐색을수행한다. 그런데이탐색을수행할때, 플로우바이저에서는각슬라이스마다할당된플로우스페이스엔트리를순차검색하도록구현이되어있는것을발견할수있었다. 즉, 하나의슬라이스의플로우스페이스를찾더라도전체엔트리를탐색하도록구현이되어있기때문에엔트리수가증가함에따라불필요하게지연시간이증가하는문제를확인할수있었다. 실제로 Mininet[9] 을이용하여가상의토폴로지를생성하고, FlowVisior자바오픈소스와 C++ 기반의 NOX컨트롤러를연동한후 ( 자세한실험환경은 5절의내용과동일하다 ), 오픈플로우의메시지지연시간을측정해보았을때등록된플로우엔트리의수가많아질수록지연시간이증가하는것을확인할수있었다. 즉, 그림 4와같이 1개의플로우스페이스엔트리를보유할경우평균약 1.9ms의지연시간이발생하지만 1,000개의엔트리가등록되어있을경우에는평균약 2.4ms로지연시간이발생하는것을알수있었다. 또한, 3,000, 6,000엔트리의경우약 3.0ms, 4.0ms으로지연시간이계속증가하는것으로나타났다. 이는플로우바이저가일치하는플로우스페이스엔트리를찾기위해다른슬라이스의중복된엔트리까지검색하도록구현되어있기때문에, 엔트리수가증가함에따라탐색해야하는테이블의정보가많아져지연시간이증가하는것으로추측되었다. 이는곧네트워크인프라를여러사업자가공유할경우, 엔트리증가로인한플로우바이저의확장성문제로나타날수있다. 그림 3 플로우바이저메시지교환과정 Fig. 3 Message exchange process of FlowVisor
372 정보과학회논문지 : 컴퓨팅의실제및레터제 20 권제 6 호 (2014.6) 그림 4 플로우스페이스엔트리개수에따른메시지교환지연시간 Fig. 4 Message exchange latencies according to number of flowspace entries 4. Scalable FlowVIsor(SFV) 본연구에서는플로우바이저의엔트리확장성및메시지지연발생문제해결을위해컨트롤러에서스위치방향으로룰이전송될때의탐색과정을개선한 Scalable FlowVisor (SFV) 를제안한다. 스위치에서컨트롤러로올라가는상향탐색과정은메시지가속하는컨트롤러를판단하는과정이지만하향탐색과정의경우, 룰메시지를전송하는컨트롤러의이름을알수있기때문에플로우바이저내부에서해당컨트롤러의플로우스페이스엔트리만검색하여탐색시간을단축할수있다. 그림 5는플로우바이저오픈소스의탐색과정을개선한 SFV의핵심부분을 pseudo code로나타낸것이다. 기존플로우바이저는컨트롤러에서경로정보가담긴오픈플로우메시지를전달받은후, 등록되어있는모든플로우스페이스엔트리를순차탐색하지만, SFV는플로우스페이스엔트리탐색과정을진행하기이전에메시지의출처를파악하는매칭작업을선행한다. 이작업은저장된슬라이스네임을리스트를만들어저장하는것으로부터시작이된다. 이후, 하향룰메시지를전송한컨트롤러의슬라이스이름과리스트에등록된슬라이스에서동일한이름을가진슬라이스의플로우스페이스엔트리를탐색하는과정이이어진다. 이과정에서해당되지않는슬라이스의플로우스페이스엔트리는걸러지며, 적정슬라이스만을탐색한결과를오픈플로우룰메시지로스위치에게전송한다. 따라서 SFV는중복된엔트리에대한검색을줄이고해당슬라이스의자원만을검색하도록하여검색의효율성을향상시킬수있다. 5. 성능평가 5.1 평가실험환경성능분석을위해 Intel Core i3 2100, 2GB의메모리사양을갖는호스트 PC에 Mininet을이용하여, 그림 6 과같이노드 2개 ( 클라이언트, 서버 ), 스위치를포함하는 1Gbps 대역폭의네트워크를구성하였다. Mininet은가상네트워크생성을지원하는 SDN에뮬레이터로호스트, 스위치, 라우터, 링크를하나의커널상에서생성하고테스트할수있다. 생성된네트워크위에플로우바이저를연동하고 Intel Core i3 2100, 4GB 메모리사양을갖는 NOX 컨트롤러를플로우바이저와연결하여실험환경을구성하였다. 클라이언트는 50 packets/sec의속도로스위치로패킷을전송하도록설정하였고, 스위치에서각패킷들에대해지속적으로경로정보요청이발생하도록컨트롤러에서실제경로정보가아닌더미 (dummy) 경로를반복생성하여전송하도록설정하였다. 그림 5 SFV 의하향탐색과정 pseudo code Fig. 5 Pseudo code of downward look-up process of SFV 그림 6 실험환경및시나리오 Fig. 6 Experimental settings and scenario
SFV: 네트워크가상화를위한플로우바이저의지연시간감소및확장성향상연구373 플로우바이저에는컨트롤러 A, B, C, D, C, E, F를차례대로등록하고 1000개씩의플로우스페이스엔트리를각각삽입하였으며, 컨트롤러하나씩플로우바이저에추가하면서실험을진행하였다. SFV는컨트롤러 A의슬라이스내플로우스페이스엔트리만을탐색하게되며, 성능분석을위해클라이언트에서패킷을전송한시간과 SFV가엔트리탐색을끝낸후, 룰메시지를스위치로전송하는시간차이를측정하였다. 5.2 성능개선기법 (SFV) 실험결과개선된 SFV의지연시간을기존의플로우바이저의지연시간과비교해본결과, 그림 7과같이개선된성능을확인할수있었다. 결과를자세히살펴보면표 1과같이엔트리가 2,000개인경우기존플로우바이저에비해약 8% ( 평균 :2.63ms 2.43ms), 엔트리가 3,000개인경우에는약 17% ( 평균 : 3.01ms 2.51ms), 엔트리수가가장많은 6,000개의경우에는약 30% (3.98ms 2.77ms) 의성능향상을보임을확인할수있었다. 이는기존플로우바이저에서는전체컨트롤러의플로우스페이스엔트리를탐색하는과정을거치면서전체엔트리개수에따라탐색시간이선형증가양상을보이는문제가있지만, SFV에서는특정컨트롤러에게할당된엔트리만탐색함으로써탐색성능을개선할수있었기때문이다. 그림 7 SFV 와플로우바이저의지연시간측정비교 Fig. 7 Latency Comparison of FlowVisor and SFV 표 1 플로우스페이스엔트리개수에따른메시지교환지연시간 Table 1 Message exchange latencies according to number of entries Number of entries FlowVisor (ms) SFV (ms) Reduction ratio(%) 2000 2.63 2.43 7.59 3000 3.01 2.51 16.61 4000 3.29 2.59 21.17 5000 3.51 2.60 25.80 6000 3.98 2.77 30.36 6. 결론 본논문에서는플로우바이저에서발생하는메시지교환지연문제의원인을분석하여, 불필요한엔트리를탐색하는기존플로우바이저의구현상의비효율적인부분을확인하였다. 그리고메시지교환지연문제해결및플로우바이저의엔트리확장성을위해플로우에해당하는컨트롤러의슬라이스자원만을탐색하는방식으로개선한 Scalable FlowVisor(SFV) 를제안하였다. 성능분석결과, 제안된 SFV는기존의플로우바이저플랫폼의순차검색으로인한지연시간을감소시키고, 플로우바이저의엔트리확장성을높일수있음을확인할수있었다. 향후에는실제 SDN 테스트베드에서노드와스위치, 컨트롤러숫자를추가하여보다다양한시나리오에대한 SFV의성능을분석하고, 상향탐색과정에대한지연시간을줄이는방안에대해추가연구를진행할계획이다. References [1] Chowdhury, et al., "Network virtualization: state of the art and research challenges," IEEE Communications Magazine, vol.47, 2009. [2] Rob Sherwood et al., "Can the Production Network Be the Testbed?," Proc. USENIX OSDI, 2010. [3] Binyoung Yoon et al., "Future network technique," 2012 Electronics and Telecommunications Trend [4] Jaehyong Yoo et al., "SDN/OpenFlow trend and prospect," KNOW Review, vol.15. [5] R. Sherwood et al., "FlowVisor: A Network Virtualization Layer," Proc. USENIX OSDI, 2010. [ 6 ] Youngwha Kim et al., "Network Virtualization technique of future internet," Electronics and Telecommunications Trend, vol.25 1th, 2010. 2, pp.132-147. [ 7 ] http://www.noxrepo.org/_/nox-classic-doxygen/index. html [ 8 ] http://docs.projectfloodlight.org/display/floodlightcontroller/the+controller [9] Zheng Cai et al., "Maestro: A System for Scalable OpenFlow Control," Tech. Rep. TR10-08, Rice University, 2010. [10] Mininet, http://mininet.org