안녕하십니까? 요즘화두가되고있는 SDN 에대해서진행을하도록하겠습니다. SDN, Software Define Network. 많이들어보셨죠? 그럼과연 SDN 으로무엇을할수있을까요? 이야기만무성하고이제실체가조금씩드러나는 SDN 에대해서설명을드리도록하겠습니다. 1
2
네트워크는지금까지많은발전을해왔습니다. 1 세대에서는소규모인원이터미널시스템을이용하여사용했습니다. 이때는주로모뎀을이용해서했었습니다. 그후발전을하면서국내에서는코넷, 누리넷등이나타나면서 2 세대네트워크가생겼고그후로계속해서사용하는인원이증가하고네트워크를이용한어플리케이션이증가하였습니다. 현재 3 세대네트워크는모바일, 가상화, 빅데이터등등수없이많은기술이등장하였고그에따라 1 인 1 네트워크이상의회선을이용하고그이용하는어플리케이션은그수를헤아릴수없을정도로발전하였습니다. 그러면서네트워크관리자들은수없이많은고민을하게되었습니다. 그고민은가상화기술적용방안, 네트워크의복잡한구조를해결할수있는방법, 트래픽패턴변화에따른대처방안, 네트워크의관리문제입니다. 이때등장한기술이 SDN 입니다. 3
4
SDN 은 Software Define Networking 의약어입니다. 소프트웨어로네트워크를정의한다. 즉지금하드웨어중심에서소프트웨어중심으로기술이변천이되는것입니다. 그방법은네트워크장비의제어부와데이터를분리하여컨트롤러에의한제어 / 접근을하는것입니다. 현재의구조는각장비에제어부와, 데이터부가합쳐서엔지니어가직접장비에콘솔을연결하여장비의제어방향을결정합니다. 하지만 SDN 을적용하면 SDN 컨트롤러에의해장비가제어됩니다. 현실적인예를들어보겠습니다. 리모컨이있죠. 원래리모컨은 TV, 비디오, 오디오등등장비별로필요했었습니다. 하지만지금은어떻죠? 리모컨하나로 TV, 비디오, 오디오, 더나가서는냉장고, 오븐, 에어컨까지도조정이가능합니다. 이런형태로중앙집중형으로장비를제어하는것이 SDN 이라고할수있습니다. 5
SDN 이란용어를들어보셨으면 Openflow 라는용어도많이들어보셨을텐데요, Openflow 는 SDN 환경에서제어부와데이터부간의통신프로토콜, 즉 Controller 와장비간의통신내용을정의하는것입니다. 통신내용에는장비의제어방법, 라우팅, QoS, Policy 등등정책을정의하게됩니다. 이렇게장비에전달된내용은 Flow Table 에저장되고이정보를통해장비는 Data 의 Flow 를정하게됩니다. 좀어렵죠. 그럼간단하게그구조를보면서설명을드리겠습니다. 6
Controller 와장비간에는 Openflow Protorol 을통해통신을하는데장비의기존에 Control Plane 에는 Openflow Client Agent 가있고이를통해서장비에서는 Controller 와통신을하게됩니다. Controller 가 Protocol 을통해장비에전달되는정보는지금까지네트워크관리자에의해서정해져있던업무가그대로있습니다. 또한장비의상태정보, Port 구성 / 상태정보등을수집하게되고이를통해서 Controller 는토폴러지를구성하게됩니다. 이를기반으로 Controller 를최적화된경로를계산하고 Flow Entry 를구성하게됩니다. Flow Entry 는 Matching Fields, Action Stats 총 3 가지로구분이됩니다. Matching Fields 는다른말로해서 Rule 입니다. 즉어떤패킷을처리할지를정의하는부분입니다. 현재이부분에대해서는 Spec 1.1 까지정의가되어있고 Layer1 부터 Layer 4 까지 15 개의구분자로구성되어있습니다. 지금보여지는내용은 Spec 1.0 을기준으로 12 개의구분자로구성되어있습니다. Action 은 Matching Fields 에서정의된패킷을어떻게처리할지정의합니다. 이필드에서 Forward 할경우패킷은흐르지만 Drop 할경우패킷은유실됩니다. 마지막으로 State 는 FlowEntry 에얼마나많은패킷이매칭되었고얼마나큰바이트가전송되어있는지정보가있으며, 이를통해전송정보를획득하고이정보를 Controller 에전송하여줍니다. 7
지금까지는일반적으로말하는 SDN 에대해서설명을드렸는데요 실제 SDN 을적용하는모델은 3 가지가있습니다. 첫째, 지금까지설명드렸던 Controller 기반. 이경우 Openflow 를지원하지않는장비를지원이되지않습니다. 둘째, API 기반, 즉장비와통신하는개발 API 를제공하여하는방법입니다. CISCO 에서말하는 OnePK 가여기에해당되며, 이를지원하는장비가있어야됩니다. 세째, 물리적, 가상화적네트워크를포함하는 ACI 기반입니다. 8
Controller 기반의경우현재진행되고있는 OpenSource Contoller 입니다. Openflow, Linux 기반에 C 언어로개발이되고, 실제 Openflow 를 Controller 를개발하는데사용되는 API 입니다. 그리고국내에서연구용으로사용하고있는 Nox, Pos, Floodlight 입니다. Nox 는 Python 과 C++ 을지원하고 Linux 에서만작동이됩니다. Pos 는 Python 을지원하고 Linux, Windows, Mac OS 를지원합니다. Floodlight 는 Java 기반으로모든 OS 를지원합니다. Java 기반의웹시스템으로구성되어있어 Apache-License 를필요로합니다. 또한 FloodLight 의경우국내의 ETRI 에서도 Floodlight 를기반으로 IRIS 라는 Controller 개발프로젝트를진행하고있습니다. OpenDaylight 많이들어보셨을텐데, CISCO 에서자체개발한 Cisco One Controller 를기증한 Controller 입니다. OpenDaylight 는 Java 기반이고역시 Apache-License 를필요로합니다. 9
좀더자세하게 Floodlight 를예로들어 Controller 기반을설명드리면 FllodLight Controller 에각 Openflow 가지원되는장비를연결하면 Controller 가장비를관리하게됩니다. Controller 가장비를관리하게되는기준은 Floodlight 가지원하는 Northbound API, 즉연동개발 API 를통해개발된어플리케이션을통해설정됩니다. 설정될수있는정보는 QoS, Forwarding, Drop, Discovery 등이있습니다. 앞으로새로운 SI 모델로는 Controller 가지원하는 Northbound API 를이용해제어하는어플리케이션, 관제하는어플리케이션이될수있을것으며, 제생각으로는올해말 ETRI 에서공식배포하는 IRIS 가첫타켓 Controller 가될것같습니다. 10
다음으로 API 기반의 SDN 입니다. 현재 CISCO 에서는 OnePK 라는 API 를오픈하였고이를통해서장비와의통신을하고제어, 관리, 모니터링을가능하게하고있습니다. 지원되는장비는 IOS 15 이상이며, 현재출시된몇몇장비에서는지원이되고있습니다. OnePK 는 C, JAVA, Python 의언어를지원하고있고 C 언어의경우 Linux, JAVA,Python 의경우 Windows/Linux 를지원합니다. API 를이용하여할수있는주요기능으로는 Element : 장비관리기능 Interface And Port : Interface 와 Port 의관리, 모니터링기능 DataPath, Routing 설정기능 정책관리기능,Discovery 수집 계정관리, 로그인정책관리가있고 그외 SYSLOG, DEBUG 모니터링과 CLI 원격입력기능이있습니다. 현재시스코의방향에는 Switch, Nexus, ASR, ISR 에서지원로드맵이잡혀있습니다. 뒤에데모를진행하는부분에서앞에설명한 Floodlight 와 OnePK 에대해보여드리도록하겠습니다. 11
다음으로 SDN 을어떻게사용하는지에대한사례와사용케이스에대해설명드리도록하겠습니다. 12
Google 의사례입니다. Google 은전세계네트워크트래픽의 7% 를사용하는거대한네트워크망을가지고있는곳입니다. Google 은사용자트래픽이유입되는 I-Scale 영역과 Google 데이터센터간연결된 G-Scale 영역이있는데이 G-Scale 의전체 WAN 구산을하나의시스템처럼동작시키는데초점을두고프로젝트를진행하였습니다. 이를통해얻고자하는것은 1. 높은네트워크자원활용 2. Routing 최적화및 Traffic Engineering 3. Non_equal Const / Shortest Path 4. 실시간적네트워크현황파악및자동화 5. 운영자에게편리한최적화된기술 입니다. 여기에사용된기술은각사이트의의필요대역폭을산정하는 Google Broker, 필요대역폭을위한경로설정을하는 TE Service, TE Server 와 OpenFlow Controller 와연동하는 SDN Gateway, 기존네트워크와연동하는 Quagga( 콰가 ) 가있습니다. 이를통해 Google 은 2012 년 4 월네트워크서밋에서 OpenFlow 를통해자사의네트워크망을개량하였다고발표하였고이를통해회선사용률을 95% 이상까지끌어올렸다고발표하였고이를계기로전세계가 SDN 을바라보는시각이달라졌습니다. 13
그럼실제우리사이트에적용가능한케이스에대해서설명을드리겠습니다. 해당케이스는국내연구기간및망운영하는하는 KT 에서발표한정보를발췌한것입니다. 먼저 VIP 특정고객에대한 Traffic 보장입니다. 모든고객이동일한경로를이용하더라도특정고객에대해서는속도가보장된망을사용할수있습니다. 14
두번째망분리입니다. Web Server 와 DB Server 에접근하는경로를변경하여 Web Server 의통신속도를보장하는방법입니다. 15
세번째케이스는특정시간 or 특정이벤트발생시네트워크관리하는방법입니다. 평소에는설정된경로로돌아가지만야간에는백업시스템등으로인해특정구간에대해네트워크트래픽이증가하여속도가저하되는현상이발생하게됩니다. 이경우를야간시간에는사용량이적은회선으로일반사용자를우회시키고백업시스템의네트워크구간을보장함으로써안정화시킬수있습니다. 16
마지막으로불법 Traffic 감지및방어를할수있습니다. 공격 PC 로부터계속적으로내부망침입패킷이발견될경우해당접속정보를 Drop 하거나 IDS/IPS 로우회시킴으로써불법 Traffic 을방어할수있습니다. 17