본문 바로가기

Dev.World/개발상식&언어

[개발상식] 11. SDN(Software Defined Networking)

SDN

(Software Defined Networking)
말 그대로 소프트웨어를 통해 구성된 네트워크이다.
기존의 전통적인 방식인 Network Architecture들이 현대의 수요와 요구를 만족시키기 어려워 지고 있다.
기존의 네트워크는 IT(Internet Protocol)기반의 각 AS(Autonomous System)들의 연결체였다.
이 AS들간의 연결은 Gateway, 즉 Router 들을 통해 연결되었고,
각 AS내부는 Router or Switch들을 통해 연결되어 있다.

기존 네트워크 장비구조
Data Plane : 데이터 전송 담당(하드웨어 영역)
Control Plane : 운영체제 기능을 담당(소프트웨어 영역)
Management Plane(Application) : 네트워크 지능화 기능을 담당 (소프트웨어 영역)

이러한 구조를 지닐 때 점점 커지게 되면 문제점이 드러나기 시작한다.
각 장비들의 관리문제, 돈문제가 발생하게 되고
네트워크 환경변화에 적극적으로 대응하기가 어렵다.
기존의 네트워크 구조는 유연하지 못하다.

이 유연하지 못한 네트워크가 날이가면 갈수록 커지고 있는 상황이다.
네트워크 트래픽이 폭증하고 있고
클라우드와 가상화의 확대로 네트워크 복잡성의 증가하고 있고
인터넷 서비스가 다양해지고 그 규모가 확대되고 있다.
이러한 상황들로 기존의 네트워크 체계로는 한계가 존재하게 되었다.

이러한 상황들 속에서 여러 말들이 나왔다.
이 처리할 내용을 Software로 구현하자!
Controller라는 장비하나로 처리하자!
네트워크 장비에서 하드웨어 기능과 소프트웨어 기능을 분리하자!
사용자 중심의 네트워크를 구현하자!
네트워크의 모든 장비들을 지능화된 중앙관리 시스템으로 관리하자!


그래서 SDN이 등장하게 되었다.
SDN 네트워크 구조는 3개의 Layer 층으로 분리되어 있다.
각 Layer는 Open Interface를 통해 서로 통신한다.
Application Layer
Network Control Layer
Infrastructure Layer : Data Plane의 집합체 => Big Switch

기존 네트워크에서 하던 Routing or Filtering은 상단 Application Layer에 구현된 SDN Software들이 수행한다.
Controller 장비 하나만 관리하면 되고 네트워크 동작 방식을 Software의 변경으로만 제어할 수 있게 된 것이다.
그래서 SDN 을 Network Operation System이라고 할 수도 있다.
하드웨어와 소프트웨어를 분리하면 소프트웨어는 네트워크 전체를 관리하게 되는 중앙 집중형으로 구성된다.
전체 네트워크는 Control plane을 통해 단일화되어 통제받게 된다.
SDN은 사용자의 필요에 따라
자신의 환경에 맞는 소프트웨어 개발 or 도입할 수 있는 개방형 구조로 바뀔 수 있다.
즉 네트워크 환경에 필요한 기능만을 선택하여 최적화된 네트워크를 구현하는 것이 가능해진다.

Application Layer와 Network Control Layer간 Interface = Northbound Interface API -> 현재 대부분 Restful API를 사용(다른 Layer에 직/간접 제어를 위한 인터페이스)

Network Control Layer 과 Infrastructure Layer 간 Interface = Southbound Interface API -> 이 영역에 포함된 것이 Open Flow (Protocol) : 포워딩제어, 정보수집을 위한 인터페이스 



-..-