일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 북한의 ICT인프라
- ICT분야 남북경협
- 5G 기술 준비도
- 5G 추진현황
- 제조업의 변화
- 비트코인
- 뉴로모픽 반도체
- 서비타이제이션
- ICT교류
- 컴퓨팅 환경 변화
- 제조업의 패러다임
- 6시간근로
- 유럽 노동시간
- 제조강국 경쟁력 변화
- 스웨덴 정부의 실험
- 글로벌 경제
- 국가별 5G
- 네트워크 전망
- SDN
- 제조업 디지털화
- 주요국가 5G
- 하루 6시간 근무 실험
- 향후 네트워크
- 엣지 컴퓨팅 개념
- 제조업의 서비스화
- 네트워크 가상화
- 4차 산업혁명 중요인프라
- ICT 협력
- 6시간 알차게 쓰기
- 제조업과 ict
- Today
- Total
IT 글로벌 시대의 지식 정보
SDN은 무었인가 본문
수년 동안 컴퓨터 과학자들은 네트워크의 속도와 안정성, 에너지 효율, 보안 등을 획기적으로 개선시킬 수 있는 방법을 고민했다. 그러나 그 방법을 설계하거나 고안하더라도, 실제로 대규모로 실험하거나 검증하는 것은 불가능했다. 인터넷의 Core를 구성하는 라우터나 스위치들이 이른바 완전히 닫혀 있어서 그 위에서 새로운 소프트웨어나 프로그램을 실험하는 것이 원천적으로 봉쇄되었기 때문이다.
이러한 연유로 연구되어온 많은 기술 중 SDN은 "Software Defined Networking"을 의미하며 우리말로 흔히 소프트웨어 정의 네트워킹이라 부른다. SDN은 OpenFlow라는 기술 혹은 소프트웨어를 통하여 널리 알려졌다. OpenFlow와 SDN은 서로 밀접한 관계가 있다. SDN이 물론 더 큰 개념으로 네트워크 구조 혹은 새로운 패러다임이며, OpenFlow는 SDN을 위한 "인터페이스 표준 기술"로 정의된다.
SDN을 특징짓는 두 가지 중요한 포인트는 다음과 같다. 첫째, 네트워크 제어기능(control plane)을 데이터 전달기능(data plane)과 분리하여 구현해야 한다. 둘째, 네트워크 제어 기능이 개발되고 실행될 수 있는 환경을 분리하여 전형적인 낮은 성능의 CPU가 장착된 하드웨어 스위치에 더 이상 위치시키지 않는다. 다시 말해서 SDN이라면 기본적으로 네트워크 제어 기능이 기존의 스위치나 라우터 등의 하드웨어와 별도로 분리되어야 하고, 데이터 전달 기능과도 역시 분리되어 개발 및 실행될 수 있는 네트워크 구조를 가져야 한다.
분리된 SDN의 제어 기능은 필연적으로 네트워크 스위치(하드웨어)상의 데이터 경로와 상호 작용할 수 있는 기능을 가져야만 한다. 이러한 상호 작용 혹은 통신 메커니즘 중의 하나가 바로 OpenFlow기술이다. OpenFlow는 흔히 SDN과 동일한 것으로 혼동되기도 하지만, 사실 SDN을 구성하는 하나의 요소로 제어기능을 가진 머신과 네트워킹 스위치간의 통신을 담당하는 표준 인터페이스이다. 그리고, SDN의 범주 안에서 OpenFlow를 반드시 사용해야 한다는 아무런 제약이나 요구사항도 없다. 현제 SDN과 OpenFlow의 정의, 마케팅 등의 이슈는 개방형 네트워킹 재단 ONF(Open Networking Foundation)에서 관리되고 있다.
ONF가 SDN을 바라보는 관점은 크게 두 가지의 기본 원칙을 바탕으로 한다.
먼저 SDN은 소프트웨어 정의 포워딩(Software Defined Forwarding)을 해야 한다. 이것은 스위치와 같은 하드웨어가 수행하는 데이터 포워딩 기능이 반드시 개방형 인터페이스와 소프트웨어를 통해서 제어되어야만 한다는 것을 의미한다. 하드웨어는 소프트웨어로부터 [헤터 템플릿, 포워딩 액션]셋을 받아 특정한 액션(action)을 실행한다. 예를 들어 어떤 네트워크 포트로 패킷을 전달(forwarding)하거나 폐기(drop)할 수 있다. 다만 해당된는 특정 액션은 [헤더 템플릿, 포워딩 액션]의 "헤더 템플릿"에 상응하는 패킷에 대해서만 실행된다. 여기서 헤더 템플릿은 "모든 패킷" 혹은 "어떤 패킷의 그룹" 등을 의미하는 와일드 카드를 포함할 수도 있다. 앞서 언급되었듯이 SDN의 소프트웨어 정의 포워딩은 반드시 개방형 인터페이스와 소프트웨어를 포함하는데, OpenFlow 기술이 "개방형 인터페이스"에 해당된다.
그리고, 두 번째 원칙은 SDN이 추상화된 글로벌 관리 혹은 글로벌 관리 추상화(Global Management Abstraction)를 목표로 한다는 것이다. SDN은 기본적으로 글로벌 관리 추상화를 지원함으로써 보다 선도적인 네트워크 관리 툴이 개발될 수 있도록 해야 한다. 예를 들면 이런 추상화 도구들은 네트워크의 글로벌 뷰, 네트워크 이벤트(토폴로지 변화나 새로운 플로우 생성 등)에 따는 반응, 그리고 네트워크 요소를 제어할 수 있는 기능 등을 포함할 수 있다(네트워크 요소 제어는 해당 엔트리를 하드웨어의 포워딩 테이블에 넣는 방법을 사용한다.)
따라서, ONF가 바라보는 SDN은 두가지, 즉 소프트웨어 정의 포워딩과 글로벌 관리 추상화가 핵심이다. 그리고, 이를 위해서 개방형 인터페이스(예:OpneFlow), 제어 소프트웨어 글로벌 네트워크 관리 툴 등의 세부적인 기능이 언급되었다.
ONF 창립자중 한명인 Nick Mckeown이 다음과 같이 SDN을 정의 했다.
" 오늘날 보안, 라우팅, 에너지 효율관리 등은 단지 기계덩어리인 네트워크 장비에 의해 좌지우지됩니다. 그건 정말 바꾸기 힘들지요. 이것이 바로 인터넷 인프라가 40년 동안이나 변하지 않은 이유입니다." 일반적으로 뎅터 패킷이 스위치(혹은 라우터)에 도착하면 스우치의 펌웨어가 해당 패킥의 목적지 주소를 보고 그 패킷을 이미 정해진 규칙에 따라 포워딩(Forwarding)한다. 정해진 규칙은 네트워크 운영자도 제어통제하기 어럽다. 같은 목적지를 갖는 모든 패킷은 같은 경로를 이용하고 언제나 같은 방식으로 다루어진다. 이것이 현대 인터넷의 일반적인 패킷 포워딩 방식이다.
SDN은 무엇인가? 라는 질문의 답은 바로 현재 인터넷이 가지고 있는 "항상 같은 방식이며 제어가 어려운" 패킷 포워딩 방식을 바꾸는 것으로 부터 시작한다. OpenFlow를 예로 들면, 그 전에는 거의 아무도 손대지 못했던 종단간 네트워크 경로를 운영자, 컴퓨터 과학자들이 쉽게 변경할 수 있도록 지원하여 e-mail보다 비디오 어플리켕션이 우선 데이터를 받을 수 있도록 하거나 다양한 트래픽을 각자 다른 경로로 보낼 수도 있고, 어떤 트래픽은 보안 목적으로 격리 할 수 있다.
그렇다면 패킷 포워딩 방식을 바꾸는 것이 SDN인가? 그렇지 않다. 이것은 SDN이라는 큰 구조를 구성하는 하나의 요소일 뿐이다. OpenFlow가 바로 패킷 포워딩 방식을 표준화된 방법으로 바꿀 수 있는 하나의 콤포넌트이다. SDN은 아키텍쳐 혹은 프레임을 제공하는 큰 개념이자 구조 혹은 패러다임으로, 하드웨어와 어플리케이션, 하드웨어 추상화 계층, 하드웨어와 분리된 제어 기능(control plane, controller 등으로 불리운다), 하드웨어 추상화 계층과 통신하는 표준 기능 등을 모두 포함한다.
SDN구조에서, 하드웨어는 스위치나 라우터 등으로, 시스코, 쥬니퍼, HP, NEC등이 개발하고 현재 인터넷 공급자들이 서비스를 제공하기 위하여 설치하고 운영하는 하드웨어 박스(box)를 의미한다. 이들은, Nickk이 말했듯이, 오늘날의 인터넷이 거의 변화하지 못한 가장 큰 원인을 제공하는 주범들이다. SDN은 이 기계덩어리에 하드웨어 추상화를 위한 계층을 더해준다. 즉, OpenFlow와 같이 표준화된 인터페이스를 통하여 하드웨어에 접근하고, 소프트웨어에 기반하여 하드웨어를 "통제" 할 수 있는 기반을 제공하는 것이다. 이 추상화 계층은 OpenFlow의 플로우 테이블과 같은 형태로 하드웨어에 구현되어야 한다. 따라서 하드웨어 벤더들의 지원과 협력이 필수적이다(현제 약 16개의 주요 네트워크 벤더들이 구현했거나 구현중이다. SDN을 지향하는 OpenFlow가 가장 선두에서 탄력받는 기술로 주목받고 있는 배경이기도 하다. 추상화 계층을 구현함에 있어서 가장 중요한것은 표준화된 인터페이스를 지원하는 것이고, 두 번째는 각 개별 벤더가 원하는 "독립성"을 보장해 주는 것이다. 개별 벤더의 고유 기술이나 고유 기능을 자치적으로 보장하면서 SDN을 위한 표준화된 통로를 제공하는 것은 벤더 고유의 기술을 보호함과 동시에 호환성을 유지하는데 있어서 필수적이며, OpenFlow의 경우 이를 매우 잘 준수하고 있다.
다음으로 무엇보다 중요한 요소는 바로 하드웨어와 분리된 제어 기능이다. 제어기(controller)로 불리기도 하는 이 제어 기능은 스위치나 라우터가 아닌 별도의 머시 상에서 구현된다. 머신은 PC가 될 수도 있고 성능 좋은 서버가 될 수도 있다. 이 제어기능은 SDN의 다른 두가지 콤포넌트와 상호 작용한다. 첫 번째 요소는 어플리케이션이고 다른 하나는 하드웨어, 종 더 정확히는 하드웨어에 구현된 추상화 계층이다. 따라서 제어 기능을 통해서 어플리케이션은 네트워크의 다양한 정보를 얻을 수 있고, 반대로 네트워크 역시 어플리케이션 요구 사항 등의 정보를 얻을 수 있다. 이러한 핵심적인 역할 때문에, 제어 기능은 종종 네트워크 운영 체제(Network OS)라 불리우기도 한다.
제어 기능은 주로 API와 같은 방법을 통해서 어플리케이션이 원하는 기능을 제공한다. 반대의 경우도 거의 같다. 어플리케이션과 제어 기능 사이의 통로인 셈이다. 그렇다면 제어 기능과 하드웨어 추상화 계층의 통신은 어떻게 이루어질까? OpenFlow가 이질문에 대한 해답이며, 이미 많은 연구가 진행되어 있다.
ONF의 또 다른 창립자인 Scott Shenker가 발표한 내용을 보면, 인터넷이 이렇게 크게 성공한 가장 큰 이유중 하나가 바로 "계층화(layering)"라는 것을 알 수 있다. 어플리케이션(www, e-mail 등)은 신뢰성/비신뢰성 트랜스포트 계층(TCP/UDP)위에서 돌아가고, 트랜스포트 계층은 최선형 글로벌 패킷 전달 계층(IP)위에서 동작되며, IP는 최선형 로컬 패킷 전달 계층(Ethernet, PPP등)위에서, 다시 로컬 패킷 전달 계층은 물리 계층(copper, fiber, radio등) 위에서 돌아가느 것이 바로 계층화이다. 즉, 서로 다른 계층이 독립적으로 동작하되 상/하위 계층과 상호 호환되는 방식으로 일종의 혁신을 이룬 것이다. 덕분에 인터넷은 교육/연구망으로 시작되었으나, 상업적으로도 엄청난 성공을 거두었고 지금까지 가장 널리 사용되고 있다. 그러나, 초창기 개발된 인터넷 구조나 모델이 아직도 거의 그대로 사용되고 있는 형편으로, 상업적인 성공이 또 다른 인터넷의 혁신으로 이어지지 못했다.
그 이유를 설명하기 위해 다른 분야를 먼저 살펴보자. 예를 들어 컴퓨터 운영체제, 데이터베이스, 분산 시스템 등은 소프트웨어의 연구 개발을 통해 발전해 왔다. 학교에서 배우는 기본적 원리들을 바탕으로 소프트웨어를 개발하고 진화시킨 것이다. 이러한 소프트웨어는 우기가 흔히 알고 있는 고급 프로그래밍 언어로 작성할 수 있으며, 새로운 기능이 필요한 경우 기존에 개발된 소프트웨어를 바탕으로 새로운 버젼으로 계속해서 발전할 수 있다. 리눅스, 윈도우즈, 맥 OS등이 이런 방식으로 진화해온 대표적인 운영체제이다. 데이터베이스나 분산 시스템도 마찬가지이다. 그리고 이러한 소프트웨어 기반의 시스템들은 대부분 편리하고 쉬운 유저 인터페이스를 통해 쉽게 관리 가능한 환경을 가지고 있다.
네트워크의 경우는 일단 학교에서 OSI 7계층과 TCP,IP 등등 여러 프로토콜에 대해서 배우기 시작한다. 기본적 원리나 알고리즘 등에 대해서도 배우지만 프로토콜을 수정하고 발전시키는 부문 보다는 대체로 동작 원리 등 실용적인 부분에 집중되는 경향이 있다. 이렇게 되는 이유 주 하나로는 PC나 서버 등의 단말(end-system)에서 돌아가는 TCP등 일부 프로토콜은 소프트웨어 개발을 통한 기능의 향상이 가능하지만, 단말과 단말 사이에서 데이터 전송과 전달을 담당하는 에지/코어 네트워크 노드 상의 프로토콜이나 기타 핵심 기능들을 새롭게 수정하거나 개발하는 것은 거의 불가능하기 때문이다. 물론 시스코나 주니퍼등의 네트워크 장비 제조사(벤더)들은 추가적인 기술 개발과 적용을 할 수 있다. 그러나 이 마저도 운영체제, 데이터베이스 등과 비교할 때 많은 진보가 일어나지는 않았다. 다른 IT 분야와 비교해 보면, 네트워크 분야에서 소프트웨어와 프로그래밍을 바탕으로 한 새로운 기술의 개발과 진화가 무척 더디게 진행되어 온 것이 분명한 사실이다. 네트워크 관리 환경은 어떠한가? 일부 운영자나 엔지니어에게 종속되어 있는데다가 그 마저도 사용하기가 쉽지 않다. 전문적인 지식이나 기술을 요구하는 경우도 많다. 최근 몇 몇 연구들이 이러한 관리 환경을 개선하는데 그 촛점을 맞추고 있긴 하지만 다른 분야에 비해서 부족한 상태로, 매우 불편한 사용자 인터페이스를 가지고 있다.
"구조는 단순하지만 관리가 복잡하고 인터페이스는 어렵다." 이것이 현재의 인터넷이 가지고 있는 가장 큰 문제로 귀결된다. SDN이 대두된 이유는 바로 이 화두를 타파하기 위해서이다.
단순한 구조는 물론 장점이다. 덕분에 인터넷이 오늘날의 압도적 지위를 누리게 되었다. 하지만 단순성을 유지하기 위하여 새로운 기술을 적용하거나 소프트웨어를 개발하는 측면에서 다른 분야에 비해 큰 제약을 가져야만 한다. 이와 같은 단점을 보완하기 위하여 SDN은 제어 프레임워크, 혹은 제어기능을 분리하여 소프트웨어의 개발을 촉진시키고자 한다. 즉, 소프트웨어를 기반으로 인터넷이 보다 빠른 속도로 진화할 수 있도록 하자는 것이다. 그리고, SDN은 관리의 복잡성을 해소하기 위하여 제어 기능을 기존 하드웨어에서 분리시키고, 사용자 인터페이스를 매우 단순하고 편리하게 만듦으로써 엔지니어, 운영자 뿐만 아니라 일반 사용자도 쉽게 네트워크를 관리하고 가상 네트웨크를 생성하여 이용할 수 있도록 한다.
Nick은 SDN을 기반으로 한 새로운 패러다임을 만들어 내어서 아래와 같은 혜택들을 누리는 네트워크 장치 생태계를 만드는 것이 필요하다고 연설한다.
1. 데이터 전달(Forwarding) 추상화에 따라서 OpenFlow표준에 의해 검증된 하드웨어를 이용하고, 또한 이에 연동하여 소프트웨어 기반으로 제공되는 네트워킹 특성이 요구되는 모든 절차들에 대해서 각각의 절차마다 충분하게 증빙되어 있는 견실한 네트워킹을 실현할 수 있는 토대를 구축할 수 있다.
2. 장비 사용자들이 자신의 필요에 따라 네트워킹을 유연하게 구성(customize)하고 불필요한 구성요소들은 과감하게 제거하면서 자신만을 위해서 가상화된 네트워크를 생성하기 쉽도록 지원한다.
3. 하드웨어 추상화에 따라서 확장성을 고려한 상태에서 공통화된 하드웨어를 구입하고, 또한 소프트웨어도 분리해서 구입하도록 하여 기존의 폐쇄적인 네트워크 장비 공급자 체인을 벗어나서 자체 개발, 외주 계발, 오픈 소스 형식을 모두 포함하는 다변화된 공급자 체인으로 체질 개선을 유도할 수 있다.
4. 소프트웨어를 개발하는 속도로 핵신이 일어나도록 하고, 표준은 구현된 소프트웨어의 확산을 위해 뒤따라가는 방식을 취하고, 소프트웨어적인 개방성을 근간하여 기술의 공유 협력을 쉽도록 함으로써 혁신의 속도를 가속하도록 지원한다.
다른 내용도 모두 중요하지만, 특히 4번에 주목하자, 소프트웨어를 개발하는 속도로 혁신이 일어나게 하고 표준은 이를 뒤따르게 하자는 것이야 말로 SDN이 왜 대두되었는지 설명하는 핵심 중의 핵심이라 할 수 있다.
SDN은 이른바 소프트웨어를 통해서 현재의 인터넷이 가지는 구조적 문제를 근본적으로 해결하고 혁신할 수 있도록 대두된 새로운 네트워크 구조 혹은 패러다임으로써, 어플리케이션, 네트워크 OS, 하드웨어 추상화, 표준화된 인터페이스 및 하드웨어를 모두 아우르는 개념이다.
'통신, 네트워크 전망' 카테고리의 다른 글
SD-WAN 개념 (0) | 2017.07.10 |
---|---|
차세대 데이터센터의 FCoE 관련.. (0) | 2017.05.09 |
방송시장 기술 및 동향 (0) | 2017.05.01 |
클라우드 시대의 통합 인프라 '하이퍼 컨버지드' (0) | 2017.04.24 |
SDN과 NFV와 네트워크 가상화의 차이 (0) | 2017.04.19 |