본문 바로가기

IT Technology

SDN(Software Defined Networking)

[출처] http://devkyanon.blogspot.kr/2014/01/sdn.html




SDN이란 무엇인가?

SDN이란 무엇인가?


SDN(Software Defined Networking)는 말 그대로 소프트웨어를 통해 구성된 네트워크를 말합니다.
기존의 전통적인 방식의 Network Architecture들이 현대의 수요와 요구를 만족시키기 점점 어려워 짐에 따라
미국의 UC버클리 대학과 스탠포드 대학이 2008년에 발표한 새로운 형태의 Network Architecture 입니다.


기존의 네트워크 아키텍쳐와 어떤점이 다른지 쉽게 이해하려면 기존의 아키텍쳐 대한 이야기가 먼저 필요한데요,
기존의 네트워크는 IP(Internet Protocol)기반의 각 AS(Autonomous System)들의 연결체라 볼 수 있습니다. 이 AS들간의 연결은 Gateway, 즉 Router들을 통해 연결되어 있구요, 각 AS내부는 Router 또는 Switch들을 통해 연결되어 있습니다. 간단하게 그림으로보면 다음과 같습니다.
(http://writingnewmedia.wikispaces.com/file/view/internet-topology.png/31200749/internet-topology.png)


사실 이러한 구성은 굉장히 간단하다고 볼 수 있습니다. 단순히 어느 한 지점에서 출발한 패킷을 원하는 목적지까지 주소에 맞게 보내주기만 하면 되는 것이기 때문이죠.


하지만 네트워크가 점점 커질 수록, 위와 같은 네트워크는 문제점이 극명하게 들어나기 시작합니다.


첫째, 각 장비들의 관리 문제가 발생합니다.
서로 멀리 떨어져 있는 장비들을, 모두 일정하게 세팅을 해둔다는 것은 쉬운 작업이 아닙니다.
간단하게, 몇몇 라우터의 라우팅 프로토콜 설정만 맞지 않아도 해당 라우터를 경유하는 AS들은 통신을 하지 못하기 때문이죠.
또한 실제 네트워크에서는 단순히 라우터/스위치들만 설치가 되는 것이 아니라 각종 방화벽(Firewall), IDS(Intrusion Detection System) 같은 네트워크 관리를 위한 장비들도 추가가 되기 마련입니다.
네트워크 규모가 커질 수록, 그만큼 관리해야하는 대상이 늘어나는 만큼, 쉽지않은 작업이 되겠지요.


둘째, 돈 문제가 발생합니다.
매번 네트워크가 추가될때마다 적지않은 규모의 돈이 듭니다. 기본적인 장비들이 비싼편인데다가 한두개만 설치하는 것이 아니기 때문이죠. 또한 위에서 말한대로 단순히 네트워크 장비만 추가하는 것이 아니라 다양한 추가장비들 역시 설치되기 때문에 비용문제는 심각한 문제라 볼 수 있습니다.


세번째, 네트워크 환경변화에 적극적으로 대응하기 어렵습니다.
이는 첫번째, 두번째 이유에서 상속(?)되는 문제라 볼 수 있는데요, 기본적으로 새롭고 더 나은 장비가 도입이 되더라도 쉽게 바꿀 수 없다는 것을 의미합니다.
가장 먼저 떠오르는게 돈 문제가 되겠지요. 큰맘먹고 비싼돈 들여서 장비들을 샀는데, 더 좋은 새로운 장비가 나왔다고 해서 쉽사리 바꿀 수 없겠지요?
그리고 네트워크는 안정하게 항상 돌아가야하는데 멋모르고 장비를 함부로 바꿨다가는 최악의 경우 네트워크 전체가 마비되는 수가 있습니다. 따라서 새 장비가 많더라 하더라도 쉽게 바꿀 수 없는 것이지요.


오늘날의 네트워크는 날이가면 갈 수록 커지기 시작하는데 규모가 커지면 커질 수록 단점이 커지니…
위의 세가지 이유를 한문장으로 요약하면 “유연하지 못하다"가 되겠습니다.


따라서 기존의 네트워크가 가지는 문제를 극복하고자 조금 더 말랑말랑한 “SDN”이 등장하게 된 것이지요.
이를 심플하게 이야기하면 기존의 네트워크 장비가 하던 역할을 Controller라는 장비 하나로 다 처리하자!!
이 처리할 내용은 Software로 구현하자 입니다. 그림을 보면 다음과 같습니다.
(http://www.opennetsummit.org/images/diagrams/diagram02.png)


위 그림에서 물리적인 네트워크 장비는 Controller와 연결되어있습니다.
기존의 네트워크 구성이라면 Switch -> Router (+@로 Firewall, IDC같은것도 거칠 수 있겠죠)등을 거쳐 연결이 되겠지만 SDN에서는 Controller 하나만 거치면 되지요.


대신 기존 네트워크에서 하던 Routing이라던지 Filtering이라던지는 상단의 Application Layer에 구현된 각  SDN Software들이 수행합니다.


이를 넓은 규모의 네트워크를 보면 기존의 네트워크가 가지는 단점들을 쉽게 해결한다는 것을 볼 수 있습니다.
관리의 용이성 측면에서 Controller라는 장비 하나만 관리하면되니 두말할 것 없고,
비용적인 측면에서도 기존의 장비가 여러개 인것과 대비하여 Controller하나만 두면되고,
환경변화에 대응측면에서 네트워크 동작 방식을 Software만 바꾸면 되니 훨씬 간단한 것이지요. 그래서 SDN을 Network Operating System이라고 볼 수도 있습니다.


기존의 네트워크와 SDN의 비교에 대한 설명이 잘 이해가 안가시는 분들을 위해 마지막으로
정말 정말 쉽게 예를 들어 비교하자면


과거에는
노래를 듣기 위해 MP3, 영화를 보기 위해 DVD Player,  전화를 하기 위해 휴대전화.
이렇게 여러가지 기기를 사용하였고
매번 배터리 충전하랴, 노래 넣으랴, DVD 구우랴~ 관리할게 많았지만


현대에는 스마트폰 하나로
MP3를 듣고싶으면 음악 애플리케이션을 설치하고,
영화를 보고싶으면 동영상 애플리케이션을 설치하고,
전화도 되고~~
하나의 디바이스 위에서 소프트웨어만 바꿔주니 다양한 작업이 되고, 컴퓨터에  USB만 연결하면 관리하기도 용이하고!


이런 차이가 되겠습니다.


-References
Software-Defined Networking:The New Norm for Networks (Whitepaper), ONF, Aprill 13, 2012